Shopify accessibility is no longer optional. Since the European Accessibility Act took effect on 28 June 2025, stores selling to EU consumers must meet a clear technical standard — and the same fixes that satisfy regulators also recover sales you are quietly losing to broken interactions. This guide is specific to Shopify: where themes fail, how to write product alt text that works, what is and isn't your responsibility at checkout, and how the EAA applies to e-commerce.
Most Shopify accessibility problems cluster in a handful of predictable places. Fix those and you remove the majority of real-world barriers for shoppers who use screen readers, keyboards, or high-contrast settings.
The standard you actually have to meet
Under the EAA (Directive (EU) 2019/882), the accessibility baseline is WCAG 2.2 Level A and AA, referenced through the European standard EN 301 549. WCAG is built on four principles — content must be Perceivable, Operable, Understandable, and Robust. You don't need to memorise the spec, but nearly every Shopify issue maps to one of those four ideas: an image with no alt text isn't perceivable; a pop-up you can't close with a keyboard isn't operable.
Microenterprises that *provide services* — fewer than 10 staff and under €2 million annual turnover — are largely exempt for those services. Most growing Shopify merchants are either above that threshold or selling products, so assume the rules apply unless you've confirmed otherwise. See our European Accessibility Act overview for the full scope and the retail-specific detail.
Theme issues: where Shopify stores break
Your theme is the single biggest variable. Free Shopify themes like Dawn are built with accessibility in mind, but customisation, premium themes, and page-builder apps reintroduce problems fast. The recurring offenders:
- Colour contrast. Sale badges, 'Add to cart' buttons, and placeholder text are frequent failures. WCAG requires 4.5:1 for normal text, and 3:1 for large text (≥ 18pt, or 14pt bold) and for UI components and graphics (1.4.3 / 1.4.11). That trendy light-grey-on-white price label almost certainly fails.
- Keyboard traps and invisible focus. Mega-menus, predictive search, quick-view modals, and cookie banners often can't be reached or escaped with the Tab and Esc keys. Tab through your homepage without touching the mouse — if focus disappears or gets stuck, so do some of your customers.
- Heading structure and skipped landmarks. Themes that use an h1 for the logo on every page, or jump from h2 to h4, confuse screen-reader navigation.
- Carousels and auto-playing sliders that move without controls violate the principle that users must be able to operate the interface at their own pace.
Run your live storefront through a free checker before you start guessing. Our free scanner flags contrast, missing alt text, heading order, and form-label issues page by page, so you can see which theme sections to prioritise.
Product image alt text done properly
Alt text is the highest-leverage fix on most stores, because product imagery is the content. In Shopify admin, each image has an 'Alt text' field (Products → select product → click an image → 'Edit alt text'). Most stores leave it blank or auto-fill the filename, which gives a screen reader 'IMG_4821.jpg' instead of a description.
- Describe what matters for the buying decision: "Women's olive-green waterproof parka, hood up, front view" beats "green jacket".
- Don't start with "Image of…" — assistive tech already announces it's an image.
- Leave alt text empty for purely decorative images so screen-reader users aren't read noise.
- Don't keyword-stuff. Alt text helps SEO precisely because it describes the image accurately; cramming in terms degrades both the experience and the signal.
For variant-heavy catalogues, write alt text per colourway rather than reusing one description across every swatch. Our guide on how to write alt text covers edge cases like infographics, size charts, and lifestyle shots.
Accessible checkout and forms
Here's the reassuring part: on most plans you cannot edit Shopify's core checkout markup, and Shopify maintains it to a decent standard, which removes a large category of risk. But accessibility is judged on the whole purchase path, and the parts you control are where things go wrong.
Custom contact forms, newsletter sign-ups, and product-customisation fields added through apps frequently ship without proper labels, rely on placeholder text instead of a real label, or signal errors with colour alone. Every input needs a programmatically associated label, and every error needs a text message, not just a red outline.
Also audit anything that interrupts checkout: discount pop-ups, age gates, and upsell modals. If a customer can't dismiss them with the keyboard, you've put a wall between them and the purchase.
Apps, overlays, and what to avoid
Third-party apps are the most underestimated source of Shopify accessibility problems, because their markup renders inside your store but sits outside your theme code. Reviews widgets, live-chat bubbles, and 'accessibility overlay' apps all inject content you're still legally responsible for.
Be especially wary of overlay or 'one-click compliance' widgets. They do not make a store conform to WCAG or the EAA — what's assessed is the underlying site — and overlays can actively interfere with the screen readers real users already have installed. Fix the source: the theme, the images, the forms.
A practical Shopify accessibility checklist
- Scan every key template (home, collection, product, cart) — not just the homepage.
- Add descriptive alt text to all meaningful product and content images.
- Fix contrast on buttons, badges, and links to 4.5:1 (3:1 for large text and UI components).
- Tab through the full purchase journey; confirm visible focus and no keyboard traps.
- Label every form field and give errors a text explanation.
- Audit each installed app's front-end output for the same issues.
- Publish an accessibility statement and link it in your footer.
Work through our full accessibility checklist for a step-by-step pass, then publish a statement and link it in your store footer.