[3] 開いている要素のスタックは、 HTML構文解析器とXML構文解析器において、(明示的または暗示的な) 開始タグが現れ、まだ終了タグが現れていない要素が積まれるスタックです。
[4] このスタックは下方向へと進みます。 最初に追加された要素 (根要素) は最上、 最も直近に追加された要素は最下方と呼ばれています。
[5] このスタックには次のような変更操作が行われます。
[22] このスタックは、末尾、先頭など任意の位置にアクセスがあります。
[6] 初期状態ではこのスタックは空です。 HTML構文解析器の場合、一旦要素が追加されると、 最後まで空にはなりません。 XML構文解析器の場合、文書要素の終了タグにより空になります。 どちらの構文解析器でも、最終的に stops parsing により、 すべての要素がスタックから除去されます。 (abort a parser が行われる場合は、スタックから除去されないまま構文解析器が破棄されることになります。)
[16] 開いている要素のスタックの最下方の要素 (最も直近に追加された要素) のことを現在節点といいます >>2。
[17] 調整済み現在節点とは、 HTML素片構文解析アルゴリズムによって起動された構文解析器で開いている要素のスタックの要素が1つだけの時は文脈要素、 それ以外の時は現在節点と同じものです >>2。
[10] 開いている要素のスタックから要素が除去された時に、 副作用として要素固有の処理が実行されることがあります。
[9] そのような要素固有の処理は、開いている要素のスタック上にあるかどうかによって分岐することがあります。
[26] 一般にこうした操作は構文解析器外では要素が挿入された時点で実行されるものですが、 構文解析器内では終了タグ時点まで実行が遅延されることになります。
[28] 開いている要素という語は SGML でも使われていました。
[27] Process custom element connectedCallback immediately during parsing (domenic著, ) <https://github.com/whatwg/html/commit/ca818ee1c8458c3b862acd00d11779294cb89eea>
[29] Remove <applet> (zcorpan著, ) <https://github.com/whatwg/html/commit/b9b9d60f9451c05f8e8d542e4094f987ae1a5fb8>
[30] <style> should use child text content changed steps · Issue #2996 · whatwg/html () <https://github.com/whatwg/html/issues/2996>
innerHTML
) でも開いている要素のスタックの最上方の要素は HTML のhtml
要素ですが、 調整済み現在節点としてはそのかわりに文脈要素が使われるので、 文脈要素が外来要素 (SVG、MathML) ならそのように処理されることとなります。