Przejdź do treści
SilktidePomoc

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ć

  1. Nadaj każdej komórce nagłówkowej <th> w tabeli unikalny atrybut id.
  2. Zaktualizuj atrybut headers każ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>
  1. 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 atrybutami scope, które są znacznie łatwiejsze w utrzymaniu.

Jak Silktide to testuje

  1. Znajduje każdą tabelę na każdej stronie.
  2. 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.
  3. W pozostałych tabelach zgłasza każdą komórkę nagłówkową <th>, która nie ma atrybutu id.

Dowiedz się więcej

Ostatnio zaktualizowano

Czy ta strona była pomocna?