Kryterium, które za tym stoi
1.3.1 Informacje i relacje
Struktura, którą pokazujesz układem — nagłówki, listy, tabele, grupy — musi istnieć także w kodzie.
Poziom A · EN 301 549 § 9.1.3.1
Po co jest to sprawdzenie
Osoby korzystające z czytnika ekranu nawigują po nagłówkach i obszarach. Jeśli twoje nagłówki to ostylowane `div`-y, tej nawigacji nie ma, a strona staje się jednym długim akapitem.
Co zwykle je wywołuje
- błąd`<div class="h2">` zamiast `<h2>`.
- błądTabela układu bez `<th>` albo tabela danych bez komórek nagłówkowych.
- błądPowiązane przyciski radiowe bez `<fieldset>` z `<legend>`.
- błądWizualna lista zbudowana ze znaczników `<br>`.
Jak to naprawić
- róbUżyj elementu, który znaczy to, co masz na myśli, a potem go ostyluj. Najpierw semantyka, potem CSS.
- róbDaj tabelom danych `<th scope="col">` albo `scope="row"`.
- róbZgrupuj powiązane pola w `<fieldset>` i nazwij grupę w `<legend>`.
- róbDodaj obszary: `<main>`, `<nav>`, `<header>`, `<footer>`.
Jak to jest raportowane
A11ySignal zgłasza to z wagą poważny. Każdy błędny element ma swój selektor CSS i kod, który zawiódł, więc trafisz prosto do właściwej linii, zamiast jej szukać. Deque publikuje szczegóły na poziomie silnika:
https://dequeuniversity.com/rules/axe/4.13/th-has-data-cells ↗
Sprawdzenie zaimplementowane w axe-core 4.13.0, © Deque Systems, MPL-2.0.