最近、XHTML の代わりに HTML 5 を使い始めましたが、多くのメリットがあります。よりクリーンでシンプルで使いやすいです。タグはより良くなり、要素はより理にかなったものになりました。コーディングする方法がより良く簡単になりました。
ただし、IE 8 以下ではサポートされていないフォールバックがあります。これを機能させるには、HTML 5 JavaScript shiv を使用する必要があります。ユーザーが JavaScript をオフにしていない限り、これはうまく機能します。
ここで非常に大まかな計算を行うと、全ユーザーの約 13% が IE 8 以前 (2012 年 11 月 14 日現在) を使用し、全ユーザーの 2% が JavaScript を無効にしている場合、ユーザーの 0.26% は、 JavaScript がオフになっています。これにより、HTML 5 Web サイトが壊れます。プログレッシブ エンハンスメントの主任は、Web サイトは JS を無効にしても機能するはずですが、この場合、Web サイトはまったく機能しません。
「JavaScript を有効にしてください」という noscript タグ。うまくいくかもしれませんが、非常に明白にしない限り、テキストとコンテンツの混乱の中で見られない可能性があります。
head 内の noscript タグは HTML 5 で有効なので、この問題に対処するには次の方法が正しいでしょうか?
<!DOCTYPE HTML>
<html>
<head>
<noscript>
<!--[if lte IE 8]>
<meta http-equiv="refresh" content="0"; ,URL=http://www.example.com/no-js">
<![endif]-->
<noscript>
</head>
上記のコードを要約すると、コードはユーザーが JavaScript を無効にしているかどうかをチェックし、IE 8 以下かどうかをチェックし、そうであれば別のページにリダイレクトします。
リダイレクトされたページは XHTML で作成でき、Web サイトは HTML 5 で作成されており、正しく実行するには古いブラウザーで JavaScript を有効にする必要があることを説明します。次に、ユーザーが JavaScript を有効にすると、頭の中で次のようなものを使用できます。
<script>
window.history.back();
</script>
そのため、ユーザーは自動的に前のページに再送されます。
これはこれを行う正しい方法でしょうか?それとも、全ユーザーの 0.26% だけに価値があるのでしょうか?