XHTML 1.1 : Le phénomène
Ces derniers mois, j’ai assisté à un phénomène assez conséquent sur les forums que je fréquente : De plus en plus de monde s’interesse aux normes définies par le W3C et décide de les respecter du mieux possible. Ok, ça c’est très bien, cela ne peut qu’être bénéfique pour tout ceux qui suivent les dites normes et pour le web en général.
Un petit bémol (de taille selon moi) cependant : Ces personnes se documentent (plus ou moins bien), se tournent vers les normes semblant les plus récentes, et choisissent donc XHTML 1.1 comme langage de balises pour structurer leurs documents, mais elles envoient les documents en question en utilisant le type de média text/html.
Quel est le problème ?
Comme ce phénomène persiste, je fais de même. N’envoyez pas du XHTML 1.1 avec le type de média text/html ! Le W3C le déconseille formellement (Le document de référence auquel se réfère le lien donné précédemment).Je pense que c’est on ne peut plus clair.
Seul le XHTML 1.0 peut être envoyé avec le type de média text/html dans le cas où il est compatible HTML. Le W3C a défini certaines règles de compatibilité pour atteindre cet objectif.
Quelles sont les solutions ?
Rabattez vous sur le HTML 4.01 Strict.
Celui ci est encore loin, très loin d’être obsolète, et le jeu de balises et
d’attributs y est le même que pour le XHTML
1.1. Les seules différences sont l’attribut de définition de la
langue qui diffère (xml:lang
/lang
), l’attribut
name
supprimé de certains éléments en
XHTML 1.1/1.0 Strict, et la collection
Ruby qui, au moment où je tape ces lignes, n’est supportée par aucun
navigateur à ma connaissance.
Si pour une raison X ou Y, vous avez besoin de documents syntaxiquement valides par rapport à XML, ou bien tout simplement par soif de gloire pourtant bien éphémère (on ne rigole pas, je suis parfaitement conscient que c’est mon cas), alors utilisez le XHTML 1.0 Strict, et dans ce cas, profitez en pour servir vos documents en faisant de la négociation de contenu, soit en utilisant PHP, soit en utilisant l'option MultiViews d’Apache.
Toujours en utilisant la négociation de contenu de la solution précédente, vous pouvez en profiter pour servir du XHTML 1.1 aux navigateurs qui supportent application/xhtml+xml.
Le mot de la fin
Les langages (X)HTML subissent une double mutation, d’abord par le passage à la syntaxe du XML, ensuite par le passage aux feuilles de style CSS pour tout ce qui concerne la présentation des documents.
Les différents jeux de DTD du HTML 4.01 et du XHTML 1.0 sont là précisément pour permettre le passage en douceur à l’utilisation massive des CSS. Dans le même esprit, XHTML 1.0 est une phase transitoire entre deux langages syntaxiquement différents : HTML 4.01 et XHTML 1.1.
Autant la transition vers les CSS est relativement simple et rapide (on peut dire aujourd’hui qu’il n’y a aucune raison de ne pas les utiliser, bien qu’il subsiste quelques problèmes avec certains navigateurs), autant en ce qui concerne le passage au vrai XHTML, la transition est beaucoup plus lente (d’où la nécessité de s’en tenir pour l’instant à XHTML 1.0).
Voilà, d’autres l’ont dit avant moi, et je pense que ça méritait d’être rappellé, car ce phénomène prend de plus en plus d’ampleur…
Voir aussi :