Barrierefreiheitszertifikat – Startseite

Akkordeon: auf- und zuklappen, ohne jemanden auszusperren

Akkordeons sparen Platz bei FAQ und langen Inhalten. Damit alle sie bedienen können, braucht jede Überschrift einen echten Button, der seinen Zustand verrät.

4.1.22.1.11.3.12.4.72.4.6

Live-Demo

Diese Demo ist mit axe-core ohne Verstöße geprüft und vollständig per Tastatur bedienbar.

Probieren Sie es mit der Tastatur: Tab, Enter, Leertaste, Pfeiltasten, Escape. Mit eingeschaltetem Screenreader hören Sie, was angesagt wird.

Ihre Startseite automatisch: Kontraste, Beschriftungen, Überschriften, Tastaturbedienung und mehr. Sie erhalten einen Score und die drei wichtigsten Probleme.

Die Live-Demo braucht JavaScript. Code und Anforderungen stehen unten.

Tastaturbedienung

Tab
Springt zum nächsten Akkordeon-Kopf oder in den geöffneten Inhalt.
Enter / Leertaste
Öffnet oder schließt den Bereich.

Wann Sie das Muster einsetzen

Nutzen Sie ein Akkordeon, wenn Besucher nur einzelne Abschnitte brauchen, etwa bei häufigen Fragen. Für einen einzelnen aufklappbaren Bereich reicht oft das native <details> mit <summary>: Es ist ohne JavaScript bedienbar und meldet seinen Zustand selbst. Ein eigenes Akkordeon lohnt sich, wenn Sie Überschriften-Struktur und Gestaltung genau steuern wollen.

Verstecken Sie keine Pflichtinformationen wie Preise oder Fristen in geschlossenen Bereichen, die man leicht übersieht.

Rollen, Zustände, Eigenschaften

  • Jeder Kopf ist ein <button> innerhalb einer Überschrift (<h3> o. ä.). So bleibt die Seitenstruktur für Screenreader erhalten.
  • aria-expanded="true" oder "false" am Button meldet, ob der Bereich offen ist.
  • aria-controls verweist auf die ID des Inhaltsbereichs.
  • Geschlossene Bereiche sind mit hidden ausgeblendet, damit sie auch für Screenreader und die Tab-Reihenfolge verschwinden.
  • Optional: Bereich mit role="region" und aria-labelledby auf den Button, aber nur bei wenigen Bereichen (bis etwa sechs), sonst entstehen zu viele Landmarken.

Tastaturbedienung

TasteWirkung
TabSpringt zum nächsten Akkordeon-Kopf oder in den geöffneten Inhalt.
Enter / LeertasteÖffnet oder schließt den Bereich.

Code

HTML und JavaScript (gekürzt)
<h3>
  <button type="button" aria-expanded="false"
    aria-controls="faq-1" id="faq-1-btn">
    Wie lange dauert ein Audit?
  </button>
</h3>
<div id="faq-1" role="region"
  aria-labelledby="faq-1-btn" hidden>
  <p>In der Regel wenige Werktage.</p>
</div>

<script type="module">
for (const btn of document.querySelectorAll('[aria-controls]')) {
  btn.addEventListener('click', () => {
    const open = btn.getAttribute('aria-expanded') === 'true';
    btn.setAttribute('aria-expanded', String(!open));
    document.getElementById(
      btn.getAttribute('aria-controls')).hidden = open;
  });
}
</script>

Häufige Fehler

  • Klickbares <div> statt Button: nicht per Tastatur erreichbar, keine Rolle, kein Zustand.
  • Zustand nur über ein Plus- oder Pfeilsymbol angezeigt, ohne aria-expanded.
  • Inhalt nur mit height: 0 versteckt: Links darin bleiben in der Tab-Reihenfolge und werden vorgelesen.
  • Der ganze Kopf ist eine Überschrift ohne Button, oder der Button steht außerhalb der Überschrift: die Überschriftenliste wird lückenhaft.

Passende WCAG-Kriterien

Quellen

Sind Ihre Komponenten so gebaut?

Der kostenlose Check findet viele Fehler automatisch. Im Audit prüft ein Mensch jede Komponente mit Tastatur und Screenreader.

Kostenlos prüfenPrüfmethode ansehen