# Rule: accessibility ## The gate is a keyboard, not a scanner Automated tooling catches roughly **57%** of accessibility defects, and the misses cluster exactly where usability is decided: focus visibility, focus obscured by sticky elements, target size, and drag alternatives. Run axe, then do the manual sweep anyway. **Manual sweep, every interactive component:** 1. Tab through it. Every control reachable, in a sensible order. 2. Focus ring visible at every stop — this site uses `outline: 3px solid #a7483f; outline-offset: 2px`. Keep it. 3. Operate it with Enter and Space. Escape closes anything that opened. 4. Nothing is reachable only by hover or only by pointer. 5. Zoom to 200%. Nothing clipped, nothing overlapping. ## Semantics - Native elements first. ` ``` The vote widget and preview switcher already do this. Match them. ## Contrast Body text ≥ 4.5:1, large text ≥ 3:1, UI boundaries ≥ 3:1. Check any new combination against the token palette — `--muted` on `--paper` is the pair most likely to fail; verify before shipping. ## Bilingual content `` must change with the language toggle, not just the text. Screen readers pick pronunciation from it. This already works today — do not regress it.