見出しレベルに関する疑問

この度私は、「最上級見出しはh1要素でなければらならい」というルールを個人的に撤廃するかどうか悩んでいる。つまりは突然 h2 から始まろうがh4 から始まろうが、別に問題は無いのではないか、という話である。実際、多くの正しいHTMLを教えるサイトで、h1要素から始めるべきだと強く奨められている。しかしその考え方に、幾つか矛盾があるような気がしてならないのである。それに至った経緯を御紹介する。

印刷メディアにおける問題提起

近頃私は、印刷を意識した文書を作成している。とりあえずHTMLで書いておき、紙メディアとしても、Webリソースとしても活用できるようにしたものだ。最終的には1冊の簡潔なテキストに収めるつもりである。
細かく章区切りにし、各章ごとに一つのファイルとしてまとめている。この際、h1要素によってマーク付けされているのは『第n章 〜』という章題だった。結果として各ファイルにおけるそれぞれの最上級見出しがh1でマーク付けされており、あたかも妥当のようにも見える。
しかし私は章が増えてきたために、『第n部』というより大きな区切りで複数の章をまとめる事にした。ところが各部のはじめにその旨を挿入しようと考えても、既にh1要素が使われているためにそれをを挿入する事ができない。h0要素などというものは存在しなし、別ファイルにでかでかと一行『第n部 〜』と書くのも馬鹿らしい。結果的に、全てのhn要素の絶対数字を一つづつ減らしていかなければいけないという事態が発生した。

Webの表現

理想的なWebのモデルを表現するならば、全てのリソースを一意に独立したものと考えるニューラルな視点がより妥当、とは以前の記事で書いた。
もしそうならば、相互のリソース間の階層関係などどうでも良く、全てのリソース毎に最大級の見出しは h1要素 でマークアップすべきではないかという意見も理解できる。サイトタイトルが何であろうが、何処のカテゴリに属そうが、例えば「自己紹介」は「自己紹介」なのであって、その最大級見出しにはh1要素を用いるのが妥当だという話だ。
トップページを介する事無く突然そのページにアクセスしたUAが、h1要素を発見できずに「自己紹介」をマークアップしているh2要素を先に見つけてしまったら、見出し構造をどう解釈すれば良いのだろうか。
この考え方により、全てのそのファイルの中の最大見出しにh1要素を割り当てるのは“より良い”と言えるかもしれない。

URIと識別子

リソースを一意的に識別するために用いられるのがURIである。しかしURIには部分識別子(id属性やname属性)も含まれることに注意したい。もしリソースごとの最大見出しが h1要素 でなければならないのであれば、全ての部分識別子を持つ要素の最大見出しも h1要素 でなければなるまい。
たしかにその“ファイル”から見ればそれは第3レベルの見出しかもしれないが、その部分識別子を含むURIからリソースを見れば第1レベルの見出しであるに違いない。通常閲覧者はサーバ名やディレクトリ名を意識せずともリソースにアクセスできることと同様に、“ファイル”という単位もまた作成者側の都合に過ぎない。もしかすると、部分識別子の指し示す領域のみを表示するユーザエージェントが存在したとしても不思議ではない。そう考えると、一つのファイル上での最大見出しは h1 でなければならないというのは随分と可笑しな話だ。

絶対数字という矛盾

一冊の本を例に取ってみよう。先ほどは『章』の上に『部』という階層レベルが存在し得ると述べた。しかしそれならば、『本のタイトル』というさらに大きな見出しが存在することにも気付くだろう。もしかしたらその本はシリーズもので、『第何巻』という階層が存在するかもしれないし、『その作者の作品』『出版社』『同じジャンル』『書籍』『情報媒体』といくらでもその階層を遡ることができる。
極端な話だが、カテゴリ分けという意味での階層レベルは、上も下も無限大である。それを絶対数字として定義する事自体に無理がある。あたかもそれが最大見出しのように見えたとしても、井の中の蛙、一歩後ろに下がってみればもっと大きな見出しがある。
もっとも、あるレベルを仮に1と定めることによって、あたかも絶対的であるかのようにそのレベルを表現する仕方もある。

相対的なレベル

見出しとは常に相対的に存在するべきものである。つまりはそこにある規則によって纏められたテキスト群があり、それを代表するかたちで見出しが存在する。ここでは、一対一の純粋な相互関係によるアプローチとする。
より上位の見出しとより下位の見出しによる上下関係は確かに存在するが、そこに明らかな基点は存在しない。「章」を基準とするか、「節」を基準とするか、「部」をベースとするかは状況によって異なるので、それは自由に作成者が割り当てられるべきだ。HTML4.01にはレベル1から6までしか用意されていない為、便宜上、その中に収めなければならない。つまり、h0要素 や h7要素 が存在する事が無いように、適切に相対的な見出しレベルを調整する必要がある。
そのファイル内においての最大級見出しをh1要素でマークアップすることに不具合があるならば、h2で始まっても問題無いはずである。数字は確かにレベルの高さを表しているが、1だから最大、2だから準レベル、と決めつけるのは汎用性が低い。HTMLは自然言語マークアップするために用いられるべきだから、そのような不便性は解消されるべきだ。

過渡的な手段

対象をWebに絞るならば、“ファイル”上の最大見出しをh2でマーク付けするのはあまり得策とは言えない。一般的な慣習とは異なっているし、潜在的な見出しを得るための手段が貧弱(link要素の解釈等)なため、ユーザやUAを混乱させる恐れがある。それを解消する術として、例えばはてなダイアリーのように全てのページにヘッダ部分を表示するという方法もある。
XHTML 2.0が勧告されてしまえば、このような奇妙な思いをしなくても済むようになるかもしれない。何故ならば、h要素とsection要素による極めて単純な見出し構造が実現できるからだ。