Dois-je prendre la peine de développer pour JavaScript désactivé?
Je pense que mon temps est mieux consacré au développement pour la majorité.
Il existe une philosophie de conception Web connue sous le nom de Progressive Enhancement qui est celle que vous devriez considérer. L'idée est de créer un site de base utilisable et réalisable, puis de superposer ces améliorations comme jQuery et des éléments spécifiques au navigateur pour "l'améliorer". De cette façon, vous obtenez un site qui fonctionne pour tout le monde et qui a l'air agréable pour la majorité.
Si cela ne vous convainc pas, envisagez d'autres raisons pour faire fonctionner un site sans javascript:
Il est plus convivial pour le référencement. Si votre site s'appuie sur JS pour le contenu et les liens, il est probable que les moteurs de recherche en ignoreront de gros morceaux.
Imaginez que vous êtes un site de commerce électronique vendant des widgets. Maintenant, même si seulement 5% de vos clients désactivent le javascript, cela représente une perte potentielle de 5%. Cela vaut-il la peine de perdre des clients?
Ne discriminez pas les handicapés. S'appuyer sur javascript signifie que votre site n'est pas accessible et, dans certains cas (tels que les sites gouvernementaux/du secteur public), vous pourriez enfreindre la loi en discriminant les gens.
D'une part, je suis en désaccord avec les gens qui insistent pour que tout fonctionne sans Javascript. Il est agréable de coder au plus petit dénominateur commun dans de nombreux cas (par exemple, je serais vraiment énervé si le site de ma banque nécessitait Flash ou des bêtises.) Mais en réalité, presque tout le monde a activé Javascript ces jours-ci et s'il est utilisé correctement, le les sites résultants peuvent être assez spectaculaires et utiles! (Je veux dire, voyons à quel point Google Maps est agréable lorsque Javascript est désactivé ...)
Cependant, cela ne devrait pas vous absoudre du moins pour vous assurer que votre page échoue gracieusement si Javascript n'est pas présent. Ne laissez JAMAIS vos utilisateurs regarder une page cassée à moitié chargée sans aucune indication sur ce qui ne va pas. Demandez-vous simplement: est-ce que je préfère passer 2 minutes à coder un message "Cette page nécessite Javascript" ou recevoir 10 e-mails par jour d'utilisateurs me disant que ma page est cassée parce qu'ils ont activé noscript?
Oui tu devrais.
Si vous percevez cela comme quelque chose qui nécessite un effort supplémentaire, vous pouvez le faire dans l'autre sens.
Développez d'abord vos pages pour qu'elles fonctionnent sans JavaScript, puis ajoutez des améliorations basées sur JavaScript, des effets Ajax, etc. Ils fonctionneront si JS est pris en charge/activé, sinon vos pages se dégraderont gracieusement.
Et s'il vous plaît, ne développez pas les pages où:
Le contenu entier est extrait de la base de données par JavaScript
Le balisage s'effondre complètement parce que les éléments sont collés ensemble et placés aux bons endroits par JavaScript et non par CSS
Les liens dans la navigation et dans le corps ne fonctionnent pas sans JavaScript (sauf si c'est un framework comme ASP.NET qui s'appuie sur JavaScript pour une raison)
C'est juste contre l'esprit du web et contre le bon sens.
P.S. Parlé par un utilisateur du NoScript.
En tant que développeur, je ne m'inquiète plus pour 1% des utilisateurs qui désactivent Javascript. Cela prend trop de temps et le temps de développement est trop coûteux à gaspiller pour de telles absurdités. AJAX économise une quantité incroyable de bande passante qui se transforme directement en économies $$$, ce qui augmente les bénéfices. Si je perds un ou deux utilisateurs potentiels du site pour 100 utilisateurs, ceux-là ou ces deux perdus les utilisateurs coûteront beaucoup plus en développement que les revenus potentiels qu'ils pourraient jamais rapporter.
Essayez de désactiver Javascript et de vous connecter à Facebook, cela devient un site Web très cassé après cela. Si c'est assez bon pour Facebook, c'est assez bon pour moi.
Personnellement, j'utilise le plugin NoScripts Firefox lors de la navigation, et j'encourage les autres à l'utiliser. Sur tous les PC de la famille que je gère, NoScripts est l'un des logiciels obligatoires que j'installe. Je l'ai configuré avec une liste blanche des sites Web de base de messagerie et bancaires ainsi que les sites sociaux et vidéo populaires et leur explique comment fonctionne l'autorisation temporaire. À en juger par la popularité de ce plugin, je pense qu'il y a une assez bonne partie de personnes qui l'utilisent.
À tout le moins, je m'attends à ce que la fonctionnalité de navigation fonctionne sans scripts. Si vous avez quelque chose de spécifique comme une vidéo qui nécessite des scripts, c'est bien, mais affichez un espace réservé Nice qui dit que "des scripts sont nécessaires pour visualiser cette vidéo".
Faire en sorte que votre navigation repose sur des scripts est une grosse erreur. Dans de nombreux cas, cela me fera rebondir sur le site avec dégoût. Une erreur encore plus grave consiste à faire disparaître complètement une partie de votre site ou navigation lorsque les scripts sont désactivés. À moins que vous ne mettiez en évidence le fait qu'il manque quelque chose, il y a de fortes chances que je ne le remarque même pas, je quitterai donc votre site en pensant qu'il n'y était pas. De plus, un message plein écran qui dit simplement que "ce site nécessite des scripts" ne vous mènera pas très loin, j'ai besoin de voir un certain niveau de contenu avant de vous faire suffisamment confiance pour autoriser les scripts.
Enfin, n'oubliez pas que ce ne sont pas seulement les ordinateurs de bureau qui naviguent sur votre site, mais les navigateurs mobiles sont de plus en plus populaires. Bien que le support JavaScript mobile s'améliore, il est loin d'être parfait, donc à moins que vous ne testiez intensivement tous les différents navigateurs mobiles, je vous suggère de rechercher la version mobile de votre page sans script.
Cela dépend du site et de qui l'utilisera.
Le site est-il public ou s'agit-il d'un intranet ou d'un site qui ne sera accessible qu'à certains clients? Vous rencontrerez probablement des utilisateurs sans JavaScript dans le public. S'il ne sera utilisé que par les clients, pouvez-vous leur dire que vous ne supportez que JavaScript activé?
Le référencement est-il une considération ou l'ensemble du site est-il derrière un écran de connexion ou le référencement n'est-il pas autrement un facteur? Il est beaucoup plus facile d'optimiser les moteurs de recherche s'il n'y a pas de JavaScript.
Le site sera-t-il jamais utilisé sur des navigateurs mobiles? Les navigateurs mobiles n'ont souvent pas ou peu de support JavaScript.
Vous devez également réaliser que JavaScript peut rendre difficile pour les lecteurs d'écran le traitement de votre site et a d'autres considérations d'accessibilité potentiellement négatives.
Les utilisateurs de navigateurs basés sur du texte (par exemple lynx) ont également peu ou pas de support JavaScript.
Vous devez regarder votre site et votre audience et décider si vous devez prendre en charge les utilisateurs qui ont désactivé JavaScript. Vous devez également voir s'il est même possible de ne pas utiliser JavaScript. Si vous créez une application Web avancée et avez besoin de choses comme le support de la webcam et du microphone, il peut être impossible de ne pas utiliser JavaScript.
Si vous décidez que vous devez prendre en charge les utilisateurs sans JavaScript, vous pouvez toujours utiliser JavaScript. Vous devez simplement rendre le site Web encore fonctionnel sans lui. C'est ce qu'on appelle l'amélioration progressive, elle devrait se dégrader gracieusement s'il n'y a pas de support JavaScript.
Si vous décidez d'exiger JavaScript, vous devez en informer vos utilisateurs (en utilisant le <noscript>
tag) que vous faites ainsi.
Puis-je recommander un article de "A List Apart"?:
Amélioration progressive avec JavaScript
... Nous avons examiné l'état d'esprit nécessaire pour implémenter l'amélioration progressive de JavaScript et plusieurs techniques permettant de le faire. Nous avons également abordé le concept de script discret et appris un peu sur la façon de gérer l'interrelation entre CSS et JavaScript.
Lorsque vous combinez l'approche générale avec cet article avec des outils utiles comme JQuery (ou Prototype, ou quel que soit le cadre JavaScript de votre choix), il est vraiment trivial d'appliquer le comportement JavaScript après coup.
Il existe plusieurs types de navigateurs qui ne disposent toujours pas de JavaScript ou du moins d'un support JavaScript très limité. Sans oublier que la règle n ° 1 pour la conformité aux WCAG et à l'article 508 (accessibilité pour les personnes non américaines) est que la vue ne dépend pas d'un langage de script pour fonctionner . Si la page se recharge à chaque fois que je fais un changement, mais cela me permet toujours de faire des changements, elle fonctionne. La couche AJAX en haut du site de base me permet de faire de même sans recharger la page.
Les principales raisons pour lesquelles je ne supporte aucun utilisateur JavaScript sont:
S'il vous plaît, si vous allez avoir besoin de cookies et de JavaScript sur votre site pour qu'il fonctionne , alors faites correctement votre diligence raisonnable pour éviter les problèmes suivants avec le Suivant:
(Et c'est juste la courte liste)
Quand la solution n'est pas si difficile, pourquoi ne pas le faire?
De plus, pendant que vous êtes à votre fête JavaScript, n'oubliez pas de prendre en charge une navigation au clavier saine.
Un site qui ne fonctionne pas correctement sans JavaScript doit clairement en informer l'utilisateur. Autant que possible devrait être fait pour fonctionner correctement sans JavaScript. Il y a certains cas où cela ne sera pas possible, des sites hautement dynamiques construits sur des couches de AJAX et les récupérations à distance en font partie. Cela ne signifie pas qu'il est correct d'afficher une page vierge si j'ai désactivé JavaScript.
La dégradation gracieuse est extrêmement importante, et elle ne s'applique pas seulement à JavaScript, elle s'applique à tout ce que vous codez. Balisage HTML valide, CSS valide, validation côté serveur de tout.
Sur un site comme celui-ci, vous trouverez de nombreux développeurs vous expliquant comment ils ont désactivé Javascript, vous devez donc prendre en charge l'amélioration progressive. En réalité, sur les 5% de personnes qui ont désactivé Javascript, 90% d'entre eux sont des développeurs et autres geeks technologiques, ils ne sont pas du grand public. La plupart des sites majeurs ne prennent pas en charge l'amélioration progressive. Avez-vous essayé d'utiliser Facebook sans Javascript? Ils disent essentiellement s'en aller.
<5% des utilisateurs désactivent le javascript
Selon BrowserStatistics , en 2008, seulement 5% des utilisateurs avaient désactivé JavaScript. La tendance est en baisse constante, il est donc très prudent de supposer que maintenant près de 2011, ce nombre est beaucoup plus petit.
Déclassement progressif
Votre site ne doit jamais être interrompu - peu importe si les utilisateurs ont activé ou désactivé JS. Même si c'est aussi simple que d'afficher un message indiquant que votre site a besoin que javascript soit activé, vous devez vous assurer que votre site Web s'affiche et se comporte de manière acceptable et ininterrompue pour les personnes sélectionnées.
Retravailler pour les utilisateurs non-JS? Normalement: non.
Le développeur ordinaire n'a pas besoin de créer une version non javascript dans une autre langue. Cependant, s'il est connu que vos clients ont des besoins anti-javascript, alors vous êtes évidemment obligé d'y répondre. (Même GMail a une version sans JS)
Mes pensées:
L'utilisation de javascript augmentera toujours la surface d'attaque, non seulement pour vous, mais pour vos clients - presque tout le monde que je connais navigue avec NoScript, et cela inclut les gens non techniques.
Si je vois un site d'achat en ligne qui utilise mal javascript, je n'achèterai pas chez eux. Je navigue toujours d'abord avec javascript désactivé, et si un site se dégrade gracieusement, je pourrais être intéressé. S'il est juste cassé, je suppose généralement que les programmeurs n'ont pas non plus la capacité de fournir une plate-forme de boutique sécurisée.
Cela a tendance à tout ralentir - en dépit d'être proche d'une grande ville, mon haut débit est assez lent sans avoir à attendre une idée marketing pour se charger. Si un site prend plus de 5 secondes pour charger du contenu de base, je ne m'en soucierai pas, sauf si j'ai un réel besoin.
niquement sur les fonctionnalités essentielles à la mission
En général, c'est une bonne idée de "se dégrader gracieusement". Cependant, je me concentrerais uniquement sur les parties critiques de votre application Web, pour répondre aux situations où JavaScript peut ne pas être disponible.
Si ce sont juste des effets de "cloches et sifflets", alors ne vous embêtez pas. Les personnes qui surfent délibérément sans JavaScript n'auront qu'à faire une expérience simple (bon, c'est leur choix pour ne pas utiliser Js)
La plupart des réponses semblent mettre en évidence les critiques des sites Web standard utilisant JavaScript de manière non essentielle ou hacky. Mais qu'en est-il des applications Web? Il y a une tonne de fonctions critiques qui ne peuvent pas être réalisées même à distance aussi efficacement sans JavaScript. Même quelque chose d'aussi simple qu'un compteur Word de base sous une zone de texte, ou d'activer/désactiver une question de formulaire supplémentaire basée sur la réponse à une autre. Dans ce cas, n'est-il pas raisonnable de construire pour la majorité et de se dégrader gracieusement pour la minorité? Surtout si vous savez que votre base d'utilisateurs n'est pas technique et qu'il est peu probable que JS soit désactivé?
Choses à considérer:
AFAIK, les araignées des moteurs de recherche n'aiment pas Javascript. Vous devez avoir un contenu de base et une navigation sans Javascript uniquement pour le référencement.
Certains sites Web peuvent avoir des règles d'accès pour les personnes handicapées, soit pour des raisons juridiques, soit pour la politique de l'entreprise. Cela est généralement mieux accompli avec du HTML simple par opposition à Javascript.
Bien que la plupart des gens surfent avec Javascript de nos jours, ce n'est pas une garantie pour l'avenir. Le Web devient de plus en plus hostile et des outils comme NoScript pourraient devenir plus populaires. Alternativement, il est possible que davantage de personnes utilisent des appareils avec des navigateurs moins performants, bien que certains téléphones Android étant relativement peu coûteux, cela semble moins probable. Une dégradation gracieuse peut être un moyen de pérenniser le site.
Oui.
Je ne vais pas parler des gens avec NoScript, des appareils embarqués, etc. Leur part peut être mesurée et vous pouvez ensuite décider si la baisse des revenus causée par un ennuyeux, par exemple 0,5% des utilisateurs méritent de mettre en œuvre une solution pour eux.
Mais il existe d'autres raisons de suivre le principe de l'amélioration progressive, et elles sont souvent plus importantes.
100% des utilisateurs ne peuvent pas exécuter javascript avant le chargement des scripts. Si le site peut fonctionner sans js, il peut être chargé plus rapidement pour les nouveaux visiteurs, les visiteurs avec un cache vide et pour tous les visiteurs après les mises à jour du code js.
Les sites qui peuvent fonctionner sans js sont plus fiables. Une erreur Javascript brisant un site Web est un cauchemar architectural. Plus d'informations sur ce problème et les problèmes connexes: http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs
Il est plus facile de s'en tenir à l'amélioration progressive que d'implémenter un site uniquement compatible Javascript.
Il est plus facile d'écrire des tests automatisés pour un site qui ne nécessite pas de javascript pour fonctionner.
Il est en fait assez facile de suivre le principe d'amélioration progressive, alors pourquoi ne pas le suivre?
Dépend de la réponse à une seule question:
"Le coût du support des utilisateurs avec Javascript désactivé est-il supérieur ou inférieur à l'argent perdu en ne supportant pas ces utilisateurs?"
Supposons que votre site Web ait une durée de vie de 3 ans avant de devoir être reconstruit, il en coûte 30 000 £ pour être construit pour des `` clients riches '', et vous ajoutez 10 000 £ supplémentaires pour prendre en charge les utilisateurs non javascript (dont nous supposerons qu'il y a 5% de)
Si les 5% d'utilisateurs manquants auraient dépensé plus de 10 000 £ - faites-le. S'ils ne le font pas, ne le faites pas, sauf si vous y êtes légalement tenu.
Il s'agit plus d'une décision commerciale/économique que d'une décision technique.