Quel DOCTYPE choisir?

Le DOCTYPE indique au navigateur comment traiter une page Web, il peut donc influer sur la façon dont la page sera présentée.

A priori, on choisira le code HTML 5 pour les nouvelles pages, car avec lui les anciens navigateurs tendront à les afficher en mode standard.
Pour les pages déjà en ligne, il n'est pas nécessaire de changer le doctype, il indiquera aux nouveaux navigateurs qu'il faut afficher la page selon les conventions de l'époque et non selon les nouvelles normes.

La directive doit être placée sur la première ligne du document, avant la balise <html>. C'est une méta instruction pour le navigateur et non une balise HTML.

HTML 5

Dans la version 5, la directive indique simplement que l'on a une page Web à afficher:

<!DOCTYPE html>

Elle peut être en majuscules ou minuscule ou une combinaison des deux comme ci-dessus.

On peut utiliser cette instruction sur toute nouvelle page HTML, mais sur des pages anciennes conçues pour s'afficher avec les précédentes versions des navigateurs, on pourrait avoir un rendu incorrect et il est préférable de conserver l'ancien doctype, à moins que la structure ne soit très basique.

On doit ajouter pour Internet Explorer:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

Pour forcer le navigateur à afficher en mode IE9, sans quoi il peut passer en mode quirks.

HTML 4

Un doctype typique en HTML 4 à la forme suivante:

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

Donc avec les composantes suivantes:

Ces définitions ont un effet surtout sur Internet Explorer, et pas sur les versions récentes de Firefox ou Webkit qui tendent à implémenter HTML 5.

Type de document

Le type est indiqué deux fois dans la directive, d'abord en désignant l'élément racine, html ou math ou autre, puis l'identificateur dans le DTD.

DTD (Document Type Definition)

La version 4 de HTML fait mention du DTD , parce que HTML était considéré comme dérivé de SGML, ce qui n'est plus le cas de la version 5.
Le DTD, dans un document SGML indique le type du document: SGML, HTML ou XML et précise aussi quelle définition exacte doit être appliquée pour traiter le contenu.
Il est composé de l'identificateur public formel et d'une URI donnant l'adresse du document contenant la spécification.

Exemples d'identificateurs de DTD:

Strict ou transitionnel?

Le DTD strict à le format suivant:

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

Il convient à un document ne contenant aucun élément ou attribut obsolète ni frameset.

Le DTD transitionnel à le format suivant:

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

Pour un document avec des balises et attributs obsolètes dans la spécification, mais reconnus par les navigateurs.

Une troisième version pour définir un frameset qu'il est inutile de décrire car cela ne fait plus partie du standard HTML.

Document sans doctype

Il sera upposé conçu en mode "quirk", supporté par les navigateurs les plus anciens. Cela convient si sa structure est très basique ou le document écrit pour ces navigateurs.

Un même navigateur peut traiter un document selon le mode quirk ou en mode standard. Le résultat sera différent en fonction des balises utilisées et de la dépendance aux CSS. Un effet notable apparaîtra lorsqu'on place des images dans une table.

Si l'URI est manquant dans le doctype, le document sera aussi traité en mode quirk.

HTML 5

<!DOCTYPE html>

On doit ajouter pour Internet Explorer:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

Pour forcer le navigateur à afficher en mode IE9, sans quoi il peut passer en mode quirks.

Conclusion

Si l'agencement de la page dépend d'une feuille de style CSS, il est indispensable de préciser le doctype, soit au format HTML 5 sans DTD, soit au format HTML 4 avec le DTD complet incluant l'URI.

Le code simple HTML 5 est préférable pour une nouvelle page, surtout si en outre elle est destinée à s'afficher sur des appareils mobiles. Dans ce cas elle ne contiendra pas de balises obsolètes ou propres à un navigateur.

Noter que le DOCTYPE est aussi un point de départ pour les outils de tests de validité, lesquels deviennent utiles si l'on destine un document à différents type d'appareils dont les mobiles.

Références

© 2010-2012 Xul.fr