プログレッシブエンハンスメントの場合は+1。これは、単純な HTML/CSS を使用した基本的で派手でない機能を備え、JavaScript コードを取得して、その機能を独自のもので補完または置換する場所です。
たとえば、ページ 1、ページ 2 などの単純なハイパーリンクで構成されるページにページング ナビゲーションがあるとします。
<div class="paging">
<ul>
<li><a href="?page=1">1</a>
<li><a href="?page=2">2</a>
<li><a href="?page=3">3</a>
</ul>
</div>
div.paging
次に、要素を探して、それをより洗練されたものに完全に置き換えるJavaScript 機能を用意します(例: (疑似コード))。
$('div.paging').each(function()
{
$(this).find('ul').remove();
$(this).append(renderAdvancedPaging());
});
それを置き換えることができるものについては、Google 画像スタイルの無限スクロール (Bing が最初に持っていたことを知っています)、または次の結果セットを動的に追加する大きな次のページ ボタンを下部に配置するという Twitter のアプローチ (持っているhttp://twitter.com/codinghorrorを見てください- 下にスクロールして [その他] をクリックしてください)。
この「プログレッシブ エンハンスメント」アプローチの利点は次のとおりです。
- JavaScript を無効にしているユーザー向けに機能します。これには、精通したユーザーや、厳重にロックダウンされた企業イントラネットで作業するユーザーが含まれます。
- アクセシビリティ: スクリーン リーダーを使用している目の不自由なユーザーでもサイトを使用できます。
- ページで JavaScript を実行しない検索エンジンでも、ページング リンクをたどり、それらのページの追加コンテンツをインデックスに登録できます。
SEOに関心がある場合、最後のポイントが最も重要です。
ただし、プログレッシブ エンハンスメントを合理的に無視して、JavaScript に依存し、JavaScript なしでは機能しない Web サイトを構築できる場合もあります。通常、これは高度な「Web アプリケーション」またはモバイルに最適化された Web アプリに対して行います。たとえば、Google マップ、カレンダー アプリ、<canvas>
要素を使用する HTML5 描画アプリ、HTML5 を利用したゲームなどを考えてください。 「ベース」 (ブログ サイト、ニュース サイト、e コマース ショップなど) はプログレッシブ エンハンスメントを適用する必要がありますが、「アプリケーション型」のものはすべて JavaScript を強制するだけで済みます。
最終的には、構築しているものと、プログレッシブ エンハンスメント ルートが適切かどうかにかかっています。
JavaScript が無効になっている人の数の統計を取得するのは困難です (一部はここに記載されていますが、2008 年のものです。この StackOverflow の投稿も 2008 年のものです)。しかし、RIA アプリの数が増加し、 JavaScript に依存する HTML5 アプリ (Google ドキュメント、マップなど)。また、JavaScript を無効にできないモバイル インターネット デバイス (iPhone、iPad など) の数が増えていることも考慮してください。