Do Shopify image carousels fail accessibility checks?
Most do. Homepage hero carousels and product image sliders fail accessibility in the same five predictable ways: auto-rotation with no pause control, previous and next buttons with no accessible names, slide indicators nobody can operate by keyboard, and screen-reader announcements that fire on every automatic slide change. A carousel can be made compliant, but the default Shopify theme carousel almost never is.
Auto-rotation is the headliner failure
WCAG 2.2.2 requires a pause, stop, or hide mechanism for any content that moves automatically for more than five seconds. The typical Shopify hero carousel rotates every four to six seconds with no pause button anywhere on the page. That is a direct, unambiguous failure, and it is the first thing an auditor or a plaintiff's expert will flag.
The harm is not theoretical. For users with cognitive disabilities, a constantly changing slide resets their reading before they finish. For screen-reader users, each automatic change can trigger an announcement that interrupts whatever they were listening to. For users with vestibular disorders, the motion itself can cause nausea. The pause button is not a nicety; it is the control that makes the component usable.
The control failures underneath
Previous and next arrows are often bare SVG icons with no accessible name, announced as unlabeled buttons or skipped entirely. Slide dots are worse: tiny clickable dots with no text alternative, no keyboard focus indicator, and no way for a screen-reader user to know which slide is current or how many exist. A compliant carousel needs real buttons with names like Previous slide and Next slide, plus a tab-list pattern or at minimum a text readout of the current slide position.
Keyboard traps are common in product image sliders. Some implementations move focus automatically when the slide changes, yanking keyboard users around the page. Others put every slide's links in the tab order even when only one slide is visible, so keyboard users tab through invisible content. Only the active slide's interactive elements should be focusable; the rest should be inert until shown.
The screen-reader experience
Test your carousel with a screen reader and you will usually hear one of two bad outcomes. Either every automatic slide change is announced as a live-region update, so the shopper hears promo copy interrupting their browsing on loop, or nothing is announced at all, and the shopper has no idea the content they heard thirty seconds ago has been replaced. The compliant middle ground: announce slide changes only when the user changes the slide themselves, and stay silent during automatic rotation, which should in any case be pausable.
Alt text on carousel images is its own audit item. Decorative background slides should have empty alt text so screen readers skip them. Slides that carry meaning, a sale announcement rendered as an image, need real alt text or, better, real text overlaid on the image instead of baked into it.
The five-minute carousel audit
Load the homepage and do nothing for thirty seconds. Does the carousel advance on its own, and is there a visible pause control? Tab to the previous and next arrows: can you reach them, do they activate with Enter, and do they have visible focus indicators? Tab through the slide indicators: can you tell which slide is active? Finally, run it with a screen reader and listen to what gets announced on each automatic change.
Check the product page slider too. Click through the thumbnails with the keyboard alone. If focus jumps unexpectedly when images change, or if hidden slides stay in the tab order, the slider fails.
What a compliant carousel looks like
Static by default is the strongest option, and it usually converts better anyway: most shoppers never see past the first slide, and the data on carousel engagement is famously grim. If the carousel must rotate, add a prominent pause button that works by keyboard, honor prefers-reduced-motion by defaulting to static, name every control, expose the current slide position as text, and keep inactive slides out of the tab order.
The theme is the usual culprit, so the fix usually lives in theme code or a replacement slider section. Test the replacement with the five-minute audit before it ships, because carousel libraries are one of the most regressed components in front-end code: an update can silently drop the pause button or the focus management you added.