Osez renoncer aux vieux navigateurs

le 11/10/2011 par Mickael Morier
Tags: Software Engineering

HTML5 et CSS3 sont désormais au cœur des discussions sur le développement Web. La question du support des navigateurs est souvent évoquée notamment pour le cas Internet Explorer. Les clients demandent encore souvent de supporter Internet Explorer 6 (IE6) alors que ce navigateur a plus de 10 ans. Si ce navigateur a été apprécié à sa sortie, il est devenu un cauchemar pour les développeurs Web tant il contient de nombreux bugs et ne respecte pas des standards comme CSS2. Est-il important de supporter les vieux navigateurs ? Y a-t-il des cas où on pourrait s'en passer ? Doit-on se focaliser exclusivement sur les navigateurs récents ?

Les vieux navigateurs font de la résistance

chart

Parts de marché des navigateurs en France en août 2011 (source: gs.statcounter.com)

Sorti en mars 2009, IE8 reste le leader des navigateurs en France avec 21 % de parts de marché. Cependant les quatre navigateurs suivants sont tous sortis il y a quelques mois et supportent de nombreuses fonctionnalités HTML5 et CSS3. On observe que près de 60 % des internautes français utilisent un navigateur récent qui supporte les dernières normes du W3C. Malheureusement il reste des utilisateurs sur les navigateurs IE6 (1,35 %) et IE7 (4,55 %) dont on connait la médiocrité du support de CSS2 et le nombre relativement important de bug d'implémentation. Pour information, ces navigateurs sont sortis respectivement le 27 août 2001 et le 18 octobre 2006.

En entreprise, les statistiques sont très différentes puisqu'en règle générale, un navigateur est imposé et souvent il s'agit d'Internet Explorer. IE6 est encore très présent même si des clients ont décidé de migrer leur parc vers IE8 en occultant totalement IE7. Mais rares sont les grandes entreprises qui autorisent l'utilisation d'un autre navigateur.

Internet Explorer, un navigateur trop lié à Windows

La plupart des navigateurs récents peuvent être installés sur une multitude de versions d'OS. Ce qui n'est pas le cas d'Internet Explorer où il existe une véritable dépendance entre Windows et le navigateur de Microsoft. Ainsi il est impossible d'installer IE9 sur Windows XP et IE10 ne sera disponible qu'à partir de Windows 7. Comme la part de marché de Windows XP est proche des 30%, ce n'est pas étonnant de voir le navigateur IE8 encore autant  utilisé.

Cette dépendance est relativement problématique pour les entreprises car si elles souhaitent migrer vers une version récente d'Internet Explorer, elles doivent envisager également une migration de la version de Windows. C'est la raison pour laquelle toutes les entreprises ne migrent que vers IE8 puisqu'elles n'ont pas encore migré vers Windows 7 pour d'autres raisons. La migration d'un système d'exploitation implique d'autres tests de non-régression à faire pourtant totalement décorréler de ceux d'un navigateur.

Ce lien fort est également pénalisant pour Microsoft car les supports de Windows et du navigateur sont liés. Le navigateur initial de Windows XP étant IE6, la firme de Redmond doit supporter IE6 jusqu’à la fin du support d’XP, c’est à dire jusqu’au 8 avril 2014. Près de 13 ans de support !

Doit-on encore supporter les vieux navigateurs ?

Sur Internet, la diversité des navigateurs utilisés par les internautes est importante. Des standards ont été établis par le W3C afin de rendre le Web accessible à tous quelque soit le navigateur utilisé. Les entreprises souhaitent encore qu'IE6 et IE7 soient supportés par leurs projets Web car ces vieux navigateurs sont encore présents dans leurs visites. Malheureusement supporter ces navigateurs implique de nombreuses contraintes :

  • Beaucoup d'efforts d'adaptation car ils n'implémentent pas correctement les standards. De nombreux développeurs estiment que cela représente un coût supplémentaire de 30%. Sur mon projet actuel dont l'IHM est très riche, on a estimé que ce surcoût approchait les 50%. Ce navigateur nous obligeait à créer beaucoup de CSS et JavaScript spécifiques à IE6.
  • Des performances catastrophiques dès que votre application Web possède un peu de JavaScript ou de modifications importante du DOM. Des scintillements et des ralentissements nuisibles à l'utilisateur sont observables sur ces vieux navigateurs. Pour information, il faut 20 secondes à IE6 pour réaliser SunSpider (test de performance JavaScript) alors que Chrome 14 et Firefox prenaient environ 250 ms. Sur Peacekeeper (test de performance rendu, manipulation DOM, etc.), IE6 n'obtient que 627 points alors que Firefox 7 et Chrome 14 obtiennent respectivement 5573 et  10109 points.
  • Impossibilité à utiliser HTML5 et CSS3 qui ajoutent de nouvelles possibilités et permettent des gains de productivité. Je vous invite à regarder la session USI HTML5 : quelles perspectives pour les entreprises ? pour en savoir plus.

De nombreuses contraintes avec ces vieux navigateurs pour très peu d’utilisateurs. Face à ce constat, les grands du Web ont fait leurs choix :

  • Google ne supporte Internet Explorer qu'à partir de sa version 8 sur ses produits Google+, Gmail, Google Docs et qu'à partir de sa version 7 sur Google Calendar et YouTube
  • Facebook ne supporte plus IE6 depuis plus d'un an
  • l'administration du CMS WordPress ne supporte plus IE6 depuis mai
  • Amazon n'assure plus la compatibilité avec IE6 des espaces d'administration de ses vendeurs

À moins que vous ne souhaitiez dépenser 30% en plus sur votre projet, arrêtez de supporter ces vieux navigateurs. Vous pouvez soit bloquer totalement l'accès comme le fait Google+ ou simplement prévenir l'internaute qu'il utilise un navigateur non supporté. Mais dans tous les cas, invitez vos utilisateurs à mettre à jour leur navigateur.

N'ayez pas peur d'utiliser des fonctions HTML5 et CSS3, des comportements dégradés sont prévus nativement. Si un navigateur ne comprends pas une propriété, il ne s'en préoccupe pas. Par exemple sur un vieux navigateur, un cadre aux coins arrondis aura les coins carrés ou encore un champ de saisie de type email deviendra un simple champ de saisie de texte. Ces comportements dégradés natifs feront l'objet d'un futur article.

Et si le navigateur de mon entreprise est IE6 ?

Le navigateur de nombreuses grandes entreprises est encore IE6 pour diverses raisons :

  • Certaines applications de leur SI ne fonctionnent que sur ce navigateur car les standards n'ont pas été respectés lors de sa réalisation.
  • Mettre à jour le navigateur imposerait de faire de nombreux tests de non-régression sur les applications du SI.
  • Et bien d'autres encore.

Cependant si certaines anciennes applications d'un SI retardent la migration d'Internet Explorer, ce n'est pas une raison pour pénaliser les nouvelles applications en endettant les développements et en privant les utilisateurs de fonctionnalités intéressantes. Internet Explorer n'est pas le seul navigateur, il est possible d'installer un navigateur récent tel que Firefox ou Chrome sur les postes des employés afin qu'ils bénéficient des avancés d'HTML5 et CSS3. Cela ne les empêchera pas d'utiliser IE6 pour les applications ne fonctionnant que sur cet ancien navigateur.

Une autre solution si vous ne souhaitez vraiment pas installer de navigateurs supplémentaires est le plugin Google Chrome Frame. Il permet d'utiliser le moteur de rendu du navigateur de Google dans IE6 à IE9. Les employés lancent ainsi le même navigateur mais suivant les applications accédées, le rendu sera géré par Internet Explorer ou le plugin Chrome Frame. Contrairement à l'installation d'un nouveau navigateur, l'installation de ce plugin ne nécessite plus les droits administrateurs.

Une autre alternative aux problèmes de droits administrateurs réside dans l'utilisation des Portable Apps de Firefox ou Chrome pour Windows. Ce système permet d'être autonome et de disposer d'un navigateur récent même sur une clé USB. Mais attention, les Portable Apps ne se mettent pas à jour automatiquement, il faut alors les télécharger à chaque nouvelle version pour être à jour. Cette solution n'est à utiliser qu'en dernier recours.

Faites le choix

Vous devez oublier de supporter IE6 et IE7 afin de profiter des avancées des standards du Web. Les grands du Web l'ont fait, les grandes entreprises françaises doivent aussi faire ce choix. Ne forcez pas vos employés à utiliser des vieux navigateurs qu'ils n'utilisent plus chez eux depuis longtemps, permettez leur d'utiliser un navigateur rapide avec des fonctionnalités avancées. N'endettez plus vos applications Web avec du code spécifique pour maintenir les vieux navigateurs. Ne vous bridez plus sur les fonctionnalités de vos applications Web sous prétexte d'être compatible avec les vieux navigateurs.