Pour qu'un document soit valide XHTML, il doit avoir une déclaration de type (DOCTYPE) et un encodage (souvent en ISO) conforme aux spécifications du W3C.
La déclaration XML n'est requise que dans quelques conditions d'encodage (jeu de caractères autre qu'UTF-8 en particulier), et lorsque le document est traité en tant que document XML (type de contenu application/xhtml+xml
). La plupart des documents XHTML 1.0 ne l'exigent donc pas. Il entraîne par ailleurs dans le navigateur web Internet Explorer 6.0 un mode d'interprétation problématique des Cascading Style Sheets et des scripts JavaScript. Néanmoins, la version Internet Explorer 8 tend à se rapprocher des autres navigateurs et à se conformer au CSS.
En fonction du jeu de caractères retenu, le document peut donc commencer par l'instruction suivante mise en première ligne :
Quelques exemples de Déclaration de Type de Documents en XHTML :
XHTML 1.0 Strict
XHTML 1.0 Transitional
XHTML 1.0 Frameset
La redondance des attributs xml:lang
et lang
n'est requise qu'en cas de document XHTML 1.0 traité en tant que document text/html
, selon les recommandations (non normatives) de compatibilité XHTML/HTML. On écrira alors :
Dans un document XHTML 1.0 traité en tant que document application/xhtml+xml
ou dans un document XHTML 1.1 et au-delà, on écrira obligatoirement :
XHTML 2.0 est en cours de développement. Il ne sera pas compatible en ascendance et en descendance, notamment à cause de l'introduction de XForms et de XFrames.
Finalement le 2 juillet 2009 le W3C a officiellement annoncé l'abandon du développement du XHTML 2 afin de se consacrer entièrement à son nouveau successeur : le HTML 5.