496303471d
---ci--- project: atelier phase: 7 milestone: v0.1 status: complete phase_role: final milestone_complete: true requirements: covered: [ATELIER-01, ATELIER-02, ATELIER-03, ATELIER-04, ATELIER-05, ATELIER-06, ATELIER-07, ATELIER-08, ATELIER-09, ATELIER-10, ATELIER-11, ATELIER-12, ATELIER-13, ATELIER-14, ATELIER-15, ATELIER-16, ATELIER-17, ATELIER-18, ATELIER-19, ATELIER-20, ATELIER-21, ATELIER-22, ATELIER-23, ATELIER-24, ATELIER-25, ATELIER-26, ATELIER-27, ATELIER-28, ATELIER-29, ATELIER-30, ATELIER-31, ATELIER-32, ATELIER-33, ATELIER-34, ATELIER-35] partial: [] ship: milestone: v0.1 type: NFR tag: v0.0.7 merge: milestone/v0.1-atelier -> main release: https://git.cloudinit.dev/cloudinit-bot/atelier/releases/tag/v0.0.7 ---/ci--- Milestone v0.1 — Initial Framework (NFR, complete). 8 core principles (C1-C8), 11 domains, 110 domain principles, 27 derived docs, 4 good + 3 bad examples, 4 language docs, full matrix, 3 review docs. All 35 requirements covered. 7 patches (v0.0.0 pre-execution through v0.0.7 final). v0.0.7 IS the v0.1.0 milestone release.
50 lines
1.6 KiB
Markdown
50 lines
1.6 KiB
Markdown
# Accessibility Requirements
|
||
|
||
> Detailed, enforceable accessibility rules. Every component, page,
|
||
> and flow must pass these. Failure is disqualifying — see
|
||
> `first-principles.md` P2.
|
||
|
||
## Perceivable
|
||
|
||
- [ ] Every image has `alt` text or is marked `alt=""` 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:
|
||
|
||
1. Automated tool (axe-core, Lighthouse, etc.)
|
||
2. Keyboard-only navigation
|
||
3. Screen reader (NVDA, VoiceOver) walkthrough
|
||
4. Zoom to 200%
|
||
5. Reduced motion enabled
|
||
|
||
All five must pass. Automated-only is not acceptance. |