Niveau Niveau débutant

Quelle différence y a-t-il entre HTML et XHTML ?

Articlehtml

Publié par le , mis à jour le (139935 lectures)

xhtml validation html tableless doctype différence

Lorsque les Standards du Web tels que XHTML et CSS ont commencé à être connus, beaucoup d'idées reçues ont circulé. Parmi celles-ci, il y avait l'idée que XHTML était fondamentalement différent du bon vieux HTML que l'on connaissait. Pour beaucoup de débutants, le XHTML était associé aux CSS et au code valide W3C, et le HTML aux tableaux et à la soupe de balises. C'est bien sûr une vision erronée.

XHTML 1.0 est une transposition d'HTML 4

XHTML 1.0 est une transposition en syntaxe XML de HTML 4. La différence se joue donc uniquement sur la syntaxe, qui est plus rigoureuse en XML (et donc en XHTML 1.0) qu'en HTML 4.

Ainsi, en XHTML:

  • Toute balise ouvrante doit être fermée, et les balises dites «vides» sont écrites avec une barre oblique finale (exemple: <br />).
  • Les noms des balises et des attributs sont écrits en minuscules.
  • Les valeurs des attributs sont encadrés par des 'quotes' (apostrophes droites) ou des "double quotes" (guillemets droits).
  • Chaque attribut doit avoir une valeur (pas d'attribut vide comme checked, qui doit être écrit checked="checked").
  • Les éléments HTML doivent être correctement imbriqués 
    (<strong><span>contenu</span></strong> et pas
    <strong><span>contenu</strong></span>).

C'est tout ! Comme vous le voyez, aucune notion de tableaux, de CSS, de sémantique ni d'accessibilité. En réalité, ces termes et domaines existent déjà en HTML.

À l'extrême, on peut donc faire du code valide en HTML 4 et exploiter à fond les possibilités de CSS, ou encore faire de la soupe de balises dans des tableaux en XHTML 1.0 Strict !

Pourquoi utiliser l'un ou l'autre?

Pour commencer, rappelons qu'utiliser XHTML 1.0 n'est pas du tout une obligation. On pourra aussi s'interroger sur la bonne manière de déclarer et de servir du XHTML. Mais pour l'essentiel HTML 4 et XHTML 1.0 sont équivalents au niveau des fonctionnalités (éléments et attributs, principales règles «grammaticales»).

Si leurs fonctionnalités sont équivalentes, pourquoi utiliser XHTML 1.0 plutôt qu'HTML 4? Un argument souvent donné est le suivant : XHTML permet un apprentissage plus simple de HTML. Pour deux raisons:

  • comme il est plus strict, on évite des erreurs d'interprétation des navigateurs (si on imbrique mal les éléments, que doit faire le navigateur?);
  • comme les écritures possibles sont moins nombreuses (pas de balises tour à tour en minuscules ou majuscules, pas de balises fermantes un coup présentes et un coup manquantes…), la syntaxe se maitrise plus facilement.

Lire aussi

Les DTD HTML4.01 et XHTML1.0 : comment choisir ?

Et désormais HTML5

HTML5  hérite de nombreuses ressemblances avec HTML4, et voit en parallèle de nombreux éléments redéfinis dans leur sémantique. De même de nouveaux éléments viennent se greffer à cette nouvelle version qui accepte une syntaxe HTML ou XHTML. De quoi introduire une forte confusion dans l'esprit des intégrateurs et développeurs en herbe.