Mes impressions sur le web, les standards et autres…


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 :

Vos réactions, opinions, insultes…

Rétroliens

Faire un rétrolien sur ce billet : [trackback]

Commentaires

1. De dan_cakSite

Point de vue intéressant, je pense cependant que les gens font d'énormes progres, a nous de les accompagner…

2. De S. F. • Site

Si je veux utiliser des équations mathématiques sur mon site, je dois utiliser un doctype XHTML 1.1 + MathML. Et IE peut gérer ce mathML, mais même avec le plug-in ad-hoc, il ne gérait pas il y a peu le type application/xhtml+xml. Quid dans ce cas ?

http://tw.o0o.ch/weblog/2004/04/05/46(…)

Le plus bel exemple, c'est http://white.sakura.ne.jp/~piro/xul/_(…) ,
Car il complète sa DTD par des entités, des éléments et des attributs et la finit comme prévu par "]>"… mais en text/html, le "]>" apparait (avant que tout soit chargé, ensuite il est caché) !
Je ne sais pas s'il s'en est déjà rendu compte, ni pourquoi il ne l'a jamais corrigé. En tous cas, ça fait pas très sérieux.

L’ajout de commentaires sur ce billet n’est pas/plus autorisé.