main要素……

main要素については色んな人が色んな所で書いてるので、そのものがどういうものかとかは今さら書かない。main要素がもし複数出てきていいならアレとアレにdiv要素使わなくて良くなるなーという。アレとアレというのは、hAtomentry-contentともうひとつはSchema.orgArticle(BlogPosting)/articleBody。とか言いつつそこら辺は好みの問題っぽいのでちょっと別の話。

しょうがなくdiv要素を使うケースというのはそこそこあって、その最たるものがdiv.wrapper。これにrole="main"との対応が考慮されてmain要素の誕生につながったわけだけど、あらためてrole="main"のことを考えながらmain要素を使ってみると、div.wrapperは常にmain要素になりうるのかみたいな疑問が湧いた。

例えばウェブログのpermalinkのページ。

<body>
  <header role="banner">...</header>
  <main>
    <article>...</article>
    <aside class="ad">...</aside>
    <nav class="paging">...</nav>
  </main>
  <footer role="contentinfo">...</footer>
</body>

main要素をdiv.wrapperの代わりに使うとこうなったりするわけだけど、この場合role="main"article要素に振られた方がより良い。仮にそうするとすると、role="document"body要素にrole="document"main要素があって、その中にrole="main"article要素があることになる(参考: mainロールのNote)。ちょっと気持ち悪いというかrole="document"body要素配下にあるrole="banner"等と分断されてダメな感じ。

とか考えるとdiv.wrapperにしてrole="main"を適宜つけたりはずしたりする方が良さそう。main要素が力強すぎて扱いづらくなっちゃってる気がする。特にHTML5.1(2013-05-28付けのWD)だとstrong native semantics持ちなので、そもそもrole="main"article要素を作っちゃうとmain要素使えなくなる(と思う)。その場合div.wrapperも併用することになり、間違ってはないけどイラっとする感じに……。

main要素をどういうものと規定すればこういう所に感じる気持ち悪さが解消されるのか想像付かない。足並み揃ってなかったり未来もあんまり明るくなさそうな気がするのでmain要素はしばらく封印することにした。