Was in einer Tabelle steckt 
veröffentlicht in
Elemente für Datentabellen
In Tabellen werden die Struktur und die Beziehungen zwischen Tabellenzellen durch die visuelle Darstellung vermittelt. Kopfzellen sind oft fett und zentriert formatiert und werden meist oben oder links in der Tabelle angeordnet. Am Bildschirm reicht ein kurzer Blick nach oben oder nach links, um die Beschriftung einer Datenzelle zu erkennen. Solche visuellen Strukturen und Beziehungen müssen nach Erfolgskriterium 1.3.1 der Web Content Accessibility Guidelines (WCAG) 2.2 durch Software wie Assistenztechnologien bestimmt werden können.
Kopfzellen und Datenzellen
Damit Tabellen auch mit Screenreadern genutzt werden können, muss zunächst zwischen Kopfzellen und Datenzellen unterschieden werden. Die Anforderungen an Tabellen gehen aber darüber hinaus und können auch die explizite Verknüpfung von Datenzellen mit ihren Kopfzellen durch spezielle Attribute umfassen.
Nach dem HTML-Standard ist für Kopfzellen das th-Element vorgesehen. Für Datenzellen einer Tabelle ist das td-Element einzusetzen. Das einfachste mögliche Beispiel für eine Datentabelle sieht wie folgt aus:
<table>
<tr>
<th> … </th>
<th> … </th>
</tr>
<tr>
<td> … </td>
<td> … </td>
</tr>
</table>
Bei sehr einfachen Tabellen (wie im vorherigen Beispiel) werden Browser die korrekten Rollen für die einzelnen Zellen im Accessibility-Tree ablegen. Je komplexer die Beziehungen zwischen Kopfzellen und Datenzellen werden, desto schwieriger ist es, sich auf Browser oder Assistenztechnologien zu verlassen, die korrekten Beziehungen abzubilden. In der Praxis kann immer wieder festgestellt werden, dass Tabellen in Screenreadern fehlerhaft aufgebaut sind. HTML bietet für solche Situationen die headers- und scope-Attribute, damit Autoren die Beziehungen zwischen Zellen explizit angeben können. Wenn Kopfzellen und Datenzellen mit Attributen verknüpft werden müssen, handelt es sich um komplexe Tabellen.
Die Unterscheidung zwischen Kopfzellen und Datenzellen muss nicht nur für Datentabellen, also Inhalte, die in zwei Dimensionen strukturiert werden, vorgenommen werden. Oft werden interaktive Tabellen (Grids) eingesetzt, die beispielsweise eine Sortierbarkeit oder Bearbeitung durch Nutzende erlauben. Auch für diese Inhaltsformen gelten die gleichen Grundregeln für die Struktur und die Beziehungen zwischen Zellen.
Übersicht der Tabellenelemente
Für den Aufbau einer Tabelle mit HTML benötigen Sie folgende Elemente:
table-Element: alle weiteren Elemente einer Tabelle (insbesondere Reihen und Zellen) sind in diesem Element enthalten.tr-Element: die "table row" enthält die Zellen einer einzelnen Tabellenreihe. Tabellen werden grundsätzlich reihenweise aufgebaut.td-Element: "table data" dient der Erfassung einzelner Daten in einer Tabelle (Datenzelle).th-Element: "table header" dient der Auszeichnung von Reihen- oder Spaltenüberschriften (Kopfzelle).
Folgende Elemente werden ebenfalls für Tabellen benötigt, aber ihr Einsatz ist optional:
caption-Element: Mit diesem Element erhält eine Tabelle eine Beschriftung.thead-,tbody- undtfoot-Elemente: Diese Elemente dienen der Gruppierung einzelner Tabellenreihen zu einem Tabellenkopf, einem oder mehreren Tabellenkörpern, beziehungsweise einer Spaltenzusammenfassung. Sie helfen, Stileigenschaften den Zellen reihenweise zuzuordnen.colgroup- undcol-Elemente: Diese Elemente helfen, Stileigenschaften den Zellen spaltenweise zuzuordnen.
Reihenfolge der Tabellenelemente
Innerhalb eines table-Elements dürfen die Elemente nur in folgender Reihenfolge vorkommen:
- ein optionales
caption-Element - null oder mehr optionale
colgroup-Elemente - ein optionales
thead-Element, wobei einthead-Elementtr-Elemente enthält - eines der folgenden:
- null oder mehr
tbody-Elemente, wobeitbody-Elementetr-Elemente enthalten, oder - ein oder mehrere
tr-Elemente
- null oder mehr
- ein optionales
tfoot-Element, wobei eintfoot-Elementtr-Elemente enthält
Rollen für das table-Element
Ein table-Element erhält die Rolle "table" und ist für tabellarische Container vorgesehen, die nicht interaktiv sind. Wenn die Tabelle Auswahlmöglichkeiten bietet, eine eigene zweidimensionale Navigation bereitstellt oder es Nutzenden ermöglicht, den Inhalt oder dessen Anordnung zu verändern, müssen Autoren die Rolle "grid" oder "treegrid" dem table-Element zuweisen (zum Beispiel <table role="grid"> … </table>).
Sollte ein table-Element zu Layoutzwecken eingesetzt und nicht für tabellarische Daten genutzt werden, kann die Rolle "table" auch entfernt werden. Siehe dazu Layout-Tabellen sind wie Briefe in Excel.
Der Beitrag Was in einer Tabelle steckt besteht aus folgenden einzelnen Webseiten:
- Elemente für Datentabellen
Tabellen bestehen aus einem
table-Element sowietr-,th- undtd-Elementen. Diecaption-,thead-,tbody-,tfoot-,colgroup- undcol-Elemente können im Bedarfsfall eingesetzt werden.- Die
th- undtd-Elemente In einfachen Tabellen stehen
th-Elemente (Kopfzellen) in der ersten Reihe und/oder in der ersten Spalte. Browser weisen dann den Kopfzellen die korrekten Rollen zu.- Das
caption-Element Datentabellen können mit einem
caption-Element eine Beschriftung erhalten.- Die Gruppierung von Spalten oder Reihen
In Datentabellen können Reihen mit den
thead-,tbody- undtfoot-Elementen gruppiert werden. Spalten können mit dencolgroup-Element ebenfalls gruppiert werden.- Komplexe Beziehungen in Datentabellen
Eine Tabelle ist erst dann barrierefrei, wenn jede Datenzelle ihre Kopfzellen kennt. Fehlen diese Beziehungen, sind Datenzellen ohne Bedeutung.
- Vereinfachung von komplexen Tabellen
Komplexe Tabellen sollten vermieden werden. Wenn sich eine komplexe Tabelle als einfache Tabelle darstellen lässt, dann sollte die Tabelle vereinfacht werden.
- Techniken für Tabellenbeschreibungen
Der grundlegende Aufbau der Zellen in einer komplexen Tabelle muss nach dem HTML-Standard beschrieben werden. Sie können dafür verschiedene Techniken einsetzen.
- Das
headers-Attribut Mit dem
headers-Attribut kann eine Datenzelle oder eine Kopfzelle mit einer oder mehreren Kopfzellen verknüpft werden.- Das
scope-Attribut Das
scope-Attribut dient dazu, Kopfzellen einer oder mehreren Spalten beziehungsweise einer oder mehreren Reihen in einer komplexen Tabelle zuzuweisen.- Tabellen benötigen einen Namen
Nach der ARIA-Spezifikation benötigen Tabellen einen Namen. HTML bietet dafür insbesondere das
caption-Element.- Layout-Tabellen sind wie Briefe in Excel
Verzichten Sie auf die antiquierte Technik der Layout-Tabelle und setzen Sie Webstandards ein!
Die folgenden Begriffe dieser Seite werden auch im Glossar definiert:
Blättern zur nächsten oder vorherigen Seite
- Die
th- undtd-Elemente In einfachen Tabellen stehenth-Elemente (Kopfzellen) in der ersten Reihe und/oder in der ersten Spalte. Browser weisen dann den Kopfzellen die korrekten Rollen zu. - Was in einer Tabelle stecktÜbersicht der Anforderungen an barrierefreie Datentabellen.