HTML5のセクショニングとアウトラインに関する素朴な疑問とちょっとした考察

「HTML5 のセクションについて」( http://bit.ly/efDzP0 補足: 2011年3月9日17時現在は削除されている )という文書を読んで一箇所 Twitter でツッコミを入れたら、思いがけず書いた方が補足を入れて頂けたのですが、その補足に関して少し疑問に思うところがありましたので、実際の仕様上はどういう扱いになるだろうか?というのをツイートしてみたもののまとめです。 具体的に言うと、body直下の見出し(h1要素)があるような場合に、先の文書の補足では「『body 直下の section は不要』なのではなく、明示しない場合は h1 要素によって暗黙に存在している、というだけです」とおっしゃられてる訳ですが、それだと「暗黙のセクションとしてではなく明示的にセクショニング要素で括った」文書と括らない文書は「アウトライン的には」等価にならないとおかしいのでは?という事です。
6
Jeffrey Francesco v3.4.3 @JForg

一つだけツッコミ入れると、body自体もセクショニング要素の一つであるから、body直下のsectionは不要ですね。→ On HTML5 Sections - DOM ECMAScripting http://bit.ly/efDzP0 #HTML5jp

2011-03-05 22:11:05
Jeffrey Francesco v3.4.3 @JForg

数日前に http://bit.ly/fLn4vO こんなツイートしたんだけど、さっき同じページを見たらそれに対して補足を頂いてた。 http://bit.ly/hMdfz0 #HTML5jp

2011-03-08 22:50:08
Jeffrey Francesco v3.4.3 @JForg

「body自体はセクショニング要素」ではなくセクショニングルートである、というのはその通りですね。そこは訂正いたします。 #HTML5jp

2011-03-08 22:50:46
Jeffrey Francesco v3.4.3 @JForg

しかし「明示しない場合はh1要素によって暗黙に存在している、というだけ」なのなら、明示した(body以下の内容全てをarticle等で括れるような)文書をチェックするとルートを無名セクションとして判断するHTML Outlinerは信用ならんって事かいな? #HTML5jp

2011-03-08 22:55:25
Jeffrey Francesco v3.4.3 @JForg

先の説明だと<body><h1>タイトル</h1><p>文章</p></body>と<body><article><h1>タイトル</h1><p>文章</p></article></body>はアウトライン的に等価になるって事違うの?文書的な意味合いは別にして。 #HTML5jp

2011-03-08 23:00:23
Jeffrey Francesco v3.4.3 @JForg

さて、現仕様をもう一度見直しましょうか。

2011-03-09 00:11:21
Jeffrey Francesco v3.4.3 @JForg

今日時点での最新は2011年3月5日付けのEditor's Draftですね。ここの "4.4.11 Headings and sections"( http://bit.ly/i7z7FU )4パラグラフ目、"Sectioning content…" の部分。 #HTML5jp

2011-03-09 00:20:59
Jeffrey Francesco v3.4.3 @JForg

この部分(翻訳: http://bit.ly/e4HpNR )読むと「セクショニング・コンテンツの要素は、常に、その直近の祖先となるセクショニング・ルートか、その直近の祖先となるセクショニング・コンテンツの要素のサブ・セクションと見なされます」となってますね。 #HTML5jp

2011-03-09 00:32:47
Jeffrey Francesco v3.4.3 @JForg

HTML5.jpの翻訳は昨年6月時点のだけど、この部分に関しては当時の原文と現在のEditor's Draftの原文に差異はないのでそのまま引用しました。翻訳自体も間違ってないですし。 #HTML5jp

2011-03-09 00:37:32
Jeffrey Francesco v3.4.3 @JForg

つまり仕様書から判断するに、body直下に置いたセクショニング要素はやっぱりセクショニングルートbodyのサブセクションってことだ。って事はbody直下に置いたh1はあくまでもbodyのトップレベル見出しであって決して暗黙のセクションを生み出してる訳ではない。 #HTML5jp

2011-03-09 00:54:16
Jeffrey Francesco v3.4.3 @JForg

↓というと語弊があるかもしれないな…いや確かに暗黙のセクションは存在してるんだけど、その暗黙のセクションは決してbodyのサブセクションじゃなくbodyと等価である、とでも言えばいいのかしらん? #HTML5jp

2011-03-09 01:02:42
Jeffrey Francesco v3.4.3 @JForg

まあ少なくとも http://twitter.com/JForg/status/45121688328876032 ここで出した2つの例は「アウトライン的には等価ではない」って事は間違いないと思うのよね。 #HTML5jp

2011-03-09 01:06:47
Jeffrey Francesco v3.4.3 @JForg

要するに http://bit.ly/hMdfz0 で補足されている「一部分だけを『不要』とする根拠はありません」という部分に対しては、やはり疑問を抱かざるを得ないです。不要と出来る根拠は先に述べた通り。 #HTML5jp

2011-03-09 01:43:11
Jeffrey Francesco v3.4.3 @JForg

「セクション構造自体はレイアウトとは無関係」等の部分に関しては同意ですし、良く言われる「今まで<div id="header">としてたところはheader要素で置き換えられるよ」的な説明はなんだかなあ…と思う部分がありますけどね。 #HTML5jp

2011-03-09 01:53:42
Jeffrey Francesco v3.4.3 @JForg

なので、実際に文書構造を考えてマークアップした結果的にheader要素が今までの<div id="header">と同様になるのは全く問題ないと思います。テンプレ的に「最初の部分はheader要素で最後の部分はfooter要素、中身はどのページも一緒!」ってのはどうかと思うけど。

2011-03-09 02:02:36
Jeffrey Francesco v3.4.3 @JForg

補足URLその1: HTML5についてのおさらい - W3G Blog Studies http://w3g.jp/blog/studies/html5report#toc5 から読み進めていくと、body要素に対する見出しが存在しない場合についての指摘がありますね。

2011-03-09 03:32:30
Jeffrey Francesco v3.4.3 @JForg

補足URLその2: HTML5ではbody要素がセクションを作る | 行動記録 http://iwaim.beering.be/blog/2009/12/05/6.html 参考程度に。

2011-03-09 03:38:09
Jeffrey Francesco v3.4.3 @JForg

あと、HTML5のセクショニングとアウトラインに関してはもう一つ(特に見出しの付け方っていう点で)よくある解説記事に疑問を感じる部分があるのだけど、それはまた別の機会に自分のブログにまとめようと思います。終わり。

2011-03-09 03:40:22