For owners of US Shopify stores

Accessibility repairs for your Shopify theme, at a fixed price

We check your public pages, repair the problems that we name, and check again to show that the repair works.

Request a private check

The check only reads your public pages. We send the result only to you.

This is not a legal review or an audit. We do not tell you whether your store meets a law or a standard.

How it works

  1. You request a private check

    Email us your store address. Tell us if you own the store or work for the owner.

    Price of the check: we tell you before you pay anything.

  2. We scan your public pages

    We load a sample of your pages in Chrome at desktop and phone widths. We run axe-core and our own fixed checks.

    Our scanner blocks every request that is not a read. It does not log in, fill in forms, add to cart or check out.

  3. You get a private brief

    The brief names each problem, the page and the part of the theme where it is, and the fixed price of the repair. We send it only to you. We do not publish it.

  4. We repair a copy of your theme

    If you say yes, you accept our collaborator request for theme access in your Shopify admin. We never ask for your password. We need no access to orders, customers or payments.

    We work in a copy of your live theme and send you a preview link. Your live theme stays as the backup. You can switch back to it in one click.

  5. We scan again to show the repair

    We run the same checks on the same pages. You get the before and after results, the changed files and the steps to undo the change.

  6. You get 14 days of corrections

    For 14 days after the release, we fix defects in the work that we delivered. The price includes this. Changes by other people, apps or theme updates are separate work.

Fixed prices

Each price covers one repair, the preview, the re-scan and the 14-day correction period. There is no hourly billing and no subscription.

  • Zoom on phones

    The viewport tag in your theme stops people from zooming in on a phone. We change the tag so that people can enlarge the text.

    Fixed price: quoted in your brief, before any work starts.

  • Names for icon links and buttons

    Icon-only controls, such as search, cart, account and menu, have no name. A screen reader says only "link" or "button". We add a clear name.

    Fixed price: quoted in your brief, before any work starts.

  • Labels for fields and search

    Fields such as quantity, search and newsletter have no label, or the search box does not report its suggestions. We add the labels and the state.

    Fixed price: quoted in your brief, before any work starts.

  • Text for images

    Images have no text alternative, or the offer text in a slide image is not available as text. You approve each description.

    Fixed price: quoted in your brief, before any work starts.

  • Content on narrow screens

    At 320 px wide, content is cut off or needs sideways scrolling. We change the theme CSS that causes it.

    Fixed price: quoted in your brief, before any work starts.

  • Menu and slider controls

    A control sits inside another control, or a control points to an element that does not exist. The example below shows this repair.

    Fixed price: quoted in your brief, before any work starts.

  • Text contrast

    Text colours in your theme settings are hard to read on their background. You approve each colour change.

    Fixed price: quoted in your brief, before any work starts.

If your brief names two or more repairs, you get one fixed price for the set before any work starts.

We start only after you authorize the work and pay the deposit that your quote states. You pay the rest when the re-scan shows the repair and you accept it.

One example, before and after

We tested the menu and slider repair on our own Shopify development store. The store uses Debut 17.1.0, a free Shopify theme, with Shopify test data. It is not a client store.

The problem

At phone width, the quote slider on the home page shows 3 dot controls. The slider script in the theme gave each list item the role "tab" and put a button inside it. So each dot was a control inside another control.

The change

We edited the slider script in assets/vendor.js. Now the button has the tab role and the selected state, and the list item is for layout only. At desktop width, the slides no longer point to dot IDs that do not exist.

Show what assistive technology gets, before and after
Before: what assistive technology gets
tablist
  tab "• Slide 1" [selected]
    button "• Slide 1"
  tab "• Slide 2"
    button "• Slide 2"
  tab "• Slide 3"
    button "• Slide 3"
After: what assistive technology gets
tablist
  tab "• Slide 1" [selected]
  tab "• Slide 2"
  tab "• Slide 3"

Both are the accessibility tree of the dots at 390 px wide, recorded with Playwright in Chrome.

Results on the same pages, before and after the change
CheckBeforeAfter
Controls inside other controls (axe-core nested-interactive, phone width)30
References to IDs that do not exist (axe-core aria-valid-attr-value, "needs review", desktop width)30
Tab key stops once on each dotYesYes
Enter and Space select the slideYesYes

The scan comparison found 0 new findings after the change.

Our first written step did not fit this theme. We corrected the recipe and ran the test again. Your theme can be different, so your brief names the repair and the checks for your store.

How accurate the checks are

Your scan uses fixed rules. No AI model judges your store.

Only 21 check types can put a finding at the top of your brief. During our development, AI models reviewed 539 such findings from live stores. They judged none of them to be false. This puts the rate of false findings below 0.71%, with 95% confidence, as that review judges them. People did not review these findings. Findings from other check types are marked "needs review".

Automated checks find some accessibility problems, not all. A store can pass every check and still have problems that only a person can find.

What we do not do

This is not a legal review or an audit.

  • We do not say that a store meets any law or standard.
  • We do not promise more sales, better search placement or AI ranking.
  • We do not test or change checkout, payments, orders or customer data.
  • We do not offer a security review.
  • We do not change app code that your theme cannot edit, or pages that Shopify controls.

Request a private check

Email hello@mendcart.com with your store address. Tell us if you own the store or work for the owner.

We use your email address only to answer your request. We do not add you to a mailing list.

Request a private check