- Poziom
- AA
- Od wersji
- WCAG 2.2
3.3.8 Dostępne uwierzytelnianie (minimum)
Logowanie nie może zależeć od zapamiętania, przepisania albo rozwiązania czegoś, chyba że istnieje inna droga, pomoc w rodzaju menedżera haseł lub wklejania, albo test polega na rozpoznaniu obiektów lub własnej treści użytkownika.
/ Czego wymaga
Test funkcji poznawczych to zadanie, które wymaga od użytkownika zapamiętania, przetworzenia albo przepisania informacji: przypomnienia sobie hasła, przepisania znaków ze zniekształconego obrazka, ręcznego przepisania kodu, rozwiązania łamigłówki albo działania matematycznego. Osobom z zaburzeniami pamięci, czytania lub przetwarzania informacji taki test może zablokować dostęp do własnego konta. Kryterium zabrania wymagania go na którymkolwiek etapie uwierzytelniania, chyba że dany etap oferuje alternatywną metodę bez takiego testu albo mechanizm, który pomaga go wykonać. Typowe identyfikatory, czyli imię i nazwisko, adres e-mail i numer telefonu, nie są uznawane za testy funkcji poznawczych.
W3C wymienia typowe mechanizmy: obsługę menedżerów haseł, które wypełniają pola, oraz kopiowanie i wklejanie, żeby nikt nie musiał niczego przepisywać. Pole hasła spełnia więc kryterium, jeśli da się je wypełnić automatycznie albo wkleić do niego wartość. Na poziomie AA dopuszczalne są też dwa rodzaje testu: rozpoznawanie obiektów, na przykład wskazanie zdjęć samochodu, oraz rozpoznanie treści nietekstowej, którą użytkownik sam przekazał serwisowi, na przykład własnego zdjęcia. Kod weryfikacyjny, który trzeba przepisać ręcznie, nie spełnia kryterium; użytkownik musi móc go przynajmniej wkleić. Kryterium 3.3.9 na poziomie AAA usuwa wyjątki dotyczące obiektów i treści osobistych.
To kryterium jest nowe w WCAG 2.2 i nie należy do WCAG 2.0 ani 2.1.
/ Jak strony go nie spełniają
- Pole hasła blokuje skryptem zdarzenie wklejania, więc hasła skopiowanego z menedżera haseł nie da się wprowadzić.
- Formularz logowania używa własnej klawiatury ekranowej, której menedżery haseł nie potrafią wypełnić, i nie oferuje innego sposobu logowania.
- Sześciocyfrowy kod z wiadomości SMS trzeba wpisać w sześć osobnych pól, a wklejenie kodu wypełnia tylko pierwsze z nich.
- CAPTCHA każe przepisać zniekształcone znaki, a jej wersję dźwiękową też trzeba przepisać.
- Bank prosi o pierwszą, trzecią i piątą cyfrę hasła, czego menedżer haseł nie wypełni, a człowiek nie może wkleić.
/ Jak sprawdzić samodzielnie
- Spisz każdy etap logowania, rejestracji, o ile uwierzytelnia, resetowania hasła i potwierdzania drugiego składnika.
- Na każdym etapie, który wymaga czegoś zapamiętanego lub przepisanego, pozwól menedżerowi haseł wypełnić pole. Potem skopiuj wartość i wklej ją skrótem Ctrl+V oraz z menu kontekstowego.
- W narzędziach deweloperskich poszukaj obsługi zdarzenia paste na polach danych logowania i kodów i sprawdź, czy pola mają tam, gdzie trzeba, autocomplete="username", "current-password" albo "one-time-code".
- Przy kodzie jednorazowym rozbitym na kilka pól wklej cały kod do pierwszego z nich i sprawdź, czy wypełniają się wszystkie części.
- Przy każdej CAPTCHA lub łamigłówce sprawdź, czy istnieje alternatywa, która nie wymaga pamięci, przepisywania ani liczenia, albo czy test polega na rozpoznaniu obiektów lub własnej treści użytkownika.
/ Jak to naprawić
- Usuń każdą obsługę zdarzeń, która blokuje wklejanie w polach danych logowania i kodów.
- Używaj standardowych elementów input wewnątrz elementu form, z autocomplete="username" i autocomplete="current-password", żeby przeglądarki i menedżery haseł mogły je wypełnić.
- Przyjmuj kod jednorazowy w jednym polu z autocomplete="one-time-code" i inputmode="numeric", a jeśli projekt go dzieli, rozkładaj wklejony ciąg na wszystkie części.
- Zaoferuj metodę bez żadnego testu: link do logowania wysyłany e-mailem, WebAuthn albo logowanie przez zewnętrznego dostawcę.
- Zastąp CAPTCHA wymagającą przepisywania sprawdzeniem bez testu funkcji poznawczych albo opartym na rozpoznawaniu obiektów i upewnij się, że wersja dźwiękowa nie wymaga wpisywania tego, co słychać.
/ Co sprawdza nasz skaner
Żaden automatyczny test w naszym skanie tego nie obejmuje. Skan serwisu odwiedza strony jako anonimowy gość i nigdy się nie loguje, a żadna z naszych reguł nie uruchamia menedżera haseł, nie wkleja wartości ani nie szuka skryptów blokujących wklejanie. To, czy któryś etap logowania wymaga testu pamięci albo przepisywania, sprawdza człowiek z kontem testowym w audycie ręcznym.
/ Kto je łamie, według naszych pomiarów
Cotygodniowy indeks nie ma danych dla tego kryterium, bo żaden test uruchamiany przez skan witryny go nie sprawdza. Ocenia je człowiek i do tego służy audyt ręczny.
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 logowanie hasłem narusza kryterium 3.3.8 WCAG 2.2?
Nie, jeśli hasło może wypełnić menedżer haseł albo da się je wkleić. W3C wymienia oba te mechanizmy jako spełniające kryterium. Logowanie narusza je wtedy, gdy blokuje wklejanie lub autouzupełnianie i nie oferuje innej metody, bo użytkownikowi zostaje wtedy zapamiętanie i wpisanie hasła bez żadnej pomocy.
Czy CAPTCHA jest dozwolona w kryterium Dostępne uwierzytelnianie (minimum)?
CAPTCHA, która każe przepisać zniekształcone znaki, jest testem funkcji poznawczych i potrzebuje alternatywy, która takim testem nie jest. Wersja dźwiękowa liczy się tylko wtedy, gdy użytkownik nie musi jej przepisywać. Test rozpoznawania obiektów, na przykład wskazania zdjęć z rowerem, jest wyjątkiem na poziomie AA, ale nie na AAA.
Czy kody weryfikacyjne SMS są dozwolone w świetle 3.3.8?
Tak, jeśli da się je wkleić. W3C pisze, że usługa wymagająca ręcznego przepisania kodu weryfikacyjnego nie spełnia kryterium, a użytkownik musi móc przynajmniej wkleić kod. Pole kodu, które przyjmuje wklejanie, najlepiej z autocomplete="one-time-code", spełnia to kryterium poziomu AA, nowe w WCAG 2.2.
