A friend showed me their Shopify store last November and asked, "is this accessible?"
I had no idea how to answer. I knew accessibility was a thing. I knew there were lawsuits. I had a vague sense that alt text mattered. But sitting there with their store on screen, I could not tell them if a blind customer could buy a product from it. So I started auditing. Six months later I have an app on the Shopify App Store, a list of thousands of stores I have scanned through development, and a much sharper sense of what is actually broken in the wild.
Here are six things that surprised me.
1. Every popular Shopify theme ships with 5 to 10 WCAG 2.2 AA violations
Dawn, Refresh, Sense, Crave, Studio, Stiletto. I tested eight themes. They all have the same handful of issues out of the box:
- Image carousels on the homepage have no alt text. The merchant gets a blank "image 1, image 2, image 3" experience on a screen reader.
- Search inputs in the header have a magnifying glass icon as the only label. No visible "Search" text, no aria-label.
- Secondary buttons use grey text on white at 3.5:1 contrast. Fails WCAG AA minimum of 4.5:1.
- Focus outlines are removed via CSS reset. Tab through the page and you cannot see where focus lands.
- Form fields use placeholder as the only label. Placeholder disappears on input, so by the time the user types, they cannot remember what field they are in.
This is not the theme builder fault, the design language is just optimized for visual polish. But every merchant inherits these problems on day one and most do not know.
2. Most "accessibility apps" on the App Store are overlays that do not fix anything
Twenty-five of the 28 apps in the Shopify Accessibility category are overlay widgets. You install them, a floating button shows up on your storefront, the button opens a panel with font size and contrast controls. The actual page code does not change.
This is the part that bothers me. US courts have ruled in Robles v. Domino and several follow-up cases that overlays do not protect against ADA lawsuits, because they do not fix the underlying code. National Federation of the Blind has an active class action against accessiBe right now. The overlay vendor business model relies on merchants confusing "we installed a widget" with "we are now compliant".
I made AccessifyAI explicitly not an overlay. The widget we ship adds skip links, ARIA landmarks, and visible focus outlines as semantic improvements. The AI fixes are real code changes the merchant applies to their theme.
3. The actual fixes are mostly 30 second changes once you know which file to open
Adding an alt attribute to an image. Wrapping a div in a button element. Bumping #cccccc to #6b7280. Adding aria-label to a search input. These take 30 seconds each. The hard part is not the change, it is figuring out:
- Which theme file contains the broken element
- Which Liquid section renders it
- Whether the same fix needs to be applied in 5 files or 1
So I built two tools for this. The first is a heuristic that maps WCAG violations to Liquid files. If the violation is on the cart icon, the fix is in snippets/cart-icon.liquid. If it is on the footer newsletter form, it is in sections/footer.liquid. The mapping is not perfect but the manual fix wizard now points merchants at the right file 80 percent of the time.
The second is AI-generated diffs. I use Groq with Llama 3.1 8B to generate the fix as a unified diff. The merchant previews it in a Monaco editor side-by-side view before any change touches their theme. No surprise edits.
4. EAA enforcement is real and merchants are not ready
The European Accessibility Act went into force June 28, 2025. Germany rolled out BFSG in September 2025 with fines up to 100,000 EUR per non-compliant store. Poland is next in 2026. France, Netherlands, Belgium are queued up.
The criteria are clear: if you sell to EU customers and your store has more than 10 employees or more than 2 million EUR in annual revenue, you need to meet WCAG 2.2 AA. Most Shopify Plus stores qualify.
In conversations with merchants over the last few months, almost none had done an audit. The ones that had used a Lighthouse score and called it done, which is not the same as WCAG conformance. Lighthouse catches maybe 30 percent of WCAG criteria, the rest needs manual review of forms, dynamic content, and keyboard flows.
5. Building a Shopify Theme App Extension that actually works is harder than I expected
The technical bits that took the most time:
- Bundle size for Built for Shopify. Theme extensions have a 10 KB threshold per asset for the BFS performance criteria. My initial widget was 34 KB. I had to split into a 6.8 KB loader and a 16 KB panel that lazy-loads only when the visitor clicks the floating button.
- Multi-language for the storefront widget. I shipped translations for English, Polish, German, and French. The challenge was keeping the loader small. The trick: a single 4-key dictionary in the loader for the always-on parts (skip link, ARIA labels, badge), and a larger dictionary inside the lazy-loaded panel for the toggle UI. I detect the page language from the html lang attribute with a fallback chain to English.
- Polaris web components in the merchant Admin. Shopify is migrating from the React Polaris library to web components with closed shadow DOM. Many components filter synthetic events for security, so programmatic clicks via JS often fail silently. I had to rewrite some test flows to use real OS-level clicks via CDP.
- Cross-language form state in React. The Issues page in our admin has a Monaco diff editor that loads only on demand. Lazy loading saves about 800 KB on first paint but the loader pattern around React.lazy and Suspense took a few iterations to get right with React Router 7.
6. The hardest thing was not the code, it was deciding what to charge
I have a free tier (10 pages scanned, 1 store). Basic at $9.99 covers 50 pages and 5 stores. Pro at $24.99 is unlimited with regression alerts and bulk AI fixes.
Pricing is hard because every other accessibility app charges $35 to $49 per month, and they have hundreds of reviews. I went lower because the only honest pitch I can make is "I am new, give me a chance and I will earn your review". Whether that works long term I will know in three months.
If you run a Shopify store and any of this resonates, AccessifyAI is on the App Store. Free tier covers 10 pages so you can scan and see if any of the violations above apply to your store. If you scan and the findings are not useful, please reply to this post and tell me what you actually need. I am building this in public and feedback shapes the next version more than anything.
apps.shopify.com/accessifyai
If you are a developer working on a Shopify accessibility tool of your own or in another commerce platform, happy to compare notes. Drop a comment.
Top comments (0)