Pages :
(reprise du message précédent)

Merci de vos réponses
Comme on le voit très bien dans la réponse de Seven tears, c'est bien pratiquement à chaque moment qu'on doit se poser la question "est-ce que ma f... fonction est supportée par ce f... navigateur?"

Il en résulte un code incompréhensible, le pompon étant tenu par

function addEvent(el,ev,listener){ // élément, nom de l'événement sans "on", listener
  if(el.addEventListener){
    el.addEventListener(ev,listener);
  } else {
    el.attachEvent("on"+ev, function(){return listener.apply(el, arguments);});
  }
}

Je crois que je vais tout simplement écrire un code qui marche uniquement sur les navigateurs modernes et, en testant sur el.addEventListener, laisser les utilisateurs d'antiquités cliquer sur le bouton de fermeture de la fenêtre.
Après tout, c'est surtout gênant pour les utilisateurs de téléphones et tablettes, et autant que je sache il n'y en a pas qui tournent sous les vieilles versions de IE Smiley cligne
Bonjour à tous
J'ai modifié mon code selon les recommandations de Seven tears que je remercie particulièrement.
Tout marche bien, en apparence du moins, sur tous les navigateurs auxquels je peux accéder... sauf un point qui ne semble pas directement lié à ce problème de gestion des évènements et pour lequel je vais faire un nouveau sujet.
Bien entendu je ne peux pas tester sur les vieilles versions de IE, il ne reste qu'à croiser les doigts et avoir une solution de repli en cas de problème.
Bonsoir,

Un petit détour par l'accessibilité pour vous demander, s'il vous plâit, de mettre un alt distinct sur chaque zone cliquable, et non pas un alt global (qui ne sert à rien sur une image à zones cliquables multiples).


Sinon, pour revenir au débat principal qui vous occupe: on est quand même en 2017 hein.

La fonction addEventListener fonctionne de la même façon sur tous les navigateurs à partir de IE9.
Les seuls qui n'ont pas IE9 sont ceux qui sont encore à Windows XP. Windows XP, qui, pour rappel, est officiellement mort depuis 2014. S'il y a encore quelques réfractaires, il ne vont pas tarder à disparaître définitivement en faisant le grand saut directement vers Windows 10.
Personne n'a de téléphone ou de tablette Windows XP puisque la première véritable version de Windows pour mobile est Windows Phone 7.
Reste les périphériques qui ont Windows CE, bien souvent encore embarqués avec un genre d'IE6 ou IE7. Parmi ceux qui ont Windows CE, il y a des bloc-notes braille (qui sont toujours vendus avec ce système à un prix exhorbitant), des vieux PDA datant du siècle passé, ou encore des bornes de gare/mairie/aéroport/musée. Probabilité d'aller visiter un site parlant d'égyptologie avec un de ces appareils ? Quasi nulle si vous voulez mon avis.

Maintneant je peux encore continuer en disant que même sur WindowS 7, il ne doit plus y en avoir tant que ça qui ont IE9... les mises à jour sont de plus en plus automatiques au point que parfois on s'en rend tout juste compte.

Donc il faut arrêter de prendre peur avec la compatibilité des navigateurs. Pour les dernières fonctionnalités HTML5 ou les dernières évolution de JavaScript (ECMAScript6), oui, il faut faire très attention et ça peut être compliqué; mais plus du tout pour les trucs de base comme le traitement du DOM.
Personnellement j'irais même jusqu'à dire que JQuery est devenu totalement inutile aujourd'hui.
Message à supprimer, désolé pour le doublon. Ce serait bien de ne mettre le champ de réponse que si on est sur la dernière page, ça m'éviterais de ne me pas me rendre compte qu'il y avait une page 2.
Modifié par QuentinC (14 Mar 2017 - 22:39)
Modérateur
QuentinC a écrit :

Personnellement j'irais même jusqu'à dire que JQuery est devenu totalement inutile aujourd'hui.
Ce que j'aime entendre dire ça Smiley biggrin
Modérateur
Greg_Lumiere a écrit :
Ce que j'aime entendre dire ça Smiley biggrin

Mouais. Que jQuery ne soit plus nécessaire, d'accord. De là à qualifier la librairie d'inutile c'est faux et réducteur.

Si jQuery n'apporte plus rien sur la sélection d'éléments du DOM, pour ce qui est de la manipulation, actuellement c'est soit au travers de spécifications expérimentales soit dans la douleur de codes imbuvables.

Sans parler du reste: gestion de promesses (discutable mais quand même), de queues, ajax, etc. Il y a aussi la question de l'écosystème et des extensions autour de jQuery (plugins, jqueryUI) qu'il serait stupide de rejeter avec l'eau du bain.

Il convient plutôt de se poser la question de savoir si jQuery apporte quelque chose dans un projet ou non.
Modifié par kustolovic (15 Mar 2017 - 11:36)
Alors s'entend, quand je disais devenu totalement inutile, c'est bien sûr dans le secteur de la manipulation du DOM.

Pour le reste, c'est sûr qu'il y a des plugins UI qui sont toujours utile; même si je n'en cautionne pas le 99.9% parce qu'ils ne sont que moyennement accessibles...

l'exemple typique du plugin pas accessible qui m'énerve par dessus tout parce qu'il est ultra courant, c'est celui de la liste déroulante parce que <select> fait la même chose mais c'est trop ringard. La sélection au clavier, peu la font correctement jusqu'au bout, et Alt+Flèche bas quasiment personne ne connaît. Comportements random garantis quand on n'utilise pas la souris.
ET bizarrement les nouveaux éléments de formulaire HTML5, solution ultime pour des formulaires plus riches et plus accessibles, bien peu de monde semble les apprécier, et les navigateurs ne semblent pas pressés de les implémenter, c'est bien dommage.
Modifié par QuentinC (15 Mar 2017 - 19:07)
Modérateur
Ne prenez pas la mouche Kustolovic, mon intervention ne dénote pas d'une prise de position absolue.

Toutefois je suis convaincu que la réponse à une problématique se doit d'être réfléchie et proportionnelle à l'effet désiré. Ainsi je trouve stupide - à titre d'exemple qui se veut volontairement exagéré - de charger une librairie pour mettre un bout de texte en gras alors qu'un langage natif est apte à le faire le plus simplement du monde.

On croise souvent ces maximes qui donnent bien du sens à mes propos et que j'affectionne "c'est comme sortir le bazooka pour tuer une mouche" et "construire une centrale nucléaire pour allumer une ampoule".

Vous l'aurez compris, tout est question de proportion et d'une réponse adaptée à la problématique.

C'est pourquoi je me réjouis lorsque je constate que d'autres semblent rejoindre ma pensée.

Bien sûr il ne s'agit pas de "vider l'eau du bain" mais seulement de la filtrer pour en obtenir un nectar pur et délectable.

Ce raisonnement peut d'ailleurs être appliqué à bien des domaines comme de l'utilisation d'un CMS ou non, de l'utilisation d'un pré-processeur, de l'utilisation d'un hébergement dédié... et même être transposé dans la vie de tous les jours.

Dans tous les cas, à votre dernière phrase, je vois que nous sommes d'accord pour dire que nous sommes d'accord Smiley smile
Modérateur
Hello PapyJP,

Une petite question parallèle...
Pouvons-nous connaitre les stats navigateurs/versions de tes utilisateurs ? Ca m'intéresse de connaitre les stats pour ce profil d'utilisateur Smiley smile

Très bonne journée !
Yordi a écrit :
Hello PapyJP,

Une petite question parallèle...
Pouvons-nous connaitre les stats navigateurs/versions de tes utilisateurs ? Ca m'intéresse de connaitre les stats pour ce profil d'utilisateur Smiley smile

Très bonne journée !


Ça, c'est une excellente idée!
Je vais regarder Google et je vous donne le résultat.
Voici le relevé des compteurs:
Chrome:  2031
Safari: 869
Firefox: 560
Internet Explorer: 363
	Version 11.0: 328
	Version 10.0   12
	Version 9.0: 8
	Version 8.0: 13
	Version 7.0: 2
Edge: 194
Android Browser: 46
Safari (in-app): 41
Android Webview: 38
Opera Mini: 38
Opera: 35

La bonne nouvelle, c'est qu'il n'y a plus de version 6, mais il reste tout de même 15 visites sur des versions < 9.0, soit 5% des visites sous IE
Modérateur
PapyJP a écrit :
La bonne nouvelle, c'est qu'il n'y a plus de version 6, mais il reste tout de même 15 visites sur des versions &lt; 9.0, soit 5% des visites sous IE

Avoue que c'est tes visites de test !!!! Smiley lol
_laurent a écrit :

Avoue que c'est tes visites de test !!!! Smiley lol

Hélas non! je n'ai même plus ces versions disponibles. Smiley biggrin
Modérateur
Super, merci pour ces chiffres !
Par contre tu te trompes un peu en disant 5% pour IE8 et moins...

Tu as un total de 4578 users et seulement 15 sur ces vieilles versions (IE8 et -). Ce qui te fait 0,3%... En ajoutant les 20 personnes qui utilisent encore IE9 et 10, tu arrives tout de suite à 0,7% pour IE10 et moins !

A ta place, je n'ai aucun doute. J'utilise les dernières recommendations, j'allège mon code, je gagne en lisibilité pour que la vie soit encore plus belle Smiley smile
5% des utilisateurs IE, soit 0.3% des utilisateurs, ça fait effectivement très peu, mais pour ces personnes c'est 100% du site qui risque de ne pas être accessible.
En fait il n'y a pas beaucoup de choses qui soient impactées, du moins je l'espère

Ce que je vais recommander au propriétaire du site de faire, lorsque nous déciderons de migrer le site officiel vers la version de tests que nous préparons depuis près de 2 ans, c'est d'envoyer un message aux habitués pour annoncer la nouvelle version, dire qu'elle est là pour être compatible avec les nouveaux moyens d'accès (tablettes et téléphones), que nous avons fait notre possible pour que ce soit compatible avec les anciennes versions des navigateurs, mais que nous ne pouvons pas en être sûrs à 100%, de leur recommander de passer sur les versions les plus récentes de leur navigateur favori et de nous signaler tout problème qu'ils pourraient rencontrer.
Je ne crois pas que nous puissions aller plus loin.

Auriez vous une recommandation à faire pour l'affichage d'un message qui serait déclenché au chargement d'une page, pour recommander aux utilisateurs d'anciennes versions de passer à une version plus récente?
Pour ne pas les inonder de messages de ce genre, y a-t-il un autre moyen que de mettre un cookie signalant que le message a déjà été affiché? Ce site met en avant le fait qu'il ne met pas de cookie sur les navigateurs des utilisateurs, il serait contre productif d'en mettre un.
Peut être une commande AJAX en background qui lance un script PHP qui fait le job et note l'adresse IP de l'utilisateur dans une table?
PapyJP a écrit :
Pour ne pas les inonder de messages de ce genre, y a-t-il un autre moyen que de mettre un cookie signalant que le message a déjà été affiché? Ce site met en avant le fait qu'il ne met pas de cookie sur les navigateurs des utilisateurs, il serait contre productif d'en mettre un. Peut être une commande AJAX en background qui lance un script PHP qui fait le job et note l'adresse IP de l'utilisateur dans une table?


A mon humble avis, c'est contre productif de ne pas utiliser de cookie dans ce cas. Je comprends pas l'intérêt de vouloir les éviter à tout prix, mais c'est une autre question. Sinon, utiliser l'adresse IP ce n'est pas une bonne solution à moins de la coupler au port source. Tout dépends de la configuration réseau, mais potentiellement, derrière une adresse IP peut se cacher N navigateurs sur M postes. Et dans ce cas, seul le premier visiteur aura le message d'avertissement.
a écrit :
Auriez vous une recommandation à faire pour l'affichage d'un message qui serait déclenché au chargement d'une page, pour recommander aux utilisateurs d'anciennes
versions de passer à une version plus récente?


Ce genre de message est de toute façon au mieux inefficace, au pire frustrant.

Il n'y a guière que deux types de personnes qui traînent encore ces vieilles bouses:
* ceux qui n'y connaissent rien et qui ne savent pas se mettre à jour
* Ceux qui n'ont pas le choix (par exemple ceux qui sont dans une entreprise ou une école complètement dépassée, ou ceux qui ont un XP cracké)

C'est toujours difficile de poser des limites, mais 0.7%, ça me paraît tolérable.
D'autres n'attendent pas de descendre autant avant d'arrêter le support des anciennes versions.

De mon côté je vois que j'ai aussi environ 1% de IE <= 10, dont... un mec tout seul avec IE4.1, il a du courage.
Modifié par QuentinC (21 Mar 2017 - 19:24)
Pages :