HTML 4.01 obsahuje poměrně dobrou podporu pro zpřístupnění stránek pro uživatele s různými postiženími. Atributy, které se nyní popíšeme, se hodí především v případech, kdy se tabulka předčítá pomocí hlasového syntetizátoru.
Při hlasové syntéze u delších tabulek je celkem rozumné před
každou buňkou zopakovat i kam v tabulce patří – nejlépe
zopakováním názvu sloupce nebo řádky, do které buňka patří. Protože
názvy buněk se záhlavím mohou být dlouhé, je možné pro potřeby hlasové
syntézy uvést zkrácený název buňky v atributu abbr
.
<th abbr="Obrat">Obrat z prodeje výrobků</th>
Protože určení toho, která buňka je záhlavím pro jinou buňku,
nemusí být vždy jednoznačné, můžeme tyto údaje zapsat přímo do HTML.
Pro poměrně pravidelné tabulky můžeme použít u libovolné buňky
sloužící jako záhlaví atribut scope
. Ten může nabývat jednu ze čtyř
následujících hodnot:
row
-
Aktuální buňka slouží jako záhlaví pro zbytek řádky tabulky.
col
-
Aktuální buňka slouží jako záhlaví pro zbytek sloupce.
rowgroup
-
Aktuální buňka slouží jako záhlaví pro zbytek skupiny řádek. (Skupiny řádek se vytváří pomocí elementů
thead
,tfoot
atbody
.) colgroup
-
Aktuální buňka slouží jako záhlaví pro zbytek skupiny sloupců.
<table border="1"> <caption>Spotřeba kávy jednotlivých senátorů</caption> <tr> <th scope="col">Jméno</th> <th abbr="Turek" scope="col">Počet šálků turka</th> <th abbr="Preso" scope="col">Počet šálků espresa</th> </tr> <tr> <td abbr="Novák" scope="row">Karel Novák</td> <td>5</td> <td>10</td> </tr> <tr> <td abbr="Procházka" scope="row">Jan Procházka</td> <td>1</td> <td>7</td> </tr> </table>
U složitějších tabulek, kdy nelze záhlaví určit tak jednoduše,
můžeme použít opačný postup. U každé buňky řekneme, jaké buňky se pro
ní chápou jako záhlaví. Buňky obsahující záhlaví musíme v tomto
případě označit jednoznačným identifikátorem pomocí atributu id
. U buňky pak v atributu headers
vypíšeme seznam mezerami
oddělených identifikátorů záhlaví.
<table border="1"> <caption>Spotřeba kávy jednotlivých senátorů</caption> <tr> <th id="c1">Jméno</th> <th id="c2" abbr="Turek">Počet šálků turka</th> <th id="c3" abbr="Preso">Počet šálků espresa</th> </tr> <tr> <td id="s1" abbr="Novák" headers="c1">Karel Novák</td> <td headers="c2 s1">5</td> <td headers="c3 s1">10</td> </tr> <tr> <td id="s2" abbr="Procházka" headers="c1">Jan Procházka</td> <td headers="c2 s2">1</td> <td headers="c3 s2">7</td> </tr> </table>
U buňky ještě můžeme pomocí atributu axis
určit do jakých kategorií buňka
patří. Můžeme si tak pojmenovat jednotlivé údaje v tabulce.
<table> <tr> <th></th> <th scope="col">Obrat A</th> <th scope="col">Obrat B</th> </tr> <tr> <td axis="datum" scope="row">1994</td> <td>12,6 mil.</td> <td>3,6 mil.</td> </tr> <tr> <td axis="datum" scope="row">1995</td> <td>11,7 mil.</td> <td>5,9 mil.</td> </tr> <tr> <td axis="datum" scope="row">1996</td> <td>8,3 mil.</td> <td>9,7 mil.</td> </tr> </table>