Vai al contenuto
SilktideAiuto

Scorciatoie da tastiera con caratteri

Silktide individua le pagine che registrano un listener da tastiera sull'intera pagina: sul documento, sulla finestra o su <body>/<html>; quindi chiede di verificare se sia necessario prevedere una via d'uscita per eventuali scorciatoie composte da un singolo carattere.

Esempi comuni sono premere j per scorrere verso il basso, / per spostare il focus sulla ricerca oppure g e poi h per tornare alla home page.

Si tratta di un : un listener da tastiera globale è un motivo concreto per effettuare una verifica, ma Silktide non può stabilire dalla sola registrazione se il gestore implementi una scorciatoia composta da un singolo carattere. Le pagine prive di un listener da tastiera globale non vengono segnalate.

Perché è importante

Due gruppi sono particolarmente penalizzati dalle scorciatoie sempre attive composte da un singolo tasto:

  • Le persone che usano l'input vocale dettano testi e comandi ad alta voce. Il software converte la loro voce in pressioni di tasti, perciò una frase normale diventa una sequenza di attivazioni accidentali di scorciatoie: le pagine possono spostarsi, le finestre di dialogo possono aprirsi e le azioni possono essere eseguite nel corso della frase.
  • Le persone con scarsa destrezza o tremori premono regolarmente tasti diversi da quelli che intendevano premere, e qualsiasi singolo tasto può attivare un'azione.

Il criterio di successo 2.1.4 (livello A) richiede pertanto che le scorciatoie composte da un singolo carattere possano essere disattivate, rimappate in modo da includere un tasto modificatore come Ctrl o Alt, oppure attivate solo quando il controllo pertinente ha il .

Come risolvere il problema

Per ogni gestore globale della tastiera che implementa una scorciatoia composta da un singolo carattere, procedi in uno dei seguenti modi:

  1. Fornisci un'impostazione che disattivi le scorciatoie.
  2. Richiedi un tasto modificatore, in modo che la scorciatoia diventi, ad esempio, Ctrl+K anziché k.
  3. Gestisci il tasto solo quando il controllo pertinente ha il focus: le scorciatoie associate a un controllo con il focus sono esplicitamente consentite.
// Si attiva ogni volta che viene premuto "k", ovunque nella pagina
document.addEventListener('keydown', (e) => {
  if (e.key === 'k') openSearch();
});

// Corretto: richiede che Ctrl (o Cmd) sia tenuto premuto
document.addEventListener('keydown', (e) => {
  if (e.key === 'k' && (e.ctrlKey || e.metaKey)) openSearch();
});

Se un listener segnalato non contiene scorciatoie composte da un singolo carattere o offre già una di queste vie d'uscita, il risultato.

Come esegue i controlli Silktide

  1. Raccoglie i da tastiera che la pagina registra nel browser.
  2. Mantiene solo i listener applicati all'intera pagina, ovvero quelli associati al documento, alla finestra o all'elemento <body>/<html>. I listener sui singoli controlli sono esenti, perché si attivano solo quando quel controllo ha il focus.
  3. Segnala ogni listener rimanente affinché tu possa confermarlo. Silktide non analizza il codice del gestore alla ricerca di schemi come e.key === '…': questo approccio è troppo fragile con il codice minimizzato e quello basato su framework. La presenza di un listener da tastiera globale è il segnale; la tua verifica è il verdetto.

Risoluzione dei problemi

Il listener non è una scorciatoia composta da un singolo carattere

Molti gestori globali della tastiera controllano solo il tasto Esc, i tasti freccia o le combinazioni con tasti modificatori. Se il tuo non contiene scorciatoie composte da un singolo carattere, approva il risultato.

La scorciatoia può già essere disattivata o rimappata

Silktide può vedere la registrazione del listener, ma non può verificare se il sito offre un'opzione nelle impostazioni. Se la offre, la pagina è conforme: approva il risultato.

Scorciatoie provenienti da script di terze parti

I widget di chat, i lettori video e gli strumenti di Analytics a volte registrano i propri listener da tastiera globali. Incidono comunque sulla tua pagina; verifica le opzioni di accessibilità del fornitore o sottoponi il problema alla sua attenzione.

Scorciatoie create con l'attributo accesskey

Queste sono coperte separatamente dal controllo Attributo accesskey; questo controllo riguarda le scorciatoie implementate negli script.

Per saperne di più

Ultimo aggiornamento

Questa pagina è stata utile?

Scorciatoie da tastiera con caratteri | Guida di Silktide