Guerre des navigateurs ; oui, mais la rétrocompatibilité alors ?
Ecrit par visiteur, dans Edito, le 22 septembre 2008, à 00:00.
L'actualité des navigateurs internet est très riche actuellement. Entre l'entrée tonitruante de Google Chrome sur le marché, les bêta qui s'enchaînent pour Internet Explorer 8, ou la nouvelle version de Firefox qui se profile, on ne sait plus où donner de la tête. On ne peut que se réjouir d'un tel regain d'activité dans le secteur des navigateurs, qui – espérons-le – profitera aux utilisateurs.

Pourtant, malgré cette multiplication de fonctionnalités et les nombreuses améliorations apportées à ces logiciels, un problème de fond demeure.

Comme nous l'expliquait fort bien Trent récemment, chaque site que vous consultez est en réalité composé d'une succession de balises, semblables à celles que vous utilisez sur Net-Actuality pour mettre en forme vos messages. Par exemple, plutôt qu'utiliser une balise [ rouge ] pour colorer le texte en rouge, c'est une balise < span color="#FF0000" > qu'il faut utiliser en HTML.

Rapidement, de nombreuses incompatibilités entre les principaux navigateurs sont à déplorer. En effet, les deux géants de l'époque, Internet Explorer et Netscape, avaient deux moteurs de rendus différents. C'est pour cette raison qu'est créé, en 1994, le Web Consortium, plus connu sous le nom de W3C. Entre autres choses, l'un de ses objectifs était de créer des normes. Ces dernières permettraient de consulter les sites Web, quel que soit son navigateur, sans bogues.

Depuis sa création, le consortium a bien évidemment permis de faire de nombreux progrès en matière de rétrocompatibilité, mais le chemin est encore long. Ainsi, depuis quelques dernières années, les principes du W3C sont de plus en plus prisés par les internautes. Pourtant, les incompatibilités entre les différents navigateurs du marché restent monnaie courante.



Vers une reconnaissance des normes du W3C ?

Aujourd'hui, il n'est pas rare de voir un site Web arborer fièrement un logo « W3C valide ». Pourtant, la plupart de ces sites ne sont généralement pas compatibles sur tous les navigateurs. Sachant que les normes du W3C sont, en partie, censées apporter une rétrocompatibilité, on peut se demander pourquoi ces sites ne possèdent pas ce caractère.

Pour cela, il faut faire un retour en arrière. Afin de promouvoir ses idées et normes, le W3C crée un valideur en ligne, ayant pour objectif de permettre aux développeurs de lister les points à améliorer pour rendre leur site valide.

Un outil pratique, en somme, dont l'utilité première a malheureusement été totalement détournée. En effet, il n'est pas rare de lire, sur les forums, « ton site est compatible W3C ? Alors il fonctionnera partout » : c'est faux et archifaux, puisque ces personnes oublient là qu'il ne s'agit que d'un outil théorique. En pratique, avoir un site valide ne le rendra pas forcément compatible sur tous les navigateurs.



Pourquoi ? Le W3C ne sert donc à rien ?

Non, le W3C est très important et a une légitimité toute faite. Le problème se situe plutôt du côté des navigateurs.

La principale difficulté réside dans le fait que chaque navigateur possède ses propres spécificités. Par exemple, pour offrir des bordures arrondies à ses visiteurs, le développeur devra utiliser la propriété CSS « -moz-border-radius:10px; » pour Firefox, « -webkit-border-radius: 10px; » pour Chrome et Safari, un fichier SVG pour Opera, et Internet Explorer ne sera même pas capable d'en afficher ! Pour la gestion d'opacité, même son de cloche : il faudra utiliser plus de trois propriétés, pour assurer un affichage optimal sur tous les navigateurs (« filter : alpha(opacity=85); », « -moz-opacity : 0.85; » ou encore « opacity : 0.85; »).

Outre ces fonctionnalités qui ne sont pas uniformisées, d'autres obstacles sont à déplorer. Vous avez sans doute déjà entendu parler des PNG, ces petites images qui peuvent être transparentes. Ce format est une avancée inimaginable en matière de Webdesign. Pourtant, son utilisation reste encore rare. La cause ? Internet Explorer 6, encore utilisé par 20% des internautes, ne les gère pas. Par conséquent, de nombreux webmestres ne se sont pas laissés tentés par l'expérience, par peur de léser les visiteurs utilisant la version 6 d'Internet Explorer.

Autre exemple, Internet Explorer 6 gère mal les propriétés CSS « margin » et « padding », qui permettent d'espacer des contenus. Ainsi, il est nécessaire de donner des instructions différentes aux navigateurs comme Firefox et Opera et à Internet Explorer. Plus concrètement, on dira à Internet Explorer qu'il doit avoir un « padding de 5 pixels », alors qu'on dira à Firefox et Opera d'avoir un « padding de 8px ».

Par conséquent, le développeur devra, s'il souhaite avoir un site compatible sur tous les navigateurs, ruser pour pallier lui-même les manques des navigateurs. Là où le bât blesse, c'est que l'utilisation de ces astuces (souvent appelées « hacks »), permettant d'assurer une compatibilité maximale, rendent généralement le site non valide aux normes du W3C. Un comble !

Face à cette inefficacité d'Internet Explorer, qui n'avait subi aucune mise à jour pendant plus de six ans, de nombreux webmestres réclamaient une nouvelle version du navigateur, afin de pouvoir utiliser les nouvelles technologies Web sur leurs sites. Ironie du sort, cette nouvelle version va encore plus compliquer la tâche des développeurs ! Non contents d'avoir à donner des propriétés propres à Firefox, à Opera et à Internet Explorer 6, ces derniers devront désormais donner des propriétés spécifiques à Internet Explorer 7 ! Les développeurs de la version 7 du navigateur avaient dès le départ annoncé la couleur : les standards ne seraient pas une priorité ; on était prévenus. De quoi faire passer de belles nuits blanches aux développeurs...



Alors, pourquoi les navigateurs n'uniformisent-ils pas leurs moteurs de rendus ?

Des intérêts... Une envie d'imposer leurs propres standards... Mais ce n'est pas le principal problème. En effet, Microsoft est aujourd'hui balloté entre deux camps.

Internet Explorer occupant près de 70 % de parts de marché sur les sites traditionnel (43% seulement sur Net-Actuality), la plupart des sites sont développés pour avoir un rendu optimal sur ce dernier. Le problème est que, si Microsoft décidait de développer un nouveau moteur de rendu respectueux des standards, il « casserait le Web », puisqu'il imposerait ce mode de rendu beaucoup plus respectueux des standards à tous les sites qui ne les respectent pas forcément. Ainsi, ces derniers s'afficheraient mal, d'où l'expression de « casser le Web ».

Tout l'enjeu réside ainsi dans la nouvelle version du navigateur du géant de Redmond, qui devra supporter les normes du W3C et, en même temps, rester compatible avec les sites ne les respectant pas.

De suite, on comprend mieux pourquoi Google visait Internet Explorer lorsqu'il a annoncé les raisons pour lesquelles il a développé son propre navigateur : « débloquer le Web », comme paralysé par ces déficiences.



A qui la faute alors ?

Aux développeurs, qui privilégient la pratique à la théorie ? Aux développeurs, qui continuent d'assurer une compatibilité avec Internet Explorer 6 ? Aux sociétés, qui n'arrivent pas à uniformiser leurs technologies ? Aux internautes, qui ne privilégient pas les navigateurs respectueux des standards et qui ne mettent pas à jour leurs navigateurs ?



Le mot de la fin

Pour ce second édito, je souhaitais donc pousser un coup de gueule contre ces nouvelle versions, certes utiles, mais qui ne règlent pas un souci de fond présent depuis des dizaines d'années ! Pourtant, comme vous l'aurez remarqué, je n'ai pas été autant critique que j'aurais aimé l'être, car ce problème de rétrocompatibilité n'est vraiment pas quelque chose facile à cerner. En effet, s'il se caractérise généralement par des dysfonctionnements constatés sur des sites selon le navigateur utilisé, ses conséquences sont multiples, puisqu'il empêche notamment les développeurs d'implanter de nouvelles technologies à leurs sites.

Ainsi, seule une prise de conscience de l'ensemble de ceux qui font Internet (développeurs Web, développeurs de navigateurs, Internautes, etc.) pourrait régler ce fâcheux problème.

Pour prendre mon cas personnel, lors du développement de cette nouvelle version Net-Actuality, j'ai choisi de privilégier un rendu efficace sur tous les navigateurs. J'ai facilement passé des journées de travail afin d'arriver à mes fins, en utilisant des procédés parfois douteux, mais efficaces.

Comme de nombreux webmestres, j'ai longtemps hésité à utiliser les fameux PNG, car je ne voulais pas avoir un site au rendu piteux. J'ai donc dû utiliser un « hack JavaScript » permettant de pallier à cette absence d'IE. Malheureusement, ce dernier ralentit considérablement le chargement de la page.
Si vous nous lisez actuellement sous une ancienne version d'Internet Explorer ou de tout autre navigateur, vous aurez sans doute remarqué ce message :



Comme vous le constatez, contrairement à certains webmestres, j'ai décidé de ne pas laisser tomber le support des anciennes versions des navigateurs, ni inciter les visiteurs à migrer sous un navigateur que j'affectionne. J'estime, en effet, que votre choix a été fait en connaissance de cause et que je n'ai pas à le remettre en cause. Néanmoins, j'estime qu'une mise à jour, lorsqu'elle est possible (mettons de côté le cas des entreprises qui sont parfois bloquées), doit absolument être effectuée, afin d'améliorer la sécurité, le rendu et l'expérience utilisateur tout simplement. D'où cette sensibilisation que je me suis permis de mettre en place.

Alors que privilégier ? Une rétrocompatibilité ? Un rendu agréable à l'œil ? La rapidité ? Le navigateur le plus utilisé ? Les normes du W3C ? Le choix n'est pas si simple...

J'espère que cette chronique vous a plu, même si je n'ai pas pu être aussi exhaustif que je l'aurais souhaité et peut-être inexact sur certains points, n'ayant pas la science infuse.

Vos réactions et remarques sont les bienvenues !