mai

4

La compatibilité du code avec les navigateurs

Par Martin

Le sujet de cette semaine est « la compatibilité du code avec les navigateurs », ou le contraire d’ailleurs… Nous allons voir cela dans le détail

Détail de machine à écrire
Photo de rpeschetz depuis Flickr

Historique

Aux débuts du web, l’offre en navigateurs était limitée, très limitée. Le premier à réellement s’imposer est, dès 1995, Netscape Navigator qui devient la référence pour surfer, mais le public est encore limité. Microsoft sort la même année la première version de son navigateur Internet Explorer.

A partir de 2000, avec le développement de l’accès Internet chez les particulier, IE devient pour la plupart des internautes néophytes, le seul moyen d’accéder à Internet sous Windows. On le trouve sur quasiment tout les pc, alors pourquoi faire autrement ? IE grâce à la position dominante de Microsoft s’impose rapidement, c’est le début d’un très long règne…

Qui durera et dure encore… Même si depuis 2005 Mozilla et son navigateur Firefox, grignote tous les mois des parts de marché au géant de Redmond. Aujourd’hui suivant les statistiques, on estime que plus de 30% des internautes utilisent Firefox (70% pour ce blog).

Pour en savoir plus :

Contexte

Si les premiers navigateurs respectaient le code rudimentaire de l’époque, le développement des technologies du web avec l’évolution de l’HTML, l’arrivée du javascript, ou de fonctionnalités propriétaires comme flash, a amené chaque navigateur a implémenter à sa manière toutes ses nouveautés. Chacun voulant à tout prix imposer sa façon de faire aux autres, et tout cela sans aucune concertation. C’est à ce moment que des choix peu judicieux ont étés faits, Microsoft décidant que son navigateurs devait être souple avec la « grammaire » du code HTML et tolérer des approximations dans le code. Ainsi la plupart des erreurs de code étaient interprétées par IE qui les corrigeait. Les développeurs ont ainsi pris de bien mauvaises habitudes.

Par la suite chaque navigateurs ayant ses spécificités dans l’interprétation et la mise en page du code, il a fallu commencer à corriger ces différences, on a ainsi développé différentes versions des sites web, en fonction du navigateur qui affichait la page. Imaginez la charge de travail supplémentaire ! En plus bien souvent les différentes versions étaient contradictoires et arriver au compromis souhaité relevait du défi… Et quand un navigateur implémentait une nouveauté intéressante mais que les concurrents ne l’utilisaient pas, il fallait faire des choix cornéliens aux dépends des internautes.

Et puis… tout a changé…

Ou presque… Disons que en théorie au moins, il y a eu une volonté de faire mieux. Le W3C est arrivé, en fait dès 1994, avec la volonté d’unifier et de normaliser les technologies du web. Ainsi HTML, CSS ou ECMAScript ont étés standardisés. On avait ainsi un modèle à suivre et c’est ce qui à permis à des navigateurs comme Opéra ou Firefox de tirer leur épingle du jeu en promettant un rendu parfait, correspondant exactement au code développé. Ainsi plus de version spécifique, l’utilisateur est libre du choix de son navigateur en fonction du logiciel lui même, de son extensibilité, de son ergonomie ou de sa portabilité…

Firefox est ainsi devenu une référence grâce a un panel d’extensions unique, une ergonomie appréciée et sa portabilité sur les différents OS.
Aujourd’hui Microsoft à senti le vent tourner et s’est remis au travail, lui qui n’avait pas sorti de nouvelle version de son navigateur phare depuis 2001, a depuis 2006 sorti deux nouvelles versions et tente de rattraper le retard avec l’ambition de garder sa place de numéro un et la volonté affichée de respecter les standards. Sur ce point il reste encore beaucoup de travail à Microsoft même si les progrès des dernières versions sont encourageants.

Alors, comment ca marche ?

Aujourd’hui plusieurs façons de faire divergent, mais on sent une évolution et une volonté d’abandonner les mauvaises habitudes du coté des développeurs professionnels du moins, les autres ne cernant pas forcément les enjeux.

Aujourd’hui donc, on voit émerger quelques initiatives visant à ne plus développer de site « compatible » avec Internet Explorer 6. Le but est de casser le cercle vicieux de l’incompatibilité en forçant les utilisateurs à évoluer et passer à la dernière version proposée par leur éditeur. Les navigateurs étant gratuits, le seul points acceptable pour rester dans une version antérieure est un problème de rapidité du PC. Cependant pour les 20% d’utilisateurs de Internet Explorer 6, la plupart peuvent facilement évoluer. Beaucoup de ces anciennes versions sont encore utilisées dans de grandes entreprises qui ne migrent pas pour des raisons d’incompatibilité avec des outils maison spécifiquement développés pour IE6, la migration se fera au fur et à mesure de l’élimination de ces barrières.

Certains sont aujourd’hui beaucoup plus virulents et crient haut et fort qu’ils ne veulent plus des vieux navigateurs à l’instar de plusieurs gros sites norvégiens qui ont lancé une campagne pour éradiquer IE6 dont Framablog se fait l’écho.

Mais beaucoup de Web Agency font encore des sites pour IE6 en 2009 car le client reste le roi, reste sourd aux explications, et ne voit que les avantages à court terme.

Et les bonnes pratiques alors ?

Si il y a quelques années, il était encore « normal » d’arborer un logo « optimisé pour IE6″, aujourd’hui la tendance est plutôt de faire un site conforme avec éventuellement quelques adaptations pour les « vieux » navigateurs. Il apparait aujourd’hui logique de faire un site pour la dernière version d’un navigateur et éventuellement garder la compatibilité avec la version précédente afin de toucher un large public, il n’est donc pas choquant de développer sans penser à IE6. Plus le web sera standard, plus les navigateurs le seront et l’internaute sera gagnant !

Alors si vous hésitez à utilisez une technologie, que vous vous posez des questions sur le support des CSS sur un navigateur, sur l’implémentation de CANVAS ou le support des images PNG, un site recense pour vous les différentes implémentations des navigateurs web.

Conclusion

Les avis sont donc partagés, tout le monde n’ayant pas les mêmes besoins, mais les navigateurs et les développeurs allant dans le même sens, on peut espérer pouvoir développer des sites standards et les voir s’afficher correctement dans les différents navigateurs du marché. D’ailleurs même Chrome le dernier venu respecte déjà très bien les normes du W3C.

Pour ma part, je développe autant que faire se peut en respectant les normes et standards en vigueur, et pour peu que ce soit le souhait de mes clients, mais à titre personnel, je ne m’accorde plus aucune digression, mes sites seront donc dégradés avec des navigateurs ne respectant pas les standards, mais resterons lisibles, et j’espère que cela incitera les utilisateurs à migrer vers une version plus récente, ou un navigateur plus respectueux du travail des développeurs.

Alors pour tenter de dégrader proprement, je vais tenter cette initiative qui me parait intéressante et qui consiste à avoir une feuille de style simplifiée pour IE6 :

Rien n’empêche en plus d’afficher un message explicatif, invitant l’internaute à changer de navigateur, ou au moins de version.

Pour en savoir plus

Sur le même thème

Déjà 2 Réponses

Yahoo! a une initiative très intéressante dans le domaine :
http://developer.yahoo.com/yui/articles/gbs/

Merci pour le lien, ca m’a l’air très intérressant ! Yahoo a vraiment de bonnes initiatives dans le domaine du web.

Laisser un commentaire