X files
Le retour du code structuré

Servir du XML

XHTML ressemble à HTML sauf que le fichier est envoyé par le serveur avec l'en-tête application/xhtml+xml, c'est à dire comme un fichier XML. C'est le parser XML du navigateur qui décode et affiche la page. Par précaution, on peut ajouter AddType application/xhtml+xml .xhtml dans le fichier .htaccess (Apache), mais c'est avant tout l'indispensable extension .xhtml, qui déclenche le XML.

Vers un code impeccable

Avec XHTML, on a sous la main un validateur toujours disponible qui ne pardonne pas la moindre erreur de syntaxe. C'est un peu le use strict du JavaScript. Et c'est là que réside tout l'intérêt de travailler en XHTML: dans le navigateur, la moindre erreur est immédiatement sanctionnée par une alerte au sein même de la page. De toute façon, les outils de développement du navigateur renseignent très précisément sur la nature et la position de l'erreur.

En live, message d'erreur XML généré par votre navigateur, sur une page XHTML volontairement corrompue.

Page XHTML5 standard

Voici l'architecture de base idéale d'une page XHTML. Ne pas oublier l'attribut xmlns="http://www.w3.org/1999/xhtml" dans la balise html ouvrante, ni le slash à la fin des balises auto-fermantes.

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="…" lang="…">

<head>
  <title>…</title>
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <meta name="description" content="…" />
  <meta name="author" content="…" />
  <link href="https://fonts.googleapis.com/css2?family=Roboto&amp;display=swap" rel="stylesheet" />
  <link rel="stylesheet" href="…" />
  <link rel="icon" type="image/svg+xml" href="favicon.svg" />
  <link rel="apple-touch-icon" type="image/png" href="apple-touch-icon.png" />
  <link rel="canonical" href="https://…" />
</head>

<body>
  ⋮
  <script src="…"></script>
</body>

</html>

Scripts et styles

L'espace insécable

Le fameux &nbsp; doit être remplacé par &#xA0; ou &#160;.

L'esperluette &

Souvent présente dans les liens en HTML et dans les balises link des Google Fonts, elle doit être impérativement remplacée par &amp;.

Quelques références

Conclusion

Alors, c'est mieux en X ou pas? Si l'on prend en compte les inévitables complications à rallonge du code XHTML, la simplicité et la souplesse vous font naturellement opter en faveur du HTML. Le Grand Gogol lui-même déconseille le XHTML. Il est vrai que le standard officiel est HTML5. Par contre, si l'on préfère une structure de document propre, nette et sans bavures, alors la balance penche à fond côté XHTML5! Aujourd'hui, tous les navigateurs prennent en charge XHTML, même sur mobiles.