Alsacreations FAQ version Beta 0.5

Questions sur la validation, les standards, etc.

Comment bien déclarer XHTML1.1 ?

Entre XHTML 1.0 et XHTML 1.1, la différence est importante au niveau de la déclaration.
Choisir le bon doctype ne suffit pas à déclarer proprement un document XHTML 1.1. (explications : http://www.pompage.net/pompe/declarations/)

En effet, si XHTML 1.0 accepte d'être servi en type mime HTML (content "text/html"), ce n'est pas le cas pour XHTML 1.1 où il faut obligatoirement passer en "application/xhtml+xml", en utilisant la balise meta suivante :
<meta http-equiv="Content-type" content="application/xhtml+xml; charset=ISO-8859-1" />
Avec également une modification des headers envoyés par le serveur, avec PHP par exemple : header('Content-type:application/xhtml+xml');
De manière générale, Apache et les serveurs Web sont configurés par défaut pour envoyer "text/html" pour des fichiers du type .php, .htm etc..

Pour cette raison, les documents XHTML 1.1 servis en "text/html" sont invalides, quoiqu'en dise le Validateur W3C (bien qu'il valide ce genre de document, il ne devrait pas le faire. Lire à ce sujet les spécifications officielles de XHTML 1.1)

Le problème de l'application/xhtml+xml est qu'elle n'est supportée que par quelques navigateurs graphiques (dont IE6 ne fait pas partie).

A l'heure actuelle, vu les carences des navigateurs, passer en XHTML 1.1 n'a aucun intérêt pour la plupart des utilisateurs actuels du XHTML1.0. D'ailleurs le site du W3C lui-même n'est encore qu'en XHTML 1.0 Voir http://css.alsacreations.com/Bases-et-indispensables/DTD-comment-choisir pour le choix d'une DTD XHTML1.0

Plus d'info sur le récapitulatif suivant, "Servir du XHTML en tant que text/html jugé néfaste" : http://www.hixie.ch/advocacy/xhtml.fr/

Un petit récapitulatif des bons usages et utilisations des doctype, versions d'HTML et leur type MIME :
http://pompage.net/pompe/declarations/

Pour finir à propos de l'extension du fichier : Les navigateurs plus récents supportant XML (Explorer Internet à partir de la version 5.x, Netscape à partir de la version 6.x) traitent les fichiers différemment selon leur extension, s'ils n'ont pas d'indications (type Mime).
Quand vous respectez dans un fichier toutes les règles de XHTML mais sauvegardez le fichier avec les extensions typiques .htm ou bien .html, ces navigateurs utilisent leur analyseur syntaxique HTML. Sauvegardez par contre le fichier avec une autre extension, par exemple .xhtml, alors les navigateurs utilisent leur analyseur syntaxique XML.
La différence se fait avant tout sentir quand le document contient des erreurs de syntaxe. Les analyseurs syntaxiques HTML habituels aujourd'hui laissent tout simplement passer des fautes de syntaxe dans le document et tentent d'afficher le document "tant bien que mal". Les analyseurs syntaxiques XML par contre interrompent avec un message d'erreur dès qu'ils butent sur une faute de syntaxe. Dans la fenêtre d'affichage du navigateur apparaît alors un message d'erreur à la place du document.
Source : http://fr.selfhtml.org/html/xhtml/differences.htm#noms_fichiers

Liens complémentaires