Raccourcis clavier à un seul caractère
Silktide repère les pages qui enregistrent un écouteur de clavier sur l’ensemble de la page - le document, la fenêtre ou <body>/<html> - et vous demande de vérifier si des raccourcis à un seul caractère nécessitent un mécanisme d’échappement.
Des exemples connus sont d’appuyer sur j pour faire défiler vers le bas, sur \/ pour placer le focus dans la recherche, ou g puis h pour aller à l’accueil.
Ceci est un : un écouteur global de touches est une vraie raison d’examiner, mais Silktide ne peut pas déterminer à partir du seul enregistrement si le gestionnaire implémente un raccourci à un seul caractère. Les pages sans écouteur de touches global ne sont pas signalées.
Pourquoi c’est important
Deux groupes sont particulièrement touchés par des raccourcis à une seule touche toujours actifs :
- Les personnes qui utilisent la saisie vocale dictent du texte et des commandes à voix haute. Le logiciel transforme leur parole en frappes de clavier, si bien qu’une phrase ordinaire devient une suite d’activations accidentelles de raccourcis - les pages peuvent défiler, des boîtes de dialogue peuvent s’ouvrir et des actions peuvent se déclencher en plein milieu d’une phrase.
- Les personnes ayant une dextérité limitée ou des tremblements frappent fréquemment des touches involontairement, et n’importe quelle touche unique peut être un déclencheur actif.
Le critère de succès 2.1.4 (niveau A) des exige donc que les raccourcis à un seul caractère puissent être désactivés, réattribués pour inclure une touche de modification comme Ctrl ou Alt, ou ne se déclenchent que lorsque le contrôle pertinent a le .
Comment y remédier
Pour chaque gestionnaire clavier global qui implémente un raccourci à un seul caractère, faites l’une des actions suivantes :
- Fournissez un paramètre qui désactive ces raccourcis.
- Exigez une touche de modification, de sorte que le raccourci devienne p. ex.
Ctrl+Kau lieu dek. - Ne gérez la touche que lorsque le contrôle pertinent a le focus - les raccourcis limités à un contrôle focalisé sont explicitement autorisés.
\/\/ Se déclenche chaque fois que « k » est pressé, n’importe où sur la page
document.addEventListener('keydown', (e) => {
if (e.key === 'k') openSearch();
});
\/\/ Corrigé : exige que Ctrl (ou Cmd) soit maintenue enfoncée
document.addEventListener('keydown', (e) => {
if (e.key === 'k' && (e.ctrlKey || e.metaKey)) openSearch();
});
Si un écouteur signalé n’a pas de raccourcis à un seul caractère - ou offre déjà l’un de ces mécanismes d’échappement - la détection.
Comment Silktide teste cela
- Recueillir les clavier que la page enregistre dans le navigateur.
- Ne conserver que les écouteurs à l’échelle de la page - ceux attachés au document, à la fenêtre ou à l’élément
<body>/<html>. Les écouteurs sur des contrôles individuels sont exemptés, car ils ne se déclenchent que lorsque ce contrôle a le focus. - Signaler chaque écouteur restant pour que vous le confirmiez. Silktide n’analyse pas le code du gestionnaire à la recherche de motifs
e.key === '\u2026'- c’est trop fragile face au code minimisé et aux frameworks. La présence d’un écouteur global est le signal; votre examen fait foi.
Dépannage
L’écouteur n’est pas un raccourci à un seul caractère
Beaucoup de gestionnaires de touches globaux ne surveillent que Échap, les touches fléchées, ou des combinaisons avec des modificateurs. Si le vôtre n’a pas de raccourcis à un seul caractère, approuvez la détection.
Le raccourci peut déjà être désactivé ou réattribué
Silktide peut voir l’enregistrement de l’écouteur, mais ne peut pas voir si votre site offre une option dans les paramètres. Si c’est le cas, la page est conforme - approuvez la détection.
Raccourcis provenant de scripts tiers
Les modules de clavardage, les lecteurs vidéo et les outils d’analytique enregistrent parfois leurs propres écouteurs globaux de touches. Ils comptent tout de même pour votre page; vérifiez les options d’accessibilité du fournisseur ou soulevez la question avec lui.
Raccourcis créés avec l’attribut accesskey
Ceux-ci sont couverts séparément par la vérification Attribut accesskey; la présente vérification couvre les raccourcis implémentés dans un script.