何らかのツールでテンプレートを元にページを生成する昨今、あまりページごとに大きくアウトラインの構造(変な表現だ)が変わることはない。枠を作って流し込む、枠を作って流し込む、というわけだ。ウェブではコンテンツは主に文章であるので、流動性はそれなりに高く、流しこむこと自体は多くの場合は問題にならないが、もうちょっと考えても良い所ではある。
典型的なウェブログのindexのページは以下のような構造になっていることだろう。
headermainarticlearticlearticlefooterこれから自身以外のarticle要素を取り除いたものがpermalinkのページ構造になる。
headermainarticlefooterこの時点でmain要素でグルーピングする意味はほとんどなくなる。合わせてpermalinkでは文書のプライマリ・コンテンツはこのarticle要素の内容であり、それが唯一であることを考えるとarticle要素を使うのは冗長だ。仕様のarticle要素の項でもこのことは触れられている。
かといってコード・レベルでの階層構造をフラットに変更するのはコスト(主にスタイリングにおいて)が高い。そこで論理構造を持ついくつかの要素をdiv要素に変更してやるのはどうだろうか。
div[role="banner"]divdiv[role="main"]footerarticle要素というセクションを作る要素がなくなるためheader要素も変更してやる必要がある。HTMLコードそのものとしてはほとんど変わりがなく、かつHTML5らしくなく見えるため、なんとなく美しくない気もするが、アウトライン構造はすっきりとする。
こうしてやるとロゴでh1要素を使っていなくてもUntitled Sectionとみなされなくなるのもポイントが高い。むしろそのためにひねり出した感がある。悪い解ではないはずなので、しばらくはこれで行ってみよう。