Annullamento del puntatore
Silktide rileva i pulsanti e i link che agiscono nel momento in cui vengono premuti, invece che quando la pressione viene rilasciata. Agire al rilascio dà alle persone la possibilità di rimediare alla pressione dell'elemento sbagliato spostando il puntatore prima di rilasciare.
Perché è importante
Capita a tutti di premere occasionalmente il pulsante sbagliato, ma le persone con tremori, destrezza limitata o problemi di vista lo fanno molto più spesso. Il gesto universale per rimediare consiste nel continuare a tenere premuto, trascinare il puntatore fuori dal controllo e rilasciare: funziona perché normalmente i pulsanti e i link agiscono al rilascio. Un controllo configurato per reagire alla pressione iniziale elimina questa possibilità di fuga: l'azione viene eseguita immediatamente, senza possibilità di annullarla. In un pulsante per l'invio di un modulo o per l'eliminazione, un semplice errore diventa irreversibile.
Questo è il criterio di successo 2.5.2 delle (Annullamento del puntatore), un requisito di , parte del livello di conformità più basilare.
Come risolvere il problema
- Attiva le azioni dall'evento
click, che viene generato al rilascio, invece che damousedown,pointerdownotouchstart. - Se un controllo deve realmente rispondere alla pressione iniziale, ad esempio un tasto di pianoforte in un'app musicale, assicurati che il rilascio fuori dal controllo annulli o revochi l'azione, oppure fornisci un'opzione per annullarla.
- Se il listener segnalato non attiva effettivamente un'azione (potrebbe semplicemente aggiungere un effetto visivo di pressione), puoi il risultato.
// Problema: viene eseguito immediatamente alla pressione e non può essere annullato
button.addEventListener('mousedown', submitForm);
// Soluzione: viene eseguito al rilascio, quindi trascinare il puntatore fuori annulla l'azione
button.addEventListener('click', submitForm);
Come Silktide esegue il controllo
- Carica ogni pagina in un browser reale e registra i listener degli eventi che registra.
- Individua i listener per gli eventi di pressione:
mousedown,pointerdownetouchstart. - Segnala un listener quando è associato a un controllo normalmente attivato al
rilascio: un pulsante, un link, un campo di invio o di reimpostazione, oppure un
elemento con un ruolo come
button,link,menuitem,taboswitch. - Ignora i listener applicati all'intera pagina e non associati a un controllo specifico, che di solito riguardano lo scorrimento o la gestione del trascinamento invece dell'attivazione.
- Poiché Silktide non può determinare cosa fa il codice del listener, i risultati vengono segnalati per la tua conferma invece di essere conteggiati come errori confermati.
Risoluzione dei problemi
Il listener non attiva nulla
I listener degli eventi di pressione vengono spesso usati per effetti innocui: uno
stile che indica la pressione, un'animazione a increspatura o la gestione dello
stato attivo, mentre l'azione vera e propria continua a essere eseguita su click.
Questo soddisfa il criterio; approva il risultato.
Il controllo è uno slider o una maniglia di trascinamento
Slider, maniglie di trascinamento e widget simili devono legittimamente rilevare la pressione iniziale. Le WCAG considerano l'evento di pressione essenziale per queste interazioni; approva il risultato.