--- id: wiki-2026-0508-accessibility title: Accessibility category: 10_Wiki/Topics status: needs_review canonical_id: self aliases: [] duplicate_of: none source_trust_level: A confidence_score: 0.92 tags: [uncategorized] raw_sources: [] last_reinforced: 2026-05-08 github_commit: pending inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- # [[Accessibility|Accessibility]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) μ ‘κ·Όμ„±(Accessibility, A11y)은 μž₯μ•  μ—¬λΆ€λ‚˜ κΈ°κΈ° ν™˜κ²½μ— 관계없이 λͺ¨λ“  μ‚¬μš©μžκ°€ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ›ν™œν•˜κ²Œ μ΄μš©ν•  수 μžˆλ„λ‘ 보μž₯ν•˜λŠ” 핡심 섀계 원칙이닀 [1]. ν™•μž₯ κ°€λŠ₯ν•œ React μ»΄ν¬λ„ŒνŠΈ μ•„ν‚€ν…μ²˜μ—μ„œλŠ” μž¬μ‚¬μš©μ„±μ„ ν™•λ³΄ν•˜κΈ° μœ„ν•΄ ARIA μ—­ν• (roles), ν‚€λ³΄λ“œ 탐색, 포컀슀 관리, ν™”λ©΄ νŒλ…κΈ°(Screen-reader) 지원 등을 μ»΄ν¬λ„ŒνŠΈ λ‹¨κ³„μ—μ„œ 기본적으둜 λ‚΄μž₯ν•΄μ•Ό ν•œλ‹€ [1-3]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **μž¬μ‚¬μš© κ°€λŠ₯ν•œ μ»΄ν¬λ„ŒνŠΈμ˜ ν•„μˆ˜ 쑰건**: 접근성은 λ””μžμΈ μ™„λ£Œ ν›„ λ‚˜μ€‘μ— μΆ”κ°€ν•˜λŠ” 것이 μ•„λ‹ˆλΌ 'μ΅œμš°μ„ (First-Class)'으둜 μ»΄ν¬λ„ŒνŠΈμ˜ DNA에 λ‚΄μž₯λ˜μ–΄μ•Ό ν•œλ‹€ [1, 3]. 접근성을 λ‚˜μ€‘μ— λ§λΆ™μ΄λŠ” 방식(afterthought)으둜 μ²˜λ¦¬ν•˜λ©΄ λΉ„μš©κ³Ό μˆ˜κ³ κ°€ 두 배둜 λ“ λ‹€ [4]. μƒν˜Έμž‘μš© μš”μ†Œμ—λŠ” μ μ ˆν•œ μ‹œλ§¨ν‹± νƒœκ·Έ, μ—­ν• (roles), 라벨, 포컀슀 관리 및 ν‚€λ³΄λ“œ 탐색(Tab, ν™”μ‚΄ν‘œ ν‚€, Home/End λ“±) κΈ°λŠ₯이 ν•„μˆ˜μ μœΌλ‘œ ν¬ν•¨λ˜μ–΄μ•Ό ν•œλ‹€ [1, 3, 5]. - **λ””μžμΈ 토큰과 μ‹œμŠ€ν…œμ„ ν†΅ν•œ μ ‘κ·Όμ„± ν–₯상**: λ””μžμΈ 토큰 기반의 ν…Œλ§ˆ μ‹œμŠ€ν…œμ„ μ μš©ν•˜λ©΄ κ³ λŒ€λΉ„(high-contrast) λͺ¨λ“œλ‚˜ λͺ¨μ…˜ κ°μ†Œ(limited movement)와 같이 λ‹€μ–‘ν•œ μ‚¬μš©μž μ„ ν˜Έλ„ 및 μ ‘κ·Όμ„± μš”κ΅¬ 사항에 맞좰 μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‰½κ²Œ μ‘°μ •ν•  수 μžˆλ‹€ [6]. - **μŠ€νƒ€μΌλ§ 도ꡬ 및 μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ˜ μ ‘κ·Όμ„± 처리**: - **[[Tailwind CSS|Tailwind CSS]]**: μœ ν‹Έλ¦¬ν‹° 클래슀λ₯Ό ν†΅ν•œ μ‹œκ°μ  μŠ€νƒ€μΌλ§μ€ 맀우 λΉ λ₯΄μ§€λ§Œ, ARIA μ†μ„±μ΄λ‚˜ μ‹œλ§¨ν‹± HTML을 μžλ™μœΌλ‘œ μΆ”κ°€ν•΄ μ£Όμ§€ μ•ŠλŠ”λ‹€λŠ” 단점이 μžˆλ‹€ [7]. λ”°λΌμ„œ κ°œλ°œμžκ°€ 항상 μ μ ˆν•œ ARIA 속성과 μ‹œλ§¨ν‹± μš”μ†Œλ₯Ό 직접 μΆ”κ°€ν•˜λŠ” 것이 μ£Όμš” λͺ¨λ²” 사둀(Best Practice)둜 κΌ½νžŒλ‹€ [8]. - **[[Headless UI|Headless UI]] νŒ¨ν„΄**: [[Radix UI|Radix UI]]λ‚˜ Headless UI와 같은 λΌμ΄λΈŒλŸ¬λ¦¬λŠ” λ³΅μž‘ν•œ μƒνƒœ 관리와 μ ‘κ·Όμ„± κΈ°λŠ₯을 기본적으둜 μ œκ³΅ν•˜λ©΄μ„œ μŠ€νƒ€μΌλ§ κΆŒν•œλ§Œ κ°œλ°œμžμ—κ²Œ μœ„μž„ν•˜λ―€λ‘œ, λΈŒλžœλ“œ λ§žμΆ€ν˜•μ΄λ©΄μ„œλ„ μ™„λ²½ν•œ 접근성을 κ°–μΆ˜ UI μ‹œμŠ€ν…œμ„ κ΅¬μΆ•ν•˜λŠ” 데 맀우 μœ λ¦¬ν•˜λ‹€ [9]. - **볡합 μ»΄ν¬λ„ŒνŠΈ([[Compound Components|Compound Components]])**: μ»΄ν¬λ„ŒνŠΈ λ‚΄λΆ€ μ»¨ν…μŠ€νŠΈ(Context)λ₯Ό κ³΅μœ ν•¨μœΌλ‘œμ¨ μ‚¬μš©μžκ°€ 직접 IDλ₯Ό μ‘°μž‘ν•˜μ§€ μ•Šμ•„λ„ `aria-controls`λ‚˜ `aria-labelledby`λ₯Ό μžλ™μœΌλ‘œ μ—°κ²°ν•˜μ—¬ μ ‘κ·Όμ„± μ μš©μ„ λ‹¨μˆœν™”ν•  수 μžˆλ‹€ [10]. - **λŒ€κ·œλͺ¨ μ—”ν„°ν”„λΌμ΄μ¦ˆμ˜ μ ‘κ·Όμ„± 관리 (Uber 및 Shopify 사둀)**: Shopify의 Polaris λ””μžμΈ μ‹œμŠ€ν…œκ³Ό Uber의 Base Web은 ν‚€λ³΄λ“œ 탐색과 ν™”λ©΄ νŒλ…κΈ° 지원을 핡심 κΈ°λŠ₯으둜 μ œκ³΅ν•œλ‹€ [2, 11, 12]. 특히 UberλŠ” VoiceOver, TalkBack, ARIA μ—­ν•  λ“± μ—¬λŸ¬ μ ‘κ·Όμ„± API의 수백 κ°€μ§€ 속성을 μ •ν™•ν•˜κ²Œ μœ μ§€ν•˜κΈ° μœ„ν•΄, AI μ—μ΄μ „νŠΈλ₯Ό 톡해 [[Figma|Figma]] λ””μžμΈ νŒŒμΌμ—μ„œ μ¦‰κ°μ μœΌλ‘œ μŠ€νŽ™(Spec) λ¬Έμ„œλ₯Ό μžλ™ μƒμ„±ν•˜λŠ” μ‹œμŠ€ν…œμ„ ꡬ좕해 규λͺ¨μ˜ ν•œκ³„λ₯Ό κ·Ήλ³΅ν–ˆλ‹€ [13-16]. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[Headless Components|Headless Components]], Compound Components, Design Tokens, [[Tailwind CSS|Tailwind CSS]] - **Projects/Contexts:** [[Shopify Polaris|Shopify Polaris]], Uber Base Web, [[Radix UI|Radix UI]] - **Contradictions/Notes:** μ†ŒμŠ€λŠ” 볡합 μ»΄ν¬λ„ŒνŠΈ(Compound Components) νŒ¨ν„΄μ΄ ARIA 속성 μžλ™ μ—°κ²° 등을 톡해 접근성을 κ°œμ„ ν•΄ μ£Όμ§€λ§Œ [10], μ‚¬μš©μžμ—κ²Œ λ„ˆλ¬΄ λ§Žμ€ μœ μ—°μ„±μ„ λΆ€μ—¬ν•  경우 ν•˜μœ„ μ»΄ν¬λ„ŒνŠΈμ˜ μˆœμ„œλ₯Ό μž„μ˜λ‘œ λ³€κ²½ν•˜κ±°λ‚˜ λˆ„λ½ν•˜μ—¬ 였히렀 μ ‘κ·Όμ„±κ³Ό UXλ₯Ό μ†μƒμ‹œν‚¬ 수 μžˆλ‹€κ³  κ²½κ³ ν•œλ‹€ [17]. --- *Last updated: 2026-04-26* ## πŸ€– LLM ν™œμš© 힌트 (How to Use This Knowledge) **μ–Έμ œ 이 지식을 μ“°λŠ”κ°€:** - *(TODO)* **μ–Έμ œ μ“°λ©΄ μ•ˆ λ˜λŠ”κ°€:** - *(TODO)* ## πŸ§ͺ 검증 μƒνƒœ (Validation) - **정보 μƒνƒœ:** needs_review - **좜처 신뒰도:** A - **κ²€ν†  이유:** *(P-Reinforce Phase 1 μžλ™ μ •κ·œν™”. λ³Έλ¬Έ 검증 ν•„μš”.)* ## 🧬 쀑볡 검사 (Duplicate Check) - **κΈ°μ‘΄ μœ μ‚¬ λ¬Έμ„œ:** *(TODO: μΈλ±μ„œ ν΄λŸ¬μŠ€ν„° 리포트 μ°Έμ‘°)* - **처리 방식:** UPDATE (μžλ™ μ •κ·œν™”) - **처리 이유:** Phase 1 μ •κ·œν™” β€” μ˜› ν…œν”Œλ¦Ώ/λˆ„λ½ ν•„λ“œ 보강. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & Updates) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μ—†μŒ - **μ •μ±… λ³€ν™”:** μ—†μŒ ## πŸ•“ λ³€κ²½ 이λ ₯ (Changelog) | λ‚ μ§œ | λ³€κ²½ λ‚΄μš© | 처리 방식 | 신뒰도 | |------|-----------|-----------|--------| | 2026-05-08 | P-Reinforce Phase 1 μ •κ·œν™” (frontmatter + 헀더 ν‘œμ€€ν™”) | UPDATE | A | ## πŸ’» μ½”λ“œ νŒ¨ν„΄ (Code Patterns) **νŒ¨ν„΄ 1:** *(TODO: 이 ν”„λ‘œμ νŠΈ μ»¨λ²€μ…˜ λ°˜μ˜ν•œ ꡬ쑰 μŠ€μΌˆλ ˆν†€)* ```text # TODO ``` ## πŸ€” μ˜μ‚¬κ²°μ • κΈ°μ€€ (Decision Criteria) **선택 Aλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **선택 Bλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **κΈ°λ³Έκ°’:** > *(TODO)* ## ❌ μ•ˆν‹°νŒ¨ν„΄ (Anti-Patterns) - **[μ•ˆν‹°νŒ¨ν„΄]:** *(TODO: 무엇을 ν•˜λ©΄ μ•ˆ λ˜λŠ”κ°€ + 이유 + λŒ€μ‹  무엇을)*