Normes · WCAG 2.2

SC 2.1.4 Niveau A WCAG 2.1

Raccourcis clavier par caractère

Les raccourcis clavier à caractère unique (une lettre, un chiffre ou un symbole) doivent pouvoir être désactivés, reconfigurés ou limités au composant actif. Protège les utilisateurs de commande vocale et de dictée contre les déclenchements accidentels.

Ce que le critère demande

Si la page implémente un raccourci clavier en utilisant uniquement des touches de lettre, de chiffre, de ponctuation ou de symbole — sans modificateur tel que Ctrl, Alt ou Maj — alors au moins l’une des conditions suivantes doit être remplie :

  • Le raccourci peut être désactivé dans un menu de paramètres.
  • Le raccourci peut être reconfiguré pour utiliser une ou plusieurs touches non imprimables (Ctrl, Alt, Maj, touches de fonction).
  • Le raccourci n’est actif que lorsque le composant concerné a le focus.

Ce critère existe principalement pour protéger les utilisateurs de saisie vocale. Dragon NaturallySpeaking et Voice Control transcrivent tous deux les mots prononcés en frappes de caractères — et un « k » prononcé au milieu d’une phrase peut déclencher un raccourci destructif dans Gmail, Slack ou tout autre outil utilisant des accélérateurs à caractère unique.

Comment le satisfaire

  • Auditez chaque gestionnaire de touche unique dans le code source : les écouteurs keydown / keypress qui vérifient event.key par rapport à un caractère imprimable sans vérifier également les touches modificatrices.
  • Ajoutez un panneau de paramètres « Raccourcis clavier » permettant aux utilisateurs de les désactiver entièrement. Gmail et Slack le font bien.
  • Ou : limitez les raccourcis afin qu’ils ne se déclenchent que lorsque le focus est dans la région concernée (par exemple, j/k pour naviguer entre les e-mails uniquement lorsque le focus est dans la liste de messages, pas lorsque l’utilisateur tape dans une réponse).
  • Préférez les raccourcis basés sur des modificateurs (Ctrl+/, Alt+N) par défaut ; réservez les raccourcis à caractère unique à un mode utilisateur avancé activé explicitement.

Échecs courants

  • Les raccourcis j / k / r / a de style Gmail qui se déclenchent depuis n’importe quel endroit du document, y compris à l’intérieur des zones de texte dans certaines configurations de framework.
  • Les grilles de données personnalisées où Suppr supprime une ligne sans confirmation — acceptable au clavier, désastreux pour les utilisateurs vocaux qui disent « supprime cette virgule ».
  • Les lecteurs vidéo où Espace bascule lecture/pause globalement plutôt que seulement lorsque le lecteur a le focus.
  • Les sites de documentation où / pour cibler la recherche se déclenche même lorsque le focus est dans un éditeur de code intégré.

axe-core ne détecte pas ceci — cela requiert une revue du code source ou des règles automatisées spécifiques de la suite de tests élargie de Deque. La plupart des échecs en production ne sont détectés que lorsqu’un utilisateur de commande vocale dépose une plainte.

Pourquoi c’est important

Ce critère de succès a été ajouté dans WCAG 2.1 spécifiquement parce que l’adoption de la saisie vocale a rapidement augmenté après 2017. Un site qui échoue à 2.1.4 peut être fonctionnellement inutilisable pour quelqu’un qui dicte : chaque paragraphe déclenche une action différente. Même les utilisateurs de clavier souffrant de déficiences motrices qui appuient parfois sur la mauvaise touche bénéficient de la possibilité de désactiver les raccourcis à caractère unique.