Comprendre les erreurs de validation xhtml, les bases
Convaincu par la nécessité d'offrir un code valide sur votre blog, vous décidez de tester vos pages au validateur (en anglais ou en français). Patatras ! Non seulement le validateur vous accuse de tous les maux, mais de surcroît vous ne comprenez rien à son jargon. Et puis quels sont ces reproches alors que vous n'avez que copié-collé des codes fournis sur des sites web ? Tâchons de repérer et réparer les plus fréquentes.
Ça commence mal...
En anglais ou en français, le validateur vous indique qu'il ne peut pas examiner la page car l'encodage déclaré ne correspond pas à l'encodage affiché.
- Raison : lorsque vous avez installé Dotclear, vous avez choisi un encodage (jeux de caractères) pour votre base UTF-8 ou ISO-8859-1. Mais les fichiers *.php du thème que vous utilisez ne sont pas enregistrés avec le même jeu de caractères. (Souvent d'ailleurs, vous avez des problèmes avec l'affichage des accents sur le blog).
- Remède : ouvrez les fichiers de votre thème avec un éditeur respectueux (par exemple Notepad2 pour Windows ou SubEthaEdit pour Mac) et réenregistrez-les avec le même encodage que celui déterminé pour votre blog. Vous ne vous souvenez plus de ce que vous aviez choisi ? Ouvrez le fichier conf/dotclear.ini : cette information figure tout à la fin du fichier.
Mais savapalatête ou quoi ?
Il y a sûrement un bug dans ce maudit validateur. Il vous annonce un nombre extravagant d'erreurs alors que vous n'avez rien inventé vous même, juste recopié des codes trouvés sur des sites web (des gros hein, pas des petits d'amateurs !)
- Raison : on trouve toutes sortes de codes html « prêts à l'emploi » sur Internet mais html ne veut pas dire xhtml strict. Or c'est ce langage qu'utilise Dotclear et il le déclare dans l'en-tête des fichiers (ouvrez
template.php
et jetez un œil au contenu de la baliseDOCTYPE
). HTML et XHTML sont très proches mais présentent des différences. En gros, en insérant des codes html non conformes à la norme XHTML et en balançant ensuite vos pages sur le web, c'est comme si vous annonciez que vous allez faire un discours en roumain et que vous vous exprimiez en italien. Les organisateurs convoquent le mauvais traducteur et c'est le bazar ! - Remède préventif : lorsque vous cherchez des bouts de code, pensez à vérifier qu'il s'agit bien de xhtml ou, mieux, tapez les bonnes requêtes dans le moteur de recherche : flash +xhtml vous apportera des réponses utilisables dans votre blog, tandis que flash html pas forcément. Et puis sauf lorsque des particularités vous l'imposent, saisissez vos billets en wiki, c'est l'assurance de ne commettre aucune erreur de syntaxe.
- Remède curatif : vous pouvez déjà procéder à un premier nettoyage de vos erreurs en inspectant vos billets et vos fichiers php à la lumière des ressources diverses qu'offre le net et dont je résume ici les plus fréquentes :
- Les balises et leurs attributs doivent être écrits en minuscules (
<div>
et non<DIV>
par exemple) - Toute balise ouvrante doit être fermée, soit avec sa correspondance (
<div>
par</div>
), soit par un slash avant le chevron final pour les balises dites autofermantes (par exemple<img ..... />
ou<br />
). - Les valeurs doivent être placées entre guillemets. Exemple :
<p class="toto">
et non<p class=toto>
. - Les balises doivent être correctement imbriquées façon poupées russes. Exemple :
<div><p>
se fermera par</p></div>
. - On n'imbrique pas un élément de type block dans un élément de type inline.
<a><h2>Mon titre cliquable</h2></a>
n'est par exemple pas correct ! (En savoir plus.) - On n'utilise pas le caractère
&
autrement que pour exprimer une entité html (caractères spéciaux, ex.…
pour les points de suspension). Remplacez les&
(on en trouve fréquemment dans les adresses web) par&
.
- Les balises et leurs attributs doivent être écrits en minuscules (
OK, OK, tu nous fais la liste complète des erreurs et leur signification ?
Complète, non, mais on peut répertorier les plus fréquentes. Je vous recommande cette page, malheureusement en anglais, mais je crois assez facilement compréhensible. Cela dit si un volontaire se présentait pour la traduire nous en demanderions l'autorisation à son auteur et en publierions la traduction céans !
Commentaires
1. Le samedi 12 mars 2011 à 12:04, par Italien