Por que o navegador só reconhece meu controle depois que eu aperto um botão?
Porque o evento gamepadconnected costuma exigir uma interação inicial no hardware antes de o navegador expor o dispositivo à página, uma proteção contra sites detectarem silenciosamente quais periféricos estão conectados sem ação da pessoa.
Por que os eixos do analógico nunca mostram exatamente 0 em repouso?
Porque o potenciômetro interno do analógico tem ruído elétrico e folga mecânica que impedem uma leitura perfeitamente centrada; por isso jogos ignoram qualquer valor de eixo abaixo de uma zona morta configurada, tipicamente entre 0.1 e 0.15, antes de mover o personagem.
O índice do botão na tela corresponde ao nome impresso no meu controle?
Só quando mapping é "standard": nesse caso o índice 0 é sempre o botão inferior do cluster direito, independente da marca, mas um controle com mapping vazio pode ordenar os botões de outro jeito, então o índice sozinho nem sempre bate com o nome impresso.
Por que os eixos vão de -1 a 1 em vez de 0 a 100?
Porque a Gamepad API representa cada eixo como uma posição relativa ao centro do curso do analógico, onde 0 é o centro exato, -1 é o extremo esquerdo ou superior e 1 é o extremo direito ou inferior, um intervalo simétrico mais fácil de usar em cálculos de direção.