How Do You Make Shopify Checkout Accessible?
TABLE OF CONTENTS
- Key Takeaways
- Shopify Checkout Architecture
- Form Accessibility Requirements
- Error Handling
- Payment Method Accessibility
- Express Checkout Accessibility
- Checkout Extensions Accessibility
- Address Autocomplete Accessibility
- Multi-Step Checkout Accessibility
- Testing Checkout Accessibility
- Frequently Asked Questions
- Related Resources
Checkout is where accessibility failures have the highest legal and business impact. A customer who navigates your entire store successfully but can't complete purchase due to checkout barriers experiences discriminatory exclusion—and has clear grounds for legal action. Shopify's checkout has improved significantly, but merchants still have responsibility for customizations, extensions, and content within checkout. This technical guide covers every aspect of Shopify checkout accessibility, from core form requirements to Checkout Extensions implementation.
Key Takeaways
Checkout accessibility is critical for compliance and requires attention to forms, errors, payment methods, and customizations.
- Shopify's default checkout has good accessibility foundations, but customizations and extensions can introduce barriers
- Form accessibility is the most critical checkout requirement—labels, errors, and keyboard operation must be flawless
- Payment methods (PayPal, Apple Pay, Google Pay, Shop Pay) vary in accessibility—test your specific implementations
- Checkout Extensions must be built accessibly—Shopify's component library helps but doesn't guarantee compliance
- Express checkout options create alternate paths that must each be accessible
Shopify Checkout Architecture
Understanding how Shopify checkout works is essential for understanding accessibility responsibilities.
Checkout Types and Accessibility Control
Standard Shopify Checkout (All plans):
- Hosted by Shopify on checkout.shopify.com domain
- Limited customization options
- Shopify maintains core accessibility
- Merchant controls content, not structure
Shopify Plus Checkout:
- Same hosted checkout
- Additional customization via Checkout Extensions
- Branding and UI customization
- Script Editor functionality
- More accessibility responsibility falls on merchant
Checkout Extensions (Plus only):
- Add UI blocks to checkout
- Use Shopify's component library
- Merchant/developer responsible for extension accessibility
- Can introduce significant barriers if poorly implemented
What Shopify Controls vs. Merchant Responsibility
Shopify controls:
- Core form structure and labeling
- Error handling framework
- Keyboard navigation foundations
- Payment gateway integrations
- Core ARIA implementation
Merchant responsibility:
- Custom content in extensions
- Gift message and special instructions
- Promotional content added to checkout
- Third-party scripts or integrations
- Content accessibility (text, images)
Form Accessibility Requirements
Checkout is fundamentally a series of forms. Every form accessibility requirement applies.
Input Labels
Every form field in checkout must have a visible, properly associated label.
WCAG requirement: 3.3.2 Labels or Instructions (Level A)
Proper label association: ```html <!-- Correct: Label associated with input via for/id --> <label for="checkout-email">Email</label> <input type="email" id="checkout-email" name="email">
<!-- Correct: Label wrapping input --> <label> Email <input type="email" name="email"> </label>
<!-- Incorrect: Placeholder as only label --> <input type="email" name="email" placeholder="Email"> ```
Shopify's default checkout uses proper label associations. Verify any customizations maintain this.
Required Field Indication
Required fields must be indicated in a way that doesn't rely solely on color.
WCAG requirement: 1.4.1 Use of Color (Level A)
Acceptable approaches:
- Text indicator: "(required)" or "*" with legend explaining asterisk
- Programmatic: `aria-required="true"` or `required` attribute
- Combination: Visual indicator plus ARIA
Check for: Any required fields you add through extensions or customizations must follow these patterns.
Autocomplete Attributes
Autocomplete helps all users and is specifically required for accessibility.
WCAG requirement: 1.3.5 Identify Input Purpose (Level AA)
Required autocomplete values for checkout fields: ```html <input type="text" autocomplete="name" name="name"> <input type="email" autocomplete="email" name="email"> <input type="tel" autocomplete="tel" name="phone"> <input type="text" autocomplete="street-address" name="address1"> <input type="text" autocomplete="address-level2" name="city"> <input type="text" autocomplete="postal-code" name="zip"> <input type="text" autocomplete="cc-number" name="card-number"> <input type="text" autocomplete="cc-exp" name="expiry"> <input type="text" autocomplete="cc-csc" name="cvv"> ```
Shopify's checkout includes appropriate autocomplete attributes on standard fields.
Keyboard Navigation
All checkout functionality must be operable with keyboard alone.
WCAG requirement: 2.1.1 Keyboard (Level A)
Testing protocol:
- Start on cart page, click/Tab to "Checkout" button
- Press Enter to proceed
- Tab through every field and control
- Verify logical focus order
- Complete all fields using keyboard only
- Select shipping method with keyboard
- Navigate payment options with keyboard
- Complete payment fields with keyboard
- Submit order with Enter key
- Verify order confirmation is reached
Common keyboard issues:
- Third-party payment widgets not keyboard accessible
- Address autocomplete suggestions not navigable
- Custom date pickers not keyboard operable
- Modal dialogs trapping focus
Error Handling
Error handling is where many checkout implementations fail accessibility requirements.
Error Identification
Errors must be identified in text, not just color.
WCAG requirement: 3.3.1 Error Identification (Level A)
Requirements:
- Error messages must describe the error in text
- Errors must identify which field has the problem
- Error state must not rely only on color (red border alone is insufficient)
Accessible error pattern: ```html <div class="form-group error"> <label for="email">Email address</label> <input type="email" id="email" aria-invalid="true" aria-describedby="email-error"> <p id="email-error" class="error-message" role="alert"> Please enter a valid email address </p> </div> ```
Error Suggestions
When users make errors, provide suggestions for fixing them.
WCAG requirement: 3.3.3 Error Suggestion (Level AA)
Good error messages:
- "Enter a valid email address, e.g., name@example.com"
- "Phone number must include area code (e.g., 555-123-4567)"
- "Postal code format: A1A 1A1"
Poor error messages:
- "Invalid input"
- "Error"
- "Please fix errors"
Error Announcement
Screen reader users must be notified when errors occur.
Implementation approaches:
Approach 1: Focus management Move focus to error summary or first field with error: ```javascript // After form submission with errors document.getElementById('error-summary').focus(); // or document.querySelector('[aria-invalid="true"]').focus(); ```
Approach 2: ARIA live region Announce errors without moving focus: ```html <div aria-live="polite" aria-atomic="true" id="error-announcement"> <!-- Error messages inserted here are announced --> </div> ```
Approach 3: Alert role Immediate announcement: ```html <p role="alert">Please correct the errors below</p> ```
Shopify's checkout uses focus management to navigate users to errors. Extensions should coordinate with this pattern.
Error Prevention
For financial transactions, provide review and confirmation opportunities.
WCAG requirement: 3.3.4 Error Prevention (Level AA)
Checkout implementation:
- Order review step before final submission
- Clear display of what will be charged
- Ability to modify order before confirming
- Confirmation before submitting payment
Payment Method Accessibility
Each payment method must be accessible. Test all methods you offer.
Credit/Debit Card Entry
Standard card entry fields in Shopify checkout have proper accessibility. Verify:
- Card number field has label
- Expiration field has label and format hint
- CVV field has label and explanation of what CVV is
- All fields support keyboard entry
- Error messages are specific per field
PayPal
PayPal's checkout popup is controlled by PayPal. Known considerations:
- The "PayPal" button in Shopify checkout should be keyboard accessible
- PayPal's popup/redirect is generally accessible
- Return to merchant after PayPal varies—test the complete flow
- PayPal Credit and Pay Later options follow similar patterns
Shop Pay
Shop Pay is Shopify's accelerated checkout:
- Authentication interface must be keyboard accessible
- One-time code entry must be accessible (can paste, properly labeled)
- Shop Pay's UI has received accessibility attention from Shopify
- Test the complete Shop Pay flow on your store
Apple Pay / Google Pay
Express payment methods appear as buttons:
- Buttons must be keyboard focusable
- Button accessible names should indicate payment method
- After selection, payment is handled by device/browser—accessibility varies
- Test on actual devices, not just desktop simulations
Buy Now Pay Later (Affirm, Klarna, Afterpay)
BNPL options typically redirect to third-party sites:
- Initial button must be keyboard accessible
- Third-party sites should be accessible (you have limited control)
- Return journey to your checkout must maintain accessibility
- Test complete flows
Express Checkout Accessibility
Express checkout options (Shop Pay, Apple Pay, Google Pay, PayPal) that appear on product or cart pages create alternate checkout paths.
Button Accessibility
Express checkout buttons must be:
Keyboard accessible: Tab should reach buttons, Enter should activate
Properly labeled: Screen readers should announce what the button does ```html <!-- Good: Descriptive accessible name --> <button aria-label="Check out with Shop Pay"> <img src="shop-pay-logo.svg" alt="" role="presentation"> </button>
<!-- Good: Text is the accessible name --> <button> <img src="apple-pay.svg" alt=""> <span>Apple Pay</span> </button> ```
Focusable with visible indicator: Focus state must be visible
Alternative Path Requirement
Express checkout creates alternative ways to complete purchase. Each path must be accessible.
Test each express checkout method:
- Activate button with keyboard
- Complete payment flow
- Verify order confirmation is accessible
- Test on devices where applicable (Apple Pay on Safari/iOS)
Checkout Extensions Accessibility
Shopify Plus merchants can add functionality through Checkout Extensions. Accessibility of extensions is the merchant/developer's responsibility.
Checkout UI Components
Shopify provides a component library for extensions. These components have baseline accessibility:
Text components: `<Text>`, `<Heading>`, `<TextBlock>` render semantic HTML
Form components: `<TextField>`, `<Checkbox>`, `<Select>` include proper labeling patterns
Layout components: `<BlockStack>`, `<InlineStack>`, `<Grid>` provide structure
Interactive components: `<Button>`, `<Link>` are keyboard accessible
Building Accessible Extensions
Use provided components: Avoid custom HTML when Shopify components suffice
Maintain label associations: ```javascript import { TextField } from '@shopify/ui-extensions-react/checkout';
// Good: Label is built into TextField component <TextField label="Gift message" id="gift-message" />
// Not available: Custom input without label // Use TextField component instead ```
Handle dynamic content: ```javascript import { Banner } from '@shopify/ui-extensions-react/checkout';
// Banners announce to screen readers <Banner status="info"> Your order qualifies for free shipping </Banner> ```
Conditional content: ```javascript // When content appears conditionally, ensure focus management const [showGiftOptions, setShowGiftOptions] = useState(false);
return ( <BlockStack> <Checkbox checked={showGiftOptions} onChange={setShowGiftOptions} > This is a gift </Checkbox>
{showGiftOptions && ( <TextField label="Gift message" // Consider auto-focusing when this appears /> )} </BlockStack> ); ```
Common Extension Accessibility Issues
Missing labels on custom inputs: Always use Shopify's form components with labels
Inaccessible conditional content: Content that appears without focus management
Non-semantic content: Using text where headings are appropriate
Missing error handling: Custom validation without accessible error messages
Focus traps: Modal-like patterns that don't manage focus correctly
Address Autocomplete Accessibility
Address autocomplete (Google Places, Shopify address autocomplete) presents accessibility challenges.
Requirements for Accessible Autocomplete
Keyboard navigation: Suggestions must be navigable with arrow keys
Screen reader announcement: Suggestions must be announced as they appear/change
Selection feedback: Selected suggestion must be confirmed
Manual fallback: Users must be able to enter addresses without using autocomplete
Testing Autocomplete
- Tab to address field
- Type partial address
- When suggestions appear, use arrow keys to navigate
- Verify screen reader announces suggestions
- Select suggestion with Enter
- Verify fields populate correctly
- Tab away and return—verify data persists
Common Autocomplete Issues
- Suggestions not keyboard navigable
- Screen reader doesn't announce suggestions
- Focus jumps unexpectedly when selecting
- Can't proceed without using autocomplete
Multi-Step Checkout Accessibility
Shopify's checkout uses a stepped/accordion-style interface. Each step has accessibility requirements.
Step Indicators
Users must understand their position in the process.
Implementation requirements:
- Current step clearly indicated (not by color alone)
- Completed steps indicated as such
- Programmatic indication for screen readers
Example markup: ```html <nav aria-label="Checkout steps"> <ol> <li aria-current="false"> <span class="completed">Information</span> </li> <li aria-current="step"> <span class="current">Shipping</span> </li> <li aria-current="false"> <span class="upcoming">Payment</span> </li> </ol> </nav> ```
Step Navigation
Forward navigation: "Continue" buttons must be keyboard accessible and clearly labeled
Back navigation: Users must be able to return to previous steps to edit information
Edit links: Links to edit completed steps must be accessible
Focus Management Between Steps
When advancing to next step:
- Focus should move to the new step's first interactive element or heading
- Previous step content may be collapsed—this should be communicated
Testing Checkout Accessibility
Thorough checkout testing requires multiple approaches.
Automated Testing
Run automated accessibility tools on checkout pages:
Limitations: Automated tools can't access Shopify's hosted checkout the same way as your store pages. Test in a staging environment or use Shopify's checkout preview.
Tools: axe DevTools, WAVE, Lighthouse (with limitations)
Manual Keyboard Testing
Complete a full checkout with keyboard only:
- Navigate to cart (keyboard)
- Proceed to checkout (Enter)
- Complete contact info (Tab + typing)
- Complete shipping address (Tab + typing)
- Continue to shipping method (Enter)
- Select shipping option (arrow keys + Enter)
- Continue to payment (Enter)
- Select payment method (arrow keys)
- Complete payment fields (Tab + typing)
- Place order (Enter)
- Verify confirmation page
Screen Reader Testing
Test with at least one screen reader:
NVDA + Chrome/Firefox (Windows, free):
- Navigate through checkout with browse mode
- Complete forms with focus mode
- Verify error announcements
- Verify step progression
VoiceOver + Safari (Mac, built-in):
- Navigate with VO+arrows
- Complete forms
- Test on macOS and iOS
Key verifications:
- All form fields have announced labels
- Errors are announced
- Step changes are communicated
- Order total and details are accessible
- Confirmation is accessible
Mobile Accessibility Testing
Touch targets: Verify buttons and links have adequate size (44x44px minimum for critical controls)
Zoom: Complete checkout while zoomed to 200%
Screen reader: Test with VoiceOver (iOS) or TalkBack (Android)
Frequently Asked Questions
Can I customize Shopify checkout for better accessibility?
On standard Shopify plans, you have limited customization options. Focus on ensuring any content you can add (notes fields, terms acceptance, etc.) is accessible. On Shopify Plus, Checkout Extensions allow more customization—build these accessibly using Shopify's component library and accessibility best practices.
Are accessibility overlays effective for checkout?
No. Accessibility overlays cannot fix fundamental checkout accessibility issues like missing form labels, improper error handling, or keyboard navigation problems. These require source code fixes. For checkout specifically, overlays also cannot modify Shopify's hosted checkout at all—they only affect your own domain.
How do I fix checkout accessibility issues if I can't edit the code?
For Shopify's core checkout, report issues to Shopify Support. For issues introduced by apps or customizations, work with those developers. For systematic accessibility improvement, consider using a source code remediation platform that addresses issues in your theme code, which affects the cart page leading to checkout.
Does Shopify test checkout for accessibility?
Shopify does accessibility testing on their core checkout. However, they cannot guarantee accessibility of merchant customizations, third-party payment providers, or content added through extensions. Your checkout's accessibility depends on how you've configured and customized it.
What happens if my checkout isn't accessible?
Customers who can't complete checkout may file ADA or accessibility complaints. E-commerce checkout barriers are a common focus of accessibility lawsuits. Beyond legal risk, you lose sales from the estimated 15-20% of the population with disabilities, plus others who benefit from accessible design.
Do accelerated checkouts (Shop Pay, Apple Pay) need to be accessible?
Yes. Every checkout path must be accessible. The buttons initiating these checkouts must be keyboard accessible and properly labeled. The checkout flows themselves are handled by Shopify (Shop Pay) or device operating systems (Apple Pay, Google Pay), which generally have good accessibility, but test the complete flow on your store.
Related Resources
- Best Shopify Accessibility Tool 2025
- Complete Shopify Accessibility Guide
- Shopify Accessibility Checklist
- Shopify Plus Accessibility
- WCAG Level AA Checklist 2026
This article was crafted using a cyborg approach—human expertise enhanced by AI to provide technical guidance on Shopify checkout accessibility based on WCAG 2.1 Level AA requirements and real-world e-commerce accessibility implementation experience.
Stay informed
Accessibility insights delivered
straight to your inbox.


Automate the software work for accessibility compliance, end-to-end.
Empowering businesses with seamless digital accessibility solutions—simple, inclusive, effective.
Book a Demo