ToolActToolAct

Test de Manette

Testez les boutons, sticks, gâchettes, croix directionnelle et vibrations de votre manette dans le navigateur

Aucune manette détectée
Branchez une manette et appuyez sur un bouton pour l'activer
LBRBYXBA

Stick gauche

X: 0.00Y: 0.00
Centré

Stick droit

X: 0.00Y: 0.00
Centré

Gâchettes

LT
0.00
RT
0.00

Test des vibrations

Cette manette ou ce navigateur ne prend pas en charge les vibrations.

Historique des événements

Appuyez sur un bouton de la manette pour commencer le test...

Qu'est-ce que le Test de Manette ?

Un test de manette lit les signaux que votre contrôleur envoie au navigateur via la Gamepad API du W3C et les affiche en temps réel : chaque appui de bouton, la position des sticks analogiques, la course des gâchettes, les directions de la croix directionnelle et les moteurs de vibration. C'est le moyen le plus rapide de vérifier qu'une manette fonctionne avant une partie, de diagnostiquer un bouton qui colle, de repérer le drift d'un stick usé ou de contrôler que les deux moteurs de vibration répondent. La page met en évidence chaque entrée sur un affichage de type Xbox, affiche les valeurs brutes des axes et des gâchettes, et conserve un bref journal des événements. Comme la Gamepad API n'expose un contrôleur qu'après un appui sur l'un de ses boutons, la page vous demandera d'abord d'appuyer sur une touche : c'est une règle de sécurité du navigateur, pas un défaut de votre manette. Tout s'exécute localement dans votre navigateur ; aucune donnée d'entrée ne quitte votre appareil.

Comment utiliser

Mode d'emploi

  1. Branchez votre manette en USB ou Bluetooth
  2. Appuyez sur n'importe quel bouton de la manette pour l'activer
  3. Observez l'affichage à l'écran s'illuminer quand vous appuyez sur les boutons ou bougez les sticks
  4. Utilisez les boutons de vibration pour tester les moteurs
  5. Consultez l'historique des événements pour vérifier que chaque appui a été enregistré

Astuces

  • Une surbrillance verte signifie que l'entrée arrive correctement au navigateur
  • Un contrôleur n'apparaît qu'après un appui sur l'un de ses boutons - c'est une règle de sécurité du navigateur
  • La prise en charge des vibrations dépend du navigateur et de la manette ; Firefox est le plus complet
  • Si un stick affiche une valeur non nulle au repos, l'étiquette de drift vous avertit d'un drift du stick
  • Plusieurs manettes connectées peuvent être permutées via les pastilles d'emplacement

Cas d'utilisation

Diagnostiquer les boutons muets ou qui se déclenchent deux foisAppuyez une fois sur chaque bouton de face, chaque bumper et chaque direction de la croix directionnelle, et regardez l'affichage à l'écran s'illuminer à partir de l'état réel des boutons. L'historique des événements enregistre chaque appui et chaque relâche, donc un interrupteur qui se déclenche deux fois sur une seule pression ou qui ne s'enregistre pas du tout se repère immédiatement en comparaison d'un bouton sain.
Détecter le drift des sticks analogiquesLaissez les deux sticks au centre et lisez les valeurs X/Y en direct. Un stick en bon état se maintient près de 0,00 ; l'étiquette de drift passe à l'orange lorsqu'un stick dépasse 0,12 au repos, le symptôme classique de modules de stick usés qui font dériver votre personnage ou votre curseur tout seul.
Vérifier la linéarité des gâchettesPressez lentement LT et RT et regardez la valeur monter de 0,00 à 1,00 sur les barres de gâchette. Une gâchette qui saute, qui atteint son maximum trop tôt ou qui n'atteint jamais la pleine valeur souffre d'un potentiomètre usé - utile à confirmer avant d'incriminer la sensation d'accélérateur d'un jeu de course.
Tester les moteurs de vibration indépendammentLes boutons faible, forte et double vibration pilotent séparément les moteurs haute fréquence et basse fréquence via l'API GamepadHapticActuator. Si une seule intensité se déclenche, un moteur est mort ; si rien ne se passe, soit la manette, soit le navigateur ne prend pas en charge les vibrations et la page l'indique explicitement.
Identifier et permuter plusieurs manettesLe panneau d'état indique pour chaque manette la chaîne d'identifiant du fabricant, le type de mappage (standard ou non), l'index d'emplacement, le nombre de boutons et d'axes. Quand plusieurs manettes sont appairées, les pastilles d'emplacement permettent de basculer le testeur entre elles sans reconnexion - pratique pour vérifier un lot complet de contrôleurs avant une session multijoueur locale.

Principe technique

Le navigateur expose les manettes via la Gamepad API du W3C. Un contrôleur est représenté par un objet Gamepad obtenu depuis navigator.getGamepads(), qui renvoie jusqu'à quatre emplacements. Chaque gamepad comporte une chaîne id (fabricant et produit), un champ mapping ('standard' pour les périphériques de type Xbox, vide sinon), un tableau buttons et un tableau axes. Avec le mappage standard, buttons compte 17 entrées : quatre boutons de face (A/B/X/Y), deux bumpers (LB/RB), deux gâchettes analogiques (LT/RT), Select/Start, deux clics de stick (L3/R3), quatre directions de la croix directionnelle et le bouton Home/Guide. Chaque bouton expose .pressed (booléen) et .value (0 à 1 - les gâchettes sont analogiques, les boutons numériques valent 0 ou 1). Le tableau axes contient quatre valeurs comprises entre -1 et 1 : X/Y du stick gauche, puis X/Y du stick droit. L'API fonctionne par scrutation et non par événements : la page exécute donc une boucle requestAnimationFrame et relit une capture fraîche à chaque image. Pour éviter les re-rendus inutiles quand la manette est inactive, l'état n'est mis à jour que lorsque gamepad.timestamp change - cet horodatage avance à chaque nouveau rapport d'entrée. Les connexions et déconnexions arrivent sous forme d'événements window gamepadconnected et gamepaddisconnected. Pour des raisons de sécurité, un objet gamepad reste null tant que l'utilisateur n'a pas appuyé sur un bouton de la manette, donc la page ne peut pas lire silencieusement une manette qui vient d'être branchée. Les vibrations sont optionnelles : si gamepad.vibrationActuator existe, l'appel à playEffect('dual-rumble', { duration, weakMagnitude, strongMagnitude }) pilote les deux moteurs ; Safari et certaines versions de Chromium ne l'implémentent pas, c'est pourquoi la page fait une détection de fonctionnalité et désactive les boutons sinon.

  • navigator.getGamepads() renvoie jusqu'à quatre emplacements ; un emplacement n'est non null qu'après un appui sur un bouton de la manette.
  • Mappage standard : buttons[0-3] face, [4-5] bumpers, [6-7] gâchettes analogiques, [8-9] Select/Start, [10-11] L3/R3, [12-15] croix directionnelle, [16] Home.
  • axes[0-1] est le stick gauche (X, Y), axes[2-3] le stick droit, chacun compris entre -1 et 1.
  • Modèle par scrutation : une boucle requestAnimationFrame lit les captures ; gamepad.timestamp sert de porte pour que les images inactives ne fassent rien.
  • Vibrations via gamepad.vibrationActuator.playEffect('dual-rumble', ...) - détectées par fonctionnalité, non prises en charge par tous les navigateurs.
  • Les événements gamepadconnected / gamepaddisconnected signalent la connexion et la déconnexion ; le .index de la manette identifie son emplacement.

Exemples

Appui sur un bouton de face

Appuyez sur A -> buttons[0].pressed = true, value = 1.0

Poussée du stick gauche

Poussez le stick gauche en haut à droite -> axes[0] = 0.71, axes[1] = -0.68

Pression d'une gâchette

Pressez RT à mi-course -> buttons[7].value = 0.50, pressed = false (sous le seuil)

FAQ

Pourquoi ma manette n'apparaît-elle pas quand je la branche ?

La Gamepad API garde un contrôleur masqué tant que vous n'appuyez pas sur l'un de ses boutons, afin d'empêcher les pages de faire discrètement l'empreinte des périphériques connectés. Branchez la manette en USB ou Bluetooth, placez le focus sur cet onglet, puis appuyez sur n'importe quel bouton - le panneau d'état passera à Connectée. Cette étape d'activation est une règle de sécurité du navigateur, pas un défaut.

Quels contrôleurs sont pris en charge ?

Tout contrôleur que le navigateur expose avec le mappage standard : manettes Xbox One/Series, DualShock 4 et DualSense (que la plupart des systèmes mappent en standard), ainsi que la plupart des manettes USB génériques. En Bluetooth ou en USB, le navigateur les normalise toutes vers la même disposition à 17 boutons et 4 axes. Les manettes non standard fonctionnent aussi, mais l'ordre de leurs boutons peut ne pas correspondre aux étiquettes à l'écran.

Pourquoi les vibrations ne fonctionnent-elles pas ?

La prise en charge des vibrations varie. Firefox est le plus complet ; Chrome et Edge la gèrent sur les versions récentes ; Safari ne l'implémente pas. La manette elle-même doit aussi exposer gamepad.vibrationActuator. La page le détecte et affiche un avertissement explicite « non pris en charge » au lieu de ne rien faire en silence : une absence de vibration est donc une limite du navigateur ou du matériel, pas un bug de l'outil.

Mon stick affiche une valeur sans que je le touche, est-il cassé ?

Une petite valeur proche de 0 correspond au bruit normal de la zone morte. Si un stick se maintient au-dessus d'environ 0,12 sur un des axes au repos, l'étiquette de drift passe à l'orange : c'est le drift classique du stick, causé par l'usure des modules de potentiomètre. C'est un problème matériel qui empire généralement avec le temps ; l'outil vous permet de le confirmer avant d'incriminer un jeu.

Des données sont-elles envoyées à un serveur ?

Non. La Gamepad API est lue entièrement dans votre navigateur. Les appuis de boutons, les positions de sticks et les commandes de vibration ne quittent jamais votre appareil. Rien n'est journalisé ni transmis.

Peut-on tester les gâchettes adaptatives du DualSense, le pavé tactile ou le gyroscope ?

Non. La Gamepad API standard n'expose que les boutons, les axes et les vibrations de base. Les gâchettes adaptatives du DualSense, le pavé tactile capacitif et les capteurs de mouvement ne font pas partie du standard web (certains se cachent derrière des extensions expérimentales mal prises en charge par les navigateurs), ils ne peuvent donc pas être testés de façon fiable depuis un navigateur.