HTML
この記事では、外部のコンテンツをHTML文書へ埋め込むembed要素の役割と、終了タグやフォールバック・コンテンツを持たない空要素としての注意点を説明します。
この記事でわかること
embedが外部コンテンツを埋め込む要素であること- 空要素で、フォールバックを中に書けない特徴
- 安全性・アクセシビリティ・代替手段を確認する理由
embed 要素
embed要素は以前からプラグインの組み込みに使われてきた要素ですが、HTML4や XHTML1では規定されていない要素でした。HTML4や XHTML1でプラグインを組み込むためには object要素を使うのが妥当なのですが、古いブラウザでは動作しないという問題もあり、現在に至るまで、仕様では規定されていなかった embed要素が使われ続けて来ました。
このような状況を踏まえ、HTML5では、正式に embed要素が仕様に入れられることになりました。これまで embed要素は正式な仕様が存在していなかったため、ブラウザ間の互換性が保証されないところもありました。この点で、HTML5で詳細に規定されることは、大きな意味があります。
embed要素は空要素です。そのため、canvas要素や video要素のように、開始タグと終了タグの中にフォールバック・コンテンツをマークアップすることはできません。また、旧来より embed要素の代替コンテンツ用に使われてきた noembed要素は HTML5にも規定されていませんので、注意してください。実際の利用シーンでは、embed要素そのものが、object要素などのフォールバック・コンテンツとして使われます。
embed 要素の概要
- カテゴリー
- フロー・コンテンツ
- フレージング・コンテンツ
- エンベディッド・コンテンツ
- インタラクティブ・コンテンツ
- コンテンツ・モデル
- 空
- 利用可能な場所
- エンベディッド・コンテンツが期待される場所
- 開始タグ
- 必須
- 終了タグ
- 禁止。
- ただし、<embed /> のように終了タグを表すスラッシュを開始タグに入れる表記は可能。
- 要素固有の属性
-
- src
- 組み込むコンテンツのアドレスを指定します。
- type
- プラグインの MIMEタイプを指定します。
- width
- 組み込むコンテンツの横幅を CSSピクセルで指定します。
- height
- 組み込むコンテンツの縦幅を CSSピクセルで指定します。
- 名前空間を持たない任意の属性
- 必要に応じて任意の属性を指定することができます。ただし、名前空間を指定することはできません。
- 標準的なスタイル
-
Flashを組み込む embed要素のマークアップ例
<embed src="test.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="test" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="https://www.adobe.com/go/getflashplayer_jp" />
この例は、Adobe社の Flash CS4を使ってパブリッシュした際に生成された HTMLから、embed要素の部分を抜き出したものです。src属性で Flashの SWFファイルの URLを指定し、width属性と height属性を使って、組み込みコンテンツの横幅と縦幅を指定しています。そして、type属性には、SWFファイルの MIMEタイプを指定しています。
これらコンテンツ属性の他にも、いくつかの独自のコンテンツ属性があります。HTML5では、名前空間を利用しなければ、このような独自のコンテンツ属性の利用を認めています。