A l'encontre de toute idée reçue, JavaScript n'est pas activé partout... et cela n'est pas toujours un choix de l'utilisateur.
En guise d'introduction
Pour rappel, JavaScript est un langage de programmation employé principalement dans les pages web.
Le langage date de 1995 et a connu des soucis d'incompatibilités à sa naissance, puisque Netscape et Internet Explorer développaient leurs propres fonctionnalités de leur côté (ECMAScript tente aujourd'hui de normaliser JavaScript par la norme ECMA-262).
JavaScript permet de créer des petits programmes indépendants (des scripts) afin de dynamiser une page web (vérification de formulaires, affichage de la date ou l'heure courante, déplacement / affichage / masquage de texte ou d'éléments, etc.)
Les navigateurs graphiques actuels prennent en charge, dans leur grande majorité, le langage JavaScript. Cependant, il existe des situations et des configurations où JavaScript n'est pas activé sur le navigateur du poste du visiteur.
Certaines statistiques annoncent un chiffre moyen et constant de 10% de postes où JavaScript n'est pas activé.
Du coup, une question revient fréquemment sur les forums de webmasters : pourquoi certains internautes n'activent-ils pas JavaScript ?
En guise d'explications
Commençons par rappeler que le Web se veut être universel et qu'il existe de nombreuses façons de surfer sur Internet différentes des classiques navigateurs graphiques. En clair, il n'existe pas que des utilisateurs sous PC avec Internet Explorer et un écran d'ordinateur.
De multiples autres médias, adaptés à un handicap, une situation ou un besoin, ne sont pas obligatoirement graphiques et n'activent pas obligatoirement les surcouches comme JavaScript. On peut y trouver les robots d'indexation des moteurs de recherche (Google, Yahoo!, MSN, etc.), les navigateurs textuels, les plages Braille pour non-voyants, les téléphones mobiles, les PDA, etc. Tous ces clients ne sont pas conçus pour exploiter JavaScript.
Ajoutons à cela le cas assez fréquent du poste dans une entreprise où, par peur d'attaques ou de virus, l'administrateur réseau a volontairement bloqué les scripts sur chaque machine de la société.
Et n'oublions pas les cas où l'utilisateur désactive volontairement (ou non) JavaScript sur son ordinateur. Soit par peur des virus, soit parce que certains sites web s'affichent mal ou sont ralentis par la présence de scripts mal programmés, soit pour tester son site web dans toutes les conditions s'il est concepteur de sites, soit encore... de façon involontaire par maladresse.
En vrac, voici une liste non exhaustive de différents cas expliquant la désactivation de JavaScript sur un poste client :
- désactivation de JavaScript sur un réseau, par un administrateur préoccupé par les questions de sécurité
- désactivation de JavaScript par un utilisateur ayant entendu dire que cela posait des problèmes de sécurité
- désactivation de JavaScript par un utilisateur maladroit ayant voulu bidouiller son Windows pour autre chose, et ne sachant plus faire marche arrière (on me demande très fréquemment de venir régler ce type de problème)
- désactivation de JavaScript en raison d'un problème de script sur un site précis consulté très fréquemment. L'utilisateur étend la mesure à tout les sites, pour faire au plus simple. Il existe des méthodes plus fines dans IE, Firefox avec une extension, Opera avec les userjs... mais très compliquées.
- désactivation de JavaScript parce qu'il pose fréquemment un problème d'accessibilité (bidules dynamiques et navigation clavier, par exemple)
- désactivation de JavaScript par un qualiticien qui teste systématiquement l'accessibilité et l'ergonomie du site sans JavaScript, parce que c'est son rôle
- désactivation automatique par certains logiciels de sécurité (antivirus, pare-feu, etc.) installés sur le poste
- etc.
Tout ceci ne concerne que la page web vue sous l'angle du document, et non de l'application en ligne.
En guise de synthèse
Outre que JavaScript n'existe pas dans différents cas de clients (navigateurs textes, robots d'indexation, etc), les utilisateurs peuvent avoir toutes sortes de raisons, bonnes ou non, d'avoir désactivé JavaScript. Simplement parce qu'il est désactivable. Cela va de la fausse manoeuvre (très fréquente) à l'agacement face aux scripts mals conçus ou intrusifs.
Mais l'important n'est en fait pas du tout dans ces raisons, ni dans le pourcentage totalement incertain de gens concernés (le "10%" est plus un symbole qu'une statistique fiable).
Le fond de la question est en effet simple : JavaScript est une option, tout comme CSS, ou comme Flash et autre plugin. On ne peut pas exiger l'activation d'une option comme condition d'un contenu accessible et interopérable.
Autrement dit, peu importe le pourquoi dans le détail : le contenu est primordial, l'aspect est important, tout le reste doit demeurer optionnel et ne pas se faire au détriment du contenu.
Ne soyons surtout pas extrêmistes pour autant : si JavaScript ne doit pas être un obstacle à l'information, il ne doit pas systématiquement être évité, surtout pour l'apport évident qu'il peut avoir en terme d'ergonomie.
Merci aux différents participants de cette discussion sur le forum Alsacréations : Laurent Denis, QuentinC, Gilles
Commentaires
Le coup de l'utilisateur lambda qui désactive javascript volontairement, je n'y crois pas vraiment. Comme s'il allait volontairement s'auto-flageller et voir les 3/4 de ses sites préférés lamentablement se croûter parce qu'il aura désactivé une option pour une question de principe (et le coup des virus, mouais). Les utilisateurs ne sont pas des intégristent, contrairement à ceux qui participent à ce billet ou au forum :)
ceci dit, surfant beaucoup sur mon téléphone mobile ou avec lynx depuis une console SSH distante, j'apprécie beaucoup les sites qui fonctionnent dans des conditions aussi "extrêmes".
Sont ici listés différents cas de figure, il n'est pas dit non plus que tout le monde fait comme ça, et il reste plusieurs "motivations" à la désactivation du JS qui sont très valable (tu en parle d'ailleurs dans ta dernière remarque :) )
Perdu :)
Je ne suis pas intégriste et pourtant j'utilsie NoScript : addons.mozilla.org/extens... la deuxième extension la plus téléchargée sur AMO!
Moi personellement ca me fais bien rigoler.
Car on nous dis le web du futur doit etre accessible, on utilise donc XHTML+CSS (jusqu'à la ca me vas). Par contre maintenant on nous prend le choux avec du Ajax par ci et du Ajax par la, ce qui à mon avis empeche l'accessibilité. Bien entendu, si on pense au 2 cas possibles XHTML+CSS ou XHTML+CSS+AJAX ca peux fonctionné, avec la charge de travail en plus, ce qui me fait rappelé le debut du web, lorsque on se tiré les cheveux pour faire fonctionner le site avec IE ou mozilla(car les 2 n'etaient pas du tout compatible)
@b_adele > Rappelons un point important : AJAX et toute autre surcouche peuvent être des choses FORMIDABLES pour apporter du confort et de l'ergonomie supplémentaire.
Bien utilisés, ils n'empêchent en rien l'accessibilité d'un site puisqu'ils agissent en surcouche (en clair : n'empêchent pas du tout la visite du site lorsqu'ils sont désactivés)
@ b_adele > ça n'est en même temps pas le propos de ce billet :/ (l'accessibilité et AJAX)
Bonsoir,
La problématique vient de ce que css soit une couche supplémentaire de html. Js, une autre. Ainsi de suite pour les autres langages. Donc on part du présupposé que HTML est fondamentalement bancal parce que nous avons besoins de couches optionnelles supplémentaires (desing, dynamisme, etc).
Une autre partie de la problématique vient aussi de notre propre comportement et habitude : pourquoi considérer un design comme une source de présentation non pas comme un langage en soi ?
Pourquoi un texte est considéré, dans notre monde, comme l'acmé de la transmission du savoir ? (je m'éloigne).
La question a poser serait donc celle-là : est-ce qu'un texte est le meilleur moyen pour transmettre une idée ?
La réponse est non quoique elle pourrait être oui d'où l'ambiguïté sur l'utilisation de ces langages supplémentaires et additionnels.
Pour ma part, je considère que le son offre un meilleur support pour la transmission de donnée ou autre mais en l'état actuel de notre technologie, il est quasi impossible de l'employer sur le net. Je rêve d'un site entièrement construit à partir de sons...
> jean marc
"Je rêve d'un site entièrement construit à partir de sons..."
et moi je cauchemarde ce que pourront en faire certains allumés en terme de jingle systématiques répétitifs intrusifs et pourquoi pas plus fort que ce qui devrait être entendu (ie obstructifs).
De plus je crois que le présupposé est bien que le html est parfaitement stable en lui même et qu'il s'agit avant tout de ne pas en saper l'assise.
Comme Thomas, j'utilise NoScript (téléchargée par plus de 200'000 personnes sur Mozilla Update et probablement plus encore sur le site de l'auteur), tout simplement en raison des abus généralisés de l'utilisation de Javascript par les webmasters.
La plupart du temps, Javascript est utilisé pour réduire la liberté du visiteur, lui imposer des publicités, empêcher le clic droit, ouvrir des popups sans l'avertir, etc. Sans javascript, il faut bien avouer que la navigation est bien plus confortables. Objectivement.
C'est dommage pour les quelques sites qui en font une bonne utilisation et qui sont injustement pénalisés (ils ne paraissent pas "mieux que les autres" alors qu'ils le sont).
Mais avec les dernières version de NoScript, qui peuvent "corriger" la plupart des liens "javascript:..." en vrais liens, il faut bien admettre qu'il n'y a pratiquement plus aucune raison d'activer javascript sur quelque site que ce soit (et en tombant sur un site où c'est nécessaire, il n'est pas très difficile de le boycotter).
Finalement, il ne faut pas oublier que pratiquement toutes les dernières failles de sécurité signalées dans Firefox étaient liées à javascript ;-)
Il est vrai qu'un message sonore a beaucoup plus d'impact qu'un texte (30% ai-je entenu). Mais à ce moment là, pourquoi pas un contenu vidéo, qui à l'évidence aura encore plus de puissance.
Dans tous les cas, n'importe quel média (texte, design, son, video, interactivité...) peut être bien ou mal employé, ce qui impliquera toujours que certains désactiveront ce qui les gène.
Il nous faut donc toujours proposer une alternative accessible.
Lâchez nous avec vos sons sur le web didju :D
Moi qui écoute de la musique en permanence, j'en serais bien attristé de voir ce style de choses sur le web. Moi qui a ma fac n'ait pas de son, idem...
Il existe une solution pour ça, les lecteurs d'écran ! (okay, hors de prix, c'est d'ailleurs une honte...)
>Raphael , je suis entierement d'accord avec toi puisque je le dis dans ma remarque précédente "Bien entendu, si on pense au 2 cas possibles XHTML+CSS ou XHTML+CSS+AJAX ca peux fonctionné".
Ce que je voulais dire en soit, c'est à l'époque les webdesigner résonné on dévéloppe pour IE (on se fout de la minorité). J'ai bien peur que ca se reproduire avec le Javascript(Ajax)
>Olivier, oup désolé de m'etre éloigné du sujet ;)
Il y a aussi les logiciels de sécurité comme "Zone Alarme" par exemple qui bloque parfois le javascript.
@ Morgan > remarque pertinente !
D'autant qu'on est vraiment ici dans un cas où l'utilisateur lambda n'y verra que du feu car il n'est généralement pas au courant de ce style de manip de la part de ses logiciels de protection.
Raphaël, il me semble que ça mérite d'être rajouté au billet en edit ça ;)
Ajax et Js sont etroitement lié, si on se casse le c.l a faire une interface avec ajax pour que le remplissage de formulaire soit plus simple et plus rapide, ce n'est pas pour en faire une deuxieme version qui marcherait sans JS.
Utilisé JS, Flash, une resolution > 800px de large ... c'est accepter de se privé d'un certain nombre de visiteurs, il est normal que les sites institutionels et administratifs soit valides/accessibles etc... Quand un particulier ou une societe fais ce choix, le point principal c'est d'en avoir conscience !
quand au fait que No-JS evite certaines publicités, certes certaines sont intrusives, mais c'est aussi le moyen de subsitance de nombreux webmasters, et offre un peu plus de diversité que les sites institutionels, les commercants et les 3 pages persos qui globalement peupleraient le web sinon.
A votre avis, le serveur et les 60 Go de traffic mensuel du site que vous lisez, ils sont payés comment ???
Pub et JS :/ fiiou je suis largué là !
On peut très bien faire de la pub sans JavaScript.
Si certe avoir conscience du fait qu'utiliser JavaScript sans alternative est déjà un minimum, s'en contenter est un choix mais que je ne ferais pas.
Pour Ajax, c'est encore autre chose, en plus du support du JS, ça nécessite le support d'XmlHttpRequest par le navigateur ce qui est loin d'être le cas tout le temps.
>>
Ajax et Js sont etroitement lié, si on se casse le c.l a faire une interface avec ajax pour que le remplissage de formulaire soit plus simple et plus rapide, ce n'est pas pour en faire une deuxieme version qui marcherait sans JS.
>>
C'est un peu le boulot du webmaster de se casser le cul en même temps pour que les visiteurs (ceux pour qui le site est fait) soient content. Et si ça demande le double de boulot, c'est comme ça. Pour ne faire qu'une fois le boulot, le faire simplement sans techniques dépendante de quelque chose de non maitrisable.
En fait ne pensez pas faire une page avec Ajax. Pensez faire une page fonctionnelle et ensuite pourquoi pas la faire la briller avec Ajax.
Un site peut en effet faire le choix de réduire volontairement son audience en écartant tels ou tels publics, du fait de son inaccessibilité. Notons qu'il réduit du même coup ses revenus, notament publicitaires, et qu'il se prive du coup, le plus souvent, de publics généralement jugés assez "rentables", tels les utilisateurs de mobiles... Sans compter les nombreux autres impacts de l'accessibilité sur l'économie d'une entreprise ou d'un projet Web (cf Pourquoi l'accessibilité numérique ?)
>>
C'est un peu le boulot du webmaster de se casser le cul en même temps pour que les visiteurs (ceux pour qui le site est fait) soient content. Et si ça demande le double de boulot, c'est comme ça.
<<
VRAI et FAUX !!! :-D
Si je prends l'exemple d'un site marchands, le but du webmaster est de s'assurer qu'une fois que le client a decidé d'acheter, il ira jusqu'au bout.
@olivier : "Raphaël, il me semble que ça mérite d'être rajouté au billet en edit ça"
> J'ai rajouté ce cas dans la liste
l'utilisateur lambda que je suis désactive en effet souvent Javascript, pour une raison toute bête : Firefox ne bloque pas 100% des popups, et sur un site où je vais souvent, il y en a ouvertes par js qui arrivent à passer... donc je désactive le js, du coup je me retrouve à surfer sur les sites ouverts dans les autres onglets sans js et ça me pose en effet problème pour certains.
Ce n'est que passager, certes, mais c'est tout de même drôlement ennuyeux, moi qui aime bien être multi-tâche dans ma navigation...
L'utilisateur lambda que je suis utilise MSIE pour diverses raisons, avec des parametres de sécurités assez élevés qui notamment empeche la plupart des machins estampillés ActiveX de s'éxecuter. Si les scripts js basiques fonctionnent, les Ajax mal dégradables qui ne vérifient pas si leur XmlHttpRequest est bien passée ne marchent pas.
interressant :)
entre les problemes css et le javascript non activé on se demande si on ferait pas mieux de faire des images...
@salemioche :
Tout à fait, ce qui signifie que tu es entièrement d'accord avec le billet ci-dessus ;) (si ce n'est que ce n'est pas vraiment le boulot du webmaster seul, c'est un peu plus compliqué). Par exemple:
cdiscount est le plus gros marchand (ou le 2eme) en France
pour rire, allez dessus sans flash, sans image, sans CSS et sans JS !!!
le niveau d'utilisation d'internet (et de sa comprehension ) d'un utilisateur moyen est tres inferieur a ce que vous imaginez !!!
j'edite glaces.org et j'ai recu un email d'un visiteur qui se plaignait de ne plus trouver sa glace au citron favorite au supermarché du coin. un ami edit code-reduction.fr, tous les jours il recoit des emails lui demandant catalogue, reclamation sur des commandes non livrées etc...
il existe toujours une facon adaptée et une detournée d'utiliser une technologie. JS saupoudré la ou il faut apporte un petit supplement d'ergonomie appreciable, Ajax peut simplifier le remplissage de formulaire... le popup me casse les c.... comme tout le monde.
JS est la techno la plus legere pour la publicité contextuel, qui est un des modeles les plus simples et rentables pour un site aujourd'hui, evite les images qui flashouille, le popunder, le popup, l'intersticiel ...
@salemioche : "JS saupoudré la ou il faut apporte un petit supplement d'ergonomie appreciable,"
Oui. Tout à fait, encore une fois.
C'est bien ce qu'on te dis : tu es tout ) fait d'accord avec le fond de ce billet.