← Back to guides

Accessible Carousel Design

Motion, controls, and text in carousel components

Images & Media

Carousels are a common homepage feature, used to highlight events, announcements, and featured content. But they concentrate several accessibility problems in one component: text embedded in images, auto-advancing motion, low-contrast overlays, and content that users may miss entirely.

Common failures in carousels

  • Text embedded in slide images - screen readers cannot read it; it becomes blurry when zoomed
  • Low contrast text overlaid on photos - fails WCAG contrast requirements, especially at image edges
  • Auto-rotation without user controls - violates WCAG 2.2.2 and is disorienting for users with cognitive or attention differences
  • Critical information only in the carousel - users who miss a slide lose access to that content entirely
  • No keyboard or screen reader access to slide controls - previous/next buttons must be keyboard-operable and labeled

Design principles

Never make the carousel the only source of important information

If a carousel slide promotes an upcoming event, that event must also appear in a dedicated events listing. The carousel is a visual highlight reel - not a primary information channel.

Provide user control over motion

<button aria-label="Pause slideshow">Pause</button>
<button aria-label="Previous slide">Previous</button>
<button aria-label="Next slide">Next</button>

If the carousel auto-advances, it must be pausable. Users with vestibular disorders, ADHD, or cognitive disabilities may find auto-advancing motion distracting or disorienting.

Duplicate slide content as accessible text

<div class="slide" aria-roledescription="slide" aria-label="Slide 1 of 4">
  <img src="summer-reading.jpg" alt="">
  <div class="slide-caption">
    <h2>Summer Reading Program</h2>
    <p>June 1 - August 31. Register at the desk or
       <a href="/summer-reading">online</a>.</p>
  </div>
</div>
Why this works

The image is decorative (alt="") - the real content is in the HTML caption. The caption text is accessible, resizable, and searchable. The aria-roledescription and aria-label give screen reader users context about where they are in the carousel.

ARIA for carousels

<section aria-label="Featured announcements"
         aria-roledescription="carousel">
  <div role="group"
       aria-roledescription="slide"
       aria-label="1 of 3">
    <!-- slide content -->
  </div>
</section>

A simpler alternative

Before adding a carousel, consider whether a static featured banner and a clearly visible events or news section below it would serve users better. Carousels have well-documented low click-through rates on slides beyond the first. A well-designed static layout often outperforms an accessible carousel in both usability and engagement.

WCAG criteria

Referenced criteria
2.2.2 Pause, Stop, Hide (opens in a new tab) - Users must be able to pause or stop auto-advancing content. A
1.4.3 Contrast (Minimum) (opens in a new tab) - Text must meet contrast requirements even over images. AA
2.1.1 Keyboard (opens in a new tab) - All functionality must be operable through a keyboard interface. A