How we tested
A conformance claim should say exactly what was tested and how. This one does.
A headless Chromium loads the résumé, waits for React to hydrate, and runs axe.run() with the WCAG 2.2 A/AA tag set, then again with the AAA set.
It does that for the base page, the open navigation drawer, the open search palette, and each of the five dialogs (Privacy, License, Contact, Search feature, One-page résumé) —
in light mode and dark mode, at 1280 px and 390 px. Seven states × two themes × two viewports = twenty-six runs. Current result: zero violations at every level.
Axe catches roughly half of real-world defects. The other half we script: a full keyboard traversal with a focus-indicator check on every tab stop, dialog focus management
(focus in, Tab trap, Escape, background inert, focus return), the search combobox's aria-activedescendant, reflow at 320 px, the WCAG text-spacing override,
200 % text size, prefers-reduced-motion, a no-JavaScript render, and both print paths. And a colour-parity lint that fails the build if any colour outside
@media print is hard-coded instead of drawn from a theme token.