Cet article fait suite aux comparatifs sur la vitesse et la consommation mémoire des navigateurs
Les standards
Qui fait les standards ?
Une association libre, le World Wide Web Contorsium (W3C), qui regroupe des membres des différents navigateurs du marché, des développeurs web, ...
Rappelons que les "normes" du W3C ne sont pas des normes mais bien des conseils, et rien n'oblige un navigateur à s'y plier. Certains chefs développeurs, tant chez Microsoft que chez Mozilla n'ont d'ailleurs pas besoin de ce rappel pour s'en souvenir.
Pourquoi les standards ?
Revenons quelques années en arrière. Internet Explorer et Netscape sont au coude à coude.
Pour s'attirer les grâces des développeurs et nuire au rendu du concurrent, les deux géant du web crée sans cesse de nouvelles balises chaque fois plus utile que la précédente. De temps en temps, on se préoccupe tout de même de ce qu'à fait l'autre et on lui vole deux ou trois bonnes idées, histoire de rester à la page.
Très vite, les développeurs se sentent perdus. En absence de documentation digne de ce nom et vu les énormes divergeances entre les deux navigateurs, de nombreux sites finissent par être mal concus, basé sur des technologies propriétaires, tantôt de l'un, tantôt de l'autre, et ne passent au final sur aucun navigateur.
Le premier pas en avant vers une standardisation vient de Netscape. En effet, NetScape et IE n'avait pas le même langage de script. IE favorisait clairement VBScript, et NetScape avait créé JavaScript (originalement: LiveScript). Intenable pour les développeurs. IE décide donc de faire passer en standard l'ECMAScript, un langage hybride, mi-JScript (version MS de JavaScript) et mi-JavaScript. Toutes les fonctions de l'ECMA-Script devront être implémentées et par JScript et par JavaScript, permettant ainsi l'écriture d'un seul script pour les deux navigateurs.
Plus tard, le W3C est créé pour mettre fin à la guerre des navigateurs et mettre tout le monde d'accord. Il faut cependant reconnaitre que depuis sa création, le monde du web reste figé (Plus de 5 ans, et toujours que des brouillions très loin d'être achevés d'HTML 5; plus de 2 ans et toujours aucun accord sur l'objet XMLHttpRequest, pourtant implémenté par tous les navigateurs, et j'en passe), et on se passe volontier de son avis lorsqu'il s'agit d'ajouter des éléments aux navigateurs (XHR est un bon exemple).
Qui respecte le mieux les standards ?
Le test Acid2
Créé pour tester le support valide de l'HTML 4 et du CSS 2, le test Acid2 est un des incontournable du web ! Ne me demandez pas mon avis, vous serez déçu, ce test ne mérite pas d'être passé car il est beaucoup trop complexe, demande la gestion de choses totalement inutile, va à l'encontre des règles de bon sens (mais pas du W3C), ...
Il faut le reconnaitre, pourtant, un navigateur qui ne le réussit pas au moins dans les grands ligne ne peut prétendre être compatible avec les standards, et nuit au monde du Web (je pense en particulier à IE)...
Qui passe Acid2 aujourd'hui :
- Safari 3.01, et tous les navigateurs basés sur WebKit / KHTML
- Opéra 9.01, seul navigateur basé sur son moteur.
- FireFox 3.01 Alpha 2, et tous les navigateurs basé sur les nouvelles versions de Gecko
- Quelques navigateurs inconnus sans intérêt
Quid d'Internet Explorer ? "Internet Explorer 7 ne passera pas Acid2, ce n'est pas un de nos objectifs". Difficile à avaler pour de nombreux développeurs qui aimeraient enfin un web "compatible".
Les différentes études menées sur le sujet
De nombreux autres tests moins connus sont publiés sur le web. Je pense en particulier a deux grands tests : le test des attributs CSS 3 et le test des sélecteurs CSS 2 et 3.
Qui passe ses tests ?
- Aucun navigateur. Ces technologies sont trop instable pour qu'on s'y mettent vraiment. Mais certains navigateurs s'y attèlent déjà.
Safari, qui est le plus avancé de tous :
- Sélecteurs CSS 2 : OK
- Sélecteurs CSS 3 : OK
- Attributs CSS 2 : OK
- Attributs CSS 3 : En progrès
FireFox :
- Sélecteurs CSS 2 : OK (mais des erreurs sont encore répertoriées)
- Sélecteurs CSS 3 : En progrès
- Attributs CSS 2 : OK
- Attributs CSS 3 : En progrès
Opéra :
- Sélecteurs CSS 2 : OK
- Sélecteurs CSS 3 : OK
- Attributs CSS 2 : OK
- Attributs CSS 3 : Non démarré
Internet Explorer :
- Sélecteurs CSS 2 : En progrès
- Sélecteurs CSS 3 : En progrès
- Attributs CSS 2 : OK (mais des erreurs sont encore répertoriées)
- Attributs CSS 3 : Non démarré
Tests personnels
Non content des tests que j'ai trouvé sur Internet, j'ai réalisé quelques tests pour mes navigateurs. 4 au total.
Preuve que W3C existe, FireFox et safari on toujours le même rendu (lissage des police non-compris, vu que non géré par FF). Opéra lui aussi a le bon rendu mais certaines fonctionnalités (pas de police en dessous de 5-6px, ...) peuvent faire légèrement varier le rendu.
Internet Explorer, lui, fait cavalier seul. Des erreurs criantes, des corrections CSS aux quelles on ne s'attends pas, ... Bien souvent pourtant, son rendu est plus proche de celui que j'avais espéré... Les standards sont-ils mal faits ? Je n'irais pas jusque là mais il existe des points sur lesquels je trouve que le W3C s'est trompé, et pour lesquels j'invite IE A NE PAS SE PLIER AUX EXIGEANCES du W3C, quite à rater Acid2.
- Une règle CSS invalide, en tout ou en partie, ne doit pas être interprêtée, même en partie.
- La dernière règle CSS indiquée est toujours la seule applicable, les autres sont nulles et non avenantes.
- Les propriétés CSS (width et height) sont prioritaires, si spécifiées, au contenu (même si il y a débordement visible à cause des bordures)
- Deux DIV enchassée peuvent se déborder l'une l'autre si le style l'impose. Si le style ne l'impose pas, le navigateurs peut/doit agrandir l'un et l'autre pour que le contenant contienne le contenu, sans débordement.
- ...
Voici des screenshots de certains de mes test : IE versus FF :
Test 1

Test 2
(Test sur le border-box-model : résultat identique sous IE 7 et sous FF 2 : bug corrigé)
Test 3

Test 4

Developper.Mozilla.org Test

Je vous laisse appréciez vous-même du résultat des 4 tests, et choisir ce qui est erreur, ce qui ne l'est pas. (FF est en deuxième position, IE en première)
Correction des erreurs
Et oui, les standards c'est bien beau, mais combien de gens ne font pas du HTML sans même savoir ce que c'est, sans même se dire que des standards existent. Combien de gens n'imaginent pas qu'il n'y a pas qu'Internet Explorer n'est pas le seul navigateur au monde ?
Résultat : des pages web écorchées, des CSS mal-écrits, des informations contradictoires, ...
Un navigateur doit donc être capable de gérer toutes ces "impuretés" sans laisser le rendu pâtir...
Je ne vais pas vous mentir, Safari et Opéra sont loin d'exceller en la matière... Ils appliquent le W3C, un point c'est tout, et les pages mal-faites vont très rapidement devenir illisible voir inutilisable.
FireFox, fort de son expérience et des efforts fait par Netscape, s'en sort déjà mieux, mais c'est à Internet Explorer qu'il faut demander de faire des miracles. Il est bien souvent capable de lire des pages web de très mauvaise qualité sans même que l'utilisateur s'en aperçoive. Voila qui fait bouder les dévelopeurs des navigateurs moins bien loti.
Conclusion
Internet Explorer si fiche pas mal du W3C mais a bien souvent un rendu meilleur pour les pages moins bien codée.
FireFox, Opéra et Safari s'accrochent aux recommandations du W3C, perdant souvent en crédibilité lors de de la visite de page mal faite ou plus ancienne (balises propriétaires, ActiveX, ...)
Parmi ceux-ci, seul FireFox sort du lot et parvient vraiment à donner un rendu convenable aux pages mal-codées.
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :