A while back I read the WebAIM Million. Once a year, WebAIM runs an automated accessibility scan across the top million home pages on the web and reports what it finds. The 2026 numbers are grim: 95.9% of those pages have detectable WCAG failures, and for the first time in six years the figure went up instead of down. I thought, fine, that’s the open web. What does it look like down where I actually work, on the Shopify stores small independent brands run? I wanted a glimpse.

So I scanned 115 of them, expecting varied results. The numbers genuinely shook me. Two came back clean. The rest sat around 67 out of 100, and nearly all of them had something serious enough to stop a real customer from buying. The gap between a store that looks finished and one that actually works for everyone turns out to be surprisingly large.

First, who’s writing this, because it matters: I run AccessFix, an accessibility audit service for Shopify stores. I have a stake in the answer, so keep that in mind. It’s also why I had the tooling sitting around to scan 115 stores in an afternoon. The method, the numbers, and the limitations are all at the bottom, so you can check my work rather than take my word for it.

What “two passed” actually means

The scores, across all 115:

  • Two stores (2%) scored a perfect 100
  • 16% scored 90 or above
  • 39% landed between 70 and 89
  • 30% landed between 50 and 69
  • 15% came in under 50. One jewelry store scored a 2, which sent me back to check the scanner wasn’t broken. It wasn’t.

Most of these stores aren’t failing in any dramatic way. They’re sitting at a quiet, forgettable 67, carrying a handful of problems nobody caught because everyone who built and tested them could see the screen and use a mouse. That is the whole trouble with accessibility. It’s invisible to exactly the people who ship the site.

The catch, up front

An automated scanner catches maybe a third of the WCAG guidelines. It’s good at the mechanical stuff, missing alt text, low contrast, a button with no label. It has no idea whether your checkout works on a keyboard, whether focus lands somewhere sensible, or whether your alt text says something useful or just “product-photo-3.jpg”.

So 67 out of 100 is the flattering version. It’s the floor, measured by a machine that only sees the easy third. And those two perfect scores? They passed the automated checks, which is not the same as being accessible, and no tool can honestly tell you otherwise. It only means the machine-findable problems happened to be clean. Everything below is the simple, detectable stuff, and stores are still getting it wrong at scale.

The five things almost every store gets wrong

Ranked by how many of the 115 had each:

  1. Text too light to read (80% of stores). Low contrast was everywhere, close to 10,000 instances in total. Grey on white, pale buttons, faint little sale badges. Fine on the designer’s monitor, invisible on a phone in daylight.

  2. Links a screen reader can’t announce (63%). Links with no readable text, so the screen reader just says “link” and leaves the person guessing. Usually an icon link, a cart or a social icon, with nothing behind it in the markup.

  3. Tap targets too small or too crowded (50%). Controls packed close enough that someone with shaky hands keeps catching the wrong one. Mostly mobile menus and product grids.

  4. Images with no alt text (47%). Still on nearly half the stores. It shuts out screen readers and wastes SEO at the same time.

  5. Buttons with no label (36%). Icon-only buttons, search, menu, cart, close, with no accessible name. You see a magnifying glass. A screen reader user hears “button” and takes a gamble.

Two rarer ones worth flagging: 16% of stores had pages set to auto-refresh on a timer, which throws a screen reader back to the top mid-task, and 15% had form fields with no labels, so the screen reader can’t tell you what to type.

No category is quietly getting this right

I split the sample across ten categories, half-expecting one to stand out. The spread ran from 60 to 76, and that narrowness is the finding. Food and beverage came out “best” at 76. Outdoor and sports gear was worst at 60, electronics and fashion close behind. But a 76 average still means most of those stores carry serious issues. Nobody has cracked it. Even the best category sits at 76, which is still a long way from fine.

Why this happens (it’s drift, not negligence)

Almost none of this is carelessness. Accessibility erodes. A theme updates, an app injects a widget. Someone adds a sale banner in a brand color that’s a shade too light. The standard itself moves, the touch-target rule that half the stores failed only arrived in WCAG 2.2. Each change is tiny on its own. They pile up. A store that launched clean two years ago drifts to a 60 without anyone doing a single thing wrong, which is also why it goes unnoticed until someone complains or sues.

Why it’s worth your attention

Past the obvious reason, that real people can’t use your store, there are two.

The legal one: in the US, accessibility lawsuits and demand letters against online retailers run into the thousands every year, and they tend to cite exactly these machine-detectable failures, because they are trivial to prove. In the EU, the European Accessibility Act became enforceable in June 2025, so if you sell there, this stopped being optional.

The commercial one: every issue on that list is someone who tried to give you money and couldn’t. A button their screen reader won’t operate. A contrast level that hides “add to cart”. A menu that won’t tap. Around one in five people has a disability of some kind, so this is not a rounding error in your conversion rate.

If you run a Shopify store, start here

You don’t need to hire anyone to make a dent:

  • Run the store through a free checker. axe DevTools, WAVE, or the Lighthouse tab in Chrome will each give you the picture in a few minutes.
  • Get your text contrast to 4.5:1 against its background. Often a single theme setting, and usually the biggest single win.
  • Add alt text to product images. Screen readers and search engines both thank you.
  • Give icon buttons and icon links a real label (an aria-label on the cart, search, and menu).
  • Leave pinch-to-zoom alone, and kill any auto-refresh timer left behind by an old app.

That short list covers most of what showed up across all 115 stores.

Method and limitations

  • Sample: 115 independent Shopify stores across ten categories (roughly ten to thirteen each), in the US, UK, EU, and Australia. It’s a convenience sample of publicly findable independent brands, weighted toward small and mid-size rather than household names. Not a random draw, so read it as “the kind of store an independent agency builds”, not a census of all of Shopify.
  • Tool: the axe-core engine, the open-source standard for automated testing, run across up to roughly twenty pages per store (home, collections, products, cart, policies).
  • The limitation, again: automated testing sees about a third of WCAG. This is that third. The real picture is worse.
  • On severity: the scan ran WCAG 2.0/2.1/2.2 A and AA rules, not axe-core’s “best-practice” set, and axe assigns “minor” impact to very few conformance rules. So every finding here is moderate-or-worse, a genuine barrier, with nothing trivial inflating the counts.

If you want the methodology in more depth, or you do this for a living and want to pull it apart, get in touch and I’ll hand over the details.

And if you’d rather not do any of this yourself, that’s what AccessFix is for. But the free checkers up there are a real starting point, and most stores can win back a good chunk of that 67 on their own.