Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Ève

Envoyer text/html ou bien application/xhtml+xml ?

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)