Inhalt
Struktur steckt im Element
Warum
Der Screenreader sagt „Tabelle, 5 Spalten" oder „Liste, 12 Einträge". Bei div-Gittern hört der Nutzer nur einzelne Wörter ohne Zusammenhang.
Sonst tabbt der Nutzer auf jeder Seite erst durch die ganze Navigation. Bei einer Navigation mit 20 Einträgen sind das 20 Tabs, auf jeder Seite neu.
Für das Design heißt das: Der Link „Zum Inhalt springen“ ist im Ruhezustand unsichtbar und erscheint erst beim ersten Tab. Er braucht deshalb nur ein Aussehen im Fokus-Zustand.
Hart und weich
Hart.
Woran Du den Verstoß erkennst
- Datentabelle aus
divmit Grid. - Tabelle ohne
thundscope. - Aufzählung als Folge von
div. - Radiogruppe ohne
fieldsetundlegend, oder ohnerole="radiogroup"und Namen. - Kein
main. - Alles in
div. - Der erste Tab landet im Menü.
Grenzen
Tabellen nur fürs Layout gibt es nicht. Dort gehört Grid hin, ohne Tabellenrolle.
Ansichten ohne wiederkehrende Navigation, etwa der Login.
Quelle
WCAG 1.3.1 Info and Relationships. Vercel AGENTS.md › Content & Accessibility („Prefer native semantics (button, a, label, table)"). WCAG 2.4.1 Bypass Blocks. Vercel › Content & Accessibility („‚Skip to content' link").