Recevez les mises à jour gratuites du blog par Email : »» Garanti sans spam indésirable ««

Comment boycotter Internet Explorer 6

de Mimie le 24 août 2010

Rubrique : Programmation

Je vous ai présenté dernièrement la possibilité pour un développeur de « travailler correctement » avec IE6 (IE7.js : Comment rendre Internet Explorer utilisable), aujourd’hui c’est tout le contraire, voici le moyen simple que j’ai mis en place sur mon site personnel sur Magic l’Assemblée permettant d’empêcher les internautes utilisant IE6 de naviguer sur mon site.

© http://www.webazia.fr

© http://www.webazia.fr

Pourquoi ?

Outre le fait que ce navigateur inclus de nombreuses failles de sécurités, le problème majeur d’Internet Explorer 6 est qu’il est très peu soucieux des normes du W3C. C’est donc devenu un casse-tête pour tous les développeurs devant faire tourner leur application (ou site) sur ce navigateur particulièrement, le label « optimisé pour Internet Explorer » sur certains sites est la conséquence de ceci.

L’arrivée de navigateurs modernes et respectant les normes du W3C, comme Firefox, Chrome, Safari ou Opéra, ont largement contribué au recul de IE toutes versions confondues. Si bien que les concepteurs de sites web sont obligés d’inclure des quantités de bidouillages pour tenir compte des spécificités de IE6 (d’ailleurs IE7 n’est guère mieux).

© http://ie6.forteller.net

© http://ie6.forteller.net

Son utilisation ne cesse de diminuer, allant de 90% en 2002 à 15% en 2010, nous ne pouvons que nous féliciter de cela, et ce n’est pas prêt de s’arrêter car de nombreux sites à très forte audience ont décidé de ne plus supporter IE6 : Youtube, DailyMotion, Gmail, Facebook ou Twitter, une décision basée principalement sur le coût supplémentaire que nécessite la maintenance du code sur ce navigateur vieux de plus de 9 ans.

Plus radical qu’un simple bandeau de non support d’IE6 indiquant à l’utilisateur que son navigateur est obsolète mais le laissant tout de même naviguer sur le site, voici donc les quelques lignes à inclure dans votre site pour définitivement mettre un terme aux internautes utilisant ce navigateur totalement démodé.

Code à insérer

Voici le moyen de détecter qu’un internaute visite votre site à l’aide d’Internet Explorer 6 et si tel est le cas l’envoyer sur une page de votre site, faite sur mesure, lui indiquant qu’il lui est impossible de visualiser le contenu de votre site.

Il vous suffit pour cela d’insérer dans la balise <head> de votre page ce bout de code :

- soit une redirection par la balise META :

      <!--[if lte IE 6]>
      <meta http-equiv="refresh" content="0; url=ie-6-non-supporte.html" />
      <![endif]-->

- soit une redirection par l’exécution d’un script javascript :

      <!--[if lte IE 6]>
      <script type="text/javascript">
        /* <![CDATA[ */
          // Redirects any visitor using Internet Explorer 6 (or lower)
          window.location = "ie-6-non-supporte.html";
        /* ]]> */
      </script>
      <![endif]-->

Voici à quoi peut ressembler une telle page :

© http://www.eveille.fr

© http://www.eveille.fr

Cet article a été écrit par :

– qui a déjà rédigé 123 posts sur Des Geeks et des lettres.

Passionné d'informatique et développeur JavaEE de métier, je me consacre principalement à écrire des billets sur les sujets du Web et de la programmation Web. Ce blog est un espace qui me permet de partager mes découvertes avec vous et me sert accessoirement de pense bête !

Contacter l'auteur

Jetez aussi un oeil sur :

{ 11 commentaires… à vous de vous exprimer ! }

1 Greg août 24, 2010 à 20 h 03 min

D’un côté je n’aime pas mettre de côté une minorité (lol), de l’autre j’aime le monde du free, de l’open source et de la coopération. Bref je sais pas si c’est bien mais ça a l’air de vraiment bien fonctionner :)

Répondre

2 meduz' août 24, 2010 à 20 h 05 min

C’est une méthode qui commence vraiment à émerger depuis 2010, et dont j’encourage le choix depuis plusieurs années déjà. Si les gens sont encore sur de vieux navigateurs, dépenser de l’énergie à les conforter dans leur ignorance en bidouillant, c’est vraiment un mauvais plan.

L’information, c’est un peu plus intéressant déjà : « votre navigateur est vieux, le site ne vous sera pas agréable ; de bons navigateurs gratuits existent aux adresses suivantes, etc. »

Même IE 7 doit être jeté. Pour le 8, l’effort d’ajustement est bien moindre et reste raisonnable. Cependant, il reste un navigateur pas terrible par rapport à ses concurrents.

H.s. : un fil de syndication pour les commentaires serait cool :p.

Répondre

3 Mimie août 25, 2010 à 0 h 25 min

@meduz’ : l’information ou le bandeau ne sont pas suffisant pour moi, je pense qu’il faut totalement rejeter ce navigateur, le script est efficace en ce sens :)

Répondre

4 meduz' août 25, 2010 à 7 h 03 min

Oui, tout dépend de la vocation du site web. Perso, je gère ça côté serveur avec une fonction php qui s’occupe de vérifier le USER_AGENT (j’ai fait une indentation avec des tirets pour le confort de lecture) :
[php]
function browser()
{
$pos = strpos($_SERVER['HTTP_USER_AGENT'], "MSIE");
// on cherche MSIE dans la string du USER_AGENT

if($pos != FALSE)
{ // on a trouvé IE
$ms_version = substr($_SERVER['HTTP_USER_AGENT'],$pos+5,3);
// on cherche la version dans la string (IE "x.x")
if ($ms_version > "7.0")
{
return 1; // au-dessus de la 7.0, bon browser
}
else
{
return 0; // en-dessous, q+
}
}
return 1; // on n’a pas trouvé IE
}
[/php]
Après, on fait ce qu’on veut de la fonction : interdiction totale, avertissement…

Répondre

5 Mimie août 25, 2010 à 8 h 03 min

Merci pour ton script meduz’, j’ai édité ton commentaire en utilisation l’indentation automatique du code avec la balise : [plain][php] … [/php][/plain]
Je préfère tester le navigateur de l’internaute côté client, mais ton option côté serveur est intéressante, merci.

Répondre

6 meduz' août 25, 2010 à 12 h 32 min

De rien, et mes excuses pour la mise en page, j’ignorais l’existence de la balise php.

Chaque méthode a sa faiblesse : côté serveur, le navigateur peut avoir balancé n’importe quoi comme chaîne de caractère pour le HTTP_USER_AGENT alors que (attention, je vais peut-être dire une bêtise, je connais rien au JS), côté client, le JavaScript peut être désactivé sans qu’on ne puisse avoir aucune maîtrise. De plus, on alourdit quelque peu la page (une broutille).

Ceci dit, on peut toujours employer les deux méthodes, ce qui réduit les chances de se foirer ;p.

Répondre

7 sylv185 août 25, 2010 à 12 h 54 min

Ah oui c’est pas mal comme solution.

Un peu radical, mais bon on en a marre ce cet IE6 !!!!

Répondre

8 Mimie août 25, 2010 à 13 h 02 min

@meduz’ : la redirection par la balise META est suffisante, ce qui fait que le code javascript peut-être supprimé et donc la détection + la redirection se fait alors entièrement en HTML.
@sylv185 : +1 !!!

Article mis à jour.

Répondre

9 Greg août 27, 2010 à 14 h 00 min

Dès le 15 septembre prochain, les utilisateurs d’IE6 n’auront plus accès au tchat de Facebook

Répondre

10 Mimie août 27, 2010 à 14 h 10 min

Disons qu’ils n’auront pas accès aux nouvelles fonctionnalités du service mais pourront tout de même tchatter.

Répondre

11 Mimie mai 10, 2011 à 10 h 21 min

Ah bah voilà une idée qu’elle est bonne ^^
Voici un petit script jQuery qui fera planter votre IE6 de manière radicale, rien que ça ! +1

Répondre

Laissez un Commentaire

Article précédent:

Article suivant: