La mejor combinación de teclas modificadoras para atajos web
14
Muchos usuarios de mi sitio web solicitaron métodos abreviados de teclado para acceder a las páginas más vistas. Sé que los enlaces pueden tener accesskeypero acceder a ellos es inconsistente en todos los navegadores . Voy a usar JavaScript para detectar accesos directos y me gustaría que nos dejes saber cuáles deberían ser las teclas modificadoras. Me estoy inclinando hacia Ctrl+ Shift.
Dos ejemplos probablemente no son suficientes para llamarlo "práctica establecida", pero al menos son dos ejemplos importantes: tanto Google como Twitter no usan ninguno. O, si desea verlo de esta manera, su clave modificadora para la navegación es G.
Para ir a su página de "favoritos" de Twitter, presione G, entonces F. Para ir a su carpeta de borradores de Gmail, golpeó Ga continuación D.
Los atajos que no son de navegación también usan letras simples; por ejemplo, Jpara avanzar en una lista (tweets, correos electrónicos, etc.), Kpara retroceder. *
* En mi libro, esto es absolutamente incorrecto. Para mí, "J" a la izquierda de "K" significa que "J" debería ser "anterior" y "K" debería ser "siguiente". Sin embargo, hacerlo al revés parece ser el estándar.
Ninguno de los dos usa una tecla modificadora "real". También estamos comenzando a buscar atajos de teclado para los sitios de Stack Exchange, y es probable que hagamos lo mismo. Veo dos razones más para no usar una tecla modificadora en absoluto:
Menos probabilidades de tropezar con algo que ya está en uso. Cualquier combinación de Ctrl, Alt, Meta, Comando, Mayús con una letra probablemente ya haya sido tomada por algún sistema operativo, administrador de ventanas, navegador, complemento de navegador o script de Greasemonkey. ¿Solo carta? No tanto.
Más fácil de usar. "Presione Ctrl-Alt-Q para abrir la pestaña Foo, luego Meta-Shift-F12 para ejecutar la acción de la Barra", eso no hace que mi vida sea más fácil / rápida, que es el objetivo de los atajos de teclado.
Por otro lado, aquí hay dos advertencias a tener en cuenta:
Obviamente, tendrá que ignorar las pulsaciones de teclas cuando suceden mientras el usuario escribe en un cuadro de texto. Esto no es un problema técnico, pero significa que el usuario no puede usar los accesos directos.
Si, por ejemplo, su página enfoca automáticamente el cuadro de búsqueda, o si su aplicación web tiene mucho ingreso de texto, esto puede plantear un problema.
Es posible que desee pensar en habilitar / deshabilitar. Los atajos de teclado son una función de usuario avanzado; un usuario "normal" puede sorprenderse cuando accidentalmente activa un atajo de teclado (obviamente, una tecla modificadora lo haría menos probable).
Gmail, por ejemplo, tiene atajos de teclado desactivados de manera predeterminada, con la excepción de ?que (naturalmente) muestra la ayuda de atajos de teclado, incluido un enlace para habilitar / deshabilitar atajos. Creo que los atajos de teclado son un área donde puedes decir que está bien configurarlo (las preferencias del usuario son algo que generalmente intentamos evitar en los sitios de Stack Exchange), y la solución de Google para esto parece buena para esto.
Pero "desactivado por defecto" obviamente oculta la capacidad de detección, lo que puede o no ser un problema.
- pero considerando todas las cosas, "ninguna tecla modificadora" me parece una buena solución.
Otro punto en los combinados modificadores compuestos (Presione Ctrl-Alt-Q para abrir la pestaña Foo, luego Meta-Shift-F12) - esto es realmente bastante incómodo desde una perspectiva de accesibilidad. O incluso si solo tiene un teclado extraño (tos), algunas combinaciones pueden requerir gimnasia con los dedos. Teclas individuales: sin esfuerzo.
Marc Gravell
2
Esa es una excelente publicación @balpha. Quiero señalar que J está "abajo" y K está "arriba". El editor de texto VIM usa la misma lógica
Mikhail
@Mikhail: Soy consciente de eso, pero no estoy de acuerdo con esa lógica: después de todo, J está a la izquierda de K. Para mí, si J está "abajo", entonces U tiene que estar "arriba". . Pero supongo que voy a acostumbrar a ella :)
No hay una opción "mejor" o modificador de clave universal
Sus mejores opciones son:
No use ninguna tecla modificadora (solo teclas simples), luego deje de detectar las teclas cuando el cursor del usuario esté en un campo de entrada o área de texto, como lo hace Google con los accesos directos de Gmail.
- o -
Elija un valor predeterminado que se adapte a la mayoría de sus visitantes en función de las estadísticas del sistema operativo de sus datos de Analytics. Permita que los usuarios avanzados que desean atajos los activen y anulen la tecla modificadora en su configuración de usuario, de la misma manera que lo hace el software de escritorio.
- o -
Utilice una tecla 'disparador' en lugar de una tecla modificadora Considere ,2ir a la segunda pestaña en su área de navegación con pestañas e ,3ir a la tercera, por ejemplo. La combinación de una coma seguida inmediatamente por un número es lo suficientemente inusual como para reducir la probabilidad de conflictos o presiones accidentales.
En todos los casos, puede considerar deshabilitar las teclas de acceso directo de forma predeterminada para evitar un comportamiento inesperado para la mayoría de los usuarios que probablemente no se preocupan por las teclas de acceso directo.
¿Por qué no simplemente elegir un combo modificador?
La razón por la que sugiero estos métodos es que no hay una clave modificadora multiplataforma estandarizada que pueda considerar segura para usar con JavaScript en un entorno de navegador. Cualquier cosa que contenga Ctrl, Shift, Alt, o Cmdes probable que romper algunos atajos del explorador en ciertas plataformas.
Su sugerencia de usar Ctrl+ Shift, por ejemplo, romperá los accesos directos de Firefox en Windows, muchos de los cuales usan esa combinación para realizar funciones especiales , como Ctrl+ Shift+ D, que marca todas las pestañas abiertas.
Los fabricantes de navegadores usan diferentes accesos directos para activar las teclas de acceso en cada plataforma diferente precisamente porque no hay un estándar multiplataforma. Apple usa Ctrlen Mac y Alten Windows en Safari, por ejemplo.
Además, cada navegador resuelve conflictos de acceso directo de manera diferente, y esto tendrá consecuencias inesperadas para sus usuarios. Cuando vincula una pulsación de tecla a una función en JavaScript que también tiene un enlace como acceso directo de navegador nativo ...
Firefox ejecutará el acceso directo de JavaScript por sí solo, return false;pero ejecutará su función de JavaScript seguido del acceso directo del navegador Firefox si usted return true;(es decir, ejecuta ambos de forma predeterminada).
IE ejecutará la función JavaScript seguida del acceso directo del navegador IE.
Safari / Chrome / Opera procesará el acceso directo del navegador pero no el JavaScript.
@balpha
. Quiero señalar que J está "abajo" y K está "arriba". El editor de texto VIM usa la misma lógicaNo hay una opción "mejor" o modificador de clave universal
Sus mejores opciones son:
No use ninguna tecla modificadora (solo teclas simples), luego deje de detectar las teclas cuando el cursor del usuario esté en un campo de entrada o área de texto, como lo hace Google con los accesos directos de Gmail.
- o -
Elija un valor predeterminado que se adapte a la mayoría de sus visitantes en función de las estadísticas del sistema operativo de sus datos de Analytics. Permita que los usuarios avanzados que desean atajos los activen y anulen la tecla modificadora en su configuración de usuario, de la misma manera que lo hace el software de escritorio.
- o -
Utilice una tecla 'disparador' en lugar de una tecla modificadora Considere ,2ir a la segunda pestaña en su área de navegación con pestañas e ,3ir a la tercera, por ejemplo. La combinación de una coma seguida inmediatamente por un número es lo suficientemente inusual como para reducir la probabilidad de conflictos o presiones accidentales.
En todos los casos, puede considerar deshabilitar las teclas de acceso directo de forma predeterminada para evitar un comportamiento inesperado para la mayoría de los usuarios que probablemente no se preocupan por las teclas de acceso directo.
¿Por qué no simplemente elegir un combo modificador?
La razón por la que sugiero estos métodos es que no hay una clave modificadora multiplataforma estandarizada que pueda considerar segura para usar con JavaScript en un entorno de navegador. Cualquier cosa que contenga Ctrl, Shift, Alt, o Cmdes probable que romper algunos atajos del explorador en ciertas plataformas.
Su sugerencia de usar Ctrl+ Shift, por ejemplo, romperá los accesos directos de Firefox en Windows, muchos de los cuales usan esa combinación para realizar funciones especiales , como Ctrl+ Shift+ D, que marca todas las pestañas abiertas.
Los fabricantes de navegadores usan diferentes accesos directos para activar las teclas de acceso en cada plataforma diferente precisamente porque no hay un estándar multiplataforma. Apple usa Ctrlen Mac y Alten Windows en Safari, por ejemplo.
Además, cada navegador resuelve conflictos de acceso directo de manera diferente, y esto tendrá consecuencias inesperadas para sus usuarios. Cuando vincula una pulsación de tecla a una función en JavaScript que también tiene un enlace como acceso directo de navegador nativo ...
return false;
pero ejecutará su función de JavaScript seguido del acceso directo del navegador Firefox si ustedreturn true;
(es decir, ejecuta ambos de forma predeterminada).[Fuente: el apéndice al pie de la página léame jquery.hotkeys de John Resig .]
fuente