Accessible checkout checklist: 25 checks for e-commerce teams
Updated 25 September 2026
Use this checklist on every release that touches your theme, cart or checkout. Items marked (auto) can be verified by automated monitoring; others need a human.
Product page
- Product images have meaningful alternative text (auto for presence, human for quality) — WCAG 1.1.1
- Variant selectors (size, colour) have visible labels and are keyboard operable (auto) — 1.3.1, 2.1.1, 4.1.2
- The add-to-cart control is a native
<button>reachable with Tab and activated with Enter/Space (auto) — 2.1.1 - Price, sale price and stock messages meet 4.5:1 contrast (auto) — 1.4.3
- Quantity steppers have accessible names ("Increase quantity") (auto) — 4.1.2
- Touch targets are at least 24×24 CSS pixels (auto) — 2.5.8
After "Add to cart"
- If a drawer/popup opens: it has
role="dialog",aria-modal="true"and a name (auto) — 4.1.2 - Focus moves into the drawer and returns to the trigger when it closes (auto) — 2.4.3
- Escape closes the drawer (auto)
- If no drawer opens: a polite live region announces "Added to cart" (auto) — 4.1.3
Cart
- Each line item has a remove button with an accessible name including the product (auto for presence)
- Quantity inputs are labelled (auto) — 1.3.1
- Order summary is readable at 200% zoom without horizontal scrolling (human) — 1.4.10
- The checkout button is a native button or link (auto) — 2.1.1
Checkout information step
- Every field has a programmatic label (auto) — 1.3.1, 3.3.2
- Name, email, phone and address fields have correct
autocompletetokens (auto) — 1.3.5 - Required fields are marked with
required/aria-required(auto) — 3.3.2 - Submitting with errors moves focus to the first error or an error summary (auto) — 3.3.1
- Each error message is linked to its field via
aria-describedbyand the field hasaria-invalid="true"(auto) — 3.3.1 - Error messages explain how to fix the problem (human) — 3.3.3
- No time limit, or it can be extended (human) — 2.2.1
Payment and confirmation
- Payment iframes have a
title(auto) — 4.1.2 - Payment method choices are radio buttons in a group with a legend (auto/human) — 1.3.1
- 3-D Secure / bank challenge windows are usable with a keyboard (human)
- The confirmation page states the order number as text and is announced (human)
Make it stick
Run the checklist once manually, then let automated monitoring re-run the automatable half every day so you are alerted when a release breaks it.