1.6 KiB
1.6 KiB
Accessibility Requirements
Detailed, enforceable accessibility rules. Every component, page, and flow must pass these. Failure is disqualifying — see
first-principles.mdP2.
Perceivable
- Every image has
alttext or is markedalt=""if decorative. - Every video has captions. Every audio has transcripts.
- Color contrast meets WCAG 2.1 AA (4.5:1 text, 3:1 UI).
- Information is not conveyed by color alone.
- Text resizes to 200% without loss of content or function.
Operable
- Every interactive element is keyboard-reachable.
- Focus order is logical and matches visual order.
- Focus is always visible (≥ 3:1 contrast).
- No keyboard traps.
- Touch targets are ≥ 44×44 CSS pixels.
- Motion can be disabled via
prefers-reduced-motion. - No flashing content > 3 flashes per second.
Understandable
- Page language is declared.
- Form fields have associated labels.
- Error messages identify the field and the problem.
- Navigation is consistent across pages.
- Abbreviations and jargon are explained on first use.
Robust
- HTML validates.
- ARIA is used correctly (roles, states, properties).
- Components work across assistive technologies.
- No ARIA is used where native HTML would suffice.
Testing
Every accessibility requirement is verified by:
- Automated tool (axe-core, Lighthouse, etc.)
- Keyboard-only navigation
- Screen reader (NVDA, VoiceOver) walkthrough
- Zoom to 200%
- Reduced motion enabled
All five must pass. Automated-only is not acceptance.