Bonjour à tous,
Il y a un article sur cybercodeur justement sur le sujet :
http://www.cybercodeur.net/weblog/commentaires/detailsCarnet.php?idmessage=1088
particulièrement intéressant.
Je n'étais pas tout à fait convaincu, alors j'ai répondu au carnet en essayant de donner quelques points contraires. Malheureusement, mon argumentation était particulièrement mauvaise et j'ai été incohérent sur trois ou quatre point. Je suppose que je ne dors pas assez ces temps-ci. Mais bon... on m'a proposé de continuer la discussion ici et c'est ce que je fais. Je vous conseille donc de lire l'article si vous voulez connaître le contexte.
En fait la solution proposé dans l'article est très élégante et amène un maximum de séparation structure/présentation/comportement. Par contre, il y a quelques points qui me tracassaient :
1) Utiliser le DOCTYPE XHTML 1.0 Strict et la technique de remplacement du target="_blank" par onclick="équivalent de target blank en javascript" est philosophiquement incompatible. Ou pour reprendre un peu le dernier message de ce fil de discussion : Il faut s'assumer et ne pas utiliser le modèle strict.
2) Le javascript contient une version pour IE et une autre pour les fureteurs standards. Pour une partie du code du moins.
Pour l'instant je suis totalement en désaccord avec le premier point. Il faudrait me dire où dans le standard XHTML 1.0 Strict on nous oublige en tout temps d'effectuer une séparation parfaite comportement/structure/présentation. Ne faisons-nous pas déjà en partie cette séparation en utilisant l'attribut onclick plutôt que target ? L'idéal est effectivement de tout mettre le javascript dans un fichier séparé, mais cela n'est pas toujours possible (surtout lorsque, comme développeur, nous n'avons accès qu'à une partie du code ou devont respecter certaines contraintes d'architecture). Doit-on abandonner les nombreux avantages du XHTML Strict juste parce que on ajouté un maigre onclick. C'est ne pas comme si nous ajoutions un <nobr> quand ,même !!!
Ma compréhension du modèle strict est que celui-ci est un pas dans la bonne direction, mais qu'il est loin d'être parfait. Il faudra attendre le XHTML2, que fort probablement personne n'utilisera, pour atteindre ce but. (La façon de faire aura le temps de complètement changer d'ici là).
Je pense quand même qu'il est mieux d'utiliser un onclick à l'intérieur d'un modèle strict qu'un target="_blank" en transitionnel, car cela nous force à commencer à réfléchir à la séparation comportement/structure. Même s'il existe de meilleures solutions. Je ne suis pas encore capable de dire, ne faites jamais cela, c'est Mal (tm).
Nous pourrions comparer l'utilisation de l'attribut onclick à l'utilisation de l'attribut style, tous deux permis dans le XHTML Strict, mais pas idéal au niveau séparation structure/comportement/présentation. (de la même façon, je trouve que c'est mieux d'utiliser l'attribut style que les diverses balises comme <font>, mais bon...)
Pour le point 2),Je vais y réfléchir et je vous reviens la dessus. Si je ne vous reviens pas c'est que je n'ai pas trouvé d'argumentation potable.