Document Type Definition


La définition de type de document (aussi appelée DTD) spécifie la version HTML utilisée dans le code source d'un site web. De cette façon, un navigateur ou un autre logiciel de lecture peut afficher le contenu du code source car il est capable de détecter le type de document dont il s’agit. Dans le passé, de nombreux navigateurs n’étaient pas en capacité d’afficher les contenu lorsqu'une DTD manquante ou incorrecte était répertoriée. Toutefois, la norme actuelle HTML5 ne nécessite plus la spécification DTD afin d'afficher correctement le site web, mais il s’agit plutôt d’une validation par rapport à la définition du type de document. La norme pour la définition du type de document a été définie par le W3C.

Origine

Le HTML a été utilisé comme langage de balisage depuis de nombreuses années. Par conséquent, HTML est disponible dans de nombreuses versions. La dernière version est HTML5. Les anciennes versions telles que XHTML ou HTML4 ne sont actuellement utilisées que dans les anciens sites. Le HTML était à l'origine basé sur le langage de balise METMLML. La DTD a décrit la structure des documents, qui ont été créés avec des sous-ensembles (XML) ou des applications (HTML) par SGML. Avec le développement de HTML5, ces composés ont été supprimés. HTML5 n'est plus une application de SGML, mais est lui-même un langage généralisé compatible avec les versions précédentes.

La définition de type de document pour HTML spécifie quelle version est utilisée dans le code source d'un document Web. Cette information doit être fournie afin que l'application (le navigateur) puisse détecter de quel type de document il s’agit et quel marquage est autorisé. Cependant, les navigateurs modernes affichent le contenu d'un document HTML lorsque la DTD est manquante, mais un fichier HTML n'est valable que s'il est introduit avec un type de document clairement défini. Cela, à son tour, est défini avec la définition de type de document <! DOCTYPE html>. On spécifie ainsi quels caractères peuvent être utilisés dans un document HTML et quels attributs doivent être intégrés. Chaque document HTML doit inclure un élément head et body ainsi qu’être répertorié dans une certaine structure logique (structure arborescente), si elle doit être valide.

<!DOCTYPE html>
<html lang="de">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
  </body>
</html>

Le DTD pour les navigateurs

Lorsqu'un site web est accessible via un navigateur, il va télécharger la définition de type de document spécifiée dans le code source et l'appliquer au document à ouvrir, dans le but d'interpréter correctement les caractères qui y sont contenus. Les navigateurs comme Mozilla Firefox, Internet Explorer de Windows ou Google Chrome sont conformes au W3C et peuvent interpréter différentes définitions de types de documents. Cependant, il est possible que des bugs soient générés à l'écran et lors de la lecture de CSS pour les sites web qui utilisent des versions plus anciennes du DTD. D'autres navigateurs tels que Opera interprètent uniquement les pages HTML en fonction des normes les plus récentes. De cette façon, le risque d'erreurs est réduit. La DTD sert donc à marquer des documents HTML valides et augmente la probabilité d'une représentation correcte lorsqu'ils sont valides.

Construction

Le W3C recense bien des propositions pour les définitions communes de type de document HTML, mais chaque webmaster doit finalement apporter quelques ajustements personnels à son site web pour s'assurer qu'il s'affiche correctement dans tous les navigateurs. La spécification du type de document est la première saisie dans le code source d'une page HTML. La spécification DTD est sensible à la casse. La chaîne doctype doit être en majuscule.

<!DOCTYPE html>

Dans XHTML, la spécification de la version XHTML est indiquée en premier :

<?xml version="1.0"?>
<!DOCTYPE ... >

Un exemple :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en">

L'adresse après le doctype spécifie le chemin d'accès vers la définition du type de document. Le navigateur peut ici télécharger la définition et l'appliquer au document en cours. Si vous spécifiez "public", la source de la définition du type de document est logiquement publique. La spécification linguistique, c'est-à-dire EN, se réfère dans ce cas-là non pas à la langue utilisée dans le contenu, mais à la version linguistique de la définition HTML. Une définition de type de document pour HTML doit donc toujours se référer à EN.

Définitions de type de document commun pour les sites HTML / XHTML

Il existe des différences sur la façon d'indiquer la DTD dans différentes versions de HTML.

DTD pour HTML4

Il existe trois définitions différentes pour HTML 4 :

  • HTML 4.01 strict : dans un tel document HTML, seuls les éléments structurants sont autorisés dans le code source. Le formatage et la conception sont contrôlés par des feuilles de style. Ainsi, le code source HTML est très facile et rapide à lire.

Exemple de ligne pour ce type de document :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  • Transition 4.1 : ce type de document spécifie que les attributs HTML et les feuilles de style sont utilisés dans ce document. C'est une définition transitoire. La ligne d’exemple pour ce type est la suivante :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  • Frameset HTML 4.01 : avec ce type de document, vous spécifiez que votre fichier HTML contient une série de cadres, c'est-à-dire des fenêtres individuelles. Les éléments HTML et body sont déclarés ici d'une autre manière. Tous les éléments body sont remplacés par FRAMESET.

Cette définition s'applique aux pages avec une série de cadre :

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

DTD pour XHTML

XHTML 1.0 est basé sur les mêmes règles que HTML 4.01. La seule différence est que ce langage de balisage est basé sur XML et non sur SGML. Pour XHTML, trois types différents peuvent être spécifiés. Les mêmes caractéristiques qui s'appliquent aux types de documents HTML s'appliquent également aux documents XHTML. Voici les exemples pertinents de l'information à inscrire dans chaque cas :

  • XHTML 1.0 strict :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

XHTML 1.0 transitoire :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  • XHTML 1.1 n'est plus lié aux règles de HTML 4.01. Par conséquent, une seule définition de type de document demeure :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

DTD pour HTML5

Ce type de définition du document a été simplifié grâce à HTML5 :

<!DOCTYPE html>

Le DTD pour les sites web et le référencement

Étant donné que la définition de type de document pour les pages HTML est un facteur important pour l'affichage correct du contenu web, l'exactitude de ces définitions fait toujours partie de l'optimisation on-page. Des analyses peuvent être effectuées avec des résultats appropriés et des objectifs de marketing peuvent être atteints uniquement si tous les contenus d'un site web peuvent être affichés comme souhaité pour la plupart des utilisateurs. De nombreux utilisateurs utilisent encore des navigateurs plus anciens qui ont besoin de spécifications DTD. Si des erreurs se produisent, cela n’affecte pas nécessairement l'apparence du site, car la plupart des navigateurs peuvent encore afficher le contenu. Mais les documents HTML peuvent contenir de nombreuses erreurs et le navigateur analysera tout de même ces erreurs. Cela requiert du temps et les utilisateurs devront par définition attendre plus longtemps.

Le choix de la définition d’un type de document a également un impact sur la taille du code source d'un site web ainsi que sur le rapport texte-code. Étant donné que la vitesse de chargement est un critère de classement pour les moteurs de recherche, réfléchir au DTD peut être avantageux si on se préoccupe de l’état du chargement de la page. Si le navigateur peut rapidement détecter le type de document, il pourra rendre le contenu correctement. En outre, le ratio du code source et du texte est également considéré comme pertinent d'un point de vue SEO : plus de texte pour moins de code.

Liens web