Première rédaction de cet article le 10 juin 2008
Ce blog est entièrement publié en XHTML, une
instance de XML. Pourtant, si vous regardez les
en-têtes HTTP émis par le serveur, vous verrez
text/html
et pas
application/xhtml+xml
, qui est la valeur
officielle (cf. RFC 3236 ou bien XHTML
Media Types).
Pas mal d'électrons ont déjà
été maltraités pour écrire des pages Web expliquant que ceux qui
utilisent text/html
sont des crétins ignorants et
que seul application/xhtml+xml
est
acceptable. C'est le cas par exemple du texte Sending XHTML as text/html
Considered Harmful (une traduction en français existe). Ce texte est très
pinailleur, mettant en avant des problèmes ponctuels, liés à des
cas vraiment rares. Son quasi-unique argument c'est que avec XHTML, les auteurs
feront du XML invalide sans s'en rendre compte. Ça ne s'applique pas à
mon blog, où les fichiers sont tous validés. (Le cas de tels sites est traité
dans l'annexe B du document, mais celle-ci ne va pas jusqu'à
reconnaître que le conseil est mauvais.)
Un autre argument, celui des risques que les lecteurs copient-collent le XML dans un document HTML et aient des problèmes est vraiment ridicule. C'est comme dire « C'est mal de programmer en D car cela ressemble trop au C et les utilisateur vont le copier-coller, produisant ainsi du C incorrect ».
Mais pourquoi ne pas utiliser
application/xhtml+xml
quand même ? Après tout,
c'est la norme. Je n'ai pas de position bien tranchée sur ce point (contrairement à Karl Dubost qui dit « N'en déplaise à de nombreuses personnes, servir des pages en application/xhtml+xml n'est plus un choix difficile »). À
une époque, certains logiciels comme lynx
avaient des problèmes avec application/xhtml+xml
(cela semble réglé). Mais MSIE n'accepte toujours pas ce type (il propose
juste d'enregistrer le fichier), ce qui élimine pas mal d'utilisateurs.
Et je regrette surtout qu'on utilise le type
MIME application
alors que
text
conviendrait bien mieux
(text/*
est pour tous les types qu'on peut lire
avec un éditeur ordinaire, ou bien avec cat ou
more, ce qui est bien le cas de XML).
Je changerais donc
peut-être la configuration de mon blog un jour, mais je n'accepte pas
le discours comme quoi text/html
pose des
problèmes, cela ne correspond pas à ce que j'observe, même avec
IE. Même http://www.w3c.org/
ne le fait pas.
À noter que la question est uniquement du type MIME à annoncer. Mes pages sont toujours en XHTML et c'est très bien comme cela (l'article Laisser tomber le XHTML ? donne un autre point de vue).
Enfin, pour parler de choses pratiques, si votre site est servi par Apache, la configuration pour envoyer le type MIME officiel est :
AddType application/xhtml+xml .html
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)