5568 sujets

Sémantique web et HTML

Bonjour,
Selon le W3C, un document XHTML doit dans l'idéal être servi avec le type MIME application/xml+html.
C'est du moins ce que je croyais, mais je commence à me poser sérieusement la question quand je vois qu'aucun site du concours actuel (enfin, du moins parmi ceux que j'ai examinés, c'est-à-dire la majorité) ne respecte cette recommandation, et sert son document en tant que text/html.

Me trompé-je ?
L'avantage d'un tel type est que les navigateurs vont être très stricts, et bloquer dès qu'ils rencontrent quelque chose qu'ils n'aiment pas - si la page passe, je crois qu'on peut être sûr qu'elle respecte la syntaxe XML.
Internet explorer ne reconnaît pas un tel type, il suffit donc d'utiliser le code suivant (pris je ne sais plus où) :

if (stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")){
	header("Content-Type: application/xhtml+xml; charset=UTF-8");
	echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">';
} else {
	header("Content-Type: text/html; charset=UTF-8");
	echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
}

(En remplaçant le doctype dans le premier cas si on veut utiliser la dernière mouture du langage)
PS : je ne trouve pas de bouton pour envoyer - passage obligé par la touche entrée. Je suis complètement con ou.. ?

PPS : ce qui m'a poussé à écrire ce message est le fait que alsacréations.com-même délivre ses pages en tant que text/html.
Les pages en xhtml 1.0 peuvent être servies en text/html. L'idéal c'est application/xhtml+xml mais là faut être sûr qu'il n'y a pas de problème de validation car le navigateur se bloque, de plus IE8 et ses ancêtres ne reconnaissent pas cet entête http.

Tu n'est pas obligé de passer xhtml 1.1, c'est même déconseillé à moins de gérer les attributs :

lang="fr" xml:lang="fr"


Qui deviennent :

xml:lang="fr"

Modifié par Patidou (11 Apr 2010 - 15:27)
Si si si, y en a un qui le sert en application xhtml+xml... le mien ! Smiley lol

Comme ça a été dit, le problème de le servir ainsi est d'avoir une conformité absolue (j'entends par là obligatoire : sinon tu te prends une erreur XML venant du navigateur).

En fait, il faut voir si l'agent utilisateur prend en compte le type MIME application/xhtml+xml, et le servir selon :


$mystring = $_SERVER["HTTP_ACCEPT"];
$findme   = "application/xhtml+xml";
$pos = strpos($mystring, $findme);

if ($pos === false) {
  $prologue='';
  header("Content-type: text/html; charset=UTF-8");
  } else {
     header("Content-Type: application/xhtml+xml;");
     // et ne pas oublier le prologue XML dans le cas où tu le sers en application/xhtml+xml, le doctype pouvant rester le même : XHTML 1.0
     $prologue='<?xml version="1.0" encoding="utf-8"?>'."\n";
    }


ça se gère sur un site où tu as la main mise et où tu peux garantir la conformité des pages... c'est plus délicat sur un site géré par un non-développeur.
Patidou a écrit :
Toujours est-il qu'il n'est pas nécessaire de passer à xhtml 1.1. Smiley cligne
Perso, je dirais même qu'il n'est pas nécessaire de passer à XHTML. Smiley cligne
Laurie-Anne a écrit :
Perso, je dirais même qu'il n'est pas nécessaire de passer à XHTML. Smiley cligne

Ça dépend moi j'aime sa syntaxe claire, sa rigeur. Dans D'autres cas il est aussi parfois nécessaire quand on transforme du XML. Smiley cligne

Et puis si le w3c dit que l'envoi en text/html est correct, pourquoi pas? Smiley smile