Accessibility

What works, what does not, and what we have not checked.

This page covers corvexal.net. We aim at WCAG 2.1 level AA. Below is what has actually been measured, and what has not, the second list is the one that usually goes missing, and it is the more useful of the two.

Measured, and passing

  • Keyboard. Every interactive element is reachable and operable by keyboard alone, in a tab order that follows the page. There are no keyboard traps.
  • Visible focus. A 2px bronze ring at 3px offset, on every focusable element. outline: none appears nowhere in the stylesheet.
  • Touch targets. Every link and button is at least 44 × 44 CSS pixels.
  • Reflow. No horizontal scrolling at 375px, 768px or 1440px.
  • Reduced motion. With prefers-reduced-motion: reduce the background lattice draws one static frame and never animates, and the depth planes do not move. The opening text still fades in on the same schedule, because asking for less motion is not asking for a worse page.
  • Scrolling is never taken over. No smooth-scroll, no momentum, no wheel or touch handler anywhere on the site. Your scroll travels exactly as far as you sent it.
  • Forms. Every control has a real <label>, not a placeholder standing in for one. Errors are announced in a live region and named in words, never by colour alone.
  • Structure. One h1 per page, headings in order, a skip link, landmark regions, and the current page marked with aria-current.
  • Decoration is hidden. The lattice and the file ring carry no information the text does not, and are hidden from screen readers rather than described at length.

Measured contrast

Against the page ground #F7F4ED, unless stated:

Body and heading ink
16.24 : 1
Secondary text
5.28 : 1
Bronze labels and numerals
5.03 : 1
Primary button, ink on bronze
5.76 : 1
Secondary button, white on ink
17.84 : 1
EMBER's action, ink on amber
8.77 : 1
Form errors
14.49 : 1

Two of these were failures in the original palette and were changed to get here. The brand bronze #B68A5E as text is 2.82 : 1, which fails at every size, so text uses a darkened bronze and the original value is kept for fills and rules. White on that bronze is 3.09 : 1, so the primary button's label is ink. Both are recorded here because a statement like this one is worth nothing if it only lists what already worked.

Not tested yet, and therefore not claimed

  • Screen readers. This site has not been walked with JAWS, NVDA or VoiceOver. The markup is written for them and has not been verified with them, and those are different things.
  • Browsers other than Chromium. Every measurement above was taken in a Chromium browser. Firefox and Safari have not been tested.
  • Zoom to 400% and OS-level text scaling have not been measured.
  • Voice control and switch access have not been tested.
  • An independent audit has not been carried out.

Known rough edges

  • On the home page the navigation fades in over the first 7.4 seconds. Any key press or click completes it immediately, which stops an invisible focus ring, but a reader who waits is waiting.
  • The navigation is drawn by JavaScript. With scripting off, a plain list of all seven pages appears at the top of every page instead.
  • Below 1024px the large background numeral is removed rather than shrunk, because at that width it lands on top of the heading.

Reporting a problem

If something here does not work for you, please write to hello@corvexal.net and say what you were using and what happened. You do not need to know the name of the standard it breaks.

We will acknowledge it and tell you either when it is fixed or why it is not going to be.

This version has not been dated for publication.