Accessibility
Rules
- Semantic HTML: use
<button>,<nav>,<main>,<article>— not<div onClick> - ARIA attributes only when semantic HTML can't express the pattern
- Keyboard navigation: every interactive element must be reachable and operable via keyboard
- Focus management: modals trap focus, route changes move focus to content
- Color contrast: 4.5:1 for normal text, 3:1 for large text (18px+ or 14px+ bold)
- Alt text on all images — empty
alt=""for decorative images - Form labels: every input has a visible
<label>linked viahtmlFor - Skip navigation link as first focusable element
- Screen reader testing: test with VoiceOver (Mac) or NVDA (Windows)