Je pense que les règles de l'Annexe C de XHTML 1.0 s'appliquent à toutes les déclinaisons de XHTML 1.0, quel que soit le DOCTYPE. Un document XHTML 1.0 strict, servi en text/html, qui appliquerait ces règles serait donc OK pour le W3C.
Ce n'est pas le cas pour le XHTML 1.1 qui est toujours décrit comme devant être servi en application/xhtml+xml.
Pour un débutant, qui ne maîtrise pas toutes les implications, la meilleure solution est toujours de créer des pages en HTML et de les servir avec le type approprié (le seul) : text/html.
Quant à la différence entre
transitional et
strict, que ce soit en HTML ou en XHTML, outre les éléments qui disparaissent en "strict", il existe (et de façon notoire dans IE) des différences au niveau de l'application de CSS.
En clair les navigateurs appliquent un mode de rendu strict avec un DOCTYPE
strict et un mode de rendu dit "compatible" (ou semi-standard en fonction des AU) avec les DOCTYPEs
transitional et
frameset.
Donc il est toujours préférable pour un site qui veut utiliser efficacement CSS de choisir un DOCTYPE strict.
Ensuite le choix de XHTML ou de HTML est le plus souvent dicté par un effet de mode, voir de « suivisme ». Il n'y a pas de honte à ça, la plupart des développeurs web (et même les meilleurs) ont commencé en s'insiprant de l'existant, bon ou mauvais.
La tentation du XHTML est trop forte pour espérer que tous les débutants se contentent de HTML 4.01 strict, bien que pour près de 100% des cas ce soit le meilleur choix.
@GizMecano
Pour résumer, tu es en porte-à-faux avec les recommandations (et autres textes) du W3C en servant tes pages XHTML 1.1 comme tu le fais actuellement (en text/html). Ton
code est valide mais la page n'est pas
servie correctement.
IE (y compris la future version 7) ne gère pas les documents en
vrai XML et accessoirement ne reconnaît pas application/xhtml+xml, d'où la nécessité de lui servir autre chose, par exemple en utilisant une
négociation de contenu.
Si tu ne sais pas comment gérer une négociation de contenu, tu peux tout simplement changer de DOCTYPE et passer à XHTML 1.0, sans changer le moins du monde le reste de ton code.
Si tu veux te lancer dans la négociation de contenu tu peux commencer par le code PHP que j'ai donné en début de fil. Mais ce code n'est que le début : la détection.
GizMecano a écrit :entrent dans des considérations techniques hermétiques sans donner d'exemples concrets.
Dans ce cas relis-les et fais quelques tests. Si tu veux des explications plus précises, dis-nous au moins ce que tu ne comprends pas.
Pour la différence entre application/xhtml+xml et text/html il y a entre autre la gestion draconienne des erreurs héritée de XML. Voici ce qui arrive en application/xhtml+xml à un
document XHTML mal formé (à tester dans un navigateur moderne évidemment, ou dans IE pour voir comment il gère le XHTML véritable).
Message envoyé avec : Opera/8.53 (Windows NT 5.1; U; fr)