Skip to main content

Registador de Eventos do Teclado.

Um painel de diagnóstico que mostra os eventos de teclado em bruto do navegador. Útil para programadores que estejam a depurar manipuladores de eventos ou a verificar propriedades específicas das teclas.

Controlos do Registo

Eventos em Tempo Real

EventoKeyCodeKeyCodeLocationModificadoresData/Hora
Ainda não foi registado nenhum evento de teclado. Foque o alvo de captura e prima algumas teclas.

Verifique estes pontos antes de registar

  • Foque a caixa de capturaClique nela ou prima Tab primeiro — nenhum evento é registado até estar focada.
  • Limpe entre testesReinicie o registo antes de cada nova tecla para que as verificações de eventos duplicados sejam fáceis de ler.
  • Observe as marcas temporaisDois keydowns com milissegundos de diferença a partir de um único toque apontam para um switch com chatter, não para um erro.

Como funciona o registador de eventos

  1. 1

    Foque a área de captura. Clique na caixa acima ou prima Tab para a focar. O texto de estado muda para mostrar que está a escutar eventos de teclado.

  2. 2

    Prima quaisquer teclas. Cada evento keydown e keyup é registado com as suas propriedades em bruto — key, code, keyCode, location, modificadores e marca temporal. A tabela atualiza-se em tempo real, com novos eventos adicionados no topo.

  3. 3

    Faça a gestão do seu registo. Use o botão "Limpar Registos" para reiniciar a tabela, ou "Exportar como CSV" para transferir todos os eventos e analisá-los numa folha de cálculo ou ferramenta de depuração.

Compreender as propriedades dos eventos de teclado

key é o carácter real que a tecla produz (por exemplo, "a", "A", "1"). Muda consoante o esquema de teclado e se há modificadores ativos (Shift, Alt). Num teclado francês AZERTY, a tecla de letra mais à esquerda produz "a" em vez de "q".

code é a tecla física, independente do esquema (por exemplo, "KeyA", "Digit1", "Enter"). Pressionar a mesma tecla física devolve sempre o mesmo code, independentemente do esquema ou dos modificadores.

keyCode é um código numérico antigo (por exemplo, 65 para A) anterior às propriedades modernas key e code. Está agora obsoleto porque era inconsistente entre navegadores e pouco fiável para teclados internacionais e teclas especiais. Use antes code ou key.

location distingue teclas duplicadas no seu teclado. As teclas padrão reportam location 0; os modificadores esquerdos (Shift, Ctrl, Alt) reportam 1; os modificadores direitos reportam 2; as teclas do teclado numérico reportam 3. O registador apresenta-os com etiquetas amigáveis: "Padrão", "Esquerda (Mod)", "Direita (Mod)", "Teclado Numérico".

Os sinalizadores de modificadores são propriedades booleanas — ctrlKey, shiftKey, altKey, metaKey — que indicam se Ctrl, Shift, Alt ou Command/Windows estavam premidos durante o evento. Combinam-se livremente: pressionar Ctrl+Shift+A define tanto ctrlKey como shiftKey como true.

repeat é true quando uma tecla mantida premida dispara eventos keydown repetidos (repetição automática). O primeiro keydown tem repeat: false; se mantiver a tecla premida, os keydowns seguintes têm repeat: true. Este registador mostra apenas keydown e keyup, por isso pode detetar teclas em repetição observando entradas idênticas agrupadas.

Para quem é o registador de eventos

Depuração de manipuladores de teclas

Os programadores web que constroem interações de teclado personalizadas conseguem ver exatamente que eventos disparam e em que ordem, e inspecionar todas as propriedades do objeto de evento para garantir que os manipuladores respondem corretamente às teclas que os seus utilizadores pressionam.

Detetar chatter de teclas

Um switch avariado por vezes regista dois eventos keydown a partir de uma única pressão (chatter). Observe as marcas temporais e conseguirá detetar duplicados rápidos e associá-los a uma única tecla física — um sinal de desgaste de hardware ou de um switch que precisa de atenção.

Identificar teclas desconhecidas

Encontrou uma tecla no seu teclado com uma etiqueta pouco familiar ou um símbolo multimédia? Pressione-a aqui e leia as suas propriedades code e key para perceber que evento dispara, ou para a mapear na sua aplicação ou configuração de jogo.

Verificar remapeamentos e modificadores

Teste software de remapeamento de teclado ou associações de teclas ao nível do sistema operativo registando eventos e confirmando que as teclas pressionadas produzem as combinações esperadas de code e modificadores. Verifique que o AltGr e outros modificadores internacionais registam corretamente.

Glossário de eventos de teclado

key
O carácter produzido pela pressão da tecla, afetado pelo esquema de teclado e pelos modificadores — por exemplo, "a", "A", "1", "!", "é".
code
A localização física da tecla, independente do esquema — por exemplo, "KeyA", "Digit1", "Enter", "Space", sempre igual independentemente do esquema ou dos modificadores.
keyCode (obsoleto)
Um código numérico antigo (por exemplo, 65 para A). Não usar em código novo — é inconsistente entre navegadores e não funciona de forma fiável com teclados internacionais.
location
A posição física da tecla: 0 = padrão, 1 = modificador esquerdo, 2 = modificador direito, 3 = teclado numérico. Distingue o Shift esquerdo do direito, e as teclas do teclado numérico das teclas normais.
repeat
Sinalizador booleano que é true quando uma tecla mantida premida dispara um evento keydown repetido (repetição automática). O primeiro keydown é false; os seguintes são true se a tecla permanecer premida.
Sinalizadores de modificadores (ctrlKey, shiftKey, altKey, metaKey)
Sinalizadores booleanos que indicam se Ctrl, Shift, Alt ou Command/Windows estavam premidos durante o evento. Vários sinalizadores podem ser true em simultâneo para combinações de teclas.

FAQ do registador de eventos de teclado

Qual é a diferença entre key e code?

key é o carácter real produzido pelo teclado (por exemplo, 'a', 'A', '1', '!'), que depende do seu esquema de teclado e de se modificadores como o Shift estão premidos. code é a localização física da tecla (por exemplo, 'KeyA', 'Digit1'), independente do esquema e dos modificadores — pressionar a mesma tecla física em regiões diferentes devolve sempre o mesmo code. Em teclados internacionais, o code mantém-se constante enquanto a key muda.

O que é o keyCode e porque está obsoleto?

keyCode é um código numérico antigo atribuído a cada tecla (por exemplo, 65 para a tecla A). Era usado antes das propriedades modernas key e code, e está obsoleto porque era inconsistente entre navegadores e não funcionava de forma fiável com teclados internacionais ou teclas especiais. Use antes code para a localização física da tecla e key para o carácter produzido.

Como detetar chatter de teclas (uma tecla que regista duas vezes)?

O chatter de teclas acontece quando uma única pressão produz dois ou mais eventos keydown sem um keyup pelo meio. Verifique no registador se há entradas keydown duplicadas e rápidas com o mesmo code e uma diferença de tempo muito pequena (normalmente inferior a 50ms). Se uma tecla apresentar chatter de forma consistente, pode ser um problema de hardware nesse switch. Alguns teclados ou drivers podem ser configurados para fazer debounce; consulte o firmware ou software do seu teclado.

O registador guarda ou envia as minhas pressões de tecla?

Não. Todo o registo acontece inteiramente no seu navegador. Nada do que escreve é enviado para um servidor, carregado, guardado ou registado em qualquer lugar fora do seu dispositivo. Atualizar a página limpa o registo por completo. Este registador é uma ferramenta de diagnóstico para programadores — a sua privacidade e dados não são transmitidos.

Porque é que algumas teclas — como Fn ou as de multimédia — não aparecem no registo?

Teclas como Fn e muitas teclas dedicadas de multimédia, volume ou brilho são tratadas pelo firmware do teclado ou pelo sistema operativo antes de o navegador sequer ver um evento, por isso não há nada para o registador anotar. Isto é esperado, não uma avaria. Uma tecla padrão que continue sem produzir keydown aqui — depois de clicar na caixa de captura para lhe dar foco — aponta, na verdade, para um interruptor morto ou uma ligação interrompida.