Last updated July 13, 2026
The target: WCAG 2.1 AA, in both light and dark modes, with full keyboard support and reduced motion respected.
The commitment
This site targets WCAG 2.1 AA. It is a small site maintained by one person, which means issues can slip through, and also means they get fixed quickly once I know about them.
What is implemented
The practices below are built into the site today, not aspirations:
- Semantic HTML with one h1 per page, ordered headings, and landmark regions.
- Full keyboard support: the header navigation, the Projects flyout, and the mobile menu all work from a keyboard, with focus trapped in the mobile overlay and Escape to close.
- A visible focus ring on every interactive element, in both color modes.
- Color contrast checked against WCAG AA for every text and background pair, in the light palette and the dark palette.
- Reduced motion support: when your system asks for less motion, animations, including the homepage split flap display, reduce to simple fades or nothing at all.
- The split flap display mirrors its current value to assistive technology through a polite live region.
- Meaningful alt text on every image; screenshots are described by what is on screen.
- Touch targets of at least 44 pixels, and text set in relative units so it scales with your browser settings.
Known limitations
External sites linked from these pages, including LinkedIn and the live products, are outside my control and may not meet the same target.
Report an issue
If anything on this site is hard to use with a keyboard, a screen reader, or any other assistive technology, please tell me. Include the page address and what went wrong, and I will prioritize a fix.
Found something that does not work for you? Go to the contact page