On 12 November 2026 we tested 227 US Shopify stores that run an accessibility app. This page explains how we picked them, what we tested, what counts as a blocker, and what the numbers do not tell you. We quote these numbers on our home page, so you should be able to judge them.
The short version
- 123 of 227 stores (54%) had at least one blocker in the theme itself, under the app.
- A blocker only counts when two separate checks agree. Single-signal results are left out.
- We re-ran 60 of those blockers, in 20 stores, with a second script written from scratch. 59 of 60 showed up again.
- This is not a random sample of Shopify. It tells you what an app tends to leave behind, not how many stores have problems.
How we picked the stores
Every store in the sample prices in US dollars and loads an accessibility app on its pages. They came from two lists:
- 101 well-known US brands that sell on Shopify. We started from a longer list of brands and kept the ones where an accessibility app’s script loads on the page.
- 127 smaller US stores that left a review for an accessibility app on the Shopify App Store. We then checked that the app was still loading on their store.
One store was on both lists, which makes 227. The apps included accessiBe, UserWay, Avada, Accessibly, EqualWeb, AudioEye and others. We do not publish store names. If you own one of these stores, write to us and we will send you your own results.
What we did on each store
- Opened the home page, one collection page and one product page in Chrome, on a desktop screen 1366 pixels wide.
- On the product page, chose a size with the keyboard if one was needed, then pressed Enter on “Add to cart”.
- Opened the cart and tested it with the keyboard: does focus move in, does Tab stay inside, does Escape close it.
- Walked every page with Tab, and ran axe-core against WCAG 2.2 levels A and AA.
- Stopped before checkout. We never logged in, filled in a form or placed an order, and waited several seconds between pages.
What counts as a blocker
Automated tools give false alarms, so we only count a problem when two different checks agree. Anything with one signal is marked “check by hand” and is not in our numbers.
| Problem | First check | Second check |
|---|---|---|
| Button or link with no name | No text, label, title or alt in the page code | The browser’s accessibility tree, which screen readers read, gives it no name |
| Product photo with no description | The image has no alt text, or an empty one | The accessibility tree gives the image no name |
| No visible focus | The element’s styles are identical with and without keyboard focus | A screenshot of the element is identical, pixel for pixel |
| Cart doesn’t take focus | After “Add to cart”, focus is outside the open cart | The next two Tab presses still land outside it |
| Escape doesn’t close the cart | The cart is still visible after Escape | The cart is still painted on top of the page |
We count a blocker against the theme only when it sits in the store’s own theme code. Problems inside third-party widgets, such as a reviews or chat box, are counted separately: 3 stores had blockers only there, and they are not in the 123.
What we found
| Problem | Stores | Share |
|---|---|---|
| Shoppers can’t reach checkout | 28 of 136 stores with a slide-out cart | 21% |
| Shoppers get stuck in the cart | 8 of 136 stores with a slide-out cart | 6% |
| Shoppers can’t find the cart | 29 of 227 stores | 13% |
| Browsing turns into guessing | 76 of 227 stores | 33% |
| Shoppers lose their place | 45 of 227 stores | 20% |
| Photos tell blind shoppers nothing | 14 of 227 stores | 6% |
The cart rows count only the 136 stores where the cart test could run to the end. On the others something got in the way, such as a pop-up or a cart that opens as a separate page.
The second check
To test our own tool, we picked 20 stores and re-checked every blocker in them (60 in all) with a separate script, written from scratch without the first one’s code or screenshots. 59 of 60 repeated. The one that did not was a cart-focus result: on the re-run, the first Tab did enter the cart. It is still counted in the table above, so the true cart-focus figure may be one lower.
What these numbers do not tell you
- They are a floor, not a full count. Automated checks find only part of the problems a person with a screen reader would meet, and on 61 stores at least one test could not run.
- They are one day, on desktop. Stores change their themes often. A store may have fixed, or added, problems since.
- They say nothing about your store. The free check does that, with screenshots.
- They are not a legal finding. A blocker means a shopper using a keyboard or screen reader could not do something. Whether that matters legally is for a lawyer.
Got a demand letter?