Le langage XHTML
La validation
Home

Vous voilà prêt à faire votre premier document XHTML que vous testez sur votre ordinateur. Merveille, cela fonctionne ! Et tous les documents fonctionnent ! Hélas ce n'est que normal... Les navigateurs de la génération actuelle sont tellement permissifs, que ce que vous pensez être du XHTML est interprété comme du simple Html.

Avant de considérer un document comme un véritable document XHTML , il faut absolument VALIDER votre document par des sortes de correcteurs XHTML. Début 2001, on ne dispose réellement que de deux outils :

    • Le validateur en ligne du W3C. La référence officielle mais qui nécessite d'être connecté pour son exploitation.
    • Tidy, un excellent programme mais qui ne fonctionne qu'en fenêtre DOS. Peu convivial mais il permet de peaufiner son code hors connexion.


 

Le W3C propose à l'adresse http://validator.w3.org un service de validation en ligne. Soit à partir d'un fichier en ligne sur votre serveur ou "uploadé" à partir de votre ordinateur. C'est ce dernier que nous avons utilisé car plus pratique.

Nous lui avons proposé le fichier suivant, contenant quelques erreurs.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="EN" lang="fr">
<head>
<title>Page XHTML</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<H1>Exemple</hi>
<p>
<b><i>Gras et italique</b></i>
<br>
<img src="x.gif" HEIGHT=29 WIDTH=26>
</body>
</html>

Et voici le résultat [capture aménagée].

HTML Validation Service Results
Document Checked File: D:\test.html
Character encoding: utf-8
Document type: unknown with namespace http://www.w3.org/1999/xhtml

Below are the results of checking this document for XML well-formedness and validity.

  • Line 10, column 3:
    <H1>Exemple</hi>
           ^
    Error: element "H1" not defined in this HTML version
    Erreur : L'élément H1 n'existe pas en XHTML car tout se note en minuscules. <h1> serait correct.

  • Line 10, column 15:
    <H1>Exemple</hi>
                                     ^
    Error: end tag for element "hi" which is not open; try removing the end tag or check for improper nesting of elements
    Erreur : La balise de fin </hi> n'as été ouvert [c'est hi au lieu de h1].

  • Line 12, column 25:
    <b><i>Gras et italique</b></i>
                                                 ^
    Error: end tag for "i" omitted; end tags are required in XML for non-empty elements; empty elements require an end tag or the start tag must end with "/>"
    Erreur : La balise de fin de "i" manque [car mal imbriquée]

  • Line 12, column 3:
    <b><i>Gras et italique</b></i>
           ^
    Error: start tag was here
    Erreur : La balise de début était ici

  • Line 12, column 29:
    <b><i>Gras et italique</b></i>
                                                        ^
    Error: end tag for element "i" which is not open; try removing the end tag or check for improper nesting of elements
    Erreur : L'élément "i" n'a pas été ouvert. Vérifiez que vos balises sont proprement imbriquées

  • Line 13, column 4:
    <br>
            ^
    Error: end tag for "br" omitted; end tags are required in XML for non-empty elements; empty elements require an end tag or the start tag must end with "/>"
    Erreur : La balise de fin de "br" manque. Les éléments vides doivent se terminer par "/>"

  • Line 13, column 0:
    <br>
     ^
    Error: start tag was here
    Erreur : La balise de début était ici

  • Line 14, column 24:
    <img src="x.gif" HEIGHT=29 WIDTH=26>
                                                   ^
    Error: there is no attribute "HEIGHT" for this element (in this HTML version)
    Erreur : L'attribut HEIGHT n'existe pas en XHTML mais bien height en minuscules

  • Line 14, column 24:
    <img src="x.gif" HEIGHT=29 WIDTH=26>
                                                   ^
    Error: attribute values must be quoted in XML
    Erreur : Les attributs doivent être mis entre guillemets

  • Line 14, column 33:
    <img src="x.gif" HEIGHT=29 WIDTH=26>
                                                                         ^
    Error: there is no attribute "WIDTH" for this element (in this HTML version)
    Erreur : L'attribut WIDTH n'existe pas en XHTML mais bien width en minuscules

  • Line 14, column 33:
    <img src="x.gif" HEIGHT=29 WIDTH=26>
                                                                         ^
    Error: attribute values must be quoted in XML
    Erreur : Les attributs doivent être mis entre guillemets

  • Line 14, column 35:
    <img src="x.gif" HEIGHT=29 WIDTH=26>
                                                                             ^
    Error: required attribute "alt" not specified
    Erreur : L'attribut "alt" n'est pas spécifié

  • Line 14, column 36:
    <img src="x.gif" HEIGHT=29 WIDTH=26>
                                                                               ^
    Error: end tag for "img" omitted; end tags are required in XML for non-empty elements; empty elements require an end tag or the start tag must end with "/>"
    Erreur: La balise de fin de "img" manque. Les éléments vides doivent se terminer par "/>"

  • Line 14, column 0:
    <img src="x.gif" HEIGHT=29 WIDTH=26>
    ^
    Error: start tag was here
    Erreur : La balise de début était ici

  • Line 15, column 7:
    </body>
    ^
    Error: end tag for "p" omitted; end tags are required in XML for non-empty elements; empty elements require an end tag or the start tag must end with "/>"
    Erreur: La balise de fin de "p" manque. Les éléments vides doivent se terminer par "/>"

  • Line 11, column 0:
    <p>
    ^
    Error: start tag was here
    Erreur : La balise de début était ici

  • Line 15, column 7:
    </body>
    ^
    Error: end tag for "H1" omitted; end tags are required in XML for non-empty elements; empty elements require an end tag or the start tag must end with "/>"
    Erreur : La balise de fin de "H1" manque [c'était /hi au lieu de /h1]

  • Line 10, column 0:
    <H1>Exemple</hi>
    ^
    Error: start tag was here
    Erreur : La balise de début était ici

--------------------------------------------------------------------------------

Sorry, I can't validate this document.
Désolé, je ne peux valider ce document

--------------------------------------------------------------------------------

Gerald Oskoboiny Last modified: Date: 2001/03/08 01:57:52

Le fichier une fois corrigé se présente comme suit :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="EN" lang="fr">
<head>
<title>Page XHTML</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head>
<body>
<h1>Exemple</h1>
<p>
<i><b>Gras et italique</b></i>
<br />

<img src="x.gif" height="29" width="26" alt="..." />
</p>
</body>
</html>

Cette fois, le test du validateur est réussi :

HTML Validation Service Results
Document Checked File: D:\test.html
Character encoding: utf-8
Document type: unknown with namespace http://www.w3.org/1999/xhtml

Below are the results of checking this document for XML well-formedness and validity.

No errors found!
Pas d'erreurs !

Congratulations, this document validates as the document type specified!
Félicitations, ce document est validé comme conforme au DTD spécifié !


 

Tidy (téléchargeable ici) est un programme offrant de nombreuses possibilités mais comme pour l'instant il ne fonctionne que sous DOS, on ne peut pas dire qu'il soit facile à configurer et à utiliser.

Vivement une version Windows plus conviviale. Heureusement qu'il soit déjà intégré à des applications comme Evrsoft's 1st Page 2000 - un excellent éditeur HTML pour Windows 95/98/NT/2000 qui supporte Tidy.

Pour ceux qui voudraient en savoir plus sur ce programme Tidy et ses multiples fonctions, je les renvoie à la page "Clean up your Web pages with HTML TIDY".

Voici le fichier suivant qui comporte quelques erreurs.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="EN" lang="fr">
<head>
<title>Page XHTML</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<H1>Exemple</hi>
<p>
<b><i>Gras et italique</b></i>
<br>
<img src="x.gif" HEIGHT=29 WIDTH=26>
</body>
</html>

Tidy vous propose l'analyse suivante :

Tidy (vers 26th June 1999)
line 14 column 14 - Warning: <html> unrecognized attibute value "xml : lang"
                                  Attribut xml : lang non reconnu dans la balise <html>
line 17 column 14 - Warning: <meta> unrecognized attribute value "http-equiv"
                                  Attribut http-equiv non reconnu dans la balise <head>
line 10 column 25 - Warning: discarding unexpected </hi>
                                  L'élément non attendu </hi> est écarté
line 11 column 15 - Warning: missing </h1> before <p>
                                  Il manque </h1> devant <p>
line 12 column 36 - Warning: replacing unexpected </b> by </i>
                                  L'élément non attendu </b> est remplacé par </i> (imbrication correcte)
line 12 column 40 - Warning: replacing unexpected </i> by </b>
                                  L'élément non attendu </i> est remplacé par </b> (imbrication correcte)
line 14 column 15 - Warning: <img> lacks "alt" attribute
                                  La balise <img> ne comporte pas d'attribut "alt"

7 warnings/errors were found !
7 avertissements/erreurs ont été trouvés

Dans la configuration adoptée, Tidy corrige lui-même certains éléments signalée ainsi que d'autres éléments passés sous silence (guillemets aux valeurs d'attribut, mise en minuscules. Voici la correction qu'il propose.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/strict.dtd">
<html xmlns="http://www.w3.org/TR/xhtml1" lang="fr">
<head> <title>Page XHTML</title>
<meta content="text/html; charset=iso-8859-1" />
</head>
<body>
<h1>Exemple</h1>
<p>
<b><i>Gras et italique</i></b>
<br />
<img src="x.gif" height="29" width="26" />
</p>
</body>
</html>