Zum Hauptinhalt springen

Karussell BFSG-konform: eine Checkliste für Web-Entwickler

Informationen zum Artikel

Porträtfoto von Dmitry Dugarev

Autor: Dmitry Dugarev

Berater für digitale Barrierefreiheit & IT-Compliance

Zuletzt aktualisiert am:

Oh diese Karussells — sie sind so beliebt und gleichzeitig so problematisch, wenn es um Barrierefreiheit geht. Hier findest Du die komplette, zusammengeführte Checkliste aller Prüfpunkte aus meinem vollständigen Leitfaden zu barrierefreien Karussells — perfekt zum direkten Einsatz in Deinem Projekt oder Auditbericht.

Grundstruktur

  • Karussell ist in einem <section>-Element mit aria-roledescription="Karussell" umschlossen. [1], [2]
  • aria-roledescription ist in der Sprache des Benutzers lokalisiert. [3]
  • Das Karussell besitzt eine Überschrift mit eindeutiger ID. [4]
  • Die Sektion hat ein aria-labelledby, das auf die Überschrift verweist. [5]

Folien-Container

  • Die Slides liegen in einem <ul> mit einzelnen <li>-Elementen. [6], [7]
  • Das <ul> hat ein aria-label, das die Folienliste beschreibt. [8]

Inhalt der Folien

  • Jede Folie ist ein <article> zur semantischen Strukturierung. [1]
  • Jede Folie hat aria-roledescription="Folie". [2]
  • aria-roledescription ist lokalisiert. [3]
  • Jede Folie hat eine eindeutige Überschrift mit ID. [4]
  • Jede Folie hat aria-labelledby, das auf die Überschrift verweist. [5]
  • Jede Folie hat aria-posinset und aria-setsize. [7]
  • Verborgene Folien sind mit aria-hidden="true" und inert oder display:none markiert. [9]

Fokusmanagement

  • Nach manuellem Wechsel landet der Fokus auf der Überschrift der neuen Folie. [10], [11]
  • Fokus wird erst nach Abschluss der Animation verschoben. [12]

Steuerung der automatischen Rotation

  • Es gibt eine sichtbare Pause/Wiedergabe-Schaltfläche. [13], [14]
  • Die Schaltfläche ist ein echtes <button>-Element mit aria-label und title. [9], [8], [15]
  • Die Schaltfläche nutzt aria-pressed, um den Zustand (an/aus) anzuzeigen. [16]
  • Die Schaltfläche ist per Tastatur bedienbar (Enter, Leertaste). [17]
  • Deutlicher Fokus-Stil mit Kontrast ≥ 3:1. [18], [19]
  • Kontrast der Schaltfläche ≥ 3:1. [19]
  • Schaltfläche ist mindestens 44 × 44 px groß. [20]
  • Automatische Rotation pausiert bei Maus- oder Tastatur-Interaktion. [13]
  • Rotation respektiert prefers-reduced-motion. [13]

Pfeil-Schaltflächen (Vor/Zurück)

  • Pfeil-Navigation ist als <ul> mit aria-label ausgezeichnet. [6], [8]
  • Pfeile sind konsistent am Anfang oder Ende des Karussells platziert. [21]
  • Pfeile sind <button>-Elemente mit aria-label und title. [9], [8], [15]
  • Tastaturbedienung funktioniert (Enter/Leertaste). [17]
  • Deutlicher Fokus-Stil mit Kontrast ≥ 3:1. [18], [19]
  • Kontrast der Pfeile ≥ 3:1. [19]
  • Schaltflächen mindestens 44 × 44 px groß. [20]
  • Deko-Icons sind mit aria-hidden="true" markiert. [22]

Punktnavigation (Dots)

  • Punkte liegen in <fieldset> mit <legend>. [23], [7]
  • Punkte sind als Radio-Buttons umgesetzt. [9], [17]
  • Tasten Home/End springen zum ersten/letzten Slide; ArrowLeft/ArrowRight oder Up/Down navigieren zwischen Slides. [17]
  • Jeder Punkt hat ein aria-label oder sichtbare Textbeschriftung. [8], [24]
  • Fokussierte Punkte sind visuell unterscheidbar (Kontrast ≥ 3:1). [18], [19]
  • Aktiver Punkt ist visuell hervorgehoben und wird von Screenreadern als aktiv angesagt. [9]
  • Aktiver Punkt ist programmatisch unterscheidbar. [9]

Live-Region für Folienwechsel

  • Es gibt ein verstecktes Element mit aria-live="polite" und aria-atomic="true". [12]
  • Live-Region hat role="status". [25]
  • Ansage erfolgt nach Fokuswechsel zur neuen Folie. [12]
  • Keine Ansage bei automatischer Rotation. [12]
  • Live-Region wird nur bei manuellen Wechseln aktualisiert. [12]

Visueller & Tastatur-Fokus

  • Alle interaktiven Elemente (Punkte, Pfeile, Pause-Button) haben einen deutlich sichtbaren Fokus-Stil. [18]
  • Fokus-Stil weist Kontrast ≥ 3:1 zum Hintergrund auf. [19]

Anleitungen zur Interaktion

  • Es gibt ein (ggf. verstecktes) Textelement mit Interaktionshinweisen. [26]
  • Anleitung ist über aria-describedby mit dem Karussell verbunden. [27]
  • Anleitung ist über aria-describedby auch mit jeder Folie verbunden. [27]

Allgemeine Anforderungen (übergreifend)

  • Struktur ist semantisch korrekt: section, ul/li, article. [7]
  • Vollständige Tastaturbedienbarkeit gewährleistet. [17]
  • Verlässliches Fokusmanagement vorhanden. [11]
  • Automatische Bewegung ist steuerbar. [13]
  • Screenreader erhalten klare Status- und Positionsmeldungen. [12]
  • Progressive Enhancement: funktioniert auch ohne JavaScript.
  • Internationalisierung: Lokalisierte Labels (v. a. aria-roledescription). [3]
  • prefers-reduced-motion wird respektiert. [13]
  • Regelmäßiges Testen mit Tastatur & Screenreader (VoiceOver, JAWS, NVDA).

Schlusswort

Mit dieser Checkliste bist Du bestens gerüstet, um ein Karussell zu entwickeln oder zu prüfen, das den WCAG 2.2 Richtlinien entspricht. Denke daran, dass Barrierefreiheit ein fortlaufender Prozess ist — teste regelmäßig mit echten Nutzern und verschiedenen Hilfstechnologien, um sicherzustellen, dass Dein Karussell für alle zugänglich bleibt.

Haftungsausschluss

Der Inhalt dieser Checkliste dient ausschließlich zu Informationszwecken und stellt keine Rechtsberatung dar. Obwohl ich mich bemühe, genaue und aktuelle Informationen bereitzustellen, übernehme ich keine Gewähr für die Vollständigkeit, Richtigkeit oder Aktualität der bereitgestellten Informationen. Die Einhaltung der Barrierefreiheitsstandards kann je nach spezifischem Kontext und Anwendungsfall variieren. Es wird empfohlen, bei der Implementierung von barrierefreien Karussells professionelle Beratung in Anspruch zu nehmen und regelmäßige Tests mit echten Benutzern durchzuführen, um sicherzustellen, dass die Anforderungen der WCAG-2.2-Richtlinien erfüllt werden. Ich hafte nicht für Schäden oder Verluste, die sich aus der Nutzung oder dem Vertrauen auf die in diesem Leitfaden enthaltenen Informationen ergeben.

  1. W3C, „G115: Using semantic elements to mark up structure“, 2023, [Online]. Verfügbar unter: https://www.w3.org/WAI/WCAG22/Techniques/general/G115
  2. W3C, „ARIA4: Using a WAI-ARIA role to expose the role of a user interface component“, 2023, [Online]. Verfügbar unter: https://www.w3.org/WAI/WCAG22/Techniques/aria/ARIA4
  3. W3C, „Success Criterion 3.1.2 Language of Parts“, 2023, [Online]. Verfügbar unter: https://www.w3.org/TR/WCAG22/#language-of-parts
  4. W3C, „G141: Organizing a page using headings“, 2023, [Online]. Verfügbar unter: https://www.w3.org/WAI/WCAG22/Techniques/general/G141
  5. W3C, „ARIA13: Using aria-labelledby to name regions and landmarks“, 2023, [Online]. Verfügbar unter: https://www.w3.org/WAI/WCAG22/Techniques/aria/ARIA13
  6. W3C, „H48: Using ol, ul and dl for lists or groups of links“, 2023, [Online]. Verfügbar unter: https://www.w3.org/WAI/WCAG22/Techniques/html/H48
  7. W3C, „Success Criterion 1.3.1 Info and Relationships“, 2023, [Online]. Verfügbar unter: https://www.w3.org/TR/WCAG22/#info-and-relationships
  8. W3C, „ARIA6: Using aria-label to provide labels for objects“, 2023, [Online]. Verfügbar unter: https://www.w3.org/WAI/WCAG22/Techniques/aria/ARIA6
  9. W3C, „Success Criterion 4.1.2 Name, Role, Value“, 2023, [Online]. Verfügbar unter: https://www.w3.org/TR/WCAG22/#name-role-value
  10. W3C, „G59: Placing the interactive elements in an order that follows sequences and relationships within the content“, 2023, [Online]. Verfügbar unter: https://www.w3.org/WAI/WCAG22/Techniques/general/G59
  11. W3C, „Success Criterion 2.4.3 Focus Order“, 2023, [Online]. Verfügbar unter: https://www.w3.org/TR/WCAG22/#focus-order
  12. W3C, „Success Criterion 4.1.3 Status Messages“, 2023, [Online]. Verfügbar unter: https://www.w3.org/TR/WCAG22/#status-messages
  13. W3C, „Success Criterion 2.2.2 Pause, Stop, Hide“, 2023, [Online]. Verfügbar unter: https://www.w3.org/TR/WCAG22/#pause-stop-hide
  14. W3C, „G4: Allowing the content to be paused and restarted from where it was paused“, 2023, [Online]. Verfügbar unter: https://www.w3.org/WAI/WCAG22/Techniques/general/G4
  15. W3C, „H65: Using the title attribute to identify form controls when the label element cannot be used“, 2023, [Online]. Verfügbar unter: https://www.w3.org/WAI/WCAG22/Techniques/html/H65
  16. W3C, „ARIA16: Using aria-labelledby to provide a name for user interface controls“, 2023, [Online]. Verfügbar unter: https://www.w3.org/WAI/WCAG22/Techniques/aria/ARIA16
  17. W3C, „Success Criterion 2.1.1 Keyboard“, 2023, [Online]. Verfügbar unter: https://www.w3.org/TR/WCAG22/#keyboard
  18. W3C, „Success Criterion 2.4.7 Focus Visible“, 2023, [Online]. Verfügbar unter: https://www.w3.org/TR/WCAG22/#focus-visible
  19. W3C, „Success Criterion 1.4.11 Non-text Contrast“, 2023, [Online]. Verfügbar unter: https://www.w3.org/TR/WCAG22/#non-text-contrast
  20. W3C, „Success Criterion 2.5.5 Target Size (Enhanced)“, 2023, [Online]. Verfügbar unter: https://www.w3.org/TR/WCAG22/#target-size-enhanced
  21. W3C, „Success Criterion 3.2.3 Consistent Navigation“, 2023, [Online]. Verfügbar unter: https://www.w3.org/TR/WCAG22/#consistent-navigation
  22. W3C, „Success Criterion 1.1.1 Non-text Content“, 2023, [Online]. Verfügbar unter: https://www.w3.org/TR/WCAG22/#non-text-content
  23. W3C, „H71: Providing a description for groups of form controls using fieldset and legend elements“, 2023, [Online]. Verfügbar unter: https://www.w3.org/WAI/WCAG22/Techniques/html/H71
  24. W3C, „H37: Using alt attributes on img elements“, 2023, [Online]. Verfügbar unter: https://www.w3.org/WAI/WCAG22/Techniques/html/H37
  25. W3C, „ARIA22: Using role=status to present status messages“, 2023, [Online]. Verfügbar unter: https://www.w3.org/WAI/WCAG22/Techniques/aria/ARIA22
  26. W3C, „G73: Providing a long description in another location with a link to it that is immediately adjacent to the non-text content“, 2023, [Online]. Verfügbar unter: https://www.w3.org/WAI/WCAG22/Techniques/general/G73
  27. W3C, „ARIA1: Using the aria-describedby property to provide a descriptive label for user interface controls“, 2023, [Online]. Verfügbar unter: https://www.w3.org/WAI/WCAG22/Techniques/aria/ARIA1

Über den Autor

Porträtfoto von Dmitry Dugarev

Beste Grüße

Dmitry Dugarev

Gründer von Barrierenlos℠ und Entwickler des Semanticality™ Plugins. Mit einem Masterabschluss, über 8 Jahren Erfahrung in Web-Entwicklung & IT-Compliance bei Big-Four, Banken und Konzernen und mehr als 1.000 auf Barrierefreiheit geprüften Seiten für über 50 Kunden helfe ich Web-Teams, Barrierefreiheit planbar umzusetzen – ohne monatelange Umbauten.

Werde selbst zum BFSG-Profi-Entwickler. In nur 4 Tagen.

Lerne in unserem 4-Tage-Workshop, wie Du komplexe Audits selbst durchführst und barrierefreie Komponenten entwickelst. Erhalte einen individuellen Lernplan, 1:1-Strategie-Gespräch und ein Zertifikat.

Jetzt zum Workshop anmelden