Raccourci clavier
Un raccourci clavier est une touche ou combinaison de touches qui déclenche une action sans passer par la souris. En accessibilité web, les raccourcis mal conçus créent plus de problèmes qu'ils n'en résolvent : ils entrent en conflit avec les lecteurs d'écran et provoquent des actions involontaires chez les utilisateurs de commande vocale.
Un utilisateur dicte un email par reconnaissance vocale. Il prononce « j'arrive demain ». La lettre « j » active un raccourci de l'application web et le contenu disparaît. Le problème n'est pas la reconnaissance vocale. C'est le raccourci.
#Pourquoi les raccourcis à touche unique posent problème
Des applications comme Gmail utilisent des raccourcis à touche unique : « j » pour l'email suivant, « k » pour le précédent, « c » pour composer. Pratique pour les habitués. Problématique pour d'autres.
Les utilisateurs de commande vocale dictent des lettres. Chaque lettre prononcée peut déclencher un raccourci involontaire. Les utilisateurs de lecteurs d'écran naviguent déjà avec des touches : H pour les titres, K pour les liens dans NVDA. Un raccourci applicatif sur la même touche crée un conflit. Les personnes avec des troubles moteurs appuient parfois sur des touches par accident.
Le critère 2.1.4 des WCAG (niveau A) encadre ce risque. Si un raccourci n'utilise qu'une touche caractère (lettre, chiffre, symbole), il doit remplir au moins une condition : pouvoir être désactivé, pouvoir être reconfiguré pour inclure une touche modificatrice (Ctrl, Alt), ou n'être actif que lorsque le composant concerné a le focus. Le critère 12.10 du RGAA reprend cette exigence.
#Le piège de accesskey
HTML propose l'attribut accesskey pour assigner un raccourci à un élément :
<button accesskey="s">Sauvegarder</button>L'idée est bonne. L'exécution ne l'est pas.
Chaque navigateur interprète accesskey différemment. Sur Chrome Windows, c'est Alt + la touche. Sur Firefox Mac, c'est Ctrl + Option + la touche. Sur Safari, encore une autre combinaison. WebAIM recommande d'éviter accesskey : l'incohérence entre navigateurs rend le raccourci imprévisible, et les conflits avec les raccourcis natifs du navigateur ou du système d'exploitation sont fréquents.
Si vous tenez à proposer des raccourcis, préférez JavaScript avec des combinaisons incluant des modificateurs (Ctrl + Shift + S, par exemple). Documentez-les. Et offrez un moyen de les désactiver.
#En résumé
Les raccourcis clavier sont utiles quand ils incluent une touche modificatrice et que l'utilisateur peut les désactiver. Documentez-les visiblement. Un raccourci à touche unique sans ces garanties n'est pas une aide. C'est un obstacle.