"target=_blank" n'est pas valide en doctype strict. Que faire  ?

Astuce par (Intégrateur du Dimanche, Strasbourg)
Créé le , mis à jour le (90893 lectures)
Tags : xhtml, onglet, target, blank, fenetre

L'attribut target est une façon d'imposer une navigation aux visiteurs. Elle n'est pas acceptée par le W3C dans les versions strictes de HTML et XHTML. Elle fait par contre son retour dans HTML5 pour l'élément a car très utile en combinaison avec les <iframe> et les applications web.

Target cible

Plusieurs solutions

  1. Utiliser un équivalent en JavaScript (mais l'esprit reste le même, cela force le comportement de l'utilisateur) : onclick="window.open(this.href); return false;"
  2. Choisir, comme le recommande le W3C dans ce cas, un doctype transitionnel. Voici son avis sur la question : http://www.w3.org/MarkUp/2004/xhtml-faq#target
  3. Laisser libre le visiteur et ne pas imposer de nouvelle fenêtre. C'est sans aucun doute le meilleur choix à faire.
  4. Indiquer clairement au visiteur que le lien va s'ouvrir dans une nouvelle fenêtre (image, indication, infobulle, etc.)

Un peu de philosophie

target va contre la philosophie de laisser le visiteur libre de sa navigation. Elle pose également de gros problèmes d'accessibilité, notamment aux utilisateurs non-voyants. Soit on adhère à cette philosophie, soit on n'y adhère pas. Toute la question est là... et les réponses en découlent très logiquement :

  • Si on y adhère, on refuse d'employer target (ou toute autre bidouille javascript équivalente)
  • Si on n'y adhère pas, le W3C a la réponse : "If you want to use the target attribute, use XHTML 1.0 transitional." (solution 2)

Ressources