Summary

  • Un projet de travail du W3C de janvier 2010 exposait le risque : :visited, les requêtes de sélecteurs et getComputedStyle() pouvaient renseigner une page sur les visites passées. Mozilla a choisi de conserver le repère visuel tout en renvoyant aux scripts les valeurs d’un lien non visité.
  • Chrome 136 a réparti l’historique des liens selon la destination, le site de premier niveau et l’origine du cadre. Le violet d’un clic fait depuis un site ne suit plus automatiquement le lecteur chez un tiers ; les liens internes du site disposent d’une exception documentée.

La couleur d’un lien fait une promesse simple : « ce chemin, vous le connaissez déjà ». Elle peut aussi répondre à une question que pose le site à votre navigateur : « êtes-vous passé par cette autre adresse ? » Dans son premier projet de Selectors API Level 2, daté de janvier 2010, le W3C montrait la fuite possible. Une page pouvait essayer des sélecteurs :visited ou examiner des styles calculés pour dresser une liste d’adresses déjà fréquentées. Le navigateur répondait alors à une question que seule la personne devait pouvoir poser.

Supprimer le violet aurait éteint la question en retirant aussi le service rendu au lecteur. Mozilla annonça en mars 2010 une autre tactique pour Firefox, alors en cours d’intégration. Les différences autorisées pour les liens visités seraient cantonnées aux couleurs. Le calcul de mise en page emprunterait des chemins plus semblables, et une demande JavaScript à getComputedStyle() recevrait les valeurs d’un lien non visité. Le visiteur verrait toujours le souvenir ; la page obtiendrait une version qui ne révèle pas ce souvenir.

Le dispositif ressemblait à un bibliothécaire discret : il coloriait la fiche destinée au lecteur, puis présentait une fiche neutre à l’enquêteur. Mais la mémoire du navigateur restait large. La présentation de Chrome d’avril 2025 rappelait qu’un lien suivi depuis le site A pouvait apparaître visité lorsque le site C affichait la même destination B. Le lieu du clic ne limitait pas encore l’endroit où son effet pouvait se voir.

Avec Chrome 136, publié en version stable le 29 avril 2025, le navigateur a ajouté des cloisons. Pour qu’un lien prenne l’état :visited, Chrome tient compte de l’URL cible, du site de premier niveau et de l’origine du cadre où le clic a commencé. A peut afficher le souvenir d’un lien cliqué chez A. C, étranger à ce clic, ne récupère plus ce souvenir. Les liens vers les propres pages d’un site bénéficient d’une exception : le site peut déjà connaître les visites vers ses pages, même si elles ont commencé ailleurs.

Le projet de travail Selectors Level 4 publié par le W3C en janvier 2026 présente désormais plusieurs manières de préserver cette séparation. Il décrit l’ancien art de cacher les styles aux scripts et esquisse, en annexe, une mémoire liée à l’URL, à l’origine du départ et au site de premier niveau. Il fixe surtout la question que les navigateurs ont dû résoudre : à qui appartient le souvenir qui rend ce lien violet ?

Le lecteur peut toujours retrouver son chemin. Firefox avait commencé par retirer aux pages les instruments qui lisaient la couleur. Chrome 136 a déplacé la frontière autour de la mémoire elle-même. Le violet travaille encore ; il a simplement appris à parler moins fort hors de la pièce où le trajet a commencé.