果たして文書をどのような単位で区切るのが最適なのか。また少し悩む。
私は、HTML文書は作成者本位であるべきだと考えてきた。良く見かけるスライドショーのようなパフォーマンスは、私には到底真似できない。これは批判ではない。確かに見やすいのだから。しかし、考えられ得る最小単位でファイルを分割すると言うやり方は、面倒臭い。作成者の意欲と文書の質に相関関係があると仮定すれば、この面倒臭いという奴はいかにもまずいではないか。
ただし私は閲覧者の利便性を無視して良いと考えているのではなく、文書そのものの価値こそ大事であり、その価値を保護した上で作成者の利便との両立を図ることこそ重要だと考える。
論理構造以外の部分の分離というのは、スタイルシートだけに任せきれるものではない。私は、そのためのDynamicHTMLであり、DOMであると思うのだが、鬱陶しい使い方や、悪意ある危険な使い方が存在している為に、javascriptオフ環境を好む人がいるのは残念である。
論文や仕様書のような巨大な文書の場合、目次にアンカーをつけるやり方が一般的だが、ユーザーにとってあまり快適とは言えない。慣れてしまえば問題ないのだが、ページ内の別の箇所にジャンプした際、backボタンで戻ることの出来ないブラウザなら、スクロールバーを戻すか、キーボードを操作しなければならない。そして重要なのは、常にその文書の一部分しか見ていないという不安を伴うことである。
そこでこういうのを考えた。
まず、id付きのdivでマークアップした各セクションは、display:none
として非表示にしておいて、ページ内の各セクションに飛ぶハイパーリンクのみを表示させておく。この時、もちろんdisplay:none
はJavaScriptで処理する。
アンカーをクリック等したとき、div要素を新たに生成し、その中身に該当するセクションを(innerHTML
で参照して)挿入する。ついでに「閉じる」ボタンも挿入してやれば尚良い。生成したdiv要素は、それを示すハイパーリンクを内包するブロック要素に挿入する。
うーん、実際にちょっと試してみたものの、z-index関係で挫折。今日は眠い@22:20 ので明日に。