Ich habe das Web einen Tag lang mit deaktiviertem JavaScript benutzt

Veröffentlicht: 2022-03-10
Kurze Zusammenfassung ↬ Haben Sie sich jemals gefragt, ob es möglich ist, alles im Web ohne JavaScript zu tun? Wie viele Websites verwenden die progressive Erweiterung in der Praxis? Chris Ashton hat ein Experiment durchgeführt, um das herauszufinden.

Dieser Artikel ist Teil einer Serie, in der ich versuche, das Internet unter verschiedenen Einschränkungen zu nutzen, die eine bestimmte demografische Gruppe von Benutzern repräsentieren. Ich hoffe, das Profil der Schwierigkeiten zu schärfen, mit denen echte Menschen konfrontiert sind, die vermeidbar sind, wenn wir auf eine Weise entwerfen und entwickeln, die ihren Bedürfnissen gerecht wird. Diese Woche deaktiviere ich JavaScript.

Warum noscript

Zunächst zur Verdeutlichung: Es gibt einen Unterschied zwischen der Unterstützung einer noscript Erfahrung und der Verwendung des noscript -Tags. Ich mag das noscript -Tag im Allgemeinen nicht, da es Ihre Webseite in JavaScript- und Nicht-JavaScript-Versionen fragmentiert, anstatt auf der gleichen Basis von Inhalten zu arbeiten, wodurch Erfahrungen chaotisch werden und Dinge übersehen werden.

Sie haben möglicherweise viele nützliche Inhalte in Ihren noscript Tags, aber wenn ich einen JavaScript-fähigen Browser verwende, werde ich nichts davon sehen – ich werde festsitzen und darauf warten, dass die JS-Erfahrung heruntergeladen wird. Wenn ich mich auf die „noscript“-Erfahrung beziehe, meine ich im Allgemeinen die Erfahrung, die Webseite ohne JavaScript zu verwenden, und nicht die explizite Verwendung des Tags.

Web-MIDI-API: Erste Schritte

Ist es möglich, digitale Musikinstrumente als Browsereingaben zu verwenden? Mit der Web-MIDI-API lautet die Antwort ja! Das Beste daran ist, dass es ziemlich schnell und einfach zu implementieren ist und sogar ein wirklich lustiges Projekt erstellt. Artikel lesen →

Wer kümmert sich also um Benutzer, die kein JavaScript haben? Gibt es solche noscript Benutzer überhaupt noch?

Nun, es gibt sie, wenn auch in geringer Zahl: Etwa 0,2 % der Nutzer in Großbritannien haben JavaScript deaktiviert. Aber ein Blick auf die Zahlen der Benutzer, die JavaScript explizit deaktiviert haben, verfehlt den Punkt.

Ich erinnere mich an dieses Zitat von Jake Archibald:

„Alle Ihre Benutzer verwenden kein JS, während sie Ihr JS herunterladen.“

Denken Sie an die Benutzer, die JavaScript aktiviert haben, aber die JavaScript-Erfahrung aus einer Reihe von Gründen nicht erhalten, einschließlich unternehmensinterner oder lokaler Blockierung oder Entfernung von JavaScript-Elementen, vorhandener JavaScript-Fehler im Browser von Browser-Add-Ons und Symbolleisten, Netzwerk Fehler und so weiter. BuzzFeed hat kürzlich enthüllt, dass etwa 1 % der Anfragen für ihr JavaScript eine Zeitüberschreitung aufweisen, was 13 Millionen fehlgeschlagenen Anfragen pro Monat entspricht.

Mehr nach dem Sprung! Lesen Sie unten weiter ↓

Manchmal liegt das Problem nicht beim Benutzer, sondern beim CDN, das das JavaScript bereitstellt. Erinnern Sie sich an den Februar 2017, als die Server von Amazon ausfielen? Millionen von Websites, die auf JavaScript angewiesen sind, das über die CDNs von Amazon bereitgestellt wird, gerieten in große Schwierigkeiten, was Unternehmen im S&P 500-Index in dem vierstündigen Ausfall 150 Millionen US-Dollar kostete.

Denken Sie auch an die aufstrebenden globalen Märkte; Länder kämpfen immer noch darum, ein Netzwerk mit schnellem Internet aufzubauen, wobei sich die Bevölkerung keine schnelle Hardware leisten kann, um CPU-intensives JavaScript auszuführen. Oder denken Sie an die etablierten Märkte, wo selbst ein iPhone X mit einer 4G-Verbindung nicht immun gegen die Auswirkungen einer teilweise geladenen Webseite ist, die durch ihren Zug unterbrochen wird, der in einen Tunnel fährt.

Das Web ist eine feindliche, unvorhersehbare Umgebung, weshalb viele Entwickler dem Prinzip der progressiven Verbesserung folgen, um ihre Websites auf der Grundlage einer Kernerfahrung aus semantischem HTML aufzubauen, CSS und unaufdringliches JavaScript darüber zu schichten. Ich wollte sehen, wie viele Websites dies in der Praxis anwenden. Gibt es einen besseren Weg, als JavaScript vollständig zu deaktivieren?

So deaktivieren Sie JavaScript

Wenn Sie mein Experiment selbst nachstellen möchten, können Sie JavaScript deaktivieren, indem Sie in den Einstellungen in Chrome nachsehen:

  • Öffnen Sie die Entwicklertools (Chrome -> Ansicht -> Entwicklertools oder ⌥⌘I auf der Tastatur)
  • Öffnen Sie das Entwickler-Untermenü (die drei Punkte neben dem Schließen-Symbol in den Entwicklertools)
  • Wählen Sie in diesem Untermenü „Einstellungen“.
  • Suchen Sie den Abschnitt „Debugger“ und aktivieren Sie das Kontrollkästchen „JavaScript deaktivieren“.

Oder Sie können wie ich die hervorragende Toggle JavaScript Chrome Extension verwenden, mit der Sie JS mit einem Klick deaktivieren können.

Erstellen eines WordPress-Beitrags mit deaktiviertem JavaScript

Nachdem ich JavaScript deaktiviert hatte, war meine erste Anlaufstelle meine persönliche Portfolio-Seite – die auf WordPress läuft – mit dem Ziel, meine Erfahrungen in Echtzeit niederzuschreiben.

WordPress ist eigentlich sehr noscript-freundlich, daher konnte ich problemlos mit dem Schreiben dieses Beitrags beginnen, obwohl ihm einige der Textformatierungs- und Medieneinbettungsfunktionen fehlten, an die ich gewöhnt bin.

Vergleichen wir den Beitragsbildschirm von WordPress mit und ohne JavaScript:

Die Noscript-Version der Post-Seite von WordPress, die aus zwei grundlegenden Texteingaben besteht.
Die noscript Version der Post-Seite von WordPress, die aus zwei grundlegenden Texteingaben besteht.
Die JavaScript-Version enthält Verknüpfungen zum Formatieren von Text, zum Einbetten von Zitaten und Medien und zur Vorschau des Inhalts als HTML.
Die JavaScript-Version enthält Verknüpfungen zum Formatieren von Text, zum Einbetten von Zitaten und Medien und zur Vorschau des Inhalts als HTML.

Ich fühlte mich ohne die Symbolleisten recht wohl, bis ich Screenshots in meinen Beitrag einbetten musste. Ohne die Schaltfläche „Medien hinzufügen“ musste ich zu separaten Bildschirmen gehen, um meine Dateien hochzuladen. Dies ist sinnvoll, da das Hochladen von Inhalten im Hintergrund Ajax erfordert, das JavaScript erfordert. Aber ich war ziemlich überrascht, dass der separate Medienbildschirm auch JavaScript erforderte!

Zum Glück gab es eine Fallback-Ansicht:

WordPress-Medienrasteransicht (erfordert JS)
Die noscript Version des Media-Bereichs im Admin-Backend. Ich wurde gewarnt, dass die Rasteransicht ohne JavaScript nicht unterstützt wird.
WordPress-Medienlistenansicht (Fallback)
Wer braucht schon Gitter? Die Listenansicht war für meine Bedürfnisse vollkommen in Ordnung.

Nachdem ich das Bild hochgeladen hatte, musste ich manuell ein HTML- img -Tag in meinen Beitrag schreiben und die Bild-URL kopieren und einfügen. Es gab keine Möglichkeit, die Thumbnail-URL des hochgeladenen Bildes zu ermitteln, und alle von mir geschriebenen Bildunterschriften mussten ebenfalls manuell kopiert werden. Ich hatte diesen Ansatz bald satt und plante, am nächsten Tag wiederzukommen und alle Bilder erneut einzufügen, wenn ich mir erlaubte, JavaScript wieder zu verwenden.

Ich beschloss, einen Blick darauf zu werfen, wie sich das Front-End meiner Website schlägt.

Anzeigen meiner Website ohne JavaScript

Ich war angenehm überrascht, dass meine Website ohne JS weitgehend gleich aussah:

Mit Javascript
Persönliche Website mit JavaScript.
Ohne Javascript
Persönliche Seite ohne JavaScript. Nur die Twitter-Einbettung sieht anders aus.

Schauen wir uns diese Twitter-Einbettung genauer an:

Tweeten Sie mit JavaScript
Beachten Sie die Autoreninformationen, Engagement-Statistiken und den Informationslink, die wir mit der noscript Version nicht erhalten. Das 'Häkchen' ist ein externes PNG. (Quelle)
Tweete ohne JavaScript
Fehlende Stile, aber enthält den gesamten Inhalt, einschließlich Hashtag-Link und Link zum Tweet. Das 'Häkchen' ist ein ASCII-Zeichen: .

Below the fold meiner Website habe ich auch einige Instagram-Inhalte eingebettet, die dem noscript Erlebnis gut standhalten.

Instagram mit JavaScript einbetten
Beachten Sie die Diashow-Punkte unter dem Bild, die darauf hinweisen, dass sich weitere Bilder in der Galerie befinden.
Instagram-Einbettung ohne JavaScript
Die noJS-Version hat solche Punkte nicht. Abgesehen von der fehlenden Slideshow-Funktionalität ist diese nicht von der JS-Version zu unterscheiden.

Schließlich habe ich eine GitHub-Einbettung auf meiner Website. GitHub bietet kein natives Embed an, daher verwende ich die inoffiziellen GitHub Cards von Hsiaoming Yang.

GitHub mit JavaScript einbetten
Die inoffizielle Karte gibt einen netten kleinen Schnappschuss und Links zu Ihrem GitHub-Profil.
GitHub-Einbettung ohne JavaScript
Ich stelle einen Fallback-Link zu GitHub bereit, wenn kein JavaScript verfügbar ist.

Ich hatte halb gehofft, Sie mit den Vorher-Nachher-Statistiken zu schockieren ( Megabyte JS für eine kleine Einbettung! Ende der Welt! Lassen Sie uns JavaScript fallen! ), und halb gehofft, dass es nur einen sehr kleinen Unterschied gibt ( progressive Verbesserung! Mit gutem Beispiel vorangehen ! Ich bin ein guter Entwickler! ).

Vergleichen wir die Seitengewichte mit und ohne JavaScript. Zunächst mit JavaScript:

Seitengewicht mit JavaScript
51 HTTP-Anforderungen mit 1,9 MB übertragen.

Jetzt ohne JavaScript:

Seitengewicht ohne JavaScript
18 HTTP-Anforderungen mit 1,3 MB übertragen.

Für einen gestylten Tweet, eine GitHub-Einbettung und eine vollwertige Instagram-Einbettung wächst meine Website um zusätzliche 600 KB. Ich habe auch Google Analytics-Tracking und einige nerdige versteckte interaktive Funktionen. Alles in allem scheinen 600 KB nicht übertrieben zu sein – obwohl ich ein wenig überrascht bin, wie viele zusätzliche Anfragen der Browser stellen muss, damit das alles passiert.

Der gesamte Inhalt ist immer noch ohne JavaScript vorhanden, alle Menüs sind immer noch navigierbar, und mit Ausnahme der Twitter-Einbettung fällt es Ihnen schwer zu erkennen, dass JavaScript deaktiviert ist. Infolgedessen hat meine Website die NOSCRIPT-5-Validierungsstufe bestanden – die allerbeste Nicht-JavaScript-Bewertung, die möglich ist.

ashton.codes noscript -Bewertung: NOSCRIPT-5.

Was ist das? Sie haben noch nie vom noscript -Klassifikationssystem gehört? Ich wäre sehr überrascht, wenn Sie es getan hätten, weil ich es mir gerade ausgedacht habe. Es ist mein praktischer kleiner Indikator für die Benutzerfreundlichkeit einer Website ohne JavaScript, und im weiteren Sinne ist es ein ziemlich guter Indikator dafür, wie gut eine Website darin ist, ihren Inhalt schrittweise zu verbessern.

noscript Klassifikationssystem

Websites – oder genauer gesagt, ihre einzelnen Seiten – fallen in der Regel in eine der folgenden Kategorien:

  • NOSCRIPT-5
    Die Website ist praktisch nicht von der JavaScript-fähigen Version der Website zu unterscheiden.
  • NOSCRIPT-4
    Die Site bietet Funktionalitätsparität für noscript, aber Links oder Weiterleitungen zu einer separaten Version der Site, um dies zu erreichen.
  • NOSCRIPT-3
    Die Website funktioniert weitgehend ohne JavaScript, aber einige nicht wichtige Funktionen werden nicht unterstützt oder sehen kaputt aus.
  • NOSCRIPT-2
    Die Website bietet eine Meldung, dass ihr Browser nicht unterstützt wird.
  • NOSCRIPT-1
    Die Website scheint geladen zu werden, aber der Benutzer kann die Schlüsselfunktionen überhaupt nicht verwenden.
  • NOSCRIPT-0
    Die Website lädt überhaupt nicht und bietet dem Benutzer kein Feedback.

Schauen wir uns einige beliebte Websites an und sehen, wie sie abschneiden.

Amazonas

Ich habe schon länger ein Auge auf einen kleinen Roboter-Staubsauger geworfen. Mein Mietvertrag erlaubt keine Haustiere, und das ist das Nächstbeste, wenn Sie ein paar Kulleraugen darauf richten.

Auf den ersten Blick macht Amazon mit seiner Nicht-JavaScript-Lösung einen guten Job, obwohl das Hauptproduktbild fehlt.

Amazon ohne JavaScript
Das Hauptbild fehlt, aber unverkennbar Amazon.
Amazon mit JavaScript
Mit JavaScript erhalten wir das Hauptbild. Schauen Sie sich diesen hübschen kleinen Staubsauger an.

Bei näherer Betrachtung war bei der noscript Version so einiges etwas kaputt. Ich möchte sie einzeln durchgehen und für jede eine Lösung vorschlagen.

Keine Galeriebilder

Ich wollte einige Bilder der Produkte sehen, aber das Klicken auf die Miniaturansichten brachte nichts.

Problem

Problem
Ich habe auf diese Thumbnails geklickt, aber es ist nichts passiert.

Mögliche Lösung

Es wäre schön gewesen, wenn diese Miniaturansichten Links zum vollständigen Bild wären, die sich in einem neuen Tab öffnen. Sie könnten dann mithilfe von JavaScript schrittweise in die Bildergalerie erweitert werden:

  • Entführen Sie das Click-Event des Thumbnail-Links;
  • Schnappen Sie sich das href Attribut;
  • Aktualisieren Sie das src -Attribut des Hauptbildes mit dem href -Attributwert.

Der Link „Falsche Produktinformationen melden“ ist nur JavaScript

Wird diese Funktion wirklich so häufig verwendet, dass es sich lohnt, zusätzliche JavaScript-Bytes für alle Ihre Benutzer herunterzuladen, damit sie als integriertes Modal innerhalb der Seite geöffnet wird?

Problem
Amazon integriertes modales Fenster (JavaScript-Version)

Problem

Mögliche Lösung
Es ist gut, dass die Produktinformationen für mich korrekt aussahen, denn ich konnte keine Probleme melden! Das Attribut „href“ hatte den Wert javascript:// , wodurch ein integriertes modales Formular geöffnet wird

Mögliche Lösung

Das integrierte modale Formular von Amazon erfordert JavaScript, um zu funktionieren. Ich würde die „Berichtsfunktion“ zu einem eigenständigen Formular auf einer separaten URL machen , z. B. /report-product?product-id=123 . Dies könnte schrittweise in das integrierte Modal erweitert werden, indem Ajax verwendet wird, um das HTML separat herunterzuladen.

Bewertungen sind standardmäßig nur teilweise sichtbar

Problem

Mögliche Lösung
Der Link Weiterlesen tut nichts.

Mögliche Lösung

Warum nicht standardmäßig die gesamte Bewertung anzeigen und dann JavaScript verwenden, um den Bewertungstext zu kürzen und den Link „Weiterlesen“ hinzuzufügen?

Es sei darauf hingewiesen, dass der Titel der Bewertung ein Link zur Bewertung auf einer eigenständigen Seite ist, sodass der Inhalt zumindest noch gelesen werden kann.

Im Großen und Ganzen war ich eigentlich angenehm überrascht, wie gut die Seite ohne JavaScript funktionierte. Es hätte genauso gut eine leere weiße Seite sein können. Das Fehlen von Produktbildern bedeutet jedoch, dass wir ein wirklich wichtiges Merkmal verpassen – ich würde behaupten, dass es entscheidend ist, sehen zu können, was Sie kaufen! – daher ist es eine Schande, dass wir ihm nicht das i-Tüpfelchen aufsetzen und ihm eine NOSCRIPT-5-Bewertung verleihen konnten.

Amazon noscript -Bewertung: NOSCRIPT-3.

Ich hatte mich immer noch nicht entschieden, welches Produkt ich kaufen wollte, also wandte ich mich an Camel Camel Camel, den Preistracker von Amazon.

Kamel Kamel Kamel

Ich wollte mich zwischen dem iLife V3s Pro und dem iLife A4s entscheiden, also ging ich zu https://uk.camelcamelcamel.com/. Zunächst sah die Seite nicht von der JavaScript-fähigen Version zu unterscheiden.

Mögliche Lösung
Camel Camel Camel, sieht nett und professionell aus — ohne JavaScript.
kein JavaScript-Problem
Sie könnten einen Git-Diff auf diesen Screenshots ausführen und Schwierigkeiten haben, den Unterschied zu erkennen!

Leider wurde das Preisverlaufsdiagramm nicht gerendert. Es bot zwar einen Alt-Text-Fallback, aber der Alt-Text gab mir keine Vorstellung davon, ob der Preistrend nach oben oder unten gegangen ist oder nicht.

Noscript-Version
Der alternative Text sagt „Amazon-Preisverlaufsdiagramm“, bietet aber keinen Einblick in die Daten.
JavaScript-Version
Schauen Sie sich dieses schöne Diagramm an, das Sie erhalten, wenn JavaScript aktiviert ist.

Allgemeiner Vorschlag: Stellen Sie immer einen aussagekräftigen Alt-Text bereit . Ich muss die Tabelle nicht unbedingt sehen, aber ich würde mich über eine Zusammenfassung dessen freuen, was sie enthält. Vielleicht könnte es in diesem Fall „Amazon-Preisverlaufsdiagramm sein, das zeigt, dass der Preis dieses Artikels seit März 2017 weitgehend unverändert geblieben ist“. Aber eine solche Zusammenfassung automatisch zu erstellen, ist zugegebenermaßen schwierig und anfällig für Anomalien.

Konkreter Vorschlag für diesen Anwendungsfall: Bild anzeigen . Das Diagramm auf der Skriptversion der Seite ist eigentlich ein eigenständiges Bild, also gibt es keinen Grund, warum es nicht auf der noscript Version angezeigt werden könnte!

Dennoch gab mir der Kerninhalt unter dem Diagramm die Informationen, die ich wissen musste.

Wer braucht ein Diagramm? Wir haben einen Tisch!
Wer braucht ein Diagramm? Wir haben einen Tisch!

Die Tabelle stellt die Merkmalsparität bereit, die benötigt wird, um eine NOSCRIPT-5-Einstufung zu sichern. Ich ziehe meinen Hut vor dir, Camel Camel Camel!

Camel Camel Camel noscript -Bewertung: NOSCRIPT-5

Google-Produkte

An diesem Punkt meines Tages erhielt ich aus heiterem Himmel einen Anruf: Ein Freund rief mich an und fragte nach einem Treffen in dieser Woche. Also ging ich zu Google Kalender, um meine Verfügbarkeit zu überprüfen. Google hatte andere Ideen!

Problem
Überraschenderweise bietet Google Kalender nichts für noscript Benutzer.

Ich war enttäuscht, dass es keinen noscript Fallback gab – Google ist normalerweise ziemlich gut in solchen Dingen.

Ich würde nicht erwarten, dass ich unbedingt Einträge zu meinem Kalender hinzufügen/bearbeiten/löschen kann, aber es sollte möglich sein , eine schreibgeschützte Ansicht meines Kalenders als Kerninhalt bereitzustellen .

Google-Kalender- noscript -Bewertung: NOSCRIPT-0

Da ich daran interessiert war zu sehen, wie Google andere Produkte verwaltet, habe ich einen kurzen Blick auf Google Spreadsheets geworfen:

Problem
Google Spreadsheets zeigt meine Tabelle an, hat aber eine große Warnmeldung mit der Aufschrift „JavaScript ist nicht aktiviert“ und lässt mich den Inhalt nicht bearbeiten.

In diesem Fall schlägt die Site viel eleganter fehl. Ich kann zumindest den Tabelleninhalt lesen, auch wenn ich ihn nicht bearbeiten kann. Warum bietet der Kalender nicht dieselbe Fallback-Lösung?

Ich habe keine Verbesserungsvorschläge für Google Spreadsheets! Es leistet gute Arbeit, um den Benutzer zu informieren, wenn Kernfunktionen in der noscript Erfahrung fehlen.

noscript -Bewertung von Google Spreadsheets: NOSCRIPT-2

Diese Bewertung ist gar nicht so schlecht! Nicht alle Websites werden in der Lage sein, ein noscript Erlebnis zu bieten, aber zumindest, wenn sie offen und ehrlich sind (dh sie werden sagen: „Ja, wir werden nicht versuchen, Ihnen etwas zu geben“), das Sie vorbereitet – der noscript Benutzer – für den Fall, dass es fehlschlägt. Sie werden keine wertvollen Sekunden damit verschwenden, ein Formular auszufüllen, das niemals gesendet wird, oder einen Artikel zu lesen, der dann Ajax verwenden muss, um den Rest seines Inhalts abzurufen.

Nun zurück zu meinem potenziellen Amazon-Kauf. Ich wollte mir vor dem Kauf einige Bewertungen von Drittanbietern ansehen.

Die Google-Suche funktioniert wirklich gut ohne JavaScript. Es sieht nur etwas veraltet aus, wie diese alten Nur-Desktop-Sites mit festen Auflösungen.

Noscript-Version
noscript Version hat auf der linken Seite zusätzliche Suchoptionen (ansonsten in den Einstellungen der JS-Version versteckt) – und kein Datenschutzbanner (vielleicht, weil „Tracking“ für noscript Benutzer nicht relevant ist?)
JavaScript-Version
Die JavaScript-Version bietet die Möglichkeit, per Spracheingabe zu suchen, und die Nachricht „Datenschutzerinnerung“.

Die Bildansicht sieht noch anders aus, und ich bevorzuge sie tatsächlich in einigen Punkten – diese Version lädt superschnell und listet die Abmessungen und Bildgröße in Kilobyte unter jedem Miniaturbild auf:

Noscript-Version
noscript Version: Beachten Sie die Bild-Metainformationen, die in der Skriptversion nicht enthalten sind!
JavaScript-Version
JavaScript-Version: Beachten Sie den Bereich „Verwandte Suchbegriffe“, der in der noscript Version nicht vorhanden ist.

noscript -Bewertung der Google-Suche: NOSCRIPT-5

Eines der Suchergebnisse führte mich zu einer Bewertung auf YouTube. Ich klickte, ohne viel zu erwarten. Ich hatte Recht, mich nicht aufzuregen:

Problem
YouTube bietet nicht viel noscript Erfahrung.

Ich würde nicht wirklich erwarten, dass eine Seite wie YouTube ohne JavaScript funktioniert. YouTube benötigt erweiterte Streaming-Funktionen, ganz zu schweigen davon, dass es sich für Kopierdiebstahl öffnen würde, wenn es einen eigenständigen MP4-Download als Fallback bereitstellen würde. Auf jeden Fall sollte keine Seite kaputt aussehen. Ich starrte ein paar Sekunden lang auf diesen Bildschirm, bevor mir klar wurde, dass nichts weiter passieren würde.

Vorschlag : Wenn Ihre Website keine Fallback-Lösung für noscript Benutzer bereitstellen kann, sollten Sie zumindest eine noscript Warnmeldung bereitstellen.

YouTube- noscript -Bewertung: NOSCRIPT-0

Welcher?

Ich habe ein paar weitere Bewertungslinks angeklickt. Das Welche? Beratungsseite hat mich komplett im Stich gelassen.

Problem
Die Seite sagt, dass es 10 gute Staubsauger zur Auswahl gibt, aber die Liste ist eindeutig mit Ajax oder so gefüllt, da ich nichts sehe.

Dies war eine Seite, die so aussah, als würde sie gut geladen, aber erst wenn Sie den Inhalt lesen, würden Sie feststellen, dass Ihnen tatsächlich einige Schlüsselinformationen fehlen müssen. Diese Schlüsselinformationen sind für den Zweck der Seite absolut zentral, und ich kann sie nicht bekommen. Daher ist das leider eine NOSCRIPT-1-Verletzung.

Vorschlag : Wenn Ihre Website Ajax-Inhalte enthält, existiert dieser Inhalt unter einer anderen URL. Stellen Sie Ihren noscript Benutzern einen Link zu diesem Inhalt zur Verfügung. Sie können den Link immer ausblenden, wenn Sie erfolgreich Ajaxing mit JavaScript durchgeführt haben.

Welcher? noscript -Bewertung der Website überprüfen: NOSCRIPT-1

Facebook

Irgendwann gestehe ich ein, dass ich mir im Moment keinen Staubsauger leisten kann. Also beschloss ich, auf Social Media aufzuspringen.

Laut Facebook ist JavaScript erforderlich, um fortzufahren, oder wir können auf den Link zur mobilen Website klicken.
Laut Facebook ist JavaScript erforderlich, um fortzufahren, oder wir können auf den Link zur mobilen Website klicken.

Facebook verweigert das Laden ohne JavaScript pauschal, bietet aber eine Fallback-Option. Hier ist unser erstes Beispiel für ein NOSCRIPT-4 – eine Website, die eine separate Version ihres Inhalts für noscript oder Feature-Phone-Benutzer anbietet.

Die mobile Website-Version von Facebook.
Die mobile Website-Version von Facebook.

Die mobile Version lädt sofort. Es sieht hässlich aus, aber es scheint, als ob ich den gleichen Inhalt bekomme, wie ich es normalerweise tun würde. Entscheidend ist, dass ich Feature-Parität habe: Ich kann hier die gleichen Dinge erreichen wie auf der Hauptseite.

Facebook- noscript -Bewertung: NOSCRIPT-4

Die Seite wurde blitzschnell geladen:

50,8 KB. Seite in 1,39 Sekunden geladen
50,8 KB. Seite in 1,39 Sekunden geladen

Ich konnte nur 7 Artikel gleichzeitig im Newsfeed sehen, aber ich konnte auf „Weitere Geschichten anzeigen“ klicken, was mich mit traditionellen Paginierungstechniken zu einer neuen Seite führte.

Ich bin beeindruckt, dass ich die Möglichkeit habe, auf einen Facebook-Kommentar zu „reagieren“, obwohl dies eine Aufgabe mit mehreren Bildschirmen ist:

Um zuerst zu reagieren, müssen Sie auf „Reagieren“ klicken…
Um zuerst zu reagieren, müssen Sie auf „Reagieren“ klicken…
… was Sie dann zu einem separaten Bildschirm führt, auf dem Sie Ihre Reaktion auswählen können.
… was Sie dann zu einem separaten Bildschirm führt, auf dem Sie Ihre Reaktion auswählen können.

Nichts hindert Facebook daran, ein Hover-Reaktionsmenü in Nicht-JavaScript zu erstellen, aber um fair zu sein, richtet sich dies an mobile Geräte, die nicht schweben können.

Vorschlag : Werden Sie kreativ mit CSS. Sie werden vielleicht feststellen, dass Sie JavaScript überhaupt nicht benötigen.

Es dauerte nicht lange, bis ein Videobeitrag in meinem Newsfeed auftauchte. (An diesem Punkt dämmerte mir, wie viel weniger Videoinhalte ich auf der mobilen Version im Vergleich zu normalem Facebook gesehen hatte, was bedeutete, dass ich tatsächlich den Status der Leute gesehen hatte und nicht ein zufälliges Video, das ihnen „gefiel“ – eine große Verbesserung soweit es mich betrifft!)

Ich hatte erwartet, dass das Video nicht funktioniert, wenn ich darauf klicke, aber das Klicken auf das Miniaturbild öffnete das Video in einem neuen Tab:

Sie benötigen kein JavaScript, um MP4-Dateien abzuspielen
Sie benötigen kein JavaScript, um MP4-Dateien abzuspielen.

Ich bin angenehm überrascht, dass alle Funktionen auf dieser noscript Version der Website vorhanden zu sein scheinen. Irgendwann fand ich jedoch eine Funktion, die einfach zu klobig und umständlich war, um sie bis zum Ende durchzusehen: die Albumerstellung.

Ich wollte ein Fotoalbum auf Facebook hochladen, aber im noscript ist das eine gewaltige Aufgabe. Es geht darum, jeweils ein Foto hochzuladen und für jeden Upload zwei oder drei Bildschirme zu durchlaufen. Ich habe verzweifelt versucht, eine Bulk-Upload-Option zu finden.

Wie mühsam dies ist, wurde mir nach Foto Nummer drei klar (mein Album wird noch viele weitere enthalten), also beschloss ich, Schluss zu machen und morgen wiederzukommen, wenn ich JavaScript habe.

Twitter

Die Dinge wurden seltsam, als ich zu Twitter rüberflog.

Twitter beim ersten Laden
Beim ersten Laden bekam ich etwas, das wie die normale Desktop-Site aussah.
Twitter-Umleitungsseite
Nach ein paar Sekunden wurde ich automatisch auf die mobile Seite weitergeleitet.

Ich war fasziniert von diesem Mechanismus, also habe ich mich in den Quellcode vertieft, der eigentlich überraschend einfach war:

 <noscript><meta http-equiv="refresh" content="0; URL=https://mobile.twitter.com/i/nojs_router?path=%2F"></noscript>

So schön einfach diese Lösung auch ist, ich fand die Erfahrung ziemlich klobig, weil ich in dem Blitz, bevor ich weitergeleitet wurde, sah, dass einer der Leute, denen ich auf Twitter folge, sich verlobt hatte. Sein Tweet erschien nicht oben in der „mobilen“ Version, also musste ich danach suchen.

Vorschlag : Bauen Sie eine Nachfrist in Ihre serverseitige Logik ein, damit durch Umleitungen und unvorsichtige Aktualisierungen keine interessanten Tweets verloren gehen, bevor Sie Gelegenheit hatten, sie zu lesen.

Ich konnte mich nicht an den Twitter-Handle meines Freundes erinnern. Die Suche war etwas knifflig – ich fing an, die AutoFill-Vorschläge wirklich zu vermissen!

Ein Screenshot, auf dem ich „andy“ als Suchbegriff eingebe, aber während der Eingabe keine Vorschläge zum automatischen Ausfüllen angezeigt werden.
Während der Eingabe wurden keine Vorschläge zum automatischen Ausfüllen angezeigt.

Glücklicherweise brachte die Suchergebnisseite sein Konto direkt nach oben und ich konnte seinen Tweet finden. Ich konnte sogar antworten.

Twitter- noscript -Bewertung: NOSCRIPT-4

Dies mag angesichts des klobigen Gefühls wie eine großzügige Punktzahl erscheinen, aber denken Sie daran, dass das Wichtigste hier die Feature-Parität ist. Es muss nicht schön aussehen.

Ich habe ein paar weitere Social-Media-Sites ausprobiert, die im Gegensatz zu Twitter nicht die schwindelerregenden Höhen der NOSCRIPT-4-Compliance erreichten.

Andere soziale Netzwerke

LinkedIn hat einen schönen, maßgeschneiderten Ladebildschirm. Aber es lädt nie, also konnte ich nur auf das Logo starren.

LinkedIn

LinkedIn- noscript -Bewertung: NOSCRIPT-0

Instagram hat mir buchstäblich nichts gebracht. Eine leere Seite. Eine ganz andere Geschmacksrichtung von NOSCRIPT-0.

Instagram

Instagram- noscript -Bewertung: NOSCRIPT-0

Ich war überrascht, dass Instagram hier so spektakulär versagt hat, da die Instagram-Einbettung auf meiner Portfolio-Seite einwandfrei funktionierte. Ich schätze, bei einer Einbettung weiß man nie, was die Browser-Support-Erwartungen des Drittanbieters sind, aber da ich die Seite direkt besuche, macht Instagram gerne den Anruf, um den Support einzustellen.

BBC News

Ich ging hinüber zur BBC, um meine Nachrichten zu bekommen.

BBC ohne JavaScript
Beachten Sie in der noscript Version die schmale Spalte und die einzelne Geschichte mit Vorschaubild.
BBC mit JavaScript
JavaScript-Version: Beachten Sie die volle Nutzung des Desktop-Bildschirms und mehrere Miniaturansichten der Artikel.

Das Menü ist etwas abseits und die Spalte ist ziemlich schmal (definitiv ein Muster, das ich auf vielen Websites sehe – warum bedeutet „kein JavaScript“ „mobiles Gerät“?), aber ich kann auf den Inhalt zugreifen.

Ich habe auf die Registerkarte „Meistgelesen“ geklickt, die mich zu einem anderen Teil der Seite führt. Mit Skripting wird dieser Ankerlink schrittweise verbessert, um ein tatsächliches Tab-Verhalten zu erreichen, was ein schönes Beispiel für den Aufbau eines soliden HTML-Kerns ist.

Problem

Bisher ist dies das einzige Beispiel für einen Ankerlink, auf den ich in meinem Experiment gestoßen bin, was schade ist, da es eine nette Technik ist, die einen zusätzlichen Seitenaufbau und die Fragmentierung der Site in viele Mikroseiten erspart.

Es sieht jedoch etwas seltsam aus, das CSS der geordneten Liste bedeutet, dass wir hier einen Fehler bei der doppelten Nummerierung haben. Ich klicke auf eine der Geschichten.

Der Artikel sollte ein Video enthalten, lautet aber stattdessen „Medienwiedergabe wird auf Ihrem Gerät nicht unterstützt“. Es gibt keine Abschrift.
Der Artikel sollte ein Video enthalten, lautet aber stattdessen „Medienwiedergabe wird auf Ihrem Gerät nicht unterstützt“. Es gibt keine Abschrift.

Ich kann nicht auf die Videoinhalte zugreifen, aber ich vermute, dass die BBC aufgrund von Rechteproblemen kein separates eigenständiges Video bereitstellen kann, wie es Facebook tut. Ein Transkript wäre jedoch nett – und nicht nur noscript Benutzer von Vorteil.

Vorschlag : Stellen Sie textuelle Fallbacks für audiovisuelle Inhalte bereit.

Um fair zu sein, fasst der Artikelinhalt im Wesentlichen den Inhalt zusammen, der im Video erscheint, sodass mir nicht wirklich Informationen entgehen.

Die Artikel- und Indexseiten werden mit etwa 300 KB (hauptsächlich Bilder) blitzschnell geladen. Ich vermisse die Vorschaubilder für die anderen Artikel auf der Seite und die Möglichkeit, meine Bildschirmfläche voll auszunutzen – aber das sollte die Bewertung nicht beeinträchtigen.

BBC- noscript -Rating: NOSCRIPT-5

GitHub

GitHub sieht fast genauso aus wie sein JavaScript-fähiges Gegenstück. Beeindruckend! Aber ich denke, dies ist eine Seite, die von Entwicklern für Entwickler entwickelt wurde.

GitHub mit JavaScript
Der einzige Unterschied, den ich sehe, ist die Art und Weise, wie GitHub mit der Zeit umgeht. Beachten Sie, dass bei aktiviertem JavaScript „vor 2 Tagen“ angezeigt wird...
GitHub ohne JavaScript
In der Version ohne Skript steht stattdessen „1. März 2018“.

Ich habe auf GitHub ein wenig Haushalt gemacht, mich in Repos umgesehen und alte Branches gelöscht. Für eine Weile vergaß ich wirklich, dass ich auf der Nicht-JavaScript-Version war, bis ich auf einen kleinen Fehler stieß:

Der Abschnitt „Letzten Commit abrufen…“ dreht sich für immer…
Der Abschnitt „Letzten Commit abrufen…“ dreht sich für immer…

Dann fragte ich mich: „Wie wird GitHub damit umgehen, Labels auf Issues anzuwenden?“ also habe ich es gewagt.

Diese Felder reagieren nicht, wenn Sie darauf klicken.
Diese Felder reagieren nicht, wenn Sie darauf klicken.

Ich konnte kein Problem erstellen und ihm gleichzeitig Labels hinzufügen. Tatsächlich konnte ich keine Möglichkeit finden, das Etikett hinzuzufügen, selbst nachdem ich ein leeres Problem erstellt hatte. Schade, dass die Seite an der letzten Hürde gescheitert ist, denn es war fast ein nahtloser Vergleich mit der geskripteten Version.

GitHub- noscript -Bewertung: NOSCRIPT-3

Während GitHub unglaublich aussieht – ich hätte nie gewusst, dass mein JavaScript deaktiviert war – ist es ein Mist, nicht in der Lage zu sein, die gleiche Schlüsselfunktionalität wie die Skriptversion zu verwenden. Sogar eine hässlich aussehende noscript Site würde eine höhere Punktzahl erhalten, weil Funktionalität wichtiger ist als Form.

Online-Banking

Wenn es einen Ort gibt, von dem ich erwartet habe, dass JavaScript erforderlich ist, dann auf der Website der NatWest Bank. Ich habe mich geirrt.

Es funktioniert nicht nur, es ist auch schwer von der normalen Seite zu unterscheiden. Der Anmeldebildschirm ist derselbe, der einzige Unterschied besteht darin, dass der Fokus nicht automatisch durch jedes Feld geht, wenn Sie es ausfüllen.

NatWest- noscript -Bewertung: NOSCRIPT-5

Sonstig

Ich bin im Laufe des Tages auf ein paar weitere Websites gestoßen.

FreeAgent – ​​die Website für Steuersoftware, die ich für meine freiberufliche Tätigkeit verwende – versucht nicht einmal einen noscript Fallback. Aber hey, das ist besser, als eine kaputte Website zu zeigen.

FreeAgent zeigt eine No-JavaScript-Meldung an.
FreeAgent zeigt eine No-JavaScript-Meldung an.

FreeAgent- noscript -Bewertung: NOSCRIPT-2

Und CodePen muss verständlicherweise auch ein NOSCRIPT-2 sein.

Ein CodePen zeigt eine No-JavaScript-Meldung an und suggeriert, es wäre ziemlich dumm zu erwarten, dass die Seite ohne JavaScript funktioniert!

CodePen- noscript -Bewertung: NOSCRIPT-2

Tonik, der Energieversorger, lässt mich nicht einloggen, aber das scheint eher ein Versehen als eine bewusste Entscheidung zu sein:

Ich sehe die Wörter „eingebetteter Bereich“, wo ich ein Anmeldeformular sehen sollte.
Ich sehe die Wörter „eingebetteter Bereich“, wo ich ein Anmeldeformular sehen sollte.

noscript -Bewertung von Tonik: NOSCRIPT-1

Mit M&S ​​Energy kann ich mich anmelden – nur um mir mitzuteilen, dass JavaScript erforderlich ist, um irgendetwas entfernt Nützliches zu tun.

M&S erfordert JavaScript, um zu funktionieren, aber Sie müssen sich mehr Mühe geben, um an diesen Punkt zu gelangen.
M&S erfordert JavaScript, um zu funktionieren, aber Sie müssen sich mehr Mühe geben, um an diesen Punkt zu gelangen.

M&S- noscript -Bewertung: NOSCRIPT-1

Jetzt komme ich zu meinem Lieblingsscreenshot des Tages.

Einer meiner Kollegen hat mir einmal einen Kurs zur Barrierefreiheit für Webdesign empfohlen, den ich mit einem Lesezeichen versehen habe. Ich beschloss, es mir heute anzusehen, und lachte über die Ironie des Alt-Textes:

Alt-Text von „Personas: Barrierefreiheit für Webdesign“. Soooo… was verpasse ich?
Alt-Text von „Personas: Barrierefreiheit für Webdesign“. Soooo… was verpasse ich?

Bei dem Alt-Text von „Personas: Barrierefreiheit für Webdesign“ bin ich mir nicht sicher, was ich hier übersehe – ist es ein Bild? Ein Video? Ein PDF? Der Kurs selbst?

Hinweis : Es ist eigentlich ein Video, obwohl Sie angemeldet sein müssen, um es anzusehen.

Der Alt-Text erfüllt seinen Zweck nicht wirklich, teilweise weil er automatisch ausgefüllt wird. Wir als Entwicklergemeinschaft müssen in solchen Dingen besser werden. Ich glaube nicht, dass ich heute irgendeinen nützlichen Alt-Text gelesen habe.

Zusammenfassung

Ich habe dieses Experiment mit dem Ziel gestartet, zu sehen, wie viele Websites mit progressiver Erweiterung implementiert werden. Ich habe hier nur eine winzige Handvoll Websites besucht, die meisten davon große Namen mit großen Budgets, daher ist es interessant, die große Vielfalt an Nicht-JavaScript-Unterstützung zu sehen.

Es ist interessant zu sehen, dass relativ einfache Websites – insbesondere Instagram und LinkedIn – eine so schlechte noscript Unterstützung haben. Ich glaube, das liegt zum Teil an der stetig wachsenden Popularität von JavaScript-Frameworks wie React, Angular und Vue. Entwickler erstellen jetzt eher „Webanwendungen“ als „Websites“, mit dem Ziel, das Erscheinungsbild nativer Apps nachzubilden, und die Verwendung von JavaScript zur Verwaltung des DOM ist die einfachste Art, solche Erfahrungen zu erstellen.

Es besteht die Gefahr, dass immer mehr Seiten JavaScript benötigen, um überhaupt Inhalte darzustellen. Glücklicherweise ist es normalerweise möglich, Ihre Inhalte auf die gleiche, entwicklerfreundliche Weise zu erstellen, aber auf dem Server zu rendern, beispielsweise indem Sie Preact anstelle von React verwenden. Die bewusste Entscheidung, sich um noscript zu kümmern, bietet die Vorteile eines Kernerlebnisses, wie am Anfang dieses Artikels beschrieben, und kann auch zu einer schnelleren Ladezeit führen.

Es kann ziemlich entmutigend sein, von Grund auf über eine Anwendung nachzudenken, aber eine anständige Kernerfahrung ist normalerweise möglich und erfordert in vielen Fällen nur einfache Optimierungen. Eine gute Kernerfahrung weist auf eine gut strukturierte Webseite hin, was wiederum meist ein gutes Zeichen für SEO und Barrierefreiheit ist. Es handelt sich normalerweise um eine gut gestaltete Webseite, da der Designer und Entwickler Zeit und Mühe darauf verwendet haben, darüber nachzudenken, was den wirklichen Kern des Erlebnisses ausmacht. Progressive Verbesserung bedeutet robustere Erfahrungen mit weniger Fehlern in der Produktion und weniger individuellen Browser-Macken, weil wir die Plattform die Arbeit erledigen lassen, anstatt zu versuchen, alles von Grund auf neu zu schreiben.

Welcher noscript Bewertung entspricht Ihre Website? Lass es uns in den Kommentaren wissen!