The short version. The page was built to WCAG 2.2 level AA and the contrast was measured rather than eyeballed. Two things are still unverified, and they are named below rather than left out.
What is built in
- A skip link as the first thing you reach with a keyboard
- Visible focus on every link, button and field, in orange at three pixels. Focus styles are never removed
- Every control reachable and operable by keyboard. Nothing needs a mouse and nothing needs hover
- Touch targets of at least 44 by 44 pixels, measured, not assumed
- Form labels that stay visible. The placeholder is an example, never the label
- Errors announced and placed next to the field they belong to, not collected at the top
- The screen result announced to screen readers when it changes
- Respect for reduced motion. Turn it on in your system settings and the chain stops animating and shows all four links at once
- The page works with JavaScript off. Every word is still there and readable
- Text that resizes. Zoom is not disabled and the layout holds at 200 percent
Contrast, measured
Every text colour was computed against its real background rather than judged by eye. Body text sits at 6.72 to 1, the orange at 6.07 to 1, white at 16.86 to 1, and the large number at 5.78 to 1. The minimum required is 4.5 to 1 for body text and 3 to 1 for large text.
Two problems were found this way and fixed: a faint blue used for section labels was failing at 2.49 to 1, and the oversized headline behind the photograph was failing at 1.63 to 1.
Why there is no accessibility widget
You will not find a floating button here that promises to make the site accessible. Those overlays often sit on top of a page without fixing what is underneath, they interfere with the screen reader someone already uses and trusts, and they have been the subject of complaints themselves. The work belongs in the page, so that is where it was done.
What is not verified
- No test with a real screen reader user. The code follows the standard, but that is not the same as someone using it
- The scrolling chain was not observed end to end in an automated test. Its four states were each verified separately
If something is in your way
Write to thankstolael@gmail.com and tell me what happened and what you were using. I will fix it, and I will tell you when it is fixed.