Jintrick.netagenda2003年03月アーカイブ → 2003年03月27日

フレームは非論理的(HTML)

はてなアンテナを巡っていたらナビの考え方という文書を発見しました。一昨年2001年のagendaへの反論が掲載されているので反応してみることにします。

言うまでもなく、サイト構造と各文書を繋ぐのはナビゲーション、つまりリンクである。論理的な結び付きというのは非常に難しい言葉である。その論理の定義がどのようなものなのかははっきりと記されていないが、つまり、全体構造を示したファイルと直接結び付くこと=論理的結合、だと推測する。だとすれば、フレームでは、サイト構造と各文書を論理的に結び付けることはできないというのは疑問を残す言い回しだ。何故ならば、文書を結び付ける手段は先述したように『リンク』なのだから。フレームは無関係である。

ナビの考え方 より

ちょっと申し訳無いことをしました。「論理的に結びつく」という言葉を、自分だけで納得して用いた悪文を書いてしまいました。この「論理的に」は「セマンティックに」と言い換えたほうが適切だったかもしれません。

さて、フレームは、二つの文書を物理的に結び付けているに過ぎません。これを理解していただくために、Opera9を仮定しましょう。この架空のブラウザは、HTMLのlink要素を的確に解釈し、有効に活用します。現行のOpera7とOpera9の違いは、サイドバーです。

<link rel="contents" href="contents.html" title="目次" />。このようなlink要素を文書内に見つけると、Opera9.0はナビゲーションバーに「目次」というボタンを表示させます。ここまでは現行のOpera7.0と同じです。Opera9.0を良く知るユーザーは、このボタンをサイドバーにドラッグ&ドロップします。すると、Opera9はサイドバーにその目次を表示させ、メインの領域に表示している文書と関連付けます。具体的には:

これらは、Opera9が、その文書が目次であることを「知って」いるから実装できる機能です。ところがフレームの場合、「左側にcontents.htmlを表示しろ」「右側にitem.htmlを表示しろ」という指示をブラウザに与えることは出来ても、contents.htmlがitem.htmlの目次であることは全く伝えられません。

近年、ブラウザはサイドバーを応用し始め、ただでさえ左右のスペースは小さいことが多いのです。目次であることを伝えることが出来れば、ブラウザは、各自のインターフェイスの一部を活用する形でそれをユーザーに提供することが可能になりますが、一方、目次であることを伝えずにフレームを利用する場合、製作者が強制するスペースを、ブラウザは新たに割かねばなりません。

フレームのような「ある特定の閲覧方法を提供すること」は、製作者が行うべきものではなく、HTML文書等の意味に基づいてブラウザが行うべきであると考えています。

これがその理由です。私もスクリプトで小賢しいことをしていますが、「Opera9」の提供する機能に比べればまあ屑ナビゲーションと言って良いでしょう。

従って私は、きちんと使いこなすのが恐ろしく難しく、ブラウザの進化によって無用になってしまう恐れのある「フレーム」を薦めるよりは、意味に基づいたHTML文書の書き方を薦める方が良いことであると考えています。

フレームは、きちんと使いこなすことが出来れば、無害です。しかし決して、「論理的」な代物ではないと申し上げたいのであります。論理的である、とは、理由が存在するということです。右や左に表示領域を分割し、それぞれに文書を表示すること指示するだけのフレームに、理由は存在しません。一方、link要素は論理的です。「ある文書にリンクする。何故ならば、この文書の目次だからである。」これをどう応用しようと、ブラウザの自由です。

私は「何故、どうして」の存在しないものは全て屑だと考えています(参考:なぜ「なぜ?」が必要か)。しかしこれらを盛り込もうという姿勢の見えるナビの考え方には好感を持っているということは、一応書いておきます。

因みに私はfub_netというブラウザを弄って「Opera9」のように使わせていただいていますが、お勧めしません。


webmaster@jintrick.net
公開: 2003年03月27日
カテゴリ: HTML ,(ハイパー)リンク