PourquoiAttributTargetEstRetireDesStandardsHTMLEtXHTMLStrictParQuoiLeRemplacer – W3QCwiki
Auteur : Benoit Piette
Statut : corrigé
L’attribut a été retiré pour deux raisons.
Premièrement, pour 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. « 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.
Deuxièmement, pour séparer la structure du document du contenu actif / dynamique du document ou de l’application. L’attribut target n’apporte rien à l’égard niveau 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.
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 évenement 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 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.