Introduction

Le doctype est cette étrange ligne qui doit être placée en tout début de page. Il indique au navigateur le langage utilisé, la version et le Document Type Definition (DTD) auquel il se réfère.
Ce n'est pas cette déclaration qui apprend au navigateur à gérer les éléments : c'est déjà dans son "moteur". En revanche, le doctype lui indique quelles règles il doit suivre. L'influence du doctype sur du HTML pur n'est pas flagrante. Par contre, la différence de rendu peut être spectaculaire en présence de styles.

Une page sans doctype ou avec une déclaration invalide fait basculer le navigateur en mode "quirk", c'est à dire qu'il interprétera le code en fonction de ses propres règles.

Les doctype à privilégier

HTML 4.01 Strict :

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

HTML 4.01 Transitional :

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

HTML 4.01 Frameset :

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

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 Transitional :

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

XHTML 1.0 Frameset :

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

Choisir un doctype

Il n'y a pas un doctype meilleur qu'un autre, tout comme il n'y en n'a pas un plus accessible, plus sémantique qu'un autre. En revanche, il y a un doctype mieux adapté qu'un autre dans un contexte précis.

Quelques différences majeures entre HTML et XHTML :

  • Convention d'écriture des éléments et attributs (minuscules, majuscules, quotes, doubles quotes... ;
  • Fermeture des balises (obligatoires, optionnelles, interdites) ;
  • Contenu des éléments...

Strict, Transitional, Frameset ?

  • Strict : éléments et attributs de présentations interdits, cadres interdits ;
  • Transitional : éléments et attributs de présentations autorisés, cadres interdits ;
  • Frameset : éléments et attributs de présentation autorisés, cadres autorisés ;

Pour bien choisir, il faut connaître les spécificités de chaque doctype, et pour cela, il n'y a qu'une solution : lire et relire les DTD.

Conclusion

La présence d'un doctype valide et d'un code respectueux de ses règles limitent les différences d'interprétation des navigateurs. Limite seulement, car malheureusement, aucun navigateur n'est - encore - parfait.

A lire absolument