FSD Frontend System Design

Part IV β€” The Reach

8 Accessibility

GoalShip interfaces that work with a keyboard, a screen reader, and low vision β€” by default, not as a retrofit.

  1. 8.1 Accessibility Overview Perceivable, operable, understandable, robust β€” four principles that cover every rule you'll ever be given. POUR principles mapped to real failures Β· 13 min
  2. 8.2 Keyboard Accessibility Everything clickable must be reachable by Tab, activatable by Enter or Space, and visibly focused. Tab order path over a layout + the key contract per widget Β· 16 min
  3. 8.3 Screen Reader Semantics decide what gets announced β€” ARIA patches the gaps, and wrong ARIA is worse than none. DOM β†’ accessibility tree, and what each element contributes Β· 17 min
  4. 8.4 Focus Management When the UI changes, you must decide where focus goes β€” the browser only gets it right on full page loads. Focus state machine for a dialog + SPA route change Β· 16 min
  5. 8.5 Color Contrast 4.5:1 for body text, 3:1 for large text and UI controls β€” and colour must never be the only signal. Contrast pass/fail swatches + colour-blind failure Β· 13 min
  6. 8.6 Accessibility Tools Automation finds about a third of real issues β€” know exactly which third, and cover the rest by hand. Tool coverage matrix β€” what each tool can and cannot see Β· 14 min
  7. 8.7 How to fix accessibility Audit, triage by user impact, fix at the component level, then gate it so it can't come back. Fix workflow + impact-based triage Β· 15 min

Capstone

Make a custom dropdown fully accessible. Document every role, every key binding, and where focus goes on open, select, and close.