javascript - library - Qué clave vincular para evitar conflictos con los accesos directos nativos del navegador
key code javascript (7)
La respuesta corta es:
De manera decepcionante, nuestra investigación descubrió que todas las claves, excepto 3, habían sido "reclamadas" previamente por una tecnología u otra:
* AccessKey / (slash) * AccessKey (backslash) * AccessKey ] (right square bracket)
Esto se explica en este artículo:
Este artículo de wikipedia da una buena introducción general sobre este tema:
No he visto la pregunta todavía. Cada navegador tiene diferentes atajos de teclado nativos. ¿Alguien ya trató de averiguar cuál es gratis / seguro de usar si queremos agregar algunas cosas picantes a nuestra aplicación web?
Más información:
No necesito especialmente apuntar a todos los navegadores. Los 5 mayores son suficientes. Por ejemplo, Opera usa la tecla Ctrl + como combinación principal, dejando a casi todas las teclas Alt + "libres para enlazar".
Como los distintos navegadores utilizan una clave de activación de acceso directo principal diferente ( Ctrl en Opera), puedo imaginar fácilmente que también se usa una clave diferente para vincular accesos directos. es decir, Alt + Tecla en Opera y Ctrl + Tecla en browser_2 y Ctrl + Alt en navegador 3.
Los lectores de pantalla (JAWS, NVDA, ...) ya usan todo el teclado, incluidas las teclas muertas (exagero un poco, pero compite con Adobe Photoshop en términos de la cantidad de métodos abreviados de teclado utilizados).
Por lo tanto, si desea admitir lectores de pantalla y otras tecnologías de asistencia, debe usar ARIA y, especialmente, role="application" . Eso evitará conflictos entre su aplicación y el modo de funcionamiento predeterminado de los lectores de pantalla en las páginas web. Un inconveniente es que tienes docenas y docenas de páginas para leer ...
Introduction à WAI / ARIA (traduction en français) (nuestro idioma nativo común, ¿no es SDZ / zC?;))
EDITAR: Una de las maneras de resolver conflictos es permitir que el usuario defina y modifique sus propios accesos directos.
Mi recomendación es cambiarlo según el navegador. El hecho es que hay tantos navegadores por ahí que creo que sería difícil encontrar un esquema de acceso directo que no se rompa en al menos un navegador popular.
Puede cambiar la configuración de acceso directo según el navegador y también cambiar las instrucciones que especifican qué accesos directos se utilizarán según el navegador del usuario.
Lo ideal sería que el acceso directo sea lo más intuitivo posible ( Ctrl + X , Alt + X, etc.) sin interferir realmente con el navegador.
Edición: Alternativamente, si se siente cómodo reemplazando la funcionalidad predeterminada, tal vez use esto: http://www.openjs.com/scripts/events/keyboard_shortcuts/
Cuando especifique un acceso directo con él, el navegador ignorará ese acceso directo y podrá usarlo en su aplicación (como hace gmail con Ctrl + S , por ejemplo).
No estoy seguro de que esta lista sea exhaustiva, pero encontrará una buena lista de accesos directos para los diferentes navegadores aquí:
http://hubpages.com/hub/Browser-Shortcuts-Cheat-Sheet
Espero que esto ayude. Si esta respuesta le ha resultado útil, ¡márquela como tal!
Para los usuarios de Mac, definitivamente querrá ir con Ctrl, ya que Alt se usa para escribir muchos caracteres diferentes y el comando es la tecla de acción predeterminada que usan los navegadores. También evitaría los combos que utilizan atajos básicos de estilo emacs (algunos usuarios los usan como Ctrl + K, que SO logra joder;) aunque estos son menos conocidos y, por lo tanto, posiblemente utilizables.
Para Windows es más complicado, y no tengo una caja de ganancia para probarlo yo mismo.
Para una solución pragmática, copia Google. Tienen métodos abreviados de teclado en Gmail (y probablemente otros productos) que hacen un buen trabajo para evitar los accesos directos del navegador.
Si solo necesita atajos de teclado fuera de los elementos de formulario que tienen el foco, yo usaría letras simples (sin Ctrl / Alt / Mayús / etc.). Los caracteres normales solo son importantes para el navegador si un elemento de formulario tiene el foco. De lo contrario son ignorados.
Por ejemplo, si tiene contenido paginado, P podría ser anterior y N podría ser el siguiente.
(No estoy seguro de si esto resolvería completamente su problema porque no funcionará cuando un elemento del formulario tiene un enfoque).
Basado en su comentario (el enfoque estará dentro de un área de texto), sugeriría una sola letra elegida para cada acción con una combinación diferente de Ctrl / Alt / Mayús por navegador. La mayoría de las personas solo usan un navegador, por lo que para cada usuario aprender solo su propia combinación no es un gran problema.
Entonces, por ejemplo, Ctrl + Alt + N en un navegador puede ser igual que Alt + N en otro.
Sin embargo, lo primero que probaría es Shift , porque la mayoría de las combinaciones integradas no usan una, pero no sé si las combinaciones siempre distinguen entre mayúsculas y minúsculas. También ten cuidado con los combos específicos del sistema operativo.
Esto es lo que he encontrado mayormente disponible hasta ahora:
OS X - FF/Safari/Chrome - ctrl-[key]
Windows - FF/IE - ctrl-alt-[key]