Billet du blogue

XHTML ou HTML ?

Lorsque j’ai décidé de redesigner mon blogue et de construire un système de gestion de contenu, une question — que bien des développeurs ne se posent plus — est resortie:

Est-ce que je devrais coder mon blogue en utilisant la norme XHTML ou HTML ?

Pourquoi est-ce que je dis que bien des développeurs ne se la posent plus ? Parce que pour bien des professionnels du Web, la réponse est sans équivoque: XHTML it is.

Cependant, en regardant le code source de cette page (et de toutes les autres pages de mon site) vous pourrez constater que ma réponse à la question diffère: j’ai choisi d’utiliser HTML au lieu de XHTML. Pourquoi ? C’est ce que je vais vous expliquer dans ce billet.

Le support du XHTML

La plupart des tutoriels d’introduction au XHTML prennent la forme de passage du HTML vers XHTML. Très souvent, les points les plus mentionnés sont ceux-ci:

  • Toutes les balises doivent être fermées et bien imbriquées.
  • Les & doivent être encodés en &
  • etc.

Le point qui, selon moi, est le plus souvent oublié est qu’une des différences les plus importantes entre HTML et XHTML est le type MIME avec lequel doit être servi le document. En effet, un document écrit en HTML doit être servi en text/html tandis qu’un écrit en XHTML doit l’être en application/xhtml+xml. Certes, un document XHTML servi en text/html est affiché correctement par les navigateurs — mais il n’est pas interpreté comme il le devrait, c’est-à-dire en langage dérivé de XML.

Hé bien voilà ! Servons nos documents XHTML en application/xhtml+xml (chose qui peut être facilement effectuée avec un serveur web comme Apache) et le tour se joué ! Le problème c’est que lorsque IE tente d’ouvrir un tel document, il présente à l’utilisateur une boîte de dialogue permettant de télécharger le fichier sur son poste. Attention, la phrase suivante pourrait choquer certaines personnes :

Internet Explorer (toutes les versions) ne supporte pas XHTML.

C’est exact, il ne le supporte guère. Cela est, bien sûr, lorsqu’il s’agit de XHTML servi correctement. Ce n’est pas que j’apprécie ce navigateur, mais il était important que mon blogue supporte IE.

Négociation de contenu

Il existe diverses méthodes pour servir des documents XHTML en application/xhtml+xml aux navigateurs qui le supportent, et en text/html pour les autres. C’est d’ailleurs comme cela que je procédais sur mon ancien blogue.

Pourquoi est-ce que je n’ai pas procédé de la même manière pour celui-ci ? Je me dis que cela est semblable au temps où on servait un site Web différent aux utilisateurs d’Internet Explorer et un différent à ceux de Netscape.

Conclusion

Je crois que beaucoup de développeurs utilisent XHTML simplement parce que Jeffrey Zeldman leur a dit que c’était bien. Beaucoup d’entres eux ne sont pas conscients que de servir des documents XHTML en text/html revient au même que d’utilser HTML ! Un vrai document XHTML se doit d’être du code XML bien formatté — et servi correctement à tous les navigateurs. Si on le sert en text/html, il n’est pas parsé en tant que code XHTML, il est parsé en tant que HTML !

Ceci dit, je ne veux pas avoir l’air élitiste — c’est seulement mon opinion.

J’ai choisi d’utiliser le langage HTML (4.01 Strict) pour mon blogue, car il s’agit d’un langage universellement compris par tous les navigateurs et d’un standard Web — et oui, l’arrivée du XHTML n’a enlevé le titre de standard Web au HTML.

Lectures intéressantes (pour ne pas dire essentielles !)

Posté le avec les tags: et .

Commentaires fermés

Les commentaires pour ce billet ont été désactivés un mois après la date de publication de ce-dernier. Vous désirez exprimer votre opinion sur ce billet malgré le fait que les commentaires aient été désactivés ? Utilisez le formulaire de contact.


Fil atom des commentaires de ce billet3 commentaires

  • Toutes ces lectures m’ont bien fait réfléchir, il est vrai qu’on aurait tendance à utiliser xhtml servi en text/html simplement pour pouvoir faire valider ses documents mais finalement ça entraîne pas mal de contraintes.

    Maintenant quels sont les désavantages à écrire du code html 4.0 ?

    Super ce blog, et de plus fait avec CodeIgniter mon framework préféré !

    Vincent Voyer (22 août 2007 à 5:39 EST)

  • Je m’étonne qu’on ne retrouve pas une référence à cet autre article sur la question : understanding difference between xhtml and html qui a aussi relancé la question.

    Just My 2 cents

    PS c’est bien la première fois que je vois du Markdown ailleurs que sur DF. Je croyais que c’était une légende…

    Cyril Godefroy (7 septembre 2007 à 14:23 EST)

  • Je m’étonne qu’on ne retrouve pas une référence à cet autre article sur la question : understanding difference between xhtml and html qui a aussi relancé la question.

    Je ne dirais pas que cela a relancé la question, cela a seulement amené le point de vue d’un développeur de navigateur dans le débat — qui se sert des articles (que j’ai cité) de Ian Hickson et d’Anne van Kesteren pour appuyer sa position.

    Mais merci d’avoir amené ce point de vue!

    PS c’est bien la première fois que je vois du Markdown ailleurs que sur DF. Je croyais que c’était une légende…

    Je ne suis pas le premier à le faire; Jeff Croft et Michel Fortin (l’auteur de PHP Markdown) l’utilisaient avant moi ! ;)

    Rémi Prévost (7 septembre 2007 à 15:13 EST)