Shopify accessibility remediation Shopify accessibility, fixed in your theme

We fix the issues in your Online Store 2.0 theme on an unpublished duplicate, through a collaborator account with only theme permissions. Then we hand you a verified before/after report for every issue. Your live store isn’t touched until you’ve seen the results.

Not ready for fixes? An Accessibility Review on its own is $450 to $1,500, and the full fee is credited toward Review + Fix if you book within 30 days.

theme / Online Store 2.0Demo store, fictional
  • layout/
    • theme.liquid KC-001KC-004KC-019
  • sections/
    • header.liquid KC-010KC-019
    • slideshow.liquid KC-006KC-012
    • main-product.liquid KC-016
    • footer.liquid KC-019KC-020
  • snippets/
    • product-variant-picker.liquid KC-009KC-018
    • cart-drawer.liquid KC-015KC-022
    • card-product.liquid KC-008
    • facets.liquid KC-017
    • header-search.liquid KC-013
  • assets/
    • base.css KC-005KC-007
Where issues from our demo store’s mock review live in a typical Online Store 2.0 theme. Every issue we report names the file that causes it.

What we fix most on Shopify

Cart drawers, variant swatches, mega-menus, pop-ups and review widgets are behind many common failures in Shopify themes. Here’s where each one lives, and how it fails.
Common Shopify theme components, how they fail, the WCAG criteria and where the code lives
ComponentHow it usually failsWCAG 2.2 SCWhere it livesFix guide
Cart drawerOpens without moving focus; Tab escapes behind it; nothing announces the add2.1.1, 2.4.3, 4.1.2, 4.1.3snippets/cart-drawer.liquidCart drawer focus
Color and size swatches<div>s with no role, name, state or tab stop2.1.1, 4.1.2, 1.4.1snippets/product-variant-picker.liquidAccessible swatches
Header and mega-menuOpens on hover only; no button, no expanded state2.1.1, 1.4.13sections/header.liquidCommon findings
Pop-ups and newsletterFocus stays behind the overlay; close “×” is a <span>2.1.1, 2.4.3, 4.1.2App embed or theme sectionSame dialog pattern
Product cardsQuick-add buttons with no name; focus invisible4.1.2, 2.4.7snippets/card-product.liquidCommon findings
Filters and sortCustom checkboxes; result count not announced4.1.2, 4.1.3snippets/facets.liquidCommon findings
Review widgetsStar ratings read as images; low-contrast app styles1.1.1, 1.4.3Third-party app blockCommon findings
Color tokensMuted text and sale badges under 4.5:11.4.3assets/base.css, theme settingsChecklist

A fix is a change to code, not a script on top

This is the actual change for issue KC-009 on our demo store: three clickable <div>s became a native radio group. Keyboard, screen readers and the visual checked state all come from the markup, so nothing has to run on top of the page.

See all 30 fixes in the case study

product.html → snippets/product-variant-picker.liquidDemo store, fictional
 <div class="swatches">- <div class="swatch selected" data-color="Forest" style="background:#2f4a3a"></div>- <div class="swatch" data-color="Slate" style="background:#4a5563"></div>- <div class="swatch" data-color="Ember" style="background:#b4532a"></div>+ <input type="radio" class="swatch-input visually-hidden" name="color" id="color-forest" value="Forest" checked>+ <label for="color-forest" class="swatch" style="background:#2f4a3a"><span class="visually-hidden">Forest</span></label>+ <input type="radio" class="swatch-input visually-hidden" name="color" id="color-slate" value="Slate">+ <label for="color-slate" class="swatch" style="background:#4a5563"><span class="visually-hidden">Slate</span></label>
Verified: Tab reaches the group and Arrow Right selects Slate. The virtual screen reader reads “radio, Forest, checked, position 1, set size 3”.

How access works

Your live theme isn’t edited, and we never ask for a password.
  1. Who: You

    Approve a collaborator request

    Only the theme permissions the job needs.

  2. Who: We

    Duplicate your live theme

    An unpublished copy, or a branch if you use Shopify’s GitHub integration.

  3. Who: We

    Fix and verify on the copy

    Before/after scans, then keyboard, VoiceOver, NVDA and zoom.

  4. Who: You

    Preview it and read the report

    You pay the balance only after you’ve seen the fixes.

  5. Who: You

    Publish

    You publish, or we do on your written go-ahead.

Checkout and apps

Not everything on a Shopify store is theme code. Every issue we report says which side of the line it’s on.
  • We fix it

    Your theme

    Layouts, sections, snippets, assets and theme settings: menus, product pages, cart drawers, pop-ups you control, forms and color tokens.

  • Flagged with options

    Third-party apps

    Issues inside an app’s own code are flagged with options:

    • change a setting
    • swap the app
    • file a ticket with the developer, with the details they need
  • Shopify’s code

    Checkout

    Reported to Shopify on non-Plus plans. On Shopify Plus, custom checkout extensions can be in scope.

Checkout is Shopify-hosted on every plan. On non-Plus stores we report checkout issues to Shopify rather than fix them. On Shopify Plus, custom checkout extensions can be in scope.

Review + Fix packages

Fixed prices. If you already have an audit from someone else, we start from it, at the same price.
  • Starter

    Price: $1,750

    Quick Review (3 templates) plus up to 5 fixes

    • Quick Review
    • Up to 5 fixes on staging
    • Verified before/after report
    • 60-day fix window

    Fixes delivered 5 business days after you approve the fix plan

    Book Starter, Review + Fix
  • Essentials

    Our recommendation for a typical small store

    Price: $4,250

    Essentials Review (6 templates) plus up to 15 fixes

    • Essentials Review
    • Up to 15 fixes on staging
    • Verified before/after report with keyboard and screen reader recordings of key tasks
    • 60-day fix window

    Fixes delivered 10 business days after you approve the fix plan

    Book Essentials, Review + Fix
  • Standard

    Price: $7,750

    Standard Review (12 templates) plus up to 30 fixes

    • Standard Review
    • Up to 30 fixes on staging
    • Verified before/after report with recordings
    • 60-day fix window

    Fixes delivered 15 business days after you approve the fix plan

    Book Standard, Review + Fix

Agencies: white-label at 20% below these prices (details). Auditors: you audit, we fix, your team retests, pay on pass (details).

How you can hold us to it

  • A verified report

    For every issue ID: the file we changed, automated before/after results at desktop and mobile widths, and the manual keyboard and screen reader result.

  • Pay the balance after you’ve seen it

    The last payment is due only after you’ve checked the fixes on staging.

  • A 60-day fix window

    If anything we fixed stops working within 60 days, we fix it again at no charge.

  • A refund if a fix can’t pass

    If an agreed fix doesn’t pass its agreed check and we can’t fix it within 10 business days, we refund that fix’s share of the price.

Questions store owners ask

Will you edit my live theme?

No. We work on an unpublished duplicate (or a branch in your repository). You preview the fixes and publish when you’re ready, or we publish on your written go-ahead.

Do you install an app or an accessibility widget?

No. We change the theme code that causes the problems. We don’t add overlays or toolbars.

What do you need from us?

Your store address, a collaborator request approval with theme permissions, and a contact who can answer questions about apps and content. Never a password.

Can you fix checkout?

Checkout is Shopify-hosted on every plan. On non-Plus stores we report checkout issues to Shopify rather than fix them. On Shopify Plus, custom checkout extensions can be in scope.

Do you promise legal compliance?

We fix the agreed issues to WCAG 2.2 AA and prove it with a before/after report. We don’t promise compliance with the ADA or any law, or any outcome of a demand letter or lawsuit, and this isn’t legal advice.

Book Review + Fix

Fixed price, fixes on a duplicate theme, verified report, 60-day fix window.