| Version | bis 30.05.2007 | Aktuell |
|---|---|
| BITV-Bedingung | 5.2 |
| Bewertungsalternativen | ja / eher erfüllt / eher nicht erfüllt / nein / nicht anwendbar |
| Gewichtung | hohes Gewicht (3 Punkte) |
| Abwertung | auf "schlecht zugänglich" |
| Bezieht sich auf | einzelne Webseite |
| Prüfschritt erfüllt | In komplexen Datentabellen ist der Bezug von Überschriften und Inhalten (über scope oder über id und headers) definiert, Zuordnungen von Überschriften in einfachen Datentabellen sind korrekt. |
| Prüfschritt nicht anwendbar | Komplexe Datentabellen sind nicht vorhanden, in einfachen Datentabellen sind Überschriften nicht zugeordnet. |
In komplexen Datentabellen soll der Bezug von Überschriften und Inhalten (über scope oder über id und headers) definiert sein, ausdrückliche Zuordnungen von Überschriften und Inhalten in einfachen Datentabellen sollen korrekt sein.
Bei komplexen Tabellen können Screenreader aus dem Tabellengerüst allein nicht schließen, welche Bezüge es zwischen Daten- und Überschriftenzellen gibt. Deshalb müssen diese Verknüpfungen mithilfe der in HTML zur Verfügung stehenden Attribute ausdrücklich definiert werden.
In der Praxis sind manchmal auch einfache Datentabellen mit headers- und id-Attributen ausgezeichnet. Screenreader richten sich dann nicht nach allgemeinen Regeln, sondern nach der vorliegenden Auszeichnung. Deshalb muss die Auszeichnung auch dann richtig sein, wenn sie eigentlich nicht nötig wäre. Denn bei falscher direkter Zuordnung von Datenzellen werden die Überschriften nicht oder fehlerhaft ausgegeben.
Hinweis:
Für Benutzer von Screenreadern sind komplexe Tabellen schwerer zu erfassen als einfache, selbst bei perfekter Auszeichnung. Zu empfehlen ist also die Vermeidung von Tabellen mit mehreren logischen Ebenen. In vielen Fällen können komplexe Tabellen geteilt und durch mehrere einfache Tabellen ersetzt werden. Die beste Bewertung für diesen Prüfschritt ist deshalb immer "nicht anwendbar".
Der Prüfschritt ist anwendbar,
Einfache Datentabellen haben im Unterschied zu komplexen Datentabellen nur jeweils eine Zeile oder Spalte für Überschriften. Bei solchen Tabellen ist es eigentlich nicht erforderlich, die Zellen "ihren" Überschriften zuzuordnen.
scope-Attribut definiert ist oder die einzelnen Zellen mithilfe von headers- und id-Attributen korrekt ihren Überschriften zugeordnet sind.headers und id kann ergänzend die Firefox Accessibility Extension genutzt werden: in Firefox im Menü Accessibility die Option Navigation > Data Tables wählen. Anschließend im Fenster Data Tables die zu prüfende Tabelle auswählen und mit den Schaltflächen "Up", "Down", "Left" und "Right" durch die Tabelle navigieren.Hinweis:
Grundlage der Prüfung ist die vorangegangene Überprüfung des Aufbaus der Datentabelle und der Auszeichnung von Überschriften in Prüfschritt 5.1.1. Prüfschritt 5.2.1 beschränkt sich auf die Vollständigkeit und die formale Korrektheit der Zuordnung von Inhalten zu Überschriften.
Soweit Tabellen, die tabellarische Daten darstellen, zwei oder mehr Ebenen von Zeilen- und Spaltenüberschriften aufweisen, sind mittels der vorgesehenen Elemente der verwendeten Markup-Sprache Datenzellen und Überschriftenzellen einander zuzuordnen.
http://www.bik-online.info/info/gesetze/bitv/anlage_1.php#5-2
Wenn Datentabellen zwei oder mehr logische Ebenen von Zeilen- oder Spaltenüberschriften haben, verwenden Sie Markup, um Datenzellen und Überschriftenzellen einander zuzuordnen.
Verwenden Sie zum Beispiel in HTML THEAD, TFOOT und TBODY, um Zeilen zu gruppieren, COL und COLGROUP, um Spalten zu gruppieren, und die "axis"-, "scope"- und "headers"-Attribute, um komplexere Zusammenhänge zwischen Daten zu beschreiben.
http://www.w3c.de/Trans/WAI/webinhalt.html#tech-table-structure
(...) the average table of data with a row of headers across the top, and a column of headers down one side or the other (or sometimes the same
headers reproduced at either side, to make life easier) has only one logical level of headers.
Tables with two or more levels are those where the row of headers "closest to the content" itself has headers. A trivial example would be
months, which have season headers (...)
Quelle: http://lists.w3.org/Archives/Public/wai-wcag-editor/2000OctDec/0155.html
IDENTIFYING SIMPLE DATA TABLES
(...) As the most simple check, each cell should be in a row with only one row header in it, and in a column with only one column header it, and
both of those should be applicable headers to the cell. If this is not the case, then you don't have a simple table. For example: more than one row header, more than one column header, a column or row header which doesn't apply (see #3).
Quelle: http://access.idyllmtn.com/tables/
Decide how you are going to associate data cells with headers. There are three approaches: headers, scope, and axis. They are not incompatible with each other, so you can get pretty complex.
scope assumes that you can designate a header as
applying to "everything in this row" or "everything in this
column", or even "everything in this group of rows or
columns," where the row, column, colgroup, or rowgroup is the
one containing the header cell. This is how simple tables
work, but it may need to be spelled out for complex tables.
scope is an attribute set on the header cell, not on the
data cells. (...)
headers takes the opposite approach -- it assumes that
you may not be able to easily a header as applying to to
whole rows, columns, or groups thereof. You designate the
relationship on the data cells themselves, not on the header
cells. The header cells simply need an id attribute to be
set. More than one header can be applied to each cell; you
just give a list of header ids separated by spaces.
axis gets even stranger. axis lets you associate
together cells, groups cells associated by headers, and
groups of cells associated by scope. You set the axis
attribute on a cell, and that cell is part of the axis
defined by that value. If the cell has a scope attribute
set, the cells within that scope are part of the axis. If a
cell with an axis has an id, then any other cells which
list the id in their headers attributes are part of the
axis. In theory, this lets a browser "query" a table and
return information. In practice, I don't know of any browsers
which do that, and in general, if you are at this level of
complexity then you perhaps should offer your content in
alternate formats, or perhaps in multiple tables.