Validation XHTML

judikael

Membre actif
29 Juin 2004
160
2
77
Bonjour,

je code en xhtml,
Je ne comprends pas ? Lorsque je valide avec : http://www.validome.org/lang/fr/texte/citations_adresses.htm#citations il me dit que toutes mes pages sont Validées.
mais lorsque je vais sur : http://quentinc.net/validator/validator.php , ce n'ai plus validé il me dit cela :
1- Avertissement : Ligne 21, colonne 1 : Le document ne contient pas de métadonnée relative à la langue principale du document.
</head>
j'ai pourtant :
xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<meta http-equiv="content-language" content="French" />
<meta name="LANGUAGE" content="FR" /><meta name="ROBOTS" content="All" />

2- Erreur : Ligne 24, colonne 42 : L'utilisation de l'élément small est déconseillé ou propriétaire.
id="menu"><h1 style="text-align: left;"><small><span

9- Erreur : Ligne 73, colonne 30 : Attribut style inconnu pour l'élément big
style="text-align: center;"><big style="color: rgb(51, 255, 255);"><a

Pouvez vous m'aider à comprendre SVP :zen:

amicalement
 
Bonjour,

je code en xhtml,
Je ne comprends pas ? Lorsque je valide avec : http://www.validome.org/lang/fr/texte/citations_adresses.htm#citations il me dit que toutes mes pages sont Validées.
mais lorsque je vais sur : http://quentinc.net/validator/validator.php , ce n'ai plus validé il me dit cela :
1- Avertissement : Ligne 21, colonne 1 : Le document ne contient pas de métadonnée relative à la langue principale du document.
</head>
j'ai pourtant :
xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<meta http-equiv="content-language" content="French" />
<meta name="LANGUAGE" content="FR" /><meta name="ROBOTS" content="All" />

2- Erreur : Ligne 24, colonne 42 : L'utilisation de l'élément small est déconseillé ou propriétaire.
id="menu"><h1 style="text-align: left;"><small><span

9- Erreur : Ligne 73, colonne 30 : Attribut style inconnu pour l'élément big
style="text-align: center;"><big style="color: rgb(51, 255, 255);"><a

Pouvez vous m'aider à comprendre SVP :zen:

amicalement
Je suis aller voir le validateur en question et ne t'y fie pas il raconte n'importe quoi ! :afraid:

C'est une honte ce validateur : il dit des erreurs stupide, &#224; moi aussi il me dit qu'il manque la langue alors qu'elle y ai, l'encodage alors qu'il y ai... il invente m&#234;me que soit disant certains attribut n'existe pas alors que la doc officiel sur le site du W3C dit qu'il existe...


http://validator.w3.org/ et celui de valid&#244;me sont tr&#232;s bien et respecte vraiment les DTD fourni par le W3C.


:zen:
 
Heu non, le validateur a raison :

En xhtml il y a deux façons de définir la langue du document :
  1. Quand le document est envoyé sous forme text/html il faut lang="fr" et xml:lang="fr"
  2. Quand le document est envoyé sous forme application/xhtml+xml ou application/xml, il faut uniquement xml:lang="fr"
<small> est une balise de mise en forme préhistorique, qui ne peut pas s'utiliser dans un document xhtml+css où on sépare le contenu de la mise en forme.

Pareil pour le <big>. Voilà. ;)
 
Heu non, le validateur a raison :

En xhtml il y a deux façons de définir la langue du document :
  1. Quand le document est envoyé sous forme text/html il faut lang="fr" et xml:lang="fr"
  2. Quand le document est envoyé sous forme application/xhtml+xml ou application/xml, il faut uniquement xml:lang="fr"
<small> est une balise de mise en forme préhistorique, qui ne peut pas s'utiliser dans un document xhtml+css où on sépare le contenu de la mise en forme.

Pareil pour le <big>. Voilà. ;)
Oui mais il raconte aussi que l'attribut charset n'existe pas pour la balise link alors que si, qu'il n'y a aucun attribut du nom de accept-charset pour la balise form... je n'ai pas lu la suite...
 
Pour p4bl0, j'ai regardé et apparemment tu n'envoies pas le bon header et ton xhtml 1.1 est traité comme du text/html, ce qui est interdit. D'où le message du validateur. Voilà le bon header :

Bloc de code:
<?php header('Content-Type: application/xhtml+xml; charset=utf-8;') ?>
Mais IE n'aime pas ce genre de header et te proposera de télécharger la page. A toi de voir si ce n'est pas mieux de revenir aux xhtml 1.0 qui lui accepte les deux possibilités. A ce moment là, avec un petit code de ce genre tu seras peinard :

Bloc de code:
$accept_xml =
    !empty($_SERVER['HTTP_ACCEPT']) &&
    strpos($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml') !== false;

if ($accept_xml) {
    header('Content-Type: application/xhtml+xml');
} else {
    header('Content-Type: text/html; charset=utf-8');
}

if ($accept_xml) {
    echo '<?xml version="1.0" encoding="utf-8"'?>'."\n";
}
 
Pour p4bl0, j'ai regard&#233; et apparemment tu n'envoies pas le bon header et ton xhtml 1.1 est trait&#233; comme du text/html, ce qui est interdit. D'o&#249; le message du validateur. Voil&#224; le bon header :

Bloc de code:
<?php header('Content-Type: application/xhtml+xml; charset=utf-8;') ?>
Mais IE n'aime pas ce genre de header et te proposera de t&#233;l&#233;charger la page. A toi de voir si ce n'est pas mieux de revenir aux xhtml 1.0 qui lui accepte les deux possibilit&#233;s. A ce moment l&#224;, avec un petit code de ce genre tu seras peinard :

Bloc de code:
$accept_xml =
    !empty($_SERVER['HTTP_ACCEPT']) &&
    strpos($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml') !== false;

if ($accept_xml) {
    header('Content-Type: application/xhtml+xml');
} else {
    header('Content-Type: text/html; charset=utf-8');
}

if ($accept_xml) {
    echo '<?xml version="1.0" encoding="utf-8"'?>'."\n";
}
Effectivement &#231;a doit venir de l&#224;, mais le validateur du W3C me dit que tout va bien pourtant, et le validome qui est encore plus strict aussi... :heu:

En fait dans les balises meta j'ai mis application/xhtml+xml et pour le header PHP j'ai laisser text/html j'avais pas vu :p
J'ai modifi&#233; &#231;a :)



Bon ben autant pour moi je retire ce que j'ai dit sur ce validateur :)


EDIT:de toute fa&#231;on ce validateur mange pas xhtml1.1 apparemment, il s'arr&#234;te au xhtml 1.0 strict
 
EDIT:de toute fa&#231;on ce validateur mange pas xhtml1.1 apparemment, il s'arr&#234;te au xhtml 1.0 strict

Vu qu'il ne reconna&#238;t pas le dotcype 1.1, &#231;a le fait peut-&#234;tre d&#233;conner sur autre chose comme les link par exemple&#8230; :)
 
Vu qu'il ne reconnaît pas le dotcype 1.1, ça le fait peut-être déconner sur autre chose comme les link par exemple… :)

Merci gloup gloup,

mais du coup, je ne sais plus à quel Validateur faire confiance,

et je ne sais pas ce que j'ai à faire pour corriger mes 3 erreurs ?

N'existe - il pas un site résumant toutes les erreurs possibles et qui donnent les solutions concrètement, ce serait un moyen d'apprendre ?

amicalement :zen:
 
Te casse pas la tête, tu peux utiliser le validateur du w3c sans problèmes. Le truc quand tu fait une mise en page xhtml c'est d'utiliser les css pour changer la présentation et ne pas utiliser des éléments dépréciés comme <small>, <big>, <font>, etc. Si tu veux vraiment changer un mot dans un titre par exemple, utilise <span> avec une class associée. Genre :

Bloc de code:
<style type="text/css">
.lettrine {color: red; font-size: 120%;}
</style>
Bloc de code:
<h1><span class="lettrine">L</span>a femme en rouge</h1>
Ou :

Bloc de code:
<style type="text/css">
h1 span  {color: red; font-size: 120%;}
</style>
Bloc de code:
<h1><span>L</span>a femme en rouge</h1>
Le résultat final est le même. :) A toi de voir ce qui te convient le mieux. ;)

P.S. : Tu as bien suivi un tutoriel avant de te lancer? (celui-là ou celui-là)
 
Fiewww le passage &#224; la d&#233;claration application/xhtml+xml a paus&#233; pas mal de probl&#232;mes.

Voil&#224; les truc &#224; faire :
Ne surtout pas laisser de & tout seul, &amp; ablolument.
Pour ceux qui font du PHP, voici comment &#234;tre s&#251;r d'avoir tout ses & en &amp; :
Bloc de code:
str_repace('&', '&amp;', str_replace('&amp;', '&', $texte));
Je le fais en deux fois au cas ou il y en a des d&#233;j&#224; encod&#233; par exemple : il ne faut pas que le code devienne &amp;amp; :)

En javascript, il faut acc&#233;der aux &#233;l&#233;ments avec getElementById() DIRECTEMENT, m&#234;me dans les formulaire, il ne faut pas faire getElementById('id_du_formulaire').&#233;l&#233;ment, sinon firefox n'interpr&#234;te m&#234;me pas le javascript et g&#233;n&#232;re une erreur dans le log javascript (erreur qui raconte ce que je viens de vous dire).


Voil&#224; les deux truc qui ont pu poser probl&#232;me. Si &#231;a peut aider qui que ce soit ;)