[3] 里親付けとは、 HTML の構文解析において
table
要素の子孫になりそうな要素やテキストを他の要素に挿入することをいいます。
[11] 里親付けは、表を構成する要素 (こまや見出し以外) の内容となるべき部分に表以外の要素やテキストが出現した時に行われます。
[13] 挿入モードとしては in table、in table body、 in table row が該当します。
[34] 里親付けが有効な状態で処理が行われるのは、 >>13 の挿入モードにおける
「空白以外の文字字句」、「<input type=hidden>
以外の
input
開始タグ」、「その他の開始タグ」、「その他の終了タグ」
です。空白、注釈字句、DOCTYPE
、EOF
は里親付けの影響を受けません。終了タグもほとんどは影響を受けませんが、
br
や p
の終了タグが開始タグに置き換えられ、
影響をうけることがあります。また終了タグによって AAA
が実行されて要素が挿入されることもあります。
[14] 里親付けはHTML構文解析器でのみ行われ、XML構文解析器では行われません。
[36] 里親付けは、構文的に正しくない文書を処理するための規則です。 HTML Standard に適合する HTML文書では、 里親付けが動作することはありません。
[17] 必要なら里親付けを考慮した節点の挿入位置のことを仕様書は節点を挿入する適切な場所 >>5 と呼んでいます。これは次のように決定します >>5。
[29] スクリプトによって table
が移動されている場合には、
里親付けされる節点は table
が元あった位置ではなく、現に存在する位置の前に挿入されます。
ただし table
要素の親節点がない場合には、
元あった位置近くに挿入されます。
table
が元々挿入されていた要素が既に開いている要素のスタックから除去されていることがありますから、
table
要素が元あった位置そのものとは限りません。[28] innerHTML
や template
で table
の親が存在していない場合には、
里親付けされない場合と同じように末尾に節点が挿入されます。
[30] table
の親要素が文書になっている場合、
根要素の前にテキストや要素を挿入することになりますが、
これは DOM の制約で禁止されていますから、どこにも挿入されないことになります。
[32] この「節点を挿入する適切な場所」の定義は、 HTML構文解析器の仕様上節点が挿入されるほとんどすべての場所で参照されています。
[35] 節点を挿入する適切な場所の決定は、ほとんどは定型の手順
(insert a character, insert a comment, insert a foreign element)
に含まれています。それ以外のやや特殊な参照のされ方をするのは、
AAA での新しい節点の挿入 (子供や挿入先が特殊)
と HTML script
開始タグの処理
(通常の挿入処理に加え、要素に特殊なフラグを設定する)
の2箇所だけです。
[4] (X)HTML5 Tracking ( 版) <http://html5.org/tools/web-apps-tracker?from=2731&to=2732>
parentNode
を直接見ない形に改められました。閉じられていない a
要素があって表の内外で入れ子になっている場合や、
スクリプトによって要素構造が操作された場合の動作に影響が出ます。
[2] (X)HTML5 Tracking ( 版) <http://html5.org/tools/web-apps-tracker?from=2987&to=2988>
style
、script
、
<input type=hidden>
に関して里親付けが行われなくなりました。
[1] (X)HTML5 Tracking ( 版) <http://html5.org/tools/web-apps-tracker?from=3381&to=3382>
空白文字の里親付けを行うかどうかの決定方法が変更されました。
[6] IRC logs: freenode / #whatwg / 20090709 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20090709#l-210>
[10] 次の2つの補助的な用語は仕様の改訂で使われなくなっています。
[9] ある節点が里親要素に挿入されることを、節点が里親付けされるといいます。
[7] Web Applications 1.0 r8665 PARSER: Add a parse error for non-space characters in <table> elements ( ( 版)) <http://html5.org/r/8665>