Keycode tester: códigos de tecla en JavaScript

Pulsa cualquier tecla y mira exactamente lo que informa el navegador en su evento de teclado: el valor de la tecla, el código físico, el keyCode heredado, la ubicación, los modificadores pulsados, las teclas de bloqueo y el indicador de repetición. Útil para desarrollo web, para reasignar teclas y para identificar una tecla desconocida.

Pulsa cualquier tecla. Inicia la captura completa para inspeccionar también Tab, Espacio, las teclas F y los atajos (Esc dos veces o Detener para salir).

—
event.key
—
event.code
—
event.keyCode
—
event.location
—
Modificadores
—
Teclas de bloqueo activas
—
event.repeat
—

event.keyCode y event.which están obsoletos, pero los navegadores aún los informan; usa event.code para la tecla física y event.key para el carácter producido.

Registro de eventos (últimos 80)
typekeycodekeyCodelocationrepeatModificadores

Cómo usar el keycode tester

  1. Pulsa cualquier tecla. El recuadro grande muestra el valor de la tecla y los campos de al lado muestran event.key, event.code, event.keyCode, event.location, los modificadores pulsados, las teclas de bloqueo activas y event.repeat.
  2. Pulsa Iniciar captura completa para inspeccionar también las teclas que el navegador suele usar para sí mismo, como Tab, Espacio, las teclas F y muchos atajos. Pulsa Esc dos veces seguidas, o Detener, para salir.
  3. Abre el registro de eventos para ver en orden los últimos 80 eventos keydown y keyup, por ejemplo para revisar una combinación de teclas.
  4. Pulsa Copiar último evento (JSON) para pegar los valores en un informe de error o en tu código. Borrar registro vacía la lista.

Qué significa cada valor

  • key: el carácter o nombre de tecla producido, tras aplicar la distribución y los modificadores. Mayús+2 da "@" en una distribución de EE. UU. y '"' en una del Reino Unido.
  • code: la tecla física, con el nombre de su posición en un teclado QWERTY de EE. UU. En un teclado AZERTY francés, la tecla rotulada A informa KeyQ. Úsalo para controles de juegos y atajos ligados a la posición.
  • keyCode (y which en el JSON): números heredados, obsoletos pero aún informados. Cambian según la distribución y el navegador; en código nuevo es mejor usar key o code.
  • location: 0 estándar, 1 izquierda, 2 derecha, 3 teclado numérico. Distingue Mayús, Ctrl, Alt y Meta izquierdas de las derechas, y las teclas del teclado numérico de la fila de números.
  • Modificadores y teclas de bloqueo: Control, Shift, Alt y Meta pulsadas durante el evento, y si Bloq Mayús, Bloq Num o Bloq Despl están activados, según informa getModifierState().
  • repeat: sí en los eventos repetidos automáticamente mientras se mantiene una tecla.

Sorpresas habituales

  • Dead: las teclas de acento de muchas distribuciones internacionales, como la española, no producen ningún carácter hasta la siguiente tecla, así que key es Dead.
  • Process o keyCode 229: un método de entrada (por ejemplo para chino o japonés, o algunos teclados de teléfono) está componiendo texto y la tecla real queda oculta.
  • AltGr en Windows suele llegar como Control más Alt, así que puedes ver dos eventos y ambos modificadores.
  • Tecla Command de Mac: mientras se mantiene Command, el navegador no informa cuándo se sueltan otras teclas.
  • code vacío o Unidentified: el teclado, el driver o la sesión remota no proporcionó una tecla física. La tecla Fn nunca aparece porque se gestiona dentro del teclado.

Límites

La página muestra lo que expone el navegador, después de que el sistema operativo y la distribución del teclado hayan procesado la tecla. No puede mostrar scan codes en bruto ni datos USB HID, no ve las teclas que el sistema operativo captura antes (como Ctrl+Alt+Supr) y no cambia ni reasigna teclas. Tampoco mide la latencia ni el polling rate del teclado. Para comprobar que funciona cada tecla de un teclado, usa el test de teclado; para varias teclas a la vez, el test de ghosting.

Preguntas frecuentes

¿Qué diferencia hay entre key y code?

code nombra la posición física de la tecla y no cambia con la distribución. key es lo que produce esa pulsación con la distribución y los modificadores actuales, por ejemplo a, A o @.

¿Sigue siendo seguro usar keyCode?

Los navegadores aún lo informan, pero está obsoleto y no es coherente entre distribuciones y navegadores. Usa event.key para caracteres y event.code para posiciones físicas.

¿Se envía a algún sitio lo que escribo?

No. Los eventos solo se muestran en esta página y desaparecen al cerrar la pestaña. Copiar el JSON lo pone en tu propio portapapeles.

Pruebas relacionadas

Guías