Bonsoir,
Comme celui-ci :
http://www.validome.org
Il n'aime pas le (x)html 1.1 déclaré en texte/html.
Pour surenchérir sur mpop :
De plus, c'est vrai que ce n'est pas recommandé de coder en 1.1 pour envoyer ça ; dans ce cas, du xhtml 1.0 strict fais l'affaire (approuvé par le W3C), et qui peut être envoyé comme text/html (en plus, il est moins restrictif que le 1.1).
Cependant pour du 1.1, il faut déclarer : "application/xhtml+xml". Seuls les navigateurs récents comprennent ça et peuvent afficher ce type de pages. IE ne le comprend pas et ouvre toujours une boîte de téléchargement.
Il faut donc envoyer "application/xhtml+xml" aux navigateurs qui le prennent en charge, et du "text/html" aux autres.
Sans être expert dans ce domaine, voici la solution que j'ai retenu : modification de l'entête par un script PHP :
<?
if(stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")){
header("Content-Type: application/xhtml+xml; charset=ISO-8859-1");
echo('<?xml-stylesheet href="http://univers-fusco.com/c/univers.css" type="text/css" title="defaut" media="screen"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">');
} else {
header("Content-Type: text/html; charset=ISO-8859-1");
echo ('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<link href="http://univers-fusco.com/c/univers.css" rel="stylesheet" type="text/css" media="screen" />');
}
?>
Ce petit script modifie l'entête en fonction des capacités des navigateurs :
la page s'affiche en xhtml 1.1 "application/xhtml+xml" sur un navigateur le comprenant (si je dis récent, ça ne va pas car IE 7...), et xhtml 1.0 strict aux autres (comme IE). Je sais que c'est perfectible, mais il a l'avantage de fonctionner.
Petite mise en garde :
la moindre erreur de balise sur un document "application/xhtml+xml" provoque une erreur de parser et la page ne s'affiche pas (c'est très pratique pour déceler des erreurs de balisage, mais ça peut être gênant également).
(Me reste plus qu'à apprendre le xml pour que tout ça serve vraiment.)
Modifié par (07 Apr 2006 - 19:48)