Ouvrir la navigation secondaire

Ce billet a plus de deux ans. S'il contient des informations techniques elles sont peut être obsolètes.

Précédent 2008 commence en fanfare
Suivant Envoyer des emails avec Gmail via PHP et msmtp (Ubuntu)

IE 8 ne souhaite pas casser le web

Grosse polémique sur le web la semaine passée suite à 3 articles :

Le problème est le suivant : avec IE8, Microsoft est confronté à un problème de rétro compatibilité. En clair il faut pouvoir afficher correctement des anciennes pages à base de soupe de balise avec le nouveau moteur de rendu du prochain IE.

La technique utilisée aujourd'hui par les différents navigateurs modernes pour gérer les anciens documents écrits avant les efforts de standardisation s'appelle le DOCTYPE switch qui permet de basculer entre le mode Quirks et le mode Standard.

Or Microsoft annonce vouloir introduire un nouveau mécanisme pour basculer dans un nouveau mode de rendu spécifique à IE8. Pourquoi aurait-on besoin d'un nouveau mode de rendu alors que des navigateurs comme Safari, Opera et Firefox parviennent à intégrer de nouvelles fonctionnalité et à améliorer de façon constante le support des standards avec le DOCTYPE switch ?

La réponse : le DOCTYPE switch est cassé dans IE. Un peu d'histoire maintenant. Le DOCTYPE switch a permis par exemple d'implémenter le box model correct dans la version 6 d'IE. Mais un bug de ce navigateur a fait que la déclaration du prologue XML dans un document XHTML faisait basculer IE6 en mode Quirks. A l'époque, pour ceux qui connaissaient l'astuce, il suffisait de retirer le prologue et boum, retour en mode Standard. Le problème est que techniquement parlant, pour être valide et en conformité vis à vis des spécifications, le prologue était nécessaire. Tout un tas d'outils permettant de générer du XHTML (type éditeurs WYSIWYG) ont inséré ce prologue automatiquement en voulant bien faire. En conséquence, tout un tas de pages web générées par ces outils étaient affichées en mode Quirks dans IE6. Et à la sortie d'IE7, bam, ze web iz broken. Maintenant IE7 se comporte de façon conforme aux standards et bascule dans le bon mode avec le prologue.

Microsoft ne veux pas du même scénario à la sortie d'IE8. Ca donnerait une image négative du produit et ça mettrait les équipes marketing furax sur un marché redevenu très compétitif.

La team IE est en réalité confrontée à ses propres bugs.

Avec l'aide du Web Standards Project, Microsoft est arrivé à une solution : un nouveau meta tag qui permettrait à IE8 d'afficher une page comme s'il s'agissait d'une ancienne version du navigateur.

Est-ce une bonne idée ou pas ? En tous cas le deuxième article d'ALA est une anticipation des critiques de la blogosphère. Mais ça n'aura pas suffit, les réactions semblent plutôt négatives :

Pour finir ce post sur une note positive, il faut savoir qu'IE8 supportera le DOCTYPE switching pour tous les nouveaux DOCTYPEs. Pas de problèmes pour HTML5 donc. Bon, y a quand même un peu de temps encore avant de coder en full HTML5. Mais le truc cool du jour, c'est que le DOCTYPE d'HTML5 est déjà supporté par les navigateurs récents (Safari, Opera, Firefox et le prochain IE8) qui passent en mode standard à sa rencontre. Yeah.

Et sinon quel sera le comportement par défaut ?

Unless you explicitly declare that you want IE8 to behave as IE8, it will behave as IE7.

Allez, à la prochaine