Compatibilité XHTML

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
vector

Compatibilité XHTML

Message par vector »

Salut,

Afin de respecter au mieux XHTML 1.1, j'utilise ce code pour ma page d'index :

Code : Tout sélectionner

<?php
//Teste si le client accepte le type MIME "application/xhtml+xml" et s'il supporte XHTML 1.1
$xhtml11 = stristr($_SERVER["HTTP_ACCEPT"], "application/xhtml+xml");

if($xhtml11)
  {
  header("Content-Type: application/xhtml+xml");
  echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\n     \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n";
  }
else
  {
  header("Content-Type: text/html");
  echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n     \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
  }
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title><?php //Réservé pour usage futur ?></title>
<?php
if(!$xhtml11)
  {
  echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n";
  }
?>
</head>
<body>
<?php
if(!$xhtml11)
  {
  echo "<p>Votre navigateur ne supporte pas complétement la spécification XHTML 1.1 du W3C !</p>";
  }
?>
</body>
</html>
J'envoie donc du XHTML 1.1 en application/xhtml+xml aux navigateurs compatibles et du XHTML 1.0 en text/html aux autres.

J'aimerais donc votre avis sur ce code et si dans le principe c'est correct .

Merci.
Xanthor
Lézard à collerette
Messages : 280
Inscription : 29 juil. 2003, 18:36

Message par Xanthor »

En première approximation c'est tout à fait correct d'un point de vue théorique.
En deuxième approximation, on constate que tu rejètes les navigateurs qui annonce accepter application/* (ce qui est mal, mais bon, il y en a, comme W3M)

Maintenant en pratique, tu vas accepter Opera qui prétend gerer le XHTML. C'est en fait presque le cas, sauf si on commence à utiliser du DOM (comme le démontre ce test).
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Salut,
C'est correct en effet, sauf que le XHTML 1.1 n'apporte rien de bien nouveau par rapport au XHTML 1.0, à part le ruby. Donc si tu n'utilise pas le ruby, il vaut mieux faire ta page en XHTML 1.0, qui permet une meilleure rétrocompatibilité avec les anciens navigateurs.

À ce propos, je te conseille la lecture de cet article de Blog & Blues : XHTML1.1, beaucoup de bruit pour rien

à part ça je te conseille de définir l'encodage dans l'en-tête :

Code : Tout sélectionner

header("Content-Type: application/xhtml+xml; charset=utf-8"); 
Tu peux faire la même chose pour le HTML :wink:
Xanthor
Lézard à collerette
Messages : 280
Inscription : 29 juil. 2003, 18:36

Message par Xanthor »

calimo, la question n'est pas XHTML 1.1 ou XHTML 1.0, mais text/html ou application/xhtml+xml.
Et en l'occurence, les avantages du dernier media type sont bien connus
SB
Varan
Messages : 1095
Inscription : 05 mars 2004, 18:38

Message par SB »

Pas par moi. Où les trouve-t-on ?
Xanthor
Lézard à collerette
Messages : 280
Inscription : 29 juil. 2003, 18:36

Message par Xanthor »

SB
Varan
Messages : 1095
Inscription : 05 mars 2004, 18:38

Message par SB »

Heu...j'aurais du préciser : où les trouve-t-on en français ?
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Bon, en gros si tu écris

Code : Tout sélectionner

<p> Hello<br />World</p>
en HTML ça devrait (théoriquement on s'entend :lol: ) apparaitre comme

Code : Tout sélectionner

Hello
>World
En plus il y a des problèmes avec les commentaires qui sont enfin de vrais commentaires, donc si tu enfermes ton script ou tes styles dedans ils ne seront pas lus :wink:
SB
Varan
Messages : 1095
Inscription : 05 mars 2004, 18:38

Message par SB »

D'après ce que j'ai compris, les 2 problèmes principaux seraient que du xhtml incorrect serait encore plus mal interprété en text/html qu'en application/... et qu'au moment du passage à cette dernière des problèmes surviendront notamment pour les commentaires.
Comme mon xhtml est correct le cas numéro 1 ne me concerne pas.
Pour le cas numéro 2, je rectifierai à ce moment là.
Je n'ai vu aucune raison incontournable pour ne pas envoyer mes pages en text/html.
vector

Message par vector »

Tiens, je conaissais pas l'encodage spécifié directement dans l'entete. ^^ Merct
Xanthor
Lézard à collerette
Messages : 280
Inscription : 29 juil. 2003, 18:36

Message par Xanthor »

SB a écrit :Je n'ai vu aucune raison incontournable pour ne pas envoyer mes pages en text/html.
Tu sais, tu peux même les envoyer en text/plain si tu veux...

Un des interets du application/*+xml est que le document sera interpreté par un parseur XML (au lieu d'un parseur SGML pour le text/html), et donc beaucoup plus rapidement, avec un report des erreurs, et avec tous les outils dont dispose le XML (et pas le SGML), comme XPointer par exemple
spoutnik
Arias
Messages : 1
Inscription : 21 mars 2004, 04:34

Message par spoutnik »

Juste pour signaler que l'attribut xml:lang ne sert à rien pour un document envoyé avec le mime text/html
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> vu que cela devient simplement du HTML pour Moz.
L'attribut lang="" s'impose donc dans ce cas (avis perso cependant)
Il ne faut pas non plus oublier que Mozilla (gecko) tient compte du type mime mais également de l'extension que l'on donne à un fichier.
si text/html alors .html
si application/xhtml+xml alors .xhtml
Pour l'info complète voir sur la page
http://www.mozilla.org/newlayout/xml/#xhtml sur le support du xhtml dans Moz.
En espèrant que cela puisse aider un peu
vector

Message par vector »

Oui, mais là il n'y a que le type mime car c'est mélé au PHP.
Xanthor
Lézard à collerette
Messages : 280
Inscription : 29 juil. 2003, 18:36

Message par Xanthor »

spoutnik a écrit :Il ne faut pas non plus oublier que Mozilla (gecko) tient compte du type mime mais également de l'extension que l'on donne à un fichier.
Attention ! C'est uniquement vrai pour les fichiers locaux, c'est à dire non accedés par HTTP, sans serveur web...
Dans le cas contraire, Moz se moque totalement de l'extension, suivant en cela les specs HTTP...
jv2759
Tyrannosaurus Rex
Messages : 4161
Inscription : 12 févr. 2004, 14:29

Message par jv2759 »

Xanthor a écrit :
spoutnik a écrit :Il ne faut pas non plus oublier que Mozilla (gecko) tient compte du type mime mais également de l'extension que l'on donne à un fichier.
Attention ! C'est uniquement vrai pour les fichiers locaux, c'est à dire non accedés par HTTP, sans serveur web...
Dans le cas contraire, Moz se moque totalement de l'extension, suivant en cela les specs HTTP...
Et pour preuve :

http://www.geckozone.org/forum/viewtopic.php?t=6115
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 0 invité