Poziom
AA
Od wersji
WCAG 2.2
/ Kryterium WCAG

2.5.7 Ruchy przeciągania

Wszystko, co robi się przeciąganiem, na przykład zmianę kolejności listy albo przesuwanie suwaka, musi dać się zrobić także pojedynczymi stuknięciami lub kliknięciami, chyba że przeciąganie jest niezbędne.

/ Czego wymaga

Ruch przeciągania to działanie, w którym wskaźnik chwyta element przy zdarzeniu naciśnięcia, a element albo jego obraz podąża za wskaźnikiem aż do zdarzenia zwolnienia. Wymaga to naciśnięcia, przytrzymania, przesunięcia i puszczenia w jednym kontrolowanym ruchu. Kryterium wymaga, żeby każdą funkcję obsługiwaną w ten sposób dało się wykonać także pojedynczym wskaźnikiem bez przeciągania: stuknąć element, a potem miejsce docelowe, użyć przycisków ze strzałkami lub menu albo wpisać wartość w pole. Pomaga to osobom z drżeniem rąk lub słabym chwytem oraz osobom korzystającym z trackballa, wskaźnika na głowę, sterowania wzrokiem albo myszy sterowanej głosem, dla których przeciąganie jest zawodne lub niemożliwe.

Przeciąganie może zostać jedyną drogą, gdy jest niezbędne albo gdy zapewnia je przeglądarka, a autor go nie zmienił, jak przy przewijaniu strony lub obszaru przewijanego dzięki właściwości overflow w CSS. Skrypt, który zastępuje przewijanie przeglądarki własnym, wprowadza to przewijanie w zakres kryterium. Alternatywa nie musi być tym samym komponentem: koło kolorów spełnia kryterium, jeśli obok są pola tekstowe na wartość koloru. Obsługę z klawiatury ocenia się osobno przy 2.1.1 i nie wystarcza ona, jeśli nie idą z nią kontrolki do kliknięcia lub stuknięcia, a alternatywą nie może być też przesunięcie palcem, które naruszałoby 2.5.1.

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ą

  • Kolejność na sortowanej liście można zmienić tylko, przeciągając elementy w górę i w dół, bez przycisków przenoszenia i bez pola z numerem pozycji.
  • Karty na tablicy kanban zmieniają status tylko po przeciągnięciu do innej kolumny.
  • Własny suwak zmienia wartość tylko wtedy, gdy przeciąga się jego uchwyt, a kliknięcie w tor nic nie robi.
  • Narzędzie do kadrowania ustawia zaznaczenie tylko przez przeciąganie narożników, bez pól liczbowych i bez możliwości wskazania narożników kliknięciem.
  • Quiz z dopasowywaniem każe narysować linię od każdego elementu do jego pary, a kliknięcie jednego elementu, a potem drugiego, nic nie daje.

/ Jak sprawdzić samodzielnie

  1. Spisz wszystkie funkcje, które reagują na przeciąganie: sortowane listy, tablice kanban, suwaki, mapy, narzędzia do kadrowania i zaznaczania, próbniki kolorów, karuzele, które można pociągnąć, oraz ćwiczenia z dopasowywaniem lub rysowaniem.
  2. Obsłuż każdą z nich wyłącznie stuknięciami lub kliknięciami, nigdy nie trzymając przycisku podczas ruchu.
  3. Jeśli jedyną alternatywą jest klawiatura, tutaj się nie liczy. Sprawdź, czy na ekranie jest coś, co można kliknąć albo stuknąć.
  4. Sprawdź, czy alternatywa prowadzi do tych samych wyników co przeciąganie, na przykład do dowolnej pozycji na liście albo do dowolnej kolumny na tablicy.
  5. Odłóż na bok przewijanie strony lub przewijanego pola własnymi mechanizmami przeglądarki, które zapewnia przeglądarka, chyba że skrypt je zastąpił.

/ Jak to naprawić

  • Na sortowanych listach dodaj do każdego elementu przyciski „w górę” i „w dół” albo pole liczbowe z jego pozycją.
  • Na tablicach dodaj do każdej karty menu „Przenieś do” z listą pozostałych kolumn.
  • Buduj suwaki na input type="range" albo pozwól, żeby własny tor przyjmował kliknięcie lub stuknięcie w dowolnym miejscu, i dodaj pole tekstowe na dokładną wartość.
  • W narzędziach do kadrowania i zaznaczania pozwól kliknąć jeden narożnik, a potem przeciwległy, i daj pola liczbowe na położenie i rozmiar.
  • Mapom i karuzelom, które można przeciągać, daj przyciski do przesuwania widoku oraz do poprzedniego i następnego elementu.

/ Co sprawdza nasz skaner

Nasz skan nie wykrywa przeciągania. Przeciąganie obsługuje skrypt przez zdarzenia wskaźnika albo interfejs drag and drop, skan nie czyta tej obsługi i sam niczego nie przeciąga. Wersja HTML_CodeSniffer w naszym walidatorze w ogóle nie ma testu dla 2.5.7. W audycie ręcznym człowiek sprawdza, czy każdą przeciąganą funkcję da się obsłużyć kliknięciem lub stuknięciem.

/ 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 przeciąganie i upuszczanie jest dozwolone w WCAG 2.2?

Tak. Przeciąganie może zostać. Kryterium 2.5.7 wymaga drugiej drogi do tego samego wyniku, pojedynczym wskaźnikiem i bez przeciągania, na przykład przycisków przenoszenia, menu albo stuknięcia w miejsce docelowe. Przeciąganie bez takiej alternatywy narusza kryterium, chyba że jest niezbędne albo zapewnia je przeglądarka bez zmian autora.

Czy obsługa przeciągania z klawiatury spełnia kryterium 2.5.7?

Sama w sobie nie. Dostępu z klawiatury wymaga kryterium 2.1.1 Klawiatura i sprawdza się go osobno. 2.5.7 dotyczy osób korzystających ze wskaźnika, często na ekranie dotykowym bez klawiatury, więc alternatywą musi być coś, co da się kliknąć albo stuknąć.

Czy kryterium 2.5.7 Ruchy przeciągania jest wymagane do zgodności z poziomem AA?

W WCAG 2.2 tak. To kryterium poziomu AA dodane w WCAG 2.2, więc audyt na zgodność z WCAG 2.2 AA je obejmuje. Nie należy do WCAG 2.0 ani 2.1, więc audyt według tych wersji go nie sprawdza.