Poziom
A
Od wersji
WCAG 2.0
Pozycje
2 / 193
/ Kryterium WCAG

1.3.2 Zrozumiała kolejność

Jeśli kolejność treści wpływa na jej znaczenie, ta kolejność musi wynikać z kodu strony, a nie tylko z układu na ekranie.

/ Czego wymaga

Tam, gdzie kolejność treści ma znaczenie dla jej sensu, musi to być kolejność zapisana w kodzie. Czytnik ekranu, monitor brajlowski i przeglądarka tekstowa idą za dokumentem, a nie za ekranem. CSS potrafi pokazać trzeci blok jako pierwszy i osoba widząca niczego nie zauważy; osoba niewidoma usłyszy cenę przed nazwą produktu, krok trzeci przed pierwszym albo komunikat o błędzie długo po polu, którego ten komunikat dotyczy.

Kryterium działa tylko wtedy, gdy kolejność wpływa na znaczenie. Pasek nawigacji i artykuł mogą występować w dowolnej kolejności, a strona może mieć więcej niż jedną poprawną kolejność czytania, z których jedną musi dać się ustalić programowo. Błędem jest treść, która zmienia sens, gdy czyta się ją w kolejności dokumentu: przestawione kroki, kolumny zbudowane ze spacji, tabela układu, która po rozwinięciu w linię traci sens. Kolejność fokusu klawiatury to osobna sprawa, opisana w 2.4.3.

/ Jak strony go nie spełniają

  • Elementy flex lub grid są przestawione właściwością order, wartością row-reverse albo column-reverse, więc kolejność na ekranie różni się od kolejności w dokumencie.
  • Pozycjonowanie absolutne lub float umieszcza blok nad treścią, która poprzedza go w kodzie.
  • Kolumny albo tabele są udawane spacjami i znakami nowej linii w zwykłym tekście, który jest wtedy czytany w poprzek kolumn.
  • Tabela układu ma sens na ekranie, ale czytana komórka po komórce, wiersz po wierszu, daje złą kolejność.
  • Litery wyrazu są rozdzielone spacjami dla efektu wizualnego, więc wyraz jest odczytywany litera po literze.

/ Jak sprawdzić samodzielnie

  1. Wyłącz style (Firefox: Widok, Styl strony, Bez stylu) i przeczytaj stronę od góry do dołu. Treść nadal powinna mieć sens.
  2. Pozwól czytnikowi ekranu odczytać całą stronę bez zatrzymywania i śledź ją wzrokiem. Zanotuj każde miejsce, w którym głos przeskakuje.
  3. Zaznacz wszystko, skopiuj i wklej jako zwykły tekst do edytora. To jest kolejność dokumentu.
  4. W narzędziach deweloperskich przeglądarki wyszukaj w stylach order, row-reverse, column-reverse i position: absolute, a każde trafienie porównaj z kodem.
  5. Powtórz test w wąskim oknie, bo układy responsywne często zmieniają kolejność tylko w jednym punkcie przełamania.

/ Jak to naprawić

  • Napisz kod w kolejności, w jakiej treść ma być czytana, a dopiero potem układaj go za pomocą CSS, nie odwrotnie.
  • Usuń właściwość order i flex-direction: row-reverse tam, gdzie zmieniają znaczenie, i zamiast tego przestaw elementy w źródle.
  • Tekst wyrównany spacjami zastąp prawdziwym elementem table albo kolumnami CSS.
  • Do rozstrzelenia wyrazu używaj właściwości letter-spacing, nigdy spacji między literami.
  • Jeśli tabela układu musi zostać, zadbaj, by jej komórki czytane wiersz po wierszu miały sens, i nadaj jej role="presentation".

/ Co sprawdza nasz skaner

Skan na wyrenderowanej stronie bierze do 120 widocznych bloków wewnątrz elementów main, article i section, pomija wszystko, co jest przypięte (fixed lub sticky), i porównuje każdy blok z poprzednim w kodzie. Blok, który leży na ekranie wyraźnie wyżej w tej samej kolumnie, zostaje zgłoszony, najwyżej sześć na stronę. Pomiar dotyczy jednego widoku na komputerze i nie rozstrzyga, czy kolejność wpływa na znaczenie, więc każde zgłoszenie musi przeczytać człowiek.

/ Kto je łamie, według naszych pomiarów

Zmierzone podmioty łamiące to kryterium, najwięcej wystąpień na górze
PodmiotSektorWystąpieniaWynik
Bundesagentur für Arbeitgovernment · DE116
Bundeszentrale für politische Bildunggovernment · DE110

Jedna strona na podmiot, mierzona automatycznie w tygodniowym cyklu. Jeśli podmiot coś naprawił od ostatniego pomiaru, zmiana będzie widoczna przy następnym, a każdy podmiot może odpowiedzieć na swojej stronie.

/ Pytania o to kryterium

Czy właściwość CSS order szkodzi dostępności?

Może szkodzić. Właściwość order oraz wartości row-reverse i column-reverse zmieniają to, co widać, nie zmieniając dokumentu, a technologia wspomagająca idzie za dokumentem. Jeśli obie kolejności opowiadają to samo, nic się nie dzieje. Jeśli sens zależy od kolejności, jak przy numerowanych krokach albo etykiecie i jej wartości, takie przestawienie narusza 1.3.2 i zwykle dezorientuje też osoby korzystające z klawiatury.

Czym różni się 1.3.2 Zrozumiała kolejność od 2.4.3 Kolejność fokusu?

1.3.2 dotyczy kolejności, w jakiej treść jest czytana: tekstu, obrazów, nagłówków, wszystkiego. 2.4.3 dotyczy kolejności, w jakiej elementy interaktywne otrzymują fokus klawiatury. Strona może naruszać jedno kryterium i spełniać drugie. Oba mają zwykle tę samą przyczynę, czyli kod napisany w jednej kolejności i przestawiony przez CSS w inną, oraz to samo lekarstwo: źródło ułożone w kolejności czytania.

Czy kolejność w DOM musi dokładnie odpowiadać kolejności na ekranie?

Nie. Kryterium wymaga poprawnej kolejności czytania tylko tam, gdzie kolejność wpływa na znaczenie. Panel boczny może w kodzie stać przed tekstem głównym albo po nim, a dwie niezależne kolumny można czytać w dowolnej kolejności. Kłopot zaczyna się, gdy bloki zależne od siebie, na przykład nagłówek i jego akapit albo kolejne kroki instrukcji, zostają rozdzielone lub zamienione miejscami.