2. HTML์—์„œ ARIA ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ

2.1 ARIA ์‚ฌ์šฉ์˜ ์ฒซ ๋ฒˆ์งธ ๊ทœ์น™

์š”์†Œ์˜ ์šฉ๋„๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ARIA ์—ญํ• , ์ƒํƒœ ๋˜๋Š” ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋Œ€์‹  ์ด๋ฏธ ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” ์˜๋ฏธ์™€ ๋™์ž‘์„ ๊ฐ–์ถ˜ ๊ธฐ๋ณธ HTML ์š”์†Œ [HTML51] ๋˜๋Š” ์†์„ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ทธ๋ ‡๊ฒŒ ํ•˜์„ธ์š”.

์–ด๋–ค ์ƒํ™ฉ์—์„œ ์ด๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ?

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 ์†์„ฑ์ด ๋น„์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

MSAA ์ด๋ฆ„๊ณผ ์—ญํ•  ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋œ ์ปจํŠธ๋กค์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค. accName ์†์„ฑ์—๋Š” ๊ฐ’์ด ์—†์œผ๋ฉฐ accRole ์†์„ฑ์€ 'editable text'์ž…๋‹ˆ๋‹ค.

์ด์— ๋น„ํ•ด ์•„๋ž˜ ์ฝ”๋“œ ์˜ˆ์ œ 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" ๊ฐ’์ด ์žˆ์Šต๋‹ˆ๋‹ค.

MSAA ์ด๋ฆ„๊ณผ ์—ญํ•  ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋œ ์ปจํŠธ๋กค์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค. accName ์†์„ฑ์˜ ๊ฐ’์€ 'user name'์ด๊ณ , accRole ์†์„ฑ์€ 'editable text'์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์ฐธ๊ณ : ์œ„์˜ ์˜ˆ๋Š” 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" ๊ฐ’์ด ์žˆ์Šต๋‹ˆ๋‹ค.

MSAA ์ด๋ฆ„๊ณผ ์—ญํ•  ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋œ ์ž…๋ ฅ ์š”์†Œ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค. accName ์†์„ฑ์˜ ๊ฐ’์€ 'user name'์ด๊ณ , accRole ์†์„ฑ์˜ ๊ฐ’์€ 'combo box'์ž…๋‹ˆ๋‹ค.

ํ• ๋‹น๋œ ์—ญํ• ์— ๊ด€๊ณ„์—†์ด div ์š”์†Œ๋Š” HTML ๋ ˆ์ด๋ธ” ์ง€์ • ๊ฐ€๋Šฅ ์š”์†Œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

<!-- HTML div element with combox role -->
<label>
user name <div  role="combobox"></div>
</label>

์ปจํŠธ๋กค์˜ MSAA accName ์†์„ฑ์ด ๋น„์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

MSAA ์ด๋ฆ„๊ณผ ์—ญํ•  ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋œ div ์š”์†Œ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค. accName ์†์„ฑ์€ ๋น„์–ด ์žˆ๊ณ  accRole ์†์„ฑ์€ 'combo box'์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ 

๋‹ค์„ฏ ๋ฒˆ์งธ ๊ทœ์น™์€ ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค.

 

2.6 ์—ญํ• ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๊ธฐ๋ณธ ์˜๋ฏธ์— ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์น˜๋‚˜์š”?

ARIA ์—ญํ• ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ ‘๊ทผ์„ฑ API๋ฅผ ํ†ตํ•ด ๋ณด๊ณ ๋˜๋Š” ์ ‘๊ทผ์„ฑ ํŠธ๋ฆฌ์˜ ๊ธฐ๋ณธ ์—ญํ•  ์˜๋ฏธ๊ฐ€ ์žฌ์ •์˜๋˜๋ฏ€๋กœ ARIA๋Š” ํ™”๋ฉด ๋‚ญ๋…๊ธฐ๋‚˜ ๊ธฐํƒ€ ๋ณด์กฐ ๊ธฐ์ˆ ์— ๋ณด๊ณ ๋˜๋Š” ๋‚ด์šฉ์— ๊ฐ„์ ‘์ ์œผ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด HTML ํŠธ๋ฆฌ์˜ ๋‹ค์Œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

<h1 role=button>text</h1>

์ ‘๊ทผ์„ฑ ํŠธ๋ฆฌ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฉ๋‹ˆ๋‹ค.

'heading text' ๋ ˆ์ด๋ธ”์ด ์žˆ๋Š” ๋ฒ„ํŠผ

์—ญํ• ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์•ˆ๋˜๋Š” ๊ฒƒ

ARIA ์—ญํ• ์„ ์ถ”๊ฐ€ํ•ด๋„ ๋ณด์กฐ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ์š”์†Œ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋ณด์ด๊ฑฐ๋‚˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ ์š”์†Œ์˜ ๋™์ž‘, ์ƒํƒœ ๋ฐ ์†์„ฑ์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๊ณ  ๊ธฐ๋ณธ ์—ญํ• ์˜ ์˜๋ฏธ๋งŒ ๋ณ€๊ฒฝ ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด HTML ํŠธ๋ฆฌ์—์„œ ์ด ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

<button role=heading aria-level=1>text</button>

์ ‘๊ทผ์„ฑ ํŠธ๋ฆฌ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฉ๋‹ˆ๋‹ค.

heading

๊ทธ๋Ÿฌ๋‚˜ ์—ฌ์ „ํžˆ ๋ˆ„๋ฅผ ์ˆ˜ ์žˆ๊ณ , ์—ฌ์ „ํžˆ ๊ธฐ๋ณธ ํƒญ ์ˆœ์„œ์— ์žˆ์œผ๋ฉฐ, ์—ฌ์ „ํžˆ ๋ฒ„ํŠผ์ฒ˜๋Ÿผ ๋ณด์ด๊ณ , ๋ˆ„๋ฅด๋ฉด ๊ด€๋ จ ์ž‘์—…์ด ๊ณ„์† ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ๋ฒ„ํŠผ์„ ์ œ๋ชฉ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด 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>

์ ‘๊ทผ์„ฑ ํŠธ๋ฆฌ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฉ๋‹ˆ๋‹ค.

text, no heading

์ฆ‰, ์˜๋ฏธ๋ก ์  ์˜๋ฏธ๊ฐ€ ์—†๋Š” ํ…์ŠคํŠธ ๋ฌธ์ž์—ด๋กœ ์ ‘๊ทผ์„ฑ ํŠธ๋ฆฌ์— ๋ณด๊ณ ๋  ๋ฟ์ž…๋‹ˆ๋‹ค.

ํ•„์ˆ˜ ํ•˜์œ„ ํ•ญ๋ชฉ์ด ์—†๋Š” ์š”์†Œ์˜ ๊ฒฝ์šฐ role=presentation/none์ด ์žˆ๋Š” ์š”์†Œ ๋‚ด๋ถ€์— ์ค‘์ฒฉ๋œ ๋ชจ๋“  ์š”์†Œ๋Š” ์›๋ž˜ ์˜๋ฏธ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด HTML ํŠธ๋ฆฌ์—์„œ ์ด ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

<h1 role="presentation"><abbr>API</abbr></h1>

์ ‘๊ทผ์„ฑ ํŠธ๋ฆฌ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฉ๋‹ˆ๋‹ค.

API ํ…์ŠคํŠธ์˜ abbr

ํ•„์ˆ˜ ํ•˜์œ„ ์š”์†Œ(์˜ˆ: ul ๋˜๋Š” table)๊ฐ€ ์žˆ๋Š” ์š”์†Œ์˜ ๊ฒฝ์šฐ role=presentation/none์ด ์žˆ๋Š” ์š”์†Œ ๋‚ด๋ถ€์— ์ค‘์ฒฉ๋œ ํ•„์ˆ˜ ํ•˜์œ„ ์š”์†Œ์˜ ์˜๋ฏธ๋„ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด HTML ํŠธ๋ฆฌ์—์„œ ์ด ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

<table role="presentation">
    <tr>
        <td>
          <abbr>API</abbr>
        </td>
    </tr>
</table>

์ ‘๊ทผ์„ฑ ํŠธ๋ฆฌ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฉ๋‹ˆ๋‹ค.

API ํ…์ŠคํŠธ์˜ abbr

์ฐธ๊ณ : role=presentation/none๊ฐ€ ์žˆ๋Š” ์š”์†Œ์˜ ํ•„์ˆ˜ ํ•˜์œ„ ์š”์†Œ๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  ์š”์†Œ๋Š” ์˜๋ฏธ ์ฒด๊ณ„๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค . ์—ฌ๊ธฐ์—๋Š” ์ค‘์ฒฉ ๋ชฉ๋ก์ด๋‚˜ ์ค‘์ฒฉ ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ํ•„์ˆ˜ ํ•˜์œ„ ํ•ญ๋ชฉ์ด ์žˆ๋Š” ๋‹ค๋ฅธ ์š”์†Œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด HTML ํŠธ๋ฆฌ์—์„œ ๋‚ด๋ถ€์— ์ค‘์ฒฉ๋œ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์ด ์žˆ๋Š” ํ…Œ์ด๋ธ”๋กœ ๊ตฌ์„ฑ๋œ ๋‹ค์Œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

<table>
    <tr>
        <td>
            <table>
                <tr>
                    <td>
                        <abbr>API</abbr>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>

์ ‘๊ทผ์„ฑ ํŠธ๋ฆฌ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฉ๋‹ˆ๋‹ค.

1์—ด 1ํ–‰์˜ ํ…Œ์ด๋ธ”์ด abbr ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” 1์—ด 1ํ–‰์˜ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

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์€ ์ ‘๊ทผ์„ฑ ํŠธ๋ฆฌ์—์„œ ์˜๋ฏธ๊ฐ€ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค

abbr ์š”์†Œ๋ฅผ ํฌํ•จํ•œ 1์—ด 1ํ–‰์˜ ํ…Œ์ด๋ธ”

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

์ด ๊ธ€์„ ์š”์•ฝํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์œ„์˜ ๋ชจ๋“  ๋‚ด์šฉ์€ 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>

๋งฅ๋ฝ์— ๋งž๋Š” ์ด๋ฆ„/์„ค๋ช… ํ…์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•

์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ๊ฐ™์ด, ์ƒํ™ฉ์— ๋งž๋Š” ํ…์ŠคํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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 ์—ญํ• ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆํฌ์—…ํ•˜๊ณ  ์ƒํ˜ธ ์ž‘์šฉ ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ž‘์„ฑ์ž๊ฐ€ ์‚ฌ์šฉ์ž ์ •์˜ ํ…์ŠคํŠธ ์ž…๋ ฅ ์œ„์ ฏ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์€ ๊ถŒ์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด์„œ๋Š” ๊ฑฐ์˜ ํ•ญ์ƒ ๊ธฐ๋ณธ ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

์œ„์ ฏ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด๋‹ค ๋™์ ์ด๊ณ  ๊ธฐ๋ณธ์ด ์•„๋‹Œ(non-native) ์œ„์ ฏ ์ค‘ ํ•˜๋‚˜์ธ ๊ฒฝ์šฐ์—๋„ application ์—ญํ• ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. WAI-ARIA๋ฅผ ์ง€์›ํ•˜๋Š” ํ™”๋ฉด ๋‚ญ๋…๊ธฐ ๋ฐ ๊ธฐํƒ€ ๋ณด์กฐ ๊ธฐ์ˆ ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํƒ์ƒ‰ ๋ชจ๋“œ์™€ ์ดˆ์  ๋ชจ๋“œ ๊ฐ„ ์ „ํ™˜๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ œ๊ณตํ•˜๋Š” ์ฝ˜ํ…์ธ ๊ฐ€ ์ง‘์ค‘ ๊ฐ€๋Šฅํ•œ ๋Œ€ํ™”ํ˜• ์ปจํŠธ๋กค๊ณผ ๋Œ€๋ถ€๋ถ„ ์‹ค์ œ ๋ฐ์Šคํฌํ†ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—๋ฎฌ๋ ˆ์ดํŠธํ•˜๋Š” ๊ณ ๊ธ‰ ์œ„์ ฏ ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ์—๋งŒ 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 ์˜๋ฏธ ์ฒด๊ณ„์™€ ์ผ์น˜ํ•˜๋Š” ARIA role ๋ฐ/๋˜๋Š” 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 ์—ญํ• 

  1. alert
  2. alertdialog
  3. application
  4. directory
  5. document
  6. feed
  7. grid
  8. gridcell
  9. group
  10. log
  11. marquee
  12. menu
  13. menubar
  14. menuitemcheckbox
  15. menuitemradio
  16. none
  17. note
  18. presentation
  19. scrollbar
  20. search
  21. status
  22. switch
  23. tab
  24. tablist
  25. tabpanel
  26. timer
  27. toolbar
  28. tooltip
  29. tree
  30. treegrid
  31. treeitem

2.14.2 ARIA ์ƒํƒœ ๋ฐ ์†์„ฑ(aria-* ์†์„ฑ)

  1. aria-activedescendant
  2. aria-atomic
  3. aria-busy (์ƒํƒœ)
  4. aria-controls
  5. aria-describedby
  6. aria-dropeffect
  7. aria-expanded (์ƒํƒœ)
  8. aria-flowto
  9. aria-grabbed (์ƒํƒœ)
  10. aria-haspopup
  11. aria-hidden (์ƒํƒœ)
  12. aria-label
  13. aria-labelledby
  14. aria-level
  15. aria-live
  16. aria-orientation
  17. aria-owns
  18. aria-posinset
  19. aria-pressed (์ƒํƒœ)
  20. aria-relevant
  21. aria-setsize
  22. 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 ์—ญํ• , ์ƒํƒœ, ์†์„ฑ ํ‘œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.