it-swarm-eu.dev

Sollte ich mich die Mühe machen, für deaktiviertes JavaScript zu entwickeln?

Sollte ich mich die Mühe machen, für deaktiviertes JavaScript zu entwickeln?

Ich habe das Gefühl, dass meine Zeit besser für die Mehrheit verwendet wird.

103
Jiew Meng

Es gibt eine Webdesign-Philosophie namens Progressive Enhancement , die Sie berücksichtigen sollten. Die Idee ist, dass Sie eine einfache Site erstellen, die verwendbar und funktionsfähig ist, und dann diese Verbesserungen wie jQuery und browserspezifische Dinge überlagern, um sie zu "verbessern". Auf diese Weise erhalten Sie eine Website, die für alle funktioniert und für die Mehrheit gut aussieht.

Wenn Sie das nicht überzeugt, sollten Sie andere Gründe in Betracht ziehen, warum eine Website ohne Javascript funktioniert:

  • Es ist SEO-freundlicher. Wenn Ihre Website für Inhalte und Links auf JS angewiesen ist, ignorieren Suchmaschinen wahrscheinlich große Teile davon.

  • Stellen Sie sich vor, Sie sind eine E-Commerce-Website, die Widgets verkauft. Selbst wenn nur 5% Ihrer Kunden Javascript deaktivieren, bedeutet dies einen potenziellen Umsatzverlust von 5%. Lohnt es sich, Kunden zu verlieren?

  • Diskriminieren Sie Behinderte nicht. Wenn Sie sich auf Javascript verlassen, bedeutet dies, dass Ihre Website nicht zugänglich ist. In einigen Fällen (z. B. auf Websites der Regierung/des öffentlichen Sektors) können Sie gegen das Gesetz verstoßen, indem Sie Personen diskriminieren.

70
Dan Diplo

Zum einen bin ich nicht einverstanden mit den Leuten da draußen, die darauf bestehen, dass alles ohne Javascript funktionieren sollte. Es ist in vielen Fällen schön, auf den kleinsten gemeinsamen Nenner zu codieren (zum Beispiel wäre ich wirklich sauer, wenn die Website meiner Bank Flash oder einen solchen Unsinn benötigt.) Aber realistisch gesehen hat heutzutage fast jeder Javascript aktiviert und wenn es richtig verwendet wird Die daraus resultierenden Websites können sehr spektakulär und nützlich sein! (Ich meine, mal sehen, wie schön Google Maps ist, wenn Javascript deaktiviert ist ...)

Dies sollte Sie jedoch nicht davon abhalten, zumindest sicherzustellen, dass Ihre Seite ordnungsgemäß fehlschlägt, wenn Javascript nicht vorhanden ist. Lassen Sie Ihre Benutzer NIEMALS auf eine halb geladene, kaputte Seite starren, ohne darauf hinzuweisen, was schief gelaufen ist. Fragen Sie sich einfach: Würde ich lieber 2 Minuten damit verbringen, eine Nachricht "Diese Seite erfordert Javascript" zu codieren, oder täglich 10 E-Mails von Benutzern erhalten, die mir mitteilen, dass meine Seite fehlerhaft ist, weil sie Noscript aktiviert haben?

47
Toji

Ja du solltest.

Wenn Sie dies als etwas wahrnehmen, das zusätzliche Anstrengungen erfordert, können Sie es umgekehrt tun.

Entwickeln Sie Ihre Seiten so, dass sie zuerst ohne JavaScript funktionieren, und fügen Sie dann JavaScript-basierte Verbesserungen, Ajax-Effekte usw. hinzu. Sie funktionieren, wenn JS unterstützt/aktiviert wird, andernfalls werden Ihre Seiten ordnungsgemäß verschlechtert.

Und bitte entwickeln Sie nicht die Seiten, auf denen:

  1. Der gesamte Inhalt wird per JavaScript aus der Datenbank abgerufen

  2. Das Markup fällt vollständig auseinander, da die Elemente zusammengeklebt und durch JavaScript und nicht durch CSS an den richtigen Stellen platziert werden

  3. Links in der Navigation und im Textkörper funktionieren ohne JavaScript nicht (es sei denn, es handelt sich um ein Framework wie ASP.NET, das aus einem bestimmten Grund auf JavaScript basiert).

Es ist nur gegen den Geist des Webs und gegen den gesunden Menschenverstand.

P.S. Wird von einem Benutzer des NoScript gesprochen.

39
user8685

Als Entwickler mache ich mir keine Sorgen mehr um 1% der Benutzer, die Javascript deaktivieren. Es ist zu zeitaufwändig und die Entwicklungszeit zu teuer, um solchen Unsinn zu verschwenden. AJAX spart unglaublich viel Bandbreite, was sich direkt in $$$ Einsparungen niederschlägt, was die Gewinne erhöht. Wenn ich einen oder zwei potenzielle Benutzer der Website pro 100 Benutzer verliere, verlieren diese einen oder zwei Benutzer werden in der Entwicklung viel mehr kosten als das potenzielle Einkommen, das sie jemals einbringen könnten.

Versuchen Sie, Javascript auszuschalten und sich bei Facebook anzumelden. Danach wird es zu einer sehr kaputten Website. Wenn es gut genug für Facebook ist, ist es gut genug für mich.

33
Robert

Persönlich verwende ich beim Surfen das Plugin NoScripts Firefox und ermutige andere, es zu verwenden. Auf allen Familien-PCs, die ich pflege, ist NoScripts eines der obligatorischen Teile der Software, die ich installiere. Ich habe es mit einer Whitelist der grundlegenden E-Mail- und Banking-Websites zusammen mit den beliebten Social- und Video-Websites eingerichtet und ihnen erklärt, wie die temporäre Genehmigung funktioniert. Nach der Popularität dieses Plugins zu urteilen, denke ich, dass es einen ziemlich guten Teil der Leute gibt, die es benutzen.

Zumindest erwarte ich, dass die Navigationsfunktion ohne Skripte funktioniert. Wenn Sie etwas Bestimmtes wie ein Video haben, für das Skripte erforderlich sind, ist dies in Ordnung. Zeigen Sie jedoch einen netten Platzhalter an, auf dem steht, dass zum Anzeigen dieses Videos Skripte erforderlich sind.

Es ist jedoch ein großer Fehler, Ihre Navigation auf Skripte zu stützen. In vielen Fällen werde ich angewidert von der Website abprallen. Ein noch größerer Fehler besteht darin, dass ein Teil Ihrer Website oder Navigation einfach vollständig verschwindet, wenn Skripte deaktiviert sind. Wenn Sie nicht die Tatsache hervorheben, dass etwas fehlt, besteht eine gute Chance, dass ich es nicht einmal bemerke. Verlassen Sie Ihre Website einfach und denken Sie, dass sie nicht vorhanden ist. Eine Vollbildnachricht mit der Meldung "Diese Website erfordert Skripte" bringt Sie nicht weit. Ich muss erst einige Inhalte anzeigen, bevor ich Ihnen genug vertraue, um Skripte zuzulassen.

Vergessen Sie nicht, dass nicht nur Desktop-PCs Ihre Website durchsuchen, sondern auch mobile Browser immer beliebter werden. Obwohl die Unterstützung für mobiles JavaScript immer besser wird, ist sie bei weitem nicht perfekt. Wenn Sie also nicht alle verschiedenen mobilen Browser gründlich testen, würde ich vorschlagen, dass Sie die mobile Version Ihrer Seite so gut wie ohne Skript durchsuchen.

11
Simon P Stevens

Es hängt von der Site ab und wer sie verwenden wird.

Ist die Site öffentlich oder handelt es sich um ein Intranet oder eine Site, die nur bestimmten Kunden zur Verfügung steht? Sie werden wahrscheinlich in der Öffentlichkeit auf Benutzer ohne JavaScript stoßen. Wenn es nur von Clients verwendet wird, können Sie ihnen mitteilen, dass Sie nur aktiviertes JavaScript unterstützen?

Ist SEO eine Überlegung oder ist die gesamte Website hinter einem Anmeldebildschirm oder SEO ist es sonst kein Faktor? Es ist viel einfacher, für Suchmaschinen zu optimieren, wenn kein JavaScript vorhanden ist.

Wird die Website jemals in mobilen Browsern verwendet? Mobile Browser unterstützen häufig kein oder nur schlechtes JavaScript.

Sie sollten sich auch darüber im Klaren sein, dass JavaScript Bildschirmlesern die Verarbeitung Ihrer Website erschweren kann und andere potenziell negative Überlegungen zur Barrierefreiheit enthält.

Benutzer von textbasierten Browsern (z. B. Luchs) haben ebenfalls wenig oder keine JavaScript-Unterstützung.

Sie müssen sich Ihre Website und Ihre Zielgruppe ansehen und entscheiden, ob Sie Benutzer unterstützen möchten, bei denen JavaScript deaktiviert ist. Sie müssen auch sehen, ob es überhaupt möglich ist, kein JavaScript zu verwenden. Wenn Sie eine erweiterte Webanwendung erstellen und Unterstützung für Webcam und Mikrofon benötigen, ist es möglicherweise unmöglich, kein JavaScript zu verwenden.

Wenn Sie entscheiden, dass Sie Benutzer ohne JavaScript unterstützen müssen, können Sie weiterhin JavaScript verwenden. Sie sollten nur die Website ohne sie noch funktionsfähig machen. Dies wird als progressive Verbesserung bezeichnet. Sie sollte sich ordnungsgemäß verschlechtern, wenn keine JavaScript-Unterstützung vorhanden ist.

Wenn Sie JavaScript benötigen, sollten Sie Ihre Benutzer benachrichtigen (mit <noscript> tag), dass Sie dies tun.

9
Adam

Kann ich einen Artikel aus "A List Apart" empfehlen?:

Progressive Verbesserung mit JavaScript

... Wir haben die Denkweise überprüft, die für die Implementierung einer progressiven Verbesserung in JavaScript erforderlich ist, sowie verschiedene Techniken, mit denen dies durchgeführt werden kann. Wir haben auch das Konzept der unauffälligen Skripterstellung angesprochen und ein wenig über das Verwalten der Wechselbeziehung zwischen CSS und JavaScript gelernt.

Wenn Sie den allgemeinen Ansatz mit diesem Artikel mit nützlichen Tools wie JQuery (oder Prototype oder einem beliebigen JavaScript-Framework Ihrer Wahl) kombinieren, ist es wirklich trivial, das JavaScript-Verhalten nachträglich anzuwenden.

Es gibt verschiedene Arten von Browsern, die noch kein JavaScript oder zumindest eine sehr eingeschränkte JavaScript-Unterstützung bieten. Ganz zu schweigen von der Regel Nr. 1 für die Einhaltung der WCAG und des Abschnitts 508 (Zugänglichkeit für Nicht-US-Bürger) ist, dass der Anblick nicht von einer Skriptsprache abhängt, um Funktion. Wenn die Seite jedes Mal neu geladen wird, wenn ich eine Änderung vornehme, ich aber trotzdem Änderungen vornehmen kann, funktioniert sie. Die Ebene AJAX) oben auf der Basisseite ermöglicht es mir, dasselbe ohne erneutes Laden der Seite zu tun.

Die wichtigsten Gründe, warum ich keine JavaScript-Benutzer unterstütze, sind:

  • Unterstützung von Menschen mit Behinderungen (Bildschirmleser, alternative Eingabegeräte usw.)
  • Unterstützung sicherheitsbewusster Menschen: Seien wir ehrlich, es gibt schlechte Menschen, die abscheuliche Dinge mit JavaScript tun. Die einfachste Lösung besteht also darin, JavaScript loszuwerden
  • Dies ist der einfachste Weg, Anzeigen ohne Plugin zu deaktivieren
  • Mobile und eingebettete Geräte
  • Befehlszeilenbrowser zum Herunterladen von Tools auf Headless-Servern
  • Suchmaschinenspinnen folgen nur echten Links - JavaScript verwirrt sie

Wenn Sie Cookies und JavaScript auf Ihrer Website benötigen, damit Funktion funktioniert, führen Sie bitte Ihre Due Diligence durch, um die folgenden Probleme mit den folgenden zu vermeiden:

  • Cross-Site-Scripting-Angriffe
  • Benutzer-Tracking von Drittanbietern
  • Hacking/Defacement durch DOM-Manipulation
  • Phishing (Wenn ein Skript auf Ihr DOM zugreifen kann, kann es alle Informationen auf der Seite an den Server senden, von dem es geladen wurde.)

(Und das ist nur die kurze Liste)

Wenn die Lösung nicht so schwer ist, warum nicht?

Vergessen Sie auch nicht, während Ihres JavaScript-Festes eine vernünftige Tastaturnavigation zu unterstützen.

8
Berin Loritsch

Absolut

Eine Site, die ohne JavaScript nicht richtig funktioniert, sollte den Benutzer eindeutig benachrichtigen. Es sollte so viel wie möglich gemacht werden, damit es ohne JavaScript richtig funktioniert. Es gibt bestimmte Fälle, in denen dies nicht möglich ist. Hochdynamische Sites, die auf Ebenen von AJAX und Remote-Abrufe) erstellt wurden, sind eine davon. Dies bedeutet nicht, dass es in Ordnung ist, eine leere Seite anzuzeigen wenn ich JavaScript deaktiviert habe.

Eine ordnungsgemäße Verschlechterung ist äußerst wichtig und gilt nicht nur für JavaScript, sondern für alles, was Sie codieren. Gültiges HTML-Markup, gültiges CSS, serverseitige Überprüfung von alles.

8
Josh K

Auf einer Site wie dieser finden Sie viele Entwickler, die Ihnen sagen, wie sie Javascript deaktiviert haben, sodass Sie die progressive Verbesserung unterstützen sollten. In Wirklichkeit sind von den 5% der Menschen, die Javascript deaktiviert haben, 90% Entwickler und andere Technikfreaks, sie sind nicht die breite Öffentlichkeit. Die meisten wichtigen Websites unterstützen keine progressive Verbesserung. Haben Sie versucht, Facebook ohne Javascript zu verwenden? Sie sagen im Grunde, geh weg.

4
Craig

<5% der Benutzer deaktivieren Javascript

Laut BrowserStatistics hatten 2008 nur 5% der Benutzer JavaScript deaktiviert. Der Trend ist stetig zurückgegangen, so dass man sehr sicher davon ausgehen kann, dass diese Zahl in der Nähe von 2011 viel geringer ist.

Gradegrade Downgrade

Ihre Site sollte niemals beschädigt werden - unabhängig davon, ob die Benutzer JS aktiviert oder deaktiviert haben. Selbst wenn es so einfach ist, eine Nachricht anzuzeigen, für die auf Ihrer Website Javascript aktiviert sein muss, sollten Sie sicherstellen, dass Ihre Website für die wenigen Auserwählten akzeptabel und fehlerfrei gerendert und verhalten wird.

Überarbeitung für Nicht-JS-Benutzer? Normalerweise: Nein.

Der normale Entwickler muss keine Nicht-Javascript-Version in einer anderen Sprache erstellen. Wenn jedoch bekannt ist, dass Ihre Kunden Anti-Javascript-Anforderungen haben, sind Sie offensichtlich gezwungen, sich darum zu kümmern. (Auch GMail hat eine No-JS-Version)

3
rlb.usa

Meine Gedanken:

Die Verwendung von Javascript vergrößert immer die Angriffsfläche, nicht nur für Sie, sondern auch für Ihre Kunden - fast jeder, den ich kenne, surft mit NoScript, und dies schließt nicht-technische Leute ein.

Wenn ich eine Online-Shopping-Site sehe, die Javascript schlecht verwendet, werde ich nicht bei ihnen kaufen. Ich surfe immer zuerst mit deaktiviertem Javascript, und wenn sich eine Site ordnungsgemäß verschlechtert, könnte mich das interessieren. Wenn es nur kaputt ist, gehe ich normalerweise davon aus, dass die Programmierer auch nicht in der Lage sind, eine sichere Shop-Plattform bereitzustellen.

Es verlangsamt tendenziell alles - obwohl ich in der Nähe einer Großstadt bin, ist mein Breitband langsam genug, ohne auf das Laden einer Marketingidee warten zu müssen. Wenn das Laden grundlegender Inhalte auf einer Website länger als 5 Sekunden dauert, werde ich mich nur darum kümmern, wenn ich einen echten Bedarf habe.

1
Rory Alsop

Nur bei geschäftskritischer Funktionalität

Im Allgemeinen ist es eine gute Idee, "anmutig abzubauen". Ich würde mich jedoch nur auf geschäftskritische Teile Ihrer Webanwendung konzentrieren, um Situationen zu berücksichtigen, in denen JavaScript möglicherweise nicht verfügbar ist.

Wenn es nur "Schnickschnack" -Effekte sind, dann stört es Sie nicht. Leute, die absichtlich ohne JavaScript surfen, müssen nur eine einfache Erfahrung machen (hey, das ist ihre Wahl, wenn sie Js nicht verwenden).

1
Darknight

Die meisten Antworten hier scheinen Kritik an Standardwebsites hervorzuheben, die JavaScript auf nicht wesentliche oder hackige Weise verwenden. Aber was ist mit Web-Apps? Es gibt eine Menge kritischer Funktionen, die ohne JavaScript nicht einmal so effektiv aus der Ferne erreicht werden können. Sogar etwas so Einfaches wie ein einfacher Word-Zähler unter einem Textbereich oder das Aktivieren/Deaktivieren einer zusätzlichen Formularfrage basierend auf der Antwort auf eine andere. Ist es in diesem Fall nicht vernünftig, für die Mehrheit zu bauen und für die Minderheit anmutig abzubauen? Vor allem, wenn Sie wissen, dass Ihre Benutzerbasis nicht technisch ist und JS wahrscheinlich nicht deaktiviert ist?

1
Jordan

Dinge, die man beachten muss:

AFAIK, Suchmaschinenspinnen mögen Javascript nicht. Sie sollten grundlegende Inhalte und Navigation ohne Javascript nur für SEO haben.

Einige Websites enthalten möglicherweise Regeln für den Zugriff von Behinderten, entweder aus rechtlichen Gründen oder aus Unternehmensrichtlinien. Dies wird normalerweise am besten mit einfachem HTML im Gegensatz zu Javascript erreicht.

Während die meisten Leute heutzutage mit Javascript surfen, ist das keine Garantie für die Zukunft. Das Web wird immer feindlicher und Tools wie NoScript werden möglicherweise immer beliebter. Alternativ ist es möglich, dass mehr Benutzer Geräte mit weniger leistungsfähigen Browsern verwenden, obwohl dies bei einigen Android -Telefonen relativ kostengünstig ist) weniger wahrscheinlich ist. Eine ordnungsgemäße Verschlechterung kann eine Möglichkeit sein, die Website zukunftssicher zu machen.

0
David Thornley

Ja.

Ich werde nicht über Leute mit NoScript, eingebetteten Geräten usw. sprechen. Ihr Anteil kann gemessen werden, und dann können Sie entscheiden, ob der Umsatz durch ärgerliche, z. 0,5% Benutzer sind es wert, eine Lösung für sie zu implementieren.

Es gibt aber auch andere Gründe, dem Prinzip der progressiven Verbesserung zu folgen, und diese sind oft wichtiger.

  1. 100% Benutzer können Javascript nicht ausführen, bevor Skripte geladen werden. Wenn die Site ohne js funktionieren kann, kann sie für Erstbesucher, Besucher mit leerem Cache und für alle Besucher nach js-Code-Updates schneller geladen werden.

  2. Websites, die ohne js arbeiten können, sind zuverlässiger. Ein Javascript-Fehler beim Brechen einer Website ist ein architektonischer Albtraum. Weitere Informationen zu diesem und verwandten Problemen: http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs

  3. Es ist einfacher, sich an Progressive Enhancement zu halten, als eine SEO-freundliche Nur-Javascript-Site zu implementieren.

  4. Es ist einfacher, automatisierte Tests für Websites zu schreiben, für deren Funktion kein Javascript erforderlich ist.

Es ist eigentlich ganz einfach, dem Prinzip der progressiven Verbesserung zu folgen. Warum also nicht folgen?

0
Mike Korobov

Hängt von der Antwort auf eine einzelne Frage ab:

"Sind die Kosten für die Unterstützung von Benutzern mit deaktiviertem Javascript höher oder niedriger als das Geld, das durch die Nichtunterstützung dieser Benutzer verloren geht?"

Angenommen, Ihre Website hat eine Lebensdauer von 3 Jahren, bevor sie neu erstellt werden muss. Die Erstellung für "Rich Clients" kostet 30.000 GBP, und Sie fügen weitere 10.000 GBP hinzu, um Nicht-Javascript-Benutzer zu unterstützen (von denen wir davon ausgehen, dass es 5% gibt) von)

Wenn die fehlenden 5% der Benutzer mehr als £ 10.000 ausgegeben hätten - tun Sie es. Wenn dies nicht der Fall ist, tun Sie es nicht, es sei denn, Sie sind gesetzlich dazu verpflichtet.

Dies ist eher eine geschäftliche als eine technische Entscheidung.

0
PhonicUK