Annullamento del puntatore
Le funzioni attivate da un singolo puntatore devono scattare all'evento di rilascio, non all'evento di pressione — in modo che gli utenti possano trascinare via per annullare. Devono essere disponibili annullamento, ripristino o cancellazione prima dell'attivazione, salvo quando l'attivazione immediata è essenziale.
Cosa richiede
Quando un utente inizia un tocco o un clic e poi si accorge di essere sul bersaglio sbagliato, deve poter scorrere via prima di sollevare il dito o rilasciare il mouse, e l’azione non deve scattare. Ciò significa che l’attivazione deve avvenire su pointerup / click — il comportamento predefinito del browser — e non su pointerdown / mousedown.
Il criterio di successo richiede una delle quattro seguenti garanzie:
- L’evento di pressione non attiva la funzione, oppure
- Il completamento avviene sull’evento di rilascio sullo stesso bersaglio, con la possibilità di annullare spostandosi via, oppure
- È disponibile un’opzione «annulla» dopo l’attivazione, oppure
- L’inverso della funzione inverte il risultato (interruttore).
Le attivazioni essenziali — come la pressione di un tasto di pianoforte in un’app musicale — sono esenti.
Come soddisfarlo
- Usare listener
click, nonmousedown/touchstart. Il browser implementa già il comportamento corretto di annullamento al trascinamento. - Per i widget personalizzati che gestiscono gli eventi del puntatore manualmente, attivare su
pointerupe verificare che il bersaglio sia ancora lo stesso elemento sotto il cursore. - Per le azioni distruttive (elimina, invia), abbinare a un passaggio di conferma o a un avviso di annullamento.
- Per i pulsanti di commutazione (silenzioso, preferito, stato premuto), un secondo tocco inverte la modifica, soddisfacendo anch’esso il criterio.
Errori comuni
- Pulsanti collegati con
onmousedownche scattano non appena il puntatore preme. Trascinare via non produce alcun effetto. - Maniglie di trascinamento personalizzate che interpretano
pointerdowncome evento di «selezione». - Schede dall’aspetto nativo che navigano verso una pagina di dettaglio su
touchstart— l’utente non può scorrere oltre senza attivarle accidentalmente. - Menu a discesa che si chiudono su
mousedownesterno anziché suclick, consumando il clic.
Perché è importante
Trascinare via per annullare è il modo in cui gli utenti con tremore, disabilità motorie o puntamento impreciso (stilo su un treno in movimento) si riprendono da un tocco errato. Attivare sull’evento di pressione elimina questa via di fuga — non appena il dito tocca, l’azione è confermata. È anche un onere di usabilità per tutti: anche gli utenti senza disabilità fanno regolarmente affidamento sul trascinamento via quando il tocco atterra sul bersaglio sbagliato.