"매 user 의 disability spectrum 의 across 의 first-class UX". Accessibility = 매 perceivable / operable / understandable / robust (POUR) 의 product 의 design — 매 screen reader, keyboard-only, low vision, cognitive, motor 의 모두 의 cover. 2026 EU EAA (June 28, 2025 enforcement) 의 매 legal requirement 의 됨 — 매 nice-to-have 의 X.
매 핵심
매 POUR (WCAG 4 principle)
Perceivable: 매 alt text, caption, contrast.
Operable: 매 keyboard, focus, target size.
Understandable: 매 readable, predictable, error-helpful.
Robust: 매 assistive tech 의 compatible, semantic HTML.
매 WCAG 2.2 (current standard)
Level A: 매 minimum (alt text, lang attr, no keyboard trap).
Level AA: 매 industry default (contrast 4.5:1, focus visible, target 24x24).
Motor — keyboard, switch, voice control, large target.
Cognitive — plain language, predictable nav, no time limit.
Vestibular / seizure — prefers-reduced-motion, no flash >3Hz.
매 응용
Public website (legal in EU/US/JP/KR).
Government / education (Section 508, EN 301 549).
Mobile app (iOS Accessibility, Android TalkBack).
Game (Xbox Accessibility Guidelines).
AI interface (screen-reader-friendly streaming output).
💻 패턴
Semantic HTML > ARIA
<!-- 매 right --><buttontype="button"onclick="save()">Save</button><!-- 매 wrong (div+role) --><divrole="button"tabindex="0"onclick="save()"onkeydown="...">Save</div>
Skip link
<ahref="#main"class="skip-link">Skip to main content</a><style>.skip-link{position:absolute;left:-9999px;}.skip-link:focus{left:1rem;top:1rem;z-index:100;}</style>
Accessible form field
<labelfor="email">Email</label><inputid="email"type="email"requiredaria-describedby="email-hint email-err"aria-invalid="false"/><pid="email-hint">We never share your email.</p><pid="email-err"role="alert"></p>
언제: 매 alt-text generation (vision LLM), 매 plain-language rewrite, 매 ARIA pattern lookup.
언제 X: 매 a11y compliance 의 sole authority — 매 human + screen reader test required.
❌ 안티패턴
role="button" on div: 매 keyboard handler missing — 매 native <button>.
Placeholder as label: 매 disappear on focus — 매 explicit <label>.
tabindex >0: 매 tab order breaks — 매 0 또는 -1 only.
aria-hidden="true" on focusable: 매 inconsistent — 매 confusing.
Color-only error: red border without text — color blind 의 invisible.
Auto-play video w/ sound: 매 WCAG 1.4.2 violation.
Clicking entire row w/o keyboard equiv: 매 keyboard user 의 inaccessible.
outline: none w/o replacement: 매 focus invisible — 매 custom ring 의 add.
🧪 검증 / 중복
Verified (W3C WCAG 2.2 spec 2023-10; ARIA Authoring Practices 1.2; EU EAA Directive 2019/882; axe-core rule set).