Accueil Recherche | Plan Technique | Liens | Actualités | Formation | Emploi | Forums | Base
dossier cerig.efpg.inpg.fr 
Vous êtes ici : Accueil > La technique > Internet et le Web > Les feuilles de style > Le mode natif et le mode conforme           Révision : 27 février 2004
Page précédente Les feuilles de style Page suivante
Page précédente   Page suivante  
Jean-Claude SOHM - CERIG / EFPG
(27 février 2004)

VI - Le mode natif et le mode conforme

VI-1- Introduction

Bien qu'elle eût plusieurs représentants dans le groupe de travail du W3C chargé des feuilles de style, la société Microsoft a pris quelques libertés avec les recommandations de cet organisme lorsqu'elle a implémenté les feuilles de style dans ses navigateurs (et d'autres éditeurs lui ont emboîté le pas). Nous en avons rencontré un exemple au chapitre précédent, à propos des dimensions de boîtes (propriétés WIDTH et HEIGHT). Nous en rencontrerons un autre au chapitre VIII, quand nous aborderons le comportement du "bloc conteneur initial".

Pour répondre aux critiques qui lui étaient régulièrement formulées à ce sujet, la société Microsoft a imaginé de doter son navigateur de la possibilité de fonctionner selon deux modes distincts :

La version 5 d'Internet Explorer pour le Mac (publiée en mars 2000) et la version 6 pour PC (publiée en octobre 2001), ont été les premières à bénéficier de ce perfectionnement. La versions 6 du navigateur de Netscape possède également deux modes de fonctionnement, et la version 7 en possède trois.

 

VI-2- La déclaration de type de document

Par défaut, un navigateur fonctionne en mode natif. Pour le faire basculer en mode conforme, il faut rajouter une déclaration de type de document en tête du code HTML de la page Web, avant la balise <html>. Voici un exemple de déclaration :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/transitional.dtd">

D'une manière générale, une telle déclaration possède trois parties :

<!DOCTYPE HTML PUBLIC "Type de HTML utilisé" "Adresse de la DTD">

dont voici les rôles respectifs :

En théorie, le navigateur devrait lire la DTD de manière à interpréter le mieux possible la page Web correspondante. En pratique, aucun navigateur ne consulte la DTD, parce que la télécharger et l'assimiler prendrait trop de temps. De plus, le serveur Web du W3C croulerait sous la charge !

La déclaration de type de document sert donc uniquement de critère pour faire basculer ou non le navigateur du mode natif par défaut au mode conforme. En argot d'informaticien du Web, le procédé s'appelle "doctype sniffing" (la traduction française littérale est "reniflement de déclaration") ou "doctype switching".

Lorsqu'elle n'est pas utilisée pour faire basculer le navigateur d'un mode à l'autre, la déclaration ne sert à rien. Il n'y a donc pas lieu de l'introduire dans le code de la page web. L'internaute intéressé peut consulter la liste des DTD du W3C.

 

VI-3- Le cas des Explorers

Le tableau ci-dessous indique la manière dont IE6 réagit aux diverses DTD éditées par le W3C. En l'absence de déclaration, le navigateur reste en mode natif. S'il n'est pas en mesure d'interpréter la déclaration, le navigateur passe en mode conforme.

INTERNET EXPLORER 6
Version HTML Précision Adresse (ou déclaration XML)
présente absente
Pas de version précisée   Natif Natif
HTML 2.0, 3.0 et 3.2   Natif Natif
HTML 4.0 ou 4.01 Néant Conforme Conforme
HTML 4.0 ou 4.01 Strict Conforme Conforme
HTML 4.0 ou 4.01 Transitional Conforme Natif
HTML 4.0 ou 4.01 Frameset Conforme Natif
XHTML Strict ou
transitional
Natif Conforme
Doctype non reconnu   Conforme Conforme

Les statistiques publiées par la société hollandaise OneStat en juillet 2003 montrent que, en matière de navigateur, Microsoft a écrasé tous ses rivaux. En effet, plus de 95 % des internautes utilisent Internet Explorer, alors que 2,5 % utilisent le navigateur de Netscape, et 1,6 % Mozilla. Les autres navigateurs (exemple : Opera) sont sous la barre des 1 %. Diverses entreprises spécialisées en analyse de trafic publient sur le Web des chiffres qui sont voisins de ceux de OneStat.

La tentation est donc forte pour un webmestre de ne plus se préoccuper de la manière dont certains internautes voient les pages de son site, à partir du moment où ces derniers représentent moins de 5 % du total. Il suffit alors au webmestre de vérifier que ses pages sont correctement rendues par les différentes versions de IE.

Les statistiques précitées montrent également que les 2/3 des utilisateurs d'Internet Explorer se servent de la version 6, le tiers restant se partageant à peu près également entre les versions 5.0 et 5.5. Il n'est pas raisonnable, dans ces conditions, d'introduire dans une page Web une déclaration de type de document qui aura pour effet de faire fonctionner de manière différente les versions 5 et 6 de IE, au risque de gêner un tiers des internautes.

Reste le cas de IE5 pour Mac. La machine d'Apple détient aujourd'hui 2-3 % du marché des micro-ordinateurs. Une petite moitié des détenteurs de Mac utilise IE5, ce qui représente environ 1 % des internautes. Ces derniers seront-ils brimés par l'absence d'une déclaration de type de document ? Pas du tout, car le mode conforme de IE5/Mac fonctionne nettement moins bien que le mode natif ! Notre conclusion est donc que, pour l'instant, il ne faut pas utiliser de déclaration de type de document. Ceci dit, si vous ne partagez pas notre point de vue, vous trouverez dans le tableau ci-dessous les conditions de basculement de IE5/Mac en fonction de la nature de la déclaration.

INTERNET EXPLORER 5 / MAC
Version HTML Précision Adresse (ou déclaration XML)
présente absente
HTML 2.0, 3.0 et 3.2   Natif Natif
HTML 4.0 Strict Conforme Conforme
HTML 4.01 Strict Conforme Natif
HTML 4.0 ou 4.01 Transitional Conforme Natif
HTML 4.0 ou 4.01 Frameset Conforme Natif
XHTML Strict ou
transitional
Conforme Conforme

Comme vous pouvez le remarquer, il existe une déclaration ayant pour effet de faire basculer IE6 en mode conforme et de laisser IE5/Mac en mode natif :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

Inversement, la présence d'une déclaration XHTML du type suivant laisse IE6 en mode natif et fait basculer IE5/Mac en mode compatible :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>

Dans quelques années, la version 5 de IE aura été abandonnée -- sur PC au profit de la version 6, et sur Mac au profit de Safari. Peut-être aura-t-on alors intérêt à faire basculer IE en mode conforme en installant une déclaration de type de document en tête des pages Web nouvellement créées. Bien entendu, il ne faudra pas toucher aux anciennes pages, qui ont été conçues pour le mode natif, et il ne faudra pas utiliser pour créer les nouvelles pages les modèles ayant servi pour les anciennes. Pour les sites Web ayant un long passé, la transition sera sans doute plus difficile qu'on ne le pense.

 

VI-4- Le cas de Netscape 6 et 7

Les versions 6 et 7 du navigateur de Netscape détectent la présence d'une déclaration de type de document, et basculent en mode "conforme" le cas échéant. De plus, la version 7 possède un troisième mode de fonctionnement, appelé semi-conforme (almost standard mode). Ce dernier est identique au mode conforme, sauf en ce qui concerne le traitement des images situées dans les cellules d'un tableau.

Les deux tableaux ci-dessous résument les conditions de basculement de NS6 et 7 suivant la nature de la déclaration. En l'absence de déclaration, le navigateur reste en mode natif.

NETSCAPE 6
Version HTML Précision Adresse (ou déclaration XML)
présente absente
HTML 2.0, 3.0 et 3.2   Natif Natif
HTML 4.0 ou 4.01 Strict Conforme Conforme
HTML 4.0 Transitional Natif Natif
HTML 4.01 Transitional Selon l'URL Natif
XHTML 1.0 Transitional Conforme Conforme
XHTML 1.0 Strict Conforme Conforme
NETSCAPE 7
Version HTML Précision Adresse (ou déclaration XML)
présente absente
HTML 2.0, 3.0 et 3.2   Natif Natif
HTML 4.0 ou 4.01 Strict Conforme Conforme
HTML 4.0 Transitional Natif Natif
HTML 4.01 Transitional Semi-conforme Natif
XHTML 1.0 Transitional Semi-conforme Semi-conforme
XHTML 1.0 Strict Conforme Conforme

Le mode conforme du navigateur de Netscape a des effets désastreux sur l'affichage des tableaux, et c'est la raison pour laquelle Netscape a créé le mode "semi-conforme". Le problème a été soulevé dans de nombreux forums -- en particulier à propos des images que l'on découpe pour les reconstituer dans un tableau (sliced images) -- et voici quelques-uns des effets que nous avons nous-même observés.

Le navigateur attribue aux cellules de tableaux une hauteur par défaut de 3 pixels si elles sont vides de toute information. Dans le cas contraire, il leur attribue une hauteur par défaut de 19 pixels, tant du moins que la hauteur du contenu ne dépasse pas cette valeur. Bien entendu, aucun concepteur de site Web ne construit ses tableaux avec de pareilles hypothèses en tête. Il en résulte que, affichés via NS7 conforme, les tableaux codés de manière usuelle gonflent dans le sens de la hauteur d'une manière si exagérée qu'ils ne sont plus présentables. A titre d'exemple, les bandeaux situés en haut et en bas de la présente page ne s'affichent pas correctement dans NS7 conforme, contrairement à ce qui se passe dans NS7 natif. On notera en outre que, dans NS7 conforme, seule l'utilisation d'un style permet de régler la hauteur à moins de 19 pixels, et à condition que la cellule contienne du texte. Avec une image, cela ne marche pas.

Bref, le mode conforme de NS7 est, comme celui de IE5/Mac, franchement plus mauvais que le mode natif, ce qui n'incite pas à l'utiliser. Si vous êtes cynique, vous penserez que toute cette discussion ne sert à rien, parce qu'il n'y a pas lieu de se faire du soucis pour une population d'internautes réduite à 2,5 % du total...

 

VI-5- Conclusion

Le Web est rempli de belles dissertations incitant les concepteurs de sites à inscrire une déclaration de type de document en tête de leurs pages web. Si vous prenez tout ce que dit le W3C pour parole d'évangile, vous ne manquerez pas d'obtempérer. Si vous êtes réaliste, vous constaterez qu'une telle déclaration risque de vous attirer des difficultés, sans vous apporter le moindre avantage en contrepartie.

Pour savoir comment réagissent les concepteurs de sites, nous avons examiné 100 sites francophones choisis à peu près au hasard, et nous avons examiné leur code. Voici le résumé de nos observations :

Sans vouloir être méchant, on peut dire que les déclarations sont généralement là pour "faire bien", sans plus. A moins qu'elles ne soient mises d'autorité par l'éditeur de pages Web utilisé, et que le concepteur n'ait pas songé à les retirer.

La conclusion de ce bref chapitre n'est donc pas difficile à tirer : mieux vaut ne pas introduire de déclaration de type de document en tête d'une page web. Si l'on veut absolument en mettre une, il faut s'assurer qu'elle laisse les deux principaux navigateurs du marché en mode natif.

Page précédente Retour au sommaire Page suivante
Page précédente Retour au sommaire Page suivante
Accueil | Technique | Liens | Actualités | Formation | Emploi | Forums | Base  
Copyright © CERIG/EFPG 1996-2004
Mise en page : J.C. Sohm