Une petite piqûre de rappel, maintes et maintes fois répétée et pourtant...
Assez fréquemment, sur les forums de webmasters que je hante, je lis ce genre de choses :
... Le but du XHTML est d'éviter les tableaux afin d'avoir une mise en page uniquement conçue en CSS.
... Le but du XHTML est de faire une séparation entre la fond et la forme.
Ce genre d'amalgames est un leitmotiv dans les salons de discussions en ligne. On dirait que la mode "CSS" ou "Web 2.0" veut tellement couper les ponts avec la conception web ancienne (à traduire par "tableaux de mise en forme" et "Wysiwyg") que l'on en devient fanatique et que l'on dédaigne certains langages - le HTML - sous prétexte qu'il permettent de concevoir des sites obsolètes.
Voilà certainement la grosse confusion des années actuelles.
Encore une fois, faisons une rapide piqûre de rappel :
- le but du XHTML n'est pas d'éviter les tableaux (les tableaux sont et resteront des balises tout à fait valides et utiles)
- les tableaux de mise en page ne sont pas prohibés, mais seulement déconseillés lorsqu'ils sont imbriqués (comme peuvent l'être des <div> imbriqués)
- le but du XHTML n'est pas d'avoir une page uniquement gérée via CSS : les feuilles de styles existent et cohabitent depuis HTML et n'ont rien de spécifique à XHTML
- le but de XHTML n'est pas de dissocier le contenu du contenant : là aussi, HTML le faisait très bien avant. Pour rappel, seules les versions strictes (de HTML ou XHTML) exigent cette séparation.
Pour rappel, les seules différences entre HTML et XHTML sont de l'ordre de la rigueur dans les balises (fermeture, imbrication, minuscules, etc.) et n'a strictement rien à voir avec les tableaux ou les CSS.
C'est en général le choix d'un doctype (strict ou transitionnel) qui va orienter la décision d'employer CSS ou non, mais pas le choix du langage.
OK, le contenu de ce coup de gueule a été dit et redit un peu partout, notamment dans ce blog ou le forum. Mais j'ai vraiment la sensation qu'il faut parfois en rajouter une couche de temps en temps pour que ça impregne bien les esprits.
Une dernière fois :
- Oui, le HTML permet de faire des sites obsolètes avec des tableaux.
- Oui le XHTML le permet tout autant.
- Oui, il est tout à fait possible de faire un document valide, propre, accessible, en CSS, et HTML
- Oui il est possible de faire des documents bien laids et invalides en XHTML transitionnel là où HTML strict aurait été un bien meilleur choix.
Voilà, c'est fait et ça soulage ;)
Commentaires
Tu nous refais ce coup de gueule en live jeudi ou vendredi? ^^
@Thanh : vendredi, j'essaierai de me faire aussi discret que possible :p
J'espère que les gens qui vont à Paris Web 2006 sont déjà au courant...
@guillaume,
moi j'y vais pour l'apéro =)
Bon rappel, utile à certains.
Par contre une petite erreur... un document se doit d'être sémantique pour respecter l'esprit des standards. Donc pas de tableau de mise en page, même non imbriqué :)
Je suis toujours épaté de voir comment certain d'entre nous prennent à coeur toutes ces choses.
"Je suis toujours épaté de voir comment certain d'entre nous prennent à coeur toutes ces choses."
> Pour certains, ils s'agit de leur métier quand-même, donc ça me semble assez primordial d'être à jour dans sa profession.
Très bon rappel !
Bref,en toute rigueur, un document XHTML est un document XML bien formé, (validé par une DTD spécifique)un document HTML ne l'est pas.
Le XHTML est un dialecte XML, pas le HTML.
Un document XHTML peut être transformé via une feuille XSLT, pas un document HTML etc...
Pour comprendre réellement la différence entre les deux, il faut avoir au moins des notions sur les dialectes XML.
Le XHTML 1.1 servi en tant que XML (avec le type application/xhtml+xml) permet de faire de grosses daubes : sebastienguillon.com/test...
Parallèlement HTML permet une séparation complète entre structure et présentation et un balisage sémantique : annevankesteren.nl/
Très peu de développeurs connaissent vraiment HTML. Encore moins comprennent vraiment les implications de XHTML.
Comme ça c'est clair, meme si ça à été déja dit...donc oui une petite surcouche ne fais pas de mal.
Bon billet qui remet les pendules à l'heure. Il est vrai que l'amalgamme est courant.
J'adore ton commentaire Sébastien Guillon, surtout tes deux exemples !
Enfin quelqu'un qui le dit... Ca fait plaisir...
@Sébastien Guillon > Merci pour ces exemples.
Pour XHTML 1.1 mal servi, on peut piocher ici aussi (voir les liens contenus) : forum.alsacreations.com/f...
Et pour voir un exemple frappant de site propre en HTML et CSS, pourquoi ne pas faire un tour sur le site du gourou mondial des CSS, Eric Meyer ? ;)
meyerweb.com/ (HTML 4.01 transitionnel)
Faudrait surtout pas oublier la modularité de XHTML et la signification du X ( eXtensible), qui est la grosse différence avec HTML.
Petit rappel de la FAQ W3C : www.w3.org/MarkUp/2004/xh...
Bravo Raphaël :) Et merci à Franck Taillandier car effectivment en lisant le titre de ton post je m'attendais aussi à ce que tu commences par cette précision !
Il est vrai qu'il ya de nombreuses confusions, mais la transition générale vers l'utilisation de <div> à la place de tableaux risque de prendre du temps.
"Il est vrai qu'il ya de nombreuses confusions, mais la transition générale vers l'utilisation de <div> à la place de tableaux risque de prendre du temps."
>> Raaah, mon prochain billet sera : "arrêtons de vouloir remplacer systématiquement les tableaux par des <div>" et son sous-titre : "le retour de la Divite chronique".
Ah ben ça aussi, ça a déjà été dit et redit :-/
cela me rappelle la grossière erreur de croire que accessibilité et validation html sont la même chose.
@goetsu : arrête de me donner des idées de billets-coups de gueule :)
@Sébastien Guillon > Merci pour les exemples !
@Raphael : merci pour ce rappel :)
"le but de XHTML n'est pas de dissocier le contenu du contenant : là aussi, HTML le faisait très bien avant."
Non, c'est en fait ni l'un ni l'autre...
... Ce dont le but est de dissocier le contenu du contenant (ie la dissociation de la description/structuration du contenu et de sa présentation suivant les types de media) c'est les CSS.
En fait conceptuellement parlant les CSS c'est fait pour ça, permettre d'opérer cette dissociation.