- From: Taku Watabe <taku.eof@gmail.com>
- Date: Tue, 1 Dec 2009 11:12:57 +0900
- To: kitamura <kits@akatsukinishisu.net>
- Cc: public-html-ig-jp@w3.org
※ML が処理できていないようですので、再送します。 こんにちは。渡部巧といいます。 北村 (kits) さん > 9.1.2.1 に関連した、より詳細なアルゴリズムが記述されている "9.2.4 Tokenization" を追いかけてみました。 結論としては、次のことがいえました: 「9.2.4 の定義では <br > <br /> <br/> <br> をすべて許容する」 よって、"9.1.2.1 Start tags" の説明が誤解を招く表現であり、修正する必要がある……といえるのではないかと思われます。 各位 > ツッコミなどありましたらお願いします。 ---------- 以下詳細です。 長くなるので、<br /> の場合のみ記述しています。 他の場合も同様に追いかけることができます。 (1) 9.2.4.8 Tag open state 解析済:< 次文字(註1):b http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#tag-open-state U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z → "tag name state" へ (2) 9.2.4.10 Tag name state 解析済:<b 次文字:r http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#tag-name-state Anything else → "tag name state" を続行 (3) 9.2.4.10 Tag name state 解析済:<br 次文字:U+0020 U+0009 CHARACTER TABULATION U+000A LINE FEED (LF) U+000C FORM FEED (FF) U+0020 SPACE → "before attribute name state" へ (4) 9.2.4.34 Before attribute name state 解析済:<br 次文字:/ U+002F SOLIDUS (/) http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#before-attribute-name-state → "self-closing start tag state" へ (5) 9.2.4.43 Self-closing start tag state 解析済:<br / 次文字:> http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#self-closing-start-tag-state U+003E GREATER-THAN SIGN (>) -> 終了(註2) 註1:「次文字」は原文では "next input character"(次の入力文字)です。 see also: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#next-input-character 註2:本当は少し処理が続きますが割愛。 -- Taku Watabe (taku_eof) http://end-of-file.net/ Be strict with yourself. 2009年11月30日21:55 kitamura <kits@akatsukinishisu.net>: > 北村と申します。はじめまして。 > > 最近になって、HTML5の空要素の詳細な文法規則を確認しようと思い、 > 9.1.2.1 Start tags > http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#start-tags > を読んだのですが、気付いたことがあったので報告してみます。 > > 箇条書きのところをざっと訳してみると、 > > 1. 開始タグの先頭文字は U+003C LESS-THAN SIGN (<) でなければ > なりません。 > 2. 開始タグの次の数文字が要素のタグ名でなければなりません。 > 3. 次の段階に何か属性があれば、最初に、1つ以上の空白文字が > なければなりません。 > 4. そして、開始タグには、幾つかの属性があるかもしれません > (その文法は以下で説明されます)。属性は1つ以上の空白文字に > よって互いに分けられるかもしれません。 > 5. 属性の後に、1つ以上の空白文字があるかもしれません。(いくつかの > 属性は、空白が後に続くことを必要とします。以下の「属性」の > 項を見てください) > 6. そして、要素が空要素の1つであるか、または要素が外部要素で > あれば、一つの U+002F SOLIDUS (/) があるかもしれません。 > この文字は空要素においては何の効果もありませんが、外部要素に > おいては、この文字は開始タグが自身を終了するものであることを > 示します。 > 7. 最後に、U+003E GREATER-THAN SIGN (>) により開始タグを > 閉じなければなりません。 > > となりました。この文に沿って考えると、例えば属性なしのbr要素について、 > <br> や <br/> はどちらもOK、ということは言えますが、 > <br > や <br /> のような、要素名の後に任意の空白が入る書き方を > 認めていないように見えます。 > (要素名からタグ閉じまでの空白は3番、5番で説明されていますが、 > どちらも属性が存在する場合に限定された記述となっています) > > しかし仕様の意図としては、HTML4, XHTML1双方からの移行を容易に > するという意図で / があってもなくてもよいようにしていると > 思うので、であれば、XHTML1で多く使われている <br /> のような > 書き方でも可となるよう、仕様の文章を修正すべきではと考えます。 > > 参照: WHATWG FAQ - 日本語訳 - HTML5.JP > http://www.html5.jp/trans/whatwg_html5faq.html#Should_I_close_empty_elements_with_.2F.3E_or_.3E.3F > > > ※以上の話は以下の記事でも言及しました。 > http://www.akatsukinishisu.net/itazuragaki/html/html5_void_elements_syntax.html > > > -- > 北村曉 kits@akatsukinishisu.net > http://www.akatsukinishisu.net/
Received on Tuesday, 1 December 2009 08:31:51 UTC