Wróć do wszystkich kryteriów

2.2.1 Regulacja czasu (ang.) Timing Adjustable

Specjalizacje:

  • Designer
  • Deweloper

Elementy:

  • Dialogi i warstwy
  • Formularze
  • Uwierzytelnianie

Poziomy:

  • A

Spis treści

    Istota i cel kryterium

    Głównym celem tego kryterium jest zapewnienie, aby użytkownicy mieli wystarczająco dużo czasu na przeczytanie treści i ukończenie interakcji. Wiele osób z niepełnosprawnościami potrzebuje go znacznie więcej, aby zrozumieć komunikat, obsłużyć formularz lub zareagować na zmianę w interfejsie. Zgodnie z wytycznymi, kontrola nad upływającym czasem musi należeć do użytkownika, a nie być narzucona odgórnie bez możliwości ingerencji.

    Definicja w j. angielskim

    Definicja dostępna pod adresem (link otworzy się w nowej karcie):
    https://www.w3.org/WAI/WCAG22/quickref/#timing-adjustable

    Definicja w j. polskim

    Definicja dostępna pod adresem (link otworzy się w nowej karcie):
    https://www.w3.org/Translations/WCAG21-pl/#dostosowanie-czasu

    Słownik pojęć

    Limit czasu (ang.) Time limit
    –

    Określony czas, po którym treść lub funkcjonalność ulega zmianie, wygasa lub staje się niedostępna.

    Wpływ na dostępność (Kogo wspierasz?)

    • Osoby z niepełnosprawnościami poznawczymi: Użytkownicy z (ang.) ADHD, dysleksją czy zaburzeniami pamięci często potrzebują więcej czasu na skupienie się i zrozumienie komunikatów.
    • Osoby z niepełnosprawnościami ruchowymi: Korzystanie z technologii wspomagających, takich jak przełączniki czy klawiatury ekranowe, bywa procesem wolniejszym niż obsługa standardowej myszy.
    • Osoby starsze: Naturalne spowolnienie procesów poznawczych sprawia, że sztywne limity czasowe stają się barierą nie do przejścia przy skomplikowanych formularzach.
    • Osoby nieposiadające języka ojczystego: Czytanie i wypełnianie dokumentacji w obcym języku wymaga dodatkowego czasu na weryfikację znaczeń.

    Zasady wdrażania i wymagania techniczne

    Dla każdego limitu czasu ustawionego przez treść musi być spełniony przynajmniej jeden z warunków:

    1. Wyłączenie: Użytkownik może wyłączyć limit przed jego upływem.
    2. Dostosowanie: Użytkownik może zmienić limit na co najmniej 10-krotnie dłuższy od domyślnego.
    3. Przedłużenie: Użytkownik jest ostrzegany co najmniej 20 sekund przed końcem czasu i może go przedłużyć przynajmniej 10 razy za pomocą prostego działania (np. naciśnięcia spacji).

    Ważne: Mechanizm ostrzegania powinien automatycznie przenosić fokus na przycisk przedłużenia, aby umożliwić szybką reakcję.

    Wyjątki i sytuacje szczególne

    Kryterium nie ma zastosowania w trzech przypadkach:

    • Zdarzenia w czasie rzeczywistym: Np. aukcje online lub transmisje na żywo, gdzie zatrzymanie czasu zepsułoby istotę wydarzenia.
    • Niezbędność ((ang.) Essential): Gdy limit jest niezbędny (np. krótkotrwała rezerwacja biletów w celu uniknięcia ich blokowania), choć zaleca się przeniesienie jak największej ilości zadań poza ten limit.
    • Limit 20-godzinny: Jeśli limit przekracza 20 godzin, nie wymaga on regulacji.
    • Bezpieczeństwo: Niektóre limity związane z uwierzytelnianiem wieloskładnikowym (2FA) mogą być uznane za niezbędne ze względów bezpieczeństwa.

    Przykłady implementacji

    Najczęstsze błędy

    • F40/F41: Stosowanie elementu <meta> do automatycznego odświeżania lub przekierowania strony po określonym czasie.
    • F58: Automatyczne przekierowanie po stronie serwera po wygaśnięciu limitu czasu ((ang.) timeout) bez uprzedniego ostrzeżenia.
    • Zbyt krótki czas na reakcję: Ostrzeżenie pojawia się zbyt późno (poniżej 20 sekund przed końcem).

    Najlepsze praktyki

    • Unikaj limitów sesji: Projektuj procesy tak, aby nie wygasały, chyba że jest to krytyczne dla bezpieczeństwa.
    • Zapisywanie postępów: Jeśli sesja musi wygasnąć, zachowaj dane z formularzy, aby użytkownik mógł kontynuować po ponownym zalogowaniu.
    • Domyślna długość: Ustawiaj limity na tyle długo, by 10-krotne wydłużenie pokrywało potrzeby niemal wszystkich użytkowników.
    • Jasne ostrzeżenia o limitach: Upewnij się, że komunikaty o kończącym się czasie są widoczne, dostępne cyfrowo i sformułowane w sposób uspokajający (pozbawione alarmistycznego tonu).

    Metody testowania

    • Narzędzie deweloperskie (ang.) Developer Tools: Wyszukaj w kodzie wystąpienia tagu <meta http-equiv="refresh"> oraz funkcji setTimeout w (ang.) JavaScript.
    • NVDA: Sprawdź, czy okno modalne z ostrzeżeniem o sesji jest anonsowane przez czytnik natychmiast po pojawieniu się.
    • Testowanie manualne: Sprawdź, czy po naciśnięciu „Przedłuż” stoper faktycznie dodaje czas i czy można to zrobić wielokrotnie (min. 10 razy).
    • (ang.) W3C Markup Validation Service: Użyj do wykrycia nieprawidłowych znaczników przekierowań w nagłówku strony.

    Sprawdź swoją wiedzę

    W linku poniżej znajduje się 5 przykładów interfejsu z limitami czasowymi. Twoim zadaniem jest ocenić, czy dają one użytkownikowi odpowiednią kontrolę nad uciekającym czasem.

    Jak to sprawdzić?

    1. Uruchom dany komponent (kliknij przycisk).
    2. Obserwuj, co dzieje się, gdy czas upływa.
    3. Sprawdź, czy możesz zatrzymać, wydłużyć lub wyłączyć limit.
    4. Zwróć uwagę, kiedy pojawiają się ostrzeżenia (czy jest to na co najmniej 20 sekund przed końcem?).
    5. Zastanów się, czy dany limit jest uzasadnionym wyjątkiem (np. wydarzenie w czasie rzeczywistym).

    Uwaga: Przykłady są symulacją. Limity czasowe zostały dobrane tak, aby móc je szybko przetestować bez długiego czekania.
    Notatka: Zanim zajrzysz do rozwiązania, przetestuj i zapisz swoje wnioski na kartce.
    Proponowane narzędzia: Stoper/Analiza zachowania, Klawiatura, Narzędzie deweloperskie (ang.) Developer Tools, NVDA

    Link: https://pdc.ambiscale.com/training/wcag-2-2-1/

    #1 BŁĄD

    Problem: Sztywny limit czasu (15 sekund) bez możliwości pauzy, wydłużenia lub wyłączenia.
    Dlaczego: Użytkownik z niepełnosprawnością motoryczną lub poznawczą może nie zdążyć wypełnić formularza i bezpowrotnie traci wpisane dane.
    Naprawa: Usuń limit czasu, chyba że jest absolutnie niezbędny. Jeżeli musi istnieć, zapewnij mechanizm jego wydłużania.


    #2 DOBRZE

    Dlaczego: System ostrzega użytkownika na równo 20 sekund przed końcem czasu i daje możliwość jego przedłużenia poprzez prostą akcję (kliknięcie przycisku „Przedłuż sesję”). Fokus klawiatury jest odpowiednio przenoszony na okno ostrzeżenia, aby ułatwić natychmiastową reakcję.


    #3 DOBRZE

    Dlaczego: Licytacja to wydarzenie w czasie rzeczywistym. Zatrzymanie lub wydłużenie czasu przez jednego użytkownika zepsułoby działanie systemu i przebieg aukcji dla pozostałych licytujących. Jest to jeden z wyjątków wymienionych w kryterium 2.2.1.


    #4 BŁĄD

    Problem: Ostrzeżenie o końcu czasu pojawia się zbyt późno (tylko 5 sekund przed końcem).
    Dlaczego: Zgodnie z wytycznymi WCAG, użytkownik musi otrzymać ostrzeżenie na co najmniej 20 sekund przed upłynięciem czasu, z prostą możliwością jego wydłużenia. 5 sekund to zdecydowanie za mało na reakcję dla osób korzystających np. z technologii asystujących lub przełączników.


    #5 BŁĄD

    Problem: Automatyczne odświeżenie strony po określonym czasie, narzucone odgórnie bez zgody użytkownika (często spotykane przy użyciu znacznika <meta http-equiv="refresh">).
    Dlaczego: Użytkownik może czytać artykuł lub analizować dane. Gdy strona nagle się przeładuje, straci kontekst, ostrość uwagi i być może fokus klawiatury.
    Naprawa: Zapewnij opcję wstrzymania odświeżania lub ręcznego ładowania nowych wiadomości (np. powiadomienie „Dostępne nowe wiadomości. Kliknij, aby odświeżyć”).

    Źródła

    Wróć do wszystkich kryteriów