Ce sont les fêtes de fin d'année, une bonne période pour prendre du recul sur les choses. Par exemple, le fameux "j'en ai marre de IE6, ça me pourrit la vie". On va donc voir pourquoi on peut déjà l'abandonner, ce qu'on y gagne techniquement et peut-être financièrement.

Pourquoi c'est possible ?

La réflexion a commencé la semaine dernière sur Twitter (enfin sur Identi.ca). Ma réponse à ce cri de détresse était de faire un simple calcul que chaque société devrait faire :

Si l'argent que vous rapporte les utilisateurs de IE6 est inférieur à l'argent que vous investissez pour les avoir, alors oubliez IE6 et vous pourrez passer plus de temps à avoir un site plus agréable pour les autres utilisateurs.

Votre chiffre d'affaires sera inférieur, puisque vous perdez des clients (et encore, pas sur). Mais votre bénéfice augmentera. Bon, je ne vais pas vous expliquer comment calculer la rentabilité de votre entreprise, je n'en suis pas capable mais vous voyez l'idée.

Évidemment, je ne demande pas à tout le monde d'abandonner IE6 [1] , seulement si cela vous avantage. Mais réfléchissez, prenons un exemple vague : 20% du temps d'intégration consacré à IE6, 10% de visiteurs sous IE6 qui ne sont pas ceux ayant le meilleur taux de transformation en plus. Est-ce que ça ne vaudrait pas le coup de se passer de tout ça ?

Si vous décidez de passer le cap, n'expulsez pas les utilisateurs sous IE6. Les deux options à envisager sont :

  • Proposer une CSS très simplifiée pour IE6 afin d'avoir un style global portant vos couleurs, mais pas plus.
  • Fournir le même code mais en prévenant que vous n'avez pas tester et que ça peut péter à tout moment.

Et en complément, proposez d'autres navigateurs pour leur permettre d'avoir une expérience correcte.

Techniquement, qu'est-ce qu'on y gagne ?

Transparence alpha sur les PNG

IE6 ne supporte pas la transparence alpha sur les PNG. Il affiche un fond gris immonde pour les PNG24 ou considère tous les pixels avec un canal alpha comme transparents pour les PNG8. On a donc recours aux horribles filtres IE, immaintenables et lourds en performance. Et encore, ils ne sont utilisables que pour des backgrounds.

À partir de IE7, plus de problèmes, on utilise les PNG que l'on veut, où on veut, roulez jeunesse ! Et cette transparence est très utile pour des ombres, des dégradés, s'adapter à vos différentes couleurs, etc.

Une palette étendue de sélecteurs

Avec ces sélecteurs étendus, on évite beaucoup de trifouillages de HTML. Par exemple, plus besoin de classes spéciales pour sélectionner input[type=submit] ou html[dir=rtl] grâce aux sélecteurs d'attributs. Vous pouvez aussi cibler le premier enfant avec :first-child.

Plus de contrôle aussi grâce au sélecteur adjacent (h1+p) ou au sélecteur enfant (body>div). Pour illustrer une image avec légende, vous pourrez utiliser des sélecteurs simples tels .legend > img et .legend > img + p.

Et mon préféré, les classes multiples. Pouvoir identifier un élément grâce à .menu.active est très pratique. Pas besoin d'ajouter un élément englobant pour contourner cette absence de IE6.

Position fixe et background fixe

Peu de sites s'en servent mais ça peut-être bien utile. Pour avoir une interface toujours sous l'œil de l'utilisateur par exemple. Ou encore avoir une entête de liste toujours visible. C'est une possibilité de design sous utilisée, donc à vos claviers.

:hover partout

Avec IE6, :hover ne fonctionnait que sur les balises <a>. L'avoir sur tous les éléments vous permet de mettre en avant des parties de votre interface au fur et à mesure.

min- max-width et min- max-height

Des design un peu plus souples grâce à cela. Je me rappelle en avoir souvent eu besoin pour dimensionner correctement des images uploadées par les utilisateurs.

De meilleures performances

Vous êtes assurés d'avoir des visiteurs avec un navigateur plus performant. Du coup, vous pouvez utiliser des techniques plus lourdes sans que ça pose problème. Par exemple, IE7 ne passe plus par un ActiveX pour faire des XHR/Ajax.

Moins de bugs !

C'est certainement une des parties les plus intéressantes. Moins de temps à se prendre la tête, moins de temps en QA, moins de machines pour tester.

Avec cela, vous pouvez apporter un site de meilleure qualité, plus léger pour vos visiteurs, plus léger pour votre bande passante et beaucoup plus facile à faire évoluer pour vos développeurs.

Et en plus, on peut gagner plus !

Si vous abandonnez IE6, je vous conseille de communiquer sur cet abandon. Pourquoi ? Je suis persuadé que les technophiles tombant sur votre communication anti-IE6 la relaieront. Il y a une telle haine de IE6 chez les gens passionnés d'Internet que vous en ferez peut-être des clients ou alors juste des relais d'informations. En tout cas, c'est la communication la moins chère du monde, puisqu'en développant moins de code, vous augmenterez votre visibilité.

Le mot final : envisagez sérieusement de ne plus développer pour IE6 en vous appuyant sur des chiffres. Si votre contexte vous permet l'abandon de IE6, vous rendrez service à vous même, vos pairs et vos utilisateurs.

Notes

[1] même si ce serait sacrément le pied