Summary

  • Le projet Pointer Lock de 2012 proposait de masquer le curseur, de diriger les événements vers un élément et de transmettre aux jeux le déplacement relatif de la souris, même au bord de l’écran.
  • La recommandation W3C de 2016 exige une action de déverrouillage toujours disponible. Échap est conseillé sur clavier. Après cette sortie décidée par la personne, la page doit attendre un nouvel engagement avant de reprendre la souris.

Faites pivoter la caméra d’un jeu à la première personne avec un curseur ordinaire. La main pousse encore, mais la flèche atteint le bord du moniteur et le regard s’immobilise. Le même mur invisible gêne le dessinateur qui essaie de faire tourner un modèle en trois dimensions. Le premier projet public du W3C, en mai 2012, imaginait une solution spectaculaire : cacher le curseur du système, envoyer les événements de souris à un élément choisi et livrer les déplacements plutôt qu’une position butant sur l’écran. La pièce virtuelle pouvait enfin tourner sans agrandir le bureau réel.

Il ne s’agissait pas d’un simple glisser-déposer prolongé. La capture classique s’achève quand on relâche le bouton. Pointer Lock persiste, reçoit le mouvement même sans bouton enfoncé et se passe d’une adresse visible pour le curseur. movementX et movementY donnent les écarts ; les coordonnées à l’écran restent fixes. Le joueur obtient un cou qui se tourne, au lieu d’une petite flèche qui se cogne au papier peint.

Le tour de magie présente une facture. Quand le curseur disparaît et que tous les événements vont au jeu, atteindre les commandes du navigateur ou une autre fenêtre devient difficile. Le projet de 2012 identifiait déjà la tentation d’une page qui reprendrait la souris aussitôt après qu’on lui a échappé. Il fallait une sortie que la page ne puisse pas confisquer. Le joueur prête sa souris au jeu ; il en reste propriétaire.

La recommandation du W3C d’octobre 2016 a précisé le marché. Un geste de déverrouillage par défaut doit rester disponible ; Échap est recommandé avec un clavier. La disparition de l’élément cible ou la perte de focus de l’onglet ou de la fenêtre met aussi fin au verrouillage. pointerlockchange annonce le changement, pointerlockerror l’échec. Un jeu peut rétablir son menu normal dès que la personne quitte la vue captive. Le texte pense également aux logiciels d’agrandissement : pendant le verrouillage, ils doivent pouvoir atteindre au clavier le point à grossir.

Le détail décisif concerne la deuxième prise. Pour le premier verrouillage, puis après une sortie par le geste de déverrouillage du navigateur, requestPointerLock() exige une nouvelle action d’engagement. En revanche, si l’application appelle exitPointerLock() pour afficher un menu, elle peut revenir sans ce nouveau geste. Les deux sorties n’expriment pas la même chose. Celle du joueur est un refus ; celle du jeu est un changement de mode. Les confondre ferait d’Échap une porte tournante dotée d’une enseigne « sortie ».

Le projet Pointer Lock 2.0 de février 2026 traite les mouvements bruts. L’option unadjustedMovement demande, lorsque la plateforme le permet, des données non modifiées par l’accélération de la souris ; la demande renvoie une Promise. Pour une visée précise, un même geste physique doit donner un résultat prévisible. Le projet détaille aussi l’activation de courte durée et l’ordre des demandes de verrouillage et de plein écran. L’historique des publications 2.0 du W3C court de 2016 à 2026. Une flèche disparue a occupé bien des lignes.

Le personnage peut enfin tourner sur lui-même. Quand la personne veut consulter un onglet ou faire une pause, elle reprend sa souris. La prouesse de Pointer Lock tient dans ce duo : mouvement sans bord pour le jeu, sortie toujours à portée de main pour le joueur.