Accessibility
Design for everyone. Follow these requirements to pass the Quality Bar and deliver inclusive experiences.Safe areas and touch targets
- Use
env(safe-area-inset-*)for padding - Minimum touch target: 44×44 px
- Avoid placing controls near home indicator edges
Color and contrast
- Meet WCAG AA contrast (≥ 4.5:1 for body text)
- Do not convey meaning by color alone; pair with icons/labels
- Provide light/dark themes and preserve contrast in both
Typography
- Base size ≥ 16px; avoid ultra‑light weights
- Maintain readable line length (45–75 characters)
- Respect user font size settings when possible
Motion and reduced motion
- Keep transitions 200–300ms; no gratuitous motion
- Respect
prefers-reduced-motion
Semantics and roles
- Use semantic HTML (
button,nav,main,h1–h3) - Provide
aria-labelfor icon‑only buttons - Ensure focus outlines are visible and not removed
Keyboard and focus management
- Trap focus within modals; return focus to trigger on close
- Visible focus state for all interactive elements
- Order focus logically (DOM order matches visual order)
Error messaging
- Use clear language; describe cause and next step
- Link errors to fields via
aria-describedby - Do not rely solely on color to indicate errors
Media and images
- Provide
alttext for informative images - Mark decorative images with empty
alt="" - Caption essential videos; provide transcripts when applicable
Accessibility checklist
- Touch targets ≥ 44px; safe areas respected
- Contrast ≥ 4.5:1; legible in light and dark
- Reduced motion honored; no blocking animations
- Semantic elements and ARIA where needed
- Focus visible and managed in modals
- Clear, actionable error messages
- Images have appropriate alt text