Your Shopify color swatches look great. Customers click them, see the right product photos, and buy. But can a customer using a keyboard navigate to those swatches? Can a screen reader announce what each swatch represents? Can someone with low vision tell which swatch is selected?
For most Shopify stores, the answer is no. Product variant selectors are among the components that most frequently fail accessibility testing. And since June 2025, the European Accessibility Act (EAA) makes this a legal requirement for any store selling to EU customers.
This is not just about compliance. Accessible swatches work better for everyone. Keyboard users, mobile users with motor difficulties, older shoppers who rely on larger touch targets. Making your variant selector accessible improves the experience for all customers.
In this post
- Why swatch accessibility matters now
- What WCAG requires for variant selectors
- 5 common accessibility failures in swatch apps
- The European Accessibility Act and your store
- How Rubik handles accessibility
- How to test your swatches for accessibility
- Frequently asked questions
- Related reading
Why swatch accessibility matters now
Three things happened that made swatch accessibility a real concern for Shopify merchants:
- The European Accessibility Act took effect in June 2025. Any store selling to EU customers must meet WCAG 2.1 AA standards. Penalties can reach €100,000 or 4% of annual revenue. This applies regardless of where your business is located.
- ADA lawsuits continue to rise in the US. Ecommerce accessibility lawsuits have increased every year. Product pages with inaccessible variant selectors are a common target.
- Overlay widgets are not a solution. In April 2025, the US Federal Trade Commission fined accessiBe $1 million for false advertising. Accessibility overlay widgets do not fix underlying code issues. 25% of ADA lawsuits in 2024 specifically cited overlay widgets as barriers rather than solutions.
The takeaway: you cannot slap an overlay on your store and call it accessible. Your product page components, including variant selectors and color swatches, need to be built accessibly from the start.
What WCAG requires for variant selectors
WCAG 2.1 Level AA is the standard that both the EAA and most ADA enforcement references. Here is what it means for color swatches and variant selectors specifically:
Keyboard navigation (WCAG 2.1.1)
Every swatch must be reachable and operable using only a keyboard. A customer should be able to Tab to the swatch group, use arrow keys or Tab to move between swatches, and press Enter or Space to select one. If your swatches only work with mouse clicks, they fail this criterion.
Visible focus indicator (WCAG 2.4.7)
When a user tabs to a swatch, there must be a visible indicator showing which swatch has focus. This is typically a colored outline or ring around the focused element. Many swatch apps hide the browser’s default focus outline for aesthetic reasons, which breaks this requirement.
Touch target size (WCAG 2.5.8)
Interactive elements should be at least 24×24 CSS pixels with adequate spacing. The enhanced guideline (WCAG 2.5.5 AAA) recommends 44×44 pixels. Small circular swatches that are 16 or 20 pixels wide are difficult to tap on mobile, especially for users with motor impairments.
Text alternatives (WCAG 1.1.1)
Color swatches that show only a colored circle with no text label need an ARIA label or equivalent so screen readers can announce the option. A screen reader user landing on a blue circle swatch should hear “Blue” or “Select color: Blue”, not silence or “unlabeled button.”
Color is not the sole indicator (WCAG 1.4.1)
If you rely only on color to show which swatch is selected (a blue ring around the active swatch), users with color blindness may not see the difference. The selected state should also use a non-color indicator: a checkmark, a border width change, or a text label.
Color contrast (WCAG 1.4.11)
Swatch borders and selection indicators need at least 3:1 contrast ratio against adjacent colors. A light gray border on a white background fails this. The selected swatch’s indicator must be visually distinguishable.
5 common accessibility failures in swatch apps
- No keyboard support at all. Swatches render as div or span elements with click handlers. No tabindex, no keyboard event listeners. Keyboard users cannot interact with them.
- No ARIA labels. Image swatches and color circles have no text alternative. Screen readers skip them entirely or announce them as “image” or “button” with no context.
- Focus outline removed. The CSS includes
outline: noneon swatch elements for a “cleaner” look. Keyboard users lose track of which element has focus. - Tiny touch targets. Swatches are 16-20px circles. On a phone screen, tapping the right one requires precision that many users lack.
- Dynamic changes not announced. When a swatch is clicked and the product gallery updates, screen readers are not notified that the page content changed. The user has no idea that new images loaded.
Most swatch apps on the Shopify App Store do not mention accessibility features on their listings. We checked the listings for SA Variant Image Automator, OP Color Swatch Variant Images, NS Color Swatch Variant Images, Variant Image Wizard, Easy Variant Images, and GLO Color Swatch. None of them mention ARIA labels, keyboard navigation, or WCAG compliance.
The European Accessibility Act and your store
The EAA took effect on June 28, 2025. It applies to any ecommerce service selling to consumers in the EU, regardless of where the business is located. If a customer in Germany, France, or any EU country can buy from your Shopify store, the EAA applies to you.
What the EAA requires:
- WCAG 2.1 Level AA compliance across your site
- Semantic HTML throughout
- Accessible controls for all interactive elements (including variant selectors)
- Keyboard navigation through all functionality
- A publicly available accessibility statement
Exemption: microenterprises with fewer than 10 employees and under €2 million annual turnover are exempt. Everyone else is covered.
Penalties: up to €100,000 or 4% of annual revenue. Consumers can also file complaints directly with national authorities or take businesses to court.
How Rubik handles accessibility
Both Rubik apps (Rubik Variant Images and Rubik Combined Listings) are built with accessibility as a core feature, not an afterthought. Here is what they include:
- Semantic HTML. Visual and button swatches render as
<a href>anchor elements (natively focusable and clickable). Dropdown swatches use native<select>elements with built-in screen reader support. - ARIA labels on every element. Each swatch has an
aria-labelattribute. A blue color swatch announces as “Blue” to screen readers. An image swatch announces the product name. - Keyboard navigation. Tab moves focus to and between swatches. Enter and Space activate the selected swatch. Focus indicators are visible and styled.
- Decorative elements marked as hidden. SVG color fills, strikethrough overlays, and placeholder graphics use
aria-hidden="true"so screen readers skip them and focus on meaningful content. - Touch targets meet WCAG minimums. Default swatch sizes meet the 44x44px enhanced guideline. Merchants can adjust sizes through the visual editor, but the defaults are accessibility-safe.
- Shadow DOM isolation. Swatch styles are encapsulated in a Shadow DOM. Your theme’s CSS cannot accidentally remove focus outlines or break swatch accessibility.
Full details are in the Rubik Variant Images accessibility docs and the Rubik Combined Listings accessibility docs.
How to test your swatches for accessibility
You do not need expensive tools. Here are 4 quick tests you can run right now:
1. Keyboard test (30 seconds)
Go to your product page. Put your mouse away. Press Tab until you reach the variant selector. Can you reach each swatch? Can you see which one has focus? Can you press Enter to select it? If any of these fail, your swatches are not keyboard accessible.
2. Screen reader test (2 minutes)
On Mac, press Cmd+F5 to enable VoiceOver. Navigate to your swatches. Does VoiceOver announce the color name or option value for each swatch? Or does it say “image” or nothing? On Windows, use NVDA (free) or Narrator.
3. Contrast check (1 minute)
Look at your selected swatch indicator. Can you tell which swatch is selected without relying on color alone? Is there a border width change, checkmark, or other non-color indicator? Use a contrast checker tool to verify the swatch border has at least 3:1 contrast against the background.
4. Touch target test (1 minute)
Open your product page on a phone. Try to tap each swatch. Can you hit the right one on the first try? If you frequently mis-tap, the swatches are too small. Right-click a swatch in browser dev tools and check its rendered size. Anything under 24x24px is a problem. Under 44x44px fails the enhanced guideline.
Frequently asked questions
Are Shopify color swatches accessible for screen readers?
Not by default. Most Shopify themes and swatch apps render color swatches without ARIA labels or keyboard support. Screen readers cannot announce what each swatch represents. Rubik Variant Images and Rubik Combined Listings include ARIA labels, keyboard navigation, and screen reader support on every swatch element.
Does the European Accessibility Act apply to my Shopify store?
If you sell to customers in any EU country, yes. The EAA took effect June 28, 2025. It requires WCAG 2.1 AA compliance for all ecommerce services. Microenterprises (under 10 employees, under €2M turnover) are exempt. Everyone else must comply or face penalties up to €100,000 or 4% of revenue.
Can I use an accessibility overlay widget instead?
No. Overlay widgets do not fix underlying code issues. In April 2025, the FTC fined accessiBe $1 million for false advertising. 25% of ADA lawsuits in 2024 cited overlay widgets as barriers. The only reliable approach is building accessible components from the start.
Which Shopify swatch apps include accessibility features?
Rubik Variant Images and Rubik Combined Listings both include ARIA labels, keyboard navigation, screen reader support, and WCAG-compliant touch targets. We checked the App Store listings for SA Variant Image Automator, OP Color Swatch, NS Color Swatch, Variant Image Wizard, Easy Variant Images, and GLO Color Swatch. None mention accessibility features.
How big should color swatches be for accessibility?
WCAG 2.5.8 (AA) requires at least 24×24 CSS pixels with adequate spacing. The enhanced guideline (WCAG 2.5.5, AAA) recommends 44×44 pixels. Rubik apps default to sizes that meet the enhanced guideline. You can adjust sizes in the visual editor.
Related reading
- Swatches or dropdowns for Shopify color variants? What the data says
- How to show different images for each color variant on Shopify
- How to show only the selected variant’s images on Shopify (Rubik Variant Images)
- Shopify combined listings without Shopify Plus (Rubikify)
- Rubik Variant Images accessibility documentation
- Rubik Combined Listings accessibility documentation





