Barrierefreiheit für Accordions auf einer Webseite – Richtige Lösung!

Hier ein Beispiel eines korrekt funktionierendes Accordions. Doch ist es auch Barrierefrei. Was muss beachtet werden und wie kann es umgesetzt werden?

Um das Problem mit dem aria-expanded-Attribut zu lösen, können Sie JavaScript verwenden, um den Status des Attributs dynamisch zu aktualisieren, wenn ein Accordion-Element geöffnet oder geschlossen wird. Hier ist eine Lösung:

JavaScript-Lösung zur dynamischen Aktualisierung von aria-expanded

Fügen Sie den folgenden JavaScript-Code in Ihre HTML-Datei ein, entweder direkt in einem <script>-Tag oder in einer separaten JavaScript-Datei:

document.addEventListener(„DOMContentLoaded“, function () {
// Alle Accordion-Buttons auswählen
const accordionButtons = document.querySelectorAll(‚.accordion-button‘);

accordionButtons.forEach(button => {
    button.addEventListener('click', function () {
        // Den aktuellen Zustand des Buttons überprüfen
        const isExpanded = button.getAttribute('aria-expanded') === 'true';

        // Alle anderen Buttons schließen (optional, wenn nur ein Panel geöffnet sein soll)
        accordionButtons.forEach(btn => {
            if (btn !== button) {
                btn.setAttribute('aria-expanded', 'false');
            }
        });

        // Den Zustand des geklickten Buttons umschalten
        button.setAttribute('aria-expanded', !isExpanded);
    });
});

});

Erklärung der Accessibility-Verbesserung

  • aria-expanded: Dieses Attribut wird dynamisch aktualisiert, um den aktuellen Zustand des Panels (geöffnet oder geschlossen) anzuzeigen.
  • Screenreader-Kompatibilität: Screenreader können den Status des Panels korrekt interpretieren und den Benutzern mitteilen, ob ein Panel geöffnet oder geschlossen ist.
  • Barrierefreiheit: Die Verwendung von aria-expanded entspricht den WAI-ARIA-Richtlinien für Accordions.

Bootstrap und aria-expanded

Bootstrap aktualisiert das aria-expanded-Attribut automatisch, wenn Sie die Bootstrap-JavaScript-Dateien korrekt eingebunden haben. Dies geschieht durch die Verwendung von data-bs-toggle="collapse" und anderen Bootstrap-spezifischen Attributen. Wenn Sie also Bootstrap 5 oder eine neuere Version verwenden, müssen Sie möglicherweise kein eigenes JavaScript schreiben, um aria-expanded zu aktualisieren.

Schreibe einen Kommentar