JavaScriptの優雅な劣化はどれほど重要ですか?
https://softwareengineering.stackexchange.com/questions/23535
-
22-10-2019 - |
質問
Web開発者は、JavaScriptを使用してWebアプリケーションを徐々に強化し、機能を優雅に劣化させ、それによってアクセシビリティを確保する必要がありますか?または、その時間を新しい機能や他の開発分野に焦点を当てて費やす必要がありますか?
その質問のサブテキストは次のとおりです。顧客/クライアント/ユーザーの何人が、JavaScriptを無効にして当社のWebサイトまたはアプリケーションを利用していますか? JavaScript機能を特に要求する要件を備えたプロジェクト(私のほとんどすべてのプロジェクト)はありますか?また、それらの要件も優雅な劣化を必要としますか?
この質問をするために、JavaScriptを有効にせずにProgrammers.stackexchange.comを引き上げました。「プログラマー-Stack ExchangeはJavaScriptを有効にして最適に機能する」というメッセージに迎えられました。サイトは一般的にうまく機能しているように見えますが、ログインすることは困難でした。 (私は質問を投票することができませんでした。)
これは開発に対する満足のいくアプローチだと思います。サイトのすべての機能を、プレーンな古いHTMLおよびサーバー側のロジックで動作させることに伴う努力を想像してください。一方、このアプローチによって何人のユーザーが疎外されているのだろうか。
私たちは皆、プログレッシブエンハンスメントを使用し、Webアプリケーションの動的機能を優雅に劣化させるように(少なくとも私たちの間の優れた開発者)訓練を受けています。この進歩的な強化は、ただ風に腹を立てているだけですか、それともJavaScriptを有効にせずに特定のWebサービスを実際に利用している顧客の一部は実際に行われますか?
解決
私が使う noscript しかし、私が実際に使用することを意図しているサイトをホワイトリストに登録してください。
NoScript、JavaScript、Java、Flash Silverlight、およびその他の実行可能なコンテンツをインストールすると デフォルトでブロックされます. 。あなたはできるでしょう 許可する JavaScript/Java/...実行...選択的に、信頼できるサイトで。ランダムに、または永久にサーフィンしている場合、または頻繁に訪問し、頻繁に訪問し、本当に信頼している場合、サイトを一時的に実行できるようにすることができます。これは、NoScriptが自分のブラウザの習慣から学習し、しばらくすると背景に消える傾向があることを意味しますが、悪意のあるWebページに出くわすとすぐに1日を節約するために戻ってきます。
ブロックされたスクリプトを含むサイトを閲覧すると、ポップアップブロッカーによって発行されたものと同様の通知が表示されます。
現在のNoScript許可を知るために、それを見ているか、StatusBarアイコンを見てください...
他のヒント
JavaScriptをオンにした人の割合はごくわずかだと思います。しかし、検索エンジンボットには注意してください!彼らは通常、JavaScriptを使用しませんが、そのためにあなたの重要なコンテンツをスキップしてほしくありませんよね?
私は常にJavaScript Enabledで閲覧し、Webブラウザの夜明けから持っています。
ブラウザの体験を劣化させる価値のある問題が一度もありませんでした。おそらくいくつかのポップアップやその他の迷惑ですが、私の意見では、利点はリスクをはるかに上回ります。
Linuxでコンソールを使用するとき、私は時々使用します リンクス GUIが利用できない場合。私の知る限り、LynxにはJavaScriptのサポートがまったくありません。
また、JavaScriptのサポートがあれば、貧弱な古いモバイルブラウザーも使用しています。
しかし、そのような状況では、私はサイトから完全な使いやすさを得ることを期待していません。私は通常、インターネットを使用して何かをすばやく調べています(たとえば、電話番号を取得します)。したがって、あなたのサイトの非JavaScriptインターフェイスは、パッシブ参照の役割に制限されるべきだと思います。 Stack Exchangeはこの素晴らしい例です。答えを調べることができますが、発声することはできません。参照として使用されるだけです。
自宅やオフィスにいないときは、スマートフォンのWebブラウザからWebを定期的にサーフィンしています。 JavaScriptは(少なくともサブセットの)サポートしていますが、常にうまく処理されるとは限りません。多くのウェブサイトが使用できないことがわかりました。なぜなら、彼らは多くのリソースを消費するか、ブラウザをクラッシュさせるだけだからです。
組み込みのブラウザが好きですが、そのうちの1つがより良い仕事をしている場合に備えて、2つの代替ブラウザを維持します。
このスレッドで言及されていないことの1つは、スクリプトが壊れた場合に起こることです。多くの場合、ページ上のスクリプトのさらなる実行が無効になる可能性があるため、より単純なナビゲート方法にフォールバックする方法が必要です。
スクリプトはさまざまな理由で壊れる可能性がありますが、最も明白なものは.JSファイルの不完全なリクエスト、DOMを変更する可能性のあるさまざまなアドオンです(adblock, 、など)または名前が良くないオブジェクトを導入します。
これは、スクリプトなどを明示的に無効にする人々とは何の関係もありません。サイドノートとして、多くの最新のルーター、ファイアウォールソフトウェアなどは、多くの場合、Webサイトからスクリプト、フラッシュなどを無効/フィルタリングする機能を備えているため、ユーザーがこれに気付かないままにしても、ネットワークレイヤーで構成されている可能性があります(考えてください。他の妄想的な人々がインターネットへのアクセスを構成している公共のカフェ、学校、またはその他の環境)。
これは通常、少なくともサイトの基本的な機能(レイアウトとナビゲーション)を使用して、優雅に劣化するサイトを開発するための私の主な議論です。
JavaScriptを無効にする唯一のことは、自分のWebサイトをテストすることです。ただし、に興味があるかもしれません 勉強 Yahooは、ユーザーの1〜2%がJavaScriptを無効にしていることを発見したことです。 Yahooの視聴者は、おそらく平均的なユーザーのかなり良い表現です。
研究からの重要な引用:
私たちの訪問者の2%はあまりそうではないように思えるかもしれませんが、3億人以上のユーザーがYahoo!を訪問することに留意してください。毎月ホームページ。つまり、JavaScriptの恩恵なしに毎月600万人のユーザーが訪れることを意味します。したがって、サイトのJavaScript対応バージョンに時間を費やす価値がありますが、それを使用できないユーザーはまだわずかなユーザーがいます。
私が使う noscript 一緒に AdBlock Plus いつも。
今日のWebは、敵対的すぎる(侵入的なJavaScript +迷惑な広告)であり、保護されていません。
もちろん、あなたはここで本当に歪んだサンプルを取得しており、あなた自身のサイトであなた自身の研究をする方が良いかもしれません。
私は個人的には、noscriptを使用します。私はサイトをホワイトリストに登録することに消極的なことはめったにありませんが、そうするために私の価値があるように見える必要があります。 (言い換えれば、私は理由が必要ですが、それは非常に説得力がある必要はありません。)
または、私たちの何人かは実際に利用していますか 特定 JavaScriptのないWebサービスが有効になっています
はい。
私の閲覧は3つのカテゴリに分類されます。
通常のブラウジング -SafariまたはChrome(Mac OS X)
-IGOOGLE、スタックオーバーフロー、いくつかのブログ
特別な ウェブサイト: : - firefox、noscript、adblock plus、flashblock
不必要に重いJavaScriptを備えたサイト。 (それが重要な場合、ボリウッド映画/音楽のインドのサイトの一部。 不必要に重いスクリプト - ページ自体は5分ごとにリロードします)
モバイルブラウジング:
以前はノキア5310を持っていました。それを失いました。今、私はさらに年上のソニーエリクソンW700Iを持っています。旅行中に使用することを閲覧します(Opera Miniはかなり良いです)。これは場所(不在)JavaScriptは痛みです。私は(ほとんどが)サイトとやり取りしたくありません、ただ読んでください。まだほとんどのサイトはそうです 無理だよ 表示する。
読むだけ 実用的なプログラマー「HTML5およびCSS3」. 。著者は、ユーザーの5%がJavaScriptをオフにしていると言います。
これが彼の情報源です: EUと米国JavaScript無効インデックス番号 + Web分析データ収集の影響.
JavaScript無効インデックス番号
EU:1.4%
米国:3.05%出典:Indextoolsを使用して、複数の業界Webプロパティにわたる1.000.000.000の訪問。
(VisualRevenue.com/blog - デニスR.モーテンセン)
割合も下がっているようです。
私はNoScriptと私が信頼するホワイトリストのサイトのみをインストールする傾向があります。それ以外の場合は、必要に応じて特定のドメインに「一時的に許可」を使用します。
これは良いセキュリティです。それ以外の場合は、任意の量のコードをマシンで実行できるようにします!たとえそれがサンドボックスされていても...常に脆弱性があります。
私自身の習慣を超えて、ほとんどの人がJavaScriptで閲覧したとしても、進歩的な強化を念頭に置いてサイトを開発することは依然として役立ちます。サイトがベースラインで機能している場合、最大のオーディエンスにサービスを提供できます。また、データを視覚設計やビジネスロジックから分離することも意味します。クライアント側のJavaScriptで行うことのほとんどは、とにかくサーバー側で行う必要があります。クライアント側を行うことは、サイトのユーザーに与えられる便利さである必要があります。
もちろん、JavaScriptを必要とする例外がありますが、一般的には期待があります。たとえば、JavaScriptを有効にすることが期待されています Biolab災害, 、ゲームですが、のようなサイトではありません リストは離れています, 、主にテキストだけです。
フォームに記入しているとき、私がフォームを送信できるJavaScriptを有効にしているという期待が本当にあるべきですか?なんで? JavaScriptコードがチェックして、文字の代わりに番号を入力しないことを確認できるようにしますか?
JavaScriptは無効です デフォルトで Windowsサーバーボックスにいる私たちのために。 ITポリシーは非常に多くのサイトをブロックしています。一部のコンテンツを読む唯一の方法は、JSがデフォルトで無効になっているサーバーでサーフィンをすることです。
それは私の好ましい構成ではありませんが、それは私が時々しなければならないことです。
Google Chrome + Adblock Plusを使用し、JavaScriptをオンにしています。
編集:使用します notscript 今。 :)
Chromeだけがほぼすべてのポップアップをブロックします(1回壊れたサイト[Chess.com]は1つしか見つかりませんでした)、Adblockはすべての広告を取り除いているため、問題はありません。
IMO、JavaScriptは全体的に「より良い体験」を提供し、信頼できるサイト(ハッキングされていない...)にアクセスする限り、大丈夫です。 「コンピューターの人」/開発者として、私たちは非常に熱心な「インターネットセンス」を持っているべきであり、サイトが悪意があるかどうかを判断できると思います。
私の意見では、アクセシビリティは他のほとんどすべてに勝ちます。支援技術に依存しているユーザーは、サイトの機能のほとんどを常に取得できるはずです。ユーザーの何パーセントが問題に頼っているかは関係ありません。アクセシビリティが主な焦点の1つであるオープンソースWebプロジェクトをコーディングし、実際にJavaScriptの有無にかかわらず、物事を両方の方法で実現する方法を実際に学びます。 (そして、JavaScriptが実際に問題のほんの一部に過ぎないため、アクセシビリティに関連する他の多くのこと。)
プロジェクトのユーザーからの回答がある興味深いアンケートがあります。 ここ. 。それはあなたにとって興味深いかもしれません。
うーん、今、私はそう感じています オメガ男. 。 :)どうやら私はです 過去 実際にJavaScript(およびCookie)を回す人 オフ. 。 (たとえば、スタックオーバーフローなどの特定のサイトに必要な場合を除きます。)
私は多くのことを見逃しているとは思わない - 通常私 行う サイトのJavaScriptをオンにしてください、それは何かをします 完全に 役に立たない、私が大量の個人情報を見知らぬ人に吐き出すか、いくつかの動いている広告を見せてくれるように - 私が望んでいたものだけ、記事を読むことに集中しようとしている間、画面上のいくつかのランダムな動き...
私はAskubuntu.comで質問に答えました - 私は(一時的に - 現時点で)サイトでJavaScriptを有効にする必要がありました。 NoScriptを使用して、それが明確だと思うときにサイトにJavaScriptを有効にしますが、デフォルトでは、JavaScriptは、私が以前に訪れたことのないサイトでオフになっています。
そうです。ずっとnoscript。ブラウザがサンドボックスされているときは、以前ではなく辞めます。
人々はこの決定について、まるでそれがバイナリであるかのように話し続けます。あなたは優雅に劣化するか、そうではありません。代わりに、個々の機能ごとに優雅に劣化するコストと利点を考慮してみませんか?たとえば、サイトに基本的な機能があることを確認できますが、誰かが特定の機能を使用するにはJavaScriptが必要です。
また、JavaScriptを無効にする多くの人々がそうすることにも留意してください なぜなら 彼らは、むき出しの必需品だけを備えた、軽く剥がれたウェブサイトを使用したいと考えています。特に避けようとしているユーザーのために、ベルやホイッスルを機能させるためにその時間を費やすことができます。
人々は、優雅に劣化するのは非常に多くの仕事であると不満を述べています。あなたがそれがどれだけの仕事であるかについて不平を言っているなら、あなたはおそらくJavaScriptを要求する価値がある機能に取り組んでいます。
JavaScriptのないユーザーは、常にサイトをナビゲートし、連絡先ページを使用し、記事やブログ投稿を読むことができるはずです。これ以上の複雑な機能については、関係する作業と利点に基づいて判断電話をかけます。
PR0N(悪い近所!)を閲覧するだけでそれを回します;-)
物事があまりにも壊れたので、私は定期的なブラウジングのためにそれをオフにしようとすることをあきらめました。そして時々、私はそれが壊れていることさえ知りません。
サイトを障害のある人がサイトを使用できる場合、JavaScriptにバックアップがあることを確認することをお勧めします。
ウェブサイトの戦略と計画はです ケース固有. 。つまり、WebサイトはIEブラウザをサポートする必要はまったくありません。 ボーダーラジウス CSS3の。ただし、他のWebサイトは、IE6までの後方互換性さえ必要になる場合があります。
ウェブサイトのために計画しなければならないことをどのように理解できますか?部分的に私たちの経験から。プログラマーと開発者をターゲットにするWebサイトは、ユーザーがほとんどすべての機能をオンにして、かなり新しく更新されたブラウザを使用していることを確認できます。ただし、ニュースのウェブサイトは、地球の未知のポイントの誰かが自分のウェブサイトに接続して、自分の国を渡しているものを見ることができると考えるべきです。
しかし、私たちの経験と直感に加えて、何らかのインストールする必要があります 分析 当社のウェブサイトでサービスを提供しているため、統計データに基づいて、将来の決定がより堅牢になります。たとえば、Google Analyticsは非常に優れたツールです。そこから、古いブラウザを本当にサポートする必要があるかどうかを確認できます。
ただし、W3CのWebアクセシビリティガイドラインに従う場合は、サイト固有の状況を考慮せずに、多くのことを間違いなくサポートする必要があります。
あなたの特別なケースでは、私はそれを言います 番号. 。小規模および中間レベルのWebサイトでは、無理を安全に忘れることができます。しかし、より大きなプロジェクトでは、ページにもう少しマークアップを含めることは悪い考えではありません。
このスレッドのいくつかの答えが陽気なのか深刻かを判断することはできません。CookieはJavaScriptよりも危険ですか?笑
任意のサイトはJSとクッキーをオフにしてテストする必要がありますが、最小の私見です。
クッキーを忘れないでください。 CookieはJavaScriptよりも危険であると考えています。以前はNoScriptユーザーでしたが、ホワイトリストのCookieサイトを支持してオフにしました。
クライアントが明示的に要求した場合のみ
かなりの数のユーザーが影響を受ける場合を除き、それは単に余分な努力です。
私はいつもJavaScriptを持っています。また、私の側には、常に最小復元キットがあります。
JavaScriptのライン拒否権を無効にする必要があるので、「アラートもリダイレクトも、ウェブケットもありません」と言うことができます。機能があります webkit 少なくとも、コンソールとさまざまな検査官から判断します。
しかし、はい、常にJavaScriptをオンにします。主に、Flashが「クール」VMを手に入れたときに起こったこととまったく同じように、人々はすぐにWebソケットを使用してあらゆる種類の悪を破壊するからです。その後、JavaScriptをオフにします。もちろん、彼らが私を許したら。
できるだけ多くのことを楽しみたいです。だから私はこの時代の楽しい思い出を持っています。私は感銘を受けたいです、私はJavaScriptフォリーズに笑いたいです。なぜなら、私たちが2007年に持っていたもの、スプリングウォーターのような無料の甘い情報の流れ、どこでもオープンソースのような無料の甘い情報の流れが本当に恋しいからです。
必要になるまでオフにしません。
ライブCD/DVD(物理的またはVMで)から起動すると、FlashとJavaScriptが自分のことをすることについて、私はずっと気分が良くなります。私が正しく覚えているなら、Linux ミント 箱から出してフラッシュサポートがあります。
サイト開発に関しては、通常、JavaScriptで妥当な量のDivスワッピングとメニューを行いますが、すべてを正しく見せて、基本的にCSSで動作します。
ページ全体が優雅に劣化することを確認することに焦点を合わせるのではなく、約75%を確認しようとしています (または、簡単にまたは迅速に完了した場合) ページの優雅に劣化します (または機能します sans javascript)。また、この75%がページの機能の全体を完成させるようにしています。
たとえば、JavaScriptを使用して、ブログに投稿のコメントを読み込みます。柔軟性、コメントレンダリングの一貫性が得られ、自主的なシングルクエリ/リクエスト制限を維持するのに役立ちます。ただし、あなたが私のブログに行く主な理由 - 投稿を読む - はサーバーで生成されたままで、 どれか ブラウザ。コメントは、きれいに完全に自己完結しています .js
ファイル。
tl; drここの鍵は次のとおりです 何 ではなく、優雅に劣化します いくら 優雅に劣化します。