Kiedy w 2023 roku okazało się, że kryterium 4.1.1 nie ma już większego znaczenia, World Wide Web Consortium, czyli twórcy WCAG, stanęli przed nie lada problemem. Aby go rozwiązać, W3C zaproponowało usunięcie kryterium sukcesu z całego WCAG 2. Jak jednak to zrobić, skoro standard już obowiązuje i jest wpisany do wielu ustaw? Opisujemy.
Kryterium sukcesu 4.1.1 Poprawność kodu zapewnia, że strony napisane w językach znaczników, takich jak HTML i SVG, są tworzone w sposób umożliwiający przeglądarkom i technologiom wspomagającym na ich spójne zrozumienie.
Polskie brzmienie kryterium sukcesu 4.1.1 Poprawność kodu:
W treści wprowadzonej przy użyciu języka znaczników, elementy posiadają kompletne znaczniki początkowe i końcowe, elementy są zagnieżdżane według swoich specyfikacji, nie posiadają zduplikowanych atrybutów, a wszystkie ID są unikalne, z wyjątkiem przypadków, kiedy specyfikacja zezwala na wyżej wymienione cechy.
Uwaga 1: Początkowe i końcowe znaczniki, w których brak kluczowych znaków, takich, jak zamykający nawias ostry lub pytajnik błędnie dopasowany do atrybutu wartości, nie są uznawane za kompletne znaczniki.
Uwaga 2: Kryterium to zostało pierwotnie przyjęte w celu rozwiązania problemów związanych z technologią wspomagającą bezpośrednio analizującą kod HTML. Technologia wspomagająca nie wymaga już bezpośredniego analizowania kodu HTML. W rezultacie problemy te albo już nie istnieją, albo są rozwiązywane na podstawie innych kryteriów. Kryterium to nie ma już zastosowania, nie jest użyteczne i zostało usunięte.
Polskie tłumaczenie nie uwzględnia faktu, że zostało one już zmienione notatką w wersji oryginalnej.
Dlaczego 4.1.1 zostaje usunięte?
Było to ważne wymaganie przed HTML 5. Poprzednie wersje HTML nie definiowały, jak należy obsługiwać nieprawidłowe znaczniki. Takie znaczniki mogły działać w jeden sposób dziś, a inaczej jutro, co miało szczególne znaczenie dla osób korzystających z technologii wspomagających. Wraz z wprowadzeniem HTML 5 ujednolicono sposób, w jaki przeglądarki powinny radzić sobie z nieprawidłowym kodem. To oznacza, że jeśli coś działa dzisiaj, zadziała też w przyszłych wersjach przeglądarek.
Obecni niewielu testerów dostępności stosuje 4.1.1 zgodnie z pierwotnym założeniem. Na przykład axe-core testuje jedynie duplikaty identyfikatorów, ponieważ mogą one powodować nieprawidłowe etykiety i właściwości dla technologii wspomagających. Od wersji axe-core 3.1 duplikaty identyfikatorów, które nie wpływają na dostępność, są klasyfikowane jako problem drugorzędny. W praktyce jednak duplikaty identyfikatorów są wskaźnikiem problemu z dostępnością, same w sobie nie są problemem z dostępnością.
Wdrożenie zmian w WCAG gdzie indziej
Usunięcie kryterium z WCAG to trudny problem. WCAG 2.0 i 2.1 to międzynarodowe standardy, które zostały wdrożone do prawa. Ich modyfikacja oznacza długie okresy przejściowe. Dlatego W3C zastosowało dwutorową strategię:
- W WCAG 2.2 kryterium 4.1.1 zostało usunięte. Nie jest już wymagane, ponieważ nie jest już częścią standardu.
- W WCAG 2.1 i 2.0 (które zostały sfinalizowane) dodano do kryterium 4.1.1 notatkę(!). Wskazuje ona, że kryterium 4.1.1 jest zawsze przekazywane dla treści HTML i XML. Ta uwaga to pewnego rodzaju trik, ponieważ nie zmienia faktycznego wymogu. Kryterium jest takie, jakie zawsze było. Jedyne, co się zmienia, to jasny zamiar, jak W3C uważa, że kryterium powinno być interpretowane.
4.1.1 w narzędziach
Zmiana została dostrzeżona przez większość wiodących dostawców narzędzi, ale nie przez wszystkich. Co więcej, ponieważ wdrożono ją poprzez notatkę, uznajemy, że narzędzia powinny nadal uwzględniać kryterium 4.1.1. W związku z tym, pracując np. z axe-core, zgłosiliśmy problem na GitHubie: „Incomplete ruleset when running axe-core to check WCAG 2.1 withTags(['wcag2a', 'wcag2aa', 'wcag21a', 'wcag21a']). #4753”
https://github.com/dequelabs/axe-core/issues/4753
Dostaliśmy odpowiedź.
Reasumując, jeśli testujecie 4.1.1. to z góry możecie założyć, że zawsze jest PASSED. Zawsze.
Standard nie został zmieniony wersją, zmodyfikowano go UWAGĄ. Ani polski ustawodawca, ani Ministerstwo Cyfryzacji, jak zresztą większość ludzi, nawet tych zainteresowanych dostępnością nie zorientowali się, że 4.1.1 już tak naprawdę nie obowiązuje. Tymczasem w raporcie o stanie dostępności stron z domeny publicznej wskazuje się, że to kryterium, które zawsze jest spełnione, wg Ministerstwa nie jest spełnione na 86% stron :)
Obecnie nie ma znaczenia, czy traktujesz WCAG 2.1 jako wytyczne pod testy, czy sprawdzasz zgodność z ustawą. Kryterium 4.1.1. masz zawsze spełnione.