Kryteria sukcesu WCAG · Level A
WCAG 1.3.2: Znacząca sekwencja
WCAG 1.3.2 wymaga, aby w sytuacji, gdy kolejność treści wpływa na jej znaczenie, ta sekwencja była możliwa do ustalenia programowo, tak aby technologie asystujące mogły ją poprawnie zaprezentować. Niespełnienie tego kryterium powoduje, że użytkownicy czytników ekranu i innych technologii asystujących otrzymują treści w mylącej lub pozbawionej sensu kolejności.
Co oznacza ta zasada
Kryterium sukcesu WCAG 1.3.2 — Znacząca kolejność (poziom A) stanowi: „Jeśli kolejność, w jakiej treść jest prezentowana, wpływa na jej znaczenie, poprawna kolejność odczytu może być określona programowo.” Mówiąc prościej: jeśli wizualna kolejność treści na stronie niesie znaczenie — kroki procesu, wątek rozmowy, etykieta formularza sparowana z polem, lista numerowana — to kolejność w DOM musi odzwierciedlać tę samą sekwencję, aby technologie asystujące mogły ją poprawnie udostępnić.
Kluczowe jest sformułowanie „jeśli kolejność wpływa na jej znaczenie”. Nie każda decyzja dotycząca kolejności na stronie jest objęta tym kryterium. Dekoracyjne listy niepowiązanych ze sobą logotypów, na przykład, nie niosą znaczenia sekwencyjnego. Ale każda treść, w której zmiana kolejności zmieniłaby to, co użytkownik rozumie — lista składników przepisu, po której następują instrukcje, tabela cen powiązanych z produktami, wieloetapowy proces zakupu — absolutnie musi mieć kolejność w DOM zgodną z znaczącą kolejnością wizualną.
Co jest uznawane za spełnienie: kolejność źródłowa w DOM odpowiada logicznej kolejności odczytu LUB transformacja (taka jak CSS zmieniający wizualną prezentację) nadal pozwala technologiom asystującym poprawnie określić programową kolejność odczytu. Czytniki ekranu, które odczytują bezpośrednio DOM, muszą nadal napotykać treść we właściwej, znaczącej kolejności, nawet gdy pozycjonowanie wizualne CSS różni się od kolejności w DOM.
Co jest uznawane za niespełnienie: używanie technik CSS — position: absolute, właściwości order w CSS Grid, właściwości order w CSS Flexbox lub układu wielokolumnowego CSS — do wizualnego zmieniania kolejności treści w taki sposób, że wizualna sekwencja niesie znaczenie, którego kolejność w DOM nie odzwierciedla. Klasycznym przykładem jest panel boczny umieszczony przed treścią główną w DOM, ale wizualnie renderowany po niej, gdzie panel boczny zawiera uwagi kontekstowe, które mają sens dopiero po przeczytaniu tekstu głównego.
Specyfikacja WCAG wyraźnie wskazuje wyjątek: gdy sekwencja nie jest znacząca, nie musi być możliwa do określenia programowo. Dodatkowo kryterium koncentruje się na tym, aby poprawna kolejność odczytu była możliwa do określenia, a nie na tym, by kolejność wizualna i DOM zawsze były identyczne — CSS może zmieniać kolejność wizualnie, o ile sekwencja udostępniana przez technologie asystujące pozostaje znacząca. W praktyce jednak samo CSS-owe zmienianie kolejności bardzo często psuje sekwencję dla technologii asystujących i powinno być stosowane z dużą ostrożnością.
Dlaczego to ma znaczenie
Najbardziej bezpośrednio dotyczy to użytkowników czytników ekranu. Około 7,5 miliona osób w Stanach Zjednoczonych korzysta z oprogramowania czytającego z ekranu, a globalnie Światowa Organizacja Zdrowia szacuje, że 2,2 miliarda osób ma jakąś formę zaburzenia widzenia. Dla niewidomego użytkownika nawigującego po stronie za pomocą NVDA, JAWS lub VoiceOver, doświadczenie czytania jest całkowicie determinowane przez sekwencję programową — konkretnie przez kolejność w DOM. Jeśli deweloper użyje właściwości CSS order w układzie Flexbox, aby przenieść komunikat ostrzegawczy wizualnie nad formularz, ale DOM umieszcza to ostrzeżenie po polach formularza, użytkownik czytnika ekranu wypełni formularz, zanim w ogóle usłyszy ostrzeżenie. Nie jest to drobna niedogodność; może to prowadzić do błędów, nieudanych transakcji i wykluczenia z kluczowych usług.
Użytkownicy z niepełnosprawnościami poznawczymi również znacząco korzystają ze znaczącej kolejności. Osoby z dysleksją, zaburzeniami uwagi lub różnicami w przetwarzaniu informacji często polegają na logicznym, przewidywalnym przepływie treści. Gdy hierarchia nagłówków i bloki treści pojawiają się w pomieszanej kolejności w DOM, nawet użytkownicy, którzy widzą stronę, mogą mieć trudności, jeśli polegają na trybie czytania przeglądarki, narzędziach text-to-speech lub rozszerzeniach upraszczających widok, które usuwają CSS i prezentują surową treść DOM.
Użytkownicy z niepełnosprawnościami ruchowymi, którzy nawigują za pomocą klawiatury lub przełączników, poruszają się po elementach interaktywnych w kolejności DOM za pomocą klawisza Tab. Jeśli przycisk wysyłania pojawia się przed powiązanymi polami formularza w DOM (ale po nich wizualnie), sekwencja tabulacji staje się myląca i podatna na błędy.
Konkretny scenariusz z rzeczywistości: turecka strona e-commerce z procesem zakupu używa układu CSS Grid, w którym właściwość order przenosi panel „Podsumowanie zamówienia”, aby wizualnie pojawiał się po prawej stronie, za formularzem rozliczeniowym. W DOM jednak HTML podsumowania zamówienia znajduje się jako pierwszy. Użytkownik korzystający z czytnika ekranu słyszy łączną cenę i listę pozycji, zanim usłyszy formularz rozliczeniowy — nie ma jeszcze kontekstu, za co płaci. Może to prowadzić do porzucenia procesu, dezorientacji i skarg na dostępność. Zgodnie z nowymi tureckimi regulacjami dotyczącymi dostępności taka nieprawidłowość na platformie komercyjnej stanowi obecnie ryzyko regulacyjne.
Poza dostępnością, znacząca kolejność DOM przynosi korzyści SEO. Roboty wyszukiwarek odczytują kolejność DOM podobnie jak czytniki ekranu. Dobrze ustrukturyzowany DOM, który umieszcza najbardziej znaczącą treść na początku — nagłówki, treść główną, kluczowe wezwania do działania — może pozytywnie wpływać na sposób indeksowania i pozycjonowania stron.
Powiązane reguły Axe-core
WCAG 1.3.2 jest sklasyfikowane jako wymagające ręcznego testowania. Narzędzia automatyczne, w tym axe-core, nie mogą wiarygodnie wykrywać naruszeń kolejności, ponieważ wymagałoby to od narzędzia zrozumienia znaczenia treści — konkretnie tego, czy dana kolejność treści zmienia jej interpretację. Jest to osąd semantyczny, którego żaden automatyczny parser nie może dokonywać w sposób uniwersalny. Narzędzie automatyczne może wykryć, że CSS został użyty do wizualnego zmienienia kolejności elementów, ale nie może określić, czy ta zmiana kolejności jest znacząca, czy dekoracyjna, bez osądu człowieka.
- Ręczny przegląd — wizualna kolejność CSS vs. kolejność DOM: Axe-core nie ma dedykowanej automatycznej reguły dla 1.3.2. Testerzy muszą ręcznie porównać wizualne renderowanie strony z jej źródłową kolejnością DOM, wyłączając CSS i obserwując, czy zlinearyzowana treść nadal ma sens. Narzędzia takie jak wbudowany inspektor drzewa dostępności w przeglądarce lub funkcja „Full Page Scan” w axe DevTools mogą ujawnić anomalie strukturalne, ale człowiek musi ocenić, czy sekwencja jest znacząca.
- Ręczny przegląd — właściwość order w CSS Flexbox i Grid: Gdy axe DevTools lub narzędzia deweloperskie przeglądarki ujawniają elementy używające właściwości CSS
orderlubposition: absolute/fixeddla elementów treści (nie tylko dekoracyjnych), tester ludzki musi ocenić, czy wizualna kolejność w sposób znaczący odbiega od kolejności w DOM. Narzędzia automatyczne same z siebie nie oznaczą tego jako błąd. - Ręczny przegląd — niewłaściwe użycie układu tabelarycznego: Strony, które używają tabel HTML do układu wizualnego (zamiast do danych tabelarycznych), mogą powodować, że czytniki ekranu odczytują komórki w kolejności DOM, która nie odpowiada zamierzonemu przepływowi odczytu. Narzędzia automatyczne mogą oznaczyć tabele układu jako osobny problem, ale wpływ na sekwencję wymaga weryfikacji przez człowieka.
Jak testować
- Najpierw uruchom skan automatyczny: Użyj axe DevTools (rozszerzenie przeglądarki) lub Lighthouse w Chrome DevTools, aby wykonać pełny skan dostępności strony. Choć żadne z tych narzędzi nie wskaże bezpośrednio naruszenia 1.3.2, ujawnią one powiązane problemy strukturalne — tabele układu, niewłaściwą kolejność nagłówków lub błędne użycie ARIA — które mogą wskazywać na problemy z sekwencją. Zanotuj wszelkie ostrzeżenia dotyczące kolejności wizualnej lub anomalii strukturalnych do ręcznego sprawdzenia.
- Wyłącz cały CSS i sprawdź zlinearyzowaną treść: W Firefox DevTools lub Chrome DevTools wyłącz wszystkie arkusze stylów (lub użyj funkcji „Disable All Styles” w rozszerzeniu Web Developer). Przeczytaj stronę od góry do dołu. Zadaj sobie pytanie: czy treść w tej kolejności nadal ma sens? Czy możesz bez problemu śledzić historię, formularz lub proces? Jeśli znaczenie się rozpada, strona prawdopodobnie nie spełnia 1.3.2.
- Sprawdź bezpośrednio kolejność źródłową DOM: Otwórz DevTools, przejdź do panelu Elements/Inspector i przejrzyj kod HTML. Porównaj pozycję każdego głównego bloku treści w DOM z jego pozycją wizualną. Zwróć szczególną uwagę na elementy używające CSS Flexbox lub Grid — poszukaj właściwości
orderw stylach obliczonych i upewnij się, że nie tworzy ona znaczącej rozbieżności sekwencji. - Przetestuj z NVDA i Firefoxem: Uruchom NVDA, otwórz Firefoksa i przejdź do strony. Naciśnij Insert + Strzałka w dół, aby włączyć tryb „Say All” i wysłuchaj całej strony od góry do dołu. Śledź wzrokiem i zanotuj każdą sytuację, w której kolejność odczytywanej treści nie odpowiada znaczącej kolejności wizualnej. Zwróć uwagę na etykiety i pola formularzy, listy numerowane, instrukcje krok po kroku oraz treści odwołujące się do wcześniejszych fragmentów.
- Przetestuj z VoiceOver i Safari (macOS/iOS): Włącz VoiceOver (Command + F5 na macOS). Użyj rotora (Control + Option + U), aby nawigować po nagłówkach lub obszarach orientacyjnych, oraz Control + Option + Strzałka w prawo, aby czytać liniowo stronę. Zwróć uwagę, czy treść płynie w logicznej, znaczącej kolejności. Na iOS przesuwaj palcem w prawo, aby przechodzić przez treść i weryfikować spójność sekwencji.
- Przetestuj z JAWS i Chrome: Otwórz JAWS z Chrome i użyj komendy Insert + Strzałka w dół „Say All”. Podobnie jak w przypadku NVDA, śledź wzrokiem podczas słuchania i oznacz każdą treść, która jest prezentowana poza znaczącą kolejnością. JAWS odczytuje drzewo dostępności, które w dużej mierze odzwierciedla kolejność DOM, co czyni ten test wiarygodnym dla problemów z sekwencją.
- Przetestuj kolejność tabulacji klawiaturą: Bez czytnika ekranu po prostu naciskaj wielokrotnie Tab, przechodząc przez wszystkie elementy interaktywne na stronie. Sekwencja fokusu powinna podążać logiczną, znaczącą ścieżką — zazwyczaj od lewej do prawej i z góry na dół w pismach łacińskich, zgodnie z tym, jak użytkownik widzący czytałby stronę. Sekwencja tabulacji, która skacze w nieprzewidywalny sposób między sekcjami, wskazuje na problem z kolejnością DOM.
Jak naprawić
Właściwość order w CSS Flexbox — niepoprawne
<!-- Visual order is: Warning, then Form. DOM order is reversed. -->
<div style='display: flex; flex-direction: column;'>
<form style='order: 1;'>
<label for='email'>Email</label>
<input type='email' id='email' name='email' />
<button type='submit'>Subscribe</button>
</form>
<div class='warning' style='order: 0;'>
<p>Warning: You must be 18 or older to subscribe.</p>
</div>
</div>
Właściwość order w CSS Flexbox — poprawne
<!-- DOM order now matches meaningful visual order: Warning first, then Form. -->
<!-- The CSS order property is removed; DOM sequence alone controls both visual and AT order. -->
<div style='display: flex; flex-direction: column;'>
<div class='warning'>
<p>Warning: You must be 18 or older to subscribe.</p>
</div>
<form>
<label for='email'>Email</label>
<input type='email' id='email' name='email' />
<button type='submit'>Subscribe</button>
</form>
</div>
Absolutnie pozycjonowana treść tworząca mylącą sekwencję — niepoprawne
<!-- Step labels appear visually above the content boxes, but come after them in the DOM. -->
<div style='position: relative; height: 200px;'>
<div style='position: absolute; top: 50px; left: 0;'>
<p>Step 1: Fill in your personal details below.</p>
</div>
<div style='position: absolute; top: 0; left: 0;'>
<p><strong>1</strong></p>
</div>
</div>
Absolutnie pozycjonowana treść tworząca mylącą sekwencję — poprawne
<!-- DOM order now reflects the meaningful reading sequence: label first, then number. -->
<!-- Absolute positioning is used only for visual refinement, not to reverse meaningful order. -->
<div style='position: relative; height: 200px;'>
<div style='position: absolute; top: 0; left: 0;'>
<p><strong>1</strong></p>
</div>
<div style='position: absolute; top: 50px; left: 0;'>
<p>Step 1: Fill in your personal details below.</p>
</div>
</div>
CSS Grid z przestawionymi obszarami treści — niepoprawne
<!-- Sidebar (contextual notes) appears visually on the right, after main content. -->
<!-- But in the DOM it comes first, so screen readers hear sidebar notes before the article. -->
<div class='layout'>
<aside class='sidebar'>
<p>Note: The statistics below are sourced from the 2024 annual report.</p>
</aside>
<main class='content'>
<h1>Annual Sales Overview</h1>
<p>Total revenue grew by 23% compared to the prior year...</p>
</main>
</div>
<!--
.layout { display: grid; grid-template-columns: 3fr 1fr; }
.sidebar { grid-column: 2; }
.main { grid-column: 1; }
-->
CSS Grid z przestawionymi obszarami treści — poprawne
<!-- Main content comes first in the DOM, matching the meaningful reading order. -->
<!-- The sidebar, which annotates the main content, follows it in the DOM. -->
<!-- CSS Grid places the sidebar visually to the right without changing DOM sequence. -->
<div class='layout'>
<main class='content'>
<h1>Annual Sales Overview</h1>
<p>Total revenue grew by 23% compared to the prior year...</p>
</main>
<aside class='sidebar'>
<p>Note: The statistics above are sourced from the 2024 annual report.</p>
</aside>
</div>
<!--
.layout { display: grid; grid-template-columns: 3fr 1fr; }
.content { grid-column: 1; }
.sidebar { grid-column: 2; }
-->
Typowe błędy
- Używanie właściwości
orderw CSS Flexbox lub Grid do wizualnego zmieniania kolejności znaczących bloków treści bez aktualizacji źródłowej kolejności HTML — to najczęstsza przyczyna naruszeń 1.3.2 we współczesnym tworzeniu stron. Zawsze najpierw dostosuj kolejność w DOM, a CSS używaj jedynie do dopracowania prezentacji wizualnej. - Umieszczanie głównej treści strony
<main>po<nav>lub<aside>w DOM przy jednoczesnym użyciu CSS, aby treść główna pojawiała się wizualnie jako pierwsza — czytniki ekranu odczytają nawigację lub panel boczny przed artykułem głównym, zaburzając znaczącą sekwencję. - Budowanie układów w stylu magazynowym z wieloma kolumnami za pomocą kolumn CSS lub floatów, gdzie kolejność DOM przebiega kolumna po kolumnie z góry na dół w każdej kolumnie, ale kolejność wizualna jest wiersz po wierszu — użytkownicy oczekujący czytania wiersz po wierszu (jak w wielu układach siatkowych) otrzymają treść w niewłaściwej sekwencji.
- Używanie
position: absolutelubposition: fixed, aby wizualnie przenieść podsumowanie błędów formularza na górę strony, podczas gdy element podsumowania błędów pozostaje na dole DOM — użytkownicy czytników ekranu wysyłający formularz nie natrafią na podsumowanie błędów, dopóki nie dotrą do końca strony, przez co przegapią kluczowe informacje zwrotne. - Renderowanie instrukcji krok po kroku lub sekwencji numerowanych za pomocą resetów liczników CSS, gdy kolejność kroków w DOM nie odpowiada znaczącej kolejności — wizualne numery mogą wyglądać poprawnie, ale sekwencja odczytu na głos będzie błędna.
- Wstrzykiwanie treści dynamicznej (np. wiadomości na czacie, elementy kanału na żywo, powiadomienia typu toast) na górę kontenera w DOM, gdy konwencja wizualna pokazuje najnowsze elementy na dole — lub odwrotnie — bez użycia regionów ARIA live lub dostosowania DOM do znaczącej sekwencji.
- Używanie tabel HTML do układu zamiast do danych tabelarycznych i umieszczanie komórek w kolejności DOM, która odczytywana jest najpierw kolumnami, a nie wierszami — technologie asystujące odczytują komórki tabeli w kolejności DOM (wiersz po wierszu), więc tabele układu zbudowane najpierw kolumnami będą odczytywane w niewłaściwej sekwencji.
- Poleganie na JavaScript do wizualnego sortowania lub zmieniania kolejności treści (np. sortowalna lista produktów) bez aktualizacji podstawowej kolejności DOM — po posortowaniu według ceny czytnik ekranu może nadal ogłaszać elementy w pierwotnej, niesortowanej kolejności, jeśli zaktualizowano tylko klasy CSS lub pozycjonowanie wizualne.
- Umieszczanie przypisów lub odnośników w DOM bezpośrednio po akapicie, do którego się odnoszą, gdy prezentacja wizualna grupuje wszystkie przypisy na dole strony — lub odwrotnie — bez zapewnienia, że kolejność udostępniana technologiom asystującym jest znacząca dla zamierzonego sposobu czytania.
- Dzielenie jednej logicznej jednostki treści na nieprzylegające pozycje w DOM — na przykład umieszczanie
<figcaption>figury daleko od elementu<figure>w źródle, co powoduje, że czytniki ekranu ogłaszają podpis poza kontekstem.
Związek z tureckimi regulacjami dotyczącymi dostępności
Turecka Okrężnica Prezydencka nr 2025/10, opublikowana w Dzienniku Urzędowym nr 32933 w dniu 21 czerwca 2025 r., ustanawia obowiązkowe wymagania dotyczące dostępności stron internetowych, zgodne z WCAG 2.2. WCAG 1.3.2 Znacząca kolejność jest kryterium poziomu A, co czyni je częścią podstawowego zestawu wymagań, które wszystkie objęte podmioty muszą spełnić.
Okrężnica nakłada obowiązek dostosowania w ramach etapowego harmonogramu: instytucje publiczne muszą osiągnąć zgodność w ciągu jednego roku od daty publikacji okrężnicy, podczas gdy podmioty sektora prywatnego mają na dostosowanie dwa lata.
Następujące typy podmiotów są wyraźnie objęte okrężnicą i muszą zatem zapewnić, że cała treść cyfrowa i interfejsy internetowe prezentują informacje w programowo możliwej do określenia znaczącej sekwencji:
- Instytucje publiczne i agencje rządowe — wszystkie centralne i lokalne organy administracji, ministerstwa oraz organizacje powiązane z państwem prowadzące serwisy internetowe lub usługi cyfrowe skierowane do obywateli.
- Banki i instytucje finansowe — w tym portale bankowości internetowej, platformy inwestycyjne i strony internetowe firm ubezpieczeniowych, gdzie treści sekwencyjne (zestawienia kont, krok po kroku wnioski kredytowe, historie transakcji) muszą być odczytywane we właściwej kolejności przez wszystkich użytkowników.
- Platformy e-commerce — listy produktów, wieloetapowe procesy zakupu i sekwencje potwierdzenia zamówienia muszą mieć kolejność DOM, która poprawnie odzwierciedla ich znaczącą kolejność wizualną, zapewniając, że osoby niewidome i słabowidzące mogą finalizować zakupy bez dezorientacji spowodowanej przez technologie asystujące.
- Szpitale i świadczeniodawcy opieki zdrowotnej — portale pacjentów, systemy rezerwacji wizyt i strony z informacjami medycznymi, gdzie kolejność instrukcji, ostrzeżeń i pól formularzy ma bezpośrednie implikacje dla bezpieczeństwa.
- Przedsiębiorstwa telekomunikacyjne z 200,000 lub większą liczbą abonentów — strony porównujące oferty, interfejsy zarządzania umowami i portale wsparcia, gdzie tabele taryf i listy funkcji muszą być prezentowane w znaczącej, programowo poprawnej kolejności.
- Biura podróży i prywatne firmy transportowe — procesy rezerwacji, prezentacje planów podróży i interfejsy wyboru miejsc w dużym stopniu opierają się na sekwencjonowaniu wizualnym (odlot przed przylotem, krok 1 przed krokiem 2), które musi być poprawnie odzwierciedlone w DOM.
- Szkoły prywatne upoważnione przez Ministerstwo Edukacji Narodowej (MoNE) — systemy zarządzania nauczaniem, strony z treściami kursów i portale rekrutacyjne muszą prezentować sekwencje edukacyjne — lekcje, moduły, oceny — w programowo możliwej do określenia kolejności, aby uczniowie korzystający z technologii asystujących mogli prawidłowo śledzić tok nauczania.
Brak zgodności z WCAG 1.3.2 na którejkolwiek z tych platform nie jest jedynie luką w zakresie dobrych praktyk; na mocy okrężnicy 2025/10 stanowi to niezgodność regulacyjną podlegającą nadzorowi i obowiązkowi naprawy. Biorąc pod uwagę, że naruszenia 1.3.2 bardzo często wynikają ze współczesnych technik układu CSS (Flexbox, Grid), które są powszechne w tureckim tworzeniu stron, organizacje powinny priorytetowo potraktować systematyczny audyt swoich wzorców układu i praktyk dotyczących kolejności DOM jako część planu dostosowania.
