Accessibility
How this site aims to be accessible, and how to report a problem.
I want everyone to be able to use this site, whatever device, browser or assistive technology they use.
The standard
The site aims to meet the Web Content Accessibility Guidelines (WCAG) 2.2 at level AA. In practice that means you should be able to:
- move around every page with a keyboard alone, and see where you are
- use the site with a screen reader, with headings, landmarks and labelled links and form fields
- zoom text to 200% without losing content
- read text with enough contrast, in both the light and the dark theme
- browse with animation turned down if you’ve asked your device for reduced motion
How it’s checked
Every page template is tested automatically with axe against WCAG 2.2 A and AA and axe’s own best practices, in both themes, on a phone-sized and a desktop screen. The tests are run whenever the site changes, and they last passed on 20 October 2026. A manual check with a screen reader is still to do, and automated tests don’t catch everything, so if something gets in your way, I’d like to know.
Known problems
None are known at the moment. When one is found and can’t be fixed straight away, it will be listed here with what’s being done about it.
Reporting a problem
If you find something on this site hard or impossible to use, please tell me through the contact form. Say which page it was and what happened, and, if you can, which browser and assistive technology you were using. I’ll reply, and fix it as soon as I can.
If the contact form itself is the problem, you can reach me on LinkedIn instead.
Content on other sites
This statement covers this site only. Links to other sites, such as GitHub and the apps described here, go to services with their own accessibility statements. The spam check on the contact form is Cloudflare Turnstile, which Cloudflare makes and which the automated checks can’t look inside. If it gets in your way, LinkedIn works instead.