2010-08-17 à 07:44:36

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 !

< Août 2014 >
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 30 31
lifetime-episode

Nos autres articles

  1. C'est quoi un blog?
  2. Configuration Apache Virtual Hosts
  3. Expertise web - FastWrite - Bruxelles, Kraainem
  4. FastWrite - Création de sites web 2.0 - Articles techniques
  5. Finance - Introduction à MiFID
  6. Finance - Introduction à SEPA
  7. IT - L'IT est soumis au Business en lieu et place d'une situation d'équilibre
  8. Investir
  9. Les limites de la croissance - Dennis Meadows
  10. Pas vraiment les bonnes conditions de travail pour les programmeurs
  11. Plus de vitesse sur votre site web
  12. Programmation - Comprendre les jonctions en Windows
  13. Project Management - Anatomie d'une carte de mur kanban
  14. Project Management - Budget Département IT
  15. Project Management - CMMI FastWrite
  16. Project Management - Ce que veut un chef de projet en matière de rapport de test
  17. Project Management - Comprendre la méthodologie agile SCRUM
  18. Project Management - Développer un Business Case
  19. Project Management - Développer un pre-business case
  20. Project Management - Kanban-Lean-Agile
  21. Project Management - L'effort de Gestion de Projet
  22. Project Management - La durée idéale; l'équipe idéale
  23. Project Management - Les 5S de LEAN
  24. Project Management - Les différentes phases de Projet
  25. Project Management - Les minutes de meeting -- FastWrite
  26. Project Management - Mails en 5W
  27. Project Management - Minutes ou images?
  28. Project Management - Modèle en V
  29. Project Management - Pack & Go
  30. Project Management - Portfolio Management
  31. Project Management - Principes fondamentaux
  32. Project Management - Project Support Office
  33. Project Management - Rapport de clôture de projet
  34. Project Management - Risk Management - FastWrite
  35. Project Management - Sponsorship Meeting
  36. Project Management - Testing chaotique - FastWrite
  37. Project Management - Tests agiles - FastWrite
  38. Project Management - Typologie de projet
  39. Project Management - Équipes agiles de DevOps - FastWrite
  40. Project Management - Étiquette de comportement pour les démos
  41. Project management - Estimations, Kanban et Credits
  42. Project management - Extrapoler les estimations données par une équipe de développement
  43. Project management - Faire une bonne démo - FastWrite
  44. Project management - Gestion des exigences - FastWrite
  45. Tests de performances
  46. Web Expertise - Afficher table avec des têtes de colonne fixes
  47. Web Expertise - Afficher une carte Google Map
  48. Web Expertise - Appliquer un thème dynamique à un site web
  49. Web Expertise - Bulle d'aide (tooltips) en XHTML
  50. Web Expertise - C'est quoi un blog?
  51. Web Expertise - CSS3 - Web Fonts
  52. Web Expertise - CSS3 - transform - transition - animation
  53. Web Expertise - CSS3 Selectors
  54. Web Expertise - Changer le curseur par CSS et en Javascript
  55. Web Expertise - Comprendre Ajax
  56. Web Expertise - Comprendre RSS
  57. Web Expertise - Création de zones à la volée
  58. Web Expertise - Création et utilisation d'un favicon
  59. Web Expertise - Enchainer les onload
  60. Web Expertise - Gestion des couleurs
  61. Web Expertise - Gérer les erreurs
  62. Web Expertise - Infinite Scroll - Chargement de contenu à la volée
  63. Web Expertise - Insérer des javascripts
  64. Web Expertise - Les liens et les moteurs de recherche
  65. Web Expertise - Mise de photos en sepia
  66. Web Expertise - Optimisation du Search Engine Optimization (SEO) du classement dans les moteurs de recherche
  67. Web Expertise - Pageframe - onglets - tabs
  68. Web Expertise - Passer d'une stylesheet à une autre?
  69. Web Expertise - Search Engine Optimization, SEO et référencement
  70. Web Expertise - Stratégie Mobile
  71. Web Expertise - Sélecteurs CSS3
  72. Web Expertise - Transformations d'images
  73. Web Expertise - Transition d'images
  74. Web Expertise - Travailler avec les expressions réguilères en PHP
  75. Web Expertise - URL canonique
  76. Web Expertise - Une animation de texte avec CSS3 et Javascript
  77. Web Expertise - Une libraire de regex pour PHP
  78. Web Expertise - Utilisation d'un glossaire
  79. Web Expertise - XML Sitemap - Aider les moteurs de recherche - FastWrite
  80. Web Expertise - Zones multiples dynamiques
  81. Web expertise - Animation en javascript
  82. Web expertise - Les variables $_SERVER en PHP
  83. Économie - Fait Pour Durer