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 niemousedown/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
pointerupi 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
pointerdownjako 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
mousedownpoza obszarem zamiast przyclick, „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.