Résumé

  • Un lien target="_blank" pouvait donner à la nouvelle page une relation opener avec l’onglet d’origine.
  • Une proposition de 2018 et la modification HTML de 2019 ont inversé le réglage courant : noopener devient implicite et rel="opener" demande le lien volontairement.

Vous cliquez et une page apparaît dans un nouvel onglet. L’ancienne reste derrière, tranquille, croit-on. Pendant longtemps, le nouveau document recevait aussi une poignée vers l’onglet qui l’avait ouvert, sous le nom window.opener. Avec cette poignée, la destination pouvait faire naviguer la page d’origine. L’interface montrait deux fenêtres séparées; leur pouvoir de se toucher racontait une autre histoire.

Le dossier ouvert auprès de WHATWG le 10 octobre 2018 a décrit le défaut de l’époque. Chris Dumez relevait que target="_blank" donnait une relation d’ouverture tant que l’auteur n’ajoutait pas rel="noopener". Il proposait de faire l’inverse : débrancher par défaut, puis laisser un rel="opener" explicite aux pages qui avaient réellement besoin de parler à leur origine. Un lien ordinaire avait hérité d’une poignée conçue pour la coopération entre fenêtres.

Le lendemain, un rapport WebKit consignait une expérience : traiter les liens _blank comme si noopener était présent, avec opener pour reprendre volontairement l’ancien comportement. La porte visible ne changeait guère. Le fil caché, lui, cessait d’être attaché automatiquement. Le choix ne reposait plus sur la mémoire de chaque éditeur au moment d’ajouter un lien externe.

La modification de la norme HTML intégrée le 7 février 2019 a donné à cette idée sa règle commune. La procédure actuelle des hyperliens examine d’abord noopener ou noreferrer; elle traite aussi _blank comme sans ouvreur si opener n’est pas indiqué. rel="opener" devient donc une demande explicite de relation. Le lecteur voit encore un onglet neuf. La différence porte sur ce que cet onglet peut toucher derrière lui.

Ce renversement raconte comment une norme peut changer le contrat d’un geste sans changer son apparence. Avant, l’auteur devait penser à ajouter le mot qui coupait le fil. Après, il doit nommer le fil qu’il veut garder. Les applications qui coordonnent deux fenêtres disposent toujours d’une demande explicite. Un simple lien vers un article peut ouvrir sa nouvelle pièce et laisser la pièce précédente à sa place.

« Nouvel onglet » décrit une forme à l’écran, pas toute la carte des pouvoirs. Deux rectangles distincts peuvent garder des relations invisibles. Entre l’alerte de 2018, l’essai WebKit et le texte de 2019, les artisans du navigateur ont retiré une relation accordée trop facilement. C’est une réforme discrète : personne ne voit le fil tomber, mais l’ancienne porte cesse de bouger quand la nouvelle page s’agite.