European Accessibility Act
EAA compliance for Shopify: WCAG 2.1 AA checklist & fixes
Shopify storefronts inherit accessibility from the theme, but most paid and free themes ship with predictable WCAG 2.1 AA gaps: low-contrast sale badges, drawer carts that trap focus, product image carousels without keyboard support, and form fields without programmatic labels. Under the European Accessibility Act, B2C Shopify stores selling to EU consumers must reach WCAG 2.1 AA by 28 June 2025 — Liquid edits and a few app installs are usually enough. Powers ~10% of all e-commerce sites worldwide; the EAA covers consumer-facing online shops by default.
- Category
- E-commerce platform
- Standard
- WCAG 2.1 Level AA via EN 301 549
- Deadline
- 28 June 2025 (EU consumer services)
- Risk for B2C
- High — public-facing, consumer-billed
What the EAA actually requires from a Shopify site
For a Shopify store the EAA obligation lands squarely on the Liquid theme, because the storefront, cart drawer, and account pages are all rendered from theme templates rather than by Shopify itself. Shopify Checkout is now Shopify's own hosted, accessibility-hardened surface, so your remediation scope is the theme, any Sections/Blocks you added in the Customizer, and third-party apps that inject markup. In practice EN 301 549 forces you to fix theme-level tokens (contrast, focus rings), Liquid-rendered form labels, and JavaScript widgets like the slide-in cart and gallery so keyboard and screen-reader users can complete a purchase end to end.
The typical Shopify merchant is a B2C SMB or DTC brand selling physical goods to EU consumers, which puts them clearly in scope with little chance of the microenterprise services exemption applying to a product-selling shop. These merchants rarely have turnover in the range that triggers France's percentage-of-turnover penalties, so the realistic exposure is a fixed per-breach fine (Germany up to €100,000, Spain up to €600,000 for serious cases) plus the operational hit of a market-surveillance authority ordering the store to stop selling until it conforms. For most Shopify owners the reputational and takedown risk outweighs the headline fine number.
Most Shopify remediation is done by a single theme developer or a Liquid-comfortable freelancer working directly in the theme code editor and the Customizer, not a full engineering team. Start from an accessibility-vetted theme (Dawn, Sense, Studio), fix contrast and labels through theme settings and small Liquid/CSS edits, then patch the cart drawer and gallery JavaScript for focus handling. A realistic timeline is one to three days of developer time, and you should avoid overlay apps entirely since they mask rather than fix the underlying HTML.
Top WCAG failures we see on Shopify sites
Across hundreds of Shopify scans, the same handful of issues show up over and over. None of them require ripping the theme apart — most are fixable in a few hours by someone comfortable in the platform's editor or template files.
Color contrast on sale badges, "Add to cart" buttons and theme accents
Themes default to brand colors that often fail the 4.5:1 ratio for body text or 3:1 for large text. Sale prices in red on white and gray placeholder text are the two most-flagged issues in our scans.
1.4.3 Contrast (Minimum) — Level AACart drawers and quick-view modals trap focus or break Esc
Shopify themes commonly use a slide-in cart drawer that does not move focus into the dialog or restore focus on close. Users on a screen reader or keyboard get stuck on the page background.
2.1.2 No Keyboard Trap, 2.4.3 Focus Order — Level AProduct image gallery is mouse-only
Many themes implement zoom, swatch swap, and gallery navigation with mouse handlers (mouseenter/click) but no keyboard equivalents (Enter/Arrow), failing keyboard users.
2.1.1 Keyboard — Level AForm fields without programmatic labels
Customer registration, address, and contact forms frequently use placeholder-only inputs or visually-hidden labels that screen readers do not pick up. Newsletter signups in the footer are the most common offender.
1.3.1 Info and Relationships, 4.1.2 Name, Role, Value — Level ADecorative product carousels auto-advance without controls
Hero sliders that auto-rotate faster than 5 seconds with no pause/stop control fail WCAG and create distraction for users with vestibular disorders.
2.2.2 Pause, Stop, Hide — Level A
Concrete code fixes for Shopify
Below are copy-paste fixes for the most common Shopify issues. They assume you have access to your theme code or the platform's custom-code injection panel. If you cannot edit code directly, share these snippets with whoever maintains the site — every one of them is a ten-minute change.
Liquid: ensure all icon-only buttons have an accessible name
<button type="button" class="cart-toggle" aria-label="Open cart with {{ cart.item_count }} items">
{% render 'icon-cart' %}
</button>Use aria-label with a meaningful, dynamic name. Avoid "icon-cart" alone — screen readers announce nothing useful.
CSS: enforce focus visibility theme-wide
:where(button, a, [role="button"], input, select, textarea):focus-visible {
outline: 2px solid var(--color-foreground);
outline-offset: 2px;
box-shadow: 0 0 0 4px rgb(8 145 178 / 0.25);
}Most Shopify themes remove default focus rings via outline:none. Replace with a visible, high-contrast focus indicator.
Cart drawer: trap and restore focus correctly
// Open
const lastFocused = document.activeElement;
drawer.removeAttribute('inert');
drawer.querySelector('[autofocus], button, a').focus();
// Close
drawer.setAttribute('inert', '');
lastFocused?.focus();Use the inert attribute to hide background content from assistive tech, and restore focus to the element that opened the drawer.
Tools and plugins worth installing first
Theme Inspector (Shopify) — confirms HTML is semantic before deeper audits
axe DevTools browser extension for ad-hoc page checks
Certvo public scan — crawls product, collection, and cart pages and groups issues by template
How to scan a Shopify site without missing anything
Automated scanners catch about 30–40% of WCAG issues; the rest need manual review. The good news is that the 30–40% includes the most expensive issues to remediate after the fact, so an automated scan is the cheapest way to get unstuck. Run one before you change a line of theme code.
Scan at minimum: home, /collections/all, a product page, /cart, and the checkout login page.
Re-scan after changing the theme via Customize — most regressions come from new sections.
Run a logged-in scan against the customer account area; it is excluded from public crawls.
Run a free public scan against any Shopify URL right now — no signup, results in 60 seconds.
Frequently asked questions
Does Shopify make my store automatically EAA compliant?
No. Shopify provides the platform; you are responsible for theme, app, and content accessibility. Shopify's own admin is mostly accessible, but the public storefront depends entirely on the theme you choose.
What is the cheapest path to WCAG 2.1 AA on Shopify?
Pick an accessibility-vetted theme (Dawn, Sense, Studio), audit it with a tool like Certvo, fix contrast and labels in the theme settings, and add an accessibility statement page. This typically takes a developer 1–3 days.
Do Shopify accessibility apps replace the need for a real audit?
No. Overlay-style apps add a widget but do not fix the underlying HTML. Many fail WCAG themselves and several have been named in US lawsuits. Fix the source.
Other e-commerce platform platforms
EAA compliance for WooCommerce
Powers ~28% of all online stores via WordPress; popular among EU SMBs subject to the EAA.
EAA compliance for Magento (Adobe Commerce)
Used by mid-market and enterprise B2C/B2B; covered by EAA.
EAA compliance for BigCommerce
Mid-market and enterprise headless commerce platform; many B2C EAA-affected stores.
EAA compliance for PrestaShop
Open-source e-commerce, common across French and Southern European SMBs.
All EAA platform guides
Shopify, WordPress, Next.js, Webflow and more
Complete WCAG 2.1 guide
POUR principles, conformance levels, legal requirements
How-to fix recipes
Copy-paste fixes for the most common WCAG failures
Find every accessibility issue on your site in 60 seconds.
Free public scan. No card. AI-generated fixes for every issue we find.