3.3.8 Dostępne uwierzytelnianie (minimum) (ang.) Accessible authentication (minimum)
Spis treści
Istota i cel kryterium
Kryterium Sukcesu 3.3.8 kładzie kres archaicznym i niedostępnym barierom stosowanym podczas weryfikacji tożsamości użytkowników. Tradycyjne systemy bezpieczeństwa zbyt często zmuszają człowieka do wykonywania skomplikowanych testów pamięciowych, co stanowi najpoważniejsze uchybienie w obszarze projektowania nowoczesnych i inkluzywnych interfejsów cyfrowych.
Głównym celem tej wytycznej jest kategoryczne zagwarantowanie, że proces uwierzytelniania nie będzie wymagał od użytkownika rozwiązywania, zapamiętywania ani przepisywania skomplikowanych danych na żadnym etapie logowania. Twój system musi w zamian zaoferować alternatywę całkowicie wolną od wysiłku pamięciowego lub udostępnić mechanizmy odciążające ludzki umysł. Zapewniasz w ten sposób płynny dostęp do e-usług, co drastycznie zmniejsza zmęczenie psychiczne i eliminuje frustrację.
Pamiętaj: Ta wytyczna koncentruje się wyłącznie na procesie uwierzytelniania do już istniejących kont oraz na procedurach odzyskiwania dostępu (np. resetowaniu hasła). Nie obejmuje ona samego procesu zakładania nowego konta i pierwszorazowego tworzenia loginu.
Zgodnie z oficjalną specyfikacją, test funkcji poznawczych nie może być wymagany na żadnym etapie procesu uwierzytelniania, chyba że dany etap zapewnia co najmniej jedno z poniższych rozwiązań:
- Alternatywa ((ang.) Alternative): Udostępniasz inną metodę uwierzytelniania, która w żadnym stopniu nie opiera się na teście funkcji poznawczych.
- Mechanizm ((ang.) Mechanism): Zapewniasz łatwo dostępny mechanizm, który aktywnie wspiera użytkownika w pomyślnym ukończeniu testu funkcji poznawczych (np. umożliwienie automatycznego uzupełniania danych lub wklejania haseł).
- Rozpoznawanie obiektów ((ang.) Object Recognition): Wymagany test funkcji poznawczych polega wyłącznie na rozpoznawaniu powszechnych obiektów na załączonych materiałach graficznych.
- Treść osobista ((ang.) Personal Content): Test funkcji poznawczych polega na prawidłowym zidentyfikowaniu treści nietekstowych (np. grafik, dźwięków, filmów), które użytkownik sam osobiście dostarczył do witryny podczas wcześniejszej konfiguracji profilu.
Definicja w j. angielskim
Definicja dostępna pod adresem (link otworzy się w nowej karcie):
https://www.w3.org/WAI/WCAG22/quickref/#accessible-authentication-minimum
Słownik pojęć
- Test funkcji poznawczych (ang.) Cognitive Function Test
-
–
każde wymaganie polegające na zmuszeniu użytkownika do odtwarzania z pamięci poufnych informacji, przepisywania ciągów znaków lub rozwiązywania zadań (np. matematycznych lub logicznych) w celu uwierzytelnienia.
- Mechanizm wspomagający uwierzytelnianie
-
–
rozwiązanie techniczne, które odciąża pamięć operacyjną człowieka, pozwalając na automatyczne uzupełnienie danych przez manedżery haseł lub ich sprawne skopiowanie i wklejenie do formularza.
Wpływ na dostępność (Kogo wspierasz?)
- Osoby starsze: Naturalne osłabienie pamięci roboczej oraz ewentualne trudności z precyzyjną koordynacją ruchową sprawiają, że bezbłędne odtwarzanie i wpisywanie złożonych haseł staje się dla nich ogromnym wyzwaniem.
- Osoby z dysfunkcjami poznawczymi, dysleksją lub zaburzeniami pamięci: Presja czasu połączona z bezwzględnym wymogiem wpisania bezbłędnego ciągu znaków lub rozwiązania zagadki potrafi całkowicie odciąć użytkowników od nawigacji i uniemożliwić im pomyślne zalogowanie się.
- Osoby korzystające z technologii wspomagających: Narzędzia takie jak zewnętrzne menedżery haseł są dla nich nieocenioną asystą. Blokowanie automatyzacji zmusza te osoby do tytanicznej, manualnej pracy.
- Osoby z niepełnosprawnościami motorycznymi: Wpisywanie nieskończenie długich i naszpikowanych znakami specjalnymi haseł bywa dla nich fizycznie wycieńczające oraz czasochłonne, wywołując głębokie zniechęcenie.
Zasady wdrażania i wymagania techniczne
Skuteczna realizacja tego kryterium wymaga od Ciebie wdrożenia bezpiecznych ścieżek autoryzacji, które nie polegają na pamięci. Wykorzystaj poniższe wytyczne implementacyjne, aby Twój formularz gwarantował wyrazistość bez kompromisów:
Po pierwsze, zaoferuj alternatywne metody uwierzytelniania, które eliminują potrzebę wydobywania danych z pamięci:
- Uwierzytelnianie biometryczne: Wykorzystaj zaawansowane funkcje weryfikacji tożsamości urządzenia, takie jak rozpoznawanie twarzy lub skanowanie odcisku palca za zgodą użytkownika.
- Kody jednorazowe ((ang.) One-Time Password): Pozwól na uwierzytelnienie za pomocą kodów przesyłanych wiadomością SMS lub e-mail, dbając o to, by system pozwalał na ich skopiowanie i wklejenie.
- Link do logowania wysyłany e-mailem: Generuj bezpieczne, tymczasowe odnośniki wysyłane bezpośrednio na zweryfikowaną skrzynkę pocztową.
- Dostawcy tożsamości ((ang.) Single Sign-On): Zintegruj swój system z zaufanymi platformami zewnętrznymi (np. Google, Apple ID), które natywnie dbają o wysoki standard dostępności.
Po drugie, bezwzględnie wspieraj menedżery haseł oraz natywne funkcje autouzupełniania przeglądarek:
- Zezwalaj na wklejanie hasła i kodów: Dopilnuj, aby struktura kodu nie blokowała schowka systemu operacyjnego. Jeśli kod weryfikacyjny generowany jest na urządzeniu wtórnym (np. telefonie), aplikacja na urządzeniu głównym (np. komputerze) musi bezwarunkowo pozwalać na wklejenie tekstu ze schowka.
- Stosuj prawidłowe wartości atrybutu
autocomplete: Jawnie podpowiadaj technologii wspomagającej przeznaczenie pól, przypisując im standardowe wartości takie jakusername,current-passwordlubone-time-code. - Nigdy nie używaj atrybutu
autocomplete="off": Wyeliminuj ten zapis z pól logowania, ponieważ intencjonalnie odcina on użytkownika od jego menedżera haseł.
Pamiętaj również o uwierzytelnianiu wieloskładnikowym. Jeśli decydujesz się na wdrożenie weryfikacji wieloetapowej, każdy krok musi być zgodny z tym kryterium. Zadbaj o to, by ścieżka autoryzacji nie wymuszała ręcznego przepisywania danych między urządzeniami – dopuszczalne są natomiast metody potwierdzania logowania powiadomieniem (ang.) Push lub kluczem sprzętowym.
Wyjątki i sytuacje szczególne
Kryterium 3.3.8 wprowadza precyzyjne wyjątki, w których test funkcji poznawczych jest dopuszczalny na poziomie AA:
- Rozpoznawanie obiektów ((ang.) Object Recognition): Dozwolone jest stosowanie testów opartych na rozpoznawaniu powszechnych obiektów na zdjęciach lub grafikach (np. popularne mechanizmy (ang.) CAPTCHA nakazujące zaznaczenie wszystkich kafelków przedstawiających samochody lub hydranty). Pamiętaj jednak, że ten wyjątek zostaje całkowicie zniesiony na poziomie AAA (kryterium 3.3.9).
- Treść osobista ((ang.) Personal Content): Dozwolone jest uwierzytelnianie polegające na wskazaniu grafiki, wideo lub dźwięku, które użytkownik sam dostarczył do serwisu podczas wcześniejszej konfiguracji konta. Wyjątek ten nie obejmuje pytań tekstowych (np. „Jak nazywa się Twój pies?”), ponieważ wymagają one przypominania sobie i przepisywania tekstu.
- Zakres stosowania (konta istniejące): Kryterium skupia się wyłącznie na procesie uwierzytelniania użytkowników do istniejących już kont oraz na procedurze odzyskiwania dostępu (np. resetowania hasła). Nie obejmuje natomiast samego procesu zakładania nowego konta i pierwszorazowego tworzenia loginu.
Przykłady implementacji
Najczęstsze błędy
- F109: Stosowanie skryptów w języku JavaScript (np. za pomocą
onpaste="return false;"), co uniemożliwia przenoszenie danych ze schowka i zmusza użytkownika do ręcznej transkrypcji. - Blokowanie automatycznego uzupełniania pól: Wykorzystywanie atrybutu
autocomplete="off"w polach formularza autoryzacji, co paraliżuje działanie przeglądarek oraz zewnętrznych menedżerów haseł. - Wymóg przepisywania zniekształconego tekstu lub nagrań: Stosowanie systemów (ang.) CAPTCHA zmuszających do przepisywania wykrzywionych liter z obrazka lub transkrypcji słów z pliku audio bez zapewnienia dostępnej alternatywy.
- Rozbijanie kodu (ang.) OTP na pojedyncze kafelki wejściowe: Tworzenie formularzy dwuskładnikowych, gdzie każda cyfra kodu jednorazowego musi być wpisana w osobne pole
<input>, co uniemożliwia wklejenie całego ciągu znaków na raz. - Tekstowe pytania pomocnicze: Stosowanie pytań o „ulubioną książkę” czy „panieńskie nazwisko matki” jako jedynej formy odzyskiwania dostępu do konta, co zmusza do bezbłędnego odtworzenia zapisu z pamięci.
- Poleganie wyłącznie na tradycyjnym haśle bez asysty: Projektowanie systemów, gdzie jedyną metodą autoryzacji jest ręczne wpisanie skomplikowanego hasła, przy jednoczesnym braku alternatyw bezhasłowych oraz zablokowaniu wsparcia dla narzędzi pomocniczych.
Najlepsze praktyki
- Wdróż funkcję podglądu wprowadzanego hasła: Umieść przy polu hasła czytelny przełącznik (ikonę oka), który pozwala na opcjonalne odkrycie zamaskowanego tekstu, co diametralnie ułatwia weryfikację literówek i zmniejsza obciążenie poznawcze.
- Zastosuj standard (ang.) WebAuthn: Pozwól użytkownikom na w pełni bezpieczne i bezhasłowe logowanie z użyciem fizycznych kluczy bezpieczeństwa lub wbudowanej biometrii sprzętowej.
- Formułuj klarowne instrukcje operacyjne: Projektuj przejrzyste wskazówki krok po kroku dla każdego z oferowanych procesów logowania, minimalizując ryzyko popełnienia błędu.
- Zapewnij pomocne komunikaty o błędach: Twórz powiadomienia, które precyzyjnie naprowadzają na rozwiązanie problemu i nie wymagają ponownego odtwarzania z pamięci złożonych danych.
- Wspieraj i szanuj automatyzację: Dbaj o nieskazitelną czystość kodu HTML, stosując właściwe znaczniki semantyczne, by dać pełną swobodę zewnętrznym menedżerom haseł.
Metody testowania
- Testowanie manualne: Wygeneruj testowe hasło oraz kod jednorazowy, a następnie spróbuj zalogować się wyłącznie za pomocą klawiatury, using funkcji kopiowania i wklejania (Ctrl+V / Cmd+V) na każdym etapie autoryzacji. Upewnij się, że system bezproblemowo przyjmuje wklejane dane.
- Narzędzie deweloperskie (ang.) Developer Tools: Przeanalizuj strukturę drzewa DOM pól logowania. Zweryfikuj, czy znaczniki
<input>nie posiadają niedozwolonego atrybutuautocomplete="off"oraz czy skrypty JavaScript lub zdarzenia liniowe nie blokują operacji wklejania danych. - NVDA: Uruchom czytnik ekranu i przejdź całą ścieżkę uwierzytelniania bez patrzenia na monitor. Zweryfikuj, czy alternatywne metody logowania oraz instrukcje postępowania są w pełni zrozumiałe.
Sprawdź swoją wiedzę
W linku poniżej znajduje się 6 symulacji procesów uwierzytelniania. Oceń, które łamią kryterium 3.3.8 (wymuszają test funkcji poznawczych bez alternatywy lub mechanizmu wsparcia), a które są poprawne lub mieszczą się w wyjątku poziomu AA.
Jak to sprawdzić?
- Czy można wkleić hasło / kod OTP ze schowka (Ctrl+V / Cmd+V)?
- Czy pola mają poprawne
autocomplete(np.username,current-password,one-time-code), a nieautocomplete="off"? - Czy CAPTCHA wymaga przepisywania tekstu, czy wystarczy rozpoznanie obiektów / jest alternatywa?
- Czy istnieje metoda logowania wolna od testu pamięci (SSO, link e-mail, biometria)?
Notatka: Zanim zajrzysz do rozwiązania, przetestuj i zapisz swoje wnioski na kartce.
Proponowane narzędzia: Klawiatura, Myszka, Narzędzie deweloperskie (ang.) Developer Tools, NVDA
Link: https://pdc.ambiscale.com/training/wcag-3-3-8/
#1 BŁĄD
Problem: Skrypt blokuje zdarzenie wklej — nie da się wkleić hasła ze schowka.
Dlaczego: To klasyczny przypadek F109. Użytkownik musi ręcznie przepisywać hasło (test pamięci / precyzji), zamiast skorzystać z menedżera haseł lub schowka.
Naprawa: Usuń blokadę wklejania. Pozwól na wklejanie i wspieraj menedżery haseł (autocomplete="current-password").
#2 BŁĄD
Problem: Pola mają autocomplete="off" (także na formularzu).
Dlaczego: Blokada autouzupełniania odcina menedżery haseł i przeglądarkę — użytkownik musi odtworzyć dane z pamięci, bez mechanizmu wsparcia wymaganego przez 3.3.8.
Naprawa: Użyj autocomplete="username" i autocomplete="current-password". Nigdy nie ustawiaj autocomplete="off" na polach logowania.
#3 BŁĄD
Problem: Jedyna ścieżka to przepisanie zniekształconego tekstu CAPTCHA — bez alternatywy.
Dlaczego: Przepisywanie znaków to test funkcji poznawczych. Na poziomie AA jest to błąd, jeśli nie ma innej metody (np. rozpoznanie obiektów, puzzle dostępne, albo całkowicie inna ścieżka logowania).
Naprawa: Zastąp CAPTCHA tekstową rozpoznawaniem obiektów, dodaj dostępne audio / inną metodę, albo przenieś weryfikację na ścieżkę bez testu poznawczego (np. link e-mail, SSO).
#4 BŁĄD
Problem: Kod rozbity na 6 osobnych pól — wklejenie całego ciągu nie działa (tylko pierwsza cyfra / blokada).
Dlaczego: Użytkownik musi przepisywać kod cyfra po cyfrze między urządzeniami. To uniemożliwia mechanizm wsparcia (wklejenie OTP ze schowka / SMS).
Naprawa: Jedno pole na cały kod z autocomplete="one-time-code" i pełnym wsparciem wklejania. Jeśli zostawiasz kafelki UI, obsłuż paste całego ciągu w JS.
#5 DOBRZE
Dlaczego: Wklejanie działa, pola mają poprawne autocomplete, jest podgląd hasła (zmniejsza obciążenie poznawcze) oraz alternatywy bez testu pamięci: link e-mail i SSO. Spełnia wymogi 3.3.8.
#6 DOBRZE
Dlaczego: Test polega wyłącznie na rozpoznaniu powszechnych obiektów (samochody), a nie na przepisywaniu tekstu ani rozwiązywaniu zadań matematycznych. Na poziomie AA jest to dozwolone. Uwaga: na AAA (3.3.9) ten wyjątek znika.
Źródła
- Abou-Zahra S., Eggert E., Vanderheiden G. [i in.] (red.), „3.3.8 Accessible Authentication (Minimum) Level AA”, [w:] Web Content Accessibility Guidelines (WCAG) 2.2 Quick Reference, 2025, https://www.w3.org/WAI/WCAG22/quickref/#accessible-authentication-minimum [dostęp: 02.06.2026].
- Accessibility Guidelines Working Group Participants, „Understanding SC 3.3.8 Accessible Authentication (Minimum) (Level AA)”, [w:] WCAG 2.2 Understanding Docs, 2026, https://www.w3.org/WAI/WCAG22/Understanding/accessible-authentication-minimum.html [dostęp: 02.06.2026].
- Accessibility Guidelines Working Group Participants, „Technique F109: Failure of Success Criterion 3.3.8 and 3.3.9 due to preventing password or code re-entry in the same format”, [w:] Techniques for WCAG 2.2, 2026, https://www.w3.org/WAI/WCAG22/Techniques/failures/F109 [dostęp: 02.06.2026].
- DOCK sp. z o.o., WCAG 3.3.8: Dostępne uwierzytelnianie (minimum), https://wcag.dock.codes/pl/dokumentacja/wcag-338/ [dostęp: 02.06.2026].
Dodatkowe linki
- W3C WCAG:
- Dokładna definicja: https://www.w3.org/WAI/WCAG22/quickref/#accessible-authentication-minimum
- Zrozumienie podpunktu: https://www.w3.org/WAI/WCAG22/Understanding/accessible-authentication-minimum.html