This site is built to be used by everyone — including people who navigate with a keyboard, a screen reader, or with motion turned down. This page is the honest record of that work: what I deliberately built in, and what I have not yet done. I would rather tell you exactly where it stands than claim a finish line I have not crossed.
The standard I aim for
I build to WCAG 2.2 Level AA. To be clear about that word: this site has not been through a formal third-party audit, and nothing here is certified. AA is the bar I design and build against — not a badge I have been given. The specific choices below are real, and you can check them yourself.
What I built in
Keyboard, end to end. A “Skip to main content” link is the first thing on the page — hidden until you focus it, then it jumps you past the navigation to the main region. Every control is reachable by keyboard, and the mobile menu is a proper dialog: it keeps focus inside while it is open, closes on Escape, and returns focus to the button that opened it.
A focus ring you can actually see. Move through the page by keyboard and the focused element gets a 2px terracotta outline that traces its own shape — pills stay pill-shaped, cards keep their corners. It clears the contrast WCAG asks of a focus indicator, in both the light and dark themes.
Readable text in both themes. Every text role — body, captions, links — meets WCAG AA contrast against its background, in light mode and dark mode alike.
Real structure underneath. The page is built from honest landmarks — navigation, main, footer — in a sensible reading order, with a heading hierarchy a screen reader can move through. Links that open a new tab say so.
Motion that respects your settings. If your system asks for reduced motion, this site listens. The entrance animations, the scroll-linked day-to-night background, the page transitions, the small parallax — all of it holds still and shows you the finished, readable state instead of moving. A site-wide rule backs this up, so nothing decorative can slip past it.
[NEEDS-SKY placeholder — the reduced-motion-only line goes here.]
Measured, not claimed
Real numbers from a real run — measured 2026-07-09, method below. Not a live gate yet; a snapshot you can re-run.
What I have not done
In the spirit of being honest about what ships:
No formal audit. Conformance here is self-assessed against my own code — not certified by a third party, and not validated end to end with assistive technology across every browser and screen reader. I have not run a full manual screen-reader pass on this site. If you rely on one, I would genuinely like to hear how it goes.
The moving background is decorative. The day-to-night world that shifts as you scroll is marked as decorative and hidden from screen readers. It carries no information you would miss, and it holds still under reduced motion — but it is the one piece of visual flourish here, and I would rather name it than pretend the page is plain.
Found a barrier? Tell me.
Accessibility barriers feel lonely when you face them alone. If something here got in your way — a control you could not reach, text you could not read, anything at all — I want to know. Tell me what broke and what you were trying to do. I read every message that comes through, and I will fix it.