The voice in my headphones says “button.” Just that. No name, no purpose, no hint of what happens if I press it. I’m on the payment page of a major American retailer — a company with a market cap larger than some national economies — holding a virtual credit card, ready to spend real money, and the final step of the transaction is an anonymous rectangle. Somewhere on this screen is the button that completes the order. My screen reader can see it exists. It cannot tell me what it does.
Over the past several weeks, The Human Layer’s testing desk worked through the online stores of the hundred largest retailers in the United States using only a screen reader and a keyboard — no mouse, no glancing at the screen to cheat. We expected failure. Anyone who follows digital accessibility expects failure; the WebAIM Million project, which scans the top million home pages each year, found detectable WCAG failures on 95.9% of them in its most recent report, an average of 56 errors per page. What we didn’t expect was the pattern. The failures were not evenly distributed. Most sites were awkward but passable through the homepage and the search results — places where you might get lost, annoyed, misrouted, but rarely stopped outright. Then you reach the checkout, and the experience collapses. The one screen a retailer has the strongest imaginable incentive to get right is the one that most often becomes a wall.
This is, on its face, perverse. Retailers spend fortunes smoothing the path to purchase. Entire teams exist to shave milliseconds and clicks off the checkout flow, because every abandoned cart is measurable lost revenue. And yet when Deque Systems ran automated scans across the checkout flows of the NRF’s top 100 retailers in 2022 — homepage to product listing to product detail to cart — it found more than ten thousand accessibility issues across 433 pages, with 70% of those pages containing errors classified as critical. A 2025 study by AccessibilityChecker.org found critical WCAG violations on the cart pages of 89% of leading US ecommerce sites; only 11% were compliant. The closer you get to the register, the worse it gets.
The explanation is not that nobody cares about the checkout. It’s that everybody cares about the checkout — and cares about it in a very specific way. The checkout is the most engineered page in retail. It is A/B tested within an inch of its life, rebuilt around conversion metrics, and assembled from moving parts the retailer often doesn’t fully control. The payment form is a third-party widget dropped in for fraud protection or PCI compliance. The address field is a lookup tool from another vendor. The shipping options are a custom-built dropdown that replaced the boring native HTML select element because the native one couldn’t be styled to match the brand. Each of these decisions is rational in isolation. Each also tends to arrive without the invisible scaffolding — the labels, roles, and focus behavior — that a screen reader needs to describe the page out loud.
Native HTML form controls come with accessibility largely built in; a real <select> element announces itself, its options, and its state for free. The moment a team replaces it with a sleek custom component made of nested divs, all of that has to be re-added by hand, and frequently isn’t. So the screen reader user hears “button” instead of “Place order,” or hears a payment option announced as “graphic” because the choice between Visa and PayPal is conveyed by a logo image with no text alternative. Or the form rejects their card and says nothing at all, because the error message appears visually in red text but the page never tells assistive technology that anything changed. The Contentsquare Foundation’s 2025 audit of major ecommerce sites across Europe and global marketplaces found that 84% of checkout pages failed the WCAG criterion covering exactly this — names, roles, and values of controls — and that something as mundane as visible text labels and text-based error messages would resolve the majority of form-related failures. The fix, in other words, is often not exotic engineering. It’s the stuff that got optimized away.
There’s a useful way to think about what’s happening here. Conversion optimization is a process of removing friction, and it defines friction as whatever slows down the median sighted user. Labels that exist only for machines, focus order, keyboard operability — none of these show up in an A/B test, because the test population is whoever the analytics can see, and the analytics can’t see the people who never made it to the page. The checkout isn’t broken despite being the most optimized part of the site. It’s broken because it’s the most optimized part of the site, tuned relentlessly for a user who was assumed, without anyone ever quite saying so, to be looking at a screen.
One honest complication: our finding that checkout is the worst stage is not uncontested. The Contentsquare audit, the largest recent dataset we found, actually scored product detail pages as the weakest stage of the journey — suggesting many screen reader users are being turned away before they ever fill a cart. That doesn’t contradict the pattern so much as darken it. The failures cluster wherever the page is most custom, most dynamic, most assembled from widgets and one-off components. Checkout is simply where that condition reaches its purest form, and where the stakes of failure are most absurd: a person with money in hand, asking to give it to you, being told “button.”
The retail industry talks about the checkout as a funnel, which implies gravity — customers slide down it naturally, and the job is just to widen the tube. But a funnel only works for the people it was poured for. What our testing kept revealing was something closer to a locked door at the end of an open corridor. Stores will let you browse, compare, and fill a basket. Then, at the precise moment the relationship is supposed to become a transaction, they hand you an unlabeled form and a voice saying nothing useful, and leave you to guess which anonymous rectangle takes your money. The internet spent twenty years learning to sell to everyone. It built the register for someone else.