Skip to content

Accessibility

What we build to, what is measured, and what we have not got to yet.

Last updated

We aim to meet WCAG 2.2 Level AA. This page says which parts of that we actually verify, because a statement that claims everything is fine is no use to someone who has just hit a wall.

What is built in

  • Contrast is measured, not eyeballed. Body text clears 4.5:1 against every surface it can land on and graphics clear 3:1, in both the dark and the light theme. The colour palette was checked against those thresholds before it shipped.
  • Both themes are first class. The site follows your system preference and can be set explicitly. Text over photographs sits on a scrim so it holds contrast regardless of the image underneath.
  • Keyboard access. Every control is reachable by keyboard, focus is always visible rather than suppressed, and the menu traps focus while it is open and returns it when it closes. A skip link jumps past the header to the content.
  • Motion is minimal and respects your settings. There is no autoplay, no parallax, and no ambient animation. Everything that does move is disabled outright under prefers-reduced-motion.
  • Structure. Pages use real headings in order, landmarks are labelled, and scroll targets are offset so a linked heading is never hidden behind the sticky header.
  • Images carry alt text, written per image rather than generated from the filename.

Known gaps

  • Alt text on older imported articles is uneven. We are rewriting it as we revisit pieces.
  • Embedded players from Spotify, Apple Music and YouTube are third-party iframes. Their keyboard and screen reader behaviour is theirs, not ours, and we cannot fix it from here.
  • Studio, the editing interface, is a Payload admin surface that we have not audited to the same standard. It affects contributors rather than readers.
  • We test with keyboard navigation and automated checks. We have not done a full audit with a screen reader user, which is the test that actually counts.

If something blocks you

Tell us. Say which page, what you were trying to do, and what you use to browse. An accessibility barrier is treated as a bug rather than a feature request, and we will tell you when it is fixed.