2004年4月分。
iframe要素で実現されるインラインフレームについて、徳保さんの「リンクによる参照である
」という主張と、jintrickさんの「埋め込みです
」という主張を、比較して考えてみた。
ところで、参照という言葉はより広い意味にも使われ得る。例えば「ここで〜〜という文書を参照すると、」と書いてみたところで、直後に外部の文書を引用または転載して「参照」と述べることも可能と思われる。ここでは外部文書を直接表示することを目的とした埋め込みとの比較で、リンクのように外部文書の位置を間接的に示す意味で参照という言葉を用いることにする。
それは盗用かより。
インラインフレームへの文書読込は、HTML の観点からいえば「引用」ではない。リンクによる参照である。見た目は引用に似ているかもしれないが、技術の本質は全然違う。
と述べられているものの、インラインフレームという技術の本質が何なのかについては説明されていない。引用文の以後で代替手段については述べられているが、代替手段はあくまでインラインフレームが実現できなかった場合の代わりであり、インラインフレームと等価な手段ではない。
インラインフレームの説明(原文)からは、インラインフレームとはHTML文書の行内に本質
も、ただその説明の通りのものと思われる。
また、HTML 4.01仕様書のリンクについての章(原文)で説明されているのはa要素、link要素、base要素であり、iframe要素やimg要素など埋め込み表示を行うものについては言及されていない。
以上より、HTMLの観点から、インラインフレームがリンクによる参照だという主張には疑問を感じる(「HTMLの観点から」という前提がなければ、拡大解釈として外部リソースを必要とするものを「リンク」と捉えることはできると思う)。
(追記)改めて確認したところ、仕様書のリンクについての章にimg要素、form要素について言及されている箇所(原文)がありました。
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日)
先に書いたW3Cはiframeをリンクと言っているか?について、jintrickさんから言及頂きました。これまでXLink、HLinkについてはほとんど知らなかったのですが、示されている例については感じがつかめました。なので、W3Cが
また、先の文章を書いていた時は見落としていたのですが、HTML 4.01仕様書のリンクについての章の中には、img要素やform要素についても言及(原文)されていました。
このことからも、画像の埋め込み表示を行うimg要素が「リンクを生成する
」とあるからには文書を埋め込み表示するiframe要素もまたリンクだと考えるべきである、と納得できました。
それはそれとして、W3Cの言うところのリンクは全て参照と言えるのか、というのはまた別の問題ではないかと思います。a要素と、img要素やiframe要素のような埋め込み要素を比べると、
という違いがあるわけで、言い替えれば、a要素は正にリソースを(位置によって)参照するのみですが、iframe要素は参照するに留まらず、リソースを取得しなおかつ元文書の内部に表示する(という動作がiframe要素の本質であるはず)ものであり、概念としては転載に近いものと思われます。jintrickさんにより指摘済みですが。
リンクによる参照で徳保さんが書いている「例え話
」は、どういう結論を導くためのものなのか、自分には今一つ理解できないところでした。「コピーされる
」ということで言えば、そもそもウェブで閲覧されるリソースは全てウェブサーバからPC等のクライアントへコピーされるものであるし、「転載」
が人の手による外部リソースのコピーであるならば、iframeはコンピュータによる自動的な外部リソースのコピーとも言えるわけで、大した違いは無いように思います。あと、「転載」も元のリソース自体には「何らの影響も与え
」ないのでは。
(2004年4月8日)
先に書いたリンクは参照かに対する、徳保さんのリンクは「転載」ではないについて。
補足すると、先の文章でも「概念としては転載に近いものと思われます
」と書いている通り、自分はiframe要素が転載そのものだと主張する気はありません。iframe要素と転載とで徳保さんが述べているような違いがあることには同意します。
付け加えると、人の手による転載が、或る時点における文書の一部の写しに過ぎないのに対し、iframe要素は、文書の現在の状態を忠実に(削除した、という状態さえも)反映することができるので、より理想的な転載とも言えるのではないか、と思っています。
しかし自分にとっては、iframe要素が転載かということについては、あまり関心がないところで。考えがあちらこちらに行っていましたが、現在の疑問点は「iframe要素は参照であるか」です。一応、先の文章でも題に「参照か」と書いていたように。そして今のところ、「iframe要素は参照とは言えないのではないか」と考えています。iframe要素は外部文書を単に参照するだけでなく、元文書と同時に取得して元の文書の内部に表示するために使われるから、というのがその理由。
HTMLの仕様で定義されている様々な要素は、主として文書構造を表すためのものですが、iframe要素は、仕様(原文)を読む限りは、インラインフレームという視覚効果を提供するために設計された要素だと思われます。徳保さんは「パッと見の話に過ぎないわけで
」(リンクによる参照)、「見た目がそれっぽいだけであって
」(リンクは「転載」ではない)といったことを述べていますが、iframe要素について技術的な話をするのであれば、寧ろ見た目こそを重視すべきだと考えます。言い替えれば、「それっぽい見かけ
」を提供するのがインラインフレームの技術的本質なのではないかと。
リンクによる参照の「例え話
」の意図は、iframe要素と転載の違いを示すためということで了解しました。
(2004年4月9日)