Liens sortants ouvrants

Il suffit d’activer ce plugin pour que tous les liens externes du site s’ouvrent dans une nouvelle fenêtre. À éviter, car c’est une mauvaise pratique. Mais tant qu’à mal faire, cette contrib le fait bien, c’est-à-dire en avertissant l’internaute de ce comportement, améliorant un peu l’accessibilité déplorable des liens ouvrants.

Cette première version du plugin, toujours fonctionnelle en SPIP 2, n’est plus maintenue car remplacée par cette nouvelle version : « Liens explicites ».

Avertissement : ouvrir une nouvelle fenêtre, c’est nul !

N’utilisez ce plugin que sous la contrainte, car forcer l’ouverture des liens dans une nouvelle fenêtre est une mauvaise pratique qui, contrairement à l’idée reçue, incommode les internautes et dégrade le confort d’utilisation de votre site [1]. Il n’y a en effet aucune bonne raison d’utiliser ce plugin qui n’existe que pour répondre à la demande impérieuse de certains commanditaires mal informés [2].

Concrètement, que fait ce plugin ?

Ce plugin vient s’ajouter à la longue liste des contributions à SPIP visant à forcer l’ouverture de liens dans une nouvelle fenêtre. Mais que fait-il de plus, de mieux ?

Première caractéristique, ce plugin ouvre tous les liens externes — et non pas seulement ceux distingués par le sélecteur SPIP spécifique .spip_out —, de façon à ne plus en oublier :

  • Aussitôt activé, ce plugin ouvre TOUS les liens externes (commençant par http://, https://, irc://, ftp, etc.) dans une nouvelle fenêtre, en ajoutant un target="_blank" à ceux-ci, en JavaScript, ce qui a pour double avantage de laisser tranquille les internautes surfant sans JavaScript et de ne pas dégrader le code (X)HTML qui reste strictement valide [3].
  • Il ajoute à ces liens l’attribut approprié rel="external" [4]
  • et un sélecteur distinctif homonyme class="external" de façon à permettre au webmestre de les cibler.

Seconde caractéristique, ce plugin signale clairement ce comportement :

  • Ce plugin complète l’infobulle des liens externes par une mention textuelle explicite : title="(nouvelle fenêtre)" [*]
  • et les distingue visuellement en les affublant d’un picto consensuel (une flèche inclinée à 45°), en CSS et affiche la langue du site cible lorsqu’elle est indiquée dans l’attribut hreflang [*].
  • Enfin, cerise sur le gâteau, il explicite ces liens à l’impression sur papier en ajoutant automatiquement l’URL du lien externe à la suite de son intitulé [*].

Personnalisations et recommandations

Si besoin, vous personnaliserez en surchargeant la règle CSS a.external { ... } (peut-être avec !important) dans votre feuille de style perso et en remplaçant le picto external.gif par un autre dans votre propre dossier squelettes, selon les règles de surcharge habituelles dans SPIP.

L’ouverture des liens dans une nouvelle fenêtre n’améliore pas l’accessibilité de votre site, bien au contraire. Ce plugin vous évite le pire mais sachez que les techniques qu’il emploie ne sont pas pour autant pleinement satisfaisantes, car CSS ou JavaScript ne sont pas disponibles sur certains agents utilisateurs (dont Internet Explorer). Retenez que pour bien faire, il faut signaler l’ouverture de nouvel par une mention textuelle explicite dans le lien, ou par un picto doté d’un alt, placé dans la page HTML, à l’intérieur du lien [5].

Notes

[1Lu sur CYBERcodeur, Liens et nouvelle fenêtre, Éric Daspet :

« On entend parfois que les nouvelles fenêtres permettent de ne pas perdre l’utilisateur en laissant l’ancienne page visible. En réalité c’est tout le contraire, et si vous voulez faciliter la vie de vos visiteurs, contentez-vous de mettre un titre pertinent à vos pages pour qu’il puisse naviguer correctement dans son historique quand il revient en arrière. »

[2De nombreux articles dénoncent cette mauvaise pratique. Citons celui de SPIP, évidemment, mais aussi le mien : Liens ouvrant une nouvelle fenêtre et Pourquoi ne faut-il pas ouvrir les liens dans une nouvelle fenêtre ?.

[3Notez bien que l’attribut target, introduit en HTML 4, n’existe plus dans les versions strictes du HTML 4.01 et suivantes.

[4Extrait de la spécification HTML 4 du W3C, ici traduite en français : Cet attribut décrit la relation partant du document courant vers l’ancre spécifiée par l’attribut href. La valeur de cet attribut est une liste de types de lien séparés par des espaces..

[*Pas garanti dans IE qui interprète mal les langages permettant cela : l’infobulle dysfonctionne dans certains cas et le CSS n’est pas toujours correctement interprété.

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom