Navigateurs Internet : Qui a le meilleur rendu ?

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 :

  1. Safari 3.01, et tous les navigateurs basés sur WebKit / KHTML
  2. Opéra 9.01, seul navigateur basé sur son moteur.
  3. FireFox 3.01 Alpha 2, et tous les navigateurs basé sur les nouvelles versions de Gecko
  4. 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 ?

  1. 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.

  1. Une règle CSS invalide, en tout ou en partie, ne doit pas être interprêtée, même en partie.
  2. La dernière règle CSS indiquée est toujours la seule applicable, les autres sont nulles et non avenantes.
  3. 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)
  4. 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.
  5. ...

Voici des screenshots de certains de mes test : IE versus FF :

Test 1
IE
FF

Test 2

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

Test 3
IE
FF

Test 4
IE
FF

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.

Publié mardi 10 juillet 2007 18:11 par FREMYCOMPANY
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 :

Commentaires

# re: Navigateurs Internet : Qui a le meilleur rendu ? mardi 10 juillet 2007 20:20

"Le premier pas en avant vers une standardisation vient de Netscape."  ??? il n'y aurait pas une erreur ? car l'exemple que tu montres après montre justement que c'est IE qui a le premier fait standardisé JScript :p

Je ne suis pas tout à fait d'accord avec ce que tu dis ici. Il me semble que le W3C a été créée en 94, donc avant la bataille Netscape / IE, mais les 2 navigateurs n'avaient que faire de ces normes ... Microsoft à gagné la guerre, IE pouvait donc petit à petit faire évoluer son navigateur, puis à partir du comportement de IE, le W3C faisait évolué ses normes avec plus ou moins de cohérence par rapport à IE.

Autour de 2002, Netscape renait de ses cendres avec le projet mozilla qui lui se vante de tenir compte des standards. Au fur et à mesure des parts gagnés par mozilla, IE se tient de plus en plus au norme.

Mais le W3C n'a en rien fait les normes d'internet, il a juste battis des normes une fois que tout le monde les avait implémentés à sa facon, on le voit encore maintenant avec l'objet XMLHttpRequest. En plus le W3C est très lent (non j'ai pas dit inactif) cela fait déjà plusieurs années que CSS3 est en draft, aucune évolution depuis XHTML1.1, abandon de XHTML2 au profit de HTML5, bref qu'on le veuille ou non, c'est pas le W3C qui fait les normes, surtout que HTML5 vient à l'origine de Mozilla, Safari et Opéra... le W3C ne propose absolument rien pour ce qui est "Web 2.0".

De plus si on lit les spécifications du W3C, beaucoup de point ne sont pas détaillé et sont laissé à la libre interpretation des developpeurs de navigateurs.

cyril

# re: Navigateurs Internet : Qui a le meilleur rendu ? mardi 10 juillet 2007 21:17

Ouaip, en fait cela dépend des sources ;)

Selon certains c'est IE qui a fait standardiser JScript pour créer une compatibilité avec NetScape, pour d'autres c'est NetScape qui a fait standardiser JavaScript pour obiger IE à suivre... Je crois qu'en fait ca a peu d'importance vu que de toute façon, ils ont forcément du faire ca de commun accord ;)

Pour ce qui est de W3C, même si il a été créé avant, ca ne change rien si on n'en parle pas... Il existe un controle Active X qui permet de faire un browser MozillaBased sous DotNet, si personne n'en parle, cela restera lettre morte...

Deplus, Internet Explorer 1.0 nait aussi en 1994, et est inclu dans NT 4.0 en 1995, ce qui finalement colle avec la naissance du W3C. La guerre des navigateurs ne démarre vraiment qu'en 1997, soit, mais d'autres navigateurs existait déjà avant et étaient en compétition avec NetScape (Mosaic, ...)

Et je me pose une question : A quoi ca sert de faire des normes si c'est pour les faire après que les navigateurs les supportent déjà ? Il est alors trop tard et de toute facon plus personne ne changera son code à moins d'être véritablement à coté de la plaque... Si c'est pour faire une documentation, ils peuvent laisser tomber, on a la MSDN et developer.mozilla.org qui sont plus légères et plus précises. Si c'est pour faire des tests genre Acid2, ben peuvent laisser tomber aussi... A l'heure d'aujourd'hui suffisamment de bugs sont répertoriés pour faire un "Acid3" qu'aucun navigateur ne pourrait passer...

FREMYCOMPANY


Les 10 derniers blogs postés

- EF et WPF par Matthieu MEZIL le il y a 2 heures et 53 minutes

- C# : Vérifications / Performances par Pierrick's Blog le il y a 6 heures et 28 minutes

- Du nouveau sur le clubvsts par Noham Choulant le il y a 8 heures et 8 minutes

- StyleCop SDK disponible par Michel Perfetti [Miiitch] le il y a 10 heures et 28 minutes

- Data Structures and Algorithms : un livre gratuit par Elise's blog le il y a 12 heures et 49 minutes

- [ASP.NET] - Ajax vNext Preview 2 par Aurelien's Blog - When ClientSide meets .Net le il y a 13 heures et 53 minutes

- TPH IS Not Null sur la relation par Matthieu MEZIL le il y a 16 heures et 13 minutes

- Mise à jours du code Source du .NET Framework 3.5 SP1 disponible sur le Reference Source Code Center par RedoBlog - The .NET Gentleman !!! le il y a 22 heures et 37 minutes

- ASP.net 3.5 SP1 : combiner les fichiers JavaScript grace au CompositeScript du ScriptManager (ex ScriptCombining du toolkitScriptManager) par Atteint de JavaScriptite Aiguë [Cyril Durand] le 08-28-2008, 22:39

- [Expression Web] Problème : Quand j'affiche l'Aide (F1), cela me met un message d'erreur. par Expression Web & Me le 08-28-2008, 19:44