2.

HTML param要素(object 要素に渡すパラメータ / 非推奨化 / 代替手段)

編集
この記事の要点
  • param 要素<object> 要素の子要素として、埋め込みオブジェクトにパラメータを渡すための要素
  • name 属性でパラメータ名value 属性でを指定する void 要素(終了タグ不要)
  • HTML5.2 以降は廃止に向かい、HTML Living Standard では obsolete(旧式)扱い。新規実装での使用は非推奨
  • <object> 自体が Flash / Java Applet 用途で多用されていたが、現在は <video> / <audio> / <iframe> / <img> に置き換わっている
  • 互換性のために古いコンテンツでは残るが、仕様準拠の HTML を新規に書く場合は使わない

param 要素とは

param 要素<param>)は、<object> 要素で埋め込んだ外部リソース(Flash、Java Applet、ActiveX、各種プラグインなど)に対して、名前付きのパラメータを渡すための HTML 要素です。name 属性と value 属性のペアでパラメータを 1 つずつ宣言します。

<object> の子要素としてのみ使用でき、内容を持たない void 要素のため終了タグはありません。

基本構文

<object data="movie.swf" type="application/x-shockwave-flash" width="640" height="480">
  <param name="movie" value="movie.swf">
  <param name="quality" value="high">
  <param name="allowFullScreen" value="true">
  代替テキスト:このコンテンツを表示するには Flash Player が必要です。
</object>

属性

属性必須意味
name必須パラメータ名(埋め込みオブジェクト側が解釈する)
value任意パラメータの値(文字列)
typeHTML4 のみvalue の MIME タイプ(HTML5 で廃止)
valuetypeHTML4 のみdata / ref / object のいずれか(HTML5 で廃止)

非推奨の理由

  1. Flash Player は 2020 年 12 月に EOL。Adobe / 主要ブラウザがサポートを終了済み。
  2. Java Applet は Java 9 で非推奨、Java 11 で削除。ブラウザ側でも実行不可。
  3. ActiveX は IE 専用で、Microsoft Edge(Chromium 版)では未対応。
  4. HTML5 ネイティブ要素(<video> / <audio> / <canvas>)と JavaScript API で同等以上の機能が実現できる。

現代的な代替

旧来の用途代替手段
Flash 動画<video> + MP4 / WebM
Flash 音声<audio> + MP3 / Ogg
Flash アニメーション / ゲーム<canvas> + JavaScript (PixiJS / Phaser など)
Java AppletJavaScript + WebAssembly
PDF 埋め込み<iframe> または <embed>
SVG / 画像<img> / <svg> 直接記述

HTML5 の MP4 動画への置き換え例

<!-- 旧 (object + param) -->
<object data="video.swf" type="application/x-shockwave-flash" width="640" height="360">
  <param name="movie" value="video.swf">
  <param name="autoplay" value="true">
</object>

<!-- 新 (video) -->
<video src="video.mp4" width="640" height="360" autoplay muted controls>
  お使いのブラウザは動画再生に対応していません。
</video>

まとめ

  • param 要素<object> にパラメータを渡す void 要素
  • HTML Living Standard では obsolete。新規実装では使わない
  • 動画 → <video>、音声 → <audio>、PDF → <iframe> に置き換える
  • 古いページの保守時のみ仕様を把握しておけば十分

歴史的経緯

<param> は HTML 3.2 で <applet> 要素用に導入され、HTML 4 で <object> の子としても使えるように拡張されました。当時は Java Applet で Web ページに対話的なコンテンツを埋め込むのが一般的で、サーバ URL・ウィンドウサイズ・初期値などを <param> でアプレットに渡していました。続く 2000 年代には Flash プレイヤーへの動画 URL・自動再生フラグ・音量などの伝達手段としても多用されました。Flash の普及期には 1 つの <object> に 5〜10 個の <param> を並べるのが普通で、ブラウザ別 / プラグイン別のフォールバック記述が複雑化していました。HTML5 で <video> / <audio> / <canvas> がネイティブ機能として登場し、プラグインに依存しない実装が可能になったことで <param> の存在意義が急速に薄れていきました。

古いコードを保守する場合のチェックポイント

  • 埋め込みリソース(data)の MIME タイプが現在もサポートされているか
  • HTTPS 化されているか(http:// リソースは Mixed Content でブロック)
  • レスポンシブ対応されているか(width / height 固定値の場合は CSS で上書き)
  • アクセシビリティ:<object> 内にテキスト代替が書かれているか
  • セキュリティ:埋め込み元が信頼できるドメインか、X-Frame-OptionsContent-Security-Policy 設定があるか

HTML パーサと param 要素

<param>void 要素として定義されているため、終了タグを書くと HTML パーサが警告を出します。XHTML 由来の自己閉じ表記 <param ... /> も、HTML5 では不要ですが許容されます。<object> の子としてのみ意味を持つため、それ以外の親要素に置くと CSS の display 計算にも影響しないただの未知要素扱いになります。Validator にかけたときに「obsolete features」として警告が出ても、既存ページの動作は影響を受けません。新規実装で同等の機能が必要な場面はほぼないため、リファクタリングではまず意味のある HTML 要素への置換を検討すべきです。

仕様変遷の概要

バージョンparam 要素の扱い
HTML 4.01正式仕様。Applet / Flash の標準パラメータ伝達手段
HTML5(W3C)残存。type / valuetype を非推奨
HTML Living Standardobsolete(旧式)。新規利用は推奨されない

関連

  • embed要素 — 外部リソースを埋め込む類似要素
  • object要素 — param の親となるオブジェクト埋め込み要素
  • video要素 — HTML5 の動画埋め込み
  • audio要素 — HTML5 の音声埋め込み
  • iframe要素 — 別文書の埋め込み
編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. object要素
  2. param要素