Ces derniers temps, je travaille sur le site internet du collège. Du coup, j’ai moins de temps pour le mien tiens.

Bref, j’y travaille donc et je rajoute quelques petits liens utiles comme des liens vers l’Inspection Académique, le Bulletin Officiel, le site académique… que des sites qui ne sont visités que par les personnels de l’Éducation Nationale en somme.

Vu que je fais les liens, je jette un œil au sites sus-cités. Et là, paf!, un message d’erreur que je ne peux m’empêcher de partager ici avec vous :

Alors là, bien joué les gars ! C’est bien la peine d’avoir un site XHTML 1.0 valid (bel effort, soulignons-le) si c’est pour mettre à la porte tous les visiteurs qui possèdent un navigateur autre qu’Internet Explorer 8 ou Firefox 3.

Si vous utilisez un navigateur alternatif comme Chrome ou Opera (dernières versions, je précise au cas où), vous êtes redirigés sur une page avec le message suivant :

  • Affichage

    Le site académique et les applications informatiques s’affichent correctement, feuilles de style et contenus dynamiques, pour Internet Explorer 8 et Mozilla Firefox 3.

    Les anciens navigateurs, en particulier Internet Explorer 6 dont la sécurité n’est plus mise à jour pour Windows XP, posent des problèmes d’affichage.

    Pour obtenir Internet Explorer 8, les mises à jour de Windows doivent être effectuées.

  • Remarques

    Avec Windows 95 et 98, vous devez utiliser Mozilla Firefox 2
    Avec Windows 2000, utilisez Mozilla Firefox 3
    Avec Mac OS X et Linux, utilisez Mozilla Firefox 3

C’est vrai que les gens adorent qu’on leur dicte quel navigateur utiliser. Et puis recommander IE8 pour la “sécurité”… euh comment dire ? Premièrement, on n’y croit pas. Deuxièmement, on sait bien que c’est pour éviter les hacks CSS pour IE6. Je voudrais également bien savoir qui utilise Windows 95 en 2010, ça m’intéresse beaucoup !

Le problème : tous les navigateurs sont testés alors que seuls deux sont concernés

Demander à ce que certains navigateurs soient mis à jour, d’accord, mais il ne faut pas prendre en otage tous les visiteurs qui utilisent d’autres navigateurs pour visiter le site. Et recommander uniquement deux navigateurs pour l’ensemble des systèmes d’exploitations (et des mobiles), c’est se moquer du monde.

Voilà pour la critique. Maintenant, je propose une solution possible. En regardant le fichier styles/scripts.js, on y découvre le code qui gère la détection du navigateur (vers la ligne 6694) :

 function detect()
 {
 var browser=navigator.appName;
 var b_version=navigator.appVersion;
 
    if (b_version.lastIndexOf("6",30)!=-1) {
       alert("Pour des raisons d'affichage et de s1curit1, vous devez utilisez les derniers navigateurs Internet Explorer 8 ou Firefox 3");
       var answer = confirm("Voulez-vous ouvrir la page 'Configuration et logiciels requis'")
       if (answer){
	  document.location = "configuration.html";
       }
   }
} 

Ce code est évidemment très incomplet : il ne détecte que la version du navigateur, avec navigator.appVersion en plus, ce qui est une hérésie vu que cette valeur est erronée la plupart du temps. De plus, le nom du navigateur ainsi que l’OS sont totalement ignorés, ce qui est plutôt fâcheux : tous les utilisateurs d’autres navigateurs auront droit à un avertissement qui ne les concerne pas !

La solution : tester uniquement les navigateurs concernés

Voici donc ma version :

 function detect()
{

   /* Browser/Version Detector by Matt - (c) www.skyminds.net */

   // on teste l'user-agent pour Firefox/x.x ou Firefox x.x
   if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ 
      // on capture le numero de version x.x
      var ffversion=new Number(RegExp.)
      if (ffversion<3) { 
         alert("Pour des raisons d'affichage et de s1curit1, vous devez mettre 0 jour votre navigateur vers Firefox 3.");
         var answer = confirm("Voulez-vous ouvrir la page 'Configuration et logiciels requis'")
      }
   }

   // on teste l'user-agent pour MSIE x.x
   if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
      // on capture le numero de version x.x
      var ieversion=new Number(RegExp.)
      if (ieversion<8){
         alert("Pour des raisons d'affichage et de s1curit1, vous devez utiliser mettre 0 jour votre navigateur vers Internet Explorer 8.");
         var answer = confirm("Voulez-vous ouvrir la page 'Configuration et logiciels requis'")
      }
   }
   
   if (answer){
      document.location = "configuration.html";
   }

} 

Voilà, c’est quand même plus propre : si la version de Firefox est inférieure à 3 ou si celle d’Internet Explorer est inférieure à 8, alors la boîte d’avertissement concernant la mise à jour nécessaire s’affiche. Dans le cas contraire (navigateurs à jour, ou navigateurs autres que ceux testés), rien ne s’affiche et c’est normal.

Si l’un des admins du site de l’Académie passe par ici… vous savez comment remédier à ce problème. Je peux vous transmettre mon NUMEN pour la prime de récompense de la chasse au bug aussi.

Pour développer votre projet WordPress ou Woocommerce, faites appel à mon expertise pour réaliser un site rapide, performant et fonctionnel.

Contactez-moi
A lire :  Eliminer le cheval de troie MSN qui touche Facebook

Si vous avez trouvé une faute d’orthographe, informez-nous en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée s’il vous plaît.

Articles en rapport:

Le site de l’Académie de Créteil n’accepte que deux navigateurs : Internet Explorer et Firefox

par Matt Lecture: 3 min
3

Pin It on Pinterest

Share This

Spelling error report

The following text will be sent to our editors: