Platform Guides

Accessible Shopify stores convert better. Fix product pages, collections/filters, cart, and checkout with the patterns below to meet WCAG 2.2 AA, reduce abandonment, and avoid third-party app conflicts. Then add Adjustable to give visitors personal controls to boost engagement across your store.
Why this matters (conversion + SEO)
Clear product information and predictable UI increase time on site and add-to-cart rate.
Accessible filters and forms reduce drop-offs in category and checkout flows.
Stable layouts and semantic markup support Core Web Vitals and discoverability.
Theme audit: start here
One H1 per template; logical H2/H3s; landmarks (
header,nav,main,footer).AA contrast for text, prices, buttons, and focus outlines.
Visible focus styles; never remove outlines globally.
Menus, drawers, and modals: keyboard operable; Esc closes; focus returns to trigger.
If your theme ships hover-only menus or div-as-button patterns, fix those first—they impact every page.
Product pages: patterns that sell (and include everyone)
Media & alt text
Product images: meaningful, concise alt (“Women’s linen shirt in navy, front view”).
Decorative thumbnails:
alt="".Video: captions; GIFs/auto-play respect reduced motion.
Title, price, stock
Title as H1; price and stock as live text (not images).
Announce price/stock changes when variants change (polite live region).
Variant selectors (use radios, not unlabelled divs)
Dynamic price/stock announcement
Add to cart: use real buttons and feedback
Collections & filters: findability without frustration
Filters and sorting are form controls (checkboxes, radios, select) with labels.
When results update, post a polite live message: “24 items — Colour: Blue; Size: M”.
Selected states use more than colour (icons/text).
Offer Clear all as a labelled button.
Infinite scroll? Prefer Load more or announce new items.
Cart, mini-cart, and drawers
Use
<button>for actions, inputs for quantity; keep controls labelled.Mini-cart drawers are proper dialogs: focus moves inside, is trapped, and returns to trigger on close.
Announce updates: line item added/removed, totals changed, free-shipping threshold left.
Checkout forms: labels, errors, validation
Every field has a visible label; groups use
<fieldset><legend>.Validate on blur + submit; never per-keystroke scolding.
Error summary at top links to fields; first error receives focus.
Use
autocomplete(email,address-line1,postal-code,tel,cc-number).Allow paste for cards/OTP; avoid “memory tests”.
App conflicts (the silent killers)
Typical breakages
App-injected UI (popups, sliders, sticky bars) steals focus or hides it.
Variant widgets as unlabelled divs; keyboard traps in modals/drawers.
Auto-playing carousels without pause; colour-only states.
Mitigations
Test new apps on staging with keyboard + screen reader.
Wrap app elements with labels/roles; add focus management.
Expose Pause/Close actions and respect reduced motion.
If an app can’t be fixed, replace it.
Adjustable’s Page Options let users hide images/animations or highlight links if a third-party UI gets heavy—reducing friction while you remediate.
Performance & stability (Core Web Vitals)
Pre-size images; lazy-load below-the-fold media; use modern formats.
Reserve space for badges, reviews, and dynamic bars to avoid CLS.
Keep app/script count lean; remove unused features.
Quick testing flow (12–15 minutes)
Keyboard path: Home → Collection (filter) → Product (variant) → Add to cart → Mini-cart → Checkout → Submit empty → Fix errors.
Focus visibility: Always see focus; no traps in menus/drawers/modals.
Screen reader skim: Headings, product info (title, price, variant, stock), filter labels, error messages, live announcements.
Mobile spot check: Target sizes, reflow at 320 px, zoom allowed; sticky UI doesn’t obscure focused fields.
Copy-paste checklist (Markdown)
How Adjustable helps (after structural fixes)
Accessibility Profiles for quick presets (e.g., “Readable”, “Low Vision”).
Text Options + Contrast/Colour modes to improve comprehension on dense product pages.
Reading Ruler, Cursor Adjustment, Screen Mask to focus attention on long descriptions or forms.
Page Options to scale pages, hide images/animations, and highlight links—great when third-party widgets are visually busy.
Text-to-Speech for product details; Dictionary for unfamiliar terms; Language Translation for global shoppers.
Configurable toolbar/widget placement to suit your theme.
FAQs
Which Shopify themes are most accessible?
Pick well-maintained, semantic themes and audit keyboard focus, contrast, and variant selectors before launch.
How do I make variant selectors accessible?
Use radios or a select with clear labels; announce price/stock updates with a polite live region.
Do apps often break accessibility?
Yes—especially popups, carousels, sticky bars, and variant widgets. Test every app and patch or replace as needed.
Is an accessibility toolbar enough?
No. Toolbars like Adjustable add control and comfort; structural issues (labels, focus, semantics) still require fixes in your theme/liquid.
Next steps
Audit one collection and one product template with the checklist.
Fix variant selectors, announcements, and mini-cart focus handling.
Review your app stack on staging; remove or remediate blockers.
Install Adjustable to support diverse shoppers while you iterate.


