11484 sujets

JavaScript, DOM et API Web HTML5

Vous préoccupez-vous d'une compatibilité de votre site avec avec Javascript désactivé ?



Bonjour,

Pendant longtemps, dans les bonnes pratiques du web, d'ergonomie, d'UX design (quand le terme n'existait pas encore), d'accessibilité ou de JavaScript lui-même, on lisait ici ou ailleurs la recommandation d'éviter dans la mesure du possible de rendre JS indispensable au fonctionnement et à la navigation d'un site.

Par exemple, obliger à activer JS pour accéder à certaines page par le menu de navigation était dénoncé. JS devait se restreindre à améliorer le confort d'utilisation.

Par contre, des outils où JS est indispensable comme https://pixlr.com/ n'était pas soumis à cette recommandation.

Avec le temps qui passe, j'ai de moins en moins l'impression que les intégrateurs et les développeurs se soucient de cette préoccupation et j'ai l'impression que la part de marché des internaute sans JS est devenu négligeable. Je me pose donc la question de revenir sur mes pratiques : Est-ce encore d'actualité ou désuet de s'en préoccuper ?

N'hésitez pas à argumenter vos points de vue.

Merci
Modifié par 7am (10 Mar 2020 - 14:11)
Bonjour,

personnellement j'essaye toujours de suivre ce principe du javascript pour améliorer. Après il faut prendre en compte tout ça a un cout et que faire du 100% fonctionnel sans js est pas toujours évident (donc je me préoccupe de la compatibilité mais il y a des limites). Je ne pense pas que ce soit désuet car on a toujours besoin d'avoir des contenus accessible via le html classique pour ce qui concerne le SEO ou l'accessibilité.
Modifié par bacasable (10 Mar 2020 - 14:27)
Moi j'ai voté non, car si en réalité je m'en préoccupe c'est uniquement en raison d'un esprit perfectionniste.

En effet, essayez d'utiliser un moteur de recherche tel que google sans js pour voir, notamment la version google image.
Modérateur
Cette recommandation est un reliquat d'une période ou le javascript était une surcouche bricolée, qui souffrait de failles de sécurité conséquentes, du coup désactiver javascript était une pratique courante.

Désormais le javascript fait partie de la norme ( DOM ), le désactiver et espérer que tout fonctionne parfaitement est aussi cohérent que désactiver HTML ou CSS.

Le javascript ne pose ni problème de SEO ni d'accessibilité si on ne fait pas n'importe quoi, au contraire, le javascript est souvent utilisé pour améliorer l'accessibilité. Un menu déroulant pur CSS est généralement moins accessible qu'un menu déroulant avec javascript. Pire je vois souvent des solutions «pure CSS», qui, bien qu'élégantes, peuvent poser des problèmes d'accessibilité. L’intégrisme et la pureté idéologique est rarement notre ami dans ce domaine.

Il faut juste bien séparer les rôles. Le HTML structure les données, le CSS gère la mise en page, et le javascript les interactions. Bien sûr on préfère les éléments interactifs pré-existants en HTML lorsqu'ils existent (liens, éléments de formulaires, etc.).

Par contre évidement que de mettre du javascript partout, de charger 40 librairies pour une page de contact, témoignent d'un abus qui est dommageable. Comme l'est la divite, les sélecteurs CSS de 2000 caractères ou les images de 200 mégas, ce n'est pas pour autant qu'on désactive ces technologies.
Salut,

pour le coup le critère des part de marchés des internautes sans JS, je pense que c'est un "faux critère", si tu demandes à des gens qui n'ont pas vraiment de notions d'informatiques, tu auras une grosse partie qui ne savent même pas que le javascript existe, donc bon il y a peu de chance pour qu'ils le désactivent..

Perso j'ai tendance à préférer chercher des solutions à base de css si possible au lieu de systématiquement vouloir faire du javascript et autant que possible de limiter le javascript à des "fonctionnalités additionnels" mais que le site puisse continuer à fonctionner si il est désactivé (rare à mon avis) ou planté (j'ai l'impression que cela arrive relativement plus souvent qu'il n'y parait Smiley bawling ).
Modifié par Mathieuu (10 Mar 2020 - 15:27)
Est-ce que je désactive JavaScript -> Oui
Est-ce que je vais continuer à le faire -> Oui
Pourquoi ?
a) parce que charger a priori des scripts dont je ne connais pas l'action exacte est en soi une aberration (à moins d'être maso... à chacun son trip)
b) parce qu'un site qui apparaît sous forme de page blanche au seul motif que JavaScript est désactivé me paraît sans intérêt et mal construit
c) parce que, JavaScript désactivé, consulter un site d'actualité sans être emm...dé en permanence par les dialogues demandant de valider telle ou telle option du RGPD, ou la Nème pub, est particulièrement jouissif
La plupart des développeurs considèrent JavaScript comme un standard de fait que l'on se doit d'intégrer sous peine de passer pour un ringard... OK
Perso, et sans virer paranoïaque, je constate qu'un certain nombre de problème sont, de fait là aussi, liés à ce langage (minage, traçage, empreinte navigateur, etc.). Le nier relève de la méthode Coué.
Alors je navigue "brut de décoffrage" et si le concepteur du site estime que je suis un naze qui n'a rien compris et m'impose du dynamique JS, je passe à autre chose, ne conservant JS activé que pour certains sites très ciblés, validés par l'usage.
JavaScript n'est utile, voire indispensable et incontournable, que pour un très petit nombre d'actions. La plupart du temps, son utilisation n'est pas requise.
Pour mon générateur de site web, je développe des composants qui s'affranchissent au maximum de ce langage. Si malgré tout ce n'est fonctionnellement / techniquement pas possible, alors c'est du JS a minima et je m'arrange pour n'embarquer que le strict minimum sur la page concernée.
Moins je vois d'instructions JavaScript, mieux je me porte (et semble-t-il mes pages également).
Bonjour,
tout en reconnaissant que Javascript permet des actions impossibles à réaliser autrement, je fais partie des personnes qui le désactivent par défaut, avec une liste blanche pour les sites sûrs et habituels. Pas besoin de programmer pour ça, un module complémentaire le fait très bien NoScript, aussi bien sur Firefox que sur Chrome. NoScript bloque aussi une partie des publicités. NoScript ne veut pas dire jamais de Scripts, la liste suivante le montre.

- Par défaut : c’est le réglage par défaut pour les sites inconnus (non listés) où la plupart des objets sont bloqués. Certains composants CSS sont alors autorisés.
- Site Fiable : les objets sont autorisés à s’exécuter mais pas ceux externes.
- Non fiable il s’agit de la liste noire où vous pouvez placer des sites dangereux
- Personnalisée : vous réglez vous mêmes les objets qui peuvent être chargés et exécutés

Si JavaScript est maintenant fiable et n'est plus une surcouche bricolée et exempt de failles de sécurité (à voir), il n'en est pas moins redoutable pour qui veut engager des actions malveillantes.
Ce module complémentaire s'adresse aux personnes averties, sachant que la majorité n'y voit que du feu, mais ce n'est pas une raison. On en a assez, sous prétexte de ne pas être ringards ou de vouloir suivre la norme, d'être constamment pistés, surveillés. Notre navigateur, notre connexion nous appartiennent. D'ailleurs, si les bloqueurs de toutes sortes donnent tant de nuits blanches à tous ceux qui veulent nos données, c'est bien qu'ils sont redoutablement efficaces et qu'il y a anguille sous roche.
Jouer avec la désactivation de JavaScript est aussi utile pour contourner les grilles tarifaires de prix de certaines compagnies aériennes, billets de train, etc. Pour le coup, il faut aussi tromper l'adresse IP avec un proxy ou un VPN Smiley cligne
Tout en sachant que, dans le monde virtuel, se protéger totalement est illusoire et doit nous laisser constamment en veille. On ne sait jamais ce que prépare la personne qui est en face.
J'ai voté oui.
Modifié par Bongota (11 Mar 2020 - 10:59)
bacasable a écrit :
La question n'est pas ce que vous faites vous mais comment vous faites vos sites. Smiley cligne

Et bien comme ceci par exemple : Scriptura
Un site codé en 2017, trois ans déjà...

Trois choses à noter pour ce site :
- Bien qu'il compte des effets le menu est full css, c'est très intéressant en cas de bug de chargement de scripts, ce qui peut arriver notamment en cas de bande passante pourrie. Par contre cette solution impose un élément HTML qui n'est pas sémantiquement correct dans le contexte.
- À noter aussi l'utilisation d'une balise noscript.
- Et surtout un test de la présence de JavaScript pour le navigateur, avec l'ajout d'une classe '.js' sur la balise HTML en cas de succès. Ceci permet ensuite de transformer de simples listes en onglets ou accordéon si la classe est présente.

Voili voilou.
Modifié par Olivier C (11 Mar 2020 - 19:29)
bacasable a écrit :
La question n'est pas ce que vous faites vous mais comment vous faites vos sites.

Si tu lis bien, la réponse à la question a été donnée...
sepecat a écrit :
Pour mon générateur de site web, je développe des composants qui s'affranchissent au maximum de ce langage. Si malgré tout ce n'est fonctionnellement / techniquement pas possible, alors c'est du JS a minima et je m'arrange pour n'embarquer que le strict minimum sur la page concernée.
Moins je vois d'instructions JavaScript, mieux je me porte (et semble-t-il mes pages également).