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 :