Commitments · every surface

Accessibility commitments

Ten commitments sit as a block on every surface sheet, and four passes are run against every surface a change note touches. Neither is a score and neither is a certificate.

Where the commitments sit in the build

A sheet without the block is not a finished sheet, and an unfinished sheet is not signed off.

The commitments below are a block on every surface sheet, not a page somebody writes at the end. Putting them on each sheet rather than in one policy means they are read at the moment a surface is specified, which is the only point at which changing them is cheap.

They are written as commitments, not as a score. A score invites a one-off measurement; a commitment has to hold at the next change window too, which is why the four passes at the foot of this page are repeated against every surface a change note touches rather than against the site once.

The commitments every surface is built to

  • 01 · widthUsable at 320 pixels wide with nothing scrolling sideways, and no fixed height that cuts text off.
  • 02 · keyboardEvery control reachable and operable from the keyboard, in the order it appears on the page.
  • 03 · focusAlways visible, and never signalled by colour alone.
  • 04 · the sheetA sheet that replaces the page takes the page out of the tab order while it is open and hands focus back to the control that opened it.
  • 05 · zoomText readable at twice its size without clipping or overlap.
  • 06 · colourNever the only carrier of meaning — the depth marker on this site is a word as well as a tint.
  • 07 · labelsEvery table a real header row; every control a real label, not a hint inside the box that vanishes when typing starts.
  • 08 · motionGated by the reduced-motion preference, and the gate lands the finished state rather than playing a shorter version of it.
  • 09 · drawingsThose that carry meaning are inline with a title and a description; decoration is marked as decoration and skipped.
  • 10 · structureHeadings descend one level at a time, and the page is readable with scripting switched off.

Commitment four is the one this site exercises on itself: the surfaces index is a sheet over the whole viewport, it is a list of links with scripting off, and with scripting on it takes everything behind it out of reach while it is open.

The four passes before a surface is signed off

Two of the four are run by reading the same surface twice, at two sizes. They are drawn side by side because that is how they are run: the same sheet, the same content, and the eye moving between them looking for the thing that only breaks in one.

Width pass · 320 across

The width pass: nothing crosses the edge nothing crosses the edge, nothing is clipped
Read at the narrowest width the surface will be used at.

Zoom pass · twice the size

The zoom pass: nothing clips and nothing overlaps fewer blocks on screen, none of them overlapping
Read again with the text at twice its size.
  • 01Keyboard pass — the surface is walked from the first control to the last with no pointer touched, and every stop is named on the sheet.
  • 02Width pass — drawn above, looking for sideways scroll and for text in a box that cannot grow.
  • 03Zoom pass — drawn above, checking that nothing clips and that no two things overlap.
  • 04Reduced-motion pass — the preference is turned on and the surface is loaded cold, checking that what should be visible is visible and that nothing is mid-animation.

Each pass is recorded on the sheet with the date it was run and against which version of the surface. A pass against an older version is not a pass: the change note names the surfaces it touches, and those passes are run again before the window closes.

None of this is a claim about conformance with an external standard, and none of it is a certificate. It is the list of things that get checked here, written down so that the check can be repeated by somebody who did not build the surface.