Résumé

  • Un lien HTML peut porter une destination dans href et plusieurs adresses de notification dans ping. Le navigateur peut envoyer à ces dernières une requête POST lorsqu'on suit le lien.
  • La promesse d'un suivi plus visible que les redirections s'est heurtée à une question très concrète : quel navigateur allait réellement montrer ce signal au lecteur ?

Le lien promet une porte. Son texte est souligné, son adresse se laisse examiner, et l'on s'attend à traverser. Avec ping, la porte a acquis une sonnette dans un autre immeuble. On clique pour entrer ici ; là-bas, quelqu'un apprend qu'on a bougé. Le navigateur peut gérer les deux trajets presque au même instant. Le lecteur, lui, n'a passé commande que d'un voyage.

En octobre 2005, la liste de discussion WHATWG débattait déjà du dispositif : requête POST, possibilité de l'ignorer selon les préférences, indication éventuelle des demandes secondaires. Le problème était posé avant que l'attribut ne devienne une ligne paisible dans une norme. Où placer une information qui concerne le lecteur, alors que le code ne parle qu'au navigateur ? Une adresse écrite dans la source reste lisible pour qui ouvre la source. Le promeneur ordinaire regarde la porte.

Le projet avait ses défenseurs. Tyler Close expliquait en janvier 2006 que les sites suivaient déjà les clics sortants grâce à des liens passant par un serveur de redirection. L'adresse affichée pouvait alors dissimuler la destination réelle, et copier le lien revenait à emporter le détour. Séparer la destination et le signal semblait plus franc. href dirait où l'on va ; ping dirait à qui l'on annonce le départ. Sa thèse avait une élégance d'architecte : écrire la manœuvre au grand jour dans le document.

La norme HTML maintenue aujourd'hui décrit cette petite mécanique. ping contient une liste d'URL HTTP ou HTTPS. Pour chaque adresse retenue, le navigateur peut envoyer un POST dont le corps est le mot de quatre octets PING, sous le type text/ping. La réponse ne fournit aucun contenu utile à afficher. Le navigateur peut même laisser tomber certaines notifications ou toutes, selon les préférences de l'utilisateur. La page désigne les sonnettes ; le navigateur tient la main qui les actionne.

Et le lecteur ? Boris Zbarsky posait la question en novembre 2007. Une indication dans la barre d'état aurait peut-être satisfait une exigence écrite, mais bien des gens ne regardent jamais cette barre. Il entrevoyait donc une interface ordinaire sans signal visible. C'était une anticipation datée, et la difficulté qu'elle décrit reste limpide : une information cachée derrière une inspection technique n'a guère de valeur au moment du clic.

La trajectoire des textes officiels fut mouvementée. Le 4 mars 2010, un président du groupe HTML du W3C annonça l'adoption d'un appel au consensus visant à retirer <a ping> de son projet HTML5. La porte restait ouverte à une nouvelle proposition. Ce vote concernait un projet de norme. En 2018, un autre projet de norme du W3C décrivait de nouveau l'audit des liens et ajoutait une phrase bien moins triomphale : à cette date, aucun navigateur n'était connu pour offrir une interface permettant de gérer ou même de découvrir cet audit. Le papier promettait au lecteur un tableau de bord ; le tableau de bord tardait à se présenter.

Le standard vivant du WHATWG conserve ping. Il permet au navigateur d'indiquer les demandes supplémentaires et de laisser l'utilisateur agir sur elles. Ces verbes confient le dernier mot à l'interface. La syntaxe peut distinguer proprement le voyage de son reçu ; l'expérience vécue dépend de ce que le navigateur rend visible. Une porte clairement étiquetée ne suffit pas si sa sonnette annexe reste derrière le mur.

L'idée de départ avait de l'esprit. Un vrai href épargne au lecteur le faux itinéraire d'une redirection. Mais la franchise d'un fichier HTML est une qualité pour les lecteurs de fichiers HTML. Pour tout le monde, elle exige une traduction en signes et en commandes accessibles au moment où le doigt clique. Sinon, le lien a deux adresses et une seule affiche.