Poziom
A
Od wersji
WCAG 2.1
/ Kryterium WCAG

2.5.4 Aktywowanie ruchem

Wszystko, co uruchamia się potrząśnięciem lub przechyleniem urządzenia albo gestem przed kamerą, musi działać także zwykłą kontrolką, a reakcję na ruch musi dać się wyłączyć.

/ Czego wymaga

Telefony i tablety mają czujniki ruchu, a kamera potrafi odczytywać gesty. Gdy treść pozwala uruchamiać funkcję ruchem urządzenia, na przykład potrząśnięciem lub przechyleniem, albo ruchem użytkownika, na przykład machnięciem ręką przed kamerą, kryterium wymaga dwóch rzeczy. Ta sama funkcja musi być dostępna także przez komponenty interfejsu, takie jak przyciski. A reakcję na ruch musi dać się wyłączyć, żeby nie uruchamiała się przypadkiem. Chroni to osoby, których urządzenie jest przymocowane do wózka lub stojaka, osoby, które nie mogą pewnie trzymać ani poruszać urządzeniem, i osoby z drżeniem rąk, które uruchamiałyby funkcję mimowolnie.

Obowiązują dwa wyjątki. Ruch służy do obsługi funkcji przez interfejs obsługiwany przez dostępność, co obejmuje też zwykły ruch przy pisaniu, obsłudze myszy lub ekranu dotykowego albo technologii wspomagającej. Albo ruch jest niezbędny dla funkcji, a zastąpienie go zniweczyłoby całą czynność, jak w krokomierzu liczącym kroki. Kryterium nie dotyczy przemieszczania się w przestrzeni rejestrowanego przez geolokalizację lub nadajniki (beacony) ani kierowania kamery na kod QR czy dokument. Część o wyłączaniu można spełnić, respektując ustawienie systemu operacyjnego, które wyłącza wykrywanie ruchu.

/ Jak strony go nie spełniają

  • Potrząśnięcie telefonem cofa ostatni wpis, a nie ma ani przycisku cofania, ani ustawienia, które wyłącza potrząsanie.
  • Suwak zmienia wartość, gdy urządzenie się przechyla, bez przycisków do tej samej zmiany i bez możliwości wyłączenia reakcji na przechylenie.
  • Zdjęcie produktu w widoku 360 stopni obraca się tylko wtedy, gdy porusza się urządzeniem, i nie ma przycisków ze strzałkami.
  • Galeria przechodzi do następnego zdjęcia po machnięciu ręką przed kamerą i nie ma przycisku dalej.
  • Przechylenie tabletu przewraca stronę w czytniku e-booków. Przyciski stron są, ale nic nie chroni przed przypadkowym przewróceniem strony.

/ Jak sprawdzić samodzielnie

  1. Przeszukaj skrypty pod kątem nasłuchiwania zdarzeń devicemotion i deviceorientation, interfejsów czujników Accelerometer i Gyroscope oraz dostępu do kamery przez getUserMedia. Pokazują one, gdzie strona może odczytywać ruch.
  2. Na telefonie lub tablecie potrząśnij urządzeniem, przechyl je i obróć na każdej stronie, która z tego korzysta, i zanotuj, co robi każdy ruch.
  3. Dla każdej funkcji znajdź przycisk, link albo inną kontrolkę, która robi to samo bez poruszania urządzeniem.
  4. Poszukaj na stronie lub w aplikacji ustawienia, które wyłącza reakcję na ruch, i sprawdź, czy po wyłączeniu ruch nie ma już żadnego skutku.
  5. Odłóż na bok ruch niezbędny dla czynności, taki jak liczenie kroków, oraz ruch potrzebny, żeby skierować kamerę na rozpoznawany obiekt.

/ Jak to naprawić

  • Każdej funkcji uruchamianej ruchem daj zwykłą kontrolkę: przycisk cofania obok pola, przyciski stron w czytniku, przyciski ze strzałkami w widoku 360 stopni.
  • Dodaj ustawienie zapamiętywane dla użytkownika, które przestaje reagować na zdarzenia devicemotion i deviceorientation, i usuwaj nasłuchiwacze, gdy jest wyłączone.
  • Respektuj ustawienia systemu operacyjnego, którymi ludzie wyłączają funkcje sterowane ruchem, i nie obchodź ich.
  • Zaczynaj odczyt czujników ruchu dopiero wtedy, gdy użytkownik włączy funkcję, a nie od chwili załadowania strony.
  • Gesty przed kamerą traktuj tak samo: machnięcie czy skinienie głową może być skrótem, ale nigdy jedyną drogą dalej.

/ Co sprawdza nasz skaner

To kryterium nie ma w naszym skanie automatycznego testu. Skan działa w przeglądarce bez interfejsu, która nie ma czujników do poruszenia, a żadna z jego reguł nie szuka nasłuchiwania devicemotion ani deviceorientation. HTML_CodeSniffer ostrzega przed atrybutem ondevicemotion zapisanym w HTML, ale ostrzeżenie odpada tak samo jak uwaga, bo skan zachowuje tylko błędy. W audycie ręcznym urządzeniem się potrząsa i je przechyla, a każdą alternatywę sprawdza się w praktyce.

/ 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 funkcja „potrząśnij, aby cofnąć” narusza WCAG?

Tylko wtedy, gdy jest jedyna. Potrząsanie, żeby cofnąć, jest dozwolone, jeśli to samo cofnięcie da się wykonać zwykłą kontrolką, na przykład przyciskiem, i jeśli reakcję na potrząsanie można wyłączyć. W3C podaje właśnie takie połączenie, gest potrząśnięcia i przycisk obok pola, jako przykład spełnienia kryterium.

Czy kryterium 2.5.4 dotyczy orientacji ekranu albo geolokalizacji?

Nie. Kryterium dotyczy ruchu używanego świadomie jako polecenie, na przykład potrząśnięcia, przechylenia albo gestu przed kamerą. Nie obejmuje przemieszczania się człowieka w przestrzeni rejestrowanego przez geolokalizację lub nadajniki. Treść zablokowana w pionie albo w poziomie to osobna sprawa, którą reguluje kryterium 1.3.4 Orientacja.

Kiedy wolno sterować ruchem bez alternatywy?

Gdy ruch jest niezbędny, a zastąpienie go zniweczyłoby czynność, jak w krokomierzu liczącym kroki, albo gdy ruch obsługuje funkcję przez interfejs obsługiwany przez dostępność. Poza tymi wyjątkami ruch może być jednym ze sposobów działania, nigdy jedynym, i musi dać się wyłączyć.