"Dis, onc'stef, raconte-nous la belle histoire de comment c'était avant le Doctype ? Dis, onc'stef, et qu'est-ce que c'est, le Doctype ?"
Ah les enfants, ils veulent tout savoir, hein.
Hé bien comment vous dire... Il y avait les yaourts bulgares et le web balkanisé. Le monde était divisé en grandes factions, les gens écrivaient leur page pour un navigateur ou pour l'autre, selon leurs préférences, souvent nées de l'habitude, ou des gadgets de présentation que les navigateurs offraient : qui du texte clignotant, qui du texte défilant... Pire encore, les développeurs web, dont le métier était justement de contenter tout le monde, écrivaient leurs pages pour qu'elles s'affichent correctement dans le plus grand nombre de navigateurs possibles. Un jeu masochiste pour certains, un cauchemar pour d'autres....
Et pendant ce temps, les braves gens du W3C mettaient des normes en place comme autant de petits fanaux dans la nuit de nos migraines.
Car enfin, comment vouliez-vous que votre navigateur comprenne que ma page
était en HTML 4.1 ?
Et pas en XHTML 1.0 ?
Et pas en HTML 3.2 ? Je vous le demande un peu. Après tout, <body>
,
<h1>
, et la plupart des balises structurelles, leur sont
communes. D'ailleurs elles sont communes à toutes les versions de (X)HTML,
à ce jour.
La seule façon de se distinguer pour un document, c'est de dire à quelle famille il appartient. Cette famille, c'est son DOCTYPE (en clair, c'est le type de document qui définit notre page). Le DOCTYPE est défini dans des petites balises qui précèdent le contenu, des DTD (Doctype declarations).
Alors l'idéal, bien sûr, serait que chaque document publié sur le web possède un DOCTYPE. Une bien belle idée, en vérité. Oui mais voilà. Google, par exemple, recense plus de trois milliards de pages, et ce n'est qu'une partie du web, sans compter les intranets d'entreprises, les réseaux privés, les pages générées à la volée dans des dossiers non indexés, etc etc...
Les concepteurs de navigateurs ont donc dû pallier ce manque en concevant deux modes pour un certain nombre de navigateurs récents : soit le DOCTYPE est fourni et ils s'y conforment pour décider comment afficher la page (ce que les américains appellent le mode "strict", que dans nos pages nous appellerons le mode "conforme aux normes"), soit aucun DOCTYPE n'est fourni et alors les navigateurs passent en mode bricolage (le mode "quirks").
Comment, me direz-vous, se retrouver au milieu de cette jungle normative ? Tout n'est pas perdu, les enfants ! N'allez pas tout de suite vous affaler, l'air hagard, dans un canapé avec un gros pot de glace, pour regarder n'importe quoi à la télévision. Enfin si, vous pouvez aussi aller manger un gros pot de glace dans le canapé, mais lisez d'abord l'article de Jeffrey Zeldman, Le DOCTYPE qu'il vous faut. Cet article, loin d'être un déprimant catalogue des DOCTYPEs existants, est plutôt un retour sur expérience des tests que Zeldman a été amené à faire notamment pour son site, où il nous explique à quoi ils servent, et comment ça marche.
Bonne lecture. Mais gardez-moi un peu de glace quand même.