Barrierefreies Karussell (Slider)
Aktualisiert am 14. Oktober 2026 · Lesezeit: 5 Min.
Der Hero-Slider auf der Startseite und Karussells mit Produktbildern gehören zu den meistkritisierten Mustern der Barrierefreiheit – zum einen, weil sie oft schlecht gebaut sind, zum anderen, weil sich kaum jemand über die erste Folie hinaus ansieht. Wenn Sie eines einsetzen, machen Sie es steuerbar. Diese Seite gehört zur Reihe barrierefreie UI-Muster.
Wann ein Karussell passt
Das APG beschreibt ein Karussell als Darstellung von „einer Menge von Elementen, den Folien, indem nacheinander eine Teilmenge von einer oder mehreren Folien angezeigt wird“. Setzen Sie es für Produktbilder auf einer Produktseite oder eine kurze Reihe zusammengehöriger Elemente ein. Wenn jede Aktion zählt, überlegen Sie, sie als einzelne Blöcke zu zeigen: Nichts ist verborgen und nichts bewegt sich.
Das APG nennt zwei konkrete Probleme: Verborgene Folien dürfen für Screenreader nicht verfügbar bleiben (zum Beispiel, wenn sie nur aus dem Bild geschoben werden), und ein nicht angekündigter Wechsel verwirrt Screenreader-Nutzer, die plötzlich in Inhalten einer anderen Folie landen.
Relevante WCAG-Kriterien
- 2.2.2 Pausieren, beenden, ausblenden (A): Bewegte Inhalte, die „(1) automatisch starten, (2) länger als fünf Sekunden dauern und (3) parallel zu anderen Inhalten präsentiert werden“, brauchen „einen Mechanismus, mit dem der Nutzer sie pausieren, beenden oder ausblenden kann“. Das W3C nennt automatisch fortschreitende Präsentationen unter den Beispielen.
- 2.1.1 Tastatur (A): Alle Bedienelemente funktionieren per Tastatur; Wischen ist nicht der einzige Weg.
- 2.5.1 Zeigergesten (A): Wischen braucht eine Alternative mit einem einzelnen Zeiger, etwa Buttons für „weiter“ und „zurück“.
- 1.1.1 Nicht-Text-Inhalt (A): Folienbilder haben Textalternativen; Text in Banner-Bildern muss ebenfalls in der Alternative stehen.
- 1.4.5 Bilder eines Textes (AA): Werbetext sollte echter Text sein, nicht ins Bild eingebrannt.
- 4.1.2 Name, Rolle, Wert (A): Buttons haben Namen; die Auswahl zeigt die aktuelle Folie.
- 2.5.8 Zielgröße (Minimum) (AA): Punkt-Indikatoren liegen oft weit unter 24 × 24 CSS-Pixeln.
- 2.4.3 Fokus-Reihenfolge (A): Verborgene Folien erhalten keinen Fokus.
Codebeispiel
<section class="carousel" aria-roledescription="carousel" aria-label="Herbstangebote">
<button type="button" class="rotation" aria-label="Foliendurchlauf anhalten">⏸</button>
<button type="button" aria-controls="slides" aria-label="Vorherige Folie">‹</button>
<button type="button" aria-controls="slides" aria-label="Nächste Folie">›</button>
<div id="slides" aria-live="off" aria-atomic="false">
<div role="group" aria-roledescription="slide" aria-label="1 von 3">
<a href="/de/herbstjacken">
<img src="jackets.jpg" alt="Herbstjacken, 20 % Rabatt bis Sonntag">
</a>
</div>
<div role="group" aria-roledescription="slide" aria-label="2 von 3" hidden>…</div>
<div role="group" aria-roledescription="slide" aria-label="3 von 3" hidden>…</div>
</div>
</section>
Was das APG festlegt:
- Der Container ist eine
region(einsectionmit Namen) oder einegroupmitaria-roledescription="carousel"und einer Beschriftung, die das Wort „Karussell“ nicht enthält. - Jede Folie ist eine
groupmitaria-roledescription="slide"und einem Namen; haben Folien keine eindeutigen Namen, funktioniert eine Position wie „3 von 10“. - Der Folien-Wrapper hat
aria-atomic="false";aria-liveistoff, solange das Karussell automatisch wechselt, undpolite, wenn nicht, damit manuelle Wechsel angesagt werden. - Die Beschriftung des Rotations-Buttons beschreibt die Aktion – „Foliendurchlauf anhalten“ oder „Foliendurchlauf starten“ –, sodass er kein
aria-pressedbraucht. - Der Wechsel stoppt, wenn der Tastaturfokus in das Karussell gelangt, und startet nur auf Wunsch des Nutzers wieder; er pausiert auch, solange die Maus über dem Karussell schwebt.
- Die Folienauswahl kann als Tabs (die Folien werden zu
tabpanel) oder als beschriftete Gruppe von Buttons gebaut werden, wobei der Button der aktuellen Foliearia-disabled="true"stattdisabledhat, damit er in der Tab-Reihenfolge bleibt.
Tastaturbedienung
| Taste | Funktion |
|---|---|
| Tab / Umschalt + Tab | Bewegt sich in Seitenreihenfolge durch die Bedienelemente und den Inhalt der sichtbaren Folie |
| Enter oder Leertaste am Rotations-Button | Stoppt oder startet den Wechsel; die Beschriftung ändert sich |
| Enter oder Leertaste bei Zurück / Weiter | Zeigt die vorherige oder nächste Folie; der Fokus bleibt auf dem Button, damit er erneut gedrückt werden kann |
| Pfeiltasten | Nur in der Tabs-Variante der Folienauswahl, nach dem Muster für Tabs |
Das APG stellt das Bedienelement für den Wechsel an den Anfang der Tab-Reihenfolge, vor den wechselnden Inhalt.
Typische Fehler in Online-Shops
- Hero-Slider, die alle drei Sekunden wechseln und keinen Pause-Button haben.
- Verborgene Folien, die aus dem Bild geschoben wurden, deren Links aber weiter den Fokus erhalten, sodass Tab in unsichtbare Inhalte springt.
- Punkte als einzige Navigation, winzig und ohne Namen („Button“, „Button“, „Button“).
- Werbetext nur im Bild, mit
alt="Banner". - Karussells für Produktbilder, die auf Mobilgeräten nur per Wischen funktionieren und auf dem Desktop nur mit Vorschaubildern, die
div-Elemente sind. - Der Wechsel läuft weiter, während der Nutzer liest oder mit Tab in die Folie springt.
- Geklonte Folien für Endlosschleifen, die Links und IDs duplizieren.
Was automatische Prüfungen finden und was manuell zu testen ist
| Automatisch (axe-core-Regel) | Was sie findet |
|---|---|
image-alt, role-img-alt |
Folienbilder ohne Textalternative |
button-name |
Buttons für Zurück, Weiter, Punkte und Pause ohne Namen |
aria-hidden-focus |
Fokussierbare Links in Folien, die mit aria-hidden verborgen sind |
duplicate-id-aria |
Doppelte IDs durch geklonte Folien, die in ARIA-Verweisen verwendet werden |
target-size |
Zu kleine Punkt-Indikatoren und Pfeile |
color-contrast |
Text über Folienbildern mit zu geringem Kontrast, wo er sich messen lässt |
marquee, blink |
Veraltete bewegte Elemente |
Alle sind Karten in unserer Regelbibliothek. 2.2.2 lässt sich nicht automatisch testen: Ob der Slider sich bewegt, wie lange und ob er sich pausieren lässt, muss ein Mensch beurteilen. Testen Sie außerdem per Tastatur, dass der Wechsel beim Fokus stoppt, dass verborgene Folien nicht erreichbar sind und dass ein Screenreader manuelle Folienwechsel ansagt.
Starten Sie die kostenlose Prüfung einer Seite auf Ihrer Startseite. Sie ist eine automatische Prüfung, kein vollständiges Audit.
Häufige Fragen
Erlauben die WCAG automatisch wechselnde Karussells?
Ja, mit einer Möglichkeit, sie anzuhalten. Das Kriterium 2.2.2 Pausieren, beenden, ausblenden verlangt einen Mechanismus, um bewegte Inhalte zu pausieren, zu beenden oder auszublenden, die automatisch starten, länger als fünf Sekunden dauern und parallel zu anderen Inhalten angezeigt werden.
Welche Bedienelemente braucht ein barrierefreies Karussell?
Laut APG: Buttons für die vorherige und die nächste Folie, optional Buttons oder Tabs zur Auswahl einer Folie und, bei automatisch wechselnden Karussells, einen Button zum Stoppen und Starten des Wechsels, der in der Tab-Reihenfolge zuerst kommt.
Sollte der Wechsel stoppen, wenn der Nutzer das Karussell fokussiert?
Ja. Das APG sagt, dass der Wechsel stoppt, sobald der Tastaturfokus in das Karussell gelangt, und nur auf Wunsch des Nutzers wieder startet; solange die Maus darüber schwebt, pausiert er.
Woher wissen Screenreader, welche Folie angezeigt wird?
Jede Folie ist eine Gruppe mit aria-roledescription="slide" und einem Namen wie „3 von 5“, und der Folien-Container hat aria-live="polite", wenn das Karussell nicht automatisch wechselt, sodass manuelle Folienwechsel angesagt werden.
Kann eine automatische Prüfung ein Karussell testen?
Sie findet Folienbilder ohne Alternativtext, Buttons ohne Namen, fokussierbare Links in verborgenen Folien und zu kleine Ziele. Ob sich der Wechsel pausieren lässt oder beim Fokus stoppt, kann sie nicht testen.
Quellen
- W3C WAI, APG Carousel pattern: https://www.w3.org/WAI/ARIA/apg/patterns/carousel/
- W3C, Understanding 2.2.2 Pause, Stop, Hide: https://www.w3.org/WAI/WCAG22/Understanding/pause-stop-hide.html