KeyboardTest.io

Visor de eventos de teclado

0 eventos
Se guardan los últimos 200
EventokeycodekeyCodePos.Modif.Rep.Δ ms

Aquí aparece cada evento, el último arriba.

Acciones por defecto

key, code y keyCode

3 propiedades

Un KeyboardEvent identifica una pulsación de tres formas. En un teclado francés AZERTY, la misma tecla física da otro valor de key, el mismo code y un keyCode que cambia según la letra.

PropiedadQué daQWERTYAZERTY
keyEl carácter que escribe la distribución, o el nombre de la tecla (Enter, Shift)qa
codeLa tecla física, sea cual sea la distribuciónKeyQKeyQ
keyCodeUn número heredado, obsoleto pero aún enviado8165
Usa code para atajos por posición (WASD), y key para texto y atajos por letra.

location

4 valores

La propiedad location indica en qué lado está una tecla que aparece dos veces, o que una tecla está en el teclado numérico.

0 · EstándarLa mayoría de las teclas, que aparecen una sola vez
1 · IzquierdaShift, Ctrl, Alt y Meta izquierdas
2 · DerechaShift, Ctrl, Alt y Meta derechas
3 · NuméricoLas teclas del teclado numérico, Enter incluido

Métodos de entrada y keyCode 229

IME

Con un método de entrada chino, japonés o coreano activado, el método de entrada recibe antes las teclas. La página ve key «Process» y keyCode 229, y el texto llega en eventos de composición. Al escribir ni para una palabra china:

  1. keydownkey «Process» · keyCode 229
  2. compositionstartEl método de entrada empieza una palabra
  3. compositionupdatedata n, luego ni
  4. keydownEspacio elige un candidato
  5. compositionenddata es la palabra elegida
  6. inputinputType insertCompositionText
Comprueba isComposing antes de reaccionar a una tecla, o el Enter que elige una palabra también enviará el formulario.

Teclas modificadoras

getModifierState

Cada evento lleva las modificadoras pulsadas en ese momento. getModifierState() indica también las teclas de bloqueo.

ShiftshiftKey
ControlctrlKey
AltaltKey
MetametaKey (Windows, o Comando en un Mac)
CapsLockEstado del bloqueo, no si la tecla está pulsada
NumLockEstado del bloqueo, a menudo desconocido en un Mac
AltGraphAlt derecho (Alt Gr) en las distribuciones en español y en muchas europeas
ScrollLockPoco habitual en los teclados actuales

Preguntas frecuentes

8 preguntas

¿Qué diferencia hay entre event.key y event.code?

Carácter frente a tecla física

key es lo que escribe la tecla en la distribución actual, como a o A. code es la tecla física, como KeyA, y no cambia con la distribución. Este visor de eventos de teclado muestra los dos en cada pulsación.

¿Por qué keyCode es 229?

Método de entrada

Un método de entrada (IME) está procesando la tecla. key vale «Process» y el texto llega después en eventos de composición y de entrada. Escribe en el campo para verlos.

¿keyCode está obsoleto?

Sí

keyCode, which y charCode están obsoletos, pero los navegadores aún los envían. El código nuevo debería usar key o code.

¿Por qué Fn no muestra ningún evento?

Nunca se envía

El teclado gestiona Fn por su cuenta y no envía código de tecla, así que ninguna web la recibe. La tecla que pulsas con Fn, como F5 o una tecla de volumen, sí aparece.

¿Por qué no puedo capturar Ctrl+W o Ctrl+T?

Se los queda el navegador

El navegador se reserva algunos atajos: cerrar pestaña, nueva pestaña, nueva ventana. Bloquear las acciones por defecto detiene la mayoría de las demás teclas, como Tab, F5 o /, pero no estas.

¿Por qué una tecla mantenida sigue lanzando keydown?

Repetición automática

El sistema repite una tecla mantenida. Cada repetición es un keydown con repeat true, y al soltar llega un solo keyup.

¿Por qué faltan algunos keyup en un Mac?

Comando pulsado

Mientras Comando está pulsado, los navegadores de macOS no envían keyup de las demás teclas, y tampoco llega ninguno después de soltar Comando. Test de teclado Mac →

¿Se suben mis pulsaciones?

El test no las sube

Los eventos se procesan solo en este navegador. El código de la prueba no los sube, y se borran al cerrar la página. Política de privacidad →