Przestarzały atrybut scope
Silktide sprawdza atrybuty scope umieszczone w zwykłych komórkach danych tabeli. Atrybut
scope opisuje, czego dotyczy nagłówek, więc należy go stosować wyłącznie w komórkach
nagłówkowych; w komórce danych jest przestarzały i może wprowadzać technologie wspomagające
w błąd.
W atrybut scope jest zdefiniowany dla komórek
nagłówkowych <th>. Umieszczenie go w komórce danych <td> zwykle oznacza jedną z dwóch rzeczy:
komórka jest w rzeczywistości nagłówkiem i powinna być elementem <th> albo atrybut pozostał
po starym znaczniku i należy go usunąć.
<!-- Problem: scope w komórce danych -->
<td scope="col">Nazwa</td>
Dlaczego to jest ważne
tworzy obraz tabeli na podstawie
znaczników. Atrybut scope w komórce danych jest sprzecznym
sygnałem: element mówi „Jestem daną”, a atrybut „Opisuję inne
komórki”. Różne rozwiązują tę sprzeczność
w różny sposób — niektóre ignorują atrybut, inne traktują komórkę jako nagłówek —
dlatego tabela może być odczytywana z nieprawidłowymi lub niespójnymi nagłówkami, zależnie
od oprogramowania używanego przez odwiedzającego.
Jak to naprawić
Określ, czym naprawdę jest komórka:
- Jeśli pełni funkcję nagłówka, zmień ją na
<th>i zachowaj prawidłową wartośćscope(row,col,rowgrouplubcolgroup):
<!-- Naprawiono: nagłówek jest prawdziwą komórką nagłówkową -->
<th scope="col">Nazwa</th>
- Jeśli jest zwykłą daną, całkowicie usuń atrybut
scope:
<!-- Naprawiono: zwykła komórka danych -->
<td>Nazwa</td>
Jak Silktide to testuje
- Znajduje każdą komórkę tabeli na każdej stronie.
- Zgłasza każdą komórkę danych
<td>, która ma atrybutscope, niezależnie od jego wartości.