Legal
Accessibility
Last updated 1 November 2026. This page describes how the site is built and what we are aiming for, rather than claiming a standard we have not had independently verified.
The short version
We aim to meet WCAG 2.1 Level AA. The site is designed so that the menu, the quote form and the main content work with JavaScript switched off, so that it can be operated from a keyboard, and so that it respects your reduced-motion preference. It uses semantic HTML with a single H1 per page. We have not commissioned a third-party audit, and we do not claim certified conformance.
How the site is built
Core features do not depend on JavaScript
The slide-out menu and the quote form overlay are built on native checkbox inputs and CSS rather than scripts. Sub-menus use the native <details> element. Forms post to a normal server endpoint. JavaScript, when present, adds conveniences such as Escape-to-close, focus handling, inline form feedback and scroll-reveal animation.
Keyboard operation
Interactive elements are designed to be real, focusable controls. The menu and quote toggles are focusable checkboxes with labels. Focus outlines are visible and we have not removed them.
Motion
Scroll reveals and other animation are designed to stop when your system requests reduced motion. Nothing on this site is meant to flash.
Colour and contrast
We aim for text and interactive elements to meet WCAG 2.1 AA contrast guidance, and we try not to convey information by colour alone — tables, status messages and form errors carry text as well.
Structure and semantics
One H1 per page, headings in order, landmark elements for header, navigation, main and footer, real table markup for the specification tables, and breadcrumbs marked up as a list.
Forms
Form fields have visible labels rather than placeholders standing in for them. Validation errors are given in text, not only by colour, and fields use autocomplete hints where they apply.
Tables
Some specification tables are wide. Each one is designed to scroll horizontally inside its own container so the page itself does not scroll sideways.
Known limitations
- The interactive component diagram in the anatomy teardown needs JavaScript and conveys spatial relationships that a screen reader cannot usefully describe. We aim to publish the same information in text on that page.
- We have not tested with every assistive technology. If something does not work with yours, we would genuinely like to know.
Reporting a barrier
Use the contact form and include the page address and what went wrong. If the form itself is the barrier, describe what you need in as much of the form as you can complete, and we will do our best to help.
Without JavaScript
What is designed to work without scripting.
The site is built HTML-first and scripting is additive. This is the intended behaviour.
| Feature | Without JavaScript | What scripting adds |
|---|---|---|
| Pages and links | Work | Client-side routing |
| Slide-out main menu | Native checkbox and CSS | Escape to close; closes on navigation |
| Sub-menus in the menu | Native details elements | Nothing |
| Quote form overlay | Native checkbox and CSS | Focus placement, Escape to close |
| Quote request form | Posts to the server | Inline validation and feedback |
| Specification tables | Work | Nothing |
| FAQ disclosures | Native details | Nothing |
| Photographs | Plain images | Nothing |
| Scroll reveal animation | Content simply visible | The animation |
| Anatomy diagram hotspots | Not available | The interaction |
Contact
Reporting a barrier.
| Detail | |
|---|---|
| Where to write | The contact form on this site |
| Include | The page address and what went wrong |
| Alternative formats | Tell us through the form what format would help, and we will do our best |
| Requesting a quote | The quote form is the only route; tell us in it if you need help completing it |
Design decisions
Choices made for accessibility that also made the site better.
Much accessibility work is not a compromise. These are decisions where the accessible route was also the better engineering.
| Decision | Accessibility reason | Other benefit |
|---|---|---|
| Native checkbox for the menu and quote overlay | Keyboard operable without script | Works with JavaScript off; less code to break |
| Native details for sub-menus and FAQs | Built-in semantics for assistive technology | No custom state to drift |
| Form posts to a real server endpoint | Works without script | One validation path |
| Visible labels, not placeholders | Label persists while typing | Users can see what a field wants mid-entry |
| Errors in text, not only colour | Colour-blind users | Errors can say what to do |
| Width and height on images | Reduces disorienting reflow | Less layout shift |
| Tables scroll in their own container | No horizontal page scroll | Wide data works on a phone |
| Reduced-motion respected | Vestibular sensitivity | Cheaper rendering on weak devices |
| Answer-first summary on many pages | Screen reader users reach the point fast | Everyone reaches the point fast |
Technical detail
How specific patterns are implemented.
For anybody evaluating the site technically, or building something similar.
| Pattern | Implementation | Why not the usual approach |
|---|---|---|
| Slide-out menu | Hidden checkbox plus CSS :has() | A script-only drawer breaks without script and needs manual focus management |
| Menu button | A label bound to the checkbox; the checkbox itself is focusable | Keeps native Space-to-toggle and native focus |
| Sub-menus | Native details and summary | Custom accordions need aria-expanded plumbing that can drift |
| Quote overlay | Hidden checkbox plus CSS; dialog role on the container | Same reasoning |
| Form errors | Per-field text plus a summary | Colour-only or tooltip errors are missed by several groups |
| Success message | A polite status region | Assertive would interrupt mid-sentence |
| Reveal animation | Default state is visible; scripting opts in | Content is never hidden behind a script that might not run |
| Tables | Real table markup with header cells | Divs styled as tables lose structure |