Investigação de Keymap Labs · 8 min

Compatibilidade de comandos no browser: o que os testes detetam

Uma nota de compatibilidade prática para a exposição de comandos, mapeamentos padrão, contextos seguros e validação entre browsers e sistemas operativos.

A API Web Gamepad dá a uma página acesso a objetos de comando que um browser decide expor. É amplamente útil, mas a disponibilidade não garante nomes de dispositivos idênticos, ordem de botões, ordem de eixos ou suporte de recursos entre plataformas.

Ativação e exposição pelo utilizador

Os browsers podem aguardar que um botão do comando seja premido antes de expor um dispositivo ligado. Isto reduz a recolha passiva de impressões digitais e significa que um comando pode estar fisicamente ligado enquanto navigator.getGamepads() retorna inicialmente entradas vazias. O Keymap Labs solicita ao utilizador que prima um botão e aguarda por eventos de ligação enquanto continua a inspecionar a lista atual.

Várias funcionalidades de dispositivos do browser exigem uma ligação segura. Utilize https://keymap.io, mantenha o navegador atualizado e evite versões copiadas ou incorporadas da página ao comparar resultados.

Mapeamentos padrão e genéricos

Um objeto de comando pode declarar o mapeamento padrão, que fornece posições comuns para botões de ação, botões superiores, gatilhos, analógicos e botões direcionais. Os dispositivos genéricos podem fornecer um mapeamento vazio e expor matrizes em bruto numa ordem específica do dispositivo.

O Keymap Labs mostra sempre os índices dos botões em bruto e os valores dos eixos. Isto mantém a ferramenta útil mesmo quando um comando não corresponde ao diagrama familiar. Não renomeia uma entrada genérica com certeza injustificada.

Os gatilhos analógicos podem aparecer como botões com valores fracionários, eixos separados ou botões digitais, dependendo da pilha técnica. Recursos adicionais como superfícies tácteis, giroscópio, estado da bateria, LEDs e háptica não estão consistentemente disponíveis através do mapeamento principal e encontram-se fora do âmbito de diagnóstico padrão.

Comportamento de ligação e índice

Os comandos recebem um índice dentro da sessão do browser. Desligar e voltar a ligar pode alterar qual a entrada ativa. O laboratório em direto seleciona um dispositivo disponível e responde a alterações de ligação; utilize o seletor de dispositivos quando vários comandos forem expostos.

O modo sem fios pode expor um identificador ou conjunto de recursos diferente do modo USB. Essa diferença deve ser registada durante a resolução de problemas. Um identificador visível no browser também pode ser genérico por motivos de privacidade ou de controladores.

Matriz de validação

Uma comparação de compatibilidade séria requer dispositivos físicos em diferentes sistemas operativos e motores de browser. O Keymap Labs utiliza a API padrão e lida com botões ou eixos em falta de forma defensiva, mas um teste online não consegue emular todos os controladores de comandos.

Um registo de comparação útil inclui:

  • Sistema operativo e versão
  • Motor do navegador e versão
  • Modelo do comando e firmware
  • Com fio, Bluetooth ou receptor próprio
  • ID reportado, mapeamento, eixos e contagem de botões
  • Representação de gatilhos e ordem dos sticks
  • Comportamento de ligação, religação e foco

Os resultados devem ser tratados como observações datadas, e não como um selo intemporal de “funciona em todo o lado”. As atualizações do navegador e do sistema operativo podem alterar os mapeamentos ao longo do tempo.

Interpretar um resultado vazio

A ausência de comandos na página pode significar falta de dispositivo, falta de ativação por parte do utilizador, uma limitação do navegador, uma aplicação concorrente, uma camada de controladores ou um problema de ligação. O guia de deteção de gamepads analisa essas camadas numa ordem controlada.

Se o dispositivo aparecer mas uma etiqueta visual estiver errada, as alterações de índice bruto ainda confirmam que uma entrada chegou ao navegador. Se os eixos não regressarem ao centro, o Stick Drift Test adiciona uma amostra cronometrada, mas esse resultado permanece vinculado ao mapeamento e à calibração atuais.

Promessa de compatibilidade

A Keymap Labs suporta navegadores modernos que expõem a Gamepad API e disponibiliza um estado de alternativa explícito quando nenhum está disponível. Não requer conta, extensão de navegador ou controlador. Não pode garantir recursos avançados de comandos ou etiquetas universais.

Essa promessa é intencionalmente precisa. Os utilizadores recebem um diagnóstico bruto funcional onde a plataforma o permite e uma explicação útil onde não o permite.