W3Cはiframeをリンクと言っているか?

iframe要素で実現されるインラインフレームについて、徳保さんの「リンクによる参照である」という主張と、jintrickさんの「埋め込みです」という主張を、比較して考えてみた。

ところで、参照という言葉はより広い意味にも使われ得る。例えば「ここで〜〜という文書を参照すると、」と書いてみたところで、直後に外部の文書を引用または転載して「参照」と述べることも可能と思われる。ここでは外部文書を直接表示することを目的とした埋め込みとの比較で、リンクのように外部文書の位置を間接的に示す意味で参照という言葉を用いることにする。

* * *

それは盗用かより。

インラインフレームへの文書読込は、HTML の観点からいえば「引用」ではない。リンクによる参照である。見た目は引用に似ているかもしれないが、技術の本質は全然違う。

と述べられているものの、インラインフレームという技術の本質が何なのかについては説明されていない。引用文の以後で代替手段については述べられているが、代替手段はあくまでインラインフレームが実現できなかった場合の代わりであり、インラインフレームと等価な手段ではない。

インラインフレームの説明原文)からは、インラインフレームとはHTML文書の行内にframeを設け、その中に外部文書を表示する、というものであると読める。インラインフレームの本質も、ただその説明の通りのものと思われる。

また、HTML 4.01仕様書のリンクについての章原文)で説明されているのはa要素、link要素、base要素であり、iframe要素やimg要素など埋め込み表示を行うものについては言及されていない。

以上より、HTMLの観点から、インラインフレームがリンクによる参照だという主張には疑問を感じる(「HTMLの観点から」という前提がなければ、拡大解釈として外部リソースを必要とするものを「リンク」と捉えることはできると思う)。

(追記)改めて確認したところ、仕様書のリンクについての章にimg要素、form要素について言及されている箇所原文)がありました。

* * *

Hatena::agenda 2004-03-29より。

HTMLの観点からいえばembed、埋め込みです。埋め込んでしまっているのですから参照ではありません。これは通常なら転載というのが最も近い表現かと。文脈によっては引用になり得ます。

HTML 4.01仕様書では、埋め込み文書に関する注意原文)でobject要素とともにiframe要素について言及されている。「HTMLの観点から見て、インラインフレームは埋め込みである」という主張は妥当と思われる。

また、jintrickさんは以下の様にも述べている。

インラインフレーム等のembed型リンクを用いていても参照となり得る(と私が考える)のは、普通のテキストアンカーによる参照型リンクがまずあって、そのアンカーを閲覧者がクリックするなどして閲覧するという意思決定を行った時、その時に(JavaScript等によって)embed型リンクのトラバーサルが発生する、というタイプのものです。

この仕組みは、「閲覧者のアクションによって外部リソースを取得する」という点でHTML 4.01仕様書にあるリンクの説明原文)と同等であり、やはり妥当な説明だと思われる。

リンクに対応するデフォルトの動作は、他のリソースを取得することである。 この動作は一般的に、リンクを選択すること(マウスでクリックする、キーボードで入力する、など)によって引き起こされると期待される。

* * *

関連して、noteさんはフレームとインラインフレームについて「参照と言えます」と述べており、その根拠をXHTML 1.0のDTDに求めている。

しかしDTDでは、frame, iframe要素におけるsrc属性の値が %URI という形式であることが記述されているだけであり、src属性が「参照するリソースの URI」であるとは(コメントとしても)書かれていない。

また、HTML 4.01のDTDでは、iframe要素のsrc属性について以下のように記述されているが、「参照」を意味する言葉は使われていないように見える。

src         %URI;          #IMPLIED  -- source of frame content --

DTDの記述からは、インラインフレームが参照であるとは言えないのではないだろうか。

* * *

以上のようなことを書きたくなったのは、ことのはインフォーマル 2004/03/28(Sun)を読んだので。少なくともHTML 4.01の仕様からは、インラインフレームがリンクであるとは読み取れなかったので、そのことで徳保さんを「W3C原理主義」と言うのはあたらないのでは、と思った次第。

(追記)「少なくともHTML 4.01の仕様からは、インラインフレームがリンクであるとは読み取れなかった」の部分は取り下げます。

この文章は「iframeはリンクであるか」という問題と「iframeは参照であるか」という問題を混同して扱っているため、お奨めできません。以下の文章もご参照下さい。

(2004年4月1日)

北村曉 kits@akatsukinishisu.net