Checklist: Accessibility Review
Owned by the Accessibility Expert. Targets Apple accessibility guidance and WCAG 2.1 AA. See swiftui_standards.md.
VoiceOver (Critical)
- [ ] Every interactive element has a meaningful
accessibilityLabel. - [ ] Correct traits set (
.isButton,.isHeader,.isSelected, etc.). - [ ] Reading order is logical; related elements grouped (
accessibilityElement(children:)). - [ ] Decorative images hidden from VoiceOver (
accessibilityHidden(true)). - [ ] State changes announced where needed (e.g. loading, errors).
Dynamic Type (Critical)
- [ ] Uses semantic
Fonttext styles, not fixed point sizes. - [ ] Layout works at the largest accessibility text size (no clipping/overlap/truncation).
- [ ] Images/icons scale appropriately or have text alternatives.
Color & Contrast
- [ ] Text/background contrast meets WCAG AA (≥ 4.5:1 normal, ≥ 3:1 large).
- [ ] Color is never the sole information carrier (paired with text/icon/shape).
- [ ] Verified in light and dark mode.
Motion & Adaptation
- [ ] Non-essential animation gated behind
accessibilityReduceMotion. - [ ] Increase Contrast / Bold Text respected.
Interaction
- [ ] Touch targets ≥ 44×44 pt.
- [ ] All actions reachable without gestures that have no accessible alternative.
Testability
- [ ] Accessibility identifiers present on key controls (distinct from labels) for UI tests.
- [ ] All user-facing strings (incl. accessibility labels) localized.