HTML5 は、プラグインまたは複雑なハック (ネイティブ描画 API、ネイティブ ソケットなど) でのみ可能だった多くの機能をネイティブ サポートします。もちろん、プラグインには問題があります。
- プラグインは常にインストールできるとは限りません。
- プラグインは無効化またはブロックできます (たとえば、Apple iPad には Flash プラグインが同梱されていません)。
- プラグインは別の攻撃ベクトルです。
- プラグインは、HTML ドキュメントの残りの部分と統合するのが困難です (プラグインの境界、クリッピング、透明性の問題のため)。
インストール率が高いプラグインもありますが、管理された企業環境ではブロックされることがよくあります。さらに、一部のユーザーは、これらのプラグインに権限を与える望ましくない広告表示のために、これらのプラグインを無効にすることを選択します. ただし、ユーザーがプラグインを無効にすると、コンテンツを表示するために依存しているプログラムそのものも無効になります。
ここで HTML5 が登場し、笑顔でネイティブ機能の魔法の杖を振ります。CSS で要素のスタイルを設定し、JavaScript でスクリプトを作成できます。実際、これは HTML5 が最大の力を発揮する場所であり、以前のバージョンの HTML には存在しなかった力を示しています。新しい要素が新しい機能を提供するだけではありません。また、これまで以上に多くのことができるようになるのは、スクリプティングとスタイリングによる追加のネイティブ インタラクションです。
たとえば、新しい canvas 要素を見てみましょう。これにより、以前は不可能だったいくつかのかなり基本的なことが可能になります (HTML4 で Web ページに対角線を引いてみてください)。しかし、最も興味深いのは、API を使用して解き放つ力と、わずか数行の CSS コードで適用できるスタイリングです。行儀の良い子供のように、HTML5 要素もうまく連携します。たとえば、ビデオ要素からフレームを取得してキャンバスに表示できます。ユーザーはキャンバスをクリックするだけで、取得したフレームからビデオを再生できます。これは、ネイティブ コードがプラグインよりも優れている機能の一例にすぎません。実際、ブラック ボックスを使用していない場合は、事実上すべてが簡単になります。これらすべてが合わさって、真に強力な新しいメディアが生まれます。