Standardy · WCAG 2.2

SC 2.5.2 Poziom A WCAG 2.1

Anulowanie wskaźnika

Funkcje wyzwalane przez pojedynczy wskaźnik muszą być aktywowane przy zdarzeniu zwolnienia, a nie naciśnięcia — aby użytkownik mógł przeciągnąć poza obszar i anulować. Wymagane jest anulowanie, cofnięcie lub dezaktywacja przed potwierdzeniem, chyba że natychmiastowa aktywacja jest niezbędna.

Czego wymaga

Gdy użytkownik rozpoczyna stuknięcie lub kliknięcie, a następnie zorientuje się, że jest na złym elemencie, powinien móc zsunąć palec przed uniesieniem go / zwolnieniem myszy, a akcja nie powinna się aktywować. Oznacza to, że aktywacja musi nastąpić przy zdarzeniu pointerup / click — standardowe zachowanie przeglądarki — a nie przy pointerdown / mousedown.

Kryterium wymaga jednej z czterech gwarancji:

  • Zdarzenie naciśnięcia nie wyzwala funkcji, lub
  • Zakończenie następuje przy zdarzeniu zwolnienia nad tym samym elementem docelowym, z możliwością anulowania przez odsunięcie wskaźnika, lub
  • Po aktywacji dostępna jest opcja „cofnij”, lub
  • Odwrotność funkcji cofa wynik (przełącznik).

Aktywacje niezbędne — jak wciśnięcie klawisza fortepianu w aplikacji muzycznej — są zwolnione z wymagania.

Jak spełnić wymaganie

  • Używaj nasłuchiwania zdarzenia click, a nie mousedown / touchstart. Przeglądarka już implementuje właściwe zachowanie anulowania przeciągnięciem.
  • W niestandardowych widżetach obsługujących zdarzenia wskaźnika ręcznie, aktywuj przy pointerup i sprawdź, czy element docelowy jest nadal tym samym elementem pod kursorem.
  • Dla akcji destrukcyjnych (usuń, wyślij) dodaj krok potwierdzenia lub powiadomienie typu Cofnij.
  • Dla przycisków przełączania (wycisz, ulubione, stan wciśnięty) drugie stuknięcie cofa zmianę, co też spełnia wymaganie kryterium.

Typowe błędy

  • Przyciski podłączone przez onmousedown, które aktywują się natychmiast po naciśnięciu wskaźnika. Przeciągnięcie poza obszar nie ma efektu.
  • Niestandardowe uchwyty przeciągania interpretujące pointerdown jako zdarzenie „zaznaczenia”.
  • Karty imitujące zachowanie natywne, które nawigują do strony szczegółów przy zdarzeniu touchstart — użytkownik nie może przewinąć obok bez przypadkowej aktywacji.
  • Menu rozwijane zamykające się przy mousedown poza obszarem zamiast przy click, „pochłaniające” kliknięcie.

Dlaczego to ważne

Przeciągnięcie poza obszar w celu anulowania to sposób, w jaki użytkownicy z drżeniem, niepełnosprawnościami ruchowymi lub niedokładnym wskazywaniem (rysik na kołyszącym się pociągu) odzyskują kontrolę po błędnym stuknięciu. Aktywacja przy zdarzeniu naciśnięcia usuwa tę możliwość wyjścia — gdy palec dotyka ekranu, akcja jest już zatwierdzona. Jest to też ograniczenie użyteczności dla wszystkich: nawet użytkownicy bez niepełnosprawności rutynowo polegają na przeciągnięciu poza obszar, gdy stuknięcie ląduje na złym elemencie.