Was ist das Beste, wenn ein Benutzer JavaScript nicht aktiviert hat? Was ist der beste Weg, um Inhalte für diese Art von Benutzer zu liefern? Was ist der beste Weg, um eine Website von Suchmaschinen lesbar zu halten?
Ich kann mir zwei Möglichkeiten vorstellen, um das zu erreichen, aber ich weiß nicht, was besser ist (oder ob eine dritte Option besser ist):
Ich würde auch hochkarätige Beispiele für die richtige oder falsche Vorgehensweise zu schätzen wissen.
--------- ZUSATZ ZUR FRAGE -----------
Hier ist ein Beispiel für das, was ich in der Vergangenheit getan habe: Ссылка
Ich möchte sicherstellen, dass es dafür keine besseren Möglichkeiten gibt.
Du sprichst von graziöser Degradierung: Entwerfe und baue die Seite so, dass sie mit JavaScript funktioniert, dann mache die Seite immer noch mit deaktiviertem Javascript. Am einfachsten ist es, das html "noscript" -Tag irgendwo in der Nähe des oberen Randes Ihrer Seite einzufügen, das eine Nachricht enthält, die besagt, dass die Seite Javascript benötigt oder die Dinge nicht richtig funktionieren. SO ist ein perfektes Beispiel dafür. Die meisten Schaltflächen am oberen Bildschirmrand laufen über Javascript. Schalte es aus und du bekommst ein schönes rotes Banner und die Drop-Down-JS-Effekte sind weg.
Ich bevorzuge progressive Enhancement-Entwicklung. Lass die Seite in ihrer Gesamtheit ohne Javascript / flash / css3 / was auch immer arbeiten, dann verbessere sie Stück für Stück (schließe immer noch das noscript-Tag ein), um die Benutzererfahrung zu verbessern. Dies stellt sicher, dass Sie eine voll funktionsfähige, lesbare Website haben, unabhängig davon, ob Sie ein Benutzer mit einem Bildschirmleseprogramm oder einer Suchmaschine sind, der eine Behinderung darstellt, und gleichzeitig Benutzern mit neueren Browsern eine gute Benutzererfahrung bietet.
Unterste Zeile: Für jeden dynamisch generierten Inhalt (zum Beispiel Seitenelemente, die über AJAX generiert werden) muss eine statische Seitenalternative vorhanden sein, in der dieser Inhalt über einen Standardlink verfügbar sein muss. Wenn Sie Javascript für Tabbed Content verwenden, zeigen Sie den gesamten Inhalt auf eine Weise an, die mit dem Rest der Webseite übereinstimmt.
Ein Beispiel ist Ссылка Deaktivieren Sie Javascript und Sie haben eine ganze Seite mit geschriebenen Inhalten, Bildern, Links usw. Schalten Sie JavaScript ein und Sie erhalten Scroll-Nachrichten, Tabbed Content, Bildlauf und so weiter.
Ich werde unartig sein und Links zu Wikipedia posten:
Progressive EnhancementSie haben eine andere Option, laden Sie einfach die gleiche Seite, aber machen Sie es für Noscript-Benutzer (progressive Verbesserung / gradeful Degradation).
Ein einfaches Beispiel:
Sie möchten Inhalt in ein div mit ajax laden, ein <a>
-Tag auf die gesamte Seite mit dem neuen Inhalt verlinken (noscript-Verhalten) und das <a>
-Tag mit jQuery binden, um Klicks abzufangen und mit ajax zu laden (Skriptverhalten) .
Ich bin mir nicht ganz sicher, ob Progressive Enhancement heutzutage als Best Practice gilt, aber es ist der Ansatz, den ich persönlich bevorzuge. In diesem Fall schreiben Sie Ihren serverseitigen Code so, dass er wie eine standardmäßige Web 1.0-Web-App (ohne JavaScript) funktioniert, um mindestens so viele Funktionen bereitzustellen, dass das System ohne JavaScript funktioniert. Sie beginnen dann mit der Überlagerung von JavaScript-Funktionen, um das System benutzerfreundlicher zu gestalten. Wenn Sie es richtig gemacht haben, sollten Sie mit einer Web-App enden, die zumindest genug Funktionalität bietet, um für Nicht-JavaScript-Benutzer nützlich zu sein.
Ein verwandter Prozess ist als Graceful Degradation bekannt, der auf ähnliche Weise funktioniert, aber mit der Annahme beginnt, dass ein Benutzer JavaScript aktiviert hat und in Fällen, in denen er / sie nicht funktioniert, Workarounds einbaut. Dies hat jedoch den Nachteil, dass Sie, wenn Sie etwas übersehen, einen Benutzer ohne JavaScript zurücklassen können.
Progressive Enhancement-Beispiel für eine Suchseite: Erstellen Sie Ihre Suchseite so, dass sie normalerweise nur eine HTML-Seite von Suchergebnissen zurückgibt, aber auch ein Flag, das über GET gesetzt werden kann. Wenn gesetzt, gibt es stattdessen XML oder JSON zurück. Fügen Sie auf der Suchseite ein Skript ein, das eine AJAX-Anfrage an die Suchseite sendet, wobei das Flag an die Abfragezeichenfolge angehängt wird. Anschließend wird der Hauptinhalt der Seite durch das Ergebnis des AJAX-Aufrufs ersetzt. JavaScript-Benutzer erhalten den Vorteil von AJAX, aber diejenigen ohne JavaScript erhalten immer noch eine praktikable Suchseite.
Wenn Ihre Anwendung Javascript verwenden muss, können Sie nichts tun, außer ihnen eine höfliche Nachricht in einem noscript-Tag anzuzeigen.
Andernfalls sollten Sie anders herum denken.
Wenn der Benutzer nicht über JS verfügt, wird Ihre Site dennoch zu Schritt 2 Ihres Standorts zurückkehren.
Wie zum Crawlen. Wenn Ihre Website von AJAX und einer Menge JS abhängig ist, können Sie gogole darauf aufmerksam machen: Ссылка
Ein kurzer Tipp, der Ihnen helfen kann: Installieren Sie einfach lynx, einen Befehlszeilen-Webbrowser, und Sie werden sofort sehen, wie Google und andere Ihre Website sehen (und auch blinde Menschen). Dies ist sehr nützlich. Natürlich sind in einem Befehlszeilenfenster keine Grafiken und JavaScript deaktiviert.
Wenn Sie "ernsthafte" Ajax (z. B. Client-Side-Routing) tun, könnte die folgende Technik nützlich sein:
Ein schöner Beispielcode für Links, die ich bei der Suche nach "Wie schreibe ich richtigen Ajax-Code" gefunden habe:
%Vor%Dies ist natürlich eine ziemlich komplexe Lösung, aber es sollte sowohl SEO (einschließlich Suchmaschinen-Crawler) als auch Barrierefreiheit ermöglichen. Das Problem ist, dass Sie in der Lage sein müssen, Ihren Seitenserver - AND Client-Seite zu rendern.
Eine Lösung könnte darin bestehen, ein Template-Framework wie einen Schnurrbart zu verwenden, in dem Implementierungen für verschiedene Plattformen existieren.
Das ist das beste allgemeine Design, das ich bisher gefunden habe. Sie können eine Deep-Link-Funktion in Ihre App integrieren, die für Suchmaschinen geeignet ist und Sie dazu zwingen sollte, eine Seite zu erstellen, die sich leicht verschlechtert.
P.S .: Ein Vorteil der oben beschriebenen Techniken ist, dass sowohl das Ajax- als auch das "Web 1.0" -Rendering von Memcached-Caching ganzer Pagelets profitieren kann.
Tags und Links javascript seo noscript