Le API Gamepad Web consentono a una pagina di accedere agli oggetti controller che il browser sceglie di esporre. È estremamente utile, ma la disponibilità non garantisce nomi di dispositivi identici, ordine dei pulsanti, ordine degli assi o supporto delle funzioni su tutte le piattaforme.
Attivazione utente e rilevamento
I browser potrebbero attendere la pressione di un pulsante del gamepad prima di esporre un dispositivo connesso. Questo riduce il fingerprinting passivo e significa che un controller può essere fisicamente connesso mentre navigator.getGamepads() inizialmente restituisce voci vuote. Keymap Labs invita l'utente a premere un pulsante e rimane in ascolto degli eventi di connessione continuando a ispezionare l'elenco corrente.
Diverse funzioni dei dispositivi del browser richiedono una connessione sicura. Usa https://keymap.io, mantieni il browser aggiornato ed evita versioni duplicate o incorporate della pagina quando confronti i risultati.
Mappature standard e generiche
Un oggetto gamepad può dichiarare la mappatura standard, che assegna posizioni comuni per pulsanti frontali, dorsali, trigger, stick e pulsanti direzionali. I dispositivi generici possono fornire una mappatura vuota ed esporre array grezzi in un ordine specifico del dispositivo.
Keymap Labs mostra sempre gli indici dei pulsanti grezzi e i valori degli assi. Questo mantiene lo strumento utile anche quando un controller non corrisponde al diagramma familiare. Non rinomina un input generico con un'affidabilità ingiustificata.
I trigger analogici possono apparire come pulsanti con valori frazionari, assi separati o pulsanti digitali a seconda dello stack. Funzionalità aggiuntive come touchpad, giroscopio, stato della batteria, LED e aptica non sono disponibili in modo coerente tramite la mappatura principale e non rientrano nell'ambito diagnostico standard.
Comportamento di connessione e indice
I gamepad ricevono un indice all'interno della sessione del browser. Disconnettere e ricollegare può cambiare quale voce è attiva. Il laboratorio dal vivo seleziona un dispositivo disponibile e risponde ai cambiamenti di connessione; usa il selettore di dispositivi quando vengono esposti più controller.
La modalità wireless può esporre un identificatore o un set di funzioni diverso rispetto alla modalità USB. Questa differenza deve essere registrata durante la risoluzione dei problemi. Un identificatore visibile dal browser può anche essere generico per motivi di privacy o di driver.
Matrice di validazione
Un serio confronto di compatibilità richiede dispositivi fisici su diversi sistemi operativi e motori di browser. Keymap Labs utilizza le API standard e gestisce pulsanti o assi mancanti in modo difensivo, ma un test online non può emulare il driver di ogni controller.
Un record di confronto utile include:
- Sistema operativo e versione
- Motore del browser e versione
- Modello e firmware del controller
- Con cavo, Bluetooth o ricevitore proprietario
- ID rilevato, mappatura, assi e conteggio dei pulsanti
- Rappresentazione dei trigger e ordine degli stick
- Comportamento di connessione, riconnessione e focus
I risultati devono essere trattati come osservazioni datate, non come un badge “funziona ovunque” eterno. Gli aggiornamenti del browser e del sistema operativo possono modificare le mappature nel tempo.
Interpretazione di un risultato vuoto
Nessun controller nella pagina può significare assenza di dispositivi, nessun consenso dell'utente, una limitazione del browser, un'applicazione in conflitto, un livello di driver o un problema di connessione. La guida al rilevamento del gamepad analizza questi livelli in un ordine controllato.
Se il dispositivo compare ma un'etichetta visiva è errata, le modifiche dell'indice grezzo confermano comunque che un input ha raggiunto il browser. Se gli assi non tornano al centro, il Stick Drift Test aggiunge un campione temporizzato, ma tale risultato rimane vincolato alla mappatura e alla calibrazione correnti.
Promessa di compatibilità
Keymap Labs supporta i browser moderni che espongono le API Gamepad e fornisce un chiaro stato di fallback quando non è disponibile alcuna opzione. Non richiede alcun account, estensione del browser o driver. Non può garantire funzionalità avanzate del controller o etichette universali.
Tale promessa è intenzionalmente precisa. Gli utenti ricevono una diagnostica grezza funzionante laddove la piattaforma lo consente e una spiegazione utile laddove non lo fa.