Barrierefreies JavaScript-Akkordeon und Tabs

JavaScript-Akkordeon und Tabs

Barrierefreies JavaScript-Akkordeon und Tabs: Code zum Kopieren | We.Inc

Ein Akkordeon in Vanilla JavaScript mit animierter Höhe und aria-expanded sowie Tabs mit Pfeiltasten und Roving Tabindex. Beide laufen live auf der Seite, mit Tastatur-Checkliste und ARIA-Tabelle.

Ein barrierefreies Akkordeon nutzt in jeder Überschrift einen echten Button. aria-expanded zeigt, ob sein Panel geöffnet ist, und aria-controls benennt das Panel. Barrierefreie Tabs nutzen role=tablist, tab und tabpanel mit aria-selected und wechseln mit den Pfeiltasten zwischen den Tabs, wobei nur der ausgewählte Tab in der Tab-Reihenfolge bleibt. Beide Demos unten laufen live.

Was du verwenden solltest

Jede Demo ist ein in sich geschlossener Block aus HTML, CSS und JavaScript. Bearbeite ihn und das Ergebnis läuft neu. Leg dann die Maus weg und teste mit der Tastatur anhand der Checkliste weiter unten.

Häufige Fragen

Sollen Tabs mit den Pfeiltasten oder mit Enter wechseln?

Der ARIA-Leitfaden erlaubt beides. Wechseln, während der Pfeil wandert (automatische Aktivierung), fühlt sich am schnellsten an, wenn die Panels schon geladen sind. Wenn das Anzeigen eines Panels langsam ist, bewege den Fokus mit den Pfeilen und wechsle stattdessen mit Enter oder Leertaste.

Wie animiere ich die Höhe eines Akkordeons, ohne dass JavaScript misst?

Mach das Panel zu einem Grid und animiere grid-template-rows per Transition von 0fr zu 1fr, mit einem inneren Element mit overflow hidden. Der Browser berechnet die Höhe für dich.

Ist ein details-Element barrierefrei?

Ja. Browser stellen summary als Button mit Erweiterungszustand bereit, und es funktioniert ab Werk mit der Tastatur. Den Marker zu gestalten und zu animieren ist schwieriger, deshalb bauen viele Websites weiterhin ihre eigene Lösung.

Zählen versteckte Akkordeon-Antworten für SEO?

Inhalte, die im HTML stehen, aber eingeklappt sind, werden trotzdem gecrawlt. Lass sie im Seitenquelltext, statt sie beim Klick nachzuladen, und sorge dafür, dass die sichtbare Antwort dem entspricht, was im HTML steht.

Wie es weitergeht

Häufige Fehler

Akkordeon

Barrierefreies Akkordeon mit animierter Höhe

Jede Überschrift enthält einen echten Button mit aria-expanded und aria-controls. Die Höhe wird mit einer Transition auf den Grid-Zeilen animiert, daher muss scrollHeight nicht gemessen werden. Probiere es mit Tab, Enter und Leertaste aus.

Immer nur ein Panel geöffnet

Wenn sich ein Panel öffnet, schließe alle anderen offenen. Halte das optional: Wer zwei Antworten vergleicht, will oft beide offen haben.

Fallback ohne JavaScript: details und summary

Native details-Elemente öffnen und schließen sich ohne Skript. Gibst du ihnen dasselbe name-Attribut, schließen sie sich in aktuellen Browsern gegenseitig aus; ältere erlauben einfach mehrere offene.

Tabs

Tabs mit Roving Tabindex und Pfeiltasten

Nur der ausgewählte Tab hat tabindex 0, daher springt Tab einmal in die Tab-Liste und dann weiter zum Panel. Pfeil links und rechts wechseln zwischen Tabs, Home und End springen an die Enden.

Tastatur- und ARIA-Checkliste

Tastaturtest: Probiere jeden Punkt in den Demos aus

ARIA-Referenz

Attribute, die jeder Teil braucht

Arbeitest du mit React? Starte mit unseren

React-Tab-Komponenten

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap