The standard we build to
WCAG 2.1 Level AA. Two criteria we treat as a hard floor rather than a target, because they are the ones most often skipped:
- 320px wide without horizontal scrolling - WCAG 1.4.10 Reflow.
- Text at 200% without anything clipping - WCAG 1.4.4 Resize Text. These are two separate tests, not one.
What is in place
- Color contrast is a rule, not a preference. The brand red #DA3F3F measures 4.41:1 against white, so it is used for fills and large type only. A darker red #A52828 at 7.16:1 carries every button label and small element. The two are deliberately never collapsed into one.
- Color never carries meaning alone. Sold out is a word, a badge and a dimmed image - three signals, so it survives being read in grayscale.
- Every input is at least 16px. Below that, iOS Safari zooms the page on focus and a shopper loses their place mid-form - worst of all in checkout.
- Visible focus on everything reachable, and every control is reachable by keyboard.
- Inputs have real labels, not placeholder text pretending to be one.
- Images carry alt text composed from the product, including the category where the title alone would not say it.
- Empty states say so in words. A product with no reviews prints "No reviews yet" rather than an empty five-star row, which reads as one star at a glance.
Known gaps
Listed because a statement that claims everything is fine tells you nothing.
- No screen-reader pass has been done. Components are built with correct roles and labels, but nobody has driven the site end to end with NVDA, JAWS or VoiceOver. Until that happens, treat everything above as designed-for rather than verified.
- No external audit. No third party has assessed this site against WCAG 2.1 AA.
- Video has no captions yet, because there is no published video yet. Any product clip that ships must carry captions - they are also what makes a clip work with the sound off, which is how most people watch.
- Long documents have no skip link to the main content past the header and nav.
Motion
If your system is set to reduce motion, the site honors it: the hero stops panning, the promise bar stops scrolling, cards stop lifting and counters print their final figure immediately. Everything is switched off, not slowed down.
Nothing on this site is hidden waiting for an animation to run. Content is never left transparent pending a scroll trigger - if a script fails or never fires, every word is still on the page. That rule exists because breaking it was how an earlier build left five headings invisible.
Tell us when we get it wrong
If something here is unusable with the tools you rely on, that is a defect and we want the report. Say what you were trying to do, what happened, and what you were using - browser, and any assistive technology. We will tell you what we find, including when the answer is that it will take a while.
Report a barrier
A person reads these, and a reply comes back.
Contact us