livedoor IRC リリース。及び、body開始タグの省略とstyle要素のscoped属性について

Category
Bookmark
  • 追記:body開始タグを省略できる条件 の和訳を追記しました(記事の結論は変わりません)。

livedoor IRC(Internet Relay Chat)が公開されました。 ライブドアのラボである、livedoor labs EDGE内のページです。

以下からが本題。

HTML5のタグの省略

件のlivedoor IRCのページもHTML5なのですが、デザインに合わせてソースコードもシンプルにしてみました。
HTML5では、仕様書でタグの省略について決められているので、それを参考にしました。

body開始タグの省略について

で、省略して良いのか最後まで迷ったのが、body開始タグです。仕様書の該当部分には次のように書かれています。

A body element's start tag may be omitted if the element is empty, or if the first thing inside the body element is not a space character or a comment, except if the first thing inside the body element is a script or style element.

8 The HTML syntax ― HTML5 (Editor's Draft 23 May 2010)

・・・まあちょっと、ぶっちゃけ英語は苦手なんでアレなんですが、何とか読み解いた感じで、次の三つがbody開始タグを省略できる条件かなと。

  • body要素が空の場合
  • body要素内に登場する最初のものが空白文字・コメント以外の場合
  • body要素内の最初の物がscript またはstyleの場合(「ではない」場合?)

一つめと二つめは分かりやすいんですが、ちょっと引っかかるのが三つめです。

scoped属性付きのstyle要素

HTML4.01などでは、style要素はhead要素内にしか記述する事ができませんでした。 が、HTML5では、scoped属性を付ける事でbody要素内に記述する事ができたりします(詳細はHTML5タグリファレンスとか見てください)。
scoped属性を持っているstyle要素の中に書かれたスタイルは、その親要素(あれば)以下にしか適用されなくなります(ただ、現在では実装しているUAは無い模様)。

と言うわけで、「三つめの条件はscoped属性を持っている事が前提に書かれているのではないか?」 という疑問と、僕の英語力の拙さが相まって、の所はbody開始タグを省略していないのです。