web-dev-qa-db-ja.com

JavaScriptを無効にして開発する必要はありますか?

JavaScriptを無効にして開発する必要はありますか?

私の時間は、大多数のために開発に費やされた方が良いと感じています。

103
Jiew Meng

Progressive Enhancement と呼ばれるWebデザインの哲学があります。これは考慮すべきものです。アイデアは、使用可能で実行可能な基本的なサイトを構築し、jQueryやブラウザー固有のものなどのこの拡張機能に重ねて「拡張」することです。このようにして、誰にとっても機能し、大多数にとって見栄えのよいサイトを取得します。

それでも納得できない場合は、JavaScriptなしでサイトを機能させる他の理由を検討してください。

  • それはよりSEOフレンドリーです。サイトのコンテンツとリンクがJSに依存している場合、検索エンジンがその大きなチャンクを無視している可能性があります。

  • あなたがウィジェットを販売するeコマースサイトであるとします。さて、たとえ顧客の5%だけがJavaScriptを無効にしても、それは5%の潜在的な売上損失です。顧客を失う価値はありますか?

  • 障害者を差別しないでください。 JavaScriptに依存しているということは、あなたのサイトが アクセス可能 ではないことを意味し、場合によっては(政府/公共部門のサイトなど)、人々を差別することによって法律に違反する可能性があります。

70
Dan Diplo

1つには、Javascriptなしですべてが機能するべきだと主張している人々に反対します。多くの場合、最も一般的な分母にコーディングするのは良いことです(たとえば、私の銀行のサイトでFlashまたはそのようなナンセンスが必要な場合、私は本当に腹が立つでしょう)。結果のサイトは非常に壮観で便利な場合があります! (つまり、Javascriptがオフになっているときの素敵なGoogleマップの様子を見てみましょう...)

ただし、これにより、JavaScriptが存在しない場合でも、ページが正常に失敗することを最低限に抑えることができます。何が問題だったかを示すことなく、半分ロードされた壊れたページをユーザーが見つめたままにしないでください。 「このページはJavascriptが必要です」というメッセージをコード化するのに2分を費やすか、ユーザーからnoscriptが有効になっているためにページが壊れていることを通知するメールを毎日10通受け取りますか?

47
Toji

はい、そうすべきです。

これを余分な労力を必要とするものとして認識した場合は、逆に行う可能性があります。

JavaScriptなしで動作するようにページを開発してから、JavaScriptベースの改善、Ajax効果などを追加します。 JSがサポートされている/有効になっている場合は動作します。そうでない場合、ページは優雅に低下します。

また、次のようなページは作成しないでください。

  1. JavaScriptによってコンテンツ全体がデータベースからプルされます

  2. 要素が結合され、CSSではなくJavaScriptによって適切な場所に配置されるため、マークアップは完全にバラバラになります

  3. ナビゲーションと本文のリンクはJavaScriptなしでは機能しません(理由のためにJavaScriptに依存するASP.NETのようなフレームワークでない限り)

それは単にウェブの精神と常識に反しています。

追伸NoScriptのユーザーが話します。

39
user8685

開発者として、Javascriptをオフにするユーザーの1%を心配する必要はもうありません。それは時間がかかりすぎ、開発時間はそのようなナンセンスを無駄にするには高すぎる。 AJAXは帯域幅を大幅に節約し、直接$$$の節約になり、利益が大幅に増加します。100ユーザーごとにサイトの潜在的なユーザーを1人または2人失うと、1人または2人が失われますユーザーは、開発に費やす可能性のある潜在的な収入よりもはるかに多くの開発コストがかかります。

JavaScriptをオフにしてFacebookにログインしてみてください。その後、非常に壊れたWebサイトになります。 Facebookにとって十分なものであれば、私にとっても十分です。

33
Robert

個人的には、閲覧時に NoScripts Firefoxプラグインを使用しており、他の人にも使用するよう勧めています。私が保守しているすべてのファミリーPCで、NoScriptsはインストールするソフトウェアの必須ビットの1つです。基本的なメールと銀行のウェブサイトのホワイトリストと、人気のソーシャル&ビデオサイトを設定し、一時的な許可の仕組みを説明しています。このプラグインの人気から判断すると、このプラグインを使用する人々のかなりの部分があると思います。

少なくとも、私はナビゲーション機能がスクリプトなしで機能することを期待しています。スクリプトを必要とするビデオのような何か特定のものがある場合は問題ありませんが、「このビデオを表示するにはスクリプトが必要です」という素敵なプレースホルダーを表示します。

ただし、ナビゲーションをスクリプトに依存させるのは大きな間違いです。多くの場合それは私が嫌悪感でサイトから跳ね返らせるでしょう。さらに大きな間違いは、スクリプトを無効にすると、サイトの一部やナビゲーションが完全に消えてしまうことです。何かが足りないという事実を強調しない限り、私も気付かない可能性が高いので、そこになかったと考えてサイトを離れます。また、「このサイトにはスクリプトが必要です」とだけ書かれたフルスクリーンのメッセージは、それほど遠くに届きません。スクリプトを許可するのに十分信頼できる前に、ある程度のコンテンツを確認する必要があります。

最後に、サイトを閲覧しているのはデスクトップPCだけではなく、モバイルブラウザの人気が高まっていることを忘れないでください。モバイルJavaScriptのサポートは改善されていますが、完璧に近いとは言えません。そのため、さまざまなモバイルブラウザーをすべて厳密にテストする場合を除いて、モバイルバージョンのページをスクリプトなしで検索することをお勧めします。

11
Simon P Stevens

サイトとそれを使用するユーザーによって異なります。

サイトは公開されていますか、それとも特定の顧客のみが利用できるイントラネットまたはサイトですか? JavaScriptを使用していないユーザーに公開される可能性があります。クライアントでのみ使用される場合は、JavaScriptのみをサポートしていることをクライアントに伝えることができますか?

SEOは考慮事項ですか、それともサイト全体がログイン画面またはSEOの背後にありますか?それ以外の場合は要因ではありませんか? JavaScriptがない場合、検索エンジン向けに最適化する方がはるかに簡単です。

このサイトはモバイルブラウザーで使用されますか?多くの場合、モバイルブラウザーはJavaScriptをサポートしていないか、不十分です。

また、JavaScriptはスクリーンリーダーによるサイトの処理を困難にする可能性があり、他の潜在的なアクセシビリティの考慮事項があることも理解する必要があります。

テキストベースのブラウザー(例:lynx)のユーザーも、JavaScriptをほとんどまたはまったくサポートしていません。

あなたはあなたのサイトとあなたの聴衆を見て、JavaScriptを無効にしているユーザーをサポートする必要があるかどうかを決定する必要があります。また、JavaScriptを使用しないことが可能かどうかも確認する必要があります。高度なWebアプリケーションを作成していて、Webカメラやマイクのサポートなどが必要な場合は、JavaScriptを使用できない場合があります。

JavaScriptを使用しないユーザーをサポートする必要があると判断した場合でも、JavaScriptを使用できます。それがなくてもウェブサイトを機能させるだけです。これはプログレッシブエンハンスメントと呼ばれ、JavaScriptのサポートがない場合は適切に低下します。

JavaScriptが必要な場合は、ユーザーに通知する必要があります(<noscript>タグ)。

9
Adam

「A List Apart」の記事を推薦できますか?:

JavaScriptによるプログレッシブエンハンスメント

... JavaScriptに段階的な拡張機能を実装するために必要な考え方と、それを実行するためのいくつかの手法を確認しました。また、控えめなスクリプトの概念に触れ、CSSとJavaScriptの相互関係を管理する方法について少し学びました。

一般的なアプローチとその記事をJQuery(またはプロトタイプ、または選択したJavaScriptフレームワークなど)のような便利なツールと組み合わせると、事後にJavaScriptの動作を適用するのは簡単です。

JavaScriptがまだないか、少なくともJavaScriptのサポートが非常に制限されているブラウザがいくつかあります。 WCAGとセクション508への準拠(米国以外の人々のアクセシビリティ)のルール#1は、サイトがfunctionのスクリプト言語に依存しないことは言うまでもありません。変更を加えるたびにページがリロードされますが、変更を加えることはできますが、機能しています。 AJAXレイヤーはベースサイトの上にあるため、ページをリロードしなくても同じことができます。

JavaScriptユーザーがサポートされていない理由としては、次のことが考えられます。

  • 障害を持つ人々(スクリーンリーダー、代替入力デバイスなど)のサポート
  • セキュリティを意識している人々をサポートする:JavaScriptで悪質なことをしている悪い人々がいるので、最も簡単な解決策はJavaScriptを取り除くことです
  • プラグインなしで広告を無効にする最も簡単な方法です
  • モバイルおよび組み込みデバイス
  • ヘッドレスサーバーにツールをダウンロードするために使用されるコマンドラインブラウザー
  • 検索エンジンのスパイダーは実際のリンクのみをたどります-JavaScriptはそれらを混乱させます

functionを実行するためにサイトでCookieとJavaScriptを必要とする場合は、以下の問題を回避するために適切に注意してください。

  • クロスサイトスクリプティング攻撃
  • サードパーティのユーザー追跡
  • DOM操作によるハッキング/改ざん
  • フィッシング(スクリプトがDOMにアクセスできる場合は、ページ上の任意の情報を、ロード元のサーバーに送信できます)

(そしてそれは単なる短いリストです)

解決策がそれほど難しくないときは、なぜそれをしないのですか?

また、JavaScriptフィエスタにいる間は、正しいキーボードナビゲーションをサポートすることを忘れないでください。

8
Berin Loritsch

絶対に

JavaScriptなしでは正しく機能しないサイトは、ユーザーに明確に通知する必要があります。 JavaScriptなしで正しく動作するようにできる限り多くする必要があります。これが不可能になる特定のケースがあります。AJAXのレイヤーに構築された非常に動的なサイトであり、リモートフェッチはその1つです。これは、空白のページを表示しても問題ないということではありません。 JavaScriptを無効にしている場合。

グレースフルデグラデーションは非常に重要であり、JavaScriptだけでなく、コーディングするすべての要素に適用されます。有効なHTMLマークアップ、有効なCSS、everythingのサーバー側検証。

8
Josh K

このようなサイトでは、多くの開発者がJavascriptを無効にする方法を説明しているので、段階的な拡張をサポートする必要があります。 JavaScriptが無効になっている人々の5%の現実では、それらの90%は開発者や他のテックオタクであり、一般の人々ではありません。ほとんどの主要なサイトはプログレッシブ拡張をサポートしていません。 JavaScriptなしでFacebookを使用しようとしましたか?彼らは基本的に立ち去ると言う。

4
Craig

<ユーザーの5%がJavaScriptを無効にします

BrowserStatistics によると、2008年には、JavaScriptをオフにしたユーザーはわずか5%でした。この傾向は着実に低下しているため、2011年近くになると、その数ははるかに少なくなると考えるのは非常に安全です。

段階的にダウングレード

ユーザーがJSをオンにしているかオフにしているかに関係なく、サイトは決して破壊されない必要があります。サイトでJavaScriptをオンにする必要があるというメッセージを表示するだけの簡単な場合でも、選択した少数のユーザーに対して、Webサイトが正常にレンダリングされ、壊れないように動作することを確認する必要があります。

JS以外のユーザーのためのリワーク?通常:いいえ

通常の開発者は、JavaScript以外のバージョンを別の言語で作成する必要はありません。ただし、クライアントにアンチJavaScriptのニーズがあることがわかっている場合は、明らかにそれに対応する必要があります。 (GMailにも非JSバージョンがあります)

3
rlb.usa

私の考え:

Javascriptを使用すると、攻撃対象となるエリアが増えるだけでなく、お客様だけでなく、私が知っているほとんどすべての人がNoScriptを使用してブラウジングします。これには、非技術者も含まれます。

Javascriptをひどく使用しているオンラインショッピングサイトを見ると、それらからは購入できません。私は常に最初にJavaScriptを無効にして閲覧しますが、サイトが正常に機能しなくなった場合は、興味があるかもしれません。それが壊れているだけの場合、私は通常、プログラマーにも安全なショッププラットフォームを提供する機能がないと思います。

それはすべてを遅くする傾向があります-主要都市に近いにもかかわらず、私のブロードバンドは、マーケティングのアイデアが読み込まれるのを待たなくても十分遅いです。サイトが基本的なコンテンツをロードするのに5秒以上かかる場合は、本当に必要がない限り、気にする必要はありません。

1
Rory Alsop

ミッションクリティカルな機能のみ

一般に、「優雅に低下させる」ことをお勧めします。ただし、JavaScriptが使用できない状況に対応するために、Webアプリケーションのミッションクリティカルな部分にのみ集中します。

単に「ベルとホイッスル」の効果があれば、気にしないでください。 JavaScriptを使用せずに意図的にサーフィンをする人は、単純な体験をしなければなりません(それはJsを使用しないための選択肢です)

1
Darknight

ここでの回答のほとんどは、JavaScriptを非本質的またはハックな方法で使用している標準のWebサイトに対する批判を浮き彫りにしています。しかし、ウェブアプリはどうですか? JavaScriptなしでは効果的にリモートで実現できない重要な機能がたくさんあります。テキスト領域の下の基本的なWordカウンターのような単純なものでも、別のフォームの回答に基づいて追加のフォームの質問を有効/無効にすることもできます。この場合、多数派のために構築し、少数派のために優雅に低下させることは合理的ではありませんか?特に、ユーザーベースが技術的ではなく、JSを無効にする可能性が低いことがわかっている場合はどうでしょうか。

1
Jordan

考慮すべきこと:

AFAIK、検索エンジンのスパイダーはJavaScriptが好きではありません。あなたはSEOのためだけにJavaScriptなしで基本的なコンテンツとナビゲーションを持っているべきです。

一部のWebサイトには、法的な理由または会社の方針のいずれかのために、障害者によるアクセスに関するルールがある場合があります。これは通常、JavaScriptとは対照的に、単純なHTMLで実現するのが最善です。

現在、ほとんどの人がJavascriptを使用していますが、それが将来の保証になるわけではありません。 Webはますます敵対的になり、NoScriptなどのツールがより一般的になる可能性があります。または、一部のAndroid携帯電話はかなり安価であるため、より少ないブラウザでデバイスを使用する人が増える可能性があります。優雅な機能低下は、サイトの将来を保証する方法の1つかもしれません。

0
David Thornley

はい。

NoScriptや組み込みデバイスなどを使用している人々については話をしません。彼らのシェアを測定し、迷惑なことによる収益の減少などを判断できます。 0.5%のユーザーがソリューションを実装する価値があります。

しかし、プログレッシブエンハンスメントの原則に従うべき他の理由があり、それらはしばしばより重要です。

  1. 100%ユーザーは、スクリプトが読み込まれる前にJavaScriptを実行できません。サイトがjsなしで動作できる場合、初回のビジター、空のキャッシュを持つビジター、およびjsコードの更新後のすべてのビジターに対して、より速くロードできます。

  2. Jsなしで機能するサイトはより信頼性が高くなります。 Webサイトを破壊するJavascriptエラーは、アーキテクチャ上の悪夢です。この問題と関連する問題の詳細: http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs

  3. SEO対応のJavaScript専用サイトを実装するよりも、プログレッシブエンハンスメントを使用するほうが簡単です。

  4. JavaScriptを使用する必要のないサイト用の自動テストを作成する方が簡単です。

プログレッシブエンハンスメントの原則に従うのは実際には非常に簡単です。なぜそれに従わないのですか?

0
Mike Korobov

単一の質問に対する回答によって異なります。

「JavaScriptが無効になっているユーザーをサポートするコストは、それらのユーザーをサポートしないことで損失する金額よりも大きいですか、それとも少ないですか?」

ウェブサイトの再構築が必要になるまでの寿命が3年で、「リッチクライアント」向けに構築するのに30,000ポンドかかり、JavaScript以外のユーザーをサポートするためにさらに10,000ポンドを追加するとします(そのうち5%を想定しています)。の)

不足しているユーザーの5%が£10,000以上を費やしたとしたら、それを実行してください。そうしない場合は、法的に必要とされない限り、行わないでください。

これは、技術的な決定というより、ビジネス/経済的な決定です。

0
PhonicUK