J'ai utilisé le Web pour un jour avec JavaScript désactivé
Cet article fait partie d'une série dans laquelle j'essaie d'utiliser le web sous différentes contraintes, représentant une démographie donnée de l'utilisateur. J'espère faire ressortir les difficultés rencontrées par de vraies personnes, qui sont évitables si nous concevons et développons d'une manière qui soit favorable à leurs besoins. Cette semaine, je désactive JavaScript.
Tout d'abord, pour clarifier, il y a une différence entre le support d'une noscript
expérience et l'utilisation du tag noscript
. Je n'aime généralement pas la balise noscript, car elle fragmente votre page Web en JavaScript et en versions non-JavaScript plutôt que de travailler à partir de la même base de données, ce qui rend les choses malicieuses et oubliées.
Vous avez peut-être beaucoup de contenu utile dans vos tags noscript, mais si j'utilise un navigateur compatible JavaScript, je ne vois rien de tout cela - je vais être coincé en attente de l'expérience JS à télécharger. Quand je me réfère à l'expérience 'noscript', je veux généralement dire l'expérience de l'utilisation de la page Web sans JavaScript plutôt que l'utilisation explicite de la balise.
Donc, qui se soucie des utilisateurs qui ne portent pas t avoir JavaScript? Est-ce que de tels utilisateurs noscript
existent encore?
Eh bien, ils existent, bien qu'en petit nombre: environ 0.2% des utilisateurs au Royaume-Uni ont désactivé JavaScript. Mais le nombre d'utilisateurs qui ont explicitement désactivé JavaScript est manquant.
Pensez aux utilisateurs qui ont activé JavaScript mais qui ne bénéficient pas de l'expérience JavaScript, pour un certain nombre de raisons, y compris le blocage d'entreprise ou local. décapage d'éléments JavaScript, erreurs JavaScript existantes dans le navigateur à partir d'add-ons de navigateur et de barres d'outils, d'erreurs réseau, etc. BuzzFeed a récemment révélé que environ 1% des demandes pour leur délai d'attente JavaScript équivalant à 13 millions de demandes échouées par mois.
Parfois, le problème n'est pas avec l'utilisateur mais avec le CDN livrant le JavaScript. Rappelez-vous en Février 2017, quand les serveurs d'Amazon sont tombés ? Des millions de sites qui comptent sur JavaScript livrés sur les CDN d'Amazon étaient en difficulté majeure, coûtant aux entreprises de l'indice S & P 500 150 millions de dollars dans l'arrêt de quatre heures.
Pensez aussi aux marchés émergents mondiaux; les pays luttent encore pour construire un réseau d'Internet rapide, avec des populations incapables de se permettre un matériel rapide pour exécuter du JavaScript gourmand en ressources CPU. Ou pensez aux marchés établis, où même un iPhone X sur une connexion 4G n'est pas à l'abri des effets d'une page Web partiellement chargée interrompue par leur train entrant dans un tunnel.
Le Web est un environnement hostile et imprévisible, qui est pourquoi de nombreux développeurs suivent le principe de l'amélioration progressive pour construire leurs sites à partir d'une expérience de base de HTML sémantique, superposant CSS et JavaScript discret en plus de cela. Je voulais voir combien de sites appliquent cela en pratique. Quoi de mieux que de désactiver JavaScript tout à fait?
Comment désactiver JavaScript
Si vous souhaitez recréer mon expérience, vous pouvez désactiver JavaScript en explorant les paramètres de Chrome:
- Ouvrez les outils de développement ( Chrome -> Affichage -> Outils de développement, ou onI sur le clavier)
- Ouvrez le sous-menu du développeur (les trois points à côté de l'icône de fermeture dans les Outils de développement)
- Choisissez 'Paramètres' dans ce sous-menu. ] Trouvez la section 'Débogueur' et cochez la case 'Désactiver JavaScript'
Ou, comme moi, vous pouvez utiliser l'excellente Toggle JavaScript Chrome Extension qui vous permet de désactiver JS en un clic.
Création d'un message WordPress avec JavaScript désactivé
Après avoir désactivé JavaScript, ma première escale a été d'aller sur mon site de portfolio personnel - qui fonctionne sur WordPress - dans le but d'écrire mes expériences en temps réel.
WordPress is En fait, très noscript-friendly, donc J'ai pu commencer à écrire ce post sans aucune difficulté, même s'il manquait certaines fonctionnalités de formatage de texte et d'intégration de médias auxquelles je suis habitué.
Comparons l'écran de post de WordPress avec et sans JavaScript:
Je me sentais très à l'aise sans les barres d'outils jusqu'à ce que je devais intégrer des captures d'écran dans mon post. Sans le bouton "Ajouter un média", je devais aller sur des écrans séparés pour télécharger mes fichiers. Cela est logique, car le contenu de «téléchargement en arrière-plan» nécessite Ajax, ce qui nécessite JavaScript. Mais j'étais assez surpris que l'écran séparé de médias ait également exigé JavaScript!
Heureusement, il y avait une vue de secours:
Après le téléchargement de l'image, j'ai dû écrire manuellement une balise HTML img
dans mon post et copier et coller l'URL de l'image. Il n'y avait aucun moyen de déterminer l'URL miniature de l'image téléchargée, et toutes les légendes que j'ai écrites devaient également être copiées manuellement. J'ai vite eu marre de cette approche et prévu de revenir le lendemain et de ré-insérer toutes les images quand je me suis permis d'utiliser à nouveau JavaScript.
J'ai décidé de jeter un oeil à la façon dont le front-end de mon
Affichage de mon site sans JavaScript
J'ai été agréablement surpris que mon site ressemble beaucoup à celui de JS:
Le menu est un peu à l'écart, et la colonne est assez étroite (certainement un modèle que je vois sur beaucoup de sites – pourquoi "pas de JavaScript" signifie "appareil mobile"?) Mais je suis capable d'accéder au contenu.
J'ai cliqué sur l'onglet «Most Read», ce qui m'amène à une autre partie de la page. Avec les scripts, ce lien d'ancrage est progressivement amélioré pour obtenir le comportement de tabulation réel, qui est un bel exemple de construction à partir d'un noyau HTML solide.
Jusqu'à présent, voici le seul exemple de lien d'ancrage Je suis tombé sur mon expérience, ce qui est dommage car c'est une bonne technique qui économise un chargement de page supplémentaire et économise la fragmentation du site en beaucoup de micro pages.
Cela semble un peu étrange avoir un double problème de numérotation ici. Je clique sur l'une des histoires.
Je ne peux pas accéder au contenu vidéo, mais en raison de problèmes de droits, je soupçonne que la BBC ne peut pas fournir une vidéo séparée distincte comme le fait Facebook. Une transcription serait bien – et bénéfique à plus que juste noscript
utilisateurs.
Suggestion : Fournir des retombées textuelles pour le contenu audiovisuel. [19659008] Pour être juste, le contenu de l'article résume essentiellement le contenu qui apparaît dans la vidéo, donc je ne manque pas vraiment d'informations.
L'article et les pages d'index se chargent rapidement, à environ 300KB (principalement des images) . Les images miniatures pour les autres articles sur la page me manquent, et la possibilité de tirer pleinement parti de mon écran immobilier, mais cela ne devrait pas entraver la notation.
BBC noscript
estimation: NOSCRIPT-5 ✅
GitHub
GitHub regarde presque exactement le même que son homologue JavaScript activé. Hou la la! Mais je suppose que c'est un site développé par des développeurs, pour les développeurs. ?
J'ai fait un peu de ménage sur GitHub, en regardant autour de repos et en supprimant les vieilles branches. Pendant un moment j'ai vraiment oublié que j'étais sur la version non-JavaScript jusqu'à ce que je tombe sur un petit bug:
Then I wondered, “How is GitHub going to handle applying labels to issues?” so I gave that a go.
I was unable to create an issue and add labels to it at the same time. In fact, I couldn’t find any way of adding the label even after creating a blank issue. It’s a shame the site fell at the last hurdle because it was very nearly a seamless comparison with the scripted version.
GitHub noscript
rating: NOSCRIPT-3 ?
While GitHub looks incredible — I would never have known my JavaScript was turned off — not being able to use the same key functionality as the scripted version is a bummer. Even an ugly looking noscript
site would get a higher score because functionality is more important than form.
Online Banking
If there’s one place I expected JavaScript to be required, it was on the NatWest bank website. I was wrong.
Not only does it work, but it’s also hard to distinguish from the normal site. The login screen is the same, the only difference being that the focus doesn’t automatically progress through each field as you complete it.
NatWest noscript
rating: NOSCRIPT-5 ✅
Miscellaneous
I came across a few more sites throughout my day.
FreeAgent — the tax software site I use for my freelancing — doesn’t even try a noscript
fallback. But hey, that’s better than showing a broken website.
FreeAgent noscript
rating: NOSCRIPT-2 ⛔
And CodePen, somewhat understandably, has to be a NOSCRIPT-2 too.
CodePen noscript
rating: NOSCRIPT-2 ⛔
Tonik, the energy provider, doesn’t let me log in, but this seems like an oversight rather than a deliberate decision:
Tonik noscript
rating: NOSCRIPT-1 ❌
M&S Energy lets me log in — only to tell me it needs JavaScript to do anything remotely useful.
M&S noscript
rating: NOSCRIPT-1 ❌
Now I come to my favorite screenshot of the day.
One of my colleagues once recommended an Accessibility for Web Design coursewhich I bookmarked. I decided to take a look at it today, and laughed at the irony of the alt text:
With the alt text of “Personas: Accessibility for Web Design,” I’m not too sure what I’m missing here — is it an image? A video? A PDF? The course itself?
Hint: It’s actually a video, though you have to be logged in to watch it.
The alt text isn’t really supporting its purpose, partly because it’s populated automatically. We as a dev community need to get better at this sort of thing. I don’t think I’ve read any useful alt text today.
Summary
I started this experiment with the aim of seeing how many sites are implemented using progressive enhancement. I’ve only visited a tiny handful of sites here, most of them big names with big budgets, so it’s interesting to see the wide variation in no-JavaScript support.
It’s interesting to see that relatively simple sites — Instagram and LinkedIn particularly — have such poor noscript
support. I believe this is partly down to the ever-growing popularity of JavaScript frameworks such as React, Angular, and Vue. Developers are now building “web applications” rather than “websites,” with the aim of recreating the look and feel of native apps, and using JavaScript to manage the DOM is the most manageable way of creating such experiences.
There is a danger that more and more sites will require JavaScript to render any content at all. Luckily, it is usually possible to build your content in the same, developer-friendly way but rendered on the server, for example by using Preact instead of React. Making the conscious decision to care about noscript
gives the benefits of a core experience as outlined at the beginning of this article, and can make for a faster perceived loading time, too.
It can be quite daunting to think about an application from the ground up, but a decent core experience is usually possible and actually only involves simple tweaks in a lot of cases. A good core experience is indicative of a well-structured web page, which, in turn, is usually a good sign for SEO and for accessibility. It’s usually a well designed web page, as the designer and developer have spent time and effort thinking about what’s truly core to the experience. Progressive enhancement means more robust experiences, with fewer bugs in production and fewer individual browser quirks, because we’re letting the platform do the job rather than trying to write it all from scratch.
What noscript
rating does your site conform to? Let us know in the comments!
Source link