Can They Buy?

Original measurement · 2–3 August 2026

99% of European online stores fail WCAG 2.1 AA. We measured 290 of them.

Nobody had published a conformance measurement of European e-commerce, so we ran one. 290 live Shopify stores across six EU markets, each tested on its home page and one real product page, on desktop and on mobile. 287 failed.

Everything below is reproducible. The tool is open source, the stores are public, the date is fixed. We publish the limitations in the same detail as the results, because a measurement you cannot criticise is not a measurement.

Headline results

99.0%of stores failed WCAG 2.1 AA — 287 of 290

32broken elements on the median store

85.2%had ten or more broken elements

728on the worst store in the sample

Method

We assembled a list of live Shopify stores selling into Germany, France, the Netherlands, Spain, Ireland and Sweden from a public directory of e-commerce sites, then verified each one was Shopify by inspecting its storefront HTML.

Each store was loaded with headless Chromium driven by Playwright and evaluated with axe-core against four rule sets: wcag2a, wcag2aa, wcag21a and wcag21aa. We tested the home page and one real product page, resolved from the store’s own catalogue rather than guessed.

Every store was tested twice: at 1366×900 and at 390×844. The figures reported here are the union of both — for each store, the worst result of the two.

Sample
StepStores
Attempted305
Loaded successfully300
Confirmed Shopify and analysed290

What counts as a “broken element”

One individual element that fails one WCAG 2.1 AA success criterion — a single button with no accessible name, one image with no text alternative, one piece of text without enough contrast against its background. A store with 32 broken elements has 32 specific things to correct, each with an address in the code. We count elements, not rule types, because that is what a person actually has to fix.

Results

By market — broken elements per store
MarketStoresMeanMedian10+ broken
Sweden2657.23277%
Germany7752.83087%
France5051.43884%
Netherlands5044.63480%
Spain5039.33186%
Ireland3737.72395%
Failures by type — share of the 290 stores affected
axe-core ruleIn plain languageShare
color-contrastText unreadable against its background82.1%
link-nameLinks with no accessible name56.6%
image-altImages with no text alternative42.4%
scrollable-region-focusableScrolling areas a keyboard cannot reach42.4%
button-nameButtons with no name, including “add to cart”32.8%
aria-hidden-focusHidden from screen readers but still focusable26.2%
listLists a screen reader cannot announce19.0%
aria-allowed-attrARIA attributes not permitted on that element18.6%
labelForm fields with no label17.6%
meta-viewportZoom disabled on mobile14.1%

Mean broken elements across the whole sample: 47.3. Median: 32. Maximum: 728. Stores with at least one critical or serious violation: 98.6%. Mean distinct violation types per store: 4.6.

The finding we did not expect: one viewport is not enough

Our first pass tested desktop only. When we repeated it on mobile across the first four markets, 22.8% of stores turned out to be worse on mobile than on desktop — scrollable tables, carousels and menus that acquire overflow once the layout collapses and become unreachable by keyboard.

Same 163 stores, measured three ways
MeasureDesktop onlyMobile onlyBoth
Broken elements — mean42.132.443.4
Broken elements — median282030
scrollable-region-focusable27.0%37.3%42.4%
button-name21.4%25.3%32.8%

We learned this the hard way, twice in one night: both this site and our parent agency’s site passed a desktop-only audit with zero violations, and both had real failures that appeared only at 390 pixels. A single-viewport audit reports a store cleaner than it is — and it errs in the direction that flatters whoever ran it.

It is not the theme. It is what was built on top of it.

We recorded the Shopify theme each store reported. Dawn appeared in 3.1% of stores, and the five most common themes together covered 8.2%. Almost nobody runs a catalogue theme: they run a renamed, forked, agency-modified version of one. Real theme strings from the sample:

Theme names as reported by the stores themselves
Reported theme string
POGS - 3.0.11 - Adjustable heading image position
2.5 | Dwell (A gosto da blanky) | 300726
Sleek | Van Rozen Utrecht ( OPTIMIZED )
bourgogne-theme/prd/NL
Ace 4.7 - With Working Membership

This matters for anyone selling remediation: the Shopify Theme Store requires a minimum Lighthouse accessibility score of 90 to publish, and Shopify publishes accessibility conformance reports for its own themes. The damage is concentrated in customisation, apps and content — not in the base theme.

And nobody had installed anything

Zero of the 290 stores had an accessibility overlay or any other accessibility product installed — not accessiBe, not UserWay, not AudioEye, not EqualWeb. In this market the shortcut has not been bought, which is worth knowing given that in 2025 the US Federal Trade Commission imposed a $1,000,000 order against an overlay vendor over conformance claims, and more than 800 companies running overlays were sued anyway.

Limitations

These are the reasons a careful reader should discount our numbers. We would rather state them than have them found.

  • Automated testing finds roughly 30–40% of accessibility problems. Everything here is machine-detectable. The real figures are worse, not better: we did not test whether a person using a screen reader can select a variant or complete a purchase, which is where most of the harm lives.
  • The sample is not random. Stores were drawn from a public directory, not from a census of all EU e-commerce. It skews toward stores that are indexed and active. We make no claim of statistical representativeness.
  • Two pages per store. Home plus one product page. A full-site audit would find more. Whole categories of failure — checkout flows behind authentication, PDFs, video captions — were never touched.
  • One moment in time. 2–3 August 2026. A store that installs an app next week will differ. Accessibility decays; a single measurement is a photograph, not a trend.
  • Market sizes are uneven. Germany contributed 77 stores, Sweden 26. Per-market medians from smaller samples carry wider uncertainty, and we have not computed confidence intervals.
  • We sell remediation. We have a commercial interest in these numbers being alarming. That is precisely why the method is published in enough detail for you to run it yourself and check.

Reproduce it

Every component is open source or public. Load a store with headless Chromium, run axe-core against wcag2a, wcag2aa, wcag21a and wcag21aa, at 1366×900 and at 390×844, on the home page and one product page, and count the failing nodes. That is the whole method.

Two implementation notes that cost us real findings. Emulate prefers-reduced-motion: reduce before scanning: sites with scroll-reveal animations hold content at opacity: 0 until an IntersectionObserver fires, and a scanner will not see any of it. And scroll the full page before evaluating, for the same reason.

For comparison

The WebAIM Million study of February 2026 found detectable failures on 95.9% of the top one million home pages, averaging 56.1 errors per page — 10.1% worse than 2025, the first regression after six consecutive years of improvement. Our figure is higher because we measured e-commerce specifically, and tested a product page as well as the home page.

Citing this

Can They Buy? (2026). WCAG 2.1 AA conformance of 290 European Shopify stores. Sell with Marketing. Published 3 August 2026. https://cantheybuy.com/study/
Published under CC BY 4.0 — use the numbers, please link back so readers can check the method. Questions or corrections: hello@sellwithmarketing.com.

Your store

We will run exactly this on your store, free

The same scan, your home page and one real product page, desktop and mobile. Violations by severity, the five worst with the exact element and code, and the criterion each one fails. Within one business day, with no access to your store and no deadline attached.

Get my store’s number