DataGrid: Accessibility
Zurück: Demo-Übersicht
1. Übersicht und Zweck
Status: Konsolidierungsseite — jede hier gelistete ARIA-/Tastatur- Eigenschaft ist bereits auf ihrer fachlichen Unterseite dokumentiert (Single-Source-Prinzip: diese Seite verlinkt, sie wiederholt nicht).
Jede Kategorie (Sorting, Selection, Massenaktionen …) dokumentiert ihre ARIA-Attribute und Tastatur-Interaktionen an der Stelle, an der der jeweilige Vertrag steht. Für eine Screenreader-/Tastatur-Abnahme braucht man aber den Gesamtüberblick über ein Grid hinweg — genau den liefert diese Seite.
2. Voraussetzungen
Keine — reine Konsolidierung bestehender Verträge.
3. Konzepte
Zwei Ebenen: statische ARIA-Semantik (immer vorhanden, z. B.
scope="col") und zustandsabhängige ARIA-Semantik (abhängig von
aktivem Auswahlmodell/Sortierung, z. B. aria-sort).
4. Erste Schritte
Entfällt — diese Seite ist ein Referenz-Überblick, keine ausführbare Anleitung.
5. Verwendung
Für eine vollständige Barrierefreiheits-Abnahme eines konkreten Grids:
Tabelle in Abschnitt 6 gegen die tatsächlich gesetzten $opts abgleichen,
dann Abschnitt 7 (Tastatur) gegen das aktive Auswahlmodell.
6. API-Referenz: ARIA-Attribute im Überblick
| Attribut | Wann gesetzt | Dokumentiert in |
|---|---|---|
role=„grid“ | Am <table>, sobald ein Auswahlmodell aktiv ist | Grundlagen → Erzeugtes Markup |
aria-multiselectable=„true“ | Bei selection => 'multi' | Selection → Mehrfachauswahl |
aria-label (am Table) | Aus $opts['ariaLabel'], wenn gesetzt | Grundlagen → $opts |
aria-sort (am <th>) | Auf der aktuell sortierten, sortierbaren Spalte | Sorting → Clientseitig |
aria-selected (an <tr>) | Sobald ein Auswahlmodell aktiv ist, folgt der Auswahl | Selection → Mehrfachauswahl |
aria-label an Checkbox-Zellen | Kopf-Checkbox und jede Zeilen-Checkbox einzeln beschriftet | Selection → Mehrfachauswahl |
role=„toolbar“ + aria-label | Auswahl-Toolbar (.wk-datagrid__bulkbar) | Massenaktionen → bulkActions |
scope="col" (an jedem <th>) | immer — explizite Spaltenkopf-Semantik für Screenreader | helper/widgets.php |
aria-live="polite" am Bulkbar-Zähler | immer, sobald die Bulkbar rendert — Auswahländerungen werden Screenreader-Nutzern automatisch angesagt | helper/widgets.php (.wk-datagrid__bulkcount) |
7. Parameter, Optionen und Zustände: Tastatur-Interaktionsmodell
| Taste | Wirkung | Voraussetzung |
|---|---|---|
| Pfeiltasten | Bewegt die aktive Zeile (Roving-Tabindex) | jedes Auswahlmodell |
| Leertaste | Togglet die Auswahl der aktiven Zeile | selection => 'multi' |
| Shift+Pfeil | Erweitert den Auswahlbereich | selection => 'multi' |
| Strg+A | Wählt alle sichtbaren Zeilen | selection => 'multi' |
| Strg+C | Kopiert die gewählten Zeilen (zeilenweise, \n-getrennt; ohne Auswahl die aktive Zeile) | selection => 'single' oder 'multi' |
| Klick auf Spaltenkopf-Button | Sortiert clientseitig | sortable !== false, kein sortUrl |
8. Vollständige Beispiele
Details, Maus-Äquivalente und Randfälle stehen ausschließlich auf den jeweiligen Feature-Seiten (Spalte „Dokumentiert in„ in Abschnitt 6 verweist dorthin).
9. Einschränkungen und Randfälle
Keine über die auf den Feature-Seiten dokumentierten hinaus.
10. Accessibility und Kompatibilität
[Live] aria-live-Ansage bei Auswahländerung: Der Bulkbar-Zähler
.wk-datagrid__bulkcount trägt aria-live="polite"
(Quelle: helper/widgets.php) — höflich genug, um laufende
Tastatureingaben nicht zu unterbrechen, aber verlässlich genug, dass
Screenreader-Nutzer jede Auswahländerung automatisch vorgelesen bekommen.
11. Troubleshooting
Symptom: Screenreader kündigt Auswahländerungen nicht an.
Ursache: eine ältere Plugin-Version ohne dieses Attribut, oder ein
Custom-Markup, das nicht über dataGrid() selbst gerendert wurde.
Lösung: Plugin-Version prüfen; bei Custom-Markup
aria-live="polite" manuell am Zähler-Element ergänzen.
12. Verwandte Themen
- Demo-Übersicht — alle Kategorien
- DataGrid: Selection — vollständiges Auswahl-Interaktionsmodell
- DataGrid: Sorting — vollständiges Sortier-Interaktionsmodell