バージョン 9 より前の IE では、条件付きの JavaScript スニペットの形で何らかの助けがなければ、html5 のセマンティック タグが正常に機能しなくなることはよく知られている事実です。 これは、IE7 を使用していて JavaScript をオフにしているユーザーには、光沢のある html5 サイトの代わりに醜いものが表示されることを意味します。
私はそれに対処する方法を考え、次のアプローチを思いつきました: サーバー側 (mvc ビューなど) で、
OutputHtml5WithFallback("<header>MyHeader</header>", "<div>MyHeader</div>");
リクエストがIE7またはIE8から来たかどうかを判断するためのブラウザスニッフィングコードがあります。ブラウザがIE7またはIE8として認識されている場合、html出力は
<div>MyHeader</div>
それ以外は
<header>MyHeader</header>
これは一種のスプーフィング防止機能のようです。ブラウザーが IE7 のふりをすると、html5 要素のない html5 マークアップを受け取ります。私の最大の懸念は、このアプローチが検索エンジンによって推奨されない可能性があることです (ユーザー エージェントごとに異なる html が提供されるため)。
私が見逃している可能性のある他の欠陥を指摘できますか?