WAI-ARIA ๋ฌด์์ธ์ง ์ด๋ ์ํฉ ์ผ ๋ ์ฌ์ฉํด์ผ ํ๋์ง ํ์ตํ๋ค.
์น ํ์ค์ ์ ํ๋ W3C์์ ์น ์ ๊ทผ์ฑ์ ๋ด๋นํ๋ ๊ธฐ๊ด
์ฅ์ ๊ฐ ์๋ ์ฌ๋๋ค์ด ์น ์ฝํ ์ธ ์ ์น ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ ์ฝ๊ฒ ์ก์ธ์คํ ์ ์๋๋ก ํ๋, ์ฆ ์น ์ ๊ทผ์ฑ์ ๊ฐ์ถ๊ธฐ ์ํ ๊ธฐ์
RIA (Rich Internet Applications)
๋ฐ๋ก ํ๋ก๊ทธ๋จ์ ์ค์นํ์ง ์์๋ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ฌ์ฉํ ์ ์๋ ํธ๋ฆฌ์ฑ + ํ๋ก๊ทธ๋จ์ ์ง์ ์ค์นํด์ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ๋น ๋ฅธ ๋ฐ์์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋์์ ๊ฐ์ง๋ ์น ์ ํ๋ฆฌ์ผ์ด์ . SPA๋ฅผ ์๋ฏธํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
โ๏ธ โ์๋ฉํฑ ์์๋ง์ผ๋ก ์๋ฏธ๋ฅผ ์ถฉ๋ถํ ๋ถ์ฌํ ์ ์๋ ์ํฉโ์ด๋
์๋ฉํฑ ์์๋ง์ผ๋ก ์ถฉ๋ถํ ์ํฉ์์๋ WAI-ARIA๋ฅผ ์ฌ์ฉํ์ง ์์์ผ ํ๋ค๋ ์๋ฏธ
WAI-ARIA๋ ๋ณด์กฐ์ ์ธ ์ญํ ๋ก๋ง ์ฌ์ฉํด์ผ ํ๋ค.
WAI-ARIA๋ฅผ ๋จ์ฉํด์ ์ ๋๋ฉฐ, ์๋ฉํฑํ HTML์ ์์ฑํ๋ ๊ฒ์ด ์ต์ฐ์ ์ด๋ค.
WAI-ARIA์ ์์ฑ์๋ ํฌ๊ฒ ์ธ ๊ฐ์ง ๋ถ๋ฅ๊ฐ ์๋ค.
HTML์ ์์ ์ข ๋ฅ์ ์ญํ ์ด ์๋ก ๋ง์ง ์์ ๋, ์ด๋ค ์ญํ ์ ํ๋ ์์์ธ์ง ๋ช ์ํด ์ค ๋ ์ฌ์ฉํ ์ ์๋ ์์ฑ
<div role="button">div์ด์ง๋ง button์ผ๋ก ์ฌ์ฉ๋๋ ์์</div>
์๋ชป๋ ์์
- HTML ์์๋ก ์ถฉ๋ถํ ํ์ ํ ์ ์๋ ๋ด์ฉ์ ๋ ์ค๋ช ํด ์ค ํ์๋ ์๋ค.
<!--button ํ๊ทธ๋ฅผ ์ง์ ํ์ผ๋ role์์ฑ์ ์ด์ฉํด ํ ๋ฒ ๋ ์ง์ ํด ์ฃผ์๋ค.--> <button role="button">button์ธ ์์</button>
- ์๋ฉํฑ ์์ ๋ณธ์ฐ์ ์๋ฏธ๋ฅผ ์์๋ก ๋ฐ๊พธ์ง ๋ง์์ผ ํ๋ค.
<!--h1 ํ๊ทธ๋ ์ ๋ชฉ์ด๋ role์์ฑ์ผ๋ก button์ผ๋ก ์ค๋ช ํด ์ฃผ๊ณ ์๋ค.--> <h1 role="button">h1์ธ ์์</h1>
์ฌ๋ฌ ๊ฐ์ ์ ํ ๊ฐ๋ฅํ ์์ ์ค์์ ์ ํ ์ํ์ธ ์์๋ฅผ ํ์ํ ์ ์๋ aria-selected
์์ฑ
<!--ํญ ๋ฉ๋ด๊ฐ ์์ ๋ ๋ฉ๋ด ํด๋ฆญ ์ฌ๋ถ ํ์-->
<ul role="tabList">
<li role="tab" aria-selected="true">Tab1</li>
<li role="tab" aria-selected="false">Tab2</li>
<li role="tab" aria-selected="false">Tab3</li>
</ul>
<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
์์๊ฐ ์จ๊น ์ํ์ธ์ง๋ฅผ ํ์์ด์ธ ๋ค์ํ ์์ฑ์ด ์๋ค.
์์์ ๋ผ๋ฒจ์ ๋ถ์ฌ์ฃผ๋ ๊ธฐ๋ฅ
<button aria-label="๋ซ๊ธฐ"> <img src="X.png" /> </button>
<button aria-label="๊ฒ์"> <img src="๋๋ณด๊ธฐ.png" /> </button>
ํด๋น ์์๊ฐ ์ค์๊ฐ์ผ๋ก ๋ด์ฉ์ ๋ณ๊ฒฝํ๋ ์์ญ์ธ์ง ํ์
- ๋ธ๋ผ์ฐ์ง ๋์ค์ ๋ด์ฉ์ ๋์ฐ๋ alert
, modal
, dialog
์ ๊ฐ์ ์ญํ ์ ํ๋ ์์
- AJAX ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์ค์๊ฐ์ผ๋ก ๋ด์ฉ์ ๋ณ๊ฒฝํ๋ ์์ญ์ ์ฌ์ฉ
์์ฑ ๊ฐ์ผ๋ก๋
polite
,assertive
,off(default)
๊ฐ ์๋ค.
- polite : ์คํฌ๋ฆฐ ๋ฆฌ๋๊ฐ ํ์ฌ ์ฝ๊ณ ์๋ ๋ด์ฉ์ ๋ชจ๋ ์ฝ๊ณ ๋์ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ์ฌ์ฉ์์๊ฒ ์ ๋ฌ
- assertive : ์คํฌ๋ฆฐ ๋ฆฌ๋๊ฐ ํ์ฌ ์ฝ๊ณ ์๋ ๋ด์ฉ์ ์ค๋จํ๊ณ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๋ฐ๋ก ์ฌ์ฉ์์๊ฒ ์ ๋ฌ
๋ ๋ง์ง๋ง role, aria-label ์ ๋๋ง ์ฌ์ฉํด๋ HTML์ ์ถ๊ฐ์ ์ธ ์๋ฏธ๋ฅผ ๋ถ์ฌํ ์ ์๊ณ ์น ์ ๊ทผ์ฑ์ ์ด๋ ์ ๋ ํฅ์ ์ํฌ ์ ์๋ค.
์น ์ ๊ทผ์ฑ์ ํ๋ณดํ ๋ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์๋ฉํฑํ HTML์ ์์ฑํ๋ ๊ฒ์ด๋ค.
WAI-ARIA๋ ๋ณด์กฐ์ ์ธ ์ญํ ๋ก๋ง ์ฌ์ฉํด์ผ ํ๋ฉฐ, ๋จ์ฉํด์๋ ์ ๋๋ค.
WAI-ARIA๋ผ๋ ์ฉ์ด์ ์ด๋ฒ ํ์ต์์ ์ฒ์ ์ ํ๊ฒ ๋์๋ค.
๊ฐํน ํํ์ด์ง ๊ฒ์ ํ ๋ ๋ณด์ด๋ role์ด ๋ญ์ง? ํ์๋๋ฐ ์ด๋ฒ์ ๊ทธ ์๋ฌธ์ด ํ๋ฆฐ ๊ฑฐ ๊ฐ๋ค.
์น ์ ๊ทผ์ฑ์ ํ๋ณดํ ๋ WAI-ARIA๊ฐ ์๋ ์๋ฉํฑํ HTML์ ์์ฑํด์ผ ํ๋ฉฐ(header, footer, nav, section ๋ฑ)
WAI-ARIA๋ ๋ถ๊ฐ์ ์ค๋ช
์ด ํ์ํ ๋ ์ฌ์ฉํด์ผ ํ๋ค.