Como funciona
Cada toque gera um evento keydown e um keyup definidos pelo padrão W3C UI Events. O testador lê event.code, que indica a posição física da tecla (por exemplo KeyA ou ShiftRight) qualquer que seja o layout, e event.key, o caractere ou a função que a tecla produz com o layout e os modificadores atuais.
O teclado na tela é um layout ANSI completo com a tecla ISO extra ao lado do Shift esquerdo. Teclas fora dele, como as de mídia ou de idioma, são listadas à parte. Se o navegador suportar a Keyboard Map API, as letras mostram os rótulos do seu layout (por exemplo o Ç do ABNT2).
event.key e event.code
A mesma tecla física pode gerar valores diferentes. Estes exemplos mostram por que os dois são informados.
| Você pressiona | event.key | event.code |
|---|---|---|
| A em um layout americano | "a" | "KeyA" |
| A com Shift | "A" | "KeyA" |
| A mesma tecla em um layout francês AZERTY | "q" | "KeyA" |
| Shift direito | "Shift" | "ShiftRight" |
| 1 do teclado numérico (Num Lock ligado) | "1" | "Numpad1" |
Ghosting e rollover
Muitos teclados ligam as teclas em matriz, então algumas combinações de três ou mais teclas não são todas detectadas: uma tecla pode não registrar (bloqueio) ou pode aparecer uma que você não apertou (ghosting). “Máximo ao mesmo tempo” mostra o maior número de teclas que este teclado informou pressionadas juntas. Teclados gamer com n-key rollover informam todas; teclados USB em modo boot costumam parar em seis teclas mais os modificadores.
Dicas
- Uma tecla que nunca acende enquanto as outras acendem provavelmente está com defeito ou suja; uma que dispara duas vezes com um toque pode ter repique.
- Teste o rollover com as combinações que você realmente usa, por exemplo W A S D mais Shift e Espaço em jogos.
- O sistema operacional captura alguns atalhos antes do navegador, então eles não podem ser testados aqui.
Padrões e fontes
- UI Events · W3C
- UI Events: valores de KeyboardEvent.code · W3C
- UI Events: valores de KeyboardEvent.key · W3C
- KeyboardEvent.code · MDN Web Docs
Última revisão 18 de outubro de 2026
Perguntas frequentes
Por que uma tecla não acende?
Ou a tecla ou o switch está com defeito, ou a tecla nunca chega ao navegador: Fn e atalhos do sistema como Win+L ou Cmd+Tab são tratados pelo sistema operacional. Teste a tecla em outro app para diferenciar.
Qual a diferença entre event.key e event.code?
event.code é a posição física da tecla e não muda com o layout; event.key é o que a tecla digita naquele momento, que depende do layout, do Shift e de outros modificadores.
Como testo o n-key rollover?
Segure as teclas uma após a outra sem soltar. “Máximo ao mesmo tempo” mostra o maior número informado juntas. Se uma tecla segurada não acender, o teclado chegou ao limite para aquela combinação.