Assurer la conformité d'un contenu Web à l'aide d'une DTD

Avec pour objectif de mettre en conformité un site avec les standards (X)HTML et CSS du W3C, la définition de document type offre un canevas pour séparer le contenu de la présentation. Un mécanisme qui ne manque pas de souplesse.

Le XHTML est le successeur de HTML, le X signifiant Extensible. A l'inverse de son prédécesseur, il intègre la rigueur du XML dans sa syntaxe. Il inclut seulement les contenu, les CSS se chargeant de la présentation.

Pour assurer le respect de ce format normalisé, un parseur va utiliser la DTD (Document type definition) pour comparer les règles d'écriture avec la structure du document. La DTD fait partie des outils mis en place par le W3C pour rendre un contenu Web conforme aux standards, afin d'assurer le même rendu sur tous les navigateurs. Le lien vers la DTD se place au début du document XHTML et se présente sous la forme :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
 


La DTD a une influence sur le comportement des navigateurs modernes lors de l'interprétation du code. Elle bascule les en mode "stricte", conforme aux standards en vigueur. En cas d'absence de DTD ou de DTD incomplète ou périmée, le navigateur bascule en mode "quirks", c'est-à-dire compatible avec les anciennes implémentations des navigateurs.

 

Une formalisation non imposée


L'utilisation d'une DTD n'est pas obligatoire. Si le développeur décide d'en utiliser une, il devra respecter une syntaxe stricte, conforme aux règles décrites dans la DTD. L'application gagnera en robustesse et assurera un rendu identique quel que soit le navigateur utilisé. Par contre, elle est obligatoire en cas d'utilisation d'un parseur pour valider la conformité d'un document.

 

Néanmoins, il peut être décidé de ne pas en utiliser. C'est le cas lors d'utilisation d'anciennes balises non conformes aux standards (par exemple la balise <marquee>) ou pour les anciennes pages ne pouvant pas être mises aux normes en raison des coûts trop importants que cela entraînerait. Pour le développement de nouvelles applications, il est fortement conseillé de respecter les standards dès le début du projet.

La DTD vérifie la séparation du contenu et de la présentation pour faciliter l'évolutivité d'un site


La DTD peut être interne au fichier, et donc inclure la grammaire prédéfinie dans le document, ou externe, sous la forme d'un lien vers un fichier en local ou accessible via son URL. Le W3C héberge sur son site plusieurs DTD avec des règles plus ou moins strictes. Il existe six DTD, à choisir selon la rigueur de son code et du rendu voulu. Chacune contient des règles de syntaxe différentes, et un ensemble de balises autorisées.

 

Trois des six DTD disponibles sont destinées à la version 4 du HTML et sont intitulées HTML 4.01. Les trois autres sont pour la version 1 du XHTML, sous la dénomination XHTML 1.0. Elles sont regroupées par lot de trois car pour chacun des langages, il existe une version Strict, Transitional et Frameset des DTD. Strict signifie qu'elle respecte le principe de la séparation du contenu et de la présentation, Transitional permet l'utilisation de certaines balises de présentation comme <center>, et enfin la version Frameset autorise l'utilisation des frames.

 

Parser son document pour le déclarer valide


Le W3C propose son propre parseur de vérification. Lors du contrôle d'un document, si ce dernier contient une DTD et est conforme à ses restrictions, il est déclaré comme "document valide". Il est possible d'analyser un document sans DTD, le parseur vérifie alors que la structure du code respecte les règles du XML (fermeture correcte et respect de l'ordre des balises...). Si c'est le cas, le document sera déclaré comme "document bien formé".


La mise en conformité des documents a du mal à s'imposer car les navigateurs n'incluent pas tous les standards. C'est le cas notamment de Microsoft, qui n'a toujours pas ajouté le type MIME application xhtml+xml à son navigateur Internet Explorer. Pour utiliser du XHTML malgré tout, il faut créer un autre fichier au format HTML portant l'extension .shtml, qui appellera le fichier .xhtml avec la commande suivante : <!--#include virtual="monfichier.xhtml"-->.

HTML / W3C