aria-selected in Registerkarten

Die gewählte Registerkarte wird genannt

Wert, Beschriftung, Tableiste, Umschalter: vier Stellen an einem Register.

Website prüfen
Beispiel im Prüfbericht Markierter Befund
Markierter Befund · Kritisch · WCAG 4.1.2aria-expanded="maybe" ist ungültig

Zustand statt Stil

Auswahl und Fokus laufen auf zwei Spuren

aria-selected sagt, welcher Inhalt gilt. Der Fokus sagt, wo die Tastatur gerade arbeitet. Ein gutes Register hält beides sichtbar und synchron.

Schema: ProduktregisterDrei Tastendrücke, zwei getrennte Zustände
Tab

Fokus steigt ein

Die bereits gewählte Registerkarte ist der einzige Einstieg in die Leiste.

Technische DatenMaße · Gewicht · Anschluss
Auswahl
Daten · true
Fokus
Daten · tabindex="0"
Bereich
Technische Daten sichtbar

Fokus und Auswahl wechseln

Bei vorbereiteten Inhalten darf die Auswahl dem Pfeiltastenfokus folgen.

LieferungVersandarten · Fristen
Auswahl
Lieferung · true
Fokus
Lieferung · tabindex="0"
Bereich
Lieferung sichtbar
Tab

Fokus geht, Auswahl bleibt

Außerhalb der Leiste bleibt klar, welcher Bereich geöffnet ist.

LieferungVersandarten · Fristen
Auswahl
Lieferung · bleibt true
Fokus
im geöffneten Bereich
Bereich
Lieferung sichtbar
ausgewähltTastaturfokus

Die Synchronisation

Vier Werte wechseln als ein Vorgang

Ändern Sie nie nur die sichtbare Farbe. Registerkarte, Tabreihenfolge, Bereich und Beschriftung müssen dieselbe Auswahl ausdrücken.

Registerkartearia-selected="true"
Tabreihenfolgetabindex="0"
Zugeordneter Bereichhidden = false
Andere Bereichehidden = true

Nicht jeder aktive Zustand ist eine Auswahl

Das Attribut folgt der Frage

Welcher Eintrag ist gewählt?Register, Option, Zeile
aria-selected
Wo befinde ich mich?Navigation, Schritt, Datum
aria-current
Ist der Umschalter gedrückt?Ein- und ausschaltbarer Knopf
aria-pressed
Ist die Option angekreuzt?Kästchen oder Prüfoption
aria-checked

Vollständiges Grundmuster

Ein Register, das seinen Zustand wirklich wechselt

Die Darstellung ist statisch, der Code ist kopierbar. Bei langsam nachladenden Bereichen lassen Sie den Fokus mit den Pfeiltasten wandern und wählen erst mit Enter oder Leertaste.

<div role="tablist" aria-label="Produkt">
  <button id="tab-daten" type="button" role="tab"
    aria-selected="true" aria-controls="daten">
    Daten
  </button>
  <button id="tab-lieferung" type="button" role="tab"
    aria-selected="false" aria-controls="lieferung"
    tabindex="-1">
    Lieferung
  </button>
</div>

<div id="daten" role="tabpanel" tabindex="0"
  aria-labelledby="tab-daten">
  Maße, Gewicht, Anschlusswerte.
</div>
<div id="lieferung" role="tabpanel" tabindex="0"
  aria-labelledby="tab-lieferung" hidden>
  Versandarten und Fristen.
</div>
const tabs = [...document.querySelectorAll(
  '[role="tab"]'
)];

function select(tab) {
  for (const item of tabs) {
    const active = item === tab;
    item.setAttribute('aria-selected', String(active));
    item.tabIndex = active ? 0 : -1;
    document.getElementById(
      item.getAttribute('aria-controls')
    ).hidden = !active;
  }
  tab.focus();
}

tabs.forEach((tab, index) => {
  tab.addEventListener('click', () => select(tab));
  tab.addEventListener('keydown', event => {
    if (!['ArrowLeft', 'ArrowRight'].includes(event.key))
      return;
    event.preventDefault();
    const step = event.key === 'ArrowRight' ? 1 : -1;
    const next = (index + step + tabs.length) % tabs.length;
    select(tabs[next]);
  });
});

So prüfen Sie es

Beobachten Sie Zustand, Fokus und Inhalt gemeinsam

  1. Gehen Sie mit Tab in die Leiste. Der Fokus muss auf der gewählten Registerkarte landen.
  2. Drücken Sie Pfeil rechts. Name, sichtbarer Bereich und aria-selected="true" müssen gemeinsam wechseln.
  3. Drücken Sie erneut Tab. Der Fokus verlässt die Leiste; die Auswahl bleibt bestehen.

Aus dem Prüfbericht

Vier Stellen, vier Befunde

Kritisch Die Karte liegt außerhalb der Tableiste Regel aria-required-parent

role="tab" muss in role="tablist" enthalten oder von ihr referenziert sein. Ein neutrales Zwischenelement hebt die Beziehung nicht automatisch auf.

Anleitung: ARIA-Elemente richtig einordnen

Zum Mitnehmen

Das Register, korrigiert

Ein gültiger Wert, ein Name je Karte, eine klare Zuordnung.

Korrektur in 3 Schritten ansehen
  1. Genau eine Karte auf true setzen

    Nur true und false sind gültig. Die gewählte Karte trägt true, jede andere false, damit die Auswahl eindeutig bleibt.

    KorrekturvergleichSchritt 1 · HTML

    Vorher

    <div role="tablist" aria-label="Produkt">
      <button role="tab" aria-selected="aktiv">Technische Daten</button>
      <button role="tab">Lieferung</button>
    </div>

    Nachher

    <div role="tablist" aria-label="Produkt">
      <button role="tab" aria-selected="true">Technische Daten</button>
      <button role="tab" aria-selected="false">Lieferung</button>
    </div>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Ein Vorleseprogramm nennt bei der offenen Karte „ausgewählt“. Bei den anderen nicht.

  2. Jeder Registerkarte einen Text geben

    Ein Symbol allein benennt die Karte nicht. Der Titel des zugehörigen Bereichs steht als Text in der Karte.

    KorrekturvergleichSchritt 2 · HTML

    Vorher

    <button role="tab" aria-selected="false">
      <svg aria-hidden="true"><use href="#lkw"></use></svg>
    </button>

    Nachher

    <button role="tab" aria-selected="false">
      <svg aria-hidden="true"><use href="#lkw"></use></svg>
      Lieferung
    </button>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Tabben Sie in die Registerleiste. Jede Karte wird mit ihrem Namen angesagt.

  3. Die Karten in die Tableiste legen

    role="tab" muss in role="tablist" enthalten oder von ihr referenziert sein. Ein Tab außerhalb dieser Beziehung verliert seinen erforderlichen Kontext.

    KorrekturvergleichSchritt 3 · HTML

    Vorher

    <div role="tablist" aria-label="Produkt"></div>
    <button role="tab" aria-selected="true">Technische Daten</button>

    Nachher

    <div role="tablist" aria-label="Produkt">
      <button role="tab" aria-selected="true">Technische Daten</button>
    </div>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Ein Vorleseprogramm nennt bei der Karte ihre Position in der Registerleiste.

Werbung

Kostenloser Website-Barrierefreiheits-Check

Website auf Barrierefreiheit prüfen.

Technische WCAG-Warnsignale erkennen. Kritische Stellen zuerst prüfen.

Der Website-Check ist bereit.

Werbung

Ein letzter Schritt

Prüfen, bevor Sie gehen.

Finden Sie automatisch erkennbare Barrieren auf Ihrer eigenen Website.

Website prüfen

Kostenlos starten · keine Installation

Automatisches Screening. Tastaturbedienung und Screenreader bleiben manuelle Prüfung.