Accessible product image galleries, sliders and carousels
An accessible product gallery or carousel can be used with a keyboard, a screen reader and a single tap. That means real buttons with names for previous, next and each thumbnail; alt text that says what each photo shows; a zoom view that opens and closes from the keyboard; a way to change slides without dragging or swiping; and, if anything moves on its own, a visible pause button. WCAG 2.2 requires a way to pause any automatically moving content that lasts more than five seconds next to other content (2.2.2, level A).10
W3C's carousel tutorial sums up the four needs: users must be able to pause movement, everything including moving between items must work by keyboard, changes must be communicated to everyone including screen reader users, and keyboard focus must be managed sensibly.11
Two different components
| Aspect | Product image gallery | Homepage slideshow or carousel |
|---|---|---|
| Moves on its own? | Usually not | Often |
| Main risks | Unnamed thumbnails, swipe-only on mobile, zoom that traps focus, missing alt text | Autoplay with no pause, slides that change while someone reads, unlabelled arrows and dots |
| Key criteria | 1.1.1, 2.1.1, 2.5.7, 4.1.2 | 2.2.2, 2.1.1, 4.1.2 |
Movement: give people a way to stop it
Criterion 2.2.2 applies to moving, blinking or scrolling content that starts automatically, lasts more than five seconds and is shown alongside other content: there must be a way to pause, stop or hide it.10 W3C's explanation says the five-second limit was chosen as long enough to get attention, and that content which changes on a timer, such as an auto-advancing presentation, needs a way to pause it too.1 It also warns that a control which only stops the movement while the person keeps focus or the pointer on it does not count.1
W3C's carousel tutorial recommends three things together:2
- A visible play/stop button that switches between "Stop slides" and "Start slides". Update the existing button's label rather than swapping in a new button, so keyboard focus is not lost.
- Pause while the mouse is over the carousel, so people can read and click.
- Pause while keyboard focus is inside it, so keyboard users do not lose their place.
The ARIA Authoring Practices carousel pattern adds that rotation should stop when any element in the carousel receives keyboard focus and stay stopped until the user restarts it, and that the rotation control should be the first stop inside the carousel.4
The simplest option is not to autoplay at all. Shopify's help guidance for merchants is that slideshows and videos should not play automatically, and its developer guidance says autoplaying slideshows must be pausable and autoplaying video in a slideshow must be muted.87 If your theme's slideshow section has an autoplay setting, turning it off removes the problem.
Controls: real buttons with real names
- Previous and next must be
buttonelements with names such as "Previous image" and "Next image". An arrow icon alone is announced as "button" with nothing else. - Thumbnails and dots are controls too. Name each one, for example "Image 3 of 6: back view", and show which one is current both visually and in text. W3C's tutorial marks the active item both visually and with visually hidden text.3
- Keep focus where it is when previous or next is pressed, so the person can press it again. W3C's tutorial and the ARIA pattern both say these buttons should not move focus.34
- Announce the change. W3C suggests a polite live region announcing which item is shown, such as "Image 2 of 6".3 The ARIA pattern turns announcements off while a carousel is rotating automatically, so screen readers are not interrupted every few seconds.4
- Make them big enough to tap. Small dots under a slideshow often fail 2.5.8 Target Size, which asks for at least 24 by 24 CSS pixels or enough spacing.10
The ARIA pattern also describes how to label the whole thing: a container with the role description "carousel" and a name, and each slide as a group with the role description "slide".4
Swiping and dragging need an alternative
On phones, product galleries are often swipe-only. WCAG 2.5.7 Dragging Movements (level AA) asks that anything done by dragging can also be done with a single pointer without dragging. W3C's own example is a content carousel that can be dragged, with forward and back buttons as the alternative.5 A swipe is a path-based gesture, and W3C notes that the single-pointer alternative cannot rely on swiping either.5 So keep the arrow buttons visible on mobile, or make thumbnails tappable.
Zoom and lightbox views
Many themes open a full-screen image viewer when a product photo is clicked. Treat it as a modal dialog. The ARIA dialog pattern says focus moves into the dialog when it opens, Tab and Shift+Tab stay inside it, Escape closes it, and focus returns to the element that opened it.6 Shopify's guidance for theme modals says the same.7 Give the dialog a name, such as the product title, and the close button a name such as "Close".
Hover zoom, where a magnified view appears as the pointer moves over the image, needs care. If it covers other content, WCAG 1.4.13 asks that it can be dismissed without moving the pointer, for example with Escape, that the pointer can move onto it without it vanishing, and that it stays until dismissed or the pointer leaves.9 Keyboard users need a way to reach the same detail, such as a "View larger" button that opens the dialog.
Alt text in galleries
Each photo in a gallery usually shows something different: the front, the back, a detail, the product in use. The alt text should say what that photo adds, not repeat the product name six times. Thumbnails that duplicate the main images can be named as controls ("Show image 3: back view") rather than described twice. If a gallery includes a video, it needs captions; see captions, transcripts and audio description. For writing the descriptions, see how to write alt text that helps.
Test a gallery and a carousel in five minutes
- Keyboard: Tab to the gallery, move through every image with the buttons, open the zoom view, close it with Escape and check focus comes back to where you were.
- Movement: on the homepage, can you find and use a pause button? Does the slideshow stop when you tab into it?
- Phone: can you change images by tapping, without swiping?
- Screen reader: do the arrows, dots and thumbnails have names? Is the current image announced?
- Automated: Jralo's free check finds buttons with no name and images with no alt text on your homepage and up to five linked pages, and suggests which countries' accessibility laws are likely relevant to your store. It cannot judge whether a pause button works or whether alt text is useful; automated testing finds many problems, not all.
If your theme's gallery fails these checks, the fix is usually in one template, so it fixes every product at once. Our guide to fixing accessibility without breaking your theme covers how to change it safely.
Questions people ask
Is an autoplaying homepage slideshow allowed under WCAG?
Yes, if people can pause, stop or hide it. WCAG 2.2.2 requires that for moving content that starts automatically, lasts more than five seconds and sits alongside other content. W3C recommends a visible stop button plus pausing on hover and keyboard focus. Turning autoplay off avoids the issue entirely.
Is a swipe-only product gallery a problem on mobile?
Yes. WCAG 2.5.7 asks for a single-pointer way to do anything that uses dragging, and W3C's own example is a carousel that needs forward and back buttons. A swipe is a path-based gesture, so the alternative must be a tap or click, such as visible arrows or tappable thumbnails.
How should a product image zoom or lightbox work for keyboard users?
Like a modal dialog. Focus moves into it when it opens, Tab stays inside it, Escape closes it, and focus returns to the image or button that opened it. Give it a name and give the close button a name, such as Close.
Check your site now
Jralo's free check tests your homepage and up to five pages for accessibility (WCAG 2.2 A and AA) and website QA problems, and tells you which countries' accessibility laws are likely relevant to you. No sign-up.
Run the free checkSources
Every number and legal statement in this post links to one of these sources, read on 13 October 2026.
- W3C WAI: Understanding Success Criterion 2.2.2 Pause, Stop, Hide
- W3C WAI: Carousels Tutorial, Animations
- W3C WAI: Carousels Tutorial, Functionality
- W3C WAI-ARIA Authoring Practices: Carousel pattern
- W3C WAI: Understanding Success Criterion 2.5.7 Dragging Movements
- W3C WAI-ARIA Authoring Practices: Dialog (Modal) pattern
- Shopify: Accessibility best practices for Shopify themes
- Shopify Help Center: Accessibility (designing and editing your theme)
- W3C WAI: Understanding Success Criterion 1.4.13 Content on Hover or Focus
- W3C: Web Content Accessibility Guidelines (WCAG) 2.2
- W3C WAI: Carousels Tutorial
More questions
- Why does heading structure matter for screen reader users?
- Visible focus: why removing outlines hurts, and what WCAG 2.2 asks
- Accessible navigation and mega menus
- How to make a Shopify cart drawer accessible
- Accessible Shopify variant pickers and colour swatches
- The European Accessibility Act: a step-by-step plan for small online sellers
- ADA Title III and websites in plain English
- What to put in an accessibility statement
- How to make a WooCommerce store accessible
- How to fix accessibility issues without breaking your theme
- How to make a Shopify theme accessible: settings, apps and what to check
- Captions, transcripts and audio description for product and marketing video
- What a screen reader user hears on your product page, and how to fix it
- Accessible forms and checkout: labels, errors and autocomplete
- How to test your website with only a keyboard in 10 minutes
- Colour contrast explained: what WCAG asks and how to fix brand colours
- Why automated accessibility testing finds some problems but not all
- How do I write alt text that actually helps?
- What did WCAG 2.2 add to WCAG 2.1?
- How can I prove my website is monitored for accessibility?
- Does the European Accessibility Act apply to my online store?
- Do accessibility widgets make a website ADA compliant?
- Got an ADA website demand letter? What to do first
- How do I check if my website is accessible? A 15-minute method
- Website accessibility laws by country (2026)