Accessibility statement
Accessibility
This site aims to meet WCAG 2.2 level AA. Accessibility is part of what I build for a living, so it is tested like any other behaviour, and the gaps are listed here rather than hidden.
What is tested automatically, on every change
- Automated WCAG 2.2 A and AA checks (axe) on every page, in light and dark themes, healthy and broken states, across 10 device profiles in Chromium, WebKit and Firefox.
- Keyboard-only use: a skip link, visible focus that is never hidden behind the sticky header or the health bar, and a data table with one Tab stop and arrow-key navigation.
- Reduced motion: animations, page transitions and the page-freezing demos are turned off.
- Text spacing overrides (WCAG 1.4.12) clip nothing, pages work at a 320 px width without sideways scrolling, and controls have targets of at least 24 px.
- Without JavaScript, the case studies, résumé and contact details are all still readable.
Known limits
- Screen-reader testing with VoiceOver, NVDA and TalkBack is not yet complete. Automated checks cannot replace it.
- The demos re-create real problems on purpose: one freezes the page for a second or two, and one shows raw translation keys. They only do this when you ask them to, and the freezing ones are skipped if you prefer reduced motion.
- The accessibility demo's numbers come from three automated checks on one panel. They illustrate a fix; they are not a conformance audit.
Found a problem?
Please tell me at [email protected]. I treat accessibility problems as bugs.
Last reviewed 2026-10-09.