Lunaweb, une réflexion sur la création web et le marketing Internet

Ouvrir une nouvelle fenêtre sans utiliser l’attribut Target

Par le
No Gravatar

dreamstime_1151080En matière d’accessibilité et de conformance aux standards du Web, il apparaît que l’usage de la norme xHTML strict nous prive d’un certain nombre de balises « classiques » de l’HTML 4 telles que le B (gras), le I (italique) ou encore le U (underline). S’il est facile de s’en passer en adoptant une classe du choix de style à utiliser (ex : une class « gras » dans un span puis span.gras définie dans une feuille CSS), il n’en va pas de même pour l’attribut TARGET permettant de piloter la cible d’ouverture d’un lien : dans la même fenêtre (target=_self), dans une nouvelle (target=_blank), dans une fenêtre parente (target=_parent), etc.

C’est donc avec beaucoup de ferveur que l’on a commencer à chercher des solutions alternatives à l’utilisation de la balise TARGET. Plusieurs options se sont présentées, et après en avoir testées plusieurs je me suis arrêtée sur la plus simple et la plus efficace : il s’agit d’intégrer au site un fichier javascript lisant une instruction déclenchée par un nom de classe appliquée à vos liens.

Dans son excellent article « Opening new windows with JavaScript« , Roger Johansson nous livre une version de ce fichier javascript allant plus loin que la simple ouverture d’une nouvelle fenêtre.

Concrètement, vous faites référence dans votre HEAD à un fichier tel que javascript-target.js puis vous appliquez la classe déclarée dans le javascript sur chaque lien, et le tour est joué (ici il s’agit de la classe « new-window », mais à vous de personnaliser votre code).

Le résultat est clair et sans appel : tous les liens dotés de la classe sont ouverts dans une nouvelle fenêtre, les autres dans la fenêtre en cours. Si vous ajoutez 2/3 lignes de mise en forme de ces liens dotés de la classe « ouverture dans une nouvelle fenêtre », vous êtes capables de faire distinguer les liens externes et internes (grâce à l’utilisation de la

Les avantages de l’usage de javascript pour l’ouverture de nouvelles fenêtres

Et l’accessibilité me direz-vous ?
Pas de soucis de ce côté : les navigateurs non javascripts prennent le lien comme un lien « en dur », ce qui, d’un point de vue référencement- arrange bien les choses.

De plus, la version javascript-target.js révisée par Roger Johansson n’ouvre pas le lien dans une nouvelle fenêtre lorsqu’une touche de modification est pressée. Cela signifie qu’en cliquant sur le lien et en pressant ctrl/shift/cmd, le lien est pris comme normal.

De plus, le script vérifie si la fenêtre a été correctement ouverte. En cas d’erreur, elle lance l’ouverture « normale » du lien dans la fenêtre initiale.

Pour garantir un niveau d’accessibilité et de respect de l’utilisateur optimal, un message automatique, configurable, est envoyé lors du survol du lien afin de prévenir le visiteur que ce lien sera ouvert dans une nouvelle fenêtre. Bref, un petit truc qui en vaut bien des gros !

Pour en savoir plus sur l'auteur de cet article...  Nicolas a fondé LunaWeb il y a 6 ans. Passionné d'ergonomie, d'utilisabilité et des techniques modernes de communication Web, il scrute de près les évolutions des usages Internet (web social, réseaux, webmarketing, ...). Lire plus d'articles de cet auteur...

  • Pratique ! Effectivement c'est dommage de ne plus avoir cette balise, pour une page de partenariats (par exemple) on n'a pas envie que le visiteur s'en aille :D.

    Après ruser comme ça, c'est contre le w3c quand même, puisque l'idée de ne pas accepter la balise target, c'est surtout pour dire "on n'a pas à forcer le visiteur à rester sur une page", non ?
blog comments powered by Disqus
↑ Haut de page