続きを書くの、わすれてました。というわけで、今回はセクションの構成と、sectioning contentについて。
ここの構造って、たぶんこうなってると思います。
<h1>vantguarde</h1> <h2>09.04.18</h2> <h3>くたばるのは僕の方だよね</h3> <h4>まあでも考えなよ</h4> <h4>例考えるの飽きた</h4> <h2>09.04.17</h2> ...
HTML5のHeadings and sectionsというセクションには、だいたい次のような感じセクションを構成する流れが書かれています。
hn)を調べるだから、こんな感じになりますね。
特に難しくはないかなと。
さて、じゃあこういうのはどうなるんでしょう。
<h1>HTML 5</h1> <h2>A vocabulary and associated APIs for HTML and XHTML</h2> <h2>W3C Working Draft 12 February 2009</h2> <dl> <dt>This version:</dt> ...
W3Cの仕様書なんですが、h2が前にあるh1とともに、一つの見出しブロックを構成しています。サブタイトルみたいなものと考えればいいでしょう。
しかし、今言ったアルゴリズムでは“HTML 5”の下に“A vocabulary...”と“W3C Working Draft...”という、二つのサブセクションができてしまいます。これは意図されたものではないでしょう。
そこで登場するのが、見出しブロックを構成するheaderです。headerはh1-h6とともに、heading contentとしてカテゴライズされています。
<header> <h1>HTML 5</h1> <h2>A vocabulary and associated APIs for HTML and XHTML</h2> <h2>W3C Working Draft 12 February 2009</h2> <dl> <dt>This version:</dt> ... </header>
こういう風に囲んであげると、ひとまとめの見出しとして扱われます。
グループ化という側面もあり、たとえばheaderの中にh1ひとつしかないってのは良くないです。non-conformingではないですが。
sectioning contentはセクションを開始する要素を表します。section, nav, article, asideが該当します。
ここの場合、たとえばこんな感じになるかなあと。
<h1>vantguarde</h1> <section> <h2>09.xx.xx</h2> <article> <h3>HTML5のセクション</h3> <footer> <p><a>html5</a>, <a>markup</a> | 12:26</p> </footer> <section> <h4>フラットでなんとか</h4> </section> <section> <h4>見出しのグループ化</h4> </section> <section> <h4>sectioning content</h4> </section> </article> <article> <h3>HTML5が2010年に出るってのはデマ</h3> <footer> <p><a>html5</a> | 23:35</p> </footer> <p>出るわけないです。本気で思ってるんですか?目を覚ましてください。</p> </article> </section>
こんな感じです。ちょっとfooterを入れてしまってるのでごちゃごちゃしてますが、まあこちらも理解できるかなあと。
sectionにする人はくたばればいいと思う気をつけてほしいのが、divをsectionでそのまま置き換えたもの。
<article> <h1>タイトル</h1> <section class="content"> <p>blah... </section> <footer class="related"> <ul>... </footer> </article>
たぶんスタイルシートのために用意してるんでしょうが、そういうものはまずdivでやりましょう。section.contentがあると、その中に見出しのない無名のサブセクションができてしまいます。もちろんそれがサブセクションである場合ならば構いませんが。
ほかにもsection#containerとか、とても怪しい感じのマークアップを見る事があります。もしそういう風に書いていたら、悔い改めてdivにしましょう*1。
レイアウト関係はあとで書くようにして、とりあえず見出しとセクションを意識する事からはじめましょう。
hgroupがまさしくこんな感じで書かれていますけど、そうすると、複数の見出しがあるときにこそ使うべきだってなりますよね(だってグループ化だから)。
するとサイト制作という実務上は利用シーンがかなり限定されるような気もするんですがどうなんですかね(愚痴っても仕方がないんですけど)。