Jintrick.netagenda2008年12月アーカイブ → 2008年12月01日

フレームは非論理的、再掲

このサイトの生い立ちは、とある掲示板で議論が起こり(というよりも一方的に筆者が起こしたものだが)派生したのが理由だが、その掲示板にとあるサイトからの引用が投稿されたので紹介(引用)並びに筆者のそれ対する意見を記しておく。

Personnel - 2001/7/1~15 - agenda - Personnel

私は、サイト構造を明確に示したナビゲーションの存在は、ウェブサイトの構築に是非とも必要なものだと思っている。各文書が、全体構造を示したファイルと直接結び付くことで、初めてウェブサイトたり得るのではないか。結果としてユーザビリティを高めることになるが、本質的な意味はそこにあるのではないかと思っている。

ところがフレームでは、サイト構造と各文書を論理的に結び付けることはできない。視覚的に結び付いていることができるのでさえ、玄関となるトップページを開いた時だけである。ゆえに私はフレームを用いてサイト構造を分離しようとは思わない。

サイト構造を明確に示したナビゲーションのくだりは、前述の通り筆者も同じ意見だ。しかし、2段落目のフレームでは、サイト構造と各文書を論理的に結び付けることはできないというのはどういうことなのだろう。そもそも論理的とはどのような理なのかを考えてみたい。

ろんり 【論理】〔logic〕
  1. 思考の形式・法則。議論や思考を進める道筋・論法。
  2. 認識対象の間に存在する脈絡・構造。

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

ナビの考え方(frame.s26.xrea.com)より引用

強調Jintrick認識対象の間に存在する脈絡・構造。と書いてある通り。文書を論理的に結びつけるというのは、何故、それらが結びついているのかという、その何故を明示するということ。言い換えると、結びつけた理由をそのハイパーテキストの構文で示すことだ。

Framesetのやり方で結びついただけでは、ソフトウェアはそのファイルが全体構造を示していることを理解できない。理由が示されていないからだ。リンクの方向や文書間の主従関係も示されていない。たとえば左側ペインが目次、右側ペインに本文という「フレームページ」を考えてみると、本文と目次は直接結びついておらず、framesetの文書型を宣言された空っぽのHTML文書が、目次文書と本文文書にそれぞれ匿名リンクしているだけだ。図1に示す:

図1. フレームのリンク方向
frameset文書が「主」、目次と本文が「従」で、目次が本文とリンクしていない

主従がめちゃくちゃなんだよ。論理的に両者を結び付けると、本文が目次に「目次ですよ」とリンクするのが自然だ。図2に示す:

図2. 論理的なリンク方向
本文が「主」、目次が「従」で、本文が目次に「rel="contents"」でリンクしている

これが私が、何年前だっけ?6年前?に考えていたと思われる抽象的な理念。実際にどんな問題/ご利益があるかなんて今やどうでもよくなっているけれども、一つ今思いつくのは、ブラウザはフレームで構成されたウェブページの主従関係を知り得ないため「アドレスバー」とやらにヘンテコなURLを表示してユーザーを困惑させているだろう。これがその非論理性が顕在化した例だ。

あと、フレームの「ボーダー」。文書と文書の境目。こんなものをHTMLで表現すべきではない。これはブラウザがやるべきだ。左に目次のペインを作り、右に本文のペインを作る。こんなのは典型的なハイパーテキストブラウザの仕事だろうよ。デスクトップアプリケーションの文脈で言うなら、HTMLはデータに相当する部分だろう。ソフトウェアとデータの関係を考えれば、フレームがあまりにも異常なのは明白ではないか。

rel="contents"をまともに利用できるブラウザがないため、この関係が極めて重要な時、仕方なくフレームを利用することはあり得るかな。

追記

当為命題を意見の押し付けだという馬鹿に言及されたが、言論をパワーハラスメントか何かと勘違いしている。この手の飛躍は被害妄想から生まれると相場は決まっていて、下手に名指しすると妄想を膨らませて何をしだすか分からん。危ないので直接関わらない方がよさそうだ。どうやら「彼」は闇黒日記に着想を得て元気になり、その勢いで書いた文章らしいが、同じような疑問を抱く人もいるかもしれないから追記しておく。

noframes要素は、フレームをサポートしないユーザエージェントやフレームを表示しない設定になっているユーザエージェントにおいてのみ表示されるべき内容である。フレームをサポートし、表示する設定にしてあるユーザーエージェントがその内容を解釈しなければならないとはされておらず、frame要素による非論理的なリンクを補完する役目をnoframesに期待することはできない。noframesに期待できるのは、フレームが無効な環境での代替内容の提供。

framesetのHTML文書にrel="index"などのlink要素を記述した場合にリンクされるのは「framesetの文書」と「索引(index)文書」であり、frame要素でリンクされた文書と索引は直接リンクしていない。noframesの内容とlink要素とのリンク関係が発生するのは、上に述べたように、フレームをサポートしないユーザエージェントやフレームを表示しない設定になっているユーザエージェントにおいてのみ、である。


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