# [[Accessibility (A11y)|Accessibility (A11y)]] ## ๐Ÿ“Œ Brief Summary ์ ‘๊ทผ์„ฑ(Accessibility, A11y)์€ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”, ํ‚ค๋ณด๋“œ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋“ฑ์„ ์ง€์›ํ•˜์—ฌ ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ์ฐจ๋ณ„ ์—†์ด UI๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์„ค๊ณ„ ์›์น™ ๋ฐ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค [1, 2]. React ์ปดํฌ๋„ŒํŠธ ์•„ํ‚คํ…์ฒ˜์™€ ๋””์ž์ธ ์‹œ์Šคํ…œ์—์„œ ์žฌ์‚ฌ์šฉ์„ฑ์€ ์ ‘๊ทผ์„ฑ๊ณผ ๋—„ ์ˆ˜ ์—†๋Š” ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๋ฉฐ, ARIA ์†์„ฑ ๋ฐ ์‹œ๋งจํ‹ฑ HTML ์ ์šฉ์„ ๊ธฐ๋ณธ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค [3, 4]. ์ž˜ ์„ค๊ณ„๋œ ์ปดํฌ๋„ŒํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ ‘๊ทผ์„ฑ์„ ๊ตฌํ˜„ํ•  ํ•„์š” ์—†์ด, ์ ‘๊ทผ์„ฑ ํ…Œ๋งˆ ๋ชจ๋“œ๋‚˜ ํฌ์ปค์Šค ๊ด€๋ฆฌ ๋“ฑ๊ณผ ๊ฐ™์€ ๋‚ด์žฅ๋œ ์ ‘๊ทผ์„ฑ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [1, 5, 6]. ## ๐Ÿ“– Core Content * **์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ์™€ ์ ‘๊ทผ์„ฑ ์šฐ์„ (Accessibility First) ์›์น™** ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ์ ‘๊ทผ์„ฑ์€ ์„ ํƒ ์‚ฌํ•ญ์ด ์•„๋‹ˆ๋ผ ํ•„์ˆ˜ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค [2]. ํ‚ค๋ณด๋“œ ํƒญ ์ˆœ์„œ ๊ด€๋ฆฌ, ํ™”์‚ดํ‘œ ํ‚ค ํƒ์ƒ‰, ์˜ฌ๋ฐ”๋ฅธ ์‹œ๋งจํ‹ฑ HTML ์—ญํ• (Roles)๊ณผ ๋ ˆ์ด๋ธ”, ํฌ์ปค์Šค ์ œ์–ด ๋ฐ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ์ œ๊ณต ๋“ฑ์€ ์ปดํฌ๋„ŒํŠธ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์— ๋‚ด์žฅ(Bake into the DNA)๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [2, 6]. ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ง„ํ™”ํ•˜๋”๋ผ๋„ ์ ‘๊ทผ์„ฑ ์—ญํ• , ๋ ˆ์ด๋ธ”, ํฌ์ปค์Šค ์ƒํƒœ๊ฐ€ ๊นจ์ง€์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ง€์†์ ์ธ ์ ‘๊ทผ์„ฑ ๊ฒ€์‚ฌ(Accessibility checks)๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค [7]. * **์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์„ ํ†ตํ•œ ์ ‘๊ทผ์„ฑ ๊ตฌํ˜„** * **Compound Components:** ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ(์˜ˆ: Accordion)๊ฐ€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋“ค์˜ ์ƒํƒœ๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ฐฉ์‹์€ ์ ‘๊ทผ์„ฑ ๊ตฌํ˜„์„ ๋‹จ์ˆœํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ปจํ…์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์‚ฌ์šฉ์ž๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ID๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์•„๋„ `aria-controls`์™€ `aria-labelledby` ๊ฐ™์€ ์†์„ฑ์„ ์ž๋™์œผ๋กœ ์—ฐ๊ฒฐํ•ด ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [8]. * **Headless Components:** ์ด ํŒจํ„ด์€ ์ƒํƒœ ๊ด€๋ฆฌ, ๋กœ์ง, ๊ทธ๋ฆฌ๊ณ  ์ ‘๊ทผ์„ฑ ๊ธฐ๋Šฅ(ํ‚ค๋ณด๋“œ ๋„ค๋น„๊ฒŒ์ด์…˜, ARIA ์—ญํ•  ๋“ฑ)์„ ๋‚ด์žฅํ•˜์—ฌ ์ œ๊ณตํ•˜๋˜, ์Šคํƒ€์ผ๋ง์€ ๊ฐœ๋ฐœ์ž๊ฐ€ Tailwind CSS ๋“ฑ์œผ๋กœ ์ž์œ ๋กญ๊ฒŒ ๊ตฌ์„ฑํ•˜๋„๋ก ๋งก๊ธฐ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ˜„๋Œ€์ ์ด๊ณ  ์ ‘๊ทผ์„ฑ์ด ๋›ฐ์–ด๋‚œ UI ๊ตฌ์ถ•์— ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค [9]. * **๋””์ž์ธ ์‹œ์Šคํ…œ ๋ฐ ํ…Œ๋งˆ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ์„ฑ** ๋””์ž์ธ ํ† ํฐ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํ…Œ๋งˆ ์‹œ์Šคํ…œ์€ ์ ‘๊ทผ์„ฑ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์œ ์—ฐํ•˜๊ฒŒ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [5, 10]. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋””์ž์ธ ํ…Œ๋งˆ๋Š” ๋‹คํฌ ๋ชจ๋“œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋” ๋ˆˆ์— ๋„๊ฒŒ ๋งŒ๋“œ๋Š” ๊ณ ๋Œ€๋น„(High-contrast) ํ…Œ๋งˆ๋‚˜ ์ œํ•œ๋œ ์›€์ง์ž„(Limited movement)๊ณผ ๊ฐ™์€ ์‚ฌ์šฉ์ž ๊ธฐ๋ณธ ์„ค์ •์— ๋งž์ถฐ ๋™์ ์œผ๋กœ ์กฐ์ •๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [5, 10, 11]. * **์ฃผ์š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ๋„๊ตฌ์˜ ์ ‘๊ทผ์„ฑ ์ง€์›์˜ ์ฐจ์ด** * Shopify์˜ Polaris์™€ Uber์˜ Base Web๊ณผ ๊ฐ™์€ ์ตœ์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํ‚ค๋ณด๋“œ ๋‚ด๋น„๊ฒŒ์ด์…˜, ARIA ์—ญํ• , ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ํ˜ธํ™˜์„ฑ ๋ฐ WCAG ํ‘œ์ค€ ์ค€์ˆ˜๋ฅผ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [1, 3, 12, 13]. * ๋ฐ˜๋ฉด Tailwind CSS์™€ ๊ฐ™์€ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์šฐ์„  ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์Šคํƒ€์ผ๋ง์— ํŠนํ™”๋˜์–ด ์žˆ์–ด ์ž๋™์œผ๋กœ `aria-*` ์†์„ฑ์ด๋‚˜ ์‹œ๋งจํ‹ฑ HTML ์š”์†Œ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค [4]. ๋”ฐ๋ผ์„œ Tailwind CSS๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ARIA ์†์„ฑ๊ณผ ์‹œ๋งจํ‹ฑ ๋งˆํฌ์—…์„ ๋ช…์‹œ์ ์œผ๋กœ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [4]. * **๋Œ€๊ทœ๋ชจ ์ ‘๊ทผ์„ฑ ๋ฌธ์„œํ™” ๋ฐ ๊ด€๋ฆฌ ์ž๋™ํ™”** Uber์™€ ๊ฐ™์€ ๋Œ€๊ทœ๋ชจ ํ™˜๊ฒฝ์—์„œ๋Š” VoiceOver, TalkBack, ARIA์™€ ๊ฐ™์€ 3๊ฐ€์ง€ ์ ‘๊ทผ์„ฑ API๋ฅผ ์ปค๋ฒ„ํ•ด์•ผ ํ•˜๋ฉฐ, ๊ฐ๊ฐ ์ˆ˜๋ฐฑ ๊ฐœ์˜ ์†์„ฑ์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜๋™์œผ๋กœ ์ŠคํŽ™์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค [14]. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด AI ์—์ด์ „ํŠธ(Figma Console MCP ํ™œ์šฉ)๋ฅผ ๋„์ž…ํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ๋ฅผ ์Šคํฌ๋žฉํ•˜๊ณ  ๋‹ค์ค‘ ํ”Œ๋žซํผ์˜ ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ๋ฐ ์ ‘๊ทผ์„ฑ ์†์„ฑ์„ ๋‹จ ๋ช‡ ๋ถ„ ๋งŒ์— ํฌ๊ด„์ ์ธ ์ŠคํŽ™ ๋ฌธ์„œ๋กœ ์ž๋™ ๋ Œ๋”๋งํ•˜๋Š” ์ž๋™ํ™” ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•˜์—ฌ ์ ‘๊ทผ์„ฑ ๊ธฐ์ค€์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค [15-18]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[Compound Components|Compound Components]], [[Headless Components|Headless Components]], [[Design Tokens|Design Tokens]], [[Tailwind CSS|Tailwind CSS]] - **Projects/Contexts:** [[Uber Base Web|Uber Base Web]], [[Shopify Polaris|Shopify Polaris]], [[React Component Library Architecture|React Component Library Architecture]] - **Contradictions/Notes:** ์ปดํฌ๋„ŒํŠธ ๋ ˆ๋ฒจ์—์„œ์˜ ์ ‘๊ทผ์„ฑ ๋‚ด์žฅ ์—ฌ๋ถ€์—์„œ ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐ„ ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Shopify Polaris๋‚˜ Uber Base Web ๋“ฑ์˜ ์™„์ „ํ•œ UI ์ปดํฌ๋„ŒํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ARIA ๋ฐ ํ‚ค๋ณด๋“œ ์กฐ์ž‘๊ณผ ๊ฐ™์€ ์ ‘๊ทผ์„ฑ์„ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•˜์ง€๋งŒ [1, 3, 12], Tailwind CSS๋ฅผ ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์ ‘๊ทผ์„ฑ ํƒœ๊ทธ๋ฅผ ๋ถ€์—ฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์‹œ๋งจํ‹ฑ ๋งˆํฌ์—…๊ณผ ARIA ์†์„ฑ์„ ์ฑ™๊ฒจ์•ผ ํ•œ๋‹ค๋Š” ๋ช…ํ™•ํ•œ ํ•œ๊ณ„(์ฑ…์ž„์˜ ์ „๊ฐ€)๋ฅผ ์ง€์ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [4]. --- *Last updated: 2026-04-26*