最適なナビゲーション

私は広大なナビゲーション領域が嫌いだ。企業サイトで良く見かける、左半分を埋め尽くすアンカー群を見るたびにうんざりする。そういう意味ではフレームサイトの方がまだ良いだろう。何故ならば、ナビゲーション領域を完全に切り離す事ができるからだ。どうにも私は画面一杯にテキストが広がっていないと読んでいて落ち着かないという、比較的珍しい人種らしく、その本文と何ら関係のない領域に苛立ちを覚える。CSSで整形しているならばまだ対処が可能だが、テーブルタグでがっちり固定されているとどうしようもない。それこそ、テーブル自体を破壊するという、危険な手段にでも出ない限りはだ。

フレーム

ある見地からするならば、フレームは限りなく有効な手段である。ナビゲーションと本文との分離を見事に果たしており、body要素内に再利用性の低いテキストを挿入する必要も無い。しかし少なくとも現在の仕様では使えない。それはXFormsでも同様だ。主従関係がまず過ぎる。フレームの問題性については、フレームのあるべき姿で既に考察済みだ。
しかしそういったフレームサイトに限って、ちゃんとしたサイトマップを用意していない事が多い。私にとって、フレームは“切り離すためのもの”だ。

スクリプト

外部スクリプトを用いるという方法がある。HTMLの見地からすれば、比較的妥当な手法だろう。余計な“タグ”を挿入する事無く、ごく自然にナビゲート領域を発生させることができる。この方法を用いるとメンテナンスが非常に楽である。一つちゃんとしたサイトマップをデータ化しておくだけで、あとは自動的に各ページが適切な箇所だけを拾ってくれる。閲覧者側で表示/非表示を切り替えられるというのも利点のひとつだ。
スクリプトが無効な人がやや使い難いかもしれないが、そういう人にとって多少の使い勝手の悪さは承知の上だろう。むしろその“余計な配慮”が嫌いなのだから。サイトマップに対するリンクがあれば充分だ。
しかし私がJavaScriptの採用を渋っているのは、壮絶なクロスブラウザ問題があるからだ。あらゆる環境でエラーが発生しないように処理を分けるなんて、端から見て面倒臭そうでたまらない。特にDOM関連は大きな相違点があると耳にする。

link要素

本来ならば、それらの要素はlink要素で提供されるべきである。しかし現在のWebの慣習と、対応ブラウザの普及率を考えるとなかなかそうも割り切る事は出来ない。多くのブラウザがlink要素によるナビゲーションを解釈し始めるようになったとはいえ、ブラウザのシェアはいまだIEが圧倒的だからだ。
習慣という意味でも、我々はまだそれに適応しきれていない。殆どのサイトはlink要素によるナビゲーションを行なわないため、ついついそれがあっても気付かない事は多い。

パン屑リスト

現時点でのWeb言語およびブラウザの実情を考えると、パン屑リスト形式のナビゲーションが一番最適なようにも見える。それはコンパクトで広いスペースを取らないし、その文書の位置関係をも同時に伝える事が出来る。
しかし、パンくずリストもまた、過渡的な手段であることを忘れてはならない。見出し構造を意識して文書を作成したことがあるなら、その何ら本文と関連性の無い特殊な領域を、どこに挿入したら良いか迷うことがあるかもしれない。

ナビゲーションリスト

XHTML 2.0のnl要素だが、どうにもいまいちこの要素の使い方が解らない。恐らくグローバルナビゲーションをマーク付けするものなのだろうが(どのようにレンダリングされるのかは別として)やはり、単なる既存のナビゲーションリストを意味付けして置き換えただけのものなのだろうか。それならば別にmenu要素でも良いだろうに。
後方互換性を意識しないフォーマットであるならば、どうせならばhead要素内で扱える要素にしてしまえば良かったのではなかろうか。link要素では階層的なナビゲーションには限界があるから、リスト形式でナビゲーションを提供できればさぞかし便利だろう。それをUAがどう扱うのかは不明だが、サイドバーにでも表示してくれれば一番良い。

結論

今のところ、誰一人首を横に振らないような最適なナビゲーションは存在しないと思われる。どれも過渡的で、本質的な解決にまでは至っていない。そしてそれはXHTML 2.0が普及したとしても、まだ不足だろう。
初期のNetscapeがlink要素を無視した瞬間から、全ての問題は始まっている。