プラグインなしでの閲覧

本記事は、マイクロソフト本社の IE チームのブログ から記事を抜粋し、翻訳したものです。 

【元記事】Browsing Without Plug-ins (2011/9/1 9:27 AM)

Web の閲覧を行うためのデバイスやブラウザーの種類がこれまでになく増えていますが、そのため、プラグインを使用せずに閲覧するユーザーの数もいっそう増えています。プラグインを使用せずに Web を閲覧するユーザーに優れたサイト エクスペリエンスを提供することは、閲覧者数を増やしたいサイトにとって重要な課題です。HTML5 であれば、最新のブラウザーおよびサイトはプラグインなしで優れたユーザー エクスペリエンスを提供できます。

"プラグイン" とは、広義にはブラウザーの拡張機能を指し、下層レベルのブラウザー インターフェースを使用してネイティブ クライアント コードを実行する機能を意味しています。たとえば、こちらのサイトでは、WebKit アプローチの基本的な説明を確認できます。Internet Explorer では ActiveX コントロールやブラウザー ヘルパー オブジェクトがこれに相当します。Web サイトではさまざまな種類のプラグインが使用されていますが、Adobe Flash は最も一般的なプラグインと言えます。

プラグイン不使用の一般化

現在では、多くの Web サイトがプラグイン非サポートのデバイスで閲覧されるようになっています。プラグイン対応のブラウザーでも、プラグインを使用せずに閲覧できる方法を数多く提供しています。IE 9 にはたとえば ActiveX フィルターがあります。こちらまたはこちらのような、プラグインを制御するアドインを提供するブラウザーもあります。プラグインは、64 ビット ブラウザー内で実行されるようにコンパイル可能ですが、多くの開発者は、32 ビット ブラウザー内で実行されるバージョンのみをリリースしています。64 ビット ブラウザーも、プラグインを使用しないことが通常である閲覧方法の 1 つです。

64-Bit Windows includes both 32-Bit and 64-Bit Internet Explorer.
64 ビット Windows には、32 ビット Internet Explorer と 64 ビット Internet Explorer の両方があります。

エクスペリエンスの向上

多くのサイトは、現在も既に、プラグインなしの環境で優れたエクスペリエンスを提供しています。たとえば、IE 9 でプラグインが無効の状態 (64 ビット ブラウザーなのでインストールしていない、ActiveX フィルターで無効化している、など) で Hotmail を使用してもまったく問題はありません。

Hotmail Inbox without plug-ins in IE9.プラグインなしの IE 9での Hotmail 受信トレイ

サイトによっては、プラグインなしで閲覧するには何らかの対応が必要になる場合もあります。たとえば、YouTube をプラグインなしで閲覧するには、https://www.youtube.com/html5 で "HTML5 試用版を有効にする" をクリックする必要があります。

YouTube without plug-ins in IE9. On the left before, and on the right after, joining the HTML5 Trial. The context menu on the right shows that the video playing uses HTML5.
プラグインなしの IE 9 での YouTube(左の画面は HTML5 試用版を有効にしていない場合、右の画面は有効にした場合。右の画面のコンテキスト メニューはビデオ再生に HTML5 が使用されていることを示している。)

さらに、プラグインが無効の場合、一部またはすべての機能をブロックするサイトもあります。たとえば、MSNBC.com と CNN.com では動画が正常には機能しません。Gmail では現在、プラグインを無効にした IE 9 はブロックされます。というのは、Gmail は、IE 7 以降で利用できる Web 標準の XHR を使用するのではなく、XHR ActiveX オブジェクトの有無をチェックするからです。Web は IE 7 以降かなり進歩しています。このため、各サイトは、古いブラウザーや、古いバージョンの標準に固有のコードを見直そうとしています。

Showing how some sites disable some or all functionality without plug-ins.
プラグインが無効の場合、一部またはすべての機能をブロックするサイト

機能検出 : 開発者にできる対策

ブラウザーのプラグインがなくても優れたエクスペリエンスを提供するサイトは既にたくさんありますが、そのときに使用されているデバイスやブラウザーを基準としてエクスペリエンスを提供しようとすると、ユーザーには問題があります。たとえば、MSNBC.com の動画は、プラグインなしの場合、PC 上のあるブラウザーが特定のデバイスのユーザー エージェント文字列を送信すると閲覧できますが、同じ PC 上の同じブラウザーが別のユーザー エージェント文字列を送信すると閲覧できません。

clip_image007
Flash がインストールされていない Apple Safari での表示と、自らを iPad として識別する同じ Apple Safari での表示 (MSNBC.com)

サイトを特定のブラウザーや構成用にハードコーディングするのではなく、機能検出をしてその機能がなかった場合の代替手段を提供する方がユーザーにとっては快適なサイトとなります。たとえば、プラグインなしの場合に、HTML5 Video を検出して使用することは、ユーザー エクスペリエンスの向上につながります。プラグインなしの環境で広告を表示するときにこのような対応を行うサイトは既に数多くあり、このアプローチは実際的で広く適用可能な方法であると言えます。

サイトのユーザー エクスペリエンスを向上させるには、ベスト プラクティスに従い、まず標準ベースの機能を検証し、必要がある場合にのみ代替手段としてプラグインを使用します。XMLHttpRequest の機能検出の良いパターンと悪いバターンの例を以下に示します。

// 悪いパターン: これは避ける

var xhr = window.ActiveXObject

? new ActiveXObject("Microsoft.XMLHTTP")

: new XMLHttpRequest();

 

// ベスト プラクティス: 可能ならネイティブ XHR を使用する

if (window.XMLHttpRequest) {

// IE 7 以降、Gecko、WebKit: ネイティブ オブジェクトを使用

var xmlHttp = new XMLHttpRequest();

}

else if (window.ActiveXObject) {

// 上記がない場合: ActiveX コントロールを試す

var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

}

else {

// 使用できる XMLHTTPRequest メカニズムがない

}

ユーザーにフラストレーションを抱かせないためには、別のコンテンツへの適切な代替手段を用意することが重要です。たとえば、Gmail のビデオ チャットは、Adobe Flash がない場合は適切に別の方法へと切り替わります。

ユーザー エージェント文字列などのブラウザー固有のプロパティを基準に、特定のデバイスに対してのみ代替手段を提供するサイトもありますが、このような短期的なソリューションでは、ブラウザーや閲覧方法の変更に対処できません。また、プラグインをサポートしないデバイス上のブラウザー向けに、別のアプリケーションを作成するという対応をしているサイトもあります (たとえば、IMDB.com など)。ユーザー エージェント文字列は、もう大分前から、有用な HTML やスクリプトを特定するうえで、信頼できる強力な方法とは言えなくなってきています。

HTML5 の機能により、現在では、かつてないほど多種多様なデバイスや構成で Web を楽しめるようになりました。Web 開発者にとってこのことは、作成したサイトに人々がアクセスする機会が増えるということを示しているのと同時に、プラグインが使用できない環境でもサイトを正常に機能させることの重要性が増しているということでもあります。

John Hrvatin、プログラム マネージャー、Internet Explorer