HTML5の「article」と「section」の使い方で迷う
2013/02/12
先週から構築中のこのブログ。今日はWP-PageNaviプラグインを使用してページナビゲーションを追加しました。 ここでも、<nav>~</nav>でマークアップした方が良いのか迷いますが、ナビゲーションなのでマークアップした方がいいんでしょうね。 さて、今日はそんなHTML5のマークアップで迷い中という話です。
HTML4.01までのHTMLやXHTMLでは、大きく分けてブロックレベル要素とインライン要素の2種類しかありませんでしたが、HTML5から次のように細分化され新しい要素も追加されています。
HTML5のコンテンツモデル
- メタデータ
- フロー
- セクショニング
- 見出し
- フレージング
- 埋め込みコンテンツ
- インタラクティブコンテンツ
追加された要素にはheader、footer、nav、asideなどは分かりやすくて迷うことはありませんが、タイトルのように「article」と「section」が少々迷います。実際、いくつかサイトを見て回っても使い方は様々。 「article」も「section」も共にセクショニングコンテンツでもあり、フローコンテンツでもあります。だから余計に迷ってしまう。
<article id="content">
<article>
<p>コンテンツ1</p>
</article>
<article>
<p>コンテンツ2</p>
</article>
</article>
<section id="content">
<section>
<p>コンテンツ1</p>
</section>
<section>
<p>コンテンツ2</p>
</section>
</section>
メインのコンテンツ部分を「article」でマークアップし、その中を更に「article」で分けるのもOKのようだし、同じように「section」の中で「section」を使うのも大丈夫そう。また、「article」の中で「section」を使うのもOKみたいだし、逆に「section」の中で「article」を使うのもOK?
<article id="content">
<section>
<p>コンテンツ1</p>
</section>
<section>
<p>コンテンツ2</p>
</section>
</article>
<section id="content">
<article>
コンテンツ1
</article>
<article>
コンテンツ2
</article>
</section>
以前、livedoorブログの記事を表示するタグがarticleだった?という記憶があったので、最初は記事をarticleにしてsectionでメイン部分をマークアップしていましたが、どうも逆の方がスッキリする気がしてきたので、ページナビゲーションを追加したときに逆に変えました。とは言っても見た目は変わらないんですけどね。せっかくなのでページナビゲーションもnavでマークアップしようと思います。

