W3C home > Mailing lists > Public > public-html-diffs@w3.org > September 2010

hixie: Parser foreign lands: Get rid of secondary insertion mode, always use 'in body', scope HTML in foreign lands so that we won't try to close elements cross-namespace (e.g. <svg><p><desc><form> won't imply a </p> that closes the <p>...; <td> won't close all the SVG if the SVG is in a cell). (whatwg r5521)

From: poot <cvsmail@w3.org>
Date: Tue, 28 Sep 2010 08:45:43 +0900 (JST)
To: public-html-diffs@w3.org
Message-Id: <20100927234543.A720F2BC14@toro.w3.mag.keio.ac.jp>
hixie: Parser foreign lands: Get rid of secondary insertion mode, always
use 'in body', scope HTML in foreign lands so that we won't try to close
elements cross-namespace (e.g. <svg><p><desc><form> won't imply a </p>
that closes the <p>...; <td> won't close all the SVG if the SVG is in a
cell). (whatwg r5521)

http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.4410&r2=1.4411&f=h
http://html5.org/tools/web-apps-tracker?from=5520&to=5521

===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.4410
retrieving revision 1.4411
diff -u -d -r1.4410 -r1.4411
--- Overview.html	26 Sep 2010 21:03:37 -0000	1.4410
+++ Overview.html	27 Sep 2010 23:45:17 -0000	1.4411
@@ -313,7 +313,7 @@
 
    <h1>HTML5</h1>
    <h2 class="no-num no-toc" id="a-vocabulary-and-associated-apis-for-html-and-xhtml">A vocabulary and associated APIs for HTML and XHTML</h2>
-   <h2 class="no-num no-toc" id="editor-s-draft-26-september-2010">Editor's Draft 26 September 2010</h2>
+   <h2 class="no-num no-toc" id="editor-s-draft-27-september-2010">Editor's Draft 27 September 2010</h2>
    <dl><dt>Latest Published Version:</dt>
     <dd><a href="http://www.w3.org/TR/html5/">http://www.w3.org/TR/html5/</a></dd>
     <dt>Latest Editor's Draft:</dt>
@@ -419,7 +419,7 @@
   Group</a> is the W3C working group responsible for this
   specification's progress along the W3C Recommendation
   track.
-  This specification is the 26 September 2010 Editor's Draft.
+  This specification is the 27 September 2010 Editor's Draft.
   </p><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- relationship to other work (required) --><p>Work on this specification is also done at the <a href="http://www.whatwg.org/">WHATWG</a>. The W3C HTML working group
   actively pursues convergence with the WHATWG, as required by the <a href="http://www.w3.org/2007/03/HTML-WG-charter">W3C HTML working
   group charter</a>.</p><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- required patent boilerplate --><p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5
@@ -54287,20 +54287,18 @@
   how tokens are processed and whether CDATA sections are
   supported.</p>
 
-  <p>Seven of these modes, namely "<a href="#parsing-main-inhead" title="insertion mode: in
+  <p>Several of these modes, namely "<a href="#parsing-main-inhead" title="insertion mode: in
   head">in head</a>", "<a href="#parsing-main-inbody" title="insertion mode: in body">in
   body</a>", "<a href="#parsing-main-intable" title="insertion mode: in table">in
-  table</a>", "<a href="#parsing-main-intbody" title="insertion mode: in table body">in table
-  body</a>", "<a href="#parsing-main-intr" title="insertion mode: in row">in row</a>",
-  "<a href="#parsing-main-intd" title="insertion mode: in cell">in cell</a>", and "<a href="#parsing-main-inselect" title="insertion mode: in select">in select</a>", are special, in
-  that the other modes defer to them at various times. When the
-  algorithm below says that the user agent is to do something
-  "<dfn id="using-the-rules-for">using the rules for</dfn> the <var title="">m</var> insertion
-  mode", where <var title="">m</var> is one of these modes, the user
-  agent must use the rules described under the <var title="">m</var>
-  <a href="#insertion-mode">insertion mode</a>'s section, but must leave the
-  <a href="#insertion-mode">insertion mode</a> unchanged unless the rules in <var title="">m</var> themselves switch the <a href="#insertion-mode">insertion mode</a>
-  to a new value.</p>
+  table</a>", and "<a href="#parsing-main-inselect" title="insertion mode: in select">in
+  select</a>", are special, in that the other modes defer to them
+  at various times. When the algorithm below says that the user agent
+  is to do something "<dfn id="using-the-rules-for">using the rules for</dfn> the <var title="">m</var> insertion mode", where <var title="">m</var> is one
+  of these modes, the user agent must use the rules described under
+  the <var title="">m</var> <a href="#insertion-mode">insertion mode</a>'s section, but
+  must leave the <a href="#insertion-mode">insertion mode</a> unchanged unless the
+  rules in <var title="">m</var> themselves switch the <a href="#insertion-mode">insertion
+  mode</a> to a new value.</p>
 
   <p>When the insertion mode is switched to "<a href="#parsing-main-incdata" title="insertion
   mode: text">text</a>" or "<a href="#parsing-main-intabletext" title="insertion mode: in table
@@ -54308,21 +54306,12 @@
   is also set. This is the insertion mode to which the tree
   construction stage will return.</p>
 
-  <p>When the insertion mode is switched to "<a href="#parsing-main-inforeign" title="insertion
-  mode: in foreign content">in foreign content</a>", the
-  <dfn id="secondary-insertion-mode">secondary insertion mode</dfn> is also set. This secondary mode
-  is used within the rules for the "<a href="#parsing-main-inforeign" title="insertion mode: in
-  foreign content">in foreign content</a>" mode to handle HTML
-  (i.e. not foreign) content.</p>
-
   <hr><p>When the steps below require the UA to <dfn id="reset-the-insertion-mode-appropriately">reset the insertion
   mode appropriately</dfn>, it means the UA must follow these
   steps:</p>
 
   <ol><li>Let <var title="">last</var> be false.</li>
 
-   <li>Let <var title="">foreign</var> be false.</li>
-
    <li>Let <var title="">node</var> be the last node in the
    <a href="#stack-of-open-elements">stack of open elements</a>.</li>
 
@@ -54331,59 +54320,56 @@
    true and set <var title="">node</var> to the <var title="">context</var> element. (<a href="#fragment-case">fragment case</a>)</li>
 
    <li>If <var title="">node</var> is a <code><a href="#the-select-element">select</a></code> element,
-   then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inselect" title="insertion mode: in select">in select</a>" and jump to the
-   step labeled <i title="">end</i>. (<a href="#fragment-case">fragment case</a>)</li>
+   then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inselect" title="insertion mode: in select">in select</a>" and abort these
+   steps. (<a href="#fragment-case">fragment case</a>)</li>
 
    <li>If <var title="">node</var> is a <code><a href="#the-td-element">td</a></code> or
    <code><a href="#the-th-element">th</a></code> element and <var title="">last</var> is false, then
    switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-intd" title="insertion
-   mode: in cell">in cell</a>" and jump to the step labeled <i title="">end</i>.</li>
+   mode: in cell">in cell</a>" and abort these steps.</li>
 
    <li>If <var title="">node</var> is a <code><a href="#the-tr-element">tr</a></code> element, then
    switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-intr" title="insertion
-   mode: in row">in row</a>" and jump to the step labeled <i title="">end</i>.</li>
+   mode: in row">in row</a>" and abort these steps.</li>
 
    <li>If <var title="">node</var> is a <code><a href="#the-tbody-element">tbody</a></code>,
    <code><a href="#the-thead-element">thead</a></code>, or <code><a href="#the-tfoot-element">tfoot</a></code> element, then switch the
    <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-intbody" title="insertion mode: in
-   table body">in table body</a>" and jump to the step labeled <i title="">end</i>.</li>
+   table body">in table body</a>" and abort these steps.</li>
 
    <li>If <var title="">node</var> is a <code><a href="#the-caption-element">caption</a></code> element,
-   then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-incaption" title="insertion mode: in caption">in caption</a>" and jump to
-   the step labeled <i title="">end</i>.</li>
+   then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-incaption" title="insertion mode: in caption">in caption</a>" and abort
+   these steps.</li>
 
    <li>If <var title="">node</var> is a <code><a href="#the-colgroup-element">colgroup</a></code> element,
    then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-incolgroup" title="insertion mode: in column group">in column group</a>" and
-   jump to the step labeled <i title="">end</i>. (<a href="#fragment-case">fragment
-   case</a>)</li>
+   abort these steps. (<a href="#fragment-case">fragment case</a>)</li>
 
    <li>If <var title="">node</var> is a <code><a href="#the-table-element">table</a></code> element,
-   then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-intable" title="insertion mode: in table">in table</a>" and jump to the
-   step labeled <i title="">end</i>.</li>
+   then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-intable" title="insertion mode: in table">in table</a>" and abort these
+   steps.</li>
 
    <li>If <var title="">node</var> is a <code><a href="#the-head-element-0">head</a></code> element,
-   then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" ("<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>"! <em> not "<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>"</em>!) and jump to
-   the step labeled <i title="">end</i>. (<a href="#fragment-case">fragment
-   case</a>)</li> <!-- This is only here for now in case people
-   think that the spec accidentally omitted it and try to "fix"
-   it. Note that noscript-in-head is also handled this way. This is
-   all intentional. The only thing it doesn't handle is the
-   scripting-disabled fragment parsing case for a <head> element
-   containing a <noscript> which itself contains something other than
-   a <link> or a <style type="text/css"> element; you'd expect that to break out of
-   the <noscript> but it doesn't. This is an edge case that doesn't
-   affect the spec, since the algorithm for fragment parsing is only
-   used for innerHTML/outerHTML/insertAdjacentHTML(), where we know
-   scripting is enabled. -->
+   then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" ("<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>"! <em> not "<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>"</em>!) and abort
+   these steps. (<a href="#fragment-case">fragment case</a>)</li> <!-- This is only
+   here for now in case people think that the spec accidentally
+   omitted it and try to "fix" it. Note that noscript-in-head is also
+   handled this way. This is all intentional. The only thing it
+   doesn't handle is the scripting-disabled fragment parsing case for
+   a <head> element containing a <noscript> which itself contains
+   something other than a <link> or a <style type="text/css"> element; you'd expect
+   that to break out of the <noscript> but it doesn't. This is an edge
+   case that doesn't affect the spec, since the algorithm for fragment
+   parsing is only used for innerHTML/outerHTML/insertAdjacentHTML(),
+   where we know scripting is enabled. -->
 
    <li>If <var title="">node</var> is a <code><a href="#the-body-element-0">body</a></code> element,
-   then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" and jump to the
-   step labeled <i title="">end</i>.</li>
+   then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" and abort these
+   steps.</li>
 
    <li>If <var title="">node</var> is a <code><a href="#frameset">frameset</a></code> element,
-   then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inframeset" title="insertion mode: in frameset">in frameset</a>" and jump to
-   the step labeled <i title="">end</i>. (<a href="#fragment-case">fragment
-   case</a>)</li>
+   then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inframeset" title="insertion mode: in frameset">in frameset</a>" and abort
+   these steps. (<a href="#fragment-case">fragment case</a>)</li>
 
    <li>If <var title="">node</var> is an <code><a href="#the-html-element-0">html</a></code> element,
    then <!--: if the <span><code title="">head</code> element
@@ -54391,28 +54377,27 @@
    to "<a href="#the-before-head-insertion-mode" title="insertion mode: before head">before
    head</a>"<!--, otherwise, switch the <span>insertion mode</span>
    to "<span title="insertion mode: after head">after head</span>".-->
-   Then, <!-- in either case, --> jump to the step labeled <i title="">end</i>. (<a href="#fragment-case">fragment case</a>)</li> <!-- if the
-   head element pointer can ever be non-null when we're going through
-   these steps, we'll need to uncomment out the commented-out bits -->
+   Then, <!-- in either case, --> abort these steps. (<a href="#fragment-case">fragment
+   case</a>)</li> <!-- if the head element pointer can ever be
+   non-null when we're going through these steps, we'll need to
+   uncomment out the commented-out bits -->
 
    <li>If <var title="">node</var> is an element from the <a href="#mathml-namespace">MathML
-   namespace</a> or the <a href="#svg-namespace">SVG namespace</a>, then set <var title="">foreign</var> to true.</li>
+   namespace</a> or the <a href="#svg-namespace">SVG namespace</a>, then switch the
+   <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inforeign" title="insertion mode: in
+   foreign content">in foreign content</a>" and abort these
+   steps.</li>
 
    <li>If <var title="">last</var> is true, then switch the
    <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inbody" title="insertion mode: in
-   body">in body</a>" and jump to the step labeled <i title="">end</i>. (<a href="#fragment-case">fragment case</a>)</li>
+   body">in body</a>" and abort these steps. (<a href="#fragment-case">fragment
+   case</a>)</li>
 
    <li>Let <var title="">node</var> now be the node before <var title="">node</var> in the <a href="#stack-of-open-elements">stack of open
    elements</a>.</li>
 
    <li>Return to the step labeled <i>loop</i>.</li>
 
-   <li><i>End</i>: If <var title="">foreign</var> is true, switch the
-   <a href="#secondary-insertion-mode">secondary insertion mode</a> to whatever the
-   <a href="#insertion-mode">insertion mode</a> is set to, and switch the
-   <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inforeign" title="insertion mode: in
-   foreign content">in foreign content</a>".</li>
-
   </ol><h5 id="the-stack-of-open-elements"><span class="secno">8.2.3.2 </span>The stack of open elements</h5>
 
   <p>Initially, the <dfn id="stack-of-open-elements">stack of open elements</dfn> is empty. The
@@ -54528,8 +54513,15 @@
    <li><code><a href="#the-th-element">th</a></code> in the <a href="#html-namespace-0">HTML namespace</a></li>
    <li><code><a href="#the-marquee-element">marquee</a></code> in the <a href="#html-namespace-0">HTML namespace</a></li>
    <li><code><a href="#the-object-element">object</a></code> in the <a href="#html-namespace-0">HTML namespace</a></li>
+   <li><code title="">mi</code> in the <a href="#mathml-namespace">MathML namespace</a></li>
+   <li><code title="">mo</code> in the <a href="#mathml-namespace">MathML namespace</a></li>
+   <li><code title="">mn</code> in the <a href="#mathml-namespace">MathML namespace</a></li>
+   <li><code title="">ms</code> in the <a href="#mathml-namespace">MathML namespace</a></li>
+   <li><code title="">mtext</code> in the <a href="#mathml-namespace">MathML namespace</a></li>
    <li><code title="">annotation-xml</code> in the <a href="#mathml-namespace">MathML namespace</a></li>
    <li><code title="">foreignObject</code> in the <a href="#svg-namespace">SVG namespace</a></li>
+   <li><code title="">desc</code> in the <a href="#svg-namespace">SVG namespace</a></li>
+   <li><code title="">title</code> in the <a href="#svg-namespace">SVG namespace</a></li>
   </ul><p>The <a href="#stack-of-open-elements">stack of open elements</a> is said to <dfn id="has-an-element-in-list-item-scope" title="has an element in list item scope">have an element in list
   item scope</dfn> when it <a href="#has-an-element-in-the-specific-scope">has an element in the specific
   scope</a> consisting of the following element types:</p>
@@ -54551,6 +54543,13 @@
 
   <ul class="brief"><li><code><a href="#the-html-element-0">html</a></code> in the <a href="#html-namespace-0">HTML namespace</a></li> <!-- (This can only happen if the <var title="">node</var> is the topmost node of the <span>stack of open elements</span>, and prevents the next step from being invoked if there are no more elements in the stack.) -->
    <li><code><a href="#the-table-element">table</a></code> in the <a href="#html-namespace-0">HTML namespace</a></li>
+  </ul><p>The <a href="#stack-of-open-elements">stack of open elements</a> is said to <dfn id="has-an-element-in-select-scope" title="has an element in select scope">have an element in select
+  scope</dfn> when it <a href="#has-an-element-in-the-specific-scope">has an element in the specific
+  scope</a> consisting of all element types <em>except</em> the
+  following:</p>
+
+  <ul class="brief"><!--<li><code>select</code> in the <span>HTML namespace</span></li>--><li><code><a href="#the-optgroup-element">optgroup</a></code> in the <a href="#html-namespace-0">HTML namespace</a></li>
+   <li><code><a href="#the-option-element">option</a></code> in the <a href="#html-namespace-0">HTML namespace</a></li>
   </ul><p>Nothing happens if at any time any of the elements in the
   <a href="#stack-of-open-elements">stack of open elements</a> are moved to a new location in,
   or removed from, the <code><a href="#document">Document</a></code> tree. In particular, the
@@ -58795,10 +58794,8 @@
 
     <p>Otherwise, if the <a href="#insertion-mode">insertion mode</a> is not already
     "<a href="#parsing-main-inforeign" title="insertion mode: in foreign content">in foreign
-    content</a>", let the <a href="#secondary-insertion-mode">secondary insertion mode</a> be
-    the current <a href="#insertion-mode">insertion mode</a>, and then switch the
-    <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inforeign" title="insertion mode: in
-    foreign content">in foreign content</a>".</p>
+    content</a>", switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inforeign" title="insertion mode: in foreign content">in foreign
+    content</a>".</p>
 
    </dd>
 
@@ -58831,10 +58828,8 @@
 
     <p>Otherwise, if the <a href="#insertion-mode">insertion mode</a> is not already
     "<a href="#parsing-main-inforeign" title="insertion mode: in foreign content">in foreign
-    content</a>", let the <a href="#secondary-insertion-mode">secondary insertion mode</a> be
-    the current <a href="#insertion-mode">insertion mode</a>, and then switch the
-    <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inforeign" title="insertion mode: in
-    foreign content">in foreign content</a>".</p>
+    content</a>", switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inforeign" title="insertion mode: in foreign content">in foreign
+    content</a>".</p>
 
    </dd>
 
@@ -59789,7 +59784,7 @@
    <dt>An end tag whose tag name is "select"</dt>
    <dd>
 
-    <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-table-scope" title="has an element in table scope">have an element in table
+    <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-select-scope" title="has an element in select scope">have an element in select
     scope</a> with the same tag name as the token, this is a
     <a href="#parse-error">parse error</a>. Ignore the token. (<a href="#fragment-case">fragment
     case</a>)</p>
@@ -59817,8 +59812,8 @@
 
     <p><a href="#parse-error">Parse error</a>.</p>
 
-    <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-table-scope" title="has an element in table scope">have a <code>select</code>
-    element in table scope</a>, ignore the token. (<a href="#fragment-case">fragment
+    <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-select-scope" title="has an element in select scope">have a <code>select</code>
+    element in select scope</a>, ignore the token. (<a href="#fragment-case">fragment
     case</a>)</p>
 
     <p>Otherwise, act as if an end tag with the tag name "select" had
@@ -59974,7 +59969,11 @@
      <i>loop</i>.</li>
 
      <li><p>Otherwise, process the token <a href="#using-the-rules-for">using the rules
-     for</a> the <a href="#secondary-insertion-mode">secondary insertion mode</a>.</li>
+     for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in
+     body</a>" <a href="#insertion-mode">insertion mode</a>, except that if those
+     rules say to reprocess the token, these steps must be finished
+     first (i.e. the insertion mode is reset by the following step
+     before the token is reprocessed).</li>
 
      <li><p>If the <a href="#insertion-mode">insertion mode</a> is still "<a href="#parsing-main-inforeign" title="insertion mode: in foreign content">in foreign
      content</a>", <a href="#reset-the-insertion-mode-appropriately">reset the insertion mode
@@ -59988,24 +59987,28 @@
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <a href="#current-node">current node</a> is an <code title="">ms</code> element in the <a href="#mathml-namespace">MathML namespace</a></dt>
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <a href="#current-node">current node</a> is an <code title="">mtext</code> element in the <a href="#mathml-namespace">MathML namespace</a></dt>
    <dt>A start tag whose tag name is "svg", if the <a href="#current-node">current node</a> is an <code title="">annotation-xml</code> element in the <a href="#mathml-namespace">MathML namespace</a></dt>
+   <dt>A start tag, if the <a href="#current-node">current node</a> is an <code title="">annotation-xml</code> element in the <a href="#mathml-namespace">MathML namespace</a> whose start tag token had an attribute with the name "encoding" whose value was an <a href="#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">text/html</code>"</dt>
+   <dt>A start tag, if the <a href="#current-node">current node</a> is an <code title="">annotation-xml</code> element in the <a href="#mathml-namespace">MathML namespace</a> whose start tag token had an attribute with the name "encoding" whose value was an <a href="#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">application/xhtml+xml</code>"</dt>
    <dt>A start tag, if the <a href="#current-node">current node</a> is a <code title="">foreignObject</code> element in the <a href="#svg-namespace">SVG namespace</a></dt>
    <dt>A start tag, if the <a href="#current-node">current node</a> is a <code title="">desc</code> element in the <a href="#svg-namespace">SVG namespace</a></dt>
    <dt>A start tag, if the <a href="#current-node">current node</a> is a <code title="">title</code> element in the <a href="#svg-namespace">SVG namespace</a></dt>
-   <dt>A start tag, if the <a href="#current-node">current node</a> is an <code title="">annotation-xml</code> element in the <a href="#mathml-namespace">MathML namespace</a> whose start tag token had an attribute with the name "encoding" whose value was an <a href="#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">text/html</code>"</dt>
-   <dt>A start tag, if the <a href="#current-node">current node</a> is an <code title="">annotation-xml</code> element in the <a href="#mathml-namespace">MathML namespace</a> whose start tag token had an attribute with the name "encoding" whose value was an <a href="#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">application/xhtml+xml</code>"</dt>
    <dt>A start tag, if the <a href="#current-node">current node</a> is an element in the <a href="#html-namespace-0">HTML namespace</a></dt>
    <dt>Any other end tag</dt>
    <dd>
 
-    <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the
-    <a href="#secondary-insertion-mode">secondary insertion mode</a>.</p>
+    <ol><li><p>Process the token <a href="#using-the-rules-for">using the rules for</a> the
+     "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>"
+     <a href="#insertion-mode">insertion mode</a>, except that if those rules say to
+     reprocess the token, these steps must be finished first (i.e. the
+     insertion mode is reset by the following step before the token is
+     reprocessed).</li>
 
-    <p>If, after doing so, the <a href="#insertion-mode">insertion mode</a> is still
-    "<a href="#parsing-main-inforeign" title="insertion mode: in foreign content">in foreign
-    content</a>", <a href="#reset-the-insertion-mode-appropriately">reset the insertion mode
-    appropriately</a>.</p>
+     <li><p>If, after doing so, the <a href="#insertion-mode">insertion mode</a> is
+     still "<a href="#parsing-main-inforeign" title="insertion mode: in foreign content">in
+     foreign content</a>", <a href="#reset-the-insertion-mode-appropriately">reset the insertion mode
+     appropriately</a>.</li>
 
-   </dd>
+    </ol></dd>
 
    <dt>A start tag whose tag name is one of: <!--"a",--> "b", "big",
    "blockquote", "body"<!--by inspection-->, "br", "center", "code",
Received on Monday, 27 September 2010 23:46:41 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 20:09:10 UTC