[HTML] 🐒WAI-ARIA μ‚¬μš©λ²•

TATAΒ·2023λ…„ 3μ›” 2일
0

HTML

λͺ©λ‘ 보기
4/6

β–· WAI-ARIA

WAI (Web Accessibility Initiative)
μ›Ή ν‘œμ€€μ„ μ •ν•˜λŠ” W3Cμ—μ„œ μ›Ή 접근성을 λ‹΄λ‹Ήν•˜λŠ” κΈ°κ΄€

ARIA (Accessible Rich Internet Applications)
μž₯μ• κ°€ μžˆλŠ” μ‚¬λžŒλ“€μ΄ μ›Ή μ½˜ν…μΈ μ™€ μ›Ή μ‘μš© ν”„λ‘œκ·Έλž¨μ—
더 μ‰½κ²Œ μ•‘μ„ΈμŠ€ν•  수 μžˆλ„λ‘ ν•˜λŠ”, 즉 μ›Ή 접근성을 κ°–μΆ”κΈ° μœ„ν•œ 기술

RIA (Rich Internet Applications)
λ”°λ‘œ ν”„λ‘œκ·Έλž¨μ„ μ„€μΉ˜ν•˜μ§€ μ•Šμ•„λ„ μ›Ή λΈŒλΌμš°μ €λ₯Ό 톡해 μ‚¬μš©ν•  수 μžˆλŠ” νŽΈλ¦¬μ„±κ³Ό
ν”„λ‘œκ·Έλž¨μ„ 직접 μ„€μΉ˜ν•΄μ„œ μ‚¬μš©ν•˜λŠ” κ²ƒμ²˜λŸΌ λΉ λ₯Έ λ°˜μ‘μ˜ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό
λ™μ‹œμ— κ°€μ§€λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜. SPAλ₯Ό μ˜λ―Έν•˜λŠ” κ²½μš°κ°€ λ§Žλ‹€.

WAI-ARIAλŠ” WAIμ—μ„œ λ°œν‘œν•œ RIA ν™˜κ²½μ—μ„œμ˜ μ›Ή μ ‘κ·Όμ„± 기술 κ·œκ²©μ΄λ‹€.


Β WAI-ARIA의 ν•„μš”μ„±Β 

WAI-ARIAλŠ” HTML μš”μ†Œμ— μΆ”κ°€μ μœΌλ‘œ 의미λ₯Ό λΆ€μ—¬ν•  수 있게 ν•΄μ€€λ‹€.

SPA처럼 AJAXλ₯Ό μ‚¬μš©ν•˜λŠ” 상황, 즉 μƒˆλ‘œκ³ μΉ¨ 없이 νŽ˜μ΄μ§€μ˜ λ‚΄μš©μ΄ λ°”λ€ŒλŠ”μƒν™©μ—μ„œλ„
λ³€κ²½λœ μ˜μ—­μ— λŒ€ν•œ 정보λ₯Ό 전달해쀄 수 μžˆμ–΄ 동적인 μ½˜ν…μΈ μ—μ„œλ„ μ›Ή 접근성을 ν–₯μƒμ‹œν‚¬ 수 μžˆλ‹€.

β—οΈμ‚¬μš©μ‹œ μ£Όμ˜ν•  점
μ‹œλ§¨ν‹± μš”μ†Œλ§ŒμœΌλ‘œ 의미λ₯Ό μΆ©λΆ„νžˆ
λΆ€μ—¬ν•  수 μ—†λŠ” μƒν™©μ—μ„œλ§Œ WAI-ARIAλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.
(보쑰적으둜 μ‚¬μš©ν•΄μ•Ό ν•˜λ©°, WAI-ARIAλ₯Ό λ‚¨μš©ν•˜λ©΄ μ•ˆλ¨)


Β WAI-ARIA μ‚¬μš©λ²•Β 

WAI-ARIAλŠ” HTML νƒœκ·Έ 내뢀에 속성(attribute)을 μΆ”κ°€ν•¨μœΌλ‘œμ¨
의미λ₯Ό 뢀여해쀄 수 있으며, μ†μ„±μ—λŠ” 크게 μ„Έ 가지 λΆ„λ₯˜κ°€ μžˆλ‹€.

μ—­ν• (role) : HTML μš”μ†Œμ˜ 역할을 μ •μ˜ν•˜λŠ” 속성
μƒνƒœ(state) : μš”μ†Œμ˜ ν˜„μž¬ μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 속성
속성(property) : μš”μ†Œμ˜ νŠΉμ§•μ„ μ •μ˜ν•˜λŠ” 속성(attribute)


Β μ—­ν• (role)Β 

Β roleΒ 

HTML의 μš”μ†Œ μ’…λ₯˜μ™€ 역할이 μ„œλ‘œ λ§žμ§€ μ•Šμ„ λ•Œ,
μ–΄λ–€ 역할을 ν•˜λŠ” μš”μ†ŒμΈμ§€ λͺ…μ‹œν•΄μ€„ λ•Œ μ‚¬μš©ν•  수 μžˆλŠ” 속성(attribute)이닀.

β–· μ˜ˆμ‹œ 1

<div role="button">divμ΄μ§€λ§Œ button으둜 μ‚¬μš©λ˜λŠ” μš”μ†Œ</div>

---------
<!-- HTML μš”μ†Œλ‘œ μΆ©λΆ„νžˆ νŒŒμ•…ν•  수 μžˆλŠ” λ‚΄μš©μ„ WAI-ARIA둜 또 μ„€λͺ…ν•΄ 쀄 ν•„μš”λŠ” μ—†λ‹€. -->
<!-- 잘λͺ»λœ μ˜ˆμ‹œ -->
<button role="button">button인 μš”μ†Œ</button>

---------
<!-- μ‹œλ§¨ν‹± μš”μ†Œ λ³Έμ—°μ˜ 의미λ₯Ό μž„μ˜λ‘œ 바꾸지 μ•Šμ•„μ•Ό ν•œλ‹€. -->
<!-- 잘λͺ»λœ μ˜ˆμ‹œ -->
<h1 role="button">h1인 μš”μ†Œ</h1>

β–· μ˜ˆμ‹œ 2

<!-- ꡬ쑰가 νƒ­μ˜ 역할을 ν•˜κ³  μžˆμŒμ„ ν‘œμ‹œ -->
<div role="tablist">
  <li role="tab">Tab1</li>
  <li role="tab">Tab2</li>
  <li role="tab">Tab3</li>
</div>

<div role="tabpanel">Tab menu ONE</div>
<div role="tabpanel">Tab menu TWO</div>
<div role="tabpanel">Tab menu THREE</div>

Β μƒνƒœ(State)Β 

Β aria-selectedΒ 
Tab μ»΄ν¬λ„ŒνŠΈμ—μ„œ ν˜„μž¬ μ–΄λ–€ 탭이 μ„ νƒλ˜μ–΄ μžˆλŠ”μ§€ ν‘œμ‹œν•  수 μžˆλ‹€.

<div role="tabList">
  <!-- 3개의 νƒ­ μ€‘μ—μ„œ 첫 번째 탭이 μ„ νƒλœ μƒνƒœμž„μ„ μ•Œ 수 있게 λ˜μ—ˆλ‹€. -->
  <li role="tab" aria-selected="true">Tab1</li>
  <li role="tab" aria-selected="false">Tab2</li>
  <li role="tab" aria-selected="false">Tab3</li>
</div>

<div role="tabpanel">Tab menu ONE</div>
<div role="tabpanel">Tab menu TWO</div>
<div role="tabpanel">Tab menu THREE</div>

Β aria-expandedΒ 
μ•„μ½”λ””μ–Έ UIκ°€ νŽΌμ³μ§„ μƒνƒœμΈμ§€ ν‘œμ‹œν•΄ μ€€λ‹€.

Β aria-hiddenΒ 
μš”μ†Œκ°€ μˆ¨κΉ€ μƒνƒœμΈμ§€λ₯Ό ν‘œμ‹œν•΄ μ€€λ‹€.


 속성(Property)Β 

Β aria-labelΒ 

ν…μŠ€νŠΈ μ½˜ν…μΈ  없이 μ΄λ―Έμ§€λ‘œλ§Œ λ§Œλ“€μ–΄μ§„ λ²„νŠΌμ²˜λŸΌ
μš”μ†Œμ— λŒ€ν•œ 정보λ₯Ό μ „ν˜€ 얻을 수 μ—†λŠ” κ²½μš°μ— μ‚¬μš©ν•œλ‹€.

<button aria-label="λ‹«κΈ°"/> <img src="X.png" /> </button>
<button aria-label="검색"/> <img src="돋보기.png" /> </button>

Β aria-liveΒ 

λΈŒλΌμš°μ§• 도쀑에 λ‚΄μš©μ„ λ„μš°λŠ” alert modal dialog 와 같은 역할을 ν•˜λŠ” μš”μ†Œμ΄κ±°λ‚˜,
AJAX κΈ°μˆ μ„ μ‚¬μš©ν•˜μ—¬ μ‹€μ‹œκ°„μœΌλ‘œ λ‚΄μš©μ„ κ°±μ‹ ν•˜λŠ” μ˜μ—­μ— μ‚¬μš©ν•˜λŠ” 속성이닀.

μ‹œκ° μž₯애인듀은 ν™”λ©΄μ˜ 동적인 μš”μ†Œλ₯Ό μ•Œμ•„μ±„κΈ° μ–΄λ ΅κΈ° λ•Œλ¬Έμ—,
이 속성을 μ‚¬μš©ν•΄μ„œ μ‹€μ‹œκ°„μœΌλ‘œ κ°±μ‹ λ˜λŠ” λ‚΄μš©μ„ μ•Œλ €μ£Όλ©΄ 큰 도움이 λœλ‹€.

β–· 속성 κ°’
polite: 슀크린 리더가 ν˜„μž¬ 읽고 μžˆλŠ” λ‚΄μš©μ„ λͺ¨λ‘ μ½κ³ λ‚˜μ„œ κ°±μ‹ λœ λ‚΄μš©μ„ μ‚¬μš©μžμ—κ²Œ μ „λ‹¬ν•œλ‹€.
assertive: 슀크린 리더가 ν˜„μž¬ μ½κ³ μžˆλŠ” λ‚΄μš©μ„ μ€‘λ‹¨ν•˜κ³  κ°±μ‹ λœ λ‚΄μš©μ„ λ°”λ‘œ μ‚¬μš©μžμ—κ²Œ μ „λ‹¬ν•œλ‹€.
off(default)



πŸ“š WAI-ARIA에 λŒ€ν•΄ 더 μ•Œμ•„λ³΄κ³  μ‹Άλ‹€λ©΄?
πŸ‘‰ MDN - Using ARIA: Roles, states, and properties
πŸ‘‰ W3C - ARIA in HTML
πŸ‘‰ material

profile
🐾

0개의 λŒ“κΈ€