Six Accessibility Failures We Keep Finding in WooCommerce Stores (And the Plugins That Cause Them)
WooCommerce sits underneath a large share of small-business e-commerce on the web. It is free, runs on top of WordPress, and is flexible enough that a hobbyist can launch a store in an afternoon. That same flexibility is also why WooCommerce stores show up in ADA demand letters and EAA complaints out of proportion to their share of the market. The owner picked a theme that looked nice, installed five plugins to add the features they needed, and the combined output failed a half dozen WCAG criteria nobody on the team has ever heard of.
We have audited a long string of WooCommerce stores in the last six months — small bakeries, indie clothing brands, a couple of supplement shops, a regional book chain, a handmade-jewelry seller, a coffee roaster. Every one of them had the same six problems. None of the owners knew. Every one of the owners is exposed to the same demand-letter campaigns that have been hitting Shopify and BigCommerce stores for the last two years. This post is the list, in order of how often we see it, with what each one costs and how a non-developer can fix it without rebuilding the store.
None of this is legal advice. If you have already received a demand letter, talk to an attorney with ADA Title III or EAA experience before responding.
1. Product images with alt text that says nothing
The number-one finding across every WooCommerce audit is product images whose alt text is the file name or the product name copy-pasted twenty times in a row. Lighthouse passes the page because the alt attribute is present. A screen reader user shopping the store hears “DSC_4271, DSC_4271, DSC_4271” or “Blue Cotton T-Shirt, Blue Cotton T-Shirt, Blue Cotton T-Shirt” depending on which is worse. They cannot tell the listings apart and they leave. This is the failure pattern most commonly cited in recent demand letters against e-commerce stores.
WooCommerce makes this worse than necessary because the default image upload flow does not require alt text and most themes use the product name as the fallback. The fallback is technically present and technically wrong, in the sense that a screen reader user gets the same string for every product variant or color swatch on the page.
What to do without rewriting the theme: open every product, click each image in the WordPress media library, and write alt text that describes what is visually different about that specific image. For a product page with five images of the same shirt from five angles, alt text might be “front view of blue cotton t-shirt”, “back view showing pocket detail”, “close-up of stitched neckline”, “model wearing shirt with jeans for scale”, “flat-lay of folded shirt”. For a category page showing many products, the alt text on each thumbnail should distinguish the product, not repeat the title that already appears as text next to it. We wrote a longer guide on alt text patterns that pass and fail if you want examples that go past the basics.
2. The “Add to Cart” button is a div, not a button
The second-most-common finding is themes and customizations that render the Add to Cart action as a styled div with an onClick handler instead of a real HTML button. Visually it looks exactly the same. With a keyboard, the user cannot tab to it. With a screen reader, the device says nothing — there is no role to announce. The store has effectively put the most important action behind a wall.
This typically shows up in heavily customized themes, in page builders like Elementor or Divi when the developer used a generic “container” element with a click action, and in custom shop layouts that override the WooCommerce loop template. WCAG criterion 2.1.1 Keyboard requires every interactive element to be operable with a keyboard, and 4.1.2 Name, Role, Value requires it to announce its role to assistive technology. A div with onClick fails both, as our React tutorial accessibility post explains for a related framework, but the underlying problem is identical in WordPress and PHP.
What to do without rewriting the theme: ask whoever built the site to change every Add to Cart, Buy Now, Apply Coupon, and Checkout element to use a real
Get our free accessibility toolkit
We're building a simple accessibility checker for non-developers.
Join the waitlist for early access and a free EAA compliance checklist.