IE10 のユーザー エージェント文字列が更新されました

IE10 のユーザー エージェント文字列は、IE10 の最初の Platform Preview で導入されました。Windows 8 Release Preview の公開に合わせて、このユーザー エージェント文字列に対する追加が 2 つ行われています。これらはサーバーサイドの機能検出をサポートするための追加です。

1 つ目の追加点は、マシンがタッチ対応かどうかを検出するための新しい Touch トークンです。このトークンを使用することで、タッチ対応ハードウェアのユーザーに、タッチに最適化されたバージョンのサイトを表示できるようになります (通常は、サイトの普段の状態がタッチに対応していない場合に使います)。ただし、タッチ対応ハードウェアのユーザーがマウスとキーボードを使う場合があることに注意してください。このトークンを使ったユーザー エージェント文字列は以下のようになります。

  • タッチ対応ハードウェア非搭載マシンの IE10 の場合:
    Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)
  • タッチ対応ハードウェア搭載マシンの IE10 の場合:
    Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; Touch)

タッチのサポートをクライアントサイドで検出する場合は、ユーザー エージェント文字列を確認する代わりに navigator.msMaxTouchPoints (英語) を使います。このプロパティが存在し 1 以上の文字が返された場合は、ユーザーの PC はタッチ機能をサポートしています。以下に例を示します。

var hasTouch = navigator.msMaxTouchPoints > 0;

IE10 のユーザー エージェント文字列に対する 2 つ目の追加点は、Windows RT を実行する ARM デバイスに対応した、アーキテクチャに関する新しいトークンです。これが、その他のアーキテクチャ用の既存値に追加されます。このトークンがどのように使われるか、その他の構成の場合と比較してみましょう。

  • 32 ビット版 Windows と 32 ビット版 IE10 の場合:
    Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)
  • 64 ビット版 Windows と 32 ビット版 IE10 の場合:
    Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
  • 64 ビット版 Windows と 64 ビット版 IE10 の場合:
    Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)
  • Windows RT の IE10 の場合:
    Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0)

デスクトップの IE10 と Metro スタイル IE10 が提供するプラットフォーム機能は共通しているため、今回紹介した追加点は、それらの IE10 の両方に適用されます。サイト エクスペリエンスを最適化する場合、システムの機能 (タッチなど) に関連するものについてはブラウザーや環境の検出ではなく機能検出を使うのがお勧めです。また、プラグインを使ったコンテンツを持つサイトの場合、コンテンツのプラグイン フリー対応が完了するまでは、requiresActiveX プロンプトを使ってユーザーがデスクトップ IE10 に切り替えられるようにしてください。

— Internet Explorer 担当グループ プログラム マネージャー Tony Ross