- From: Ian Hickson via cvs-syncmail <cvsmail@w3.org>
- Date: Sat, 07 Jun 2008 00:28:31 +0000
- To: public-html-commits@w3.org
Update of /sources/public/html5/spec
In directory hutz:/tmp/cvs-serv10547
Modified Files:
Overview.html
Log Message:
add support for the new html elements. fix the handling of optional tags we added recently. also: clarify some notes, remove redundant requirements, clean up some punctuation. (whatwg r1731)
Index: Overview.html
===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.919
retrieving revision 1.920
diff -u -d -r1.919 -r1.920
--- Overview.html 6 Jun 2008 19:04:14 -0000 1.919
+++ Overview.html 7 Jun 2008 00:28:28 -0000 1.920
@@ -59,7 +59,7 @@
for HTML and XHTML</h2>
<h2 class="no-num no-toc" id=w3c-working>W3C Working Draft
- <!--ZZZ 6 June 2008-->9 June 2008</h2>
+ <!--ZZZ 7 June 2008-->9 June 2008</h2>
<dl><!-- ZZZ: replace '20080609' with '[CDATA]' -->
@@ -199,7 +199,7 @@
<p>The W3C <a href="http://www.w3.org/html/wg/">HTML Working Group</a> is
the W3C working group responsible for this specification's progress along
the W3C Recommendation track. <!--ZZZ:--> This specification is the
- <!-- ZZZ 6 June 2008 --> 9 June 2008 Working Draft. <!--:ZZZ--></p>
+ <!-- ZZZ 7 June 2008 --> 9 June 2008 Working Draft. <!--:ZZZ--></p>
<!-- relationship to other work (required) -->
<p>This specification is also being produced by the <a
@@ -5188,7 +5188,7 @@
Test: http://www.hixie.ch/tests/adhoc/html/flow/image-maps/004-demo.html
IE6 on Wine treats the following characters like this also: U+1-U+1f,
U+21-U+2b, U+2d-U+2f, U+3a, U+3c-U+40, U+5b-U+60, U+7b-U+82,
- U+84-U+89, U+8b, U+8d, U+8f-U`+99, U+9b, U+9d, U+a0-U+bf, U+d7, U+f7,
+ U+84-U+89, U+8b, U+8d, U+8f-U+99, U+9b, U+9d, U+a0-U+bf, U+d7, U+f7,
U+1f6-U+1f9, U+218-U+24f, U+2a9-U+385, U+387, U+38b, U+38d, U+3a2,
U+3cf, U+3d7-U+3d9, U+3db, U+3dd, U+3df, U+3e1, U+3f4-U+400, U+40d,
U+450, U+45d, U+482-U+48f, U+4c5-U+4c6, U+4c9-U+4ca, U+4cd-U+4cf,
@@ -8938,20 +8938,6 @@
element (if any), and that element's child nodes. Otherwise, the specified
styles must, if applied, be applied to the entire document.
- <p>If the <code title=attr-style-scoped><a href="#scoped">scoped</a></code>
- attribute is not specified, the <code><a href="#style1">style</a></code>
- element must be the child of a <code><a href="#head">head</a></code>
- element or of a <code><a href="#noscript">noscript</a></code> element that
- is a child of a <code><a href="#head">head</a></code> element.
-
- <p>If the <code title=attr-style-scoped><a href="#scoped">scoped</a></code>
- attribute <em>is</em> specified, then the <code><a
- href="#style1">style</a></code> element must be the child of a <a
- href="#flow-content0">flow content</a> element, before any text nodes
- other than <a href="#inter-element">inter-element whitespace</a>, and
- before any elements other than other <code><a
- href="#style1">style</a></code> elements.
-
<p id=title-on-style>The <dfn id=title3
title=attr-style-title><code>title</code></dfn> attribute on <code><a
href="#style1">style</a></code> elements defines <a
@@ -41888,13 +41874,11 @@
title=syntax-comments>comment</a>, except if the first thing inside the
<code><a href="#body0">body</a></code> element is a <code><a
href="#script1">script</a></code> or <code><a
- href="#style1">style</a></code>
- element<!-- and the node immediately preceding
- the <code>body</code> element is a <code>head</code> element whose
- end tag has been omitted (XXX this last bit is commented out for now
- because we have the dubious rule in the parser that makes <style>
- and <script> elements between </head> and <body> end up in the
- <head> instead of the <body>)-->.</p>
+ href="#style1">style</a></code> element.
+ <!-- Note that even if the </head> end
+ tag is present, the parser makes <style> and <script> elements
+ between </head> and <body> end up in the <head> instead of implying
+ the <body> --></p>
<!-- </body> -->
<p>A <code><a href="#body0">body</a></code> element's <span
@@ -43234,9 +43218,9 @@
href="#h3">h3</a></code>, <code><a href="#h4">h4</a></code>, <code><a
href="#h5">h5</a></code>, <code><a href="#h6">h6</a></code>, <code><a
href="#head">head</a></code>, <code><a href="#hr">hr</a></code>,
- <code><a href="#iframe">iframe</a></code>,
- <code>image</code><!-- XXX ? this isn't an element that can end up
- on the stack-->,
+ <code><a href="#iframe">iframe</a></code>, <!--
+ <code>image</code>, (commented out because this isn't an element
+ that can end up on the stack, so it doesn't matter) -->
<code><a href="#img">img</a></code>, <code>input</code>,
<code>isindex</code>, <code><a href="#li">li</a></code>, <code><a
href="#link">link</a></code>, <code>listing</code>, <code><a
@@ -45669,7 +45653,8 @@
end tags</dfn>, then, while the <a href="#current5">current node</a> is a
<code><a href="#dd">dd</a></code> element, a <code><a
href="#dt">dt</a></code> element, an <code><a href="#li">li</a></code>
- element, a <code><a href="#p">p</a></code> element, an <code><a
+ element, an <code>option</code> element, an <code>optgroup</code> element,
+ a <code><a href="#p">p</a></code> element, an <code><a
href="#rp">rp</a></code> element, or an <code><a href="#rt">rt</a></code>
element, the UA must pop the <a href="#current5">current node</a> off the
<a href="#stack">stack of open elements</a>.
@@ -46209,7 +46194,8 @@
href="#in-body" title="insertion mode: in body">in body</a>"
<span>insertion mode</span>.</p>
- <dt>A start tag whose tag name is one of: "base", "link"
+ <dt>A start tag whose tag name is one of: "base", "command",
+ "event-source", "link"
<dd>
<p><a href="#insert0">Insert an HTML element</a> for the token.
@@ -46255,7 +46241,7 @@
<p>Follow the <a href="#generic0">generic RCDATA parsing algorithm</a>.</p>
<dt>A start tag whose tag name is "noscript", if the <a
- href="#scripting2">scripting flag</a> is enabled:
+ href="#scripting2">scripting flag</a> is enabled
<dt>A start tag whose tag name is one of: "noframes", "style"
@@ -46263,7 +46249,7 @@
<p>Follow the <a href="#generic">generic CDATA parsing algorithm</a>.</p>
<dt>A start tag whose tag name is "noscript", if the <a
- href="#scripting2">scripting flag</a> is disabled:
+ href="#scripting2">scripting flag</a> is disabled
<dd>
<p><a href="#insert0">Insert an HTML element</a> for the token.</p>
@@ -46612,8 +46598,8 @@
the <a href="#stack">stack of open elements</a>. If it is not, add the
attribute and its corresponding value to that element.</p>
- <dt>A start tag token whose tag name is one of: "base", "link", "meta",
- "noframes", "script", "style", "title"
+ <dt>A start tag token whose tag name is one of: "base", "command",
+ "event-source", "link", "meta", "noframes", "script", "style", "title"
<dd>
<p>Process the token <a href="#using8">using the rules for</a> the "<a
@@ -46691,10 +46677,14 @@
<p class=note>The fake end tag token here can only be ignored in the <a
href="#fragment">fragment case</a>.</p>
+ </dd>
+ <!-- start tags for non-phrasing flow content elements -->
+ <!-- the normal ones -->
- <dt>A start tag whose tag name is one of: "address", "blockquote",
- "center", "dir", "div", "dl", "fieldset", "h1", "h2", "h3", "h4", "h5",
- "h6", "menu", "ol", "p", "ul"
+ <dt>A start tag whose tag name is one of: "address", "article", "aside",
+ "blockquote", "center", "datagrid", "dialog", "dir", "div", "dl",
+ "fieldset", "footer", "h1", "h2", "h3", "h4", "h5", "h6", "header",
+ "menu", "nav", "ol", "p", "section", "ul"
<dd> <!-- As of May 2008 this doesn't match any browser exactly, but is
as close to what IE does as I can get without doing the non-tree
@@ -46719,6 +46709,8 @@
-->
<p><a href="#insert0">Insert an HTML element</a> for the token.</p>
+ </dd>
+ <!-- as normal, but drops leading newline -->
<dt>A start tag whose tag name is one of: "pre", "listing"
@@ -46734,6 +46726,8 @@
ignore that token and move on to the next one. (Newlines at the start of
<code><a href="#pre">pre</a></code> blocks are ignored as an authoring
convenience.)</p>
+ </dd>
+ <!-- as normal, but interacts with the form element pointer -->
<dt>A start tag whose tag name is "form"
@@ -46752,15 +46746,12 @@
<p><a href="#insert0">Insert an HTML element</a> for the token, and set
the <code title=form>form</code> element pointer to point to the element
created.</p>
+ </dd>
+ <!-- as normal, but imply </li> when there's another <li> open in weird cases -->
<dt>A start tag whose tag name is "li"
<dd>
- <p>If the <a href="#stack">stack of open elements</a> <a href="#have-an"
- title="has an element in scope">has a <code>p</code> element in
- scope</a>, then act as if an end tag with the tag name <code><a
- href="#p">p</a></code> had been seen.</p>
-
<p>Run the following algorithm:</p>
<ol>
@@ -46770,42 +46761,44 @@
<li>
<p>If <var title="">node</var> is an <code><a href="#li">li</a></code>
- element, then pop all the nodes from the <a href="#current5">current
- node</a> up to <var title="">node</var>, including <var
- title="">node</var>, then stop this algorithm. If more than one node
- is popped, then this is a <a href="#parse1">parse error</a>.
+ element, then act as if an end tag with the tag name <code><a
+ href="#li">li</a></code> had been seen, then jump to the last step.
<li>
<p>If <var title="">node</var> is not in the <a
href="#formatting">formatting</a> category, and is not in the <a
href="#phrasing1">phrasing</a> category, and is not an <code><a
href="#address">address</a></code> or <code><a
- href="#div">div</a></code> element, then stop this algorithm.
+ href="#div">div</a></code> element, then jump to the last step.
</li>
- <!-- an element <foo> is in this
- list if the following markup:
+ <!-- an element <foo> is in this list if
+ the following markup:
<!DOCTYPE html><body><ol><li><foo><li>
- ...results in the second <li> not being (in any way) a
- descendant of the first <li>, or if <foo> is a formatting
- element that gets reopened later. -->
+ ...results in the second <li> not being (in any way) a descendant
+ of the first <li>, or if <foo> is a formatting element that gets
+ reopened later. -->
<li>
<p>Otherwise, set <var title="">node</var> to the previous entry in the
<a href="#stack">stack of open elements</a> and return to step 2.
- </ol>
- <p>Finally, <a href="#insert0">insert an HTML element</a> for the token.</p>
+ <li>
+ <p>If the <a href="#stack">stack of open elements</a> <a
+ href="#have-an" title="has an element in scope">has a <code>p</code>
+ element in scope</a>, then act as if an end tag with the tag name
+ <code><a href="#p">p</a></code> had been seen.</p>
+
+ <p>Finally, <a href="#insert0">insert an HTML element</a> for the
+ token.</p>
+ </ol>
+ </dd>
+ <!-- as normal, but imply </dt> or </dd> when there's another <dt> or <dd> open in weird cases -->
<dt>A start tag whose tag name is one of: "dd", "dt"
<dd>
- <p>If the <a href="#stack">stack of open elements</a> <a href="#have-an"
- title="has an element in scope">has a <code>p</code> element in
- scope</a>, then act as if an end tag with the tag name <code><a
- href="#p">p</a></code> had been seen.</p>
-
<p>Run the following algorithm:</p>
<ol>
@@ -46815,34 +46808,41 @@
<li>
<p>If <var title="">node</var> is a <code><a href="#dd">dd</a></code>
- or <code><a href="#dt">dt</a></code> element, then pop all the nodes
- from the <a href="#current5">current node</a> up to <var
- title="">node</var>, including <var title="">node</var>, then stop
- this algorithm. If more than one node is popped, then this is a <a
- href="#parse1">parse error</a>.
+ or <code><a href="#dt">dt</a></code> element, then act as if an end
+ tag with the same tag name as <var title="">node</var> had been seen,
+ then jump to the last step.
<li>
<p>If <var title="">node</var> is not in the <a
href="#formatting">formatting</a> category, and is not in the <a
href="#phrasing1">phrasing</a> category, and is not an <code><a
href="#address">address</a></code> or <code><a
- href="#div">div</a></code> element, then stop this algorithm.
+ href="#div">div</a></code> element, then jump to the last step.
</li>
- <!-- an element <foo> is in this
- list if the following markup:
+ <!-- an element <foo> is in this list if
+ the following markup:
- <!DOCTYPE html><body><ol><dt><foo><dt>
+ <!DOCTYPE html><body><dl><dt><foo><dt>
- ...results in the second <li> not being (in any way) a
- descendant of the first <li>, or if <foo> is a formatting
- element that gets reopened later. -->
+ ...results in the second <dt> not being (in any way) a descendant
+ of the first <dt>, or if <foo> is a formatting element that gets
+ reopened later. -->
<li>
<p>Otherwise, set <var title="">node</var> to the previous entry in the
<a href="#stack">stack of open elements</a> and return to step 2.
- </ol>
- <p>Finally, <a href="#insert0">insert an HTML element</a> for the token.</p>
+ <li>
+ <p>If the <a href="#stack">stack of open elements</a> <a
+ href="#have-an" title="has an element in scope">has a <code>p</code>
+ element in scope</a>, then act as if an end tag with the tag name
+ <code><a href="#p">p</a></code> had been seen.</p>
+
+ <p>Finally, <a href="#insert0">insert an HTML element</a> for the
+ token.</p>
+ </ol>
+ </dd>
+ <!-- same as normal, but effectively ends parsing -->
<dt>A start tag whose tag name is "plaintext"
@@ -46861,10 +46861,14 @@
seen, that will be the last token ever seen other than character tokens
(and the end-of-file token), because there is no way to switch the <a
href="#content2">content model flag</a> out of the PLAINTEXT state.</p>
+ </dd>
+ <!-- end tags for non-phrasing flow content elements -->
+ <!-- the normal ones -->
- <dt>An end tag whose tag name is one of: "address", "blockquote",
- "center", "dir", "div", "dl", "fieldset", "listing", "menu", "ol", "pre",
- "ul"
+ <dt>An end tag whose tag name is one of: "address", "article", "aside",
+ "blockquote", "center", "datagrid", "dialog", "dir", "div", "dl",
+ "fieldset", "footer", "header", "listing", "menu", "nav", "ol", "pre",
+ "section", "ul"
<dd>
<p>If the <a href="#stack">stack of open elements</a> does not <a
@@ -46888,6 +46892,8 @@
until an element with the same tag name as the token has been popped
from the stack.
</ol>
+ </dd>
+ <!-- as normal, but interacts with the form element pointer -->
<dt>An end tag whose tag name is "form"
@@ -46916,22 +46922,38 @@
until an element with the same tag name as the token has been popped
from the stack.
</ol>
+ </dd>
+ <!-- as normal, except </p> implies <p> if there's no <p> in scope, and needs care as the elements have optional tags -->
<dt>An end tag whose tag name is "p"
<dd>
- <p>If the <a href="#current5">current node</a> is not a <code><a
- href="#p">p</a></code> element, then this is a <a href="#parse1">parse
- error</a>.</p>
+ <p>If the <a href="#stack">stack of open elements</a> does not <a
+ href="#have-an" title="has an element in scope">have an element in
+ scope</a> with the same tag name as that of the token, then this is a <a
+ href="#parse1">parse error</a>; act as if a start tag with the tag name
+ <code><a href="#p">p</a></code> had been seen, then reprocess the
+ current token.</p>
- <p>If the <a href="#stack">stack of open elements</a> <a href="#have-an"
- title="has an element in scope">has a <code>p</code> element in
- scope</a>, then pop elements from this stack until the stack no longer
- <a href="#have-an" title="has an element in scope">has a <code>p</code>
- element in scope</a>.</p>
+ <p>Otherwise, run these steps:</p>
- <p>Otherwise, act as if a start tag with the tag name <code><a
- href="#p">p</a></code> had been seen, then reprocess the current token.</p>
+ <ol>
+ <li>
+ <p><a href="#generate">Generate implied end tags</a>, except for
+ elements with the same tag name as the token.
+
+ <li>
+ <p>If the <a href="#current5">current node</a> is not an element with
+ the same tag name as that of the token, then this is a <a
+ href="#parse1">parse error</a>.
+
+ <li>
+ <p>Pop elements from the <a href="#stack">stack of open elements</a>
+ until an element with the same tag name as the token has been popped
+ from the stack.
+ </ol>
+ </dd>
+ <!-- as normal, but needs care as the elements have optional tags -->
<dt>An end tag whose tag name is one of: "dd", "dt", "li"
@@ -46958,6 +46980,8 @@
until an element with the same tag name as the token has been popped
from the stack.
</ol>
+ </dd>
+ <!-- as normal, except acts as a closer for any of the h1-h6 elements -->
<dt>An end tag whose tag name is one of: "h1", "h2", "h3", "h4", "h5",
"h6"
@@ -46987,6 +47011,12 @@
until an element whose tag name is one of "h1", "h2", "h3", "h4",
"h5", or "h6" has been popped from the stack.
</ol>
+
+ <dt>An end tag whose tag name is "sarcasm"
+
+ <dd>
+ <p>Take a deep breath, then act as described in the "any other end tag"
+ entry below.</p>
</dd>
<!-- ADOPTION AGENCY ELEMENTS
Mozilla-only: bdo blink del ins sub sup q
@@ -47303,7 +47333,7 @@
title="insertion mode: in table">in table</a>".</p>
<dt>A start tag whose tag name is one of: "area", "basefont", "bgsound",
- "br", "embed", "img", "param", "spacer", "wbr"
+ "br", "embed", "img", "spacer", "wbr"
<dd>
<p><a href="#reconstruct">Reconstruct the active formatting elements</a>,
@@ -47317,6 +47347,17 @@
flag">Acknowledge the token's <i>self-closing flag</i></a>, if it is
set.</p>
+ <dt>A start tag whose tag name is one of: "param", "source"
+
+ <dd>
+ <p><a href="#insert0">Insert an HTML element</a> for the token.
+ Immediately pop the <a href="#current5">current node</a> off the <a
+ href="#stack">stack of open elements</a>.</p>
+
+ <p><a href="#acknowledged" title="acknowledge self-closing
+ flag">Acknowledge the token's <i>self-closing flag</i></a>, if it is
+ set.</p>
+
<dt>A start tag whose tag name is "hr"
<dd>
@@ -47471,7 +47512,7 @@
<dt>A start tag whose tag name is one of: "iframe", "noembed"
<dt>A start tag whose tag name is "noscript", if the <a
- href="#scripting2">scripting flag</a> is enabled:
+ href="#scripting2">scripting flag</a> is enabled
<dd>
<p>Follow the <a href="#generic">generic CDATA parsing algorithm</a>.</p>
@@ -47592,30 +47633,29 @@
</dd>
-->
- <dt>A start or end tag whose tag name is one of: "caption", "col",
- "colgroup", "frame", "frameset", "head", "option", "optgroup", "tbody",
- "td", "tfoot", "th", "thead", "tr"
-
- <dt>An end tag whose tag name is one of: "area", "basefont", "bgsound",
- "embed", "hr", "iframe", "image", "img", "input", "isindex", "noembed",
- "noframes", "param", "select", "spacer", "table", "textarea", "wbr"</dt>
- <!-- add keygen if we add the start
- tag -->
-
- <dt>An end tag whose tag name is "noscript", if the <a
- href="#scripting2">scripting flag</a> is enabled:
+ <dt>A start <!--or end--> tag whose tag name is one of: "caption", "col",
+ "colgroup", "frame", "frameset", "head", "tbody", "td", "tfoot", "th",
+ "thead", "tr"</dt>
+ <!--<dt>An end tag whose tag name is one of: "area", "base",
+ "basefont", "bgsound", "command", "embed", "event-source", "hr",
+ "iframe", "image", "img", "input", "isindex", "link", "meta",
+ "noembed", "noframes", "param", "script", "select", "source",
+ "spacer", "style", "table", "textarea", "title", "wbr"</dt>-->
+ <!--
+ add keygen if we add the start tag -->
+ <!--<dt>An end tag whose tag name is "noscript", if the
+ <span>scripting flag</span> is enabled</dt>-->
<dd>
<p><a href="#parse1">Parse error</a>. Ignore the token.</p>
+ <!-- end tags are commented out because since they can never end
+ up on the stack anyway, the default end tag clause will
+ automatically handle them. we don't want to have text in the spec
+ that is just an optimisation, as that detracts from the spec
+ itself -->
+
- <dt>A start or end tag whose tag name is one of: "event-source",
- "section", "nav", "article", "aside", "header", "footer", "datagrid",
- "command"
-
- <dd> <!-- XXXX -->
- <p class=big-issue>Work in progress!</p>
-
- <dt>A start tag token not covered by the previous entries
+ <dt>Any other start tag
<dd>
<p><a href="#reconstruct">Reconstruct the active formatting elements</a>,
@@ -47626,7 +47666,7 @@
<p class=note>This element will be a <a href="#phrasing1">phrasing</a>
element.</p>
- <dt>An end tag token not covered by the previous entries
+ <dt>Any other end tag
<dd>
<p>Run the following algorithm:</p>
Received on Saturday, 7 June 2008 00:29:09 UTC