Tabelkoppen
Silktide controleert of tabellen waarin gegevens worden weergegeven, kopcellen definiëren. Koppen vertellen mensen die gebruiken wat elke rij en kolom betekent; ziende lezers leiden dit af uit de indeling van de tabel.
Denk bijvoorbeeld aan een tabel met achternamen en steden. Zonder koprij kan een waarde als "Washington" van alles betekenen: de betekenis wordt pas duidelijk wanneer de kolommen zijn gelabeld.
<!-- Probleem: koppen zijn gewone cellen en hebben dus geen betekenis -->
<table>
<tr>
<td>Achternaam</td>
<td>Stad</td>
</tr>
<tr>
<td>Washington</td>
<td>Londen</td>
</tr>
</table>
Waarom dit belangrijk is
Een gaat cel voor cel door een tabel. Wanneer koppen zijn gedefinieerd, kan de schermlezer de relevante kop bij elke waarde noemen, zodat "Londen" wordt voorgelezen als "Stad: Londen". Zonder koppen hoort de luisteraar een kale stroom waarden en moet die de indeling van de tabel onthouden om er betekenis aan te geven. Bij grotere tabellen is dat praktisch onmogelijk.
De bovenste rij vet maken of een andere kleur geven is niet genoeg. Visuele opmaak heeft geen betekenis voor hulptechnologie; alleen de onderliggende heeft die betekenis.
Hoe je dit oplost
- Wijzig elke kopcel van
<td>in<th>en voeg een kenmerkscopetoe dat aangeeft of de cel een kolom of een rij aanduidt:
<!-- Opgelost: koppen zijn echte kopcellen -->
<table>
<tr>
<th scope="col">Achternaam</th>
<th scope="col">Stad</th>
</tr>
<tr>
<td>Washington</td>
<td>Londen</td>
</tr>
</table>
- Als de tabel helemaal geen gegevens weergeeft en alleen wordt gebruikt om de pagina visueel in te delen, voeg dan
role="presentation"toe aan het element<table>, zodat hulptechnologie de structuur negeert. Nog beter is het om opmaaktabellen te vervangen door CSS: deze worden sterk afgeraden in modern webdesign.
Hoe Silktide dit controleert
- Zoek elke tabel op elke pagina.
- Sla tabellen over die met
role="presentation"als presentatief zijn gemarkeerd. - Sla tabellen over met slechts één rij of één kolom, omdat dit waarschijnlijk geen gegevenstabellen zijn.
- Rapporteer elke overgebleven tabel die helemaal geen
<th>-kopcel bevat.
Problemen oplossen
Mijn tabel heeft koppen, maar het zijn opgemaakte <td>-cellen
Cellen die er alleen uitzien als koppen tellen niet mee. Hulptechnologie kan lettertypen of kleuren niet zien; zet de cellen om naar <th>.
Mijn opmaaktabel wordt gemarkeerd
Silktide slaat alleen opmaaktabellen over die role="presentation" aangeven. Als een tabel echt alleen voor presentatie wordt gebruikt, voeg je dat kenmerk toe of vervang je de tabel door een CSS-indeling.