Identyfikatory nagłówków tabeli
Silktide sprawdza tabele, które łączą swoje komórki z nagłówkami za pomocą atrybutu headers. W tych tabelach każda komórka nagłówkowa musi mieć własny identyfikator, w przeciwnym razie powiązania nie będą działać.
W złożonych tabelach — na przykład takich z dwoma poziomami nagłówków lub z komórkami obejmującymi kilka wierszy — relacji między komórką a jej nagłówkami nie można określić wyłącznie na podstawie położenia. rozwiązuje ten problem za pomocą atrybutu headers: każda komórka danych zawiera wartości id komórek nagłówkowych, które jej dotyczą. Działa to tylko wtedy, gdy każda komórka nagłówkowa rzeczywiście ma atrybut id.
<!-- Problem: drugi nagłówek nie ma identyfikatora, więc komórki nie mogą się do niego odwoływać -->
<table>
<tr>
<th id="name">Name</th>
<th>Score</th>
</tr>
<tr>
<td headers="name">Ada</td>
<td>98</td>
</tr>
</table>
Dlaczego to jest ważne
Gdy tabela używa powiązań headers, odczytuje powiązane nagłówki przed każdą wartością, umożliwiając słuchaczowi śledzenie miejsca w złożonej tabeli. Do komórki nagłówkowej bez atrybutu id nie można się odwołać, więc komórki pod nią są odczytywane bez kontekstu, a tabela staje się zgadywanką dla osób, które jej nie widzą.
Jak to naprawić
- Nadaj każdej komórce nagłówkowej
<th>w tabeli unikalny atrybutid. - Zaktualizuj atrybut
headerskażdej komórki danych, aby zawierał identyfikatory wszystkich nagłówków, które jej dotyczą, rozdzielone spacjami:
<!-- Naprawione: każdy nagłówek ma identyfikator, a komórki się do nich odwołują -->
<table>
<tr>
<th id="name">Name</th>
<th id="score">Score</th>
</tr>
<tr>
<td headers="name">Ada</td>
<td headers="score">98</td>
</tr>
</table>
- Możesz też rozważyć uproszczenie tabeli. Proste tabele z jednym wierszem lub jedną kolumną nagłówków w ogóle nie potrzebują powiązań
headers— wystarczą komórki<th>z atrybutamiscope, które są znacznie łatwiejsze w utrzymaniu.
Jak Silktide to testuje
- Znajduje każdą tabelę na każdej stronie.
- Pomija tabele, w których żadna komórka nie używa atrybutu
headers— ta kontrola dotyczy tylko tabel korzystających z jawnych powiązań nagłówków. - W pozostałych tabelach zgłasza każdą komórkę nagłówkową
<th>, która nie ma atrybutuid.