2008-12-16 à 19:57:05

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 !

FIN DU CODE REVIEW

Pour s?. cela n'est pas enti?ment correct … mais de l? parler de danger il y a une marge que nous sentons ?e de la m? teneur que celle investie dans la grande Inquisition qui d?n?t ?ous crins les honn?s gens d?ngeants d'h?sie.

Car quand même … le grand manitou Zeldman lui-même con?t 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? pi? : XHTML 1.0 Strict avec Content-Type: text/html; charset=iso-8859-1 ... et nous pourrions ainsi continuer une tr?longue liste qui nous confortera dans notre choix.

À vrai dire, nous ne négligeons pas les probl?s mentionn?par ceux qui consid?nt qu'il est dangereux d'utiliser le XHTML. Nous connaissons ces probl?s ... 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? 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 !

< Février 2012 >
Lu Ma Me Je Ve Sa Di
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29        
lifetime-episode

Nos autres articles

  1. Articles
    1. /articles-core.php
    2. /articles/core/MiFID/index.php
    3. /articles/core/SEPA/index.php
    4. /articles/core/accessibility-seo/index.php
    5. /articles/core/accessible-popups/index.php
    6. /articles/core/ajax/index.php
    7. /articles/core/blogs/index.php
    8. /articles/core/business-case/index.php
    9. /articles/core/closure-report/index.php
    10. /articles/core/cmmi/index.php
    11. /articles/core/css/index.php
    12. /articles/core/dynamic-input/index.php
    13. /articles/core/dynamic-theme/index.php
    14. /articles/core/effort-de-gestion-de-projet/index.php
    15. /articles/core/error-handling-404/index.php
    16. /articles/core/estimations-programmeurs/index.php
    17. /articles/core/expressions-regulieres-php/index.php
    18. /articles/core/gestion-des-couleurs/index.php
    19. /articles/core/glossary/index.php
    20. /articles/core/ideal-team-duration/index.php
    21. /articles/core/image-transition/index.php
    22. /articles/core/inline-javascript/index.php
    23. /articles/core/investir/index.php
    24. /articles/core/it-budget/index.php
    25. /articles/core/javascript-animation/index.php
    26. /articles/core/junctions/index.php
    27. /articles/core/les-malheurs-IT/IT-soumis-business.php
    28. /articles/core/limites-de-la-croissance/club-de-rome.php
    29. /articles/core/link-rel-canonical/eviter-duplication-url-canonique.php
    30. /articles/core/link-rel/index.php
    31. /articles/core/longitude-latitude-google-maps/index.php
    32. /articles/core/meetings/index.php
    33. /articles/core/pack-and-go/index.php
    34. /articles/core/pageframe-tabs/index.php
    35. /articles/core/phases-de-projet/index.php
    36. /articles/core/php-server-variables/index.php
    37. /articles/core/pre-business-case/index.php
    38. /articles/core/project-management/principes-de-gestion-de-projet.php
    39. /articles/core/project-typology/index.php
    40. /articles/core/pso/index.php
    41. /articles/core/requirements management/index.php
    42. /articles/core/risk management/index.php
    43. /articles/core/rss/index.php
    44. /articles/core/scrum/index.php
    45. /articles/core/search-engine-optimization/accessibility-guidelines.php
    46. /articles/core/sepia/index.php
    47. /articles/core/sponsorship-meeting/index.php
    48. /articles/core/stylesheet-switching/index.php
    49. /articles/core/v-model/index.php
    50. /articles/core/vaesoli-transform-images/index.php
    51. /articles/core/wiki/index.php
    52. /articles/core/xhtml-tooltips/index.php
    53. /articles/core/xml-sitemap/index.php