μΉ μ κ·Όμ± APIμ λν μ’ ν© μλ΄μ. μ μΈκ³ μ¬μ©μλ₯Ό μν ν¬μ©μ μ΄κ³ μ¬μ©μ μΉνμ μΈ μΉ κ²½ν ꡬμΆμ μν΄ μ€ν¬λ¦° 리λ νΈνμ±κ³Ό ν€λ³΄λ νμμ μ€μ μ λ‘λλ€.
μΉ μ κ·Όμ± API: μ€ν¬λ¦° 리λ μ§μκ³Ό ν€λ³΄λ νμμ ν΅ν μ¬μ©μ μλ κ°ν
μ€λλ μ λμ§νΈ νκ²½μμ μΉ μ κ·Όμ±μ 보μ₯νλ κ²μ λ¨μν λͺ¨λ² μ¬λ‘κ° μλλΌ κΈ°λ³Έμ μΈ μꡬ μ¬νμ λλ€. μ§μ μΌλ‘ ν¬μ©μ μΈ μΉμ λͺ¨λ μ¬μ©μμ λ₯λ ₯μ κ΄κ³μμ΄ λλ±ν μ κ·Όκ³Ό κΈ°νλ₯Ό μ 곡ν©λλ€. μΉ μ κ·Όμ± API(Application Programming Interfaces)λ μΉ μ½ν μΈ μ μ€ν¬λ¦° 리λ λ° λ체 μ λ ₯ μ₯μΉμ κ°μ 보쑰 κΈ°μ (AT) κ°μ ν΅μ μ μ΄μ§νλ μ€μν λꡬμ λλ€. μ΄ κΈμμλ μ μΈκ³ μ¬μ©μλ₯Ό μν μ κ·Όμ± λμ μΉ κ²½νμ λ§λλ λ° μμ΄ λ κ°μ§ μ€μν μΈ‘λ©΄μΈ μ€ν¬λ¦° 리λ μ§μκ³Ό ν€λ³΄λ νμμ νΉν μ΄μ μ λ§μΆ° μΉ μ κ·Όμ± APIμ μ€μμ±μ μμΈν μ΄ν΄λ΄ λλ€.
μΉ μ κ·Όμ± APIμ μ΄ν΄
μΉ μ κ·Όμ± APIλ μΉ μ½ν μΈ μ λν μ 보λ₯Ό 보쑰 κΈ°μ μ λ ΈμΆνλ μΈν°νμ΄μ€ μ§ν©μ λλ€. μ΄λ₯Ό ν΅ν΄ 보쑰 κΈ°μ μ μΉ νμ΄μ§ μμμ ꡬ쑰, μλ―Έ, μνλ₯Ό μ΄ν΄ν μ μμ΄ μ₯μ κ° μλ μ¬μ©μκ° ν¨κ³Όμ μΌλ‘ μνΈ μμ©ν μ μμ΅λλ€. μ΄λ¬ν APIκ° μμΌλ©΄ 보쑰 κΈ°μ μ νλ©΄μ νμλ μ 보λ₯Ό μ ννκ² ν΄μνκ³ μ λ¬ν μ μμ΅λλ€.
κ°μ₯ μ€μν μΉ μ κ·Όμ± API μ€ μΌλΆλ λ€μκ³Ό κ°μ΅λλ€:
- ARIA (Accessible Rich Internet Applications): νΉν JavaScriptλ‘ κ΅¬μΆλ λμ μ½ν μΈ λ° μμ ―μ λν΄ HTML μμμ μλ§¨ν± μ 보λ₯Ό μΆκ°νλ μμ± λͺ¨μμ λλ€. ARIAλ λΈλΌμ°μ μ 보쑰 κΈ°μ μ λ°μμ λ리 μ§μλ©λλ€.
- MSAA (Microsoft Active Accessibility): μ£Όλ‘ Windows μμ€ν μμ μ¬μ©λλ μ€λλ APIμ λλ€. λ κ±°μ μ ν리μΌμ΄μ μλ μ¬μ ν μ ν¨νμ§λ§, μλ‘μ΄ κ°λ°μλ μΌλ°μ μΌλ‘ ARIAκ° μ νΈλ©λλ€.
- IAccessible2: MSAAλ₯Ό κΈ°λ°μΌλ‘ ꡬμΆλ APIλ‘, μ κ·Ό κ°λ₯ν κ°μ²΄μ λν λ μμΈν μ 보λ₯Ό μ 곡ν©λλ€.
- UI Automation (UIA): Microsoftμ μ΅μ μ κ·Όμ± APIλ‘, MSAAμ λΉν΄ ν₯μλ μ±λ₯κ³Ό κΈ°λ₯μ μ 곡ν©λλ€.
- μ κ·Όμ± νΈλ¦¬(Accessibility Tree): 보쑰 κΈ°μ μ λ§κ² μ‘°μ λ DOM(Document Object Model)μ ννμΌλ‘, κ΄λ ¨ μλ λ Έλλ₯Ό μ κ±°νκ³ μ κ·Όμ± APIλ₯Ό ν΅ν΄ μλ§¨ν± μ 보λ₯Ό λ ΈμΆν©λλ€.
μ€ν¬λ¦° 리λ μ§μ: μ½ν μΈ λ₯Ό μ²κ°μ μΌλ‘ λ§λ€κΈ°
μ€ν¬λ¦° 리λλ ν μ€νΈ λ° κΈ°ν μκ°μ μ 보λ₯Ό μμ± λλ μ μ μΆλ ₯μΌλ‘ λ³ννλ μννΈμ¨μ΄ μ ν리μΌμ΄μ μ λλ€. μκ° μ₯μ κ° μλ μ¬μ©μκ° μΉ μ½ν μΈ μ μ κ·Όνκ³ μνΈ μμ©ν μ μλλ‘ νλ λ° νμμ μ λλ€. ν¨κ³Όμ μΈ μ€ν¬λ¦° 리λ μ§μμ μΉ μ κ·Όμ± APIμ μ¬λ°λ₯Έ ꡬνμ ν¬κ² μμ‘΄ν©λλ€.
μ€ν¬λ¦° 리λ νΈνμ±μ μν μ£Όμ κ³ λ € μ¬ν:
- μλ§¨ν± HTML: μλ§¨ν± HTML μμ(μ: <article>, <nav>, <aside>, <header>, <footer>, <main>, <h1>μμ <h6>, <p>, <ul>, <ol>, <li>)λ₯Ό μ¬μ©νλ©΄ μ€ν¬λ¦° 리λκ° ν΄μν μ μλ λͺ νν ꡬ쑰λ₯Ό μ 곡ν©λλ€. λ ꡬ체μ μΈ μλ§¨ν± μμλ₯Ό μ¬μ©ν μ μμ λλ <div>λ <span>κ³Ό κ°μ μΌλ°μ μΈ μμλ₯Ό μ¬μ©νμ§ λ§μμμ€.
- ARIA μμ±: νΉν λμ μ½ν μΈ , μ¬μ©μ μ μ μμ ― λ° λΉνμ€ λμμ κ°μ§ μμμ λν΄ HTML μμμ μ맨ν±μ ν₯μμν€κΈ° μν΄ ARIA μμ±μ μ¬μ©νμμμ€. λͺ κ°μ§ μ€μν ARIA μμ±μ λ€μκ³Ό κ°μ΅λλ€:
aria-label: λμ 보μ΄λ ν μ€νΈ λ μ΄λΈμ΄ μλ μμμ λν λ체 ν μ€νΈλ₯Ό μ 곡ν©λλ€. μ: <button aria-label="λ«κΈ°">X</button>aria-labelledby: μμλ₯Ό λ μ΄λΈμ μ 곡νλ λ€λ₯Έ μμμ μ°κ²°ν©λλ€. μ΄λ λμ 보μ΄λ λ μ΄λΈμ΄ μ΄λ―Έ μ‘΄μ¬ν λ μ μ©ν©λλ€.aria-describedby: μμλ₯Ό μ€λͺ μ΄λ μ§μΉ¨μ μ 곡νλ λ€λ₯Έ μμμ μ°κ²°ν©λλ€.aria-live: νμ΄μ§μ νΉμ μμμ΄ λμ μΌλ‘ μ λ°μ΄νΈλ¨μ λνλ΄λ©°, μ€ν¬λ¦° 리λκ° λ³κ²½ μ¬νμ μλ €μΌ ν¨μ μλ―Έν©λλ€. κ°μλoff(κΈ°λ³Έκ°),polite(μ¬μ©μκ° μ ν΄ μνμΌ λ μλ¦Ό),assertive(μ¦μ μλ¦Ό, μ¬μ©μ μμ μ μ€λ¨μν¬ μ μμ)κ° ν¬ν¨λ©λλ€.aria-role: μμμ μλ§¨ν± μν μ μ μνμ¬ κΈ°λ³Έ μν μ μ¬μ μν©λλ€. μ: <div role="button">ν΄λ¦νμΈμ</div>aria-hidden: 보쑰 κΈ°μ λ‘λΆν° μμλ₯Ό μ¨κΉλλ€. μ½ν μΈ λ₯Ό μκ°μ μΌλ‘ κ·Έλ¦¬κ³ λ³΄μ‘° κΈ°μ λ‘λΆν° μ¨κΈ°λ©΄ μ κ·Όμ± λ¬Έμ λ₯Ό μΌμΌν¬ μ μμΌλ―λ‘ μ£Όμν΄μ μ¬μ©ν΄μΌ ν©λλ€.aria-expanded: νμ₯ κ°λ₯ν μμ(μ: λ©λ΄ λλ μμ½λμΈ ν¨λ)κ° νμ¬ νμ₯λμλμ§ μ¬λΆλ₯Ό λνλ λλ€.aria-haspopup: μμμ νμ λ©λ΄λ λν μμκ° μμμ λνλ λλ€.- μ΄λ―Έμ§ λ체 ν
μ€νΈ: λͺ¨λ μ΄λ―Έμ§μ λν΄ μ€λͺ
μ μΈ λ체 ν
μ€νΈ(
altμμ±)λ₯Ό μ 곡νμμμ€. μ΄λ₯Ό ν΅ν΄ μ€ν¬λ¦° 리λλ μ΄λ―Έμ§λ₯Ό λ³Ό μ μλ μ¬μ©μμκ² μ΄λ―Έμ§μ λ΄μ©κ³Ό λͺ©μ μ μ λ¬ν μ μμ΅λλ€. κ°κ²°νκ³ μλ―Έ μλ μ€λͺ μ μ¬μ©νμμμ€. μμ ν μ₯μμ© μ΄λ―Έμ§μ κ²½μ° λΉaltμμ±(alt="")μ μ¬μ©νμμμ€. - μμ λ μ΄λΈ:
<label>μμμforμμ±μ μ¬μ©νμ¬ μμ μ λ ₯ νλλ₯Ό λͺ ννκ³ μ€λͺ μ μΈ λ μ΄λΈκ³Ό μ°κ²°νμμμ€. μ΄λ κ² νλ©΄ μ€ν¬λ¦° 리λκ° κ° μ λ ₯ νλμ λͺ©μ μ μ릴 μ μμ΅λλ€. - μ λͺ© λ° λλλ§ν¬: μ λͺ©(<h1>μμ <h6>)μ μ¬μ©νμ¬ μ½ν
μΈ λ₯Ό λ
Όλ¦¬μ μΌλ‘ ꡬ쑰ννμ¬ μ€ν¬λ¦° 리λ μ¬μ©μκ° μ λͺ© μμ€λ³λ‘ νμ΄μ§λ₯Ό νμν μ μλλ‘ νμμμ€. λλλ§ν¬ μν (μ:
role="navigation",role="main",role="banner",role="complementary",role="contentinfo")μ μ¬μ©νμ¬ νμ΄μ§μ μ£Όμ μΉμ μ μ μνλ©΄ μ¬μ©μκ° λ€λ₯Έ μμμΌλ‘ λΉ λ₯΄κ² μ΄λν μ μμ΅λλ€. - ν: ν νμμ λ°μ΄ν°μλ§ νλ₯Ό μ¬μ©νκ³ , μ μ ν ν 머리κΈ(
<th>)κ³Ό μΊ‘μ (<caption>)μ μ 곡νμμμ€.<th>μμμscopeμμ±μ μ¬μ©νμ¬ λ°μ΄ν° μ κ³Όμ κ΄κ³λ₯Ό μ μνμμμ€(μ: μ΄ λ¨Έλ¦¬κΈμ κ²½μ°scope="col", ν 머리κΈμ κ²½μ°scope="row"). - λμ μ½ν
μΈ μ
λ°μ΄νΈ: μ½ν
μΈ κ° λμ μΌλ‘ μ
λ°μ΄νΈλ λ(μ: AJAX λλ JavaScriptλ₯Ό ν΅ν΄), ARIA λΌμ΄λΈ μμ(
aria-liveμμ±)μ μ¬μ©νμ¬ μ€ν¬λ¦° 리λμκ² λ³κ²½ μ¬νμ μ리μμμ€. μ¬μ©μμκ² λΆλ΄μ μ£Όμ§ μλλ‘ μ μ νaria-liveκ°(politeλλassertive)μ μ μ€νκ² κ³ λ €νμμμ€. - μ€λ₯ μ²λ¦¬: μμ μ ν¨μ± κ²μ¬ λ° κΈ°ν μ¬μ©μ μνΈ μμ©μ λν΄ λͺ
ννκ³ μ μ΅ν μ€λ₯ λ©μμ§λ₯Ό μ 곡νμμμ€.
aria-describedbyλ₯Ό μ¬μ©νμ¬ μ€λ₯ λ©μμ§λ₯Ό κ΄λ ¨ μμ νλμ μ°κ²°νμμμ€.
μμ: μ κ·Ό κ°λ₯ν μ΄λ―Έμ§
μλͺ»λ μ: <img src="logo.png">
μ¬λ°λ₯Έ μ: <img src="logo.png" alt="νμ¬ λ‘κ³ - Example Corp">
μμ: μ κ·Ό κ°λ₯ν μμ λ μ΄λΈ
μλͺ»λ μ: <input type="text" id="name"> μ΄λ¦:
μ¬λ°λ₯Έ μ: <label for="name">μ΄λ¦:</label> <input type="text" id="name">
ν€λ³΄λ νμ: λ§μ°μ€ μμ΄ μ‘°μ κ°λ₯μ± λ³΄μ₯νκΈ°
ν€λ³΄λ νμμ λ§μ°μ€λ λ€λ₯Έ ν¬μΈν μ₯μΉλ₯Ό μ¬μ©ν μ μλ μ¬μ©μμκ² νμμ μ λλ€. μ¬κΈ°μλ μ΄λ μ₯μ κ° μλ κ°μΈ, ν€λ³΄λ λ¨μΆν€λ₯Ό μ νΈνλ κ°μΈ, ν€λ³΄λ μ λ ₯μ μμ‘΄νλ 보쑰 κΈ°μ μ μ¬μ©νλ κ°μΈμ΄ ν¬ν¨λ©λλ€. κ°λ ₯ν ν€λ³΄λ νμμ μ 곡νλ©΄ μΉ νμ΄μ§μ λͺ¨λ μνΈ μμ© κ°λ₯ν μμλ₯Ό ν€λ³΄λλ‘ μ κ·Όνκ³ μ‘°μν μ μμ΅λλ€.
ν€λ³΄λ νμμ μν μ£Όμ κ³ λ € μ¬ν:
- λ Όλ¦¬μ μΈ ν¬μ»€μ€ μμ: μ¬μ©μκ° Tab ν€λ₯Ό λλ μ λ μμκ° ν¬μ»€μ€λ₯Ό λ°λ μμ(ν¬μ»€μ€ μμ)κ° λ Όλ¦¬μ μ΄κ³ μ§κ΄μ μΈμ§ νμΈνμμμ€. ν¬μ»€μ€ μμλ μΌλ°μ μΌλ‘ νμ΄μ§μ μκ°μ νλ¦μ λ°λΌμΌ ν©λλ€.
- 보μ΄λ ν¬μ»€μ€ νμκΈ°: λͺ¨λ μνΈ μμ© κ°λ₯ν μμκ° ν¬μ»€μ€λ₯Ό λ°μμ λ λͺ
ννκ³ λ³΄μ΄λ ν¬μ»€μ€ νμκΈ°λ₯Ό μ 곡νμμμ€. μ΄λ₯Ό ν΅ν΄ μ¬μ©μλ νμ¬ μ΄λ€ μμκ° νμ±νλμ΄ μλμ§ μ½κ² μλ³ν μ μμ΅λλ€. κΈ°λ³Έ λΈλΌμ°μ ν¬μ»€μ€ νμκΈ°λ μ’
μ’
CSS(μ:
:focusκ°μ ν΄λμ€)λ₯Ό μ¬μ©νμ¬ μ€νμΌμ μ§μ ν μ μμ΅λλ€. ν¬μ»€μ€ νμκΈ°μ μ£Όλ³ λ°°κ²½ κ°μ μΆ©λΆν λλΉλ₯Ό 보μ₯νμμμ€. - ν€λ³΄λ ν¨μ : μ¬μ©μκ° νΉμ μμλ νμ΄μ§ μΉμ λ΄μ κ°ν Tab ν€λ₯Ό μ¬μ©νμ¬ λΉ μ Έλκ° μ μλ ν€λ³΄λ ν¨μ μ λ§λ€μ§ λ§μμμ€. μ΄λ νΉν λͺ¨λ¬ λν μμ λ° μ¬μ©μ μ μ μμ ―μμ λ¬Έμ κ° λ μ μμ΅λλ€.
- νμ 건λλ°κΈ° λ§ν¬: νμ΄μ§ μμ λΆλΆμ "νμ 건λλ°κΈ°" λ§ν¬λ₯Ό μ 곡νμ¬ μ¬μ©μκ° λ°λ³΅μ μΈ νμ μμλ₯Ό 건λλ°κ³ μ£Ό μ½ν μΈ λ‘ μ§μ μ΄λν μ μλλ‘ νμμμ€. μ΄λ μ€ν¬λ¦° 리λλ ν€λ³΄λ νμμ μμ‘΄νλ μ¬μ©μμκ² νΉν μ μ©ν©λλ€.
- μ‘μΈμ€ ν€(μ£Όμ νμ): νΉμ μμλ₯Ό νμ±ννλ ν€λ³΄λ λ¨μΆν€μΈ μ‘μΈμ€ ν€λ μ μ©ν μ μμ§λ§, κΈ°μ‘΄ λΈλΌμ°μ λ μ΄μ 체μ λ¨μΆν€μ μΆ©λν μ μμΌλ―λ‘ μ£Όμν΄μ μ¬μ©ν΄μΌ ν©λλ€. μ¬μ©νλ κ²½μ° μ¬μ©μκ° μ‘μΈμ€ ν€λ₯Ό λ°κ²¬νκ³ μ¬μ©μ μ μν μ μλ λͺ νν λ©μ»€λμ¦μ μ 곡νμμμ€. λ€λ₯Έ μΈμ΄ λ° ν€λ³΄λ λ μ΄μμ κ°μ μΆ©λ κ°λ₯μ±μ κ³ λ €νμμμ€.
- μ¬μ©μ μ μ μμ ― λ° ν€λ³΄λ μνΈ μμ©: μ¬μ©μ μ μ μμ ―(μ: μ¬μ©μ μ μ λλ‘λ€μ΄ λ©λ΄, μ¬λΌμ΄λ λλ λ μ§ μ νκΈ°)μ λ§λ€ λ ν€λ³΄λλ‘ μμ ν μ κ·Όν μ μλλ‘ ν΄μΌ ν©λλ€. λͺ¨λ λ§μ°μ€ κΈ°λ° μνΈ μμ©μ λν΄ ν€λ³΄λ λ±κ°λ¬Όμ μ 곡νμμμ€. ARIA μμ±μ μ¬μ©νμ¬ μμ ―μ μν , μν λ° μμ±μ μ μνμμμ€. μμ ―μ λν μΌλ°μ μΈ ARIA ν¨ν΄μ λ€μκ³Ό κ°μ΅λλ€:
- λ²νΌ:
role="button"μμ±μ μ¬μ©νκ³ Enter λλ μ€νμ΄μ€ ν€λ₯Ό μ¬μ©νμ¬ μμλ₯Ό νμ±νν μ μλλ‘ νμμμ€. - λ§ν¬: λ§ν¬μλ μ ν¨ν
hrefμμ±μ΄ μλ<a>μμλ₯Ό μ¬μ©νμμμ€. - μμ μμ:
<input>,<select>,<textarea>μ κ°μ μ μ ν μμ μμλ₯Ό μ¬μ©νκ³ λ μ΄λΈκ³Ό μ°κ²°νμμμ€. - λ©λ΄:
role="menu",role="menuitem"λ° κ΄λ ¨ ARIA μμ±μ μ¬μ©νμ¬ μ κ·Ό κ°λ₯ν λ©λ΄λ₯Ό λ§λμμμ€. μ¬μ©μκ° νμ΄ν ν€λ₯Ό μ¬μ©νμ¬ λ©λ΄λ₯Ό νμν μ μλλ‘ νμμμ€. - λν μμ:
role="dialog"λλrole="alertdialog"μμ±μ μ¬μ©νμ¬ μ κ·Ό κ°λ₯ν λν μμλ₯Ό λ§λμμμ€. λν μμκ° μ΄λ¦¬κ³ λ«ν λ ν¬μ»€μ€κ° μ¬λ°λ₯΄κ² κ΄λ¦¬λκ³ Escape ν€λ‘ λν μμκ° λ«νλλ‘ νμμμ€. - ν:
role="tablist",role="tab",role="tabpanel"μμ±μ μ¬μ©νμ¬ μ κ·Ό κ°λ₯ν ν μΈν°νμ΄μ€λ₯Ό λ§λμμμ€. μ¬μ©μκ° νμ΄ν ν€λ₯Ό μ¬μ©νμ¬ ν κ°μ μ νν μ μλλ‘ νμμμ€. - ν μ€νΈ: ν€λ³΄λλ§ μ¬μ©νμ¬ ν€λ³΄λ νμμ μ² μ ν ν μ€νΈνμμμ€. ν¬μ»€μ€ μμ, ν¬μ»€μ€ νμκΈ° λ° λͺ¨λ μνΈ μμ© κ°λ₯ν μμμ μ‘°μ κ°λ₯μ±μ μ£Όμλ₯Ό κΈ°μΈμ΄μμμ€.
μμ: νμ 건λλ°κΈ° λ§ν¬
<a href="#main" class="skip-link">μ£Ό μ½ν μΈ λ‘ κ±΄λλ°κΈ°</a>
<nav><!-- νμ λ©λ΄ --></nav> <main id="main"><!-- μ£Ό μ½ν μΈ --></main>μμ: ν¬μ»€μ€ νμκΈ° μ€νμΌλ§
button:focus {
outline: 2px solid blue;
}
μ κ·Όμ± ν μ€νΈ λ° κ²μ¦
μ κΈ°μ μΈ μ κ·Όμ± ν μ€νΈλ μ κ·Όμ± λ¬Έμ λ₯Ό μλ³νκ³ ν΄κ²°νλ λ° μ€μν©λλ€. μ κ·Όμ± ν μ€νΈμλ λ€μκ³Ό κ°μ λ€μν λꡬμ κΈ°μ μ΄ μμ΅λλ€:
- μλ μ κ·Όμ± κ²μ¬κΈ°: μ΄ λꡬλ μΉ νμ΄μ§μμ μΌλ°μ μΈ μ κ·Όμ± μ€λ₯λ₯Ό μ€μΊν©λλ€. μλ‘λ WAVE, axe DevTools, Google Lighthouseκ° μμ΅λλ€. μλ κ²μ¬κΈ°λ μ μ©ν μ μμ§λ§, λͺ¨λ λ¬Έμ λ₯Ό κ°μ§ν μλ μμΌλ―λ‘ μ κ·Όμ± ν μ€νΈμ μ μΌν μλ¨μΌλ‘ μμ‘΄ν΄μλ μ λ©λλ€.
- μλ μ κ·Όμ± ν μ€νΈ: μλνλ λκ΅¬λ‘ κ°μ§ν μ μλ μ κ·Όμ± λ¬Έμ λ₯Ό μλ³νκΈ° μν΄ μΉ νμ΄μ§λ₯Ό μλμΌλ‘ κ²ν νλ μμ μ΄ ν¬ν¨λ©λλ€. μ¬κΈ°μλ μ€ν¬λ¦° 리λ, ν€λ³΄λ νμ λ° κΈ°ν 보쑰 κΈ°μ μ μ¬μ©ν ν μ€νΈκ° ν¬ν¨λ©λλ€.
- μ₯μ μΈ μ¬μ©μ ν μ€νΈ: μ κ·Όμ±μ 보μ₯νλ κ°μ₯ ν¨κ³Όμ μΈ λ°©λ²μ ν μ€νΈ κ³Όμ μ μ₯μ μΈμ μ°Έμ¬μν€λ κ²μ λλ€. κ·Έλ€μ νΌλλ°±μ λ€μν μꡬλ₯Ό κ°μ§ κ°μΈμ μν μΉμ¬μ΄νΈμ μ μ©μ±μ λν κ·μ€ν ν΅μ°°λ ₯μ μ 곡ν μ μμ΅λλ€.
WCAG λ° μ κ·Όμ± νμ€
μΉ μ½ν μΈ μ κ·Όμ± κ°μ΄λλΌμΈ(WCAG)μ μΉ μ½ν μΈ λ₯Ό λ μ κ·ΌνκΈ° μ½κ² λ§λ€κΈ° μν κ΅μ μ μΌλ‘ μΈμ λ μ§μΉ¨ λͺ¨μμ λλ€. WCAGλ μλ μμ΄λ μΉ μ»¨μμμ(W3C)μμ κ°λ°νμΌλ©°, λ€μν μμ€μ μ κ·Όμ± μ€μ(A, AA, AAA)μ λν ν¬κ΄μ μΈ μ±κ³΅ κΈ°μ€μ μ 곡ν©λλ€. WCAG μ€μλ₯Ό μν΄ λ Έλ ₯νλ κ²μ μ κ·Ό κ°λ₯ν μΉ κ²½νμ λ§λλ λ° μμ΄ ν΅μ¬μ μΈ λ¨κ³μ λλ€. λ§μ κ΅κ°μ μ§μμμλ μΉμ¬μ΄νΈκ° WCAGλ₯Ό μ€μνλλ‘ μꡬνλ λ²λ₯ κ³Ό κ·μ μ κ°μ§κ³ μμ΅λλ€. μλ λ€μκ³Ό κ°μ΅λλ€:
- μΉμ 508 (λ―Έκ΅): μ°λ°© κΈ°κ΄μ΄ μ μ λ° μ 보 κΈ°μ μ μ₯μ μΈμ΄ μ κ·Όν μ μλλ‘ λ§λ€λλ‘ μꡬν©λλ€.
- μ¨ν리μ€μ£Ό μ₯μ μΈ μ κ·Όμ± λ²(AODA) (μΊλλ€): μ¨ν리μ€μ£Όμ κΈ°κ΄λ€μ΄ μΉμ¬μ΄νΈλ₯Ό μ₯μ μΈμ΄ μ κ·Όν μ μλλ‘ λ§λ€λλ‘ μꡬν©λλ€.
- μ λ½ μ κ·Όμ± λ²(EAA) (μ λ½ μ°ν©): μΉμ¬μ΄νΈ λ° λͺ¨λ°μΌ μ±μ ν¬ν¨ν κ΄λ²μν μ ν λ° μλΉμ€μ λν μ κ·Όμ± μꡬ μ¬νμ μ€μ ν©λλ€.
κΈλ‘λ² κ³ λ € μ¬ν
μ μΈκ³ μ¬μ©μλ₯Ό μν μ κ·Ό κ°λ₯ν μΉμ¬μ΄νΈλ₯Ό μ€κ³νκ³ κ°λ°ν λλ λ€μμ κ³ λ €νλ κ²μ΄ μ€μν©λλ€:
- μΈμ΄ λ° νμ§ν: μ΄λ―Έμ§ λ체 ν μ€νΈ, μμ λ μ΄λΈ λ° κΈ°ν ν μ€νΈ μμλ₯Ό ν¬ν¨νμ¬ μΉμ¬μ΄νΈκ° λ€λ₯Έ μΈμ΄μ λ§κ² μ μ ν νμ§νλμλμ§ νμΈνμμμ€. λ€λ₯Έ λ¬Έμ μ§ν©κ³Ό ν μ€νΈ λ°©ν₯μ±(μ: μ€λ₯Έμͺ½μμ μΌμͺ½μΌλ‘ μ°λ μΈμ΄)μ μν₯μ κ³ λ €νμμμ€.
- λ¬Ένμ κ³ λ € μ¬ν: μ κ·Όμ±μ μν₯μ λ―ΈμΉ μ μλ λ¬Ένμ μ°¨μ΄λ₯Ό μΈμ§νμμμ€. μλ₯Ό λ€μ΄, μμμ μμ§μ±μ λ¬Ένλ§λ€ λ€λ₯Ό μ μμΌλ©° μΌλΆ μ΄λ―Έμ§λ νΉμ μ§μμμ λΆμΎνκ±°λ λΆμ μ ν μ μμ΅λλ€.
- 보쑰 κΈ°μ μ¬μ©: λ€λ₯Έ μ§μμμμ λ€μν 보쑰 κΈ°μ 보κΈλ₯ μ μ‘°μ¬νμμμ€. μ΄λ ν μ€νΈ λ° μ΅μ ν λ Έλ ₯μ μ°μ μμλ₯Ό μ νλ λ° λμμ΄ λ μ μμ΅λλ€.
- λ²μ μꡬ μ¬ν: λ€λ₯Έ κ΅κ° λ° μ§μμ μ κ·Όμ± λ²λ₯ λ° κ·μ μ μΈμ§νμμμ€.
κ²°λ‘
μΉ μ κ·Όμ± APIλ μ₯μ κ° μλ μ¬μ©μλ₯Ό μν ν¬μ©μ μΈ μΉ κ²½νμ λ§λλ λ° κΈ°λ³Έμ΄ λ©λλ€. κ°λ°μλ μ΄λ¬ν APIλ₯Ό μ¬λ°λ₯΄κ² μ΄ν΄νκ³ κ΅¬νν¨μΌλ‘μ¨ μΉ μ½ν μΈ κ° μ€ν¬λ¦° 리λ λ° ν€λ³΄λ μ¬μ©μκ° μ κ·Όν μ μλλ‘ λ³΄μ₯νμ¬ κ°μΈμ΄ λμ§νΈ μΈμμ μμ ν μ°Έμ¬ν μ μλλ‘ μλμ κ°νν μ μμ΅λλ€. νλ‘μ νΈ μ΄κΈ°λΆν° μ κ·Όμ±μ μ°μ μνκ³ μ κΈ°μ μΈ μ κ·Όμ± ν μ€νΈλ₯Ό ν΅ν©νλ©΄ λͺ¨λ μ¬λμκ² λ μ¬μ©μ μΉνμ μ΄κ³ 곡νν μΉμ λ§λ€ μ μμ΅λλ€. WCAG κ°μ΄λλΌμΈμ μ€μνκ³ , μ€ν¬λ¦° 리λ μ§μ λ° ν€λ³΄λ νμμ λν λͺ¨λ² μ¬λ‘λ₯Ό λ°λ₯΄λ©°, κΈλ‘λ² μμλ₯Ό κ³ λ €ν¨μΌλ‘μ¨ μ§μ μΌλ‘ λ€μνκ³ κ΅μ μ μΈ μ¬μ©μμκ² μ κ·Ό κ°λ₯ν μΉμ¬μ΄νΈλ₯Ό λ§λ€ μ μμ΅λλ€. μ κ·Όμ±μ λ¨μ§ κΈ°μ μ μΈ μꡬ μ¬νμ΄ μλλΌ ν¬μ©μ±κ³Ό λλ±ν κΈ°νμ λν μ½μμμ κΈ°μ΅νμμμ€.
μ κ·Όμ±μ μμ©νμμμ€. λͺ¨λλ₯Ό μν΄ κ΅¬μΆνμμμ€.