Accessibility
Last updated
This site targets WCAG 2.2 Level AAA for contrast and Level AA across the remaining success criteria. AAA is a deliberate choice: AA's 4.5:1 floor is the legal minimum, and in practice people with mild low vision still struggle at it.
What that means concretely
-
Text contrast
7:1 minimum
WCAG 2.2 Level AAA. Measured against every background a colour can actually appear on, not just the page background. Verified in both light and dark themes on every build.
-
Non-text contrast
4.5:1 minimum
Applies to form-control boundaries and focus indicators. WCAG 1.4.11 itself only requires 3:1 and has no AAA level, so this exceeds the standard.
-
Minimum text size
16px body, 14px floor
Running prose is never smaller than 16px. Labels, badges and stat captions may use 14px, and nothing on the site is smaller than that.
-
Keyboard
Full operation
Every interactive control is reachable and operable by keyboard, with a visible focus indicator. A skip link is the first focusable element on each page.
-
Themes
Light, dark, automatic
The theme control in the header cycles light, dark, and automatic. Automatic follows your operating system setting and updates live if you change it.
How it is verified
Colour values on this site are not chosen by eye. Each one is solved against its target ratio by a script, and a check runs before every push and in CI that recomputes the contrast of every colour in both themes and fails the build if any falls below the bar. That prevents the usual failure mode, where an accessible design drifts out of conformance one commit at a time.
Automated checks do not replace human testing. Keyboard navigation and screen-reader behaviour are checked manually with VoiceOver.
Known gaps
- Embedded third-party content (calendar booking, chat widget) is outside my control and may not meet the same bar. If one blocks you, email me and I will handle your request directly.
- Third-party brand logos keep their official colours, which can fall below 4.5:1 against some backgrounds. They are decorative and always paired with a text label.
- Automated checks cannot prove usability. If something is technically conformant but still hard to use, that is a bug and I want to hear about it.
Standards and regulation
The target above meets or exceeds EN 301 549, the European standard referenced by the European Accessibility Act, which has applied since 28 June 2025 and points to WCAG 2.1 Level AA. It also covers the WCAG 2.1 AA bar used by Section 508 and the ADA.
Reporting a problem
If any part of this site is hard to read or impossible to use, tell me and I will fix it. Include the page, what you were using (browser, screen reader, zoom level), and what happened. Reports about readability are genuinely useful - the last one led to a full rebuild of the colour system.