November 3, 2026 • 14 min. leestijd

Shopify Accessibility: Fix Your Product Page for WCAG

A seven-row product-page audit maps Shopify buying controls to WCAG criteria, practical tests, fixes, and likely owners.

Shopify accessibility means making your store's content and buying controls usable by people with disabilities. On a product page, test images, variants, modals, purchase controls, live updates, quantity controls, and galleries against Web Content Accessibility Guidelines (WCAG) 2.2.

I ran two one-time-purchase Shopify stores, one selling niche products and the other print-on-demand apparel. For a small store, I'd audit the product page first. It puts 7 high-priority controls in one place, and one blocked action can stop a purchase.

For this audit, I mapped seven controls to W3C and Shopify accessibility guidance.

I also checked the US DOJ's Title III business guidance, then paired each control with a manual test.

Key takeaways

  1. Run the 7 rows in the Product Page Accessibility Audit before buying an overlay.
  2. Map all 7 product-page controls to their Web Content Accessibility Guidelines criteria.
  3. Test modals, galleries, and swatches with keyboard input and a screen reader.
  4. Add descriptive alt text through each product's media settings.
  5. Confirm your theme before planning theme-specific fixes.

Once you know which theme you're running, the Theme Detector identifies it before you plan theme-specific changes.

What does Shopify accessibility mean for your product page?

Shopify accessibility means your storefront lets disabled shoppers understand the product, choose a variant and quantity, and buy it. W3C recommends WCAG 2.2 as the testing target. Use its four principles to organize the audit:

  1. Perceivable: Shoppers can detect the content and controls.
  2. Operable: Shoppers can use every required interaction.
  3. Understandable: Labels, instructions, and results make sense.
  4. Robust: Assistive technology receives the right names, roles, and states.

Merchants control the theme, content, CSS, and app blocks customers receive. Shopify supplies guidance and theme controls. Its theme accessibility guidance can't guarantee the delivered storefront is fully accessible.

Use the criterion numbers to trace the standard, then test the shopper's task. A control passes only when a person can find and understand it. They must also be able to operate it and receive the result through their chosen tool.

The product page is one part of your store's wider design. Apply the same keyboard, screen-reader, and touch tests to the homepage, collections, cart, checkout, and account pages.

Can you get sued if your Shopify store isn't accessible?

Yes, a product page can create legal exposure when it blocks disabled shoppers from goods or services covered by Title III. Federal law requires covered public accommodations to provide full and equal enjoyment of their goods and services. DOJ's web guidance says that duty reaches goods and services offered online.

DOJ guidance points covered private businesses to WCAG while allowing them to choose how they provide access. It doesn't prescribe a detailed Title III web standard.

I'd use WCAG as the technical testing target for these controls. Passing all seven checks documents the tested interactions, but legal compliance and complaint risk require a broader assessment.

Our guide to store-wide accessibility risk covers the broader exposure and fix order. This article gives only the legal context needed to explain why these seven high-priority controls need testing.

Product page accessibility checklist, mapped to WCAG

The Product Page Accessibility Audit gives each high-priority control a standard, test, fix, owner, and likely cost. Use this order:

  1. Product images and alt text: Describe information a shopper can't get from surrounding copy.
  2. Variant swatches and selectors: Expose each option's name, state, and visible boundary.
  3. Size-chart modal: Move focus into the dialog and return it after closing.
  4. Buy button focus state: Keep a clear keyboard focus indicator on the button.
  5. Price and availability updates: Keep focus on the variant while announcing each change.
  6. Quantity selector: Label every control and give each target enough space.
  7. Image gallery and zoom: Provide named keyboard controls for every image and zoom action.

The summary below is the audit sheet. The later sections explain each fix and test:

Product-page elementWCAG criterionCommon Shopify failureFixFix owner and likely costVerification
Product images1.1.1Missing or filename-style alt textAdd a brief description to each informative product imageFree admin editRead the gallery with a screen reader
Variant swatches1.4.1, 1.4.11, and 4.1.2Color alone shows the choice, or the selected state isn't announcedAdd text names, a selected state a screen reader announces, and a visible boundaryTheme developer or app vendor, with paid work likelySelect every option by keyboard and hear its state
Size-chart modal2.1.2, 2.4.3, and 4.1.2Focus stays behind the modal or can't return to its triggerUse a named dialog, keep Tab inside until it closes, support Escape, and return focusTheme developer or app vendor, with paid work likelyOpen, traverse, close, and resume by keyboard
Buy button focus state2.4.7Custom CSS removes the focus outlineRestore a visible focus ring and measure its contrastFree CSS fixCheck the ring on every button state and background
Price and availability updates4.1.3Visual text changes after a variant choice but isn't announcedPut the changing message in a polite status regionTheme developer or app vendor, with paid work likelyChange variants and hear the update without focus moving
Quantity selector3.3.2 and 2.5.8Plus and minus controls have no clear name or usable targetAdd labels and meet the minimum target-size or spacing ruleTheme setting or developer, with a free setting or paid codeHear its name and current or changed value, then test keyboard and touch
Image gallery and zoom2.1.1, 2.5.7, and 1.4.11Gallery depends on swipe, drag, hover, or unlabeled arrowsAdd named buttons, keyboard operation, and measurable control contrastTheme developer or app vendor, with paid work likelyReach every image and zoom action by keyboard

‍

1. Product images and alt text

Give every informative product image alt text that communicates the detail a shopper would otherwise miss. Replace a filename, keyword string, or repeated title with the useful detail. Describe the back closure, fabric texture, dimensions, or included accessory when it affects the choice.

Shopify documents a free admin path inside each product's media editor. Open the product, select its media item, and choose Add alt text. Write a brief description focused on the image detail that adds to nearby copy. Shopify's product-media instructions recommend the same approach.

Decorative graphics should have empty alt text. If useful words are baked into an image, include them in the alternative.

After saving, move through the gallery with a screen reader and check that each description separates one image from the others. Treat performance as a separate task covered in our product image optimization guide.

2. Variant swatches and selectors

A variant selector must expose each option's name, current state, and visible boundary without relying on color alone. A row of colored circles can block the buying task. A screen reader may announce only "button," or a low-vision shopper may not see which circle is selected.

Native radio inputs with text labels work when the theme supports them. Custom buttons still need a name such as "Blue," an announced selected state, and a visible cue beyond color. Existing theme settings may make the fix free, while custom markup often needs a code or vendor update.

Before switching apps, test Tab, the arrow keys, Enter, and Space on the demo, then listen for each option's name and state. Change every option from the keyboard before testing the same group by touch.

At a 390-pixel viewport, confirm the swatches remain selectable, don't overlap, and leave room around nearby controls. The same test supports the touch-spacing priorities in our mobile UX guide.

3. Size-chart modal

A size-chart modal must take focus, contain it, close with Escape, and return focus to its trigger. A visual-only popup can leave keyboard and screen-reader users moving through the hidden page behind it.

The native HTML dialog element can work when it fits the theme and browser support. Another option is the W3C modal dialog pattern. Either version needs a visible title, a working close button, and modal focus behavior. The app vendor or theme developer may own the fix.

Failures often come from a size-chart app or custom Liquid snippet. A plain inline size table is safer when the popup can't return focus. Without a mouse, open the chart, confirm its title is announced, and move through every control in both directions. Close it with Escape, then confirm the next Tab press continues from the trigger.

4. Buy button focus state

Keep a visible keyboard focus indicator on the add-to-cart or buy button in every state. Custom CSS often removes the browser outline for visual polish, which makes the main purchase action disappear for someone navigating with Tab.

Shopify's theme guidance calls for visible keyboard focus styles. Restore the default outline or add a clear custom focus ring around the button itself. Use a contrast checker to record the ring against the adjacent colors on light and dark button states.

This is usually a free CSS fix, though a quick-buy or subscription-app vendor may control the styles.

Test the default, disabled, loading, and sold-out button states. Start above the product form and press Tab until the purchase button receives focus. Change a variant and repeat. The theme may render a new element and lose the ring that worked before.

5. Price and availability updates

Keep keyboard focus on the selected variant while announcing a changed price or stock message. A visual update alone leaves a screen reader on the old price or stock state.

Place the changing message in a status region that exists before the update. W3C's status-message technique explains how role="status" creates a polite live announcement. Keep one short message with the color, size, availability, and price. A theme and app can cause duplicate speech when both announce the change.

The theme's variant script or product-form app normally owns this change. Run a screen reader and change variants. Each update should be announced once, and the next keyboard action should remain on the selector.

6. Quantity selector

A quantity selector needs a clear name, keyboard operation, and touch targets that meet the minimum size or spacing rule. Familiar plus and minus icons still need to expose their action and current value to assistive technology.

Real increase and decrease buttons need accessible names, and the visible Quantity label must connect to the input. Under WCAG 2.2, pointer targets should generally be at least 24 by 24 CSS pixels.

A theme setting or CSS edit may be enough. Quantity-break, bundle, and cart apps need the same treatment.

If you rely on a spacing exception, measure the button box and gap to the next target with browser developer tools. Record the exception, then operate the minus button, input, and plus button by keyboard and touch at a 390-pixel viewport.

Keep the value at or above the store's allowed minimum. A screen reader should announce the current value, each changed value, and any error in words. Verify all three before accepting the control.

7. Image gallery and zoom

Every product image and zoom action must be reachable and operable without swipe, drag, hover, or a mouse. Galleries often expose thumbnails visually while leaving arrow controls unnamed or making drag gestures the only way to move between images.

Native buttons work for previous, next, thumbnail, and zoom actions when each has a specific name and visible focus. Use a contrast checker to test controls over light and dark photos. Expose the active slide or thumbnail and keep primary navigation visible at all times.

I'd reject a gallery that passes a scan but can't be completed with a keyboard. From the main image, reach and activate every control with Tab. Open and close zoom, then confirm focus returns to its trigger.

3D viewers and video players need their own checks. Test Tab, Enter or Space, the vendor's documented arrow keys, and fullscreen controls. Escalate any unnamed control, keyboard trap, or drag-only action to the vendor or an accessibility specialist.

Do accessibility overlay widgets fix any of this?

Manual keyboard and screen-reader tests determine whether all seven controls work. Overlays and scans supply only partial evidence. A widget may add font-size or contrast settings, while the product form still needs direct tests for unnamed swatches, broken modal focus, and silent price updates.

Settings a widget may add

  • Font-size controls
  • Some contrast preferences
  • A visible accessibility menu

Store controls you still need to fix

  • Named variant controls
  • Product-image alt text
  • Keyboard-safe modals
  • Working dialog and status roles

‍

DOJ treats automated tools as supplements to manual checks. Use this decision order:

  • Verify: Run all seven keyboard, touch, and screen-reader tests.
  • Remove: I'd remove any widget that interferes with assistive tools.
  • Escalate: Get specialist help for focus loss, traps, silence, or duplicate speech.

A short merchant-run check covers limited devices, browsers, tools, and disability-related needs, so get specialist help for unresolved custom behavior and legal advice for a complaint.

An added widget can also affect Shopify page speed. Run the same Lighthouse mobile test before and after installation. Compare the speed result and script requests before keeping the widget.

FAQ

Can I use this checklist before paying for an audit?

Yes, use the checklist to fix obvious product-page barriers before paying for an audit. Pay for a professional review when custom code, third-party apps, a complaint, or unresolved screen-reader behavior remains.

What if this checklist misses a problem?

Rerun the seven tests after every theme or app change, and keep a monitored footer contact so shoppers can report barriers these tests miss. For a failure, record the URL, input, expected result, and exact step, then send it to the vendor or an accessibility specialist.

Share article

Page Contents

Try Dropship

Discover winning product to sell today

Claim offer

Shopify Offer

Start and sell with Shopify $1/month for 3 months.

Claim offer
  • Verkooptracker
  • Portefeuille
  • Winkel & bibliotheek
  • Tracker voor adverteerders
  • Advertentiebibliotheek
  • Productbibliotheek
  • Concurrenten
  • Bibliotheek voor adverteerders
  • Magisch zoeken met AI
  • Bibliotheek van de maker

Lanceer vandaag nog je volgende winnende product

Vind je volgende winnende product met slimme filters in miljoenen producten, winkels en advertenties, afgestemd op jouw niche.