Articles web

Nos articles concernant les techniques web sont centrés sur des solutions pratiques qui mettent en œuvre, le plus souvent, notre framework web : Vae Soli!

Des articles généraux sont également fournis dans le respect des standards du web.

Tous nos articles web sont disponibles sous le couvert de la licence Icône Creative Commons Creative Commons — Paternité - pas de modification.

2010-08-17 à 07:44:36

Mr. DOCTYPE

Voilà le premier article que nous partageons avec notre partenaire, la société FastWrite. Il a trait à la présentation des pages Internet … le trop fameux « Mr. DOCTYPE ».

Le DOCTYPE est une instruction dont l'objectif est d'indiquer dans quelle version HTML votre page web a été créée. Sans cette indication de version, les navigateurs Internet en sont quitte pour échafauder des hypothèses.

Il y a fort à parier que l'hypothèse de départ ne sera pas celle qui convient à votre page et dès lors, vous pourriez être particulièrement désappointé de voir le rendu de votre site, notamment dans les navigateurs conformes aux standards du web. En fait, sans déclaration DOCTYPE les navigateurs considèrent que le code de votre site a dû être composé dans les année 1990. Nous gageons que vous ne souhaitez pas que les browsers vous traitent ainsi !

Aujourd'hui … tout site qui se respecte mettra un DOCTYPE pour satisfaire aux normes. Même le W3C recommande (et une recommandation dans le chef du W3C vaut obligation) de mentionner le DOCTYPE de vos documents. Voyez à ce propos la page suivante : Don't forget to add a doctype.

En résumé la déclaration DOCTYPE sert à identifier la version du (X)HTML que vous avez utilisé. Les navigateurs utilisent cette information pour afficher votre page conformément à la version indiquée. Les validateurs de page font un usage similaire de la déclaration DOCTYPE et vous informeront des constructions illicites possibles en fonction de ladite version.

Quel DOCTYPE ?

Plusieurs instructions de DOCTYPEs sont possibles. Choisir un DOCTYPE … c'est avant tout avoir fait son choix dans la version du langage Internet qu'on a utilisé. En d'autres termes, vous ne commencez pas par choisir un DOCTYPE puis une version du markup (HTMl 4.01, ou XHTML 1.0, …) cela se fait dans l'ordre inverse : vous commencez par choisir votre langage et puis vous lui associez le DOCTYPE correspondant.

HTML

Si vous avez choisi HTML, alors il va encore falloir choisir parmi trois modes auxiliaires : STRICT, TRANSITIONAL ou FRAMESET.

Le mode auxiliaire STRICT veut dire que vous allez respecter la norme correspondante à la lettre. TRANSITIONAL veut dire que vous vous autorisez des constructions et syntaxes qui peuvent être obsolètes. FRAMESET veut dire que vous allez utiliser des frame.

Les trois déclarations correctes sont les suivantes :

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

Qu'en est-il maintenant pour les déclarations en XHTML ? Il y a un distingo important à apporter entre XHTML 1.0 et XHTML 1.1. En XHTML 1.1 … vous n'avez pas le choix :il faut respecter la norme au pied de la lettre : du XHTML 1.1 est TOUJOURS strict (c'est ce qui est fait sur le présent site).

Si vous souhaitez vous concilier les faveurs des navigateurs, alors il faudra opter pour XHTML 1.0. Chez Lato Sensu Management, nous avons d'emblée choisi la norme XHTML 1.1 malgré les clameurs qui se sont manifestées (nous verrons cela plus loin).

En XHTML 1.0 vous avez une fois encore le choix entre les trois modes auxiliaires que sont STRICT, TRANSITIONAL et FRAMESET.

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">
    

XHTML 1.1 (toujours strict !)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    

La liste officielle des DOCTYPEs

Afin d'éviter toute confusion, nous vous renvoyons au site du W3C qui propose une liste de DOCTYPEs sur la page suivante : Recommended DTDs to use in your Web document.

Du danger d'utiliser du XHTML…

Vous trouverez des articles qui banissent aujourd'hui l'utilisation du XHTML pour des raisons qui peuvent échapper à l'exercice d'une compréhension rapide.

En fait, en plus de connaître la version du HTML, il faut que les navigateurs sachent au préalable qu'il s'agit bien de HTML.

C'est là que le bât blesse. Parce pour qu'un navigateur puisse reconnaître correctement du HTML, il faut le lui dire dans une instruction du style content-type: text/html

Cette instruction … vous ne la maîtrisez pas ! Et c'est ici que les romains s'empoignèrent si nous pouvons dire.

En effet ... cette instruction est envoyée dans les entêtes du protocole HTTP. En d'autres termes … c'est le serveur Internet de votre hébergeur qui est configuré pour renvoyer cette instruction (vous pouvez découvrir vous-même ces entêtes — on parle de headers — grâce au réputé Rex Swain's HTTP Viewer).

Et bien … si vous essayez par exemple l'utilitaire de Rex sur notre propre site, vous verrez effectivement que l'instruction de type de contenu (Content-Type: text/html) fait bel et bien appel à du HTML alors que, stricto sensu … nous devrions plutôt renvoyer un contenu de type XHTML comme dans Content-Type: application/xhtml+xml.

Fin de la fusillade !

Pour sûr, cette manière de procéder n'est pas entièment correct … mais de là parler de danger il y a une marge que nous sentons être de la même teneur que celle investie dans la grande Inquisition balançant l'hérésie à la tête de ceux qui ne leur revenaient pas.

Car quand même … le grand manitou Zeldman lui-même a conçu son site en XHTML 1.0 Transitional (http://www.zeldman.com) et il nous renvoie sans se tracasser du Content-Type: text/html; charset=UTF-8; le W3C (les grands gardiens des normes — http://www.w3.org) joue dans la même pièce : XHTML 1.0 Strict avec Content-Type: text/html; charset=iso- 8859-1 ... et nous pourrions ainsi continuer une très longue liste qui nous confortera dans notre choix.

À vrai dire, nous ne négligeons pas les problèmes mentionnés par ceux qui considèrent qu'il est dangereux d'utiliser le XHTML. Nous connaissons ces problèmes ... mais de là parler de danger. Nous refusons de passer le fleuve : nous restons sur notre rive et quand le pont sera construit nous envisagerons sereinement la traversée. Jusque là … vive le XHTML 1.1 … et jugez-en plutôt utilisez vos yeux, exercez vos doigts : ce site s'affiche bel et bien correctement. Donc … pas de dogme !