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.
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:
- <!DOCTYPE >
La directive. - HTML
L'élément racine du document. - PUBLIC
Mot clé indiquant la présence d'un identifieur public (FPI). - "-//W3C//DTD HTML 4.01//EN"
Le FPI (Formal Public Identifier) du DTD, indiquant le type de document SGML, la version et la langue, est la première partie du DTD. - "http://www.w3.org/TR/html4/strict.dtd">
Une URI, la référence au fichier qui décrit la définition du doctype que le navigateur est censé télécharger pour l'appliquer au contenu.
C'est la seconde partie du DTD, iI y en a deux principaux, strict et transitionnel.
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.
- html et HTML dans le DTD.
- html et XHTML dans le DTD.
- math et MathML dans le DTD.
- svg et SVG dans le DTD.
- et de nombreux autres...
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:
- -//W3C//DTD HTML 4.01//EN
- -//W3C//DTD HTML 4.01 Transitional//EN
- -//W3C//DTD HTML 4.01 Frameset//EN
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.
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
- W3C validator. Tester la conformité d'une page.