Tu voudrais qu'il affiche quoi ? du jpg ? du XML ? Ben non c du text/html donc voilà ...
Le serveur dit que c'est du text/html, mais en fait ce n'est pas du HTML : un navigateur strict devrait refuser d'afficher le contenu, ou au minimum prévenir son utilisateur. Si le serveur disait text/html et envoyait un JPEG, ça te semblerait normal que le navigateur affiche l'image ? Et si le serveur disait text/html et envoyait un exécutable, ça te semblerait normal que le navigateur le lance ?
text/html me parait correct dans les entêtes. La validateur ne bronche pas d'ailleurs.
Tu envoies du XHTML, pas du HTML, donc dire que c'est du text/html, c'est faux. Le validateur ne valide manifestement que le contenu, pas le type MIME envoyé par le serveur. Il n'est qu'un outil, pas une garantie.
Ce qu'un navigateur vraiment respectueux des standards devrait faire face à cette page :
* Informer l'utilisateur que le DOCTYPE n'est pas un DOCTYPE prévu par la norme HTML, et refuser de continuer.
* Ou alors s'il est super bien programmé, détecter que le contenu est du XHTML valide, et informer l'utilisateur que le type MIME est incorrect, et lui demander que faire.
* Dans le cas où l'utilisateur lui demande quand même de continuer à analyser cette page HTML, afficher un > après l'image (oui c'est étrange, c'est un point obscur de SGML face à une balise genre
, qui se termine en fait au niveau du slash).
Heureusement, tu n'as pas de script ou de style intégré dans tes pages, parce que les différences entre HTML et XHTML commencent à bien se faire voir à ce niveau.