La suppression de l’attribut target et son remplacement | W3Québec
Par Benoît Piette, septembre 2005
Pourquoi l’attribut target de la balise de liens a-t-il été retiré des standards HTML et XHTML Strict?
Cet attribut a été retiré pour deux raisons :
- pour améliorer l’ergonomie des documents Web;
- pour séparer le contenu actif / dynamique d’un document ou d’une application de la structure du document.
Améliorer l’ergonomie des documents Web
En imposant une façon de naviguer à l’utilisateur, l’attribut target
peut désorienter et gêner un utilisateur.
En effet, l’interface utilisateur de la plupart des navigateurs offre déjà la possibilité d’ouvrir un lien sur une même page, sur une nouvelle page ou dans un nouvel onglet.
L’empiètement de l’interface utilisateur d’un document Web sur l’interface utilisateur du fureteur peut générer des incohérences d’interfaces. L’utilisateur ne sait plus comment va réagir le navigateur en suivant un lien et se demande : « Va-t-il ouvrir ou non une nouvelle fenêtre? » « Quand peut-on utiliser les fonctionnalités « Précédent » et « suivant » de la page? »
Le document Web semble ainsi prendre le contrôle du poste de travail de l’utilisateur.
Séparer le contenu de la structure
L’attribut target
n’apporte rien à l’égard de la structure ni de la sémantique d’un document, et fait plutôt partie du contenu actif / dynamique du document.
L’attribut target
sert à capturer et modifier l’événement de clic sur un lien, spécifique à l’utilisation de fenêtres dans une interface utilisateur visuelle.
Le contenu actif devrait être géré par un langage de script, comme JavaScript, et non par le HTML. Cette séparation sert à simplifier la maintenance et aide à la lisibilité du code.
Par quoi remplacer l’attribut target?
On utilise souvent l’attribut target
lorsque l’utilisateur quitte un site.
L’ouverture d’une nouvelle fenêtre sert à spécifier à l’utilisateur qu’il quitte un site et à garder une fenêtre du site ouverte en arrière-plan, incitant l’utilisateur (sic) à retourner sur le site. Il existe d’autres moyens qui respectent mieux l’interface utilisateur, comme l’usage des codes de couleurs pour les liens ou une page interstice contenant un message spécifiant à l’utilisateur qu’il quitte le site. Si vous devez, pour des bonnes ou moins bonnes raisons, absolument garder une fonctionnalité d’ouverture de nouvelles fenêtres et que vous voulez que votre document valide XHTML Strict, vous pouvez utiliser un événement javascript.
Voici un exemple :
W3Quebec (*)
Cette solution ouvre une nouvelle fenêtre pour les navigateurs acceptant le JavaScript, mais non pour les autres. Elle a l’avantage d’être significative pour les navigateurs n’utilisant pas de fenêtres (généralement sans JavaScript).
Pour ceux qui veulent un contrôle total de leur fureteur et qui auraient inhibé le script ou l’ouverture de fenêtre par un script, le lien fonctionne encore et n’ouvre pas de nouvelle fenêtre.
L’utilisation d’événements capturant le clic d’un utilisateur n’est pas recommandée, pour les mêmes raisons qui ont conduit à retirer target
, et ne devrait être employée qu’en dernier recours ou lorsqu’il est clair pour un utilisateur que son fureteur exécute une application Web et non un document Web. Par exemple, lors d’une transaction bancaire, on peut s’attendre à certaines différences dans l’interface utilisateur, car il est clair que cela fait partie d’une application Web.
Ce type de solution peut être utilisé lors de la période de transition entre les techniques non ergonomiques et celles qui sont plus conforme aux standards.
(*) window.open()
est une fonction JavaScript (DOM 0) ouvrant une fenêtre. La condition if(win)
permet de tester la valeur de retour de la fonction et d’inhiber le lien que si la fenêtre s’ouvre.