制作者(webmaster)
野嵜健秀(Takehide Nozaki)
公開
2002-03-03
改訂
2007-08-21

object

HTML文書の中にオブジェクトを埋め込む爲の要素です。テキストの一部分を置換へる形でオブジェクトが埋め込まれます。よつて、インライン要素と云ふ事になります。applet(、bgsound、embed)、iframe、imgを抽象化した要素である、と屡々説明されます。もつとも、それだけの使ひ方しかできない要素ではないやうにも思はれます。

やたらと抽象度が高い爲、使ひ方の異常に難しい要素となつてゐます。後述しますが、ブロック要素すら、object要素の中身となり得ます。

汎用屬性のclass、id、title、style、lang、dir(、xml:lang)が使用可能です。

特殊な要素

概要

インライン要素は常にブロック要素の中に含まれる、といふ「HTMLの常識」を知つてゐる人間にはひどく意外に思はれる事實ですが、DTDによれば、インライン要素であるobjectの中には所謂ブロック要素が出現可能です。

例へば、一般にp要素の中にはインライン要素しか出現不可能ですが、object要素を間に「かます」事でp要素の中にブロック要素を出現させる事が出來ます。さう云ふ記述のされたHTML文書は「DTD的にはvalid」となります。

もちろん、「インライン要素とされるobjectの中にブロック要素が出現するのは許されない」といふ意見もあります。「DTDの規定と好ましい記述とは別」といふ意見です。

とにかく、objectの規定には、やたらと問題があります。object要素は、HTML 4.0で初登場したものの、XHTMLでは廢止されるとかされないとか、噂が飛び交ひました。現状、XHTML 1.1でobjectは生延びてゐます。しかし、議論の結果によつては、將來、HTMLの仕樣からobject要素が外されるやうになるかも知れません。

そもそも、object要素は「Internet Explorer 3.0用のDTD(IE30.DTD)」が出自だと云ふ話です。objectの周邊には、或意味「きな臭さ」が漂つてゐます。

實例

p要素で表現される段落の中に、箇條書きを記述出來ない事が、屡々「HTMLの缺陷」として指摘されます。これは、もともとHTMLが、ワープロ等の文書をネットワークで交換する際に用ゐられるべき共通文書形式として考案された事による「制限」にほかなりません。

しかし、「マーク附け」と云ふアイデアをもとに考察すると、さう云ふ「制限」は不自然なものと思はれる譯です。

これに對して、箇條書き(ul-li)をオブジェクトと看做し、object要素の中身とする事によつて、段落に埋め込む事が可能なのではないか、と云ふ説があります。

<p>宇宙戦艦ヤマトの第一艦橋には、<object>
<ul>
<li>沖田十三</li>
<li>古代進</li>
<li>島大介</li>
<li>森ユキ</li>
<li>相原義一</li>
<li>太田健二郎</li>
<li>徳川彦左衛門</li>
<li>真田志郎</li>
<li>南部康男</li>
<li>アナライザー</li>
</ul>
</object>が常駐してゐる。良く考へると恐い事だ。第一艦橋に直撃彈を一發くらへば、ヤマトの指揮系統は崩壞するのである。</p>

議論

今の處、某コミュンでは以下のやうに意見が分れてゐます。

個人的に、object要素中にブロック要素を記述するのは「あり」なのではないかと思つてゐます。

フレーズを文中で引用したり、會話文を文章の途中に出現させたりしたい、と云ふ要望は少からず存在しますし、この記法はさう云ふ要望を滿足させ得るものです。

一方、外側のobject要素の記述が使用されない時に中身の記述が解釋に使用されるものなので、依然、ブロック要素>インライン要素の順列は守られる必要がある、とする説もあります。

取敢ず、「objectの中にブロック要素を記述する事の是非については、現時點では定説がない」と云ふ事にしておきます。が、何うも「怪しい」ので、さう云ふ記述を使用する事は積極的に御薦めしません。

リンク

object要素策定に關する資料。

追記・「Eolas社の特許」とobject要素について

Eolas Technology社はある特許の認可を受けてゐる。その特許(米国特許番号「5,838,906」)は、ハイパーテキストの埋め込みオブジェクトに関する特許だ。

HTML文書もまたハイパーテキストの一種であり、object要素の記述によつて「埋込まれたオブジェクト」をブラウザがその内部で実行すれば特許に引掛かるものとされる。Eolas社はInternet Explorerが自社の特許を侵害したとして提訴し、Microsoft社が敗訴したため、結果としてEolas社の特許が「認められた」。

W3Cは、このEolas社の特許に対して以下の行動をとつた。

MS社はInternet Explorerの仕様を変更し、特許を回避した。そのやり方は、IEで埋め込みオブジェクトを実行する際、事前にダイアログボックスを出す、と云ふもの。直接実行するのでないからEolas社の特許には引掛からない、らしい。

object要素について、HTMLの仕様は変更されてをらず(2007-08-21現在)、基本的にサイト制作者が文書に「記述する」事は問題がない。しかし、現実のブラウザの挙動には「注意が必要」となつてをり、そのための「現実的」な問題回避の方法が存在する。

記述の際の約束としてのobject要素自体に問題はない。ただし、そのobject要素を解釈するブラウザの挙動によつては問題が生ずる。現実に「問題が生じてゐる」ため、今後のHTMLの仕様改訂に際しても、再検討が行はれる可能性がある。最新の情報は仕様を策定する機関(W3C)の発表によつていただきたい(このPC Tipsはニュースサイトでないため、掲載してゐる情報は古い場合がある)。