Bugzilla – Bug 136
Support <select> inside <table>.
Last modified: 2008-03-07 22:22:37 CET
Index: source =================================================================== --- source (revision 1341) +++ source (revision 1342) @@ -37790,14 +37790,15 @@ "<span title="insertion mode: in row">in row</span>", "<span title="insertion mode: in cell">in cell</span>", "<span title="insertion mode: in select">in select</span>", "<span - title="insertion mode: after body">after body</span>", "<span - title="insertion mode: in frameset">in frameset</span>", "<span - title="insertion mode: after frameset">after frameset</span>", - "<span title="insertion mode: after after body">after after - body</span>", and "<span title="insertion mode: after after - frameset">after after frameset</span>" during the course of the - parsing, as described below. It affects how certain tokens are - processed.</p> + title="insertion mode: in select in table">in select in + table</span>", "<span title="insertion mode: after body">after + body</span>", "<span title="insertion mode: in frameset">in + frameset</span>", "<span title="insertion mode: after + frameset">after frameset</span>", "<span title="insertion mode: + after after body">after after body</span>", and "<span + title="insertion mode: after after frameset">after after + frameset</span>" during the course of the parsing, as described + below. It affects how certain tokens are processed.</p> <p>In addition to the <span>insertion mode</span>, the tree construction stage has several pieces of state: a <span>stack of @@ -40003,8 +40004,17 @@ pointed to by the <span><code title="">form</code> element pointer</span>.</p> - <p>Change the <span>insertion mode</span> to "<span - title="insertion mode: in select">in select</span>".</p> + <p>If the <span>insertion mode</span> is one of <span + title="insertion mode: in table">in table</span>", "<span + title="insertion mode: in caption">in caption</span>", "<span + title="insertion mode: in column group">in column group</span>", + "<span title="insertion mode: in table body">in table + body</span>", "<span title="insertion mode: in row">in + row</span>", or "<span title="insertion mode: in cell">in + cell</span>", then change the <span>insertion mode</span> to + "<span title="insertion mode: in select in table">in select in + table</span>". Otherwise, change the <span>insertion mode</span> + to "<span title="insertion mode: in select">in select</span>".</p> </dd> @@ -40893,6 +40903,34 @@ </dd> + <dt>A start tag whose tag name is "input"</dt> + <dd> + <p><span>Parse error</span>. Act as if an end tag with the tag + name "select" had been seen, and reprocess the token.</p> + </dd> + + <dt>Anything else</dt> + <dd> + <p><span>Parse error</span>. Ignore the token.</p> + </dd> + + </dl> + + + <h5 id="parsing-main-inselect">The "<dfn title="insertion mode: in select in table">in select in table</dfn>" insertion mode</h5> + + <p>When the <span>insertion mode</span> is "<span title="insertion + mode: in select in table">in select in table</span>", tokens must be handled as follows:</p> + + <dl class="switch"> + + <dt>A start tag whose tag name is one of: "caption", "table", + "tbody", "tfoot", "thead", "tr", "td", "th"</dt> + <dd> + <p><span>Parse error</span>. Act as if an end tag with the tag + name "select" had been seen, and reprocess the token.</p> + </dd> + <dt>An end tag whose tag name is one of: "caption", "table", "tbody", "tfoot", "thead", "tr", "td", "th"</dt> <dd> @@ -40909,7 +40947,9 @@ <dt>Anything else</dt> <dd> - <p><span>Parse error</span>. Ignore the token.</p> + <p>Process the token as if the <span>insertion mode</span> had + been "<span title="insertion mode: in select">in + select</span>".</p> </dd> </dl>