web-dev-qa-db-fra.com

Quelle est l'importance de la dégradation gracieuse de JavaScript?

Les développeurs Web devraient-ils continuer à déployer des efforts pour améliorer progressivement nos applications Web avec JavaScript, en veillant à ce que les fonctionnalités se dégradent gracieusement, garantissant ainsi l'accessibilité? Ou devrions-nous consacrer ce temps à de nouvelles fonctionnalités ou à d'autres domaines de développement?

Le sous-texte de cette question serait: Combien de nos clients/clients/utilisateurs utilisent nos sites Web ou applications avec JavaScript désactivé? Avez-vous des projets avec des exigences qui exigent spécifiquement la fonctionnalité JavaScript (presque tous les miens le font), et ces exigences exigent-elles également une dégradation gracieuse?

Pour poser cette question, j'ai tiré programmers.stackexchange.com sans JavaScript activé et j'ai été accueilli avec ce message: "Programmeurs - Stack Exchange fonctionne mieux avec JavaScript activé". Il était difficile de se connecter, même si le site semblait généralement bien fonctionner. (Je n'ai pu voter pour aucune question.)

Je pense que c'est une approche satisfaisante du développement. Imaginez l'effort impliqué pour faire fonctionner toutes les fonctionnalités du site avec du HTML ancien et une logique côté serveur. D'un autre côté, je me demande combien d'utilisateurs ont été aliénés par cette approche.

Nous avons tous été formés (au moins les bons développeurs parmi nous) à utiliser l'amélioration progressive et à garantir que les fonctionnalités dynamiques de nos applications Web se dégradent avec élégance. Cette amélioration progressive pisse-t-elle juste dans le vent, ou certains de nos clients utilisent-ils réellement certains services Web sans activer JavaScript?

89
Stephen

J'utilise NoScript mais j'inscris sur la liste blanche tout site que j'ai l'intention d'utiliser.

Lorsque vous installez NoScript, JavaScript, Java, Flash Silverlight et éventuellement d'autres contenus exécutables sont bloqués par défaut . Vous pourrez autoriser l'exécution JavaScript/Java/... de manière sélective, sur les sites de confiance. Vous pouvez autoriser un site à exécuter des scripts temporairement, si vous surfez simplement de manière aléatoire ou permanente, lorsque vous le visitez souvent et que vous lui faites vraiment confiance. Cela signifie que NoScript apprend de vos propres habitudes de navigation et a tendance à disparaître en arrière-plan après un certain temps, mais il revient rapidement pour sauver votre journée si vous tombez sur une page Web malveillante.

Lorsque vous parcourez un site contenant des scripts bloqués, une notification, similaire à celles émises par le bloqueur de fenêtres contextuelles, s'affiche.
Regardez-le ou l'icône de la barre d'état pour connaître les autorisations NoScript actuelles ...

http://noscript.net/noscript/ss0.png

52
John Straka

Je suppose que le pourcentage de personnes sans JavaScript activé est négligeable. Mais soyez prudent avec les robots des moteurs de recherche! Ils n'utilisent généralement pas JavaScript, mais vous ne voudriez pas qu'ils ignorent un contenu important de la vôtre à cause de cela, non?

93
Mladen Jablanović

Je navigue toujours avec JavaScript activé et je l'ai depuis l'aube du navigateur web.

Jamais je n'ai eu un seul problème qui valait la peine de dégrader mon expérience de navigateur. Peut-être quelques pop-ups ou autres ennuis, mais les avantages l'emportent de loin sur les risques à mon avis.

47
JohnFx

Lorsque j'utilise la console sous Linux, j'utilise parfois Lynx lorsqu'une interface graphique n'est pas disponible. Au meilleur de ma connaissance, lynx n'a aucun support JavaScript du tout.

J'ai également utilisé d'anciens navigateurs mobiles avec une prise en charge JavaScript faible ou inexistante.

Cependant, dans ces circonstances, je ne m'attends pas à tirer pleinement parti du site. J'utilise généralement Internet pour rechercher rapidement quelque chose (par exemple, obtenir un numéro de téléphone). Par conséquent, je pense que l'interface non JavaScript de votre site devrait être limitée à un rôle de référence passif. Stack Exchange en est un excellent exemple, vous pouvez rechercher des réponses, mais vous ne pouvez pas voter positivement. Il est juste là pour être utilisé comme référence.

23
Adam

Je surfe régulièrement sur le Web à partir du navigateur Web de mon téléphone intelligent lorsque je ne suis pas à la maison ou au bureau. Bien qu'il supporte (au moins un sous-ensemble de) JavaScript, il ne le gère pas toujours bien. J'ai trouvé de nombreux sites Web inutilisables car ils consomment beaucoup de ressources ou bloquent simplement le navigateur.

Je préfère le navigateur intégré, mais je garde deux navigateurs alternatifs au cas où l'un d'entre eux ferait un meilleur travail.

17
Kenneth Cochran

Une chose qui n'a pas été mentionnée dans ce fil est ce qui se passe si votre script se casse. Dans de nombreux cas, la poursuite de l'exécution du script sur la page peut être désactivée, d'où la nécessité de recourir à un moyen de navigation plus simpliste.

Un script peut se casser pour diverses raisons, mais les plus évidentes sont des requêtes incomplètes pour les fichiers .js, divers addons qui pourraient changer le DOM ( AdBlock , etc.) ou introduire des objets qui ne sont pas bien espace de noms.

Cela n'a rien à voir avec les personnes qui désactivent explicitement le script ou autre chose. En guise de remarque, de nombreux routeurs modernes, logiciels de pare-feu, etc. ont souvent une fonction pour désactiver/filtrer les scripts, Flash, etc. des sites Web, de sorte qu'il peut même être configuré sur une couche réseau, laissant l'utilisateur ignorant cela (pensez cafés publics, écoles ou autres environnements où d'autres paranoïaques ont configuré l'accès à Internet).

C'est généralement mon principal argument pour développer des sites qui se dégradent gracieusement, au moins avec les fonctionnalités de base du site (mise en page et navigation).

13
jishi

La seule chose pour laquelle je désactive JavaScript est de tester mon propre site Web. Cependant, vous pourriez être intéressé par un étude que Yahoo a fait et qui a révélé que 1-2% des utilisateurs ont désactivé JavaScript. L'audience de Yahoo est probablement une assez bonne représentation de l'utilisateur moyen.

Une citation clé de l'étude:

Bien que 2% des visiteurs américains ne semblent pas beaucoup, gardez à l'esprit que plus de 300 millions d'utilisateurs visitent Yahoo! page d'accueil chaque mois. Cela signifie que 6 millions d'utilisateurs visitent chaque mois sans bénéficier de JavaScript. Donc, même si cela vaut la peine de passer votre temps sur la version JavaScript du site, il y a toujours un nombre non négligeable d'utilisateurs qui ne pourront pas l'utiliser.

12
VirtuosiMedia

J'utilise NoScript avec AdBlock Plus tout le temps.

Le web est aujourd'hui trop hostile (JavaScript intrusif + publicités ennuyeuses) pour sortir sans protection.

7
user8685

Vous obtenez, bien sûr, un échantillon vraiment biaisé ici, et vous feriez mieux de faire vos propres recherches sur votre propre site.

Personnellement, j'utilise NoScript. Je suis rarement réticent à ajouter un site à la liste blanche, mais cela doit paraître valoir la peine de le faire. (En d'autres termes, j'ai besoin d'une raison, mais cela n'a pas besoin d'être très convaincant.)

6
David Thornley

Il suffit de lire Programmeurs pragmatiques "HTML5 et CSS3" . L'auteur dit que 5% des utilisateurs ont désactivé JavaScript.

Voici sa source: numéros d'index désactivés JavaScript UE et États-Unis + impact de la collecte de données Web Analytics .

Numéros d'index désactivés par JavaScript

UE: 1,4%
États-Unis: 3,05%

Source: 1 000 000 000 de visites sur plusieurs propriétés Web de l'industrie à l'aide d'IndexTools.
(VisualRevenue.com/blog - Dennis R. Mortensen)

http://visualrevenue.com/media/uploaded_images/JavaScript-Disabled-735171.JPG

Il semble que le pourcentage baisse également.

5
Peter Turner

Ou certains d'entre nous utilisent-ils réellement certains services Web sans JavaScript activé

Oui.

Ma navigation se divise en trois catégories.

Navigation normale - Sur Safari ou Chrome (Mac OS X)
- iGoogle, Stack Overflow, certains blogs

Spécialsites Web: - Firefox, avec NoScript, AdBlock Plus et FlashBlock
Sites avec JavaScript inutilement lourd. (Certains sites indiens pour des films/musique de Bollywood, si cela est important. Script inutilement lourd - la page elle-même se recharge toutes les 5 minutes environ)

Navigation mobile:
J'avais un Nokia 5310. Je l'ai perdu. J'ai maintenant un Sony Ericsson W700i encore plus ancien. Je navigue en l'utilisant lorsque je voyage (Opera Mini est plutôt bon). C'est l'endroit (l'absence de) JavaScript est une douleur. Je ne veux pas interagir avec le site (principalement), il suffit de lire. Pourtant, la plupart des sites sont impossibles à visualiser.

5
Nivas

J'ai tendance à installer NoScript et uniquement les sites sur lesquels je fais confiance. Sinon, j'utilise "autoriser temporairement" pour des domaines spécifiques lorsque j'en ai besoin.

C'est juste une bonne sécurité. Sinon, vous autorisez une quantité arbitraire de code à s'exécuter sur votre machine! Même si c'est en bac à sable ... il y a toujours des vulnérabilités.

Au-delà de mes propres habitudes, même si la plupart des gens naviguent avec JavaScript, il est toujours utile de développer des sites avec une amélioration progressive à l'esprit. Si votre site est fonctionnel au niveau de référence, il peut desservir le plus grand public. Cela signifie également que vous séparez vos données de la conception visuelle et de la logique métier. La plupart de ce que vous faites avec JavaScript côté client doit de toute façon être fait côté serveur - le faire côté client devrait simplement être une commodité donnée à un utilisateur du site.

Bien sûr, il y a des exceptions qui vont nécessiter JavaScript, mais généralement il y a une attente impliquée. Par exemple, il est prévu d'activer JavaScript pour BioLab Disaster , un jeu, mais aucun pour un site comme A List Apart , principalement du texte.

Lorsque je remplis un formulaire, faut-il vraiment s'attendre à ce que JavaScript soit activé pour soumettre le formulaire? Pourquoi? Pour que le code JavaScript puisse vérifier que je n'ai pas entré de chiffre au lieu d'une lettre?

4
pbdiode

À mon avis, l'accessibilité l'emporte sur presque tout le reste. Les utilisateurs qui s'appuient sur la technologie d'assistance devraient toujours pouvoir obtenir la plupart des fonctionnalités d'un site, même si cela peut prendre un peu plus de temps. Peu importe le pourcentage d'utilisateurs qui en dépendent pour avoir de l'importance. Je suis heureux de coder pour un projet Web open source où l'accessibilité est l'un des principaux objectifs et j'apprends réellement comment je peux faire bouger les choses dans les deux sens - avec et sans JavaScript. (Et beaucoup d'autres choses liées à l'accessibilité, car JavaScript ou non n'est vraiment qu'une petite partie du problème.)

Il y a un questionnaire intéressant qui contient des réponses des utilisateurs du projet que je viens de mentionner sur la technologie qu'ils utilisent ici . Cela pourrait vous intéresser.

3
pyvi

J'utilise Google Chrome + AdBlock Plus, et j'ai activé JavaScript.

EDIT: J'utilise NotScript maintenant. :)

Chrome ALONE bloque presque toutes les fenêtres contextuelles (je n'ai trouvé qu'un seul site [Chess.com] qui a percé une fois), et AdBlock se débarrasse de toutes les annonces, donc je n'ai aucun problème avec celles-ci.

IMO, JavaScript vous offre une "meilleure expérience" dans l'ensemble, et tant que vous visitez des sites fiables (qui n'ont pas été piratés ...), tout va bien. En tant que "gars de l'informatique"/développeurs, je pense que nous devons avoir un "sens de l'internet" très vif et être en mesure de dire si un site peut être malveillant.

3
Mateen Ulhaq

Javascript est désactivé par défaut pour ceux d'entre nous sur une boîte Windows Server. Notre politique informatique bloque tant de sites, la seule façon de lire du contenu est de surfer sur un serveur, où JS est désactivé par défaut.

Bien que ce ne soit pas ma configuration préférée, c'est ce que je dois parfois faire.

3
goodguys_activate

Hmm, maintenant je me sens comme Omega Man . :) Apparemment, je suis la dernière personne qui désactive réellement JavaScript (et les cookies) . (À moins que j'en ai besoin pour un site spécifique comme, par exemple, Stack Overflow.)

Je doute que je manque beaucoup - généralement quand je active JavaScript sur un site, il fait quelque chose totalement inutile, comme me permettre de répandre des tonnes d'informations personnelles à de parfaits inconnus, ou me montre des publicités en mouvement - juste ce que je voulais, des mouvements aléatoires sur l'écran pendant que j'essaye de me concentrer sur lire un article ...

2
Cyclops

Je fais. NoScript jusqu'au bout. Je quitterai lorsque les navigateurs seront en bac à sable, et pas avant.

2
Satanicpuppy

Je viens de répondre à une question sur AskUbuntu.com - J'ai dû (temporairement - pour le moment) activer JavaScript sur le site. J'utilise NoScript et j'active JavaScript pour un site quand je pense que c'est clair - mais pas avant. Par défaut, JavaScript est désactivé pour les sites que je n'ai jamais visités auparavant.

2
Jonathan Leffler

Les gens continuent de parler de cette décision comme si elle était binaire. Soit vous vous dégradez gracieusement, soit vous ne le faites pas. Au lieu de cela, pourquoi ne considérez-vous pas les coûts par rapport aux avantages d'une dégradation élégante pour chaque fonctionnalité individuelle? Par exemple, vous pouvez vous assurer que le site possède des fonctionnalités de base, mais nécessite toujours Javascript pour que quelqu'un utilise des fonctionnalités spécifiques.

Gardez également à l'esprit que de nombreuses personnes qui désactivent Javascript le font car elles souhaitent utiliser un site Web léger et dépouillé avec uniquement l'essentiel. Vous pourriez passer tout ce temps à faire fonctionner vos cloches et sifflets pour les utilisateurs qui essaient spécifiquement de les éviter.

Les gens se plaignent que c'est tellement de travail de se dégrader gracieusement. Si vous vous plaignez de la quantité de travail, vous travaillez probablement sur une fonctionnalité pour laquelle il vaut la peine d'exiger Javascript.

À mon avis, les utilisateurs sans Javascript devraient toujours pouvoir naviguer sur le site, utiliser la page de contact et lire tous les articles ou articles de blog que vous avez. Pour toute fonctionnalité plus complexe, faites un appel au jugement en fonction du travail par rapport aux avantages impliqués.

2
lala

La stratégie et la planification du site Web sont spécifiques au cas. Autrement dit, un site Web ne peut pas du tout avoir besoin de prendre en charge IE navigateur, sans parler de problèmes mineurs comme la prise en charge border-radius de CSS3. Mais d'autres sites Web peuvent besoin même d'être rétrocompatible jusqu'à IE6.

Comment pouvons-nous comprendre ce que nous devons planifier pour un site Web? En partie grâce à notre expérience. Les sites Web qui ciblent les programmeurs et les développeurs peuvent s'assurer que leurs utilisateurs utilisent des navigateurs assez nouveaux et mis à jour avec presque toutes les fonctionnalités activées. Cependant, les sites Web d'actualités devraient penser que quelqu'un d'un point inconnu de la terre peut se connecter à leur site Web pour voir ce qui se passe à l'intérieur de son pays.

Mais en plus de notre expérience et de notre intuition, nous devons également installer une sorte de service analytics sur notre site Web, afin que nos décisions futures soient plus robustes, sur la base de données statistiques. Par exemple, Google Analytics est un très bon outil. De là, vous pouvez voir si vous avez vraiment besoin de prendre en charge des navigateurs plus anciens ou non.

Cependant, si nous voulons suivre les directives d'accessibilité Web du W3C, nous devons certainement prendre en charge beaucoup de choses, sans tenir compte des circonstances spécifiques au site.

Dans votre cas particulier, je dis que non. Nous pouvons oublier en toute sécurité l'absence de script dans les sites Web de petite et moyenne envergure. Mais pour les grands projets, ce n'est pas une mauvaise idée d'inclure un peu plus de balisage dans vos pages.

1
Saeed Neamati

Si votre site peut être utilisé par des personnes handicapées, c'est une bonne idée de s'assurer qu'il existe une sauvegarde vers JavaScript.

1
nkassis

Je le tourne seulement pour parcourir Pr0n (mauvais quartier!) ;-)

J'ai renoncé à le désactiver pour une navigation régulière parce que les choses se cassaient trop. Et parfois, je ne sais même pas qu'il était cassé jusqu'à ce que je le rallume.

1
nate c

N'oubliez pas les cookies. Je considère que les cookies sont plus dangereux que JavaScript. J'étais un utilisateur NoScript, mais je l'ai désactivé en faveur de la mise en liste blanche des sites de cookies.

0
Brad Clawsie

Je ne peux pas décider si certaines réponses sur ce fil sont hilarantes ou sérieuses: les cookies sont-ils plus dangereux que javascript? LOL

Tout site doit être testé avec js et les cookies désactivés cependant, c'est un imho minimum.

0
wildpeaks

J'ai toujours JavaScript sur. J'ai également toujours mon kit de restauration minimum à mes côtés.

Nous avons besoin que le veto de ligne désactive JavaScript, donc je pourrais dire "pas d'alertes, pas de redirections, pas de websockets". La fonctionnalité est dans WebKit au moins, à en juger par la console et divers inspecteurs.

Mais oui, toujours JavaScript activé. Principalement parce que très bientôt, les gens utiliseront des sockets Web pour faire toutes sortes de maux, exactement comme ce qui s'est passé lorsque Flash a obtenu la machine virtuelle "cool". Ensuite, je désactiverai JavaScript. S'ils me le laissaient bien sûr.

Je veux profiter autant que possible du bien. J'ai donc des souvenirs agréables de cette époque. Je veux être impressionné, je veux rire aux folies JavaScript, parce que je regrette vraiment ce que nous avions en 2007, un flux d'informations doux et gratuit comme l'eau de source, des sources ouvertes partout.

Je ne l'éteindrai pas avant d'y être obligé.

0
chiggsy

Le démarrage à partir d'un CD/DVD en direct (physiquement ou dans une machine virtuelle) me permet de me sentir beaucoup mieux quand j'autorise Flash et JavaScript à faire leur travail. Si je me souviens bien, Linux Mint a un support Flash prêt à l'emploi.

En ce qui concerne le développement du site, je fais généralement une quantité raisonnable de permutation de div et de menus en JavaScript, mais j'essaie de faire en sorte que tout soit correct et fonctionne essentiellement avec CSS.

0
RobotHumans

Seulement si le client le demande explicitement

Sauf si vous avez un nombre important d'utilisateurs qui seront affectés, c'est simplement un effort supplémentaire.

0
Darknight