Accessibility.

This statement describes how this site is built, what it was tested against, and what we know is still unresolved.

The standard we target

This site aims to meet WCAG 2.2 Level AA. That is the level referenced by most accessibility legislation, including the Americans with Disabilities Act as it is applied to websites in practice.

How it was tested

Every page on this site is checked with an automated accessibility audit at three viewport widths. We use a real browser because headless browsers force overlay scrollbars, hiding reflow and focus defects that only appear at narrow widths.

Automated testing is the floor, not the finish. It catches roughly a third of WCAG failures. The remainder is manual: keyboard-only navigation, focus order, the visible focus indicator, reflow at 320 pixels, and whether the page still makes sense with motion and scripting unavailable. That manual pass was last worked through on 13 October 2026. Keyboard and focus results on this site are taken in WebKit rather than Chromium, because Chromium silently compensates for a missing tabindex on the main landmark and so reports a working skip link where there is none.

What this site does deliberately

Known limitations

The home page carries a scroll-driven sequence. With reduce-motion enabled it is static and the page reads normally, but on the home page specifically the sequence is the primary visual device, and a reader using reduce-motion sees a simpler page than one who does not.

This statement covers the pages listed in the site's sitemap. An earlier prototype of the home page remains on the server at /v2/; it is linked from nowhere and listed in no sitemap, it is not part of this site, and it has not been audited.

Telling us about a problem

If any part of this site is unusable for you, tell us and we will fix it. Reply to any message from us and it reaches a person. We treat an accessibility report as a defect report, not feedback.

Conformance against WCAG 2.2 Level AA

Every Level A and AA success criterion, with the status claimed for this site and the reason. “Not applicable” means the site has no content of that kind, not that the criterion was skipped.

WCAG 2.2 Level A and AA success criteria, as met by this site
SCNameLevelStatusHow this site meets it
1.1.1 Non-text Content A Supports Photographs that carry meaning have descriptive alt text; the decorative hero film carries aria-hidden and the still beneath it carries a description, so assistive technology skips them rather than reading filenames.
1.2.1 Audio-only and Video-only (Prerecorded) A Supports The home page film is video-only, silent and decorative. It conveys nothing that the surrounding text does not say, and a still poster is shown before it plays. With reduce-motion on, the film never plays. The film is hidden and the still photograph beneath it is shown in its place, and the section lift is not built at all, so the page is laid out in ordinary flow with nothing in motion.
1.2.2 Captions (Prerecorded) A Not applicable No audio is presented anywhere on this site. The only video element is muted and there is no audio element, so there is no speech or sound to caption.
1.2.3 Audio Description or Media Alternative A Not applicable As above: the only moving image is silent and decorative, and its content is described by the text beside it.
1.2.4 Captions (Live) AA Not applicable No live media.
1.2.5 Audio Description (Prerecorded) AA Not applicable No synchronised media. The one video has no audio track.
1.3.1 Info and Relationships A Supports Headings nest without skipping levels, navigation is in nav landmarks with accessible names, page content is inside main, and the conformance data below is a real table with scoped header cells.
1.3.2 Meaningful Sequence A Supports Reading order follows the DOM. Where the design reorders a block visually, the DOM was reordered to match rather than the order being faked with CSS.
1.3.3 Sensory Characteristics A Supports No instruction depends on shape, colour or position alone.
1.3.4 Orientation AA Supports No orientation is locked; every page works in portrait and landscape.
1.3.5 Identify Input Purpose AA Not applicable This site has no form fields.
1.4.1 Use of Colour A Supports Colour is never the only indicator. Links in prose are underlined on hover and focus and carry a visible focus ring; the current page in the navigation is marked with aria-current as well as a rule.
1.4.2 Audio Control A Not applicable Nothing plays audio, so there is nothing to pause or mute.
1.4.3 Contrast (Minimum) AA Supports Body ink #232323 and secondary text #69635f are used on the two section grounds, field #f8f2ef and shelf #d1c3b9. Body ink measures 14.17:1 on field and 9.14:1 on shelf; the weakest flat pairing on the site is secondary text #554e4a on shelf at 4.74:1, which clears the 4.5:1 minimum for body text. Text over photography is measured rather than assumed: the page is re-rendered with the glyphs transparent and the pixels behind each glyph are sampled and compared in linearised sRGB. Across 29 such text runs the weakest worst-pixel readings are the hero wordmark at 10.7:1, the hero headline at 4.1:1 against its 3:1 large-text floor, and the statement over the workshop footage at 3.8:1; the 10px hero eyebrow reads 6.6:1.
1.4.4 Resize Text AA Supports Type is set in relative units and clamps; the page is usable at 200% zoom with no loss of content.
1.4.5 Images of Text AA Supports All text is live text. No wordmark or heading is an image.
1.4.10 Reflow AA Supports Verified at 320 CSS pixels wide in a headed browser. No horizontal scrolling is required; the grids collapse to a single column and the navigation becomes a menu.
1.4.11 Non-text Contrast AA Supports Rules and borders are drawn from the ink and line tokens and meet 3:1 against their surfaces. The focus indicator is drawn twice where it crosses photography, an ink ring with a white halo outside it, because no single colour clears 3:1 against art that runs from bright sky to shadow.
1.4.12 Text Spacing AA Supports No declaration prevents a reader overriding line height, letter spacing or word spacing; nothing is sized to a fixed height that would clip at increased spacing.
1.4.13 Content on Hover or Focus AA Supports Nothing appears on hover that must be dismissed or hovered over to read.
2.1.1 Keyboard A Supports Every control is reachable and operable by keyboard, including the menu, the accordion on the home page, and the navigation dropdowns. The dropdowns are disclosure buttons rather than hover targets: Enter or Space opens one, Tab walks into it, and it never opens on focus, which would make Enter a close rather than an open.
2.1.2 No Keyboard Trap A Supports Focus can always leave any component. The menu and the navigation dropdowns both close on Escape and return focus to the control that opened them, and tabbing out of an open dropdown closes it rather than trapping the caret inside.
2.1.4 Character Key Shortcuts A Not applicable No single-character shortcuts and no accesskey attributes are defined.
2.2.1 Timing Adjustable A Not applicable Nothing on this site is time-limited.
2.2.2 Pause, Stop, Hide A Supports The only motion is driven by the reader scrolling, so it stops when they stop. Reduce-motion can be set either in the operating system or from the Reduce motion button in the footer of every page, which persists across reloads and between pages; with it on, the scroll sequence and every transition are disabled. Nothing is hidden in exchange: the content that the motion would have revealed is shown in its resting state instead.
2.3.1 Three Flashes or Below A Supports Nothing flashes.
2.4.1 Bypass Blocks A Supports A skip link to the main content is the first focusable element on every page.
2.4.2 Page Titled A Supports Every page has a unique title describing its subject.
2.4.3 Focus Order A Supports Focus order follows reading order. The decorative hero mock is aria-hidden and its one button is removed from the tab order. A closed navigation dropdown and a collapsed menu group both carry the hidden attribute, so their links are absent from the tab order rather than merely invisible in it.
2.4.4 Link Purpose (In Context) A Supports Link text describes its destination; no link reads "click here" or "read more" alone.
2.4.5 Multiple Ways AA Supports Every page is reachable four ways: the primary navigation, the six-column footer, the category hub it belongs to, and the published sitemap.xml. The footer carries the whole tree, which is also the route that works with scripting unavailable.
2.4.6 Headings and Labels AA Supports Headings describe the section they introduce; the footer column headings name their group and are also the accessible names of the nav landmarks.
2.4.7 Focus Visible AA Supports A 2px ink outline with a 3px offset is drawn on every focusable element, replacing the browser default, which was close to invisible on these surfaces. Over photography, the header on the home page, the hero and the work tiles, a white halo is drawn outside that ring so the indicator survives both pale and dark art, and the skip link, which paints on ink, reverses its ring to white.
2.4.11 Focus Not Obscured (Minimum) AA Supports The fixed header is 72px and pages carry matching scroll padding, so a focused element is never hidden behind it.
2.5.1 Pointer Gestures A Supports No multi-point or path-based gesture is required.
2.5.2 Pointer Cancellation A Supports Actions fire on pointer-up; nothing commits on pointer-down.
2.5.3 Label in Name A Supports Visible text is contained in each control accessible name.
2.5.4 Motion Actuation A Not applicable Nothing responds to device motion or orientation.
2.5.7 Dragging Movements AA Not applicable No draggable control exists on this site.
2.5.8 Target Size (Minimum) AA Supports Interactive targets meet the 24 by 24 CSS pixel minimum, with the menu button and the round controls set to 44 to 54 pixels.
3.1.1 Language of Page A Supports Every page declares lang="en".
3.1.2 Language of Parts AA Not applicable All content is in English.
3.2.1 On Focus A Supports Focusing a control never changes context.
3.2.2 On Input A Not applicable There are no inputs.
3.2.3 Consistent Navigation AA Supports The header, the footer columns, the home-page directory and the category hubs are all generated from one category model, so the same links appear in the same order in all four places on every page by construction rather than by discipline.
3.2.4 Consistent Identification AA Supports The same component is named the same way throughout.
3.2.6 Consistent Help A Supports The route to a person, the contact page, is in the same place in the header and footer of every page.
3.3.1 Error Identification A Not applicable No form, so no errors to identify.
3.3.2 Labels or Instructions A Not applicable No form fields.
3.3.3 Error Suggestion AA Not applicable No form.
3.3.4 Error Prevention (Legal, Financial, Data) AA Not applicable This site takes no payment and creates no commitment; nothing can be submitted from it.
3.3.7 Redundant Entry A Not applicable No multi-step process.
3.3.8 Accessible Authentication (Minimum) AA Not applicable There is no login.
4.1.2 Name, Role, Value A Supports Custom controls expose their state. The menu button, each navigation dropdown trigger and each mobile group expander carry aria-expanded and aria-controls. The closed menu is both inert and aria-hidden, so it cannot take focus while off-screen. The dropdowns are disclosure widgets and are not given a menu role, which would announce them as an application menu and stop their links being read as links.
4.1.3 Status Messages AA Not applicable No status messages are produced.