Accessibility
This site targets WCAG 2.2 Level AA and exceeds it on text contrast, which meets Level AAA in both light and dark themes.
What that means here
- The whole site works with JavaScript disabled. Nothing you can read or navigate depends on a script.
- Focus is always visible. The indicator is never removed, and it sits outside the element so it reads against any background.
- Colour is never the only signal. A visited link changes both its hue and its underline style.
- Motion is minimal, and if your system asks for reduced motion every animation and page transition is switched off, not merely shortened.
- Every page has one first-level heading, headings descend without skipping levels, and there is a skip link to the main content.
- Interactive targets are at least 24 by 24 pixels.
- Keyboard shortcuts (/, j, k) never fire while you are typing in a field, and never trap focus.
How it's checked
Every build runs axe-core against every generated page, renders the site with JavaScript disabled to confirm it still works, and recomputes the contrast of every colour pair. A failure in any of those stops the deploy rather than filing a warning nobody reads.
Automated testing catches perhaps half of what matters. It cannot judge whether link text makes sense out of context or whether the reading order is sensible, so those are reviewed by hand and are the likeliest place for a problem to survive.
Known gaps
- Search results are rendered client-side and are unavailable without JavaScript. The archive page lists every entry and needs none.
- Entries are archived from Bluesky as written. Where a post's original wording is unclear out of context, the archived copy inherits that.
Something not working?
Tell me and I will fix it. The fastest route is a message on Bluesky. Please say what you were trying to do and what got in the way — that is usually enough to reproduce it.