2. HTML์์ ARIA ์ฌ์ฉ์ ๋ํ ์ฐธ๊ณ ์ฌํญ
2.1 ARIA ์ฌ์ฉ์ ์ฒซ ๋ฒ์งธ ๊ท์น
์์์ ์ฉ๋๋ฅผ ๋ณ๊ฒฝํ๊ณ ARIA ์ญํ , ์ํ ๋๋ ์์ฑ์ ์ถ๊ฐํ์ฌ ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๋์ ์ด๋ฏธ ๋ด์ฅ๋์ด ์๋ ์๋ฏธ์ ๋์์ ๊ฐ์ถ ๊ธฐ๋ณธ HTML ์์ [HTML51] ๋๋ ์์ฑ์ ์ฌ์ฉํ ์ ์๋ค๋ฉด ๊ทธ๋ ๊ฒ ํ์ธ์.
์ด๋ค ์ํฉ์์ ์ด๊ฒ์ด ๋ถ๊ฐ๋ฅํฉ๋๊น?
- ๊ธฐ๋ฅ์ด HTML [HTML51]์์ ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ง ๊ตฌํ๋์ง ์์๊ฑฐ๋ ๊ตฌํ๋์์ง๋ง ์ ๊ทผ์ฑ ์ง์์ด ์๋ ๊ฒฝ์ฐ์ ๋๋ค.
- ์๊ฐ์ ๋์์ธ ์ ์ฝ์ผ๋ก ์ธํด ํน์ ๊ธฐ๋ณธ ์์์ ์ฌ์ฉ์ด ๋ฐฐ์ ๋๋ ๊ฒฝ์ฐ, ์์์ ์คํ์ผ์ ํ์์ ๋ฐ๋ผ ์ง์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ํ์ฌ HTML์์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ธ ๊ฒฝ์ฐ.
2.2 ARIA ์ฌ์ฉ์ ๋ ๋ฒ์งธ ๊ท์น
๊ผญ ํ์ํ ๊ฒฝ์ฐ๊ฐ ์๋๋ฉด ๊ธฐ๋ณธ ์๋ฏธ๋ฅผ ๋ณ๊ฒฝํ์ง ๋ง์ธ์.
์: ๊ฐ๋ฐ์๊ฐ ํญ์ธ ์ ๋ชฉ์ ์์ฑํ๋ ค๊ณ ํฉ๋๋ค.
๋ค์์ ์ํํ์ง ๋ง์ญ์์ค.
<h2 role=tab>heading tab</h2>
์ด๋ ๊ฒ ํ์ญ์์ค.
<div role=tab><h2>heading tab</h2></div>
๋น๋ํํ ์์๊ฐ ๋ํํ ์์์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ๊ฐ๋ฐ์๋ ARIA๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฏธ๋ฅผ ์ถ๊ฐ ํ๊ณ ์คํฌ๋ฆฝํ ์ ์ฌ์ฉํ์ฌ ์ ์ ํ ์ํธ ์์ฉ ๋์์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ฒํผ์ ๊ฒฝ์ฐ (๊ธฐ๋ณธ HTML) ๋ฒํผ์ ์ฌ์ฉํ๋ ๊ฒ์ด ํจ์ฌ ๋ ์ข๊ณ ์ฝ์ต๋๋ค.
์๋น(fallback)๋ก ์ฌ์ฉ๋ ARIA ์ญํ ๊ณผ ์ ์ฌํ ์๋ฏธ๋ฅผ ๊ฐ๋ ๊ธฐ๋ณธ HTML ์์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์๋ฅผ ๋ค์ด ARIA๋ฅผ ์ง์ํ๋ ํธ๋ฆฌ ์์ ฏ ์คํฌ๋ฆฝํธ์ ๊ตฌ์กฐ์๋ HTML ๋ชฉ๋ก ์์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
2.3 ARIA ์ฌ์ฉ์ ์ธ ๋ฒ์งธ ๊ท์น
๋ชจ๋ ๋ํํ ARIA ์ปจํธ๋กค์ ํค๋ณด๋๋ก ์ฌ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค.
์ฌ์ฉ์๊ฐ ํด๋ฆญ, ํญ, ๋๋๊ทธ, ๋๋กญ, ์ฌ๋ผ์ด๋ ๋๋ ์คํฌ๋กคํ ์ ์๋ ์์ ฏ์ ์์ฑํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์๋ ์์ ฏ์ผ๋ก ์ด๋ํ๊ณ ํค๋ณด๋๋ฅผ ์ฌ์ฉํ์ฌ ๋๋ฑํ ์์ ์ ์ํํ ์๋ ์์ด์ผ ํฉ๋๋ค.
๋ชจ๋ ๋ํํ ์์ ฏ์ ํด๋น๋๋ ๊ฒฝ์ฐ ํ์ค ํค ์ ๋ ฅ ๋๋ ํค ์ ๋ ฅ ์กฐํฉ์ ์๋ตํ๋๋ก ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, role=button
์์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํฌ์ปค์ค๋ฅผ ๋ฐ์ ์ ์์ด์ผ ํ๊ณ ์ฌ์ฉ์๋ enter(WIN OS์์) ๋๋ return(MAC OS)์ spaceํค๋ฅผ ๋ชจ๋ ์ฌ์ฉํ์ฌ ์์์ ๊ด๋ จ๋ ์์
์ ํ์ฑํํ ์ ์์ด์ผ ํฉ๋๋ค.
[wai-aria-practices-1.1]์ ๋์์ธ ํจํด ๋ฐ ์์ ฏ๊ณผ ํค๋ณด๋ ์ธํฐํ์ด์ค ๊ฐ๋ฐ ์น์ ์ ์ฐธ์กฐํ์ธ์.
2.4 ARIA ์ฌ์ฉ์ ๋ค ๋ฒ์งธ ๊ท์น
ํฌ์ปค์ค ๊ฐ๋ฅํ ์์์๋ role="presentation"
๋๋ aria-hidden="true"
๋ฅผ ์ฌ์ฉํ์ง ๋ง์ธ์.
ํฌ์ปค์ค ๊ฐ๋ฅํ ์์์ ์ด๋ค ์ค ํ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ผ๋ถ ์ฌ์ฉ์๋ '์๋ ๊ฒ(nothing)'์ ์ง์คํ๊ฒ ๋ฉ๋๋ค.
๋ค์์ ์ํํ์ง ๋ง์ญ์์ค.
<button role=presentation>press me</button>
๋ค์์ ์ํํ์ง ๋ง์ญ์์ค.
<button aria-hidden="true">press me</button>
ํ์๋๋ ๋ํํ ์์์ ๋ถ๋ชจ/์กฐ์ ์์์ aria-hidden
๋ฅผ ์ ์ฉํ๋ฉด ๋ํํ ์์๋ ์จ๊ฒจ์ง๋ฏ๋ก ๋ค์์ ์ํํ์ง ๋ง์ธ์.
<div aria-hidden="true">
<button>press me</button>
</div>
๋ํํ ์์๋ฅผ ๋ณผ ์ ์๊ฑฐ๋ ์ํธ์์ฉํ ์ ์๋ ๊ฒฝ์ฐ, ํฌ์ปค์ค๋ฅผ ๋ฐ์ ์ ์๋ ํ aria-hidden
๋ฅผ ์ ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด:
button {opacity:0}
<button tabindex="-1" aria-hidden="true">press me</button>
๋ํํ ์์(์์ ์์ฒด ๋๋ ์์์ ์์ ์์ ์ค ํ๋)๊ฐ display:none
๋๋ visibility:hidden
๋ฅผ ์ฌ์ฉํ์ฌ ์จ๊ฒจ์ง ๊ฒฝ์ฐ ํฌ์ปค์ค๋ฅผ ๋ฐ์ ์ ์์ผ๋ฉฐ ์ ๊ทผ์ฑ ํธ๋ฆฌ์์๋ ์ ๊ฑฐ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด aria-hidden="true"
์ ์ถ๊ฐ๋ ๋ช
์์ ์ผ๋ก tabindex="-1"
๋ฅผ ์ค์ ํ ํ์๊ฐ ์์ต๋๋ค.
2.5 ARIA ์ฌ์ฉ์ ๋ค์ฏ ๋ฒ์งธ ๊ท์น
๋ชจ๋ ๋ํํ ์์์๋ ์ ๊ทผ ๊ฐ๋ฅํ ์ด๋ฆ์ด ์์ด์ผ ํฉ๋๋ค.
๋ํํ ์์์๋ ์ ๊ทผ์ฑ API ์ ๊ทผ ๊ฐ๋ฅํ ์ด๋ฆ (๋๋ ์ด์ ์์ํ๋ ์ด๋ฆ) ์์ฑ์ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ์๋ง ์ ๊ทผ ๊ฐ๋ฅ ์ด๋ฆ์ด ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์๋ ์ฝ๋ ์์ ์ input type=text
์๋ 'user name' ๋ผ๋ฒจ์ด ํ์๋์ง๋ง ์ ๊ทผ ๊ฐ๋ฅํ ์ด๋ฆ์ ์์ต๋๋ค.
user name <input type="text">
or
<span>user name</span> <input type="text">
์ปจํธ๋กค์ MSAA accName
์์ฑ์ด ๋น์ด ์์ต๋๋ค.
์ด์ ๋นํด ์๋ ์ฝ๋ ์์ input type=text
์์๋ 'user name'์ด๋ผ๋ ๋ ์ด๋ธ์ด ํ์๋๊ณ ์ ๊ทผ ๊ฐ๋ฅํ ์ด๋ฆ์ด ์์ต๋๋ค. ์ด ์์ ์๋ input
์์๊ฐ ๋ ์ด๋ธ ์ง์ ๊ฐ๋ฅํ(labelable) ์์์ด๊ณ label
์ด ๋ ์ด๋ธ ํ
์คํธ๋ฅผ ์
๋ ฅ๊ณผ ์ฐ๊ฒฐํ๋ ๋ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉ๋์๊ธฐ ๋๋ฌธ์ ์ ๊ทผ ๊ฐ๋ฅํ ์ด๋ฆ์ด ์์ต๋๋ค.
<!-- Note: use of for/id or wrapping label around text
and control methods will result in an accessible name -->
<input type="text" aria-label="User Name">
or
<span id="p1">user name</span> <input type="text" aria-labelledby="p1">
์ปจํธ๋กค์ MSAA accName
์์ฑ์๋ "user name" ๊ฐ์ด ์์ต๋๋ค.
์ฐธ๊ณ : ์์ ์๋ ARIA ์์ ฏ์ ๋ํ ๊ฒ์
๋๋ค. ์ผ๋ฐ HTML ์
๋ ฅ์ ๊ฒฝ์ฐ ARIA์ ์ฒซ ๋ฒ์งธ ๊ท์น์ ๋ฐ๋ฅด๊ณ for
์์ฑ์ด ์๋ label
์์๋ฅผ ์ฌ์ฉํ์ฌ ๋ ์ด๋ธ์ input
์์์ ์ฐ๊ฒฐํฉ๋๋ค.
HTML label
์์ ๋ฐ ๋ ์ด๋ธ ์ง์ ๊ฐ๋ฅ ์์
๋ค์์ HTML์์ label
์ฌ์ฉ์ ๊ดํ ๊ฒ์
๋๋ค. ARIA ์์ ฏ์ ๊ตฌ์ถํ๋ ๊ฒฝ์ฐ ARIA Authoring Practices Document๋ฅผ ์ฐธ์กฐํ์ธ์.
label
์์๋ label
์ด ๊ธฐ๋ณธ HTML ๋ ์ด๋ธ ์ง์ ๊ฐ๋ฅ ์์๋ฅผ ์ฐธ์กฐํ์ง ์๋ ํ ์ฌ์ฉ์ ์ ์ ์ปจํธ๋กค์ ์ ๊ทผ ๊ฐ๋ฅํ ์ด๋ฆ์ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
<!-- HTML input element with combox role -->
<label>
user name <input type="text" role="combobox">
</label>
์ปจํธ๋กค์ MSAA accName
์์ฑ์๋ "user name" ๊ฐ์ด ์์ต๋๋ค.
ํ ๋น๋ ์ญํ ์ ๊ด๊ณ์์ด div
์์๋ HTML ๋ ์ด๋ธ ์ง์ ๊ฐ๋ฅ ์์๊ฐ ์๋๋๋ค.
<!-- HTML div element with combox role -->
<label>
user name <div role="combobox"></div>
</label>
์ปจํธ๋กค์ MSAA accName
์์ฑ์ด ๋น์ด ์์ต๋๋ค.
๋ค์ฏ ๋ฒ์งธ ๊ท์น์ ์์ ์ค์ ๋๋ค.
2.6 ์ญํ ์ ์ถ๊ฐํ๋ฉด ๊ธฐ๋ณธ ์๋ฏธ์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์?
ARIA ์ญํ ์ ์ถ๊ฐํ๋ฉด ์ ๊ทผ์ฑ API๋ฅผ ํตํด ๋ณด๊ณ ๋๋ ์ ๊ทผ์ฑ ํธ๋ฆฌ์ ๊ธฐ๋ณธ ์ญํ ์๋ฏธ๊ฐ ์ฌ์ ์๋๋ฏ๋ก ARIA๋ ํ๋ฉด ๋ญ๋ ๊ธฐ๋ ๊ธฐํ ๋ณด์กฐ ๊ธฐ์ ์ ๋ณด๊ณ ๋๋ ๋ด์ฉ์ ๊ฐ์ ์ ์ผ๋ก ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์๋ฅผ ๋ค์ด HTML ํธ๋ฆฌ์ ๋ค์ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<h1 role=button>text</h1>
์ ๊ทผ์ฑ ํธ๋ฆฌ์์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฉ๋๋ค.
์ญํ ์ ์ถ๊ฐํ๋ฉด ์๋๋ ๊ฒ
ARIA ์ญํ ์ ์ถ๊ฐํด๋ ๋ณด์กฐ ๊ธฐ์ ์ ์ฌ์ฉํ์ง ์๋ ์ฌ๋๋ค์๊ฒ๋ ์์๊ฐ ๋ค๋ฅด๊ฒ ๋ณด์ด๊ฑฐ๋ ์๋ํ์ง ์์ต๋๋ค. ํธ์คํธ ์์์ ๋์, ์ํ ๋ฐ ์์ฑ์ ๋ณ๊ฒฝ๋์ง ์๊ณ ๊ธฐ๋ณธ ์ญํ ์ ์๋ฏธ๋ง ๋ณ๊ฒฝ ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด HTML ํธ๋ฆฌ์์ ์ด ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<button role=heading aria-level=1>text</button>
์ ๊ทผ์ฑ ํธ๋ฆฌ์์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ์ฌ์ ํ ๋๋ฅผ ์ ์๊ณ , ์ฌ์ ํ ๊ธฐ๋ณธ ํญ ์์์ ์์ผ๋ฉฐ, ์ฌ์ ํ ๋ฒํผ์ฒ๋ผ ๋ณด์ด๊ณ , ๋๋ฅด๋ฉด ๊ด๋ จ ์์ ์ด ๊ณ์ ์คํ๋ฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ๋ฒํผ์ ์ ๋ชฉ์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ด HTML5 ์ค์ ์ค๋ฅ์ธ ์ด์ ์ ๋๋ค.
์ฐธ๊ณ : role
์์์ ๋ณ๊ฒฝ์ ์ฌ์ฉ๋ ์์์ ๋์, ์์ฑ ๋๋ ์ํ๋ฅผ ์ถ๊ฐํ์ง ์์ต๋๋ค. ARIA๋ ๋ธ๋ผ์ฐ์ ์์ ํ์๋๊ฑฐ๋ ์๋ํ๋ ๋ฐฉ์์ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋งํฌ๊ฐ ๋ฒํผ์ฒ๋ผ ์๋ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ role=button
์ถ๊ฐ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ๋ํ ๊ธฐ๋ณธ ๋ฒํผ์ด enter ํค๋ spacebar๋ฅผ ํตํด ํ์ฑํ๋ ์ ์๋ ๊ฒ์ฒ๋ผ space ํค ์
๋ ฅ์ ์์ ํ๋ ํค ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ํฌํจํ์ฌ ๊ธฐ๋ณธ ๋ฒํผ์ฒ๋ผ ๋์ํ๋๋ก ํด์ผ ํฉ๋๋ค.
2.7 ARIA ์ถ๊ฐ๋ ์ธ๋ผ์ธ์ผ๋ก? ์คํฌ๋ฆฝํธ๋ก?
ARIA ์ญํ ๋๋ aria-* ์์ฑ์ด ์ํธ ์์ฉ ๋์์ ์ ๊ณตํ๊ธฐ ์ํด ์คํฌ๋ฆฝํ ์ ์์กดํ์ง ์๋ ๊ฒฝ์ฐ ARIA ๋งํฌ์ ์ ์ธ๋ผ์ธ์ผ๋ก ํฌํจํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ARIA ๋๋๋งํฌ ์ญํ ์ ์ถ๊ฐ ํ๊ฑฐ๋ ARIA ๋ผ๋ฒจ ์ง์ ๋ฐ ์์ฑ ์ค๋ช ์ ์ธ๋ผ์ธ์ผ๋ก ์ถ๊ฐํ๋ ๊ฒ์ ๊ด์ฐฎ์ต๋๋ค.
์ฝํ ์ธ ์ ์ํธ ์์ฉ์ด ์คํฌ๋ฆฝํ ์ด ๊ฐ๋ฅํ ๋ธ๋ผ์ฐ์ง ์ปจํ ์คํธ์์๋ง ์ง์๋๋ ๊ฒฝ์ฐ, ์ฆ Google ๋ฌธ์(์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ํ๋ ค๋ฉด JavaScript๊ฐ ํ์ฑํ๋์ด ์์ด์ผ ํจ) ์ ํ๋ฆฌ์ผ์ด์ ์ Javascript๊ฐ ํ์ฑํ๋์ง ์์ ์ํ์์ ๊ฐ๋จํ ์๋ํ์ง ์์ผ๋ฏ๋ก(๋๊ตฌ์๊ฒ๋) ARIA ๋งํฌ์ ์ ์ธ๋ผ์ธ์ผ๋ก ํฌํจํ๋ ๊ฒ๋ ์์ ํฉ๋๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด ์คํฌ๋ฆฝํ ์ ํตํด ARIA๋ฅผ ์ฝ์ , ๋ณ๊ฒฝ ๋ฐ ์ ๊ฑฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํธ๋ฆฌ ์์ ฏ์ ์ ํ ์น์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<li role=treeitem aria-expanded=false ...
์ฌ์ฉ์๊ฐ ์น์ ์ ํผ์น๋ฉด Javascript๋ฅผ ์ฌ์ฉํ์ฌ ์น์ ์ด ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค.
<li role=treeitem aria-expanded=true ...
2.8 ARIA ์ ํจ์ฑ ๊ฒ์ฌ
๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ARIA ๋งํฌ์
๊ณผ ํจ๊ป HTML5 DOCTYPE์ ์ฌ์ฉํ๊ณ W3C Nu Markup Checker๋ฅผ ์ฌ์ฉํ์ฌ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ ๊ฒ์
๋๋ค. ARIA๋ ๋ค๋ฅธ DOCTYPE
์๋ ๋์ผํ๊ฒ ์๋ ํ์ง๋ง, ๊ด๋ จ DTD๊ฐ ARIA ๋งํฌ์
์ ์ธ์ํ๋๋ก ์
๋ฐ์ดํธ๋์ง ์์๊ณ ๊ทธ๋ด ๊ฐ๋ฅ์ฑ๋ ๊ฑฐ์ ์๊ธฐ ๋๋ฌธ์ ARIA ๋งํฌ์
์ ๋ฐ๊ฒฌํ๋ฉด ๊ฒ์ฆ ๋๊ตฌ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
HTML5 ์ด์ HTML ๋ฒ์ ์ ์ด๋ฌํ ์ ํจ์ฑ ๊ฒ์ฌ ์ค๋ฅ๋ ARIA๊ฐ ์ค์ ์ ๊ทผ์ฑ ๋ฌธ์ ๋ฅผ ์ผ์ผํจ๋ค ๋ ๊ฒ์ ์๋ฏธํ์ง ์์ผ๋ฉฐ ๋ถ์ ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ด ์์ ๊ฒ์์ ์๋ฏธํ์ง๋ ์์ต๋๋ค. ์ด๋ ARIA ์ ๊ทผ์ฑ ์ฃผ์์ ์์ฉํ์ง ์๋ ์ค๋๋ ์๋ ์ ํจ์ฑ ๊ฒ์ฌ ํ ์คํธ์ ๊ฒฐ๊ณผ์ผ ๋ฟ์ ๋๋ค.
์ฐธ๊ณ : ARIA ๊ฒ์ฌ๋ฅผ ์ํ W3C Nu Markup Checker ์ง์์ ์์ ์ค์ด๋ฏ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์ ์ ์ผ๋ก ์์กดํ ์๋ ์์ต๋๋ค(์์ฃผ ํ๋ฅญํ๊ธด ํ์ง๋ง!). ARIA ๋ช ์ธ๋ HTML ๋ช ์ธ์ ARIA ์ค์ ์๊ตฌ ์ฌํญ๊ณผ ์ถฉ๋ํ๋ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
2.9 Role=presentation ํน์ Role=none ์ฌ์ฉ
role=presentation
, ๋๋ ๊ทธ ๋์์ด role=none
์ ํด๋น ์์์์ ์๋ฏธ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
์๋ฅผ ๋ค์ด HTML ํธ๋ฆฌ์์ ์ด ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<h1 role="presentation">text</h1>
์ ๊ทผ์ฑ ํธ๋ฆฌ์์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฉ๋๋ค.
์ฆ, ์๋ฏธ๋ก ์ ์๋ฏธ๊ฐ ์๋ ํ ์คํธ ๋ฌธ์์ด๋ก ์ ๊ทผ์ฑ ํธ๋ฆฌ์ ๋ณด๊ณ ๋ ๋ฟ์ ๋๋ค.
ํ์ ํ์ ํญ๋ชฉ์ด ์๋ ์์์ ๊ฒฝ์ฐ role=presentation/none
์ด ์๋ ์์ ๋ด๋ถ์ ์ค์ฒฉ๋ ๋ชจ๋ ์์๋ ์๋ ์๋ฏธ๋ฅผ ์ ์งํฉ๋๋ค.
์๋ฅผ ๋ค์ด HTML ํธ๋ฆฌ์์ ์ด ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<h1 role="presentation"><abbr>API</abbr></h1>
์ ๊ทผ์ฑ ํธ๋ฆฌ์์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฉ๋๋ค.
ํ์ ํ์ ์์(์: ul
๋๋ table
)๊ฐ ์๋ ์์์ ๊ฒฝ์ฐ role=presentation/none
์ด ์๋ ์์ ๋ด๋ถ์ ์ค์ฒฉ๋ ํ์ ํ์ ์์์ ์๋ฏธ๋ ์ ๊ฑฐ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด HTML ํธ๋ฆฌ์์ ์ด ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<table role="presentation">
<tr>
<td>
<abbr>API</abbr>
</td>
</tr>
</table>
์ ๊ทผ์ฑ ํธ๋ฆฌ์์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฉ๋๋ค.
์ฐธ๊ณ : role=presentation/none
๊ฐ ์๋ ์์์ ํ์ ํ์ ์์๊ฐ ์๋ ๋ชจ๋ ์์๋ ์๋ฏธ ์ฒด๊ณ๋ฅผ ์ ์งํฉ๋๋ค . ์ฌ๊ธฐ์๋ ์ค์ฒฉ ๋ชฉ๋ก์ด๋ ์ค์ฒฉ ํ
์ด๋ธ๊ณผ ๊ฐ์ ํ์ ํ์ ํญ๋ชฉ์ด ์๋ ๋ค๋ฅธ ์์๊ฐ ํฌํจ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด HTML ํธ๋ฆฌ์์ ๋ด๋ถ์ ์ค์ฒฉ๋ ๋ค๋ฅธ ํ ์ด๋ธ์ด ์๋ ํ ์ด๋ธ๋ก ๊ตฌ์ฑ๋ ๋ค์ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<table>
<tr>
<td>
<table>
<tr>
<td>
<abbr>API</abbr>
</td>
</tr>
</table>
</td>
</tr>
</table>
์ ๊ทผ์ฑ ํธ๋ฆฌ์์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฉ๋๋ค.
role=presentation/none
์ ์ธ๋ถ table
์์์ ์ถ๊ฐํ๋ฉด HTML ํธ๋ฆฌ์ ๋ค์ ์ฝ๋๊ฐ ํ์๋ฉ๋๋ค.
<table role="presentation">
<tr>
<td>
<table>
<tr>
<td>
<abbr>API</abbr>
</td>
</tr>
</table>
</td>
</tr>
</table>
role=presentation/none
์ ์ถ๊ฐํ์ฌ ํ์ ํ์ ํญ๋ชฉ(tr
๋ฐ td
์์)์ ํฌํจํ ์ธ๋ถ table
์ ์ ๊ทผ์ฑ ํธ๋ฆฌ์์ ์๋ฏธ๊ฐ ์ ๊ฑฐ๋ฉ๋๋ค
role=presentation/none
์ฌ์ฉ ์
์๋ชป๋ ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ์์ ํ๋๋ฐ ์ฌ์ฉ
<div aria-readonly="true" role="grid">
<table role="presentation">
<tbody>
<tr role="row">
<th role="columnheader">Dog Names</th>
<th role="columnheader">Cat Names</th>
<th role="columnheader">Cow names</th>
</tr>
</tbody>
</table>
<table role="none">
<tbody>
<tr role="row">
<td role="gridcell">Fido</td>
<td role="gridcell">Whiskers</td>
<td role="gridcell">Clarabella</td>
</tr>
<tr role="row">
<td role="gridcell">Woofie</td>
<td role="gridcell">Claws</td>
<td role="gridcell">Glenn</td>
</tr>
</tbody>
</table>
</div>
2.10 ์ค์ฉ์ ์ง์: aria-label, aria-labelledby, aria-describedby
์ด ๊ธ์ ์์ฝํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
-
aria-labelledby
์aria-describedby
๋ ๋ค์ํinput
์ ํ์ ํฌํจํ links ๋ฐ ์์ ์ปจํธ๋กค ๊ณผ ๊ฐ์ ๋ํํ ์ฝํ ์ธ ์์ ์ ๋ํด ๊ฐ๋ ฅํ๊ฒ ์ง์๋ฉ๋๋ค. -
๋๋ถ๋ถ์ ๋ณด์กฐ ๊ธฐ์ ์ ๊ฒฝ์ฐ
aria-label
๋๋aria-labelledby
๋ฅผ<nav>
,<main>
์์์ ์ฌ์ฉํ ์ ์์ง๋ง<footer>
,<section>
,<article>
,<header>
์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. -
<aside>
์๋aria-label
๋๋aria-labelledby
์ ๋ํ ์ง์์ด ํผํฉ๋์ด ์์ต๋๋ค. -
Android์ Talkback์
aria-label
๋๋aria-labelledby.
๊ฐ ์๋ ๋ชจ๋ ๋๋๋งํฌ์ ์ฝํ ์ธ ๋ฅผ ์ฌ์ ์ํฉ๋๋ค. -
div
์์์role=navigation
,role=search
,role=main
์ ์ฌ์ฉํ ๋aria-label
๋๋aria-labelledby
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ด์ฐฎ์ต๋๋ค. ํ์ง๋ง JAWS๋role=banner
,role=complementary
,role=contentinfo
๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. NVDA, VoiceOver ๋ฐ Talkback์์๋ ๊ด์ฐฎ์ต๋๋ค. -
aria-label
,aria-labelledby
,aria-describedby
๋table
,th
,td
์์์์ ์ ์๋ํ์ง๋ง, ๋ค์ ์น์ ์์ ์ค๋ช ํ๋ NVDA, iOS์ VoiceOver ๋ฐ Talkback์ ๋ํ ์์ธ๊ฐ ์์ต๋๋ค. -
ํค๋ฉ ์์์๋
aria-label
,aria-labelledby
๋ฅผ ์ฌ์ฉํ์ง ๋ง์ธ์. NVDA, VoiceOver ๋ฐ Talkback์์๋ ํค๋ฉ์ ๋์ฒดํ๊ธฐ ๋๋ฌธ์ ๋๋ค. JAWS๋ ์ด๋ค์ ๋ฌด์ํฉ๋๋ค. -
๋ํํ์ด ์๋
p
,legend
,li
,ul
๊ณผ ๊ฐ์ ๊ธฐํ ์ฝํ ์ธ ์๋aria-label
,aria-labelledby
๋ฅผ ์ฌ์ฉํ์ง ๋ง์ธ์. ๋ฌด์๋ฉ๋๋ค. -
span
,div
์๋role
์ด ์ง์ ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉดaria-label
,aria-labelledby
๋ฅผ ์ฌ์ฉํ์ง ๋ง์ธ์. ๋ํํ ์ญํ (์:link
,button
) ๋๋img
์ญํ ์aria-label
๋aria-labelledby
๊ฐ ์์ผ๋ฉดdiv
๋span
์ ๋ด์ฉ์ด ๋์ฒด๋ฉ๋๋ค. ๋๋๋งํฌ ์ญํ (์์์ ์ค๋ช ํ)์ ์ ์ธํ ๋ค๋ฅธ ์ญํ ์ ๋ฌด์๋ฉ๋๋ค. -
span
๋๋div
์aria-describedby
๋ฅผ ์ฌ์ฉํ๋ฉด ๋ํํrole
, ์ด๋ฏธ์ง ๋๋ ๋๋๋งํฌrole
์ด ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ NVDA์ VoiceOver์์ ๋ฌด์๋ฉ๋๋ค. JAWS์ Talkback์์๋ ๊ด์ฐฎ์ต๋๋ค. -
aria-describedby
๋ NVDA์ VoiceOver์์ ๋ค๋ฅธ ์ ์ ์ฝํ ์ธ ์ ๋ํด ๋ฌด์๋ฉ๋๋ค. JAWS์ Talkback์์๋ ๊ด์ฐฎ์ต๋๋ค.
์์ ๋ชจ๋ ๋ด์ฉ์ iframe ์์ ์์๋ ๋์ผํ๊ฒ ์๋ํฉ๋๋ค. aria-label
์ aria-labelledby
๋ ๋ค ํ๋ฉด ๋ญ๋
๊ธฐ ๋ฐ Accessibility API์ ๋์ผํ ๋์์ ๊ฐ์ง๋ง ํ์ด์ง ์ ์ฐธ์กฐํ ํ
์คํธ๊ฐ ํ์๋์ง ์๊ฑฐ๋ id
๊ฐ์ ์ถ์ ํ๋ ๊ฒ์ด ๋๋ฌด ์ด๋ ค์ด ๊ฒฝ์ฐ๋ฅผ ์ํด aria-label
์ด ์์ฝ๋์ด์ผ ํฉ๋๋ค.
aria-labelledby, aria-label, aria-describedby์ ๋ํ Internet Explorer ์ฐธ๊ณ ์ฌํญ
Internet Explorer์์ ์ฌ๋ฌ id
๋ฅผ ์ฐธ์กฐํ๋ aria-labelledby
์ด๋ ๋จ์ผ ๋๋ ์ฌ๋ฌ id
๋ฅผ ์ฐธ์กฐํ๋ aria-describedby
๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฐธ์กฐ๋ ์์๋ Microsoft์์ ๋งํ๋ ์ ๊ทผ ๊ฐ๋ฅํ HTML ์์์ฌ์ผ ํฉ๋๋ค.
๋ค์ ์์์๋ ์ฌ๋ฌ ์ฐธ์กฐ๊ฐ ์๋ aria-labelledby
๋ฅผ ์ฌ์ฉํ span
์ tabindex=-1
๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ ๊ทผ ๋ถ๊ฐ๋ฅํ ์์๋ฅผ ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ธฐ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
<label
id="l1"
for="f3">label text</label>
<input type="text" id="f3"
aria-labelledby="l1 l2"
>
<p>other content</p>
<span
tabindex="-1"
id="l2"
>more label text</span>
๋ํ ์์์ ARIA ์ญํ ์ด ์๋ ๊ฒฝ์ฐ Internet Explorer์์ ํด๋น ์์๋ ์ ๊ทผ ๊ฐ๋ฅํ HTML ์์๊ฐ ๋ฉ๋๋ค . ์๋ฅผ ๋ค์ด:
<div aria-describedby="test">text</div>
<div id="test"
role="tooltip"
>tooltip text</div>
์ฝํ ์ธ ๋ฅผ ์จ๊ฒจ๋ ์ ๊ทผ ๊ฐ๋ฅํ ์ด๋ฆ์ด๋ ์ค๋ช ๊ณ์ฐ์๋ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค
์๋์ ์ผ๋ก aria-labelledby ๋ฐ aria-describedby๊ฐ ์ฐธ์กฐํ๋ ์์์ ์ฝํ
์ธ ๋ฅผ ์จ๊ธฐ๋๋ผ๋(CSS display:none
๋๋ visibility:hidden
๋๋ HTML hidden ์์ฑ ์ฌ์ฉ) ์ด๋ฆ/์ค๋ช
์ ์ ๊ณตํ๋๋ฐ ์ฝํ
์ธ ๊ฐ ์ฌ์ฉ๋๋ ๊ฒ์ ๋ง์ง๋ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ณด์กฐ ๊ธฐ์ ์ ์จ๊ฒจ์ง ์ ๋ณด๋ฅผ ์ ๋ฌํ์ง ์์ง๋ง ์์ฑ์๋aria-labelledby
๋๋aria-describedby
๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ๋ช ์์ ์ผ๋ก ๋ฌด์ํ๊ณ ์ ๊ทผ ๊ฐ๋ฅํ ์ด๋ฆ์ด๋ ์ ๊ทผ ๊ฐ๋ฅํ ์ค๋ช ์ ์ผ๋ถ๋ก ์จ๊ฒจ์ง ํ ์คํธ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
๋ค์ ์์์๋ ๋ ์ํ ๋ชจ๋ ๋ณด์กฐ ๊ธฐ์ ์ฌ์ฉ์์๊ฒ ์ค๋ช ์ด ์ ๊ณต๋ฉ๋๋ค.
์ค๋ฅ ์๋(Non-Error) ์ํ: ๋ฉ์์ง๊ฐ ์๊ฐ์ ์ผ๋ก ์จ๊ฒจ์ง
<label>Name <input type="text" aria-describedby="error-message"></label>
<span id="error-message" style="display:none">
You have provided an incorrect name</span>
์ฐธ๊ณ : ์ฐธ์กฐ๋ ์์์ aria-hidden=true
๋ฅผ ์ถ๊ฐํด๋ ์๋ฌด๋ฐ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
<span id="error-message" style="display:none" aria-hidden="true"
>You have provided an incorrect name</span>
์ค๋ฅ ์ํ: ๋ฉ์์ง ํ์
<span id="error-message" style="display:inline">
You have provided an incorrect name</span>
๋งฅ๋ฝ์ ๋ง๋ ์ด๋ฆ/์ค๋ช ํ ์คํธ๋ฅผ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ
์ค๋ฅ ๋ฉ์์ง์ ๊ฐ์ด, ์ํฉ์ ๋ง๋ ํ ์คํธ๋ฅผ ์ฐ๊ฒฐํ๋ ค๋ฉด ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
- ์ค๋ฅ ์ํ๊ฐ ๋ฐ์ํ๋ฉด ์ฐธ์กฐ๋ ์์๋ฅผ DOM์ ์ถ๊ฐํฉ๋๋ค.
- ์ค๋ฅ ์ํ๊ฐ ๋ฐ์ํ ๋ DOM์์ ์ฐธ์กฐ๋ ์์์ ํ์ ์์๋ก ์ค๋ฅ ํ ์คํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- ์ค๋ฅ ์ํ๊ฐ ๋ฐ์ํ๋ฉด DOM์ ID ์ฐธ์กฐ๋ฅผ
aria-labelledby/aria-describedby
์์ฑ์ ์ถ๊ฐํ์ธ์.
2.10.1 ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง์ ๋ํ ์ ๊ทผ ๊ฐ๋ฅํ ์ด๋ฆ์ ์ํฅ
CSS ๋ฐฐ๊ฒฝ์ ์ ๋ณด์ฑ ์ด๋ฏธ์ง๋ฅผ ํ์ํ์ง ๋ง์ธ์. ์ด๋ฏธ์ง์ ์ต์ข
์ฌ์ฉ์๋ฅผ ์ํ ์ค์ํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์๋ ๊ฒฝ์ฐ ์ ์ ํ alt
ํ
์คํธ์ ํจ๊ป HTML <img>
ํ๊ทธ๋ก ์ ๊ณต๋์ด์ผ ํฉ๋๋ค. CSS ๋ช
์ธ๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค.
์ ๊ทผ์ฑ์์ ์ด์ ๋ก ์์ฑ์๋ ์ค์ํ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํด์๋ ์ ๋ฉ๋๋ค. WCAG ์คํจ #F3 [WCAG20]์ ์ฐธ์กฐํ์ธ์. ๊ทธ๋ํฝ์ด ์๋ ํ๋ ์ ํ ์ด์ ์์๋ ์ด๋ฏธ์ง์ ์ ๊ทผํ ์ ์์ผ๋ฉฐ ํนํ ๊ณ ๋๋น ๋์คํ๋ ์ด ๋ชจ๋์์๋ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง๊ฐ ๊บผ์ง ์ ์์ต๋๋ค. ์ถ์ฒ.
CSS ์ด๋ฏธ์ง ์ฌ์ฉ์ ํผํ ์ ์๊ฑฐ๋ "์ค์ํ์ง ์์" ์ฃผ๋ณ ์ฌ์ง ๋ฑ์ ๋ํ ๋์ฒด ํ ์คํธ๋ฅผ ์ํ๋ค๋ฉด ์ด๋ป๊ฒ ํฉ๋๊น?
CSS ๋ช ์ธ์์๋ CSS ์ ๋ณด ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง๋ฅผ "MUST"๊ฐ ์๋ "SHOULD"๋ก ๊ถ๊ณ ํฉ๋๋ค. ์๋ํ๋ฉด ์๊ฐ์ ๋์์ธ ์ด๋ ๊ธฐ์กด ์ฝ๋๋ก ์ธํด ํ๋ฐํธ ์๋๋ฅผ ๋ค์ ๋์์ธํ์ง ์๊ณ ๋ HTML ์ด๋ฏธ์ง๋ก ๋ณ๊ฒฝํ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ ์์ฑ์๊ฐ ์ฝํ ์ธ ๋ฅผ ์ดํดํ๋ ๋ฐ "์ค์"ํ์ง ์์ง๋ง ์ด๋ฏธ์ง ๋ด์ฉ์ ์๊ณ ์ถ์ดํ๋ ํ๋ฉด ๋ญ๋ ๊ธฐ ์ฌ์ฉ์๋ฅผ ์ํ ๋ฐฐ๋ ค๋ก ์ฃผ๋ณ ์ด๋ฏธ์ง์ ๋ํ ๋์ฒด ํ ์คํธ๋ฅผ ์ ๊ณตํ๊ธฐ๋ฅผ ์ํ ์๋ ์์ต๋๋ค. ๋ค์์ ์ฃผ๋ณ ์ด๋ฏธ์ง, ์์ ์ฅ์, ์ ๋ณด ์ ๊ณต ์ด๋ฏธ์ง์ ๋ํ ์์ธํ ๋ค๋ฃฌ ๊ธ์ ๋๋ค.
CSS ์ด๋ฏธ์ง์ ๋์ฒด ํ ์คํธ๋ฅผ ์ ๊ณตํ ๋๋ ๋ช ๊ฐ์ง ๊ณ ๋ ค์ฌํญ์ด ์์ต๋๋ค
<div>
ํ๊ทธ ๋ด๋ถ์ ์ฝํ
์ธ ๊ฐ ์๋ ๊ฒฝ์ฐ ์ ๊ทผ ๊ฐ๋ฅํ ์ด๋ฆ ๊ณ์ฐ์ผ๋ก ์ธํด role="img"
๋ฐ aria-label
๋ ๋ด๋ถ ์ฝํ
์ธ ๋ฅผ ๊ฐ๋ฆฌ๊ฑฐ๋ ๋ณด์กฐ ๊ธฐ์ ์ด aria-label
์ ๋ฌด์ํ ์ ์์ต๋๋ค.
If the <div>
tag has any content inside it, then a role="img"
and aria-label
could obscure the inside content because of the accessible name calculation, or the assistive technology might just ignore the aria-label
.
๊ทธ๋์ ์ปจํ
์ธ ๊ฐ ์๋ <div>
์์ CSS ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง๋ฅผ ๋ฃ์ง ๋ง์ธ์. ๋น์ด์๋ <span>
๊ณผ role="img"
์ ํจ๊ป aria-label
์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค.
์ด๋ ๊ฒ ํ์ธ์:
<div>
<span class="background-image" role="img" aria-label="[place alt text here]"> </span>
[all the rest of my content]
</div>
์ด๋ ๊ฒ ํ์ง ๋ง์ธ์:
<div class="background-image" role="img" aria-label="blah blah blah">
[all the rest of my content]
</div>
์์ฑ์๊ฐ ์ฝํ
์ธ ๊ฐ ํฌํจ๋ <div>
์ CSS ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
๋๋ก๋ CSS ์คํ์ ์ข ์์ฑ์ด ์์ด ์ด๋ฅผ ์กฐ์ํ๋ฉด ์ฌ์ดํธ์ ๋์์ธ๊ณผ ๋ ์ด์์์ด ๋คํ๋ฆฌ๊ฑฐ๋ ์ฝ๋ ๋ณ๊ฒฝ ์์ฒญ์ด ๋ค์ํ ์ดํด๊ด๊ณ์์ ์น์ธ์ ๋ฐ์ง ๋ชปํ๊ณ ์ค๋จ๋ ์ ์์ต๋๋ค. ์์ฑ์๊ฐ ๋ค๋ฅธ ์ฝํ ์ธ ๋ฅผ ๊ฐ์ธ๋ <div>์ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ ๊ฒฝ์ฐ ๋์ฒด ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
<div class="background-image" >
<span role="img" aria-label="[place alt text here]"> </span>
[all the rest of my content]
</div>
์๋ฏธ์ ๋์ฒด ํ
์คํธ๊ฐ ์ค์ ๋ก ์ด๋ฏธ์ง๊ฐ ์๋ ์์์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ ํต(hack)์
๋๋ค. ๊ทธ๋ฌ๋ ํ๋ฉด ๋ญ๋
๊ธฐ์ ๊ด์ ์์ ๋ณผ ๋ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง๊ฐ ์๋ <div>
์ ๋ฌด์๋๋ฏ๋ก ๋ฐ๋ก ๋ค์ <span>
์ ๋ฐฐ์นํ๋ฉด ๋์ฒด ํ
์คํธ๊ฐ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง์ ๊ฐ์ ์์น์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ๋ฐฉ์์ผ๋ก ํด๋น ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ฒ ๋ฉ๋๋ค.
2.11 ARIA role=application ์ฌ์ฉ
role="application"์ด ํ๋ฉด ๋ญ๋ ๊ธฐ์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์?
์ค๋๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ง์ ํ๋ฉด ๋ญ๋ ๊ธฐ์์๋ ์ฌ์ฉ์๊ฐ ํ์ ๋ชจ๋์ ์์ ๋ ์น ํ์ด์ง๊ฐ ์๋ ํ๋ฉด ๋ญ๋ ๊ธฐ์ ์ํด ๋๋ถ๋ถ์ ํค ์ ๋ ฅ์ด ๊ฐ์ง๋ฉ๋๋ค. ์ด๋ ํ์ด์ง๋ฅผ ํจ์จ์ ์ผ๋ก ํ์ํ๋ ๋ฐ ํ์ํฉ๋๋ค. ์ด ๊ธ์ ์ฐ๋ ์์ ์์ ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋๊ฐ ์ค์ ๋๋ฉด ๋ง์ ํ๋ฉด ๋ญ๋ ๊ธฐ๊ฐ ํค ์ ๋ ฅ ๊ฐ๋ก์ฑ๊ธฐ๋ฅผ ์ค์งํ๊ณ ๋ชจ๋ ํค ์ ๋ ฅ์ ๋ธ๋ผ์ฐ์ ์ ์ง์ ์ ๋ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ฌ์ฉ์๋ ํ์ด์ง๋ฅผ ์ฝ๊ฒ ํ์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํ์ด์ง ์ ๋ชฉ์ ๊ฑด๋๋ฐ๊ฑฐ๋ ์ ์ ํ ์คํธ ๋จ๋ฝ์ ํ ์ค์ฉ ์ฝ์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๋ฌ ํ๋ฉด ๋ญ๋ ๊ธฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ญํ ์ด ์ค์ ๋ ๊ฒฝ์ฐ ๋ค๋ฅด๊ฒ ์๋ํ์ง ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ธ์ ์ฌ์ฉํด์ผ ํ๊ณ , ์ธ์ ์ฌ์ฉํ์ง ๋ง์์ผ ํ ๊น์?
role=application
์ ์ฌ์ฉํ ์๊ธฐ๋ฅผ ํ๋จํ ๋ ๋ฌด์๋ณด๋ค๋ ํ๋ฉด ๋ญ๋
๊ธฐ ํค๋ณด๋ ๋จ์ถํค์ ์ฅ์ ๊ณผ ํด๋น ๊ธฐ๋ฅ์ ์์ค์ ๋น๊ตํ์ฌ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํด์๋ ์ ๋๋ฉฐ, ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํ๋ฉด ๋ญ๋
๊ธฐ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ์ฌ์ฉ์ฑ ํ
์คํธ๋ฅผ ์ํํด์ผ ํฉ๋๋ค.
์ปจํธ๋กค ์ธํธ์ ํ์ค HTML์ ์ผ๋ถ์ธ ์ด๋ฌํ ์์ ฏ๋ง ํฌํจ๋์ด ์๋ ๊ฒฝ์ฐ์๋ role="application"
์ ์ฌ์ฉํ์ง ๋ง์ธ์. ์ด๋ ํ์ค HTML ์์ ฏ ๋์ WAI-ARIA ์ญํ ์ ์ฌ์ฉํ์ฌ ๋งํฌ์
ํ๊ณ ์ํธ ์์ฉ ๋ชจ๋ธ์ ์์ฑํ๋ ๊ฒฝ์ฐ์๋ ์ ์ฉ๋ฉ๋๋ค.
์ฐธ๊ณ : ์์ฑ์๊ฐ ์ฌ์ฉ์ ์ ์ ํ ์คํธ ์ ๋ ฅ ์์ ฏ์ ๊ฐ๋ฐํ๋ ๊ฒ์ ๊ถ์ฅ๋์ง ์์ต๋๋ค. ์ด์ ๋ํด์๋ ๊ฑฐ์ ํญ์ ๊ธฐ๋ณธ ์ ๋ ฅ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค.
-
text box
. ์ด๋ password, search, tel ๋ฐ ๊ธฐํ ์๋ก์ด input type ํ์์๋ ์ ์ฉ๋ฉ๋๋ค. -
textarea
-
check box
-
button
-
radio button
(๋ณดํต fieldset/legend ์์ wrapper ๋ด๋ถ) -
select + option
(s) -
links
,paragraphs
,headings
๋ฐ ๊ธฐํ ์น ๋ฌธ์์ ๊ณ ์ /๊ธฐ๋ณธ ์์์ ๋๋ค.
์์ ฏ์ด ๋ค์๊ณผ ๊ฐ์ด ๋ณด๋ค ๋์ ์ด๊ณ ๊ธฐ๋ณธ์ด ์๋(non-native) ์์ ฏ ์ค ํ๋์ธ ๊ฒฝ์ฐ์๋ application
์ญํ ์ ์ฌ์ฉํ์ง ์์ต๋๋ค. WAI-ARIA๋ฅผ ์ง์ํ๋ ํ๋ฉด ๋ญ๋
๊ธฐ ๋ฐ ๊ธฐํ ๋ณด์กฐ ๊ธฐ์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ ๋ชจ๋์ ์ด์ ๋ชจ๋ ๊ฐ ์ ํ๋ ์ง์ํฉ๋๋ค.
-
tree view
-
slider
-
arrow ํค๋ก ํ์, ์ด์ ์ ๋ฐ์ ์ ์๋ ํญ๋ชฉ์ด ์๋
table
(์: ํน์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์ด๋ฉ์ผ ๋ฉ์์ง ๋ชฉ๋ก). ๋ค๋ฅธ ์๋ก๋ ๋ํํ ๊ทธ๋ฆฌ๋, ํธ๋ฆฌ ๊ทธ๋ฆฌ๋ ๋ฑ์ด ์์ต๋๋ค. -
์ฌ์ฉ์๊ฐ ์ผ์ชฝ ๋ฐ ์ค๋ฅธ์ชฝ arrow ํค๋ฅผ ํตํด ํญ์ ์ ํํ๋ ํญ ๋ชฉ๋ก(
tab, tablist
)์ ๋๋ค. ์ด๋ฅผ ์ํด์๋ ํค๋ณด๋ ํ์ ๋ชจ๋ธ์ ๊ตฌํํด์ผ ํ๋ค๋ ์ ์ ๊ธฐ์ตํ์ธ์! -
dialog
๊ทธ๋ฆฌ๊ณalertdialog
. ์ด๋ก ์ธํด ์ผ๋ถ ํ๋ฉด ๋ญ๋ ๊ธฐ๊ฐ ์ด์ ์ด ๊ทธ ์์ ์ปจํธ๋กค๋ก ์ด๋ํ๋ฉด ์ผ์ข ์ ์์ฉ ํ๋ก๊ทธ๋จ ๋ชจ๋(์๋ฌต์ ์ผ๋ก)๋ก ์ ํ๋ฉ๋๋ค. ์ด๋ค์ด ๊ฐ์ฅ ์ ์๋ํ๋ ค๋ฉด ์ญํ ์ดdialog
์ธ ์์์aria-describedby
์์ฑ์ ๋ํ ์์์ ๋ชฉ์ ์ ์ค๋ช ํ๋ ํ ์คํธ์id
๋ก ์ค์ ํ๊ณ , ์ด๋ฆด ๋ ์ฒซ ๋ฒ์งธ ๋ํํ ์ปจํธ๋กค์ ํฌ์ปค์ค๋ฅผ ๋ง์ถ์ด์ผ ํฉ๋๋ค.
<div role="dialog" aria-label="login" aria-describedby="log1"> <div id="log1" tabindex="-1">Provide user name and password to login.</div> ... ... </div>
-
toolbar
์toolbar buttons
,menus
์menu items
, ๊ทธ๋ฆฌ๊ณ ์ ์ฌํ ๊ฒ๋ค.
์ ๊ณตํ๋ ์ฝํ
์ธ ๊ฐ ์ง์ค ๊ฐ๋ฅํ ๋ํํ ์ปจํธ๋กค๊ณผ ๋๋ถ๋ถ ์ค์ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์
์ ์๋ฎฌ๋ ์ดํธํ๋ ๊ณ ๊ธ ์์ ฏ ์ผ๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ์๋ง role=application
์ ์ฌ์ฉํ๊ณ ์ถ์ ๊ฒ์
๋๋ค. ํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์
์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ง์ ๊ฒ๋ค์ด ์์์๋ ๋ถ๊ตฌํ๊ณ ์ด๋ฌํ ์น ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ํจ๊ป ์๋ํ๋ ์ฝํ
์ธ ์ ๋๋ถ๋ถ์ Facebook ๊ฒ์๋ฌผ ๋ฐ ๋๊ธ, ๋ธ๋ก๊ทธ, Twitter ํผ๋, ํน์ ์ ํ์ ์ ๋ณด๋ฅผ ๋์ ์ผ๋ก ํ์ํ๊ณ ์จ๊ธฐ๋ ์์ฝ๋์ธ ๋ฑ ์ฌ์ ํ ๋ฌธ์ ๊ธฐ๋ฐ ์ ๋ณด์
๋๋ค. ๋น๋ก ํ๋ฉด์ ์ผ๋ก๋ ๋ฐ์คํฌํ๊ณผ ๊ฐ์ ๋๋์ ์ฃผ์ง๋ง ์ฐ๋ฆฌ๋ ์ฃผ๋ก ์ฌ์ ํ ์น์์ ๋ฌธ์๋ฅผ ๋ค๋ฃจ๊ณ ์์ต๋๋ค.
์ฌ์ฉ์๊ฐ ํ๋ฉด ๋ญ๋
๊ธฐ์์ ์์ (์ด์ ) ๋ชจ๋์ ์๋ ๋์์๋ ์ปจํธ๋กค๋ณ ํค๋ณด๋ ๋จ์ถํค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด role=application
์ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ARIA role=listbox
๋ฅผ ์ฌ์ฉํ ์ฌ์ฉ์ ์ ์ ์ปจํธ๋กค์ ์ฌ์ฉ์๊ฐ ์ํธ ์์ฉํ๋ ๋์ arrow ํค๋ฅผ ํฌํจํ์ฌ ๋๋ฅธ ๋ชจ๋ ํค๋ฅผ ์ฝ๊ฒ ๊ฐ์งํ ์ ์์ต๋๋ค.
๊ฐ๋จํ ๋งํด์, ์ค์ ๋ก role=application
๋ฅผ ์ฌ์ฉํ๊ฒ ๋ ๊ฒฝ์ฐ๋ ์๋ง๋ ๋งค์ฐ ๋๋ฌผ ๊ฒ์
๋๋ค!
๊ทธ๋ ๋ค๋ฉด role=application
๋ฅผ ๋ฃ์ด์ ์ ์ฉํ ๊ฒฝ์ฐ๋?
์์ ฏ์ ๊ฐ์ฅ ๊ฐ๊น์ด ํฌํจ ์์(์: ๊ฐ์ฅ ๋ฐ๊นฅ์ชฝ ์์ ฏ ์์์ธ ์์์ ๋ถ๋ชจ div
)์ ๋ฐฐ์นํฉ๋๋ค. ํด๋น ์ธ๋ถ div
์ด ์ ํ๋ฆฌ์ผ์ด์
์ํธ ์์ฉ ๋ชจ๋ธ์ด ํ์ํ ์์ ฏ๋ง ๊ฐ์ธ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์ด ์์ ฏ์์ ํญ ์์ํ๋ฉด ์ด์ ๋ชจ๋๊ฐ ๊บผ์ง๋๋ค.
ํ์ด์ง๊ฐ ์ด์ ๋ชจ๋๋ฅผ ์ผ์ผ ํ๋ ์์ ฏ ๋๋ ์์ ฏ ์ธํธ๋ก๋ง ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ์๋ง ๋ณธ๋ฌธ ์์์ ๋ฐฐ์นํ์ธ์. ์ด๋ฌํ ์์ ฏ์ด ๋๋ถ๋ถ ์์ง๋ง ์ฌ์ฉ์๊ฐ ์ฐพ์๋ณด๊ธฐ๋ฅผ ์ํ๋ ํญ๋ชฉ๋ ์๋ ๊ฒฝ์ฐ ํ์ด์ง์ ๋ฌธ์ ๊ฐ์ ๋ถ๋ถ์ ๊ฐ์ฅ ๋ฐ๊นฅ์ชฝ ์์์ role=document
๋ฅผ ์ฌ์ฉํ์ธ์. ์ด๋ role=application
๊ณผ ๋ฐ๋ ๊ฐ๋
์ด๋ฉฐ ํ๋ฉด ๋ญ๋
๊ธฐ์๊ฒ ์ด ๋ถ๋ถ์ ๋ํด ์ฐพ์๋ณด๊ธฐ ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋๋ก ์ง์ํ๋ ๊ฒ์
๋๋ค. ๋ํ tabindex=0 ์ฌ์ฉ์๊ฐ ์ ๊ทผํ ์ ์๋๋ก ์ด ์์์ tabindex=0
๋ฅผ ์ค์ ํ์ฌ ํญํ ์ ์๊ฒ ๋ง๋์ธ์.
์ผ๋ฐ์ ์ธ ๊ท์น: ํ์ด์ง๊ฐ 90% ์ด์, ์ฌ์ง์ด 95%๊ฐ ์์ ฏ๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ์๋ง role=application
์ ๊ณ ๋ คํ ์ ์์ต๋๋ค. ๊ทธ๋๋ role=application
์ ์ค์ ํ ๋ฒ์ ๊ณผ ์ค์ ํ์ง ์์ ๋ฒ์ ์ ์ค์ ๋ก ํ
์คํธํ์ฌ ์ด๋ค ๋ชจ๋ธ์ด ๊ฐ์ฅ ์ ์๋ํ๋์ง ์์๋ณผ ์ ์๋ ์ ๋ฌธ๊ฐ๋ฅผ ์ฐพ์ผ์ธ์.
์ ๋๋ก ํ์ด์ง๊ฐ ์ฃผ๋ก ์ฌ์ฉ์๊ฐ ์ด์ ๋ชจ๋์์ ์ํธ ์์ฉํ ํ์๊ฐ ์๋ ์ ํต์ ์ธ ์์ ฏ์ด๋ ๋งํฌ์ ๊ฐ์ ํ์ด์ง ์์๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ body
์ ๊ฐ์ ๊ด๋ฒ์ํ ์์์ role=application
์ ์ ์ฉํ์ง ๋ง์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ์ฌ์ดํธ/์ ํ๋ฆฌ์ผ์ด์
์ ์ฌ์ฉํ๋ ค๋ ๋ชจ๋ ๋ณด์กฐ ๊ธฐ์ ์ฌ์ฉ์์๊ฒ ํฐ ์ด๋ ค์์ด ๋ฐ์ํฉ๋๋ค.
role=application
์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ์WAI-ARIA ์ญํ "application"์ ํ๋ช
ํ๊ฒ ์ฌ์ฉํ์ธ์!"๋ฅผ ์ฐธ์กฐํ์ธ์.
2.12 ์ฌ์ฉ์ ์ ์ ์ปจํธ๋กค์ ๋ํ ์ ๊ทผ์ฑ ๊ฐ๋ฐ ์ฒดํฌ๋ฆฌ์คํธ:
๋ค์ ์ค๊ณ ๊ณ ๋ ค ์ฌํญ์ ๊ธฐ์ค์ผ๋ก ์ฌ์ฉ์ ์ ์ ์ปจํธ๋กค์ ํ์ธํ์ธ์. ์ด์ ๋ํ ๋๋ต์ด '์๋์'์ธ ๊ฒฝ์ฐ ๋ฐฐํฌ ์ ์ ์์ ํ๊ฑฐ๋ ์ต์ํ ๋ฌธ์ ๋ฅผ ๋ฌธ์ํํ์ฌ ๋ค๋ฅธ ๊ฐ๋ฐ์์๊ฒ ์ ํ๋ ์ ๊ทผ์ฑ ์ง์์ผ๋ก ์ธํด ์ผ๋ถ ์ฌ๋๋ค์ด ์ฌ์ฉ์ ์ ์ ์ปจํธ๋กค์ ์ฌ์ฉํ ์ ์์์ ์๋ฆฌ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค.
์ค๊ณ ๊ณ ๋ ค ์ฌํญ | ์ค๋ช | ์/์๋์ค |
---|---|---|
์ด์ ๋ฐ์ ์ ์๋ | ํค๋ณด๋๋ก ์ ์ดํ ์ ์๋์? ํค๋ณด๋ ์ด์ ์ ๊ณต์ ์ฐธ์กฐํ์ธ์. | |
ํค๋ณด๋ ์กฐ์ ๊ฐ๋ฅ | ํค๋ณด๋๋ก ์ปจํธ๋กค์ ์ฌ์ฉํ ์ ์๋์? ํค๋ณด๋ ํ์์ ์ฐธ์กฐํ์ธ์. | |
ํฐ์น ์กฐ์ ๊ฐ๋ฅ | ํฐ์น ์ ์ค์ฒ๋ก ์ปจํธ๋กค์ ์ฌ์ฉํ ์ ์๋์? ๋ณด์กฐ ๊ธฐ์ ์ด ํ์ฑํ๋์ด ์์ต๋๊น? | |
์์๋๋ ์กฐ์ | ์ปจํธ๋กค ์ ํ์ ๋ง๋ ํ์ค ํค( ARIA ์์ ฏ ์ค๊ณ ํจํด ์ฐธ์กฐ) ๋ฐ/๋๋ ํฐ์น ์ ์ค์ฒ๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํธ๋กค์ ์๋ํ ์ ์๋์ ? | |
๋ช ํํ ์ด์ ํ์ | ์ปจํธ๋กค์ ํฌ์ปค์ค๊ฐ ์์ผ๋ฉด ์ฝ๊ฒ ๋ณผ ์ ์๋์? ์ด์ ์๊ฐํ(WCAG2)์ ์ฐธ์กฐํ์ธ์. | |
๋ ์ด๋ธ | ์ปจํธ๋กค์ ์ ๊ทผ์ฑ API์์ ์ ๊ทผ ๊ฐ๋ฅํ ์ด๋ฆ์ผ๋ก ํ์๋๋ ํ ์คํธ ๋ ์ด๋ธ์ด ์์ต๋๋ค. | |
์ญํ | ์ปจํธ๋กค์ ์ ๊ทผ์ฑ API์ ๋ ธ์ถ๋ ์ ์ ํ ์ญํ ์ด ์์ต๋๋ค. | |
์ํ์ ์์ฑ | ์ปจํธ๋กค์๋ ์ ๊ทผ์ฑ API์ ๋ ธ์ถ๋ UI ์ํ ๋ฐ ์์ฑ์ด ์์ต๋๋ค. | |
์์ ๋๋น | ์ ์๋ ฅ ์ฌ์ฉ์๊ฐ ์ปจํธ๋กค ๋ ์ด๋ธ/์ค๋ช /์์ด์ฝ์ ์ธ์/์ฌ์ฉํ ์ ์์ต๋๋ค(์์ ๋๋น ๊ฒ์ฌ๊ธฐ๋ฅผ ์ฌ์ฉํ์ธ์.) | |
๊ณ ๋๋น ๋ชจ๋ | ๊ณ ๋๋น ๋ชจ๋๊ฐ ํ์ฑํ๋๋ฉด(์: Windows HC ๋ชจ๋) ์ปจํธ๋กค์ ์ธ์/์ฌ์ฉํ ์ ์์ต๋๋ค. |
2.13 ARIA๋ ๋๋ถ๋ถ์ HTML ์์์ ๊ธฐ๋ณธ ์๋ฏธ์ ์๋ฌด๊ฒ๋ ์ถ๊ฐํ์ง ์์ต๋๋ค.
์ด๋ค ๊ฒฝ์ฐ์๋ HTML ์์์ ์๋ฏธ๊ฐ ARIA ์ญํ , ์ํ ๋๋ ์์ฑ์ผ๋ก ํํ๋ ์ ์์ต๋๋ค. ์ด๋ ์์์ ' ๊ธฐ๋ณธ ์๋ฌต์ ARIA ์๋ฏธ ์ฒด๊ณ'๋ก ์๋ ค์ ธ ์์ต๋๋ค.
HTML4์ ์ ์๋ ์์ ์ค ๊ธฐ๋ณธ ์๋ฏธ๋ฅผ ๋ ธ์ถํ๊ธฐ ์ํด ARIA ์ญํ ์ ์ถ๊ฐํ ํ์๊ฐ ์๋ ์์๋ ์์ต๋๋ค. ARIA ์ญํ ์ ์ถ๊ฐํ๋ ๊ฒ์ ์๋ฌด๋ฐ ์ด๋์ด ์๋ ์ถ๊ฐ ์์ ์ด๋ฉฐ ๋ณธ์ธ์ด๋ ๋ค๋ฅธ ์ฌ๋์๊ฒ ๊ณ ํต์ ์๊ฒจ์ค ์ ์์ต๋๋ค. ๊ตฌํ๋ HTML5์ ์ ์๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ด์ ๋๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ ์์ ๊ธฐ๋ณธ ์๋ฏธ ์ฒด๊ณ๋ฅผ ๋ ธ์ถํฉ๋๋ค. HTML ๋ช ์ธ์๋ ๋ค์ ์ฐธ๊ณ ์ฌํญ์ด ํฌํจ๋์ด ์์ต๋๋ค.
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์์์ ARIA ์๋ฏธ ์ฒด๊ณ์ ์ผ์นํ๋ ARIArole
๋ฐ/๋๋aria-*
์์ฑ์ ์ค์ ํ๋ ๊ฒ์ ๋ถํ์ํ๋ฉฐ ๊ถ์ฅ๋์ง ์์ต๋๋ค. ์ด๋ฌํ ์์ฑ์ ๋ธ๋ผ์ฐ์ ์์ ์ด๋ฏธ ์ค์ ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
2.13.1 ์ค๋ณต ARIA ์ ๋ช ๊ฐ์ง ์
HTML5 ๊ถ์ฅ ์ฌํญ์ ๋์ด๋ ๋ํํ ์์์ ๊ธฐ๋ณธ ์์์ ์ญํ ์ ์ถ๊ฐํ๋ ๊ฒ์ ์๊ฐ ๋ญ๋น์ ๋๋ค.
<button role="button">press me</button>
๊ธฐ๋ณธ HTML ๋์ ํญ๋ชฉ์ ARIA ์ํ ๋๋ ์์ฑ์ ์ถ๊ฐํ๋ ๊ฒ์ ์๊ฐ ๋ญ๋น์ ๋๋ค.
<input type="text" required aria-required="true">
<div hidden aria-hidden="true">
์ค๋ซ๋์ ๊ตฌํ๋ ๊ตฌ์กฐ ์์์ ARIA ์ญํ ๊ณผ ์ํ ๋๋ ์์ฑ์ ์ถ๊ฐํ๋ ๊ฒ์ ์๊ฐ ๋ญ๋น์ ๋๋ค.
<h1 role="heading" aria-level="1">heading text</h1>
2.14 HTML์ ๊ธฐ๋ฅ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ARIA ์ญํ ๋ฐ ์์ฑ
์๋์๋ HTML์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ ARIA ์ญํ ๋ฐ ์์ฑ์ด ๋์ด๋์ด ์์ต๋๋ค. ์ฌ์ฉ์์๊ฒ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ ๋ฐ ์ฌ์ฉํ๋ ARIA์ ๋ง์ ์ญํ ๊ณผ ์์ฑ์ HTML์์๋ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๋ถ๋ช ํฉ๋๋ค.
2.14.1 ARIA ์ญํ
2.14.2 ARIA ์ํ ๋ฐ ์์ฑ(aria-* ์์ฑ)
-
aria-activedescendant
-
aria-atomic
-
aria-busy
(์ํ) -
aria-controls
-
aria-describedby
-
aria-dropeffect
-
aria-expanded
(์ํ) -
aria-flowto
-
aria-grabbed
(์ํ) -
aria-haspopup
-
aria-hidden
(์ํ) -
aria-label
-
aria-labelledby
-
aria-level
-
aria-live
-
aria-orientation
-
aria-owns
-
aria-posinset
-
aria-pressed
(์ํ) -
aria-relevant
-
aria-setsize
-
aria-sort
2.15 ARIA ์ค๊ณ ํจํด ๋ฐ ํฐ์น ์ฅ์น ์ง์
WAI-ARIA Authoring Practices 1.1์ ARIA ์ค๊ณ ํจํด์ ํค๋ณด๋ ์ ์ฉ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์๊ณ ๋ณด์กฐ ๊ธฐ์ ์ฌ์ฉ์๊ฐ ์ดํดํ ์ ์๋๋ก ์ฌ์ฉ์ ์ ์ UI ์์๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. ์ผ๋ถ ARIA ์ค๊ณ ํจํด์ ํ์ฌ ํค๋ณด๋๋ณ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ์ง์ ํ๊ณ ์ด์ ์์กดํฉ๋๋ค. ์ด๋ ํฐ์น ์คํฌ๋ฆฐ๋ง ์ ๊ณตํ๋ ์ฅ์น์์๋ ์ง์๋์ง ์์ผ๋ฉฐ, ์ถ๊ฐ ๋ฌผ๋ฆฌ์ ํค๋ณด๋๊ฐ ์๋ ํด๋ํฐ/ํ๋ธ๋ฆฟ์์๋ ์ง์์ด ์ ํ๋๊ฑฐ๋ ์ง์๋์ง ์์ต๋๋ค(ํน์ ์ด์ ์ฒด์ ์ ๋ฐ๋ผ ๋ค๋ฆ). ์งํ ์ค์ธ ARIA ์ค๊ณ ํจํด - ํฐ์น UA/AT ๊ฒฉ์ฐจ ๋ถ์(๊ตฌ๊ธ ์ํธ)์ด ๊ฐ๋ฅํฉ๋๋ค. (.ods ํฌ๋งท์ ์ ์ ํ์ผ๋ก๋ ์ด์ฉ ๊ฐ๋ฅ) ๊ด๋ จ WAI-ARIA WAI-ARIA Authoring Practices 1.1 ์ด์
2.16 ๊ถ๊ณ ์ ํ:
HTML์ ARIA ๋ช ์ธ์ HTML ํ ์ด๋ธ ์ ARIA ์์ฑ ์ฌ์ฉ์ ๋ํ ๋ฌธ์ ์ค์ ์๊ตฌ ์ฌํญ์ ์ฐธ์กฐํ์ธ์.
2.17 ARIA ์ญํ , ์ํ ๋ฐ ์์ฑ ๋น ๋ฅธ ์ฐธ์กฐ
HTML์ ARIA ๋ช ์ธ์์ ํ์ฉ๋๋ ARIA ์ญํ , ์ํ, ์์ฑ ํ๋ฅผ ์ฐธ์กฐํ์ธ์.