01 / Current stateWhere the site sits today
Honest measurement is the point. Below is the current score, split into three buckets: what's passing today, what's mid-fix, and what I haven't done yet.
Passing
7
Contrast, semantic HTML, alt text, meaningful link text, landmarks, sentence-cased copy, no motion loops.
In flight
3
Visible focus rings, skip-to-content link, prefers-reduced-motion honoring.
On the list
4
Screen-reader pass with VoiceOver, keyboard-only walkthrough, dark theme, Lighthouse in CI.
02 / Detailed checklistWhat I've verified, by check
✓
Color contrast (WCAG AA). Every text-on-background combination verified. Body prose meets 4.5:1; large display type meets 3:1.
Pass
✓
Semantic HTML. Real header, nav, main, section, article, figure, blockquote, footer. One h1 per page.
Pass
✓
Alt text on every image. Meaningful descriptions for content images; empty alt for decorative.
Pass
✓
Meaningful link text. No "click here." Every link makes sense out of context.
Pass
✓
Landmarks. Screen reader users can jump to nav, main, and footer.
Pass
✓
No infinite motion. The one animation (the "Currently @ GEICO" indicator) is a short pulse. Sticker rotation is slow.
Pass
✓
Language declared. Every page ships with lang="en" on the html element.
Pass
◐
Visible focus states. Currently browser default. A documented focus-ring token ships with the React rebuild (roadmap stage 05).
In flight
◐
Skip-to-content link. Not present today. Added as part of the React rebuild.
In flight
◐
prefers-reduced-motion. Animations don't currently honor the media query. Tokenized in stage 08 and applied to every existing animation.
In flight
○
Full screen-reader pass. Planned with VoiceOver (macOS) and one Windows session with NVDA. Bugs go into GitHub issues, fixed in the next minor.
On list
○
Keyboard-only walkthrough. Every interactive element reachable via keyboard, with sensible order. Documented once the site moves to React.
On list
○
Dark theme. Built through the semantic token layer in stage 08. Same contrast verification applies.
On list
○
Lighthouse in CI. Once the site lives in a repo (stage 00), Lighthouse runs on every PR. Regressions block merge.
On list
03 / What I commit toStandards + practice
- WCAG 2.1 AA as the baseline for every page and every component.
- Accessibility as a default, not a phase. New components ship with a11y notes in their docs or they don't ship.
- Real user testing with assistive tech — VoiceOver at minimum, NVDA where I can.
- Quarterly audit with results published back to this page. If something regresses, it says so here.
- Honest reporting. If a page or a component doesn't meet AA, it says so plainly and links to the tracking issue.
Why this page exists
An accessibility statement is easy to fake. So this one lists the actual state — including what's not done — and gets updated every audit. If you find something broken, the fastest path is the contact box below.
04 / How this site was testedThe methods behind the scores
- Automated: Lighthouse (Chrome DevTools), axe DevTools extension.
- Contrast: Every color pairing verified against WCAG contrast requirements using the tokens defined in design.md.
- Semantic review: Manual read of every page's HTML structure.
- Motion review: Every animation reviewed against WCAG 2.3.3 pause/stop/hide guidelines.
- Screen reader: Planned. Currently untested on this specific site — see "in flight" above.