main
要素については色んな人が色んな所で書いてるので、そのものがどういうものかとかは今さら書かない。main
要素がもし複数出てきていいならアレとアレにdiv
要素使わなくて良くなるなーという。アレとアレというのは、hAtomのentry-content
ともうひとつはSchema.orgのArticle(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
要素はしばらく封印することにした。