Free Resource

Shopify WCAG 2.1 AA
Compliance Checklist

All 50 success criteria for e-commerce accessibility with Shopify specific implementation guidance for every item.

50 Success Criteria
4 Principles
WCAG 2.1 Level AA
Shopify-Specific Guidance
📋

Use this checklist to audit your Shopify store's accessibility compliance. Click any criterion to expand Shopify-specific implementation guidance. Check items off as you complete them and your progress is tracked automatically.

1
Principle 1

Perceivable

Information and UI components must be presentable to users in ways they can perceive.

Level A - Must Have
1.1.1
Non-text Content
  • All product images have descriptive alt text
  • Alt text describes what the image shows ("Navy blue t-shirt, front view" not just "t-shirt")
  • Decorative images use alt="" (empty alt attribute)
  • Icons have text labels or ARIA labels
  • Logo has alt text with company name
Where to check in Shopify
  • Products → Each product → Media → Click image → "Add alt text"
  • Theme code: Search for <img tags without alt attributes
1.2.1
Audio-only and Video-only (Prerecorded)
  • Audio-only content has text transcript
  • Video-only content has text description or audio track
Where to check in Shopify
  • Any audio files uploaded for product demos
  • Video content in product descriptions
1.2.2
Captions (Prerecorded)
  • Product videos have captions
  • Tutorial videos have captions
  • Promotional videos have captions
Where to check in Shopify
  • Upload videos to YouTube with captions, then embed
  • Or provide transcript below video
1.2.3
Audio Description or Media Alternative
  • Videos have audio description or text transcript
  • Important visual information is described in audio or text
Where to check in Shopify
  • Provide transcript for product videos
  • Describe what's shown visually
1.3.1
Info and Relationships
  • Proper heading hierarchy (H1 → H2 → H3, no skipping)
  • One H1 per page (usually product title or page title)
  • Form labels associated with inputs using for and id
  • Lists use <ul>, <ol>, or <dl> tags (not just line breaks)
  • Tables use proper <th> headers for data tables
Where to check in Shopify
  • Use WAVE browser extension to check heading structure
  • Right-click form fields → Inspect → verify label association
  • Theme code: Check heading tags in Liquid templates
1.3.2
Meaningful Sequence
  • Content reading order makes sense when read linearly
  • Tab order follows logical flow
  • CSS doesn't visually reorder content in confusing ways
Where to check in Shopify
  • Press Tab repeatedly and verify focus moves logically
  • Use screen reader to hear content order
1.3.3
Sensory Characteristics
  • Instructions don't rely only on shape ("click the round button")
  • Instructions don't rely only on location ("click the button on the right")
  • Instructions don't rely only on sound ("listen for the beep")
Where to check in Shopify
  • Review all instructional text in checkout
  • Review product assembly/usage instructions
1.4.1
Use of Color
  • Color isn't the only way to convey information
  • "In Stock" / "Out of Stock" use text, not just green/red
  • Required form fields have asterisk or "required" text, not just red border
  • Error messages use text, not just red highlighting
Where to check in Shopify
  • Check product availability indicators
  • Check form validation errors
  • Check sale/discount badges
1.4.2
Audio Control
  • Auto-playing audio can be paused or stopped
  • Auto-playing audio is under 3 seconds OR has controls
Where to check in Shopify
  • Background music on homepage
  • Auto-play product videos
Level AA - Required for ADA Compliance
1.4.3
Contrast (Minimum)
  • Normal text has 4.5:1 contrast ratio minimum
  • Large text (18pt+ or 14pt+ bold) has 3:1 contrast ratio minimum
  • Tested with WebAIM Contrast Checker
Where to check in Shopify
  • Test body text color vs background
  • Test button text vs button background
  • Test navigation text vs background
  • Common failures: light gray (#999) on white - only 2.85:1, fails
1.4.4
Resize Text
  • Text can be resized to 200% without loss of content or functionality
  • No horizontal scrolling at 200% zoom
  • Layout doesn't break when zoomed
Where to check in Shopify
  • Zoom browser to 200% (Cmd/Ctrl + plus multiple times)
  • Verify all content still readable and accessible
  • Check on mobile too
1.4.5
Images of Text
  • Text isn't presented as images (unless necessary for logos)
  • Actual text used instead of text in images
  • If text in images is necessary, alt text matches exactly
Where to check in Shopify
  • Promotional banners (use HTML text overlay instead)
  • Sale badges (use CSS text instead of image badges)
1.4.10
Reflow
  • Content reflows at 320px width without horizontal scrolling
  • Mobile-responsive design works properly
  • No pinch-zoom required to read content on mobile
Where to check in Shopify
  • Resize browser to 320px wide
  • Test on actual mobile device
  • Verify no horizontal scrolling needed
1.4.11
Non-text Contrast
  • UI components have 3:1 contrast ratio
  • Icons and buttons have sufficient contrast
  • Form field borders have 3:1 contrast
Where to check in Shopify
  • Test button borders
  • Test form input borders
  • Test icon colors
1.4.12
Text Spacing
  • Text remains readable when spacing is adjusted
  • Line height 1.5x font size
  • Paragraph spacing 2x font size
  • No loss of content when spacing increases
Where to check in Shopify
  • Use browser extension to test text spacing
  • Verify content doesn't get cut off
1.4.13
Content on Hover or Focus
  • Tooltips can be dismissed without moving pointer/focus
  • Tooltips remain visible when pointer hovers over them
  • Tooltips persist until user dismisses or removes hover/focus
Where to check in Shopify
  • Product quick-view tooltips
  • Size guide pop-ups
  • Hover effects on navigation
2
Principle 2

Operable

User interface components and navigation must be operable.

Level A - Must Have
2.1.1
Keyboard
  • All functionality available via keyboard
  • Can add products to cart with keyboard
  • Can complete checkout with keyboard only
  • Can navigate entire site with Tab, Enter, Space, Arrow keys
Where to check in Shopify
  • Unplug mouse, navigate entire site with keyboard
  • Complete a test purchase using only keyboard
  • Common failures: cart drawer can't be closed, dropdowns don't work
2.1.2
No Keyboard Trap
  • Keyboard focus never gets trapped
  • Can escape from all modals/pop-ups with Escape key
  • Can tab out of all widgets and components
  • Cart drawer doesn't trap focus
Where to check in Shopify
  • Tab through cart drawer, verify can escape
  • Tab through modals, verify Escape key works
  • Tab through navigation dropdowns
2.1.4
Character Key Shortcuts
  • Single character shortcuts can be turned off or remapped
  • Single key shortcuts only work when component has focus
Where to check in Shopify
  • Review any keyboard shortcuts implemented
  • Typically not an issue for standard Shopify stores
2.2.1
Timing Adjustable
  • User can turn off, adjust, or extend time limits
  • Session timeouts give 20-second warning
  • User can extend timeout before it expires
Where to check in Shopify
  • Checkout session timeout
  • Cart expiration warnings
2.2.2
Pause, Stop, Hide
  • Auto-updating content can be paused, stopped, or hidden
  • Carousels have pause button
  • Auto-scrolling content can be stopped
Where to check in Shopify
  • Homepage carousel/slideshow
  • Auto-playing product video galleries
  • Rotating testimonials
2.3.1
Three Flashes or Below Threshold
  • Content doesn't flash more than 3 times per second
  • No flashing animations that could trigger seizures
Where to check in Shopify
  • Animated GIFs in product images
  • Loading animations
  • Promotional banners with flashing effects
2.4.1
Bypass Blocks
  • "Skip to main content" link at top of page
  • Skip link appears on keyboard focus
  • Skip link jumps to main content area
Where to check in Shopify
  • Press Tab on homepage (before clicking anything)
  • Should see "Skip to main content" link appear
  • Pressing Enter should jump past navigation
HTML - Add to theme.liquid before header
<a href="#main-content" class="skip-link">Skip to main content</a>
2.4.2
Page Titled
  • Every page has unique, descriptive title
  • Page title describes page content
  • Format: "Page Name – Store Name"
Where to check in Shopify
  • Check browser tab title on each page type
  • Product pages should show product name
  • Collection pages should show collection name
2.4.3
Focus Order
  • Tab order follows logical reading order
  • Focus doesn't jump randomly around page
  • Tab order makes sense for completing tasks
Where to check in Shopify
  • Press Tab repeatedly through entire page
  • Verify focus moves in logical order
  • Check cart and checkout especially
2.4.4
Link Purpose (In Context)
  • Link text describes where link goes
  • Avoid generic "Click here" or "Read more" without context
  • Use "Learn more about [Product Name]" instead of just "Learn more"
Where to check in Shopify
  • Review all "Read more", "Click here", "Learn more" links
  • Add context to generic link text
Level AA - Required for ADA Compliance
2.4.5
Multiple Ways
  • At least two ways to find pages (navigation menu + search)
  • Sitemap available
  • Related products provide alternative navigation
Where to check in Shopify
  • Main navigation menu exists
  • Search function works
  • Sitemap linked in footer (or exists at /sitemap.xml)
2.4.6
Headings and Labels
  • Headings describe topic or purpose
  • Form labels describe what input is for
  • Headings and labels are clear and descriptive
Where to check in Shopify
  • Review all headings for clarity
  • Review all form labels
  • Use "Email address" not just "Email"
2.4.7
Focus Visible
  • Keyboard focus indicator always visible
  • Clear outline on focused elements
  • Never use outline: none without replacing with visible alternative
Where to check in Shopify
  • Press Tab and watch for visible outline/highlight
  • Check buttons, links, form fields all have visible focus
  • Common failure: theme CSS removes outline
CSS Fix - Add to theme stylesheet
a:focus, button:focus, input:focus {
  outline: 2px solid #1a6ef5;
  outline-offset: 2px;
}
2.5.1
Pointer Gestures
  • All multi-point or path-based gestures have single-pointer alternative
  • Pinch zoom can be done with +/- buttons
  • Swipe gestures have click/tap alternative
Where to check in Shopify
  • Image zoom functions
  • Carousel/slideshow navigation
  • Product image galleries
2.5.2
Pointer Cancellation
  • Click events trigger on "up" event (mouse release)
  • User can abort action by moving away before releasing
  • No critical actions triggered on "down" event only
Where to check in Shopify
  • Test "Add to Cart" button (should trigger on release, not press)
3
Principle 3

Understandable

Information and the operation of user interface must be understandable.

Level A - Must Have
3.1.1
Language of Page
  • HTML lang attribute set on page
  • <html lang="en"> for English stores
Where to check in Shopify
  • View page source, check <html> tag
  • Should see lang="en" or appropriate language code
3.2.1
On Focus
  • Focusing on element doesn't trigger unexpected changes
  • Tabbing to form field doesn't submit form
  • Focus doesn't open pop-ups or navigate away
Where to check in Shopify
  • Tab through forms without changing anything
  • Verify nothing unexpected happens
3.2.2
On Input
  • Changing input doesn't trigger unexpected changes
  • Selecting variant doesn't auto-add to cart
  • Changing quantity doesn't auto-update cart
Where to check in Shopify
  • Change product variants (size, color)
  • Change quantity
  • Verify requires explicit "Add to Cart" click
3.3.1
Error Identification
  • Form errors clearly identified
  • Error messages describe what's wrong
  • Error messages associated with problem field
Where to check in Shopify
  • Try submitting forms with errors
  • Verify clear error messages appear
  • Screen reader announces errors
3.3.2
Labels or Instructions
  • All form fields have visible labels
  • Instructions provided where needed
  • Format requirements stated (e.g., "MM/DD/YYYY")
Where to check in Shopify
  • Every form input has visible label
  • Required fields marked clearly
  • No placeholder-only labels
Level AA - Required for ADA Compliance
3.1.2
Language of Parts
  • Content in different language has lang attribute
  • Product descriptions in French have lang="fr"
Where to check in Shopify
  • If you have multilingual content, verify lang attributes
3.2.3
Consistent Navigation
  • Navigation menu appears in same location on all pages
  • Navigation order stays consistent
  • Footer links stay consistent
Where to check in Shopify
  • Navigation same on all pages
  • Footer same on all pages
3.2.4
Consistent Identification
  • Same icons mean same thing throughout site
  • Shopping cart icon always means cart
  • Search icon always means search
Where to check in Shopify
  • Icons used consistently
  • Buttons with same function have same label
3.3.3
Error Suggestion
  • Error messages suggest how to fix
  • "Email format invalid" → "Please enter valid email (example@domain.com)"
  • Provide examples of correct format
Where to check in Shopify
  • Submit forms with various errors
  • Verify helpful suggestions provided
4
Principle 4

Robust

Content must be robust enough to be interpreted by a wide variety of assistive technologies.

Level A - Must Have
4.1.1
Parsing
  • HTML validates without major errors
  • No duplicate IDs on same page
  • Elements have complete start and end tags
Where to check in Shopify
4.1.2
Name, Role, Value
  • All UI components have accessible name
  • All UI components have role (button, link, etc.)
  • Component state communicated (expanded, selected, etc.)
Where to check in Shopify
  • Custom dropdowns have proper ARIA
  • Accordions announce expanded/collapsed state
  • Tabs announce selected tab
Level AA - Required for ADA Compliance
4.1.3
Status Messages
  • Status messages announced to screen readers
  • "Item added to cart" announced via ARIA live region
  • Form submission success announced
  • Loading/processing states announced
Where to check in Shopify
  • Add product to cart → screen reader should announce
  • Submit form → success message announced
  • Error occurs → error announced automatically
HTML - Add ARIA live region
<div aria-live="polite" aria-atomic="true"
     class="sr-only" id="status-messages"></div>

Shopify-Specific Critical Checks

These areas are the most common failure points on Shopify stores - test each one carefully.

Cart Accessibility

  • Cart drawer opens and closes with keyboard
  • Cart updates announced to screen readers
  • Quantity controls keyboard accessible
  • Remove item buttons keyboard accessible

Checkout Accessibility

  • All form fields labeled properly
  • Payment fields keyboard accessible
  • Shipping options selectable with keyboard
  • Order review clearly presented

Product Pages

  • Variant selectors keyboard accessible
  • Color swatches have text labels (not color-only)
  • Size selectors properly labeled
  • Image galleries keyboard navigable

Navigation

  • Dropdown menus work with keyboard
  • Mobile menu keyboard accessible
  • Search function keyboard accessible

Testing Tools

Use a combination of automated and manual testing to catch all violations.

Automated

WAVE Extension

Visual accessibility evaluation tool that identifies errors directly on your page.

wave.webaim.org →
Automated

Axe DevTools

Industry-standard accessibility testing built into Chrome DevTools for developers.

deque.com/axe →
Automated

Lighthouse

Built into Chrome DevTools. Run an accessibility audit with one click.

Chrome DevTools →
Manual

Keyboard Navigation

Unplug your mouse and navigate your entire store using only the keyboard.

Our testing process →
Manual

Screen Readers

NVDA (Windows, free) and VoiceOver (Mac, built-in) for real assistive tech testing.

Download NVDA →
Manual

Contrast Checker

Test any color combination for WCAG-compliant contrast ratios instantly.

WebAIM Checker →

Need Help Fixing These Violations?

This checklist identifies the issues. Our certified team fixes them permanently in your Shopify theme code - no widgets, no overlays.

Checklist Progress 0 / 50

Request Your Free Accessibility Audit

Get a personalized Loom video audit of your store within 24 hours

Request Received!

We've got your information and will get back to you with your store audit within 24 hours.

Please check your email inbox or spam folder for our response.