Meilleure combinaison de touches de modification pour les raccourcis Web

14

De nombreux utilisateurs de mon site Web ont demandé des raccourcis clavier pour accéder aux pages fréquemment consultées. Je sais que les liens peuvent avoir accesskeymais pour y accéder est incohérent entre les navigateurs . Je vais utiliser JavaScript pour détecter les raccourcis et j'aimerais avoir votre avis sur la ou les touches de modification. Je me penche vers Ctrl+ Shift.

Mikhail
la source

Réponses:

12

Deux exemples ne suffisent probablement pas à l'appeler "pratique établie", mais ce sont deux grands exemples au moins: Google et Twitter n'en utilisent aucun. Ou, si vous voulez le voir de cette façon, leur touche de modification pour la navigation est G.

Pour accéder à votre page "Favoris" Twitter, vous appuyez sur G, puis F. Pour accéder à votre dossier de brouillons gmail, appuyez sur Gpuis D.

Les raccourcis non liés à la navigation utilisent également des lettres simples; par exemple Jpour avancer dans une liste (tweets, e-mails, etc.), Kpour reculer. *

* Dans mon livre, c'est absolument faux. Pour moi, "J" étant à gauche de "K" signifie "J" devrait être "précédent" et "K" devrait être "suivant". Cependant, le faire dans les autres sens semble être la norme.

Aucun des deux n'utilise une touche de modification "réelle". Nous commençons également à examiner les raccourcis clavier pour les sites Stack Exchange, et nous ferons probablement la même chose. Deux autres raisons que je vois pour ne pas utiliser du tout de touche de modification:

  • Moins susceptibles de trébucher sur quelque chose qui est déjà utilisé. Toute combinaison de Ctrl, Alt, Meta, Command, Shift avec une lettre est probablement déjà prise par un système d'exploitation, un gestionnaire de fenêtres, un navigateur, un plug-in de navigateur ou un script Greasemonkey. Lettre uniquement? Pas tellement.
  • Plus simple d'utilisation. "Appuyez sur Ctrl-Alt-Q pour ouvrir l'onglet Foo, puis sur Meta-Shift-F12 pour exécuter l'action Bar" - cela ne me rend pas la vie plus facile / plus rapide, ce qui est tout le but des raccourcis clavier.

D'un autre côté, voici deux mises en garde à considérer:

  • Vous devrez évidemment ignorer les frappes lorsqu'elles se produisent pendant que l'utilisateur tape dans une zone de texte. Ce n'est pas un problème technique, mais cela signifie que l'utilisateur ne peut alors pas utiliser les raccourcis.

    Par exemple, si votre page concentre automatiquement la zone de recherche ou si votre application Web est très chargée en saisie de texte, cela peut poser un problème.

  • Vous voudrez peut-être penser à activer / désactiver. Les raccourcis clavier sont une fonctionnalité pour les utilisateurs expérimentés; un utilisateur "normal" peut être surpris lorsqu'il déclenche accidentellement un raccourci clavier (évidemment une touche de modification rendrait cela moins probable).

    Gmail, par exemple, a les raccourcis clavier désactivés par défaut, à l'exception de ?ce qui (naturellement) affiche l'aide des raccourcis clavier - y compris un lien pour activer / désactiver les raccourcis. Je pense que les raccourcis clavier sont un domaine où vous pouvez dire que vous pouvez en faire un paramètre (les préférences des utilisateurs sont quelque chose que nous essayons généralement d'éviter sur les sites Stack Exchange), et la solution de Google pour cela semble bien pour cela.

    Mais «désactivé par défaut» masque évidemment la possibilité de découverte, qui peut ou non être un problème.

- mais tout bien considéré, "aucune touche de modification" ne me semble être une bonne solution.

balpha
la source
3
Un autre point sur les combos de modificateurs composés (appuyez sur Ctrl-Alt-Q pour ouvrir l'onglet Foo, puis sur Meta-Shift-F12) - c'est en fait assez gênant du point de vue de l'accessibilité. Ou même si vous avez juste un clavier bizarre (toux), certaines combinaisons peuvent nécessiter une gymnastique au doigt. Touches simples: sans effort.
Marc Gravell
2
C'est un excellent article @balpha. Je veux souligner que J est "en bas" et K est "en haut". L'éditeur de texte VIM utilise la même logique
Mikhail
@Mikhail: J'en suis conscient, mais je ne suis pas d'accord avec cette logique - après tout, J est à gauche de K. Pour moi, si J est "en bas", alors U doit être "en haut" . Mais je suppose que je vais m'y habituer :)
balpha
1
rollmops.wordpress.com/2006/05/01/vintage-computer Les clés HJKL ont été utilisées de cette façon avant même que le Web n'existe. À ce stade, c'est la tradition!
Kevin Panko
8

Il n'y a pas de «meilleur» choix de modificateur de clé universel

Vos meilleures options sont les suivantes:

  1. N'utilisez pas de touche de modification (touches uniques uniquement), puis arrêtez de détecter les touches lorsque le curseur de l'utilisateur se trouve dans un champ de saisie ou une zone de texte, comme Google le fait avec les raccourcis Gmail.

    -- ou --

  2. Choisissez une valeur par défaut qui convient à la majorité de vos visiteurs en fonction des statistiques du système d'exploitation à partir de vos données Analytics. Autorisez les utilisateurs expérimentés qui souhaitent des raccourcis à les activer et à remplacer la touche de modification dans leurs paramètres utilisateur, de la même manière que le font les logiciels de bureau.

    -- ou --

  3. Utilisez une touche «déclencheur» au lieu d'une touche de modification. Pensez ,2à aller au deuxième onglet de votre zone de navigation par onglets et ,3à aller au troisième, par exemple. La combinaison d'une virgule suivie immédiatement d'un nombre est suffisamment inhabituelle pour réduire la probabilité de conflits ou de pressions accidentelles.

Dans tous les cas, vous pouvez envisager de désactiver les touches de raccourci par défaut pour éviter un comportement inattendu pour la majorité des utilisateurs qui ne se soucient probablement pas des touches de raccourci.

Pourquoi ne pas simplement choisir un combo de modificateurs?

La raison pour laquelle je suggère ces méthodes est qu'il n'y a pas de clé de modification multiplateforme standardisée que vous pouvez considérer comme sûre à utiliser avec JavaScript dans un environnement de navigateur. Tout ce qui contient Ctrl, Shift, Altou Cmdcassera probablement des raccourcis du navigateur sur certaines plates - formes.

Votre suggestion d'utiliser Ctrl+ Shift, par exemple, cassera les raccourcis Firefox sous Windows, dont beaucoup utilisent cette combinaison pour effectuer des fonctions spéciales , telles que Ctrl+ Shift+ D, qui signet tous les onglets ouverts.

Les fabricants de navigateurs utilisent différents raccourcis pour déclencher des clés d'accès sur chaque plate-forme différente précisément parce qu'il n'y a pas de norme multiplateforme. Apple utilise par exemple Ctrlsur Mac et AltWindows dans Safari.

De plus, chaque navigateur résout les conflits de raccourcis différemment, ce qui entraînera des conséquences inattendues pour vos utilisateurs. Lorsque vous liez une pression de touche à une fonction en JavaScript qui a également une liaison en tant que raccourci natif du navigateur ...

  • Firefox exécutera le raccourci JavaScript seul si vous return false;l'exécutez, mais exécutera votre fonction JavaScript suivie du raccourci du navigateur Firefox si vous return true;(c'est-à-dire qu'il exécute les deux par défaut).
  • IE exécutera la fonction JavaScript suivie du raccourci du navigateur IE.
  • Safari / Chrome / Opera traitera le raccourci du navigateur mais pas celui de JavaScript.

[Source: l'addendum au bas de la page Lisezmoi de John Resig sur jquery.hotkeys .]

pseudo
la source
J'aime l'approche non simultanée. Bien que j'utiliserais probablement le; clé
Mikhail