IE6には実装されていないがLynxやMosaic、Mozillaなどのブラウザはlink要素を解釈して自動的にナビゲーション用のリンクを作ってくれる。ということは、このサイト内でもページの一番上と一番下にナビゲーション用のバーが付いているが、これはおかしいのではないだろうか。link要素に対応しているブラウザだとナビゲーション用のリンクが二重に表示されることになる。
本来HTMLの構造から言えばbody要素内にこれらのメタタグに記述されるべき情報を書くのは間違っている。メタ情報は文章自体の情報であり、内容ではないのだ。そのような情報はブラウザが整理して観覧者に提供すべきだ。
では、なぜわざわざ付けているかというと、現状で最も利用者の割合が多いIE6がメタタグの解釈を実装していないからだ。あくまでHTMLは手段であって割合の多いユーザが不便になるのなら、規格をはずすことも必要だと思っている。
もうひとつ、このサイト内のナビゲーションバーは各ページの元になっているXMLデータ内のメタタグをPHPで変換して動的に生成している。そのため私としては変換後のHTMLデータの価値はあまり高くなく、使い回したいのならXMLデータを使えばいい。そういう意味で少しぐらいゴミが紛れ込んでいても気にならない。
現在このサイト内では見出しごとにURIが表示されていたり、最終更新日なども表示されているが、これらの情報もどちらかといえばメタ情報だ。利便性のためにあえて表示してあるが、ナビゲーションバー同様、将来的にはbody要素内の情報からは切り離されるべきだと思う。
私的には現在のナビゲーションバー類はどちらかといえばol要素だと思っている。この件についてはp要素で解釈した考え方も興味深いが、この方法だと機械的に生成する場合、文章がおかしくなりそうではある。
そこで
<ol>
<li><a href="../../">Home</a></li>
<li><a href="../">Works</a></li>
<li>foobar2000</li>
</ol>
とHTMLを書いて
li {
display: inline;
}
li:before {
content: " -> ";
}
とCSSで定義した方が幸せになれるのではないだろうか。これならば番号付きということで何となく階層の深さも表現できている気がする。
ただ、IE6が:afterに対応していないため、私はこれを使わない。現状ではDIV要素が最適だと思っている。