html5/spec-author-view Overview.html,1.303,1.304 browsers.html,1.304,1.305 comms.html,1.303,1.304 dom.html,1.304,1.305 editing.html,1.303,1.304 forms.html,1.303,1.304 semantics.html,1.303,1.304 spec.html,1.304,1.305 syntax.html,1.304,1.305 the-canvas-element.html,1.303,1.304 video.html,1.303,1.304

Update of /sources/public/html5/spec-author-view
In directory hutz:/tmp/cvs-serv31792

Modified Files:
	Overview.html browsers.html comms.html dom.html editing.html 
	forms.html semantics.html spec.html syntax.html 
	the-canvas-element.html video.html 
Log Message:
Register about:legacy-compat. (whatwg r4078)

[updated by splitter]


Index: Overview.html
===================================================================
RCS file: /sources/public/html5/spec-author-view/Overview.html,v
retrieving revision 1.303
retrieving revision 1.304
diff -u -d -r1.303 -r1.304
--- Overview.html	5 Oct 2009 09:31:00 -0000	1.303
+++ Overview.html	5 Oct 2009 09:36:46 -0000	1.304
@@ -0,0 +1,815 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<!DOCTYPE html>
+<!-- when publishing, change bits marked ZZZ --><html lang="en-US-x-Hixie"><head><title>HTML5</title><style type="text/css">
+   pre { margin-left: 2em; white-space: pre-wrap; }
+   h2 { margin: 3em 0 1em 0; }
+   h3 { margin: 2.5em 0 1em 0; }
+   h4 { margin: 2.5em 0 0.75em 0; }
+   h5, h6 { margin: 2.5em 0 1em; }
+   h1 + h2, h1 + h2 + h2 { margin: 0.75em 0 0.75em; }
+   h2 + h3, h3 + h4, h4 + h5, h5 + h6 { margin-top: 0.5em; }
+   p { margin: 1em 0; }
+   hr:not(.top) { display: block; background: none; border: none; padding: 0; margin: 2em 0; height: auto; }
+   dl, dd { margin-top: 0; margin-bottom: 0; }
+   dt { margin-top: 0.75em; margin-bottom: 0.25em; clear: left; }
+   dt + dt { margin-top: 0; }
+   dd dt { margin-top: 0.25em; margin-bottom: 0; }
+   dd p { margin-top: 0; }
+   dd dl + p { margin-top: 1em; }
+   dd table + p { margin-top: 1em; }
+   p + * > li, dd li { margin: 1em 0; }
+   dt, dfn { font-weight: bold; font-style: normal; }
+   dt dfn { font-style: italic; }
+   pre, code { font-size: inherit; font-family: monospace; font-variant: normal; }
+   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
+   pre em { font-weight: bolder; font-style: normal; }
+   @media screen { code { color: orangered; } code :link, code :visited { color: inherit; } }
+   var sub { vertical-align: bottom; font-size: smaller; position: relative; top: 0.1em; }
+   table { border-collapse: collapse; border-style: hidden hidden none hidden; }
+   table thead { border-bottom: solid; }
+   table tbody th:first-child { border-left: solid; }
+   table td, table th { border-left: solid; border-right: solid; border-bottom: solid thin; vertical-align: top; padding: 0.2em; }
+   blockquote { margin: 0 0 0 2em; border: 0; padding: 0; font-style: italic; }
+
+   .bad, .bad *:not(.XXX) { color: gray; border-color: gray; background: transparent; }
+   .matrix, .matrix td { border: none; text-align: right; }
+   .matrix { margin-left: 2em; }
+   .dice-example { border-collapse: collapse; border-style: hidden solid solid hidden; border-width: thin; margin-left: 3em; }
+   .dice-example caption { width: 30em; font-size: smaller; font-style: italic; padding: 0.75em 0; text-align: left; }
+   .dice-example td, .dice-example th { border: solid thin; width: 1.35em; height: 1.05em; text-align: center; padding: 0; }
+
+   .toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
+   img.extra { float: right; }
+   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em 1em; }
+   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
+   pre.css { border: solid thin; background: #FFFFEE; color: black; padding: 0.5em 1em; }
+   pre.css:first-line { color: #AAAA50; }
+   dl.domintro { color: green; margin: 2em 0 2em 2em; padding: 0.5em 1em; border: none; background: #EEFFEE; }
+   hr + dl.domintro, div.impl + dl.domintro { margin-top: 2.5em; margin-bottom: 1.5em; }
+   dl.domintro dt, dl.domintro dt * { color: black; text-decoration: none; }
+   dl.domintro dd { margin: 0.5em 0 1em 2em; padding: 0; }
+   dl.domintro dd p { margin: 0.5em 0; }
+   dl.switch { padding-left: 2em; }
+   dl.switch > dt { text-indent: -1.5em; }
+   dl.switch > dt:before { content: '\21AA'; padding: 0 0.5em 0 0; display: inline-block; width: 1em; text-align: right; line-height: 0.5em; }
+   dl.triple { padding: 0 0 0 1em; }
+   dl.triple dt, dl.triple dd { margin: 0; display: inline }
+   dl.triple dt:after { content: ':'; }
+   dl.triple dd:after { content: '\A'; white-space: pre; }
+   .diff-old { text-decoration: line-through; color: silver; background: transparent; }
+   .diff-chg, .diff-new { text-decoration: underline; color: green; background: transparent; }
+   a .diff-new { border-bottom: 1px blue solid; }
+
+   h2 { page-break-before: always; }
+   h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+   h1 + h2, hr + h2.no-toc { page-break-before: auto; }
+
+   p > span:not([title=""]):not([class="XXX"]):not([class="impl"]), li > span:not([title=""]):not([class="XXX"]):not([class="impl"]) { border-bottom: solid #9999CC; }
+
+   div.head { margin: 0 0 1em; padding: 1em 0 0 0; }
+   div.head p { margin: 0; }
+   div.head h1 { margin: 0; }
+   div.head .logo { float: right; margin: 0 1em; }
+   div.head .logo img { border: none } /* remove border from top image */
+   div.head dl { margin: 1em 0; }
+   p.copyright { font-size: x-small; font-style: oblique; margin: 0; }
+
+   body > .toc > li { margin-top: 1em; margin-bottom: 1em; }
+   body > .toc.brief > li { margin-top: 0.35em; margin-bottom: 0.35em; }
+   body > .toc > li > * { margin-bottom: 0.5em; }
+   body > .toc > li > * > li > * { margin-bottom: 0.25em; }
+   .toc, .toc li { list-style: none; }
+
+   .brief { margin-top: 1em; margin-bottom: 1em; line-height: 1.1; }
+   .brief li { margin: 0; padding: 0; }
+   .brief li p { margin: 0; padding: 0; }
+
+   .category-list { margin-top: -0.75em; margin-bottom: 1em; line-height: 1.5; }
+   .category-list::before { content: '\21D2\A0'; font-size: 1.2em; font-weight: 900; }
+   .category-list li { display: inline; }
+   .category-list li:not(:last-child)::after { content: ', '; }
+   .category-list li > span, .category-list li > a { text-transform: lowercase; }
+   .category-list li * { text-transform: none; } /* don't affect <code> nested in <a> */
+
+   .XXX { color: #E50000; background: white; border: solid red; padding: 0.5em; margin: 1em 0; }
+   .XXX > :first-child { margin-top: 0; }
+   p .XXX { line-height: 3em; }
+   .annotation { border: solid thin black; background: #0C479D; color: white; position: relative; margin: 8px 0 20px 0; }
+   .annotation:before { position: absolute; left: 0; top: 0; width: 100%; height: 100%; margin: 6px -6px -6px 6px; background: #333333; z-index: -1; content: ''; }
+   .annotation :link, .annotation :visited { color: inherit; }
+   .annotation :link:hover, .annotation :visited:hover { background: transparent; }
+   .annotation span { border: none ! important; }
+   .note { color: green; background: transparent; font-family: sans-serif; }
+   .warning { color: red; background: transparent; }
+   .note, .warning { font-weight: bolder; font-style: italic; }
+   p.note, div.note { padding: 0.5em 2em; }
+   span.note { padding: 0 2em; }
+   .note p:first-child, .warning p:first-child { margin-top: 0; }
+   .note p:last-child, .warning p:last-child { margin-bottom: 0; }
+   .warning:before { font-style: normal; }
+   p.note:before { content: 'Note: '; }
+   p.warning:before { content: '\26A0 Warning! '; }
+
+   .bookkeeping:before { display: block; content: 'Bookkeeping details'; font-weight: bolder; font-style: italic; }
+   .bookkeeping { font-size: 0.8em; margin: 2em 0; }
+   .bookkeeping p { margin: 0.5em 2em; display: list-item; list-style: square; }
+
+   h4 { position: relative; z-index: 3; }
+   h4 + .element, h4 + div + .element { margin-top: -2.5em; padding-top: 2em; }
+   .element {
+     background: #EEEEFF;
+     color: black;
+     margin: 0 0 1em 0.15em;
+     padding: 0 1em 0.25em 0.75em;
+     border-left: solid #9999FF 0.25em;
+     position: relative;
+     z-index: 1;
+   }
+   .element:before {
+     position: absolute;
+     z-index: 2;
+     top: 0;
+     left: -1.15em;
+     height: 2em;
+     width: 0.9em;
+     background: #EEEEFF;
+     content: ' ';
+     border-style: none none solid solid;
+     border-color: #9999FF;
+     border-width: 0.25em;
+   }
+
+   .example { display: block; color: #222222; background: #FCFCFC; border-left: double; margin-left: 2em; padding-left: 1em; }
+   td > .example:only-child { margin: 0 0 0 0.1em; }
+
+   .tall-and-narrow {
+     font-size: 0.6em;
+     column-width: 25em;
+     column-gap: 1em;
+     -moz-column-width: 25em;
+     -moz-column-gap: 1em;
+     -webkit-column-width: 25em;
+     -webkit-column-gap: 1em;
+   }
+
+   ul.domTree, ul.domTree ul { padding: 0 0 0 1em; margin: 0; }
+   ul.domTree li { padding: 0; margin: 0; list-style: none; position: relative; }
+   ul.domTree li li { list-style: none; }
+   ul.domTree li:first-child::before { position: absolute; top: 0; height: 0.6em; left: -0.75em; width: 0.5em; border-style: none none solid solid; content: ''; border-width: 0.1em; }
+   ul.domTree li:not(:last-child)::after { position: absolute; top: 0; bottom: -0.6em; left: -0.75em; width: 0.5em; border-style: none none solid solid; content: ''; border-width: 0.1em; }
+   ul.domTree span { font-style: italic; font-family: serif; }
+   ul.domTree .t1 code { color: purple; font-weight: bold; }
+   ul.domTree .t2 { font-style: normal; font-family: monospace; }
+   ul.domTree .t2 .name { color: black; font-weight: bold; }
+   ul.domTree .t2 .value { color: blue; font-weight: normal; }
+   ul.domTree .t3 code, .domTree .t4 code, .domTree .t5 code { color: gray; }
+   ul.domTree .t7 code, .domTree .t8 code { color: green; }
+   ul.domTree .t10 code { color: teal; }
+
+  </style><style type="text/css">
+
+   .applies thead th > * { display: block; }
+   .applies thead code { display: block; }
+   .applies tbody th { whitespace: nowrap; }
+   .applies td { text-align: center; }
+   .applies .yes { background: yellow; }
+
+   .matrix, .matrix td { border: none; text-align: right; }
+   .matrix { margin-left: 2em; }
+
+   .dice-example { border-collapse: collapse; border-style: hidden solid solid hidden; border-width: thin; margin-left: 3em; }
+   .dice-example caption { width: 30em; font-size: smaller; font-style: italic; padding: 0.75em 0; text-align: left; }
+   .dice-example td, .dice-example th { border: solid thin; width: 1.35em; height: 1.05em; text-align: center; padding: 0; }
+
+   #table-example-1 { border: solid thin; border-collapse: collapse; margin-left: 3em; }
+   #table-example-1 * { font-family: "Essays1743", serif; line-height: 1.01em; }
+   #table-example-1 caption { padding-bottom: 0.5em; }
+   #table-example-1 thead, #table-example-1 tbody { border: none; }
+   #table-example-1 th, #table-example-1 td { border: solid thin; }
+   #table-example-1 th { font-weight: normal; }
+   #table-example-1 td { border-style: none solid; vertical-align: top; }
+   #table-example-1 th { padding: 0.5em; vertical-align: middle; text-align: center; }
+   #table-example-1 tbody tr:first-child td { padding-top: 0.5em; }
+   #table-example-1 tbody tr:last-child td { padding-bottom: 1.5em; }
+   #table-example-1 tbody td:first-child { padding-left: 2.5em; padding-right: 0; width: 9em; }
+   #table-example-1 tbody td:first-child::after { content: leader(". "); }
+   #table-example-1 tbody td { padding-left: 2em; padding-right: 2em; }
+   #table-example-1 tbody td:first-child + td { width: 10em; }
+   #table-example-1 tbody td:first-child + td ~ td { width: 2.5em; }
+   #table-example-1 tbody td:first-child + td + td + td ~ td { width: 1.25em; }
+
+   .apple-table-examples { border: none; border-collapse: separate; border-spacing: 1.5em 0em; width: 40em; margin-left: 3em; }
+   .apple-table-examples * { font-family: "Times", serif; }
+   .apple-table-examples td, .apple-table-examples th { border: none; white-space: nowrap; padding-top: 0; padding-bottom: 0; }
+   .apple-table-examples tbody th:first-child { border-left: none; width: 100%; }
+   .apple-table-examples thead th:first-child ~ th { font-size: smaller; font-weight: bolder; border-bottom: solid 2px; text-align: center; }
+   .apple-table-examples tbody th::after, .apple-table-examples tfoot th::after { content: leader(". ") }
+   .apple-table-examples tbody th, .apple-table-examples tfoot th { font: inherit; text-align: left; }
+   .apple-table-examples td { text-align: right; vertical-align: top; }
+   .apple-table-examples.e1 tbody tr:last-child td { border-bottom: solid 1px; }
+   .apple-table-examples.e1 tbody + tbody tr:last-child td { border-bottom: double 3px; }
+   .apple-table-examples.e2 th[scope=row] { padding-left: 1em; }
+   .apple-table-examples sup { line-height: 0; }
+
+  </style><link href="data:text/css," rel="stylesheet" title="Complete specification"><link href="data:text/css,.impl%20%7B%20display:%20none;%20%7D" rel="alternate stylesheet" title="Author documentation only"><link href="data:text/css,.impl%20%7B%20background:%20%23FFEEEE;%20%7D" rel="alternate stylesheet" title="Highlight implementation requirements"><link href="http://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet" type="text/css"><!-- ZZZ ED vs WD --></head><body onload="fixBrokenLink(); fixBrokenLink()"><div class="head">
+   <p><a href="http://www.w3.org/"><img alt="W3C" height="48" src="http://www.w3.org/Icons/w3c_home" width="72"></a></p>
+   <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>
+   <!--ZZZ:-->
+   <!--<h2 class="no-num no-toc">W3C Working Draft 25 August 2009</h2>-->
+   <h2 class="no-num no-toc" id="editor-s-draft-5-october-2009">Editor's Draft 5 October 2009</h2>
+   <!--:ZZZ-->
+   <dl><!-- ZZZ: update the month/day (twice), (un)comment out--><!--
+    <dt>This Version:</dt>
+    <dd><a href="http://www.w3.org/TR/2009/WD-html5-20090825/">http://www.w3.org/TR/2009/WD-html5-20090825/</a></dd>
+--><!-- :ZZZ --><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>
+    <dd><a href="http://www.w3.org/html/wg/html5/">http://www.w3.org/html/wg/html5/</a></dd>
+<!-- ZZZ: add the new version after it has shipped -->
+    <dt>Previous Versions:</dt>
+    <dd><a href="http://www.w3.org/TR/2009/WD-html5-20090825/">http://www.w3.org/TR/2009/WD-html5-20090825/</a></dd>
+    <dd><a href="http://www.w3.org/TR/2009/WD-html5-20090423/">http://www.w3.org/TR/2009/WD-html5-20090423/</a></dd>
+    <dd><a href="http://www.w3.org/TR/2009/WD-html5-20090212/">http://www.w3.org/TR/2009/WD-html5-20090212/</a></dd>
+    <dd><a href="http://www.w3.org/TR/2008/WD-html5-20080610/">http://www.w3.org/TR/2008/WD-html5-20080610/</a></dd>
+    <dd><a href="http://www.w3.org/TR/2008/WD-html5-20080122/">http://www.w3.org/TR/2008/WD-html5-20080122/</a></dd>
+<!-- :ZZZ -->
+    <dt>Editors:</dt>
+    <dd><a href="mailto:ian@hixie.ch">Ian Hickson</a>, Google, Inc.</dd>
+    <dd>David Hyatt, Apple, Inc.</dd>
+   </dl><p>This specification is available in the following formats: 
+    <a href="spec.html">single page HTML</a>,
+    <a href="Overview.html">multipage HTML</a>.
+This is revision 1.3240.
+   </p>
+   <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a>
+   &#169; 2009 <a href="http://www.w3.org/"><abbr title="World Wide
+   Web Consortium">W3C</abbr></a><sup>&#174;</sup> (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts
+   Institute of Technology">MIT</abbr></a>, <a href="http://www.ercim.org/"><abbr title="European Research
+   Consortium for Informatics and Mathematics">ERCIM</abbr></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
+   <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+   <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
+   and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document
+   use</a> rules apply.</p>
+  </div><hr class="top"><h2 class="no-num no-toc" id="abstract">Abstract</h2><p>This specification defines the 5th major revision of the core
+  language of the World Wide Web: the Hypertext Markup Language
+  (HTML). In this version, new features are introduced to help Web
+  application authors, new elements are introduced based on research
+  into prevailing authoring practices, and special attention has been
+  given to defining clear conformance criteria for user agents in an
+  effort to improve interoperability.</p><h2 class="no-num no-toc" id="status-of-this-document">Status of this document</h2><!-- intro boilerplate (required) --><p><em>This section describes the status of this document at the
+  time of its publication. Other documents may supersede this
+  document. A list of current W3C publications and the most recently
+  formally published revision of this technical report can be found in
+  the <a href="http://www.w3.org/TR/">W3C technical reports index</a>
+  at http://www.w3.org/TR/.</em></p><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- XXX this section will be moved back to just below the copyright
+  notice in the header by October 2009 unless the spec as a whole has
+  been transitioned to a more permissive license by that time. --><!-- XXX when moving this text, add: class="alt copyright" --><p>The <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/">WHATWG
+  version</a> of this specification is available under a license that
+  permits reuse of the specification text.</p><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- where to send feedback (required) --><p>If you wish to make comments regarding this document, please send
+  them to <a href="mailto:public-html-comments@w3.org">public-html-comments@w3.org</a>
+  (<a href="mailto:public-html-comments-request@w3.org?subject=subscribe">subscribe</a>,
+  <a href="http://lists.w3.org/Archives/Public/public-html-comments/">archives</a>)
+
+  <!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING SENTENCE TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST -->  
+  or <a href="mailto:whatwg@whatwg.org">whatwg@whatwg.org</a> (<a href="http://lists.whatwg.org/listinfo.cgi/whatwg-whatwg.org">subscribe</a>,
+  <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/">archives</a>),
+  <!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING SENTENCE TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST -->
+
+  or submit them using <a href="http://www.w3.org/Bugs/Public/enter_bug.cgi?product=HTML%20WG">our
+  public bug database</a>.
+
+  All feedback is welcome.</p><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><p>The working groups maintains <a href="http://www.w3.org/Bugs/Public/buglist.cgi?component=Spec%20bugs&amp;component=Spec%20proposals&amp;product=HTML%20WG&amp;resolution=NEEDSINFO&amp;resolution=LATER&amp;resolution=REMIND&amp;resolution=---&amp;order=bugs.resolution%2Cbugs.priority%2C%20bugs.bug_severity">a
+  list of all bug reports that the editor has not yet tried to
+  address</a> and <a href="http://www.w3.org/html/wg/tracker/products/1">a list of issues
+  for which the chairs have not yet declared a decision</a>. The
+  editor also maintains <a href="http://www.whatwg.org/issues/">a list
+  of all e-mails that he has not yet tried to address</a>.</p><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- stability (required) --><p>Implementors should be aware that this specification is not
+  stable. <strong>Implementors who are not taking part in the
+  discussions are likely to find the specification changing out from
+  under them in incompatible ways.</strong> Vendors interested in
+  implementing this specification before it eventually reaches the
+  Candidate Recommendation stage should join the aforementioned
+  mailing lists and take part in the discussions.</p><!-- not everyone agrees with html5 (requested before fpwd) --><p>The publication of this document by the W3C as a W3C Working
+  Draft does not imply that all of the participants in the W3C HTML
+  working group endorse the contents of the specification. Indeed, for
+  any section of the specification, one can usually find many members
+  of the working group or of the W3C as a whole who object strongly to
+  the current text, the existence of the section at all, or the idea
+  that the working group should even spend time discussing the concept
+  of that section.</p><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- version history or list of changes (required) --><p>The latest stable version of the editor's draft of this
+  specification is always available on <a href="http://dev.w3.org/html5/spec/Overview.html">the
+  W3C CVS server</a> and in the <a href="http://svn.whatwg.org/webapps/">WHATWG Subversion
+  repository</a>. The <a href="http://www.whatwg.org/specs/web-apps/current-work/">latest
+  editor's working copy</a> (which may contain unfinished text in
+  the process of being prepared) is also available.</p><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING LIST TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><p>There are various ways to follow the change history for the
+  specification:</p><dl><dt>E-mail notifications of changes</dt>
+   <dd>HTML-Diffs mailing list (diff-marked HTML versions for each change): <a href="http://lists.w3.org/Archives/Public/public-html-diffs/latest">http://lists.w3.org/Archives/Public/public-html-diffs/latest</a></dd>
+   <dd>Commit-Watchers mailing list (complete source diffs): <a href="http://lists.whatwg.org/listinfo.cgi/commit-watchers-whatwg.org">http://lists.whatwg.org/listinfo.cgi/commit-watchers-whatwg.org</a></dd>
+   <dt>Real-time notifications of changes:</dt>
+   <dd>Generated diff-marked HTML versions for each change: <a href="http://twitter.com/HTML5">http://twitter.com/HTML5</a></dd>
+   <dd>All (non-editorial) changes to the spec source: <a href="http://twitter.com/WHATWG">http://twitter.com/WHATWG</a></dd>
+   <dt>Browsable version-control record of all changes:</dt>
+   <dd>CVSWeb interface with side-by-side diffs: <a href="http://dev.w3.org/cvsweb/html5/spec/Overview.html">http://dev.w3.org/cvsweb/html5/spec/Overview.html</a></dd>
+   <dd>Annotated summary with unified diffs: <a href="http://html5.org/tools/web-apps-tracker">http://html5.org/tools/web-apps-tracker</a></dd>
+   <dd>Raw Subversion interface: <code>svn checkout http://svn.whatwg.org/webapps/</code></dd>
+  </dl><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING LIST TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- status of document, group responsible (required) --><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 25 August 2009 Working Draft.-->
+  This specification is the 5 October 2009 Editor's Draft.
+  <!--:ZZZ-->
+  </p><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- relationship to other work (required) --><p>This specification is also being produced by the <a href="http://www.whatwg.org/">WHATWG</a>. The two specifications are
+  identical from the table of contents onwards.</p><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- context and rationale (required) --><p>This specification is intended to replace (be a new version of)
+  what was previously the HTML4, XHTML1, and DOM2 HTML
+  specifications.</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
+  February 2004 W3C Patent Policy</a>. W3C maintains a <a href="http://www.w3.org/2004/01/pp-impl/40318/status" rel="disclosure">public list of
+  any patent disclosures</a> made in connection with the deliverables
+  of the group; that page also includes instructions for disclosing a
+  patent. An individual who has actual knowledge of a patent which the
+  individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential
+  Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
+  6 of the W3C Patent Policy</a>.</p><h3 class="no-num no-toc" id="stability-0">Stability</h3><p>Different parts of this specification are at different levels of
+  maturity.</p><div id="stability"></div><h2 class="no-num no-toc" id="contents">Table of contents</h2>
+<!--begin-toc-->
+<ol class="toc"><li><a href="introduction.html#introduction"><span class="secno">1 </span>Introduction</a>
+  <ol><li><a href="introduction.html#background"><span class="secno">1.1 </span>Background</a></li>
+   <li><a href="introduction.html#audience"><span class="secno">1.2 </span>Audience</a></li>
+   <li><a href="introduction.html#scope"><span class="secno">1.3 </span>Scope</a></li>
+   <li><a href="introduction.html#history-1"><span class="secno">1.4 </span>History</a></li>
+   <li><a href="introduction.html#design-notes"><span class="secno">1.5 </span>Design notes</a>
+    <ol><li><a href="introduction.html#serializability-of-script-execution"><span class="secno">1.5.1 </span>Serializability of script execution</a></li>
+     <li><a href="introduction.html#compliance-with-other-specifications"><span class="secno">1.5.2 </span>Compliance with other specifications</a></li></ol></li>
+   <li><a href="introduction.html#html-vs-xhtml"><span class="secno">1.6 </span>HTML vs XHTML</a></li>
+   <li><a href="introduction.html#structure-of-this-specification"><span class="secno">1.7 </span>Structure of this specification</a>
+    <ol><li><a href="introduction.html#how-to-read-this-specification"><span class="secno">1.7.1 </span>How to read this specification</a></li>
+     <li><a href="introduction.html#typographic-conventions"><span class="secno">1.7.2 </span>Typographic conventions</a></li></ol></li>
+   <li><a href="introduction.html#a-quick-introduction-to-html"><span class="secno">1.8 </span>A quick introduction to HTML</a></li>
+   <li><a href="introduction.html#recommended-reading"><span class="secno">1.9 </span>Recommended reading</a></li></ol></li>
+ <li><a href="infrastructure.html#infrastructure"><span class="secno">2 </span>Common infrastructure</a>
+  <ol><li><a href="infrastructure.html#terminology"><span class="secno">2.1 </span>Terminology</a>
+    <ol><li><a href="infrastructure.html#resources"><span class="secno">2.1.1 </span>Resources</a></li>
+     <li><a href="infrastructure.html#xml"><span class="secno">2.1.2 </span>XML</a></li>
+     <li><a href="infrastructure.html#dom-trees"><span class="secno">2.1.3 </span>DOM trees</a></li>
+     <li><a href="infrastructure.html#scripting-0"><span class="secno">2.1.4 </span>Scripting</a></li>
+     <li><a href="infrastructure.html#plugins"><span class="secno">2.1.5 </span>Plugins</a></li>
+     <li><a href="infrastructure.html#character-encodings"><span class="secno">2.1.6 </span>Character encodings</a></li></ol></li>
+   <li><a href="infrastructure.html#conformance-requirements"><span class="secno">2.2 </span>Conformance requirements</a></li>
+   <li><a href="infrastructure.html#case-sensitivity-and-string-comparison"><span class="secno">2.3 </span>Case-sensitivity and string comparison</a></li>
+   <li><a href="infrastructure.html#common-microsyntaxes"><span class="secno">2.4 </span>Common microsyntaxes</a>
+    <ol><li><a href="infrastructure.html#boolean-attributes"><span class="secno">2.4.1 </span>Boolean attributes</a></li>
+     <li><a href="infrastructure.html#keywords-and-enumerated-attributes"><span class="secno">2.4.2 </span>Keywords and enumerated attributes</a></li>
+     <li><a href="infrastructure.html#numbers"><span class="secno">2.4.3 </span>Numbers</a>
+      <ol><li><a href="infrastructure.html#non-negative-integers"><span class="secno">2.4.3.1 </span>Non-negative integers</a></li>
+       <li><a href="infrastructure.html#signed-integers"><span class="secno">2.4.3.2 </span>Signed integers</a></li>
+       <li><a href="infrastructure.html#real-numbers"><span class="secno">2.4.3.3 </span>Real numbers</a></li>
+       <li><a href="infrastructure.html#ratios"><span class="secno">2.4.3.4 </span>Ratios</a></li>
+       <li><a href="infrastructure.html#lists-of-integers"><span class="secno">2.4.3.5 </span>Lists of integers</a></li></ol></li>
+     <li><a href="infrastructure.html#dates-and-times"><span class="secno">2.4.4 </span>Dates and times</a>
+      <ol><li><a href="infrastructure.html#months"><span class="secno">2.4.4.1 </span>Months</a></li>
+       <li><a href="infrastructure.html#dates"><span class="secno">2.4.4.2 </span>Dates</a></li>
+       <li><a href="infrastructure.html#times"><span class="secno">2.4.4.3 </span>Times</a></li>
+       <li><a href="infrastructure.html#local-dates-and-times"><span class="secno">2.4.4.4 </span>Local dates and times</a></li>
+       <li><a href="infrastructure.html#global-dates-and-times"><span class="secno">2.4.4.5 </span>Global dates and times</a></li>
+       <li><a href="infrastructure.html#weeks"><span class="secno">2.4.4.6 </span>Weeks</a></li>
+       <li><a href="infrastructure.html#vaguer-moments-in-time"><span class="secno">2.4.4.7 </span>Vaguer moments in time</a></li></ol></li>
+     <li><a href="infrastructure.html#colors"><span class="secno">2.4.5 </span>Colors</a></li>
+     <li><a href="infrastructure.html#space-separated-tokens"><span class="secno">2.4.6 </span>Space-separated tokens</a></li>
+     <li><a href="infrastructure.html#comma-separated-tokens"><span class="secno">2.4.7 </span>Comma-separated tokens</a></li>
+     <li><a href="infrastructure.html#reversed-dns-identifiers"><span class="secno">2.4.8 </span>Reversed DNS identifiers</a></li>
+     <li><a href="infrastructure.html#syntax-references"><span class="secno">2.4.9 </span>References</a></li>
+     <li><a href="infrastructure.html#mq"><span class="secno">2.4.10 </span>Media queries</a></li></ol></li>
+   <li><a href="infrastructure.html#urls"><span class="secno">2.5 </span>URLs</a>
+    <ol><li><a href="infrastructure.html#terminology-0"><span class="secno">2.5.1 </span>Terminology</a></li>
+     <li><a href="infrastructure.html#interfaces-for-url-manipulation"><span class="secno">2.5.2 </span>Interfaces for URL manipulation</a></li></ol></li>
+   <li><a href="infrastructure.html#common-dom-interfaces"><span class="secno">2.6 </span>Common DOM interfaces</a>
+    <ol><li><a href="infrastructure.html#reflecting-content-attributes-in-idl-attributes"><span class="secno">2.6.1 </span>Reflecting content attributes in IDL attributes</a></li>
+     <li><a href="infrastructure.html#collections-0"><span class="secno">2.6.2 </span>Collections</a>
+      <ol><li><a href="infrastructure.html#htmlcollection-0"><span class="secno">2.6.2.1 </span>HTMLCollection</a></li>
+       <li><a href="infrastructure.html#htmlallcollection-0"><span class="secno">2.6.2.2 </span>HTMLAllCollection</a></li>
+       <li><a href="infrastructure.html#htmlformcontrolscollection-0"><span class="secno">2.6.2.3 </span>HTMLFormControlsCollection</a></li>
+       <li><a href="infrastructure.html#htmloptionscollection-0"><span class="secno">2.6.2.4 </span>HTMLOptionsCollection</a></li>
+       <li><a href="infrastructure.html#htmlpropertycollection-0"><span class="secno">2.6.2.5 </span>HTMLPropertyCollection</a></li></ol></li>
+     <li><a href="infrastructure.html#domtokenlist-0"><span class="secno">2.6.3 </span>DOMTokenList</a></li>
+     <li><a href="infrastructure.html#domsettabletokenlist-0"><span class="secno">2.6.4 </span>DOMSettableTokenList</a></li>
+     <li><a href="infrastructure.html#domstringmap-0"><span class="secno">2.6.5 </span>DOMStringMap</a></li>
+     <li><a href="infrastructure.html#dom-feature-strings"><span class="secno">2.6.6 </span>DOM feature strings</a></li>
+     <li><a href="infrastructure.html#exceptions"><span class="secno">2.6.7 </span>Exceptions</a></li></ol></li></ol></li>
+ <li><a href="dom.html#dom"><span class="secno">3 </span>Semantics, structure, and APIs of HTML documents</a>
+  <ol><li><a href="dom.html#documents"><span class="secno">3.1 </span>Documents</a>
+    <ol><li><a href="dom.html#documents-in-the-dom"><span class="secno">3.1.1 </span>Documents in the DOM</a></li>
+     <li><a href="dom.html#security"><span class="secno">3.1.2 </span>Security</a></li>
+     <li><a href="dom.html#resource-metadata-management"><span class="secno">3.1.3 </span>Resource metadata management</a></li>
+     <li><a href="dom.html#dom-tree-accessors"><span class="secno">3.1.4 </span>DOM tree accessors</a></li></ol></li>
+   <li><a href="dom.html#elements"><span class="secno">3.2 </span>Elements</a>
+    <ol><li><a href="dom.html#semantics-0"><span class="secno">3.2.1 </span>Semantics</a></li>
+     <li><a href="dom.html#elements-in-the-dom"><span class="secno">3.2.2 </span>Elements in the DOM</a></li>
+     <li><a href="dom.html#global-attributes"><span class="secno">3.2.3 </span>Global attributes</a>
+      <ol><li><a href="dom.html#the-id-attribute"><span class="secno">3.2.3.1 </span>The <code>id</code> attribute</a></li>
+       <li><a href="dom.html#the-title-attribute"><span class="secno">3.2.3.2 </span>The <code>title</code> attribute</a></li>
+       <li><a href="dom.html#the-lang-and-xml:lang-attributes"><span class="secno">3.2.3.3 </span>The <code title="attr-lang">lang</code> and <code title="attr-xml-lang">xml:lang</code> attributes</a></li>
+       <li><a href="dom.html#the-xml:base-attribute-xml-only"><span class="secno">3.2.3.4 </span>The <code>xml:base</code>
+  attribute (XML only)</a></li>
+       <li><a href="dom.html#the-dir-attribute"><span class="secno">3.2.3.5 </span>The <code>dir</code> attribute</a></li>
+       <li><a href="dom.html#classes"><span class="secno">3.2.3.6 </span>The <code>class</code> attribute</a></li>
+       <li><a href="dom.html#the-style-attribute"><span class="secno">3.2.3.7 </span>The <code>style</code> attribute</a></li>
+       <li><a href="dom.html#embedding-custom-non-visible-data"><span class="secno">3.2.3.8 </span>Embedding custom non-visible data</a></li></ol></li>
+     <li><a href="dom.html#element-definitions"><span class="secno">3.2.4 </span>Element definitions</a></li>
+     <li><a href="dom.html#content-models"><span class="secno">3.2.5 </span>Content models</a>
+      <ol><li><a href="dom.html#kinds-of-content"><span class="secno">3.2.5.1 </span>Kinds of content</a>
+        <ol><li><a href="dom.html#metadata-content-0"><span class="secno">3.2.5.1.1 </span>Metadata content</a></li>
+         <li><a href="dom.html#flow-content-0"><span class="secno">3.2.5.1.2 </span>Flow content</a></li>
+         <li><a href="dom.html#sectioning-content-0"><span class="secno">3.2.5.1.3 </span>Sectioning content</a></li>
+         <li><a href="dom.html#heading-content-0"><span class="secno">3.2.5.1.4 </span>Heading content</a></li>
+         <li><a href="dom.html#phrasing-content-0"><span class="secno">3.2.5.1.5 </span>Phrasing content</a></li>
+         <li><a href="embedded-content-0.html#embedded-content-0"><span class="secno">3.2.5.1.6 </span>Embedded content</a></li>
+         <li><a href="embedded-content-0.html#interactive-content-0"><span class="secno">3.2.5.1.7 </span>Interactive content</a></li></ol></li>
+       <li><a href="embedded-content-0.html#transparent-content-models"><span class="secno">3.2.5.2 </span>Transparent content models</a></li>
+       <li><a href="embedded-content-0.html#paragraphs"><span class="secno">3.2.5.3 </span>Paragraphs</a></li></ol></li>
+     <li><a href="embedded-content-0.html#annotations-for-assistive-technology-products-aria"><span class="secno">3.2.6 </span>Annotations for assistive technology products (ARIA)</a></li></ol></li>
+   <li><a href="embedded-content-0.html#apis-in-html-documents"><span class="secno">3.3 </span>APIs in HTML documents</a></li>
+   <li><a href="embedded-content-0.html#dynamic-markup-insertion"><span class="secno">3.4 </span>Dynamic markup insertion</a>
+    <ol><li><a href="embedded-content-0.html#opening-the-input-stream"><span class="secno">3.4.1 </span>Opening the input stream</a></li>
+     <li><a href="embedded-content-0.html#closing-the-input-stream"><span class="secno">3.4.2 </span>Closing the input stream</a></li>
+     <li><a href="embedded-content-0.html#document.write"><span class="secno">3.4.3 </span><code title="dom-document-write">document.write()</code></a></li>
+     <li><a href="embedded-content-0.html#document.writeln"><span class="secno">3.4.4 </span><code title="dom-document-writeln">document.writeln()</code></a></li>
+     <li><a href="embedded-content-0.html#innerhtml"><span class="secno">3.4.5 </span><code title="dom-innerHTML">innerHTML</code></a></li>
+     <li><a href="embedded-content-0.html#outerhtml"><span class="secno">3.4.6 </span><code title="dom-outerHTML">outerHTML</code></a></li>
+     <li><a href="embedded-content-0.html#insertadjacenthtml"><span class="secno">3.4.7 </span><code title="dom-insertAdjacentHTML">insertAdjacentHTML()</code></a></li></ol></li></ol></li>
+ <li><a href="semantics.html#semantics"><span class="secno">4 </span>The elements of HTML</a>
+  <ol><li><a href="semantics.html#the-root-element"><span class="secno">4.1 </span>The root element</a>
+    <ol><li><a href="semantics.html#the-html-element-0"><span class="secno">4.1.1 </span>The <code>html</code> element</a></li></ol></li>
+   <li><a href="semantics.html#document-metadata"><span class="secno">4.2 </span>Document metadata</a>
+    <ol><li><a href="semantics.html#the-head-element-0"><span class="secno">4.2.1 </span>The <code>head</code> element</a></li>
+     <li><a href="semantics.html#the-title-element-0"><span class="secno">4.2.2 </span>The <code>title</code> element</a></li>
+     <li><a href="semantics.html#the-base-element"><span class="secno">4.2.3 </span>The <code>base</code> element</a></li>
+     <li><a href="semantics.html#the-link-element"><span class="secno">4.2.4 </span>The <code>link</code> element</a></li>
+     <li><a href="semantics.html#meta"><span class="secno">4.2.5 </span>The <code>meta</code> element</a>
+      <ol><li><a href="semantics.html#standard-metadata-names"><span class="secno">4.2.5.1 </span>Standard metadata names</a></li>
+       <li><a href="semantics.html#other-metadata-names"><span class="secno">4.2.5.2 </span>Other metadata names</a></li>
+       <li><a href="semantics.html#pragma-directives"><span class="secno">4.2.5.3 </span>Pragma directives</a></li>
+       <li><a href="semantics.html#other-pragma-directives"><span class="secno">4.2.5.4 </span>Other pragma directives</a></li>
+       <li><a href="semantics.html#charset"><span class="secno">4.2.5.5 </span>Specifying the document's character encoding</a></li></ol></li>
+     <li><a href="semantics.html#itemref"><span class="secno">4.2.6 </span>The <code>itemref</code> element</a></li>
+     <li><a href="semantics.html#the-style-element"><span class="secno">4.2.7 </span>The <code>style</code> element</a></li>
+     <li><a href="semantics.html#styling"><span class="secno">4.2.8 </span>Styling</a></li></ol></li>
+   <li><a href="semantics.html#scripting-1"><span class="secno">4.3 </span>Scripting</a>
+    <ol><li><a href="semantics.html#script"><span class="secno">4.3.1 </span>The <code>script</code> element</a>
+      <ol><li><a href="semantics.html#scriptingLanguages"><span class="secno">4.3.1.1 </span>Scripting languages</a></li>
+       <li><a href="semantics.html#inline-documentation-for-external-scripts"><span class="secno">4.3.1.2 </span>Inline documentation for external scripts</a></li></ol></li>
+     <li><a href="semantics.html#the-noscript-element"><span class="secno">4.3.2 </span>The <code>noscript</code> element</a></li></ol></li>
+   <li><a href="semantics.html#sections"><span class="secno">4.4 </span>Sections</a>
+    <ol><li><a href="semantics.html#the-body-element-0"><span class="secno">4.4.1 </span>The <code>body</code> element</a></li>
+     <li><a href="semantics.html#the-section-element"><span class="secno">4.4.2 </span>The <code>section</code> element</a></li>
+     <li><a href="semantics.html#the-nav-element"><span class="secno">4.4.3 </span>The <code>nav</code> element</a></li>
+     <li><a href="semantics.html#the-article-element"><span class="secno">4.4.4 </span>The <code>article</code> element</a></li>
+     <li><a href="semantics.html#the-aside-element"><span class="secno">4.4.5 </span>The <code>aside</code> element</a></li>
+     <li><a href="semantics.html#the-h1-h2-h3-h4-h5-and-h6-elements"><span class="secno">4.4.6 </span>The <code>h1</code>, <code>h2</code>,
+  <code>h3</code>, <code>h4</code>,
+  <code>h5</code>, and <code>h6</code>
+  elements</a></li>
+     <li><a href="semantics.html#the-hgroup-element"><span class="secno">4.4.7 </span>The <code>hgroup</code> element</a></li>
+     <li><a href="semantics.html#the-header-element"><span class="secno">4.4.8 </span>The <code>header</code> element</a></li>
+     <li><a href="semantics.html#the-footer-element"><span class="secno">4.4.9 </span>The <code>footer</code> element</a></li>
+     <li><a href="semantics.html#the-address-element"><span class="secno">4.4.10 </span>The <code>address</code> element</a></li>
+     <li><a href="semantics.html#headings-and-sections"><span class="secno">4.4.11 </span>Headings and sections</a>
+      <ol><li><a href="semantics.html#outlines"><span class="secno">4.4.11.1 </span>Creating an outline</a></li></ol></li></ol></li>
+   <li><a href="semantics.html#grouping-content"><span class="secno">4.5 </span>Grouping content</a>
+    <ol><li><a href="semantics.html#the-p-element"><span class="secno">4.5.1 </span>The <code>p</code> element</a></li>
+     <li><a href="semantics.html#the-hr-element"><span class="secno">4.5.2 </span>The <code>hr</code> element</a></li>
+     <li><a href="semantics.html#the-br-element"><span class="secno">4.5.3 </span>The <code>br</code> element</a></li>
+     <li><a href="semantics.html#the-pre-element"><span class="secno">4.5.4 </span>The <code>pre</code> element</a></li>
+     <li><a href="semantics.html#the-blockquote-element"><span class="secno">4.5.5 </span>The <code>blockquote</code> element</a></li>
+     <li><a href="semantics.html#the-ol-element"><span class="secno">4.5.6 </span>The <code>ol</code> element</a></li>
+     <li><a href="semantics.html#the-ul-element"><span class="secno">4.5.7 </span>The <code>ul</code> element</a></li>
+     <li><a href="semantics.html#the-li-element"><span class="secno">4.5.8 </span>The <code>li</code> element</a></li>
+     <li><a href="semantics.html#the-dl-element"><span class="secno">4.5.9 </span>The <code>dl</code> element</a></li>
+     <li><a href="semantics.html#the-dt-element"><span class="secno">4.5.10 </span>The <code>dt</code> element</a></li>
+     <li><a href="semantics.html#the-dd-element"><span class="secno">4.5.11 </span>The <code>dd</code> element</a></li>
+     <li><a href="semantics.html#the-div-element"><span class="secno">4.5.12 </span>The <code>div</code> element</a></li></ol></li>
+   <li><a href="text-level-semantics.html#text-level-semantics"><span class="secno">4.6 </span>Text-level semantics</a>
+    <ol><li><a href="text-level-semantics.html#the-a-element"><span class="secno">4.6.1 </span>The <code>a</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-em-element"><span class="secno">4.6.2 </span>The <code>em</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-strong-element"><span class="secno">4.6.3 </span>The <code>strong</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-small-element"><span class="secno">4.6.4 </span>The <code>small</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-cite-element"><span class="secno">4.6.5 </span>The <code>cite</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-q-element"><span class="secno">4.6.6 </span>The <code>q</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-dfn-element"><span class="secno">4.6.7 </span>The <code>dfn</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-abbr-element"><span class="secno">4.6.8 </span>The <code>abbr</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-time-element"><span class="secno">4.6.9 </span>The <code>time</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-code-element"><span class="secno">4.6.10 </span>The <code>code</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-var-element"><span class="secno">4.6.11 </span>The <code>var</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-samp-element"><span class="secno">4.6.12 </span>The <code>samp</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-kbd-element"><span class="secno">4.6.13 </span>The <code>kbd</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-sub-and-sup-elements"><span class="secno">4.6.14 </span>The <code>sub</code> and <code>sup</code> elements</a></li>
+     <li><a href="text-level-semantics.html#the-i-element"><span class="secno">4.6.15 </span>The <code>i</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-b-element"><span class="secno">4.6.16 </span>The <code>b</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-mark-element"><span class="secno">4.6.17 </span>The <code>mark</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-progress-element"><span class="secno">4.6.18 </span>The <code>progress</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-meter-element"><span class="secno">4.6.19 </span>The <code>meter</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-ruby-element"><span class="secno">4.6.20 </span>The <code>ruby</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-rt-element"><span class="secno">4.6.21 </span>The <code>rt</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-rp-element"><span class="secno">4.6.22 </span>The <code>rp</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-bdo-element"><span class="secno">4.6.23 </span>The <code>bdo</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-span-element"><span class="secno">4.6.24 </span>The <code>span</code> element</a></li>
+     <li><a href="text-level-semantics.html#usage-summary"><span class="secno">4.6.25 </span>Usage summary</a></li></ol></li>
+   <li><a href="text-level-semantics.html#edits"><span class="secno">4.7 </span>Edits</a>
+    <ol><li><a href="text-level-semantics.html#the-ins-element"><span class="secno">4.7.1 </span>The <code>ins</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-del-element"><span class="secno">4.7.2 </span>The <code>del</code> element</a></li>
+     <li><a href="text-level-semantics.html#attributes-common-to-ins-and-del-elements"><span class="secno">4.7.3 </span>Attributes common to <code>ins</code> and <code>del</code> elements</a></li>
+     <li><a href="text-level-semantics.html#edits-and-paragraphs"><span class="secno">4.7.4 </span>Edits and paragraphs</a></li>
+     <li><a href="text-level-semantics.html#edits-and-lists"><span class="secno">4.7.5 </span>Edits and lists</a></li></ol></li>
+   <li><a href="text-level-semantics.html#embedded-content-1"><span class="secno">4.8 </span>Embedded content</a>
+    <ol><li><a href="text-level-semantics.html#the-figure-element"><span class="secno">4.8.1 </span>The <code>figure</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-img-element"><span class="secno">4.8.2 </span>The <code>img</code> element</a>
+      <ol><li><a href="text-level-semantics.html#alt"><span class="secno">4.8.2.1 </span>Requirements for providing text to act as an alternative for images</a>
+        <ol><li><a href="text-level-semantics.html#a-link-or-button-containing-nothing-but-the-image"><span class="secno">4.8.2.1.1 </span>A link or button containing nothing but the image</a></li>
+         <li><a href="text-level-semantics.html#a-phrase-or-paragraph-with-an-alternative-graphical-representation:-charts-diagrams-graphs-maps-illustrations"><span class="secno">4.8.2.1.2 </span>A phrase or paragraph with an alternative graphical representation: charts, diagrams, graphs, maps, illustrations</a></li>
+         <li><a href="text-level-semantics.html#a-short-phrase-or-label-with-an-alternative-graphical-representation:-icons-logos"><span class="secno">4.8.2.1.3 </span>A short phrase or label with an alternative graphical representation: icons, logos</a></li>
+         <li><a href="text-level-semantics.html#text-that-has-been-rendered-to-a-graphic-for-typographical-effect"><span class="secno">4.8.2.1.4 </span>Text that has been rendered to a graphic for typographical effect</a></li>
+         <li><a href="text-level-semantics.html#a-graphical-representation-of-some-of-the-surrounding-text"><span class="secno">4.8.2.1.5 </span>A graphical representation of some of the surrounding text</a></li>
+         <li><a href="text-level-semantics.html#a-purely-decorative-image-that-doesn-t-add-any-information"><span class="secno">4.8.2.1.6 </span>A purely decorative image that doesn't add any information</a></li>
+         <li><a href="text-level-semantics.html#a-group-of-images-that-form-a-single-larger-picture-with-no-links"><span class="secno">4.8.2.1.7 </span>A group of images that form a single larger picture with no links</a></li>
+         <li><a href="text-level-semantics.html#a-group-of-images-that-form-a-single-larger-picture-with-links"><span class="secno">4.8.2.1.8 </span>A group of images that form a single larger picture with links</a></li>
+         <li><a href="text-level-semantics.html#a-key-part-of-the-content"><span class="secno">4.8.2.1.9 </span>A key part of the content</a></li>
+         <li><a href="text-level-semantics.html#an-image-not-intended-for-the-user"><span class="secno">4.8.2.1.10 </span>An image not intended for the user</a></li>
+         <li><a href="text-level-semantics.html#an-image-in-an-e-mail-or-private-document-intended-for-a-specific-person-who-is-known-to-be-able-to-view-images"><span class="secno">4.8.2.1.11 </span>An image in an e-mail or private document intended for a specific person who is known to be able to view images</a></li>
+         <li><a href="text-level-semantics.html#general-guidelines"><span class="secno">4.8.2.1.12 </span>General guidelines</a></li></ol></li></ol></li>
+     <li><a href="text-level-semantics.html#the-iframe-element"><span class="secno">4.8.3 </span>The <code>iframe</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-embed-element"><span class="secno">4.8.4 </span>The <code>embed</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-object-element"><span class="secno">4.8.5 </span>The <code>object</code> element</a></li>
+     <li><a href="text-level-semantics.html#the-param-element"><span class="secno">4.8.6 </span>The <code>param</code> element</a></li>
+     <li><a href="video.html#video"><span class="secno">4.8.7 </span>The <code>video</code> element</a></li>
+     <li><a href="video.html#audio"><span class="secno">4.8.8 </span>The <code>audio</code> element</a></li>
+     <li><a href="video.html#the-source-element"><span class="secno">4.8.9 </span>The <code>source</code> element</a></li>
+     <li><a href="video.html#media-elements"><span class="secno">4.8.10 </span>Media elements</a>
+      <ol><li><a href="video.html#error-codes"><span class="secno">4.8.10.1 </span>Error codes</a></li>
+       <li><a href="video.html#location-of-the-media-resource"><span class="secno">4.8.10.2 </span>Location of the media resource</a></li>
+       <li><a href="video.html#mime-types"><span class="secno">4.8.10.3 </span>MIME types</a></li>
+       <li><a href="video.html#network-states"><span class="secno">4.8.10.4 </span>Network states</a></li>
+       <li><a href="video.html#loading-the-media-resource"><span class="secno">4.8.10.5 </span>Loading the media resource</a></li>
+       <li><a href="video.html#offsets-into-the-media-resource"><span class="secno">4.8.10.6 </span>Offsets into the media resource</a></li>
+       <li><a href="video.html#the-ready-states"><span class="secno">4.8.10.7 </span>The ready states</a></li>
+       <li><a href="video.html#playing-the-media-resource"><span class="secno">4.8.10.8 </span>Playing the media resource</a></li>
+       <li><a href="video.html#seeking"><span class="secno">4.8.10.9 </span>Seeking</a></li>
+       <li><a href="video.html#user-interface"><span class="secno">4.8.10.10 </span>User interface</a></li>
+       <li><a href="video.html#time-ranges"><span class="secno">4.8.10.11 </span>Time ranges</a></li>
+       <li><a href="video.html#mediaevents"><span class="secno">4.8.10.12 </span>Event summary</a></li></ol></li>
+     <li><a href="the-canvas-element.html#the-canvas-element"><span class="secno">4.8.11 </span>The <code>canvas</code> element</a>
+      <ol><li><a href="the-canvas-element.html#the-2d-context"><span class="secno">4.8.11.1 </span>The 2D context</a>
+        <ol><li><a href="the-canvas-element.html#the-canvas-state"><span class="secno">4.8.11.1.1 </span>The canvas state</a></li>
+         <li><a href="the-canvas-element.html#transformations"><span class="secno">4.8.11.1.2 </span>Transformations</a></li>
+         <li><a href="the-canvas-element.html#compositing"><span class="secno">4.8.11.1.3 </span>Compositing</a></li>
+         <li><a href="the-canvas-element.html#colors-and-styles"><span class="secno">4.8.11.1.4 </span>Colors and styles</a></li>
+         <li><a href="the-canvas-element.html#line-styles"><span class="secno">4.8.11.1.5 </span>Line styles</a></li>
+         <li><a href="the-canvas-element.html#shadows"><span class="secno">4.8.11.1.6 </span>Shadows</a></li>
+         <li><a href="the-canvas-element.html#simple-shapes-rectangles"><span class="secno">4.8.11.1.7 </span>Simple shapes (rectangles)</a></li>
+         <li><a href="the-canvas-element.html#complex-shapes-paths"><span class="secno">4.8.11.1.8 </span>Complex shapes (paths)</a></li>
+         <li><a href="the-canvas-element.html#text"><span class="secno">4.8.11.1.9 </span>Text</a></li>
+         <li><a href="the-canvas-element.html#images"><span class="secno">4.8.11.1.10 </span>Images</a></li>
+         <li><a href="the-canvas-element.html#pixel-manipulation"><span class="secno">4.8.11.1.11 </span>Pixel manipulation</a></li>
+         <li><a href="the-canvas-element.html#examples"><span class="secno">4.8.11.1.12 </span>Examples</a></li></ol></li></ol></li>
+     <li><a href="the-canvas-element.html#the-map-element"><span class="secno">4.8.12 </span>The <code>map</code> element</a></li>
+     <li><a href="the-canvas-element.html#the-area-element"><span class="secno">4.8.13 </span>The <code>area</code> element</a></li>
+     <li><a href="the-canvas-element.html#image-maps"><span class="secno">4.8.14 </span>Image maps</a></li>
+     <li><a href="the-canvas-element.html#mathml"><span class="secno">4.8.15 </span>MathML</a></li>
+     <li><a href="the-canvas-element.html#svg-0"><span class="secno">4.8.16 </span>SVG</a></li>
+     <li><a href="the-canvas-element.html#dimension-attributes"><span class="secno">4.8.17 </span>Dimension attributes</a></li></ol></li>
+   <li><a href="tabular-data.html#tabular-data"><span class="secno">4.9 </span>Tabular data</a>
+    <ol><li><a href="tabular-data.html#the-table-element"><span class="secno">4.9.1 </span>The <code>table</code> element</a></li>
+     <li><a href="tabular-data.html#the-caption-element"><span class="secno">4.9.2 </span>The <code>caption</code> element</a></li>
+     <li><a href="tabular-data.html#the-colgroup-element"><span class="secno">4.9.3 </span>The <code>colgroup</code> element</a></li>
+     <li><a href="tabular-data.html#the-col-element"><span class="secno">4.9.4 </span>The <code>col</code> element</a></li>
+     <li><a href="tabular-data.html#the-tbody-element"><span class="secno">4.9.5 </span>The <code>tbody</code> element</a></li>
+     <li><a href="tabular-data.html#the-thead-element"><span class="secno">4.9.6 </span>The <code>thead</code> element</a></li>
+     <li><a href="tabular-data.html#the-tfoot-element"><span class="secno">4.9.7 </span>The <code>tfoot</code> element</a></li>
+     <li><a href="tabular-data.html#the-tr-element"><span class="secno">4.9.8 </span>The <code>tr</code> element</a></li>
+     <li><a href="tabular-data.html#the-td-element"><span class="secno">4.9.9 </span>The <code>td</code> element</a></li>
+     <li><a href="tabular-data.html#the-th-element"><span class="secno">4.9.10 </span>The <code>th</code> element</a></li>
+     <li><a href="tabular-data.html#attributes-common-to-td-and-th-elements"><span class="secno">4.9.11 </span>Attributes common to <code>td</code> and <code>th</code> elements</a></li>
+     <li><a href="tabular-data.html#examples-0"><span class="secno">4.9.12 </span>Examples</a></li></ol></li>
+   <li><a href="forms.html#forms"><span class="secno">4.10 </span>Forms</a>
+    <ol><li><a href="forms.html#the-form-element"><span class="secno">4.10.1 </span>The <code>form</code> element</a></li>
+     <li><a href="forms.html#the-fieldset-element"><span class="secno">4.10.2 </span>The <code>fieldset</code> element</a></li>
+     <li><a href="forms.html#the-legend-element"><span class="secno">4.10.3 </span>The <code>legend</code> element</a></li>
+     <li><a href="forms.html#the-label-element"><span class="secno">4.10.4 </span>The <code>label</code> element</a></li>
+     <li><a href="forms.html#the-input-element"><span class="secno">4.10.5 </span>The <code>input</code> element</a>
+      <ol><li><a href="forms.html#states-of-the-type-attribute"><span class="secno">4.10.5.1 </span>States of the <code title="attr-input-type">type</code> attribute</a>
+        <ol><li><a href="forms.html#hidden-state"><span class="secno">4.10.5.1.1 </span>Hidden state</a></li>
+         <li><a href="forms.html#text-state-and-search-state"><span class="secno">4.10.5.1.2 </span>Text state and Search state</a></li>
+         <li><a href="forms.html#telephone-state"><span class="secno">4.10.5.1.3 </span>Telephone state</a></li>
+         <li><a href="forms.html#url-state"><span class="secno">4.10.5.1.4 </span>URL state</a></li>
+         <li><a href="forms.html#e-mail-state"><span class="secno">4.10.5.1.5 </span>E-mail state</a></li>
+         <li><a href="forms.html#password-state"><span class="secno">4.10.5.1.6 </span>Password state</a></li>
+         <li><a href="forms.html#date-and-time-state"><span class="secno">4.10.5.1.7 </span>Date and Time state</a></li>
+         <li><a href="forms.html#date-state"><span class="secno">4.10.5.1.8 </span>Date state</a></li>
+         <li><a href="forms.html#month-state"><span class="secno">4.10.5.1.9 </span>Month state</a></li>
+         <li><a href="forms.html#week-state"><span class="secno">4.10.5.1.10 </span>Week state</a></li>
+         <li><a href="forms.html#time-state"><span class="secno">4.10.5.1.11 </span>Time state</a></li>
+         <li><a href="forms.html#local-date-and-time-state"><span class="secno">4.10.5.1.12 </span>Local Date and Time state</a></li>
+         <li><a href="forms.html#number-state"><span class="secno">4.10.5.1.13 </span>Number state</a></li>
+         <li><a href="forms.html#range-state"><span class="secno">4.10.5.1.14 </span>Range state</a></li>
+         <li><a href="forms.html#color-state"><span class="secno">4.10.5.1.15 </span>Color state</a></li>
+         <li><a href="forms.html#checkbox-state"><span class="secno">4.10.5.1.16 </span>Checkbox state</a></li>
+         <li><a href="forms.html#radio-button-state"><span class="secno">4.10.5.1.17 </span>Radio Button state</a></li>
+         <li><a href="forms.html#file-upload-state"><span class="secno">4.10.5.1.18 </span>File Upload state</a></li>
+         <li><a href="forms.html#submit-button-state"><span class="secno">4.10.5.1.19 </span>Submit Button state</a></li>
+         <li><a href="forms.html#image-button-state"><span class="secno">4.10.5.1.20 </span>Image Button state</a></li>
+         <li><a href="forms.html#reset-button-state"><span class="secno">4.10.5.1.21 </span>Reset Button state</a></li>
+         <li><a href="forms.html#button-state"><span class="secno">4.10.5.1.22 </span>Button state</a></li></ol></li>
+       <li><a href="forms.html#common-input-element-attributes"><span class="secno">4.10.5.2 </span>Common <code>input</code> element attributes</a>
+        <ol><li><a href="forms.html#the-autocomplete-attribute"><span class="secno">4.10.5.2.1 </span>The <code title="attr-input-autocomplete">autocomplete</code> attribute</a></li>
+         <li><a href="forms.html#the-list-attribute"><span class="secno">4.10.5.2.2 </span>The <code title="attr-input-list">list</code> attribute</a></li>
+         <li><a href="forms.html#the-readonly-attribute"><span class="secno">4.10.5.2.3 </span>The <code title="attr-input-readonly">readonly</code> attribute</a></li>
+         <li><a href="forms.html#the-size-attribute"><span class="secno">4.10.5.2.4 </span>The <code title="attr-input-size">size</code> attribute</a></li>
+         <li><a href="forms.html#the-required-attribute"><span class="secno">4.10.5.2.5 </span>The <code title="attr-input-required">required</code> attribute</a></li>
+         <li><a href="forms.html#the-multiple-attribute"><span class="secno">4.10.5.2.6 </span>The <code title="attr-input-multiple">multiple</code> attribute</a></li>
+         <li><a href="forms.html#the-maxlength-attribute"><span class="secno">4.10.5.2.7 </span>The <code title="attr-input-maxlength">maxlength</code> attribute</a></li>
+         <li><a href="forms.html#the-pattern-attribute"><span class="secno">4.10.5.2.8 </span>The <code title="attr-input-pattern">pattern</code> attribute</a></li>
+         <li><a href="forms.html#the-min-and-max-attributes"><span class="secno">4.10.5.2.9 </span>The <code title="attr-input-min">min</code> and <code title="attr-input-max">max</code> attributes</a></li>
+         <li><a href="forms.html#the-step-attribute"><span class="secno">4.10.5.2.10 </span>The <code title="attr-input-step">step</code> attribute</a></li>
+         <li><a href="forms.html#the-placeholder-attribute"><span class="secno">4.10.5.2.11 </span>The <code title="attr-input-placeholder">placeholder</code> attribute</a></li></ol></li>
+       <li><a href="forms.html#common-input-element-apis"><span class="secno">4.10.5.3 </span>Common <code>input</code> element APIs</a></li></ol></li>
+     <li><a href="forms.html#the-button-element"><span class="secno">4.10.6 </span>The <code>button</code> element</a></li>
+     <li><a href="forms.html#the-select-element"><span class="secno">4.10.7 </span>The <code>select</code> element</a></li>
+     <li><a href="forms.html#the-datalist-element"><span class="secno">4.10.8 </span>The <code>datalist</code> element</a></li>
+     <li><a href="forms.html#the-optgroup-element"><span class="secno">4.10.9 </span>The <code>optgroup</code> element</a></li>
+     <li><a href="forms.html#the-option-element"><span class="secno">4.10.10 </span>The <code>option</code> element</a></li>
+     <li><a href="forms.html#the-textarea-element"><span class="secno">4.10.11 </span>The <code>textarea</code> element</a></li>
+     <li><a href="forms.html#the-keygen-element"><span class="secno">4.10.12 </span>The <code>keygen</code> element</a></li>
+     <li><a href="forms.html#the-output-element"><span class="secno">4.10.13 </span>The <code>output</code> element</a></li>
+     <li><a href="forms.html#association-of-controls-and-forms"><span class="secno">4.10.14 </span>Association of controls and forms</a></li>
+     <li><a href="forms.html#attributes-common-to-form-controls"><span class="secno">4.10.15 </span>Attributes common to form controls</a>
+      <ol><li><a href="forms.html#naming-form-controls"><span class="secno">4.10.15.1 </span>Naming form controls</a></li>
+       <li><a href="forms.html#enabling-and-disabling-form-controls"><span class="secno">4.10.15.2 </span>Enabling and disabling form controls</a></li>
+       <li><a href="forms.html#autofocusing-a-form-control"><span class="secno">4.10.15.3 </span>Autofocusing a form control</a></li>
+       <li><a href="forms.html#limiting-user-input-length"><span class="secno">4.10.15.4 </span>Limiting user input length</a></li>
+       <li><a href="forms.html#form-submission-0"><span class="secno">4.10.15.5 </span>Form submission</a></li></ol></li>
+     <li><a href="forms.html#constraints"><span class="secno">4.10.16 </span>Constraints</a>
+      <ol><li><a href="forms.html#definitions"><span class="secno">4.10.16.1 </span>Definitions</a></li>
+       <li><a href="forms.html#the-constraint-validation-api"><span class="secno">4.10.16.2 </span>The constraint validation API</a></li></ol></li>
+     <li><a href="forms.html#form-submission"><span class="secno">4.10.17 </span>Form submission</a></li></ol></li>
+   <li><a href="interactive-elements.html#interactive-elements"><span class="secno">4.11 </span>Interactive elements</a>
+    <ol><li><a href="interactive-elements.html#the-details-element"><span class="secno">4.11.1 </span>The <code>details</code> element</a></li>
+     <li><a href="interactive-elements.html#the-command"><span class="secno">4.11.2 </span>The <code>command</code> element</a></li>
+     <li><a href="interactive-elements.html#menus"><span class="secno">4.11.3 </span>The <code>menu</code> element</a>
+      <ol><li><a href="interactive-elements.html#menus-intro"><span class="secno">4.11.3.1 </span>Introduction</a></li>
+       <li><a href="interactive-elements.html#context-menus"><span class="secno">4.11.3.2 </span>Context menus</a></li></ol></li>
+     <li><a href="interactive-elements.html#commands"><span class="secno">4.11.4 </span>Commands</a></li></ol></li>
+   <li><a href="interactive-elements.html#common-idioms-without-dedicated-elements"><span class="secno">4.12 </span>Common idioms without dedicated elements</a>
+    <ol><li><a href="interactive-elements.html#tag-clouds"><span class="secno">4.12.1 </span>Tag clouds</a></li>
+     <li><a href="interactive-elements.html#conversations"><span class="secno">4.12.2 </span>Conversations</a></li>
+     <li><a href="interactive-elements.html#footnotes"><span class="secno">4.12.3 </span>Footnotes</a></li></ol></li></ol></li>
+ <li><a href="microdata.html#microdata"><span class="secno">5 </span>Microdata</a>
+  <ol><li><a href="microdata.html#introduction-1"><span class="secno">5.1 </span>Introduction</a>
+    <ol><li><a href="microdata.html#overview"><span class="secno">5.1.1 </span>Overview</a></li>
+     <li><a href="microdata.html#the-basic-syntax"><span class="secno">5.1.2 </span>The basic syntax</a></li>
+     <li><a href="microdata.html#typed-items"><span class="secno">5.1.3 </span>Typed items</a></li>
+     <li><a href="microdata.html#global-identifiers-for-items"><span class="secno">5.1.4 </span>Global identifiers for items</a></li>
+     <li><a href="microdata.html#selecting-names-when-defining-vocabularies"><span class="secno">5.1.5 </span>Selecting names when defining vocabularies</a></li>
+     <li><a href="microdata.html#using-the-microdata-dom-api"><span class="secno">5.1.6 </span>Using the microdata DOM API</a></li></ol></li>
+   <li><a href="microdata.html#encoding-microdata"><span class="secno">5.2 </span>Encoding microdata</a>
+    <ol><li><a href="microdata.html#the-microdata-model"><span class="secno">5.2.1 </span>The microdata model</a></li>
+     <li><a href="microdata.html#items"><span class="secno">5.2.2 </span>Items</a></li>
+     <li><a href="microdata.html#names:-the-itemprop-attribute"><span class="secno">5.2.3 </span>Names: the <code>itemprop</code> attribute</a></li>
+     <li><a href="microdata.html#values"><span class="secno">5.2.4 </span>Values</a></li>
+     <li><a href="microdata.html#associating-names-with-items"><span class="secno">5.2.5 </span>Associating names with items</a></li></ol></li>
+   <li><a href="microdata.html#microdata-dom-api"><span class="secno">5.3 </span>Microdata DOM API</a></li></ol></li>
+ <li><a href="browsers.html#browsers"><span class="secno">6 </span>Web browsers</a>
+  <ol><li><a href="browsers.html#windows"><span class="secno">6.1 </span>Browsing contexts</a>
+    <ol><li><a href="browsers.html#nested-browsing-contexts"><span class="secno">6.1.1 </span>Nested browsing contexts</a>
+      <ol><li><a href="browsers.html#navigating-nested-browsing-contexts-in-the-dom"><span class="secno">6.1.1.1 </span>Navigating nested browsing contexts in the DOM</a></li></ol></li>
+     <li><a href="browsers.html#auxiliary-browsing-contexts"><span class="secno">6.1.2 </span>Auxiliary browsing contexts</a>
+      <ol><li><a href="browsers.html#navigating-auxiliary-browsing-contexts-in-the-dom"><span class="secno">6.1.2.1 </span>Navigating auxiliary browsing contexts in the DOM</a></li></ol></li>
+     <li><a href="browsers.html#secondary-browsing-contexts"><span class="secno">6.1.3 </span>Secondary browsing contexts</a></li>
+     <li><a href="browsers.html#browsing-context-names"><span class="secno">6.1.4 </span>Browsing context names</a></li></ol></li>
+   <li><a href="browsers.html#the-window-object"><span class="secno">6.2 </span>The <code>Window</code> object</a>
+    <ol><li><a href="browsers.html#apis-for-creating-and-navigating-browsing-contexts-by-name"><span class="secno">6.2.1 </span>APIs for creating and navigating browsing contexts by name</a></li>
+     <li><a href="browsers.html#accessing-other-browsing-contexts"><span class="secno">6.2.2 </span>Accessing other browsing contexts</a></li>
+     <li><a href="browsers.html#named-access-on-the-window-object"><span class="secno">6.2.3 </span>Named access on the <code>Window</code> object</a></li>
+     <li><a href="browsers.html#browser-interface-elements"><span class="secno">6.2.4 </span>Browser interface elements</a></li>
+     <li><a href="browsers.html#relaxing-the-same-origin-restriction"><span class="secno">6.2.5 </span>Relaxing the same-origin restriction</a></li></ol></li>
+   <li><a href="browsers.html#scripting"><span class="secno">6.3 </span>Scripting</a>
+    <ol><li><a href="browsers.html#introduction-2"><span class="secno">6.3.1 </span>Introduction</a></li>
+     <li><a href="browsers.html#events"><span class="secno">6.3.2 </span>Events</a></li></ol></li>
+   <li><a href="browsers.html#timers"><span class="secno">6.4 </span>Timers</a></li>
+   <li><a href="browsers.html#user-prompts"><span class="secno">6.5 </span>User prompts</a>
+    <ol><li><a href="browsers.html#simple-dialogs"><span class="secno">6.5.1 </span>Simple dialogs</a></li>
+     <li><a href="browsers.html#printing"><span class="secno">6.5.2 </span>Printing</a></li>
+     <li><a href="browsers.html#dialogs-implemented-using-separate-documents"><span class="secno">6.5.3 </span>Dialogs implemented using separate documents</a></li></ol></li>
+   <li><a href="browsers.html#system-state-and-capabilities"><span class="secno">6.6 </span>System state and capabilities</a>
+    <ol><li><a href="browsers.html#client-identification"><span class="secno">6.6.1 </span>Client identification</a></li>
+     <li><a href="browsers.html#custom-handlers"><span class="secno">6.6.2 </span>Custom scheme and content handlers</a></li>
+     <li><a href="browsers.html#manually-releasing-the-storage-mutex"><span class="secno">6.6.3 </span>Manually releasing the storage mutex</a></li></ol></li>
+   <li><a href="offline.html#offline"><span class="secno">6.7 </span>Offline Web applications</a>
+    <ol><li><a href="offline.html#introduction-3"><span class="secno">6.7.1 </span>Introduction</a>
+      <ol><li><a href="offline.html#event-summary"><span class="secno">6.7.1.1 </span>Event summary</a></li></ol></li>
+     <li><a href="offline.html#manifests"><span class="secno">6.7.2 </span>The cache manifest syntax</a>
+      <ol><li><a href="offline.html#a-sample-manifest"><span class="secno">6.7.2.1 </span>A sample manifest</a></li>
+       <li><a href="offline.html#writing-cache-manifests"><span class="secno">6.7.2.2 </span>Writing cache manifests</a></li></ol></li>
+     <li><a href="offline.html#expiring-application-caches"><span class="secno">6.7.3 </span>Expiring application caches</a></li>
+     <li><a href="offline.html#application-cache-api"><span class="secno">6.7.4 </span>Application cache API</a></li>
+     <li><a href="offline.html#browser-state"><span class="secno">6.7.5 </span>Browser state</a></li></ol></li>
+   <li><a href="history.html#history"><span class="secno">6.8 </span>Session history and navigation</a>
+    <ol><li><a href="history.html#the-session-history-of-browsing-contexts"><span class="secno">6.8.1 </span>The session history of browsing contexts</a></li>
+     <li><a href="history.html#the-history-interface"><span class="secno">6.8.2 </span>The <code>History</code> interface</a></li>
+     <li><a href="history.html#activating-state-object-entries"><span class="secno">6.8.3 </span>Activating state object entries</a></li>
+     <li><a href="history.html#the-location-interface"><span class="secno">6.8.4 </span>The <code>Location</code> interface</a></li></ol></li>
+   <li><a href="history.html#browsing-the-web"><span class="secno">6.9 </span>Browsing the Web</a>
+    <ol><li><a href="history.html#unloading-documents"><span class="secno">6.9.1 </span>Unloading documents</a></li>
+     <li><a href="history.html#aborting-a-document-load"><span class="secno">6.9.2 </span>Aborting a document load</a></li></ol></li>
+   <li><a href="history.html#links"><span class="secno">6.10 </span>Links</a>
+    <ol><li><a href="history.html#hyperlink-elements"><span class="secno">6.10.1 </span>Hyperlink elements</a></li>
+     <li><a href="history.html#linkTypes"><span class="secno">6.10.2 </span>Link types</a>
+      <ol><li><a href="history.html#link-type-alternate"><span class="secno">6.10.2.1 </span>Link type "<code>alternate</code>"</a></li>
+       <li><a href="history.html#link-type-archives"><span class="secno">6.10.2.2 </span>Link type "<code>archives</code>"</a></li>
+       <li><a href="history.html#link-type-author"><span class="secno">6.10.2.3 </span>Link type "<code>author</code>"</a></li>
+       <li><a href="history.html#link-type-bookmark"><span class="secno">6.10.2.4 </span>Link type "<code>bookmark</code>"</a></li>
+       <li><a href="history.html#link-type-external"><span class="secno">6.10.2.5 </span>Link type "<code>external</code>"</a></li>
+       <li><a href="history.html#link-type-feed"><span class="secno">6.10.2.6 </span>Link type "<code>feed</code>"</a></li>
+       <li><a href="history.html#link-type-help"><span class="secno">6.10.2.7 </span>Link type "<code>help</code>"</a></li>
+       <li><a href="history.html#rel-icon"><span class="secno">6.10.2.8 </span>Link type "<code>icon</code>"</a></li>
+       <li><a href="history.html#link-type-license"><span class="secno">6.10.2.9 </span>Link type "<code>license</code>"</a></li>
+       <li><a href="history.html#link-type-nofollow"><span class="secno">6.10.2.10 </span>Link type "<code>nofollow</code>"</a></li>
+       <li><a href="history.html#link-type-noreferrer"><span class="secno">6.10.2.11 </span>Link type "<code>noreferrer</code>"</a></li>
+       <li><a href="history.html#link-type-pingback"><span class="secno">6.10.2.12 </span>Link type "<code>pingback</code>"</a></li>
+       <li><a href="history.html#link-type-prefetch"><span class="secno">6.10.2.13 </span>Link type "<code>prefetch</code>"</a></li>
+       <li><a href="history.html#link-type-search"><span class="secno">6.10.2.14 </span>Link type "<code>search</code>"</a></li>
+       <li><a href="history.html#link-type-stylesheet"><span class="secno">6.10.2.15 </span>Link type "<code>stylesheet</code>"</a></li>
+       <li><a href="history.html#link-type-sidebar"><span class="secno">6.10.2.16 </span>Link type "<code>sidebar</code>"</a></li>
+       <li><a href="history.html#link-type-tag"><span class="secno">6.10.2.17 </span>Link type "<code>tag</code>"</a></li>
+       <li><a href="history.html#hierarchical-link-types"><span class="secno">6.10.2.18 </span>Hierarchical link types</a>
+        <ol><li><a href="history.html#link-type-index"><span class="secno">6.10.2.18.1 </span>Link type "<code>index</code>"</a></li>
+         <li><a href="history.html#link-type-up"><span class="secno">6.10.2.18.2 </span>Link type "<code>up</code>"</a></li></ol></li>
+       <li><a href="history.html#sequential-link-types"><span class="secno">6.10.2.19 </span>Sequential link types</a>
+        <ol><li><a href="history.html#link-type-first"><span class="secno">6.10.2.19.1 </span>Link type "<code>first</code>"</a></li>
+         <li><a href="history.html#link-type-last"><span class="secno">6.10.2.19.2 </span>Link type "<code>last</code>"</a></li>
+         <li><a href="history.html#link-type-next"><span class="secno">6.10.2.19.3 </span>Link type "<code>next</code>"</a></li>
+         <li><a href="history.html#link-type-prev"><span class="secno">6.10.2.19.4 </span>Link type "<code>prev</code>"</a></li></ol></li>
+       <li><a href="history.html#other-link-types"><span class="secno">6.10.2.20 </span>Other link types</a></li></ol></li></ol></li></ol></li>
+ <li><a href="editing.html#editing"><span class="secno">7 </span>User Interaction</a>
+  <ol><li><a href="editing.html#the-hidden-attribute"><span class="secno">7.1 </span>The <code>hidden</code> attribute</a></li>
+   <li><a href="editing.html#activation"><span class="secno">7.2 </span>Activation</a></li>
+   <li><a href="editing.html#scrolling-elements-into-view"><span class="secno">7.3 </span>Scrolling elements into view</a></li>
+   <li><a href="editing.html#focus"><span class="secno">7.4 </span>Focus</a>
+    <ol><li><a href="editing.html#sequential-focus-navigation"><span class="secno">7.4.1 </span>Sequential focus navigation</a></li>
+     <li><a href="editing.html#document-level-focus-apis"><span class="secno">7.4.2 </span>Document-level focus APIs</a></li>
+     <li><a href="editing.html#element-level-focus-apis"><span class="secno">7.4.3 </span>Element-level focus APIs</a></li></ol></li>
+   <li><a href="editing.html#the-accesskey-attribute"><span class="secno">7.5 </span>The <code>accesskey</code> attribute</a></li>
+   <li><a href="editing.html#selection"><span class="secno">7.6 </span>The text selection APIs</a>
+    <ol><li><a href="editing.html#documentSelection"><span class="secno">7.6.1 </span>APIs for the browsing context selection</a></li>
+     <li><a href="editing.html#textFieldSelection"><span class="secno">7.6.2 </span>APIs for the text field selections</a></li></ol></li>
+   <li><a href="editing.html#contenteditable"><span class="secno">7.7 </span>The <code title="attr-contenteditable">contenteditable</code> attribute</a>
+    <ol><li><a href="editing.html#making-entire-documents-editable"><span class="secno">7.7.1 </span>Making entire documents editable</a></li></ol></li>
+   <li><a href="editing.html#spelling-and-grammar-checking"><span class="secno">7.8 </span>Spelling and grammar checking</a></li>
+   <li><a href="editing.html#dnd"><span class="secno">7.9 </span>Drag and drop</a>
+    <ol><li><a href="editing.html#introduction-4"><span class="secno">7.9.1 </span>Introduction</a></li>
+     <li><a href="editing.html#the-dragevent-and-datatransfer-interfaces"><span class="secno">7.9.2 </span>The <code>DragEvent</code> and <code>DataTransfer</code> interfaces</a></li>
+     <li><a href="editing.html#events-fired-during-a-drag-and-drop-action"><span class="secno">7.9.3 </span>Events fired during a drag-and-drop action</a></li>
+     <li><a href="editing.html#the-draggable-attribute"><span class="secno">7.9.4 </span>The <code>draggable</code> attribute</a></li>
+     <li><a href="editing.html#copy-and-paste"><span class="secno">7.9.5 </span>Copy and paste</a></li></ol></li>
+   <li><a href="editing.html#undo"><span class="secno">7.10 </span>Undo history</a>
+    <ol><li><a href="editing.html#the-undomanager-interface"><span class="secno">7.10.1 </span>The <code>UndoManager</code> interface</a></li>
+     <li><a href="editing.html#the-undomanagerevent-interface-and-the-undo-and-redo-events"><span class="secno">7.10.2 </span>The <code>UndoManagerEvent</code> interface and the <code title="event-undo">undo</code> and <code title="event-redo">redo</code> events</a></li></ol></li>
+   <li><a href="editing.html#editing-apis"><span class="secno">7.11 </span>Editing APIs</a></li></ol></li>
+ <li><a href="comms.html#comms"><span class="secno">8 </span>Communication</a>
+  <ol><li><a href="comms.html#event-definitions"><span class="secno">8.1 </span>Event definitions</a></li>
+   <li><a href="comms.html#crossDocumentMessages"><span class="secno">8.2 </span>Cross-document messaging</a>
+    <ol><li><a href="comms.html#introduction-5"><span class="secno">8.2.1 </span>Introduction</a></li>
+     <li><a href="comms.html#security-4"><span class="secno">8.2.2 </span>Security</a></li>
+     <li><a href="comms.html#posting-messages"><span class="secno">8.2.3 </span>Posting messages</a></li></ol></li>
+   <li><a href="comms.html#channel-messaging"><span class="secno">8.3 </span>Channel messaging</a>
+    <ol><li><a href="comms.html#message-channels"><span class="secno">8.3.1 </span>Message channels</a></li>
+     <li><a href="comms.html#message-ports"><span class="secno">8.3.2 </span>Message ports</a>
+      <ol><li><a href="comms.html#ports-and-garbage-collection"><span class="secno">8.3.2.1 </span>Ports and garbage collection</a></li></ol></li></ol></li></ol></li>
+ <li><a href="syntax.html#syntax"><span class="secno">9 </span>The HTML syntax</a>
+  <ol><li><a href="syntax.html#writing"><span class="secno">9.1 </span>Writing HTML documents</a>
+    <ol><li><a href="syntax.html#the-doctype"><span class="secno">9.1.1 </span>The DOCTYPE</a></li>
+     <li><a href="syntax.html#elements-0"><span class="secno">9.1.2 </span>Elements</a>
+      <ol><li><a href="syntax.html#start-tags"><span class="secno">9.1.2.1 </span>Start tags</a></li>
+       <li><a href="syntax.html#end-tags"><span class="secno">9.1.2.2 </span>End tags</a></li>
+       <li><a href="syntax.html#attributes"><span class="secno">9.1.2.3 </span>Attributes</a></li>
+       <li><a href="syntax.html#optional-tags"><span class="secno">9.1.2.4 </span>Optional tags</a></li>
+       <li><a href="syntax.html#element-restrictions"><span class="secno">9.1.2.5 </span>Restrictions on content models</a></li>
+       <li><a href="syntax.html#cdata-rcdata-restrictions"><span class="secno">9.1.2.6 </span>Restrictions on the contents of raw text and RCDATA elements</a></li></ol></li>
+     <li><a href="syntax.html#text-0"><span class="secno">9.1.3 </span>Text</a>
+      <ol><li><a href="syntax.html#newlines"><span class="secno">9.1.3.1 </span>Newlines</a></li></ol></li>
+     <li><a href="syntax.html#character-references"><span class="secno">9.1.4 </span>Character references</a></li>
+     <li><a href="syntax.html#cdata-sections"><span class="secno">9.1.5 </span>CDATA sections</a></li>
+     <li><a href="syntax.html#comments"><span class="secno">9.1.6 </span>Comments</a></li></ol></li>
+   <li><a href="named-character-references.html#named-character-references"><span class="secno">9.2 </span>Named character references</a></li></ol></li>
+ <li><a href="the-xhtml-syntax.html#the-xhtml-syntax"><span class="secno">10 </span>The XHTML syntax</a></li>
+ <li><a href="obsolete.html#obsolete"><span class="secno">11 </span>Obsolete features</a>
+  <ol><li><a href="obsolete.html#obsolete-but-conforming-features"><span class="secno">11.1 </span>Obsolete but conforming features</a></li>
+   <li><a href="obsolete.html#non-conforming-features"><span class="secno">11.2 </span>Non-conforming features</a></li></ol></li>
+ <li><a class="no-num" href="iana-considerations.html#iana-considerations">IANA considerations</a>
+  <ol><li><a href="iana-considerations.html#text-html"><span class="secno">11.1 </span><code>text/html</code></a></li>
+   <li><a href="iana-considerations.html#application-xhtml-xml"><span class="secno">11.2 </span><code>application/xhtml+xml</code></a></li>
+   <li><a href="iana-considerations.html#text-cache-manifest"><span class="secno">11.3 </span><code>text/cache-manifest</code></a></li>
+   <li><a href="iana-considerations.html#text-ping"><span class="secno">11.4 </span><code>text/ping</code></a></li>
+   <li><a href="iana-considerations.html#application-microdata-json"><span class="secno">11.5 </span><code>application/microdata+json</code></a></li></ol></li>
+ <li><a class="no-num" href="index.html#index">Index</a></li>
+ <li><a class="no-num" href="references.html#references">References</a></li>
+ <li><a class="no-num" href="acknowledgements.html#acknowledgements">Acknowledgements</a></li></ol><!--end-toc--></body></html>
\ No newline at end of file

Index: dom.html
===================================================================
RCS file: /sources/public/html5/spec-author-view/dom.html,v
retrieving revision 1.304
retrieving revision 1.305
diff -u -d -r1.304 -r1.305
--- dom.html	5 Oct 2009 09:31:02 -0000	1.304
+++ dom.html	5 Oct 2009 09:36:47 -0000	1.305
@@ -0,0 +1,1353 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<!DOCTYPE html>
+<!-- when publishing, change bits marked ZZZ --><html lang="en-US-x-Hixie"><head><title>3 Semantics, structure, and APIs of HTML documents &#8212; HTML 5</title><style type="text/css">
+   pre { margin-left: 2em; white-space: pre-wrap; }
+   h2 { margin: 3em 0 1em 0; }
+   h3 { margin: 2.5em 0 1em 0; }
+   h4 { margin: 2.5em 0 0.75em 0; }
+   h5, h6 { margin: 2.5em 0 1em; }
+   h1 + h2, h1 + h2 + h2 { margin: 0.75em 0 0.75em; }
+   h2 + h3, h3 + h4, h4 + h5, h5 + h6 { margin-top: 0.5em; }
+   p { margin: 1em 0; }
[...1323 lines suppressed...]
+   <li><code><a href="text-level-semantics.html#the-time-element">time</a></code></li>
+   <li><code><a href="text-level-semantics.html#the-var-element">var</a></code></li>
+   <li><code><a href="video.html#video">video</a></code></li>
+   <li><a href="#text-content" title="text content">Text</a></li>
+  </ul><p>As a general rule, elements whose content model allows any
+  <a href="#phrasing-content">phrasing content</a> should have either at least one
+  descendant <a href="infrastructure.html#text-node">text node</a> that is not <a href="#inter-element-whitespace">inter-element
+  whitespace</a>, or at least one descendant element node that is
+  <a href="embedded-content-0.html#embedded-content">embedded content</a>. For the purposes of this requirement,
+  nodes that are descendants of <code><a href="text-level-semantics.html#the-del-element">del</a></code> elements must not be
+  counted as contributing to the ancestors of the <code><a href="text-level-semantics.html#the-del-element">del</a></code>
+  element.</p><p class="note">Most elements that are categorized as phrasing
+  content can only contain elements that are themselves categorized as
+  phrasing content, not any flow content.</p><p><dfn id="text-content" title="text content">Text</dfn>, in the context of content
+  models, means <a href="infrastructure.html#text-node" title="text node">text nodes</a>. <a href="#text-content" title="text content">Text</a> is sometimes used as a content
+  model on its own, but is also <a href="#phrasing-content">phrasing content</a>, and can
+  be <a href="#inter-element-whitespace">inter-element whitespace</a> (if the <a href="infrastructure.html#text-node" title="text
+  node">text nodes</a> are empty or contain just <a href="#space-character" title="space
+  character">space characters</a>).</p></body></html>
\ No newline at end of file

Index: the-canvas-element.html
===================================================================
RCS file: /sources/public/html5/spec-author-view/the-canvas-element.html,v
retrieving revision 1.303
retrieving revision 1.304
diff -u -d -r1.303 -r1.304
--- the-canvas-element.html	5 Oct 2009 09:31:02 -0000	1.303
+++ the-canvas-element.html	5 Oct 2009 09:36:47 -0000	1.304
@@ -712,4 +712,869 @@
 
    </dd>
 
-   <dt><var title="">gradient</var> = <var title="">context</var> . <code title="dom-context-2d-createRadialGradient"><a href="#dom-context-2d-createradialgradient">createRadialGradient</a></code>(<var title="">x0</var>, <var title="">y0</var>, <var title="">r0</var>, <var title="">x1</var>, <var title="">y1</var>, <var title="">r1</var>)
\ No newline at end of file
+   <dt><var title="">gradient</var> = <var title="">context</var> . <code title="dom-context-2d-createRadialGradient"><a href="#dom-context-2d-createradialgradient">createRadialGradient</a></code>(<var title="">x0</var>, <var title="">y0</var>, <var title="">r0</var>, <var title="">x1</var>, <var title="">y1</var>, <var title="">r1</var>)</dt>
+
+   <dd>
+
+    <p>Returns a <code><a href="#canvasgradient">CanvasGradient</a></code> object that represents a
+    radial gradient that paints along the cone given by the circles
+    represented by the arguments.</p>
+
+    <p>If any of the arguments are not finite numbers, throws a
+    <code><a href="infrastructure.html#not_supported_err">NOT_SUPPORTED_ERR</a></code> exception. If either of the radii
+    are negative throws an <code><a href="infrastructure.html#index_size_err">INDEX_SIZE_ERR</a></code> exception.</p>
+
+   </dd>
+
+  </dl><hr><p>Patterns are represented by objects implementing the opaque
+  <code><a href="#canvaspattern">CanvasPattern</a></code> interface.</p><dl class="domintro"><dt><var title="">pattern</var> = <var title="">context</var> . <code title="dom-context-2d-createPattern"><a href="#dom-context-2d-createpattern">createPattern</a></code>(<var title="">image</var>, <var title="">repetition</var>)</dt>
+
+   <dd>
+
+    <p>Returns a <code><a href="#canvaspattern">CanvasPattern</a></code> object that uses the given image
+    and repeats in the direction(s) given by the <var title="">repetition</var> argument.</p>
+
+    <p>The allowed values for <code title="">repeat</code> are <code title="">repeat</code> (both directions), <code title="">repeat-x</code> (horizontal only), <code title="">repeat-y</code> (vertical only), and <code title="">no-repeat</code> (neither). If the <var title="">repetition</var> argument is empty or null, the value
+    <code title="">repeat</code> is used.</p>
+
+    <p>If the first argument isn't an <code><a href="text-level-semantics.html#the-img-element">img</a></code>,
+    <code><a href="#the-canvas-element">canvas</a></code>, or <code><a href="video.html#video">video</a></code> element, throws a
+    <code><a href="infrastructure.html#type_mismatch_err">TYPE_MISMATCH_ERR</a></code> exception. If the image has no
+    image data, throws an <code><a href="infrastructure.html#invalid_state_err">INVALID_STATE_ERR</a></code> exception. If
+    the second argument isn't one of the allowed values, throws a
+    <code><a href="infrastructure.html#syntax_err">SYNTAX_ERR</a></code> exception. If the image isn't yet fully
+    decoded, then the method returns null.</p>
+
+   </dd>
+
+  </dl><h6 id="line-styles"><span class="secno">4.8.11.1.5 </span>Line styles</h6><p class="XXX annotation"><b>Status: </b><i>Awaiting implementation feedback</i></p><dl class="domintro"><dt><var title="">context</var> . <code title="dom-context-2d-lineWidth"><a href="#dom-context-2d-linewidth">lineWidth</a></code> [ = <var title="">value</var> ]</dt>
+
+   <dd>
+
+    <p>Returns the current line width.</p>
+
+    <p>Can be set, to change the line width. Values that are not
+    finite values greater than zero are ignored.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-lineCap"><a href="#dom-context-2d-linecap">lineCap</a></code> [ = <var title="">value</var> ]</dt>
+
+   <dd>
+
+    <p>Returns the current line cap style.</p>
+
+    <p>Can be set, to change the line cap style.</p>
+
+    <p>The possible line cap styles are <code>butt</code>,
+    <code>round</code>, and <code>square</code>. Other values are
+    ignored.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-lineJoin"><a href="#dom-context-2d-linejoin">lineJoin</a></code> [ = <var title="">value</var> ]</dt>
+
+   <dd>
+
+    <p>Returns the current line join style.</p>
+
+    <p>Can be set, to change the line join style.</p>
+
+    <p>The possible line join styles are <code>bevel</code>,
+    <code>round</code>, and <code>miter</code>. Other values are
+    ignored.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-miterLimit"><a href="#dom-context-2d-miterlimit">miterLimit</a></code> [ = <var title="">value</var> ]</dt>
+
+   <dd>
+
+    <p>Returns the current miter limit ratio.</p>
+
+    <p>Can be set, to change the miter limit ratio. Values that are
+    not finite values greater than zero are ignored.</p>
+
+   </dd>
+
+  </dl><h6 id="shadows"><span class="secno">4.8.11.1.6 </span><dfn>Shadows</dfn></h6><p class="XXX annotation"><b>Status: </b><i>Last call for comments</i></p><p>All drawing operations are affected by the four global shadow
+  attributes.</p><dl class="domintro"><dt><var title="">context</var> . <code title="dom-context-2d-shadowColor"><a href="#dom-context-2d-shadowcolor">shadowColor</a></code> [ = <var title="">value</var> ]</dt>
+
+   <dd>
+
+    <p>Returns the current shadow color.</p>
+
+    <p>Can be set, to change the shadow color. Values that cannot be parsed as CSS colors are ignored.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-shadowOffsetX"><a href="#dom-context-2d-shadowoffsetx">shadowOffsetX</a></code> [ = <var title="">value</var> ]</dt>
+   <dt><var title="">context</var> . <code title="dom-context-2d-shadowOffsetY"><a href="#dom-context-2d-shadowoffsety">shadowOffsetY</a></code> [ = <var title="">value</var> ]</dt>
+
+   <dd>
+
+    <p>Returns the current shadow offset.</p>
+
+    <p>Can be set, to change the shadow offset. Values that are not finite numbers are ignored.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-shadowBlur"><a href="#dom-context-2d-shadowblur">shadowBlur</a></code> [ = <var title="">value</var> ]</dt>
+
+   <dd>
+
+    <p>Returns the current level of blur applied to shadows.</p>
+
+    <p>Can be set, to change the blur level. Values that are not finite numbers greater than or equal to zero are ignored.</p>
+
+   </dd>
+
+  </dl><h6 id="simple-shapes-rectangles"><span class="secno">4.8.11.1.7 </span>Simple shapes (rectangles)</h6><p>There are three methods that immediately draw rectangles to the
+  bitmap. They each take four arguments; the first two give the <var title="">x</var> and <var title="">y</var> coordinates of the top
+  left of the rectangle, and the second two give the width <var title="">w</var> and height <var title="">h</var> of the rectangle,
+  respectively.</p><dl class="domintro"><dt><var title="">context</var> . <code title="dom-context-2d-clearRect"><a href="#dom-context-2d-clearrect">clearRect</a></code>(<var title="">x</var>, <var title="">y</var>, <var title="">w</var>, <var title="">h</var>)</dt>
+
+   <dd>
+
+    <p>Clears all pixels on the canvas in the given rectangle to transparent black.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-fillRect"><a href="#dom-context-2d-fillrect">fillRect</a></code>(<var title="">x</var>, <var title="">y</var>, <var title="">w</var>, <var title="">h</var>)</dt>
+
+   <dd>
+
+    <p>Paints the given rectangle onto the canvas, using the current fill style.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-strokeRect"><a href="#dom-context-2d-strokerect">strokeRect</a></code>(<var title="">x</var>, <var title="">y</var>, <var title="">w</var>, <var title="">h</var>)</dt>
+
+   <dd>
+
+    <p>Paints the box that outlines the given rectangle onto the canvas, using the current stroke style.</p>
+
+   </dd>
+
+  </dl><h6 id="complex-shapes-paths"><span class="secno">4.8.11.1.8 </span>Complex shapes (paths)</h6><p>The context always has a current path. There is only one current
+  path, it is not part of the <a href="#drawing-state">drawing state</a>.</p><p>A <dfn id="path">path</dfn> has a list of zero or more subpaths. Each
+  subpath consists of a list of one or more points, connected by
+  straight or curved lines, and a flag indicating whether the subpath
+  is closed or not. A closed subpath is one where the last point of
+  the subpath is connected to the first point of the subpath by a
+  straight line. Subpaths with fewer than two points are ignored when
+  painting the path.</p><dl class="domintro"><dt><var title="">context</var> . <code title="dom-context-2d-beginPath"><a href="#dom-context-2d-beginpath">beginPath</a></code>()</dt>
+
+   <dd>
+
+    <p>Resets the current path.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-moveTo"><a href="#dom-context-2d-moveto">moveTo</a></code>(<var title="">x</var>, <var title="">y</var>)</dt>
+
+   <dd>
+
+    <p>Creates a new subpath with the given point.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-closePath"><a href="#dom-context-2d-closepath">closePath</a></code>()</dt>
+
+   <dd>
+
+    <p>Marks the current subpath as closed, and starts a new subpath with a point the same as the start and end of the newly closed subpath.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-lineTo"><a href="#dom-context-2d-lineto">lineTo</a></code>(<var title="">x</var>, <var title="">y</var>)</dt>
+
+   <dd>
+
+    <p>Adds the given point to the current subpath, connected to the previous one by a straight line.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-quadraticCurveTo"><a href="#dom-context-2d-quadraticcurveto">quadraticCurveTo</a></code>(<var title="">cpx</var>, <var title="">cpy</var>, <var title="">x</var>, <var title="">y</var>)</dt>
+
+   <dd>
+
+    <p>Adds the given point to the current path, connected to the previous one by a quadratic B&#233;zier curve with the given control point.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-bezierCurveTo"><a href="#dom-context-2d-beziercurveto">bezierCurveTo</a></code>(<var title="">cp1x</var>, <var title="">cp1y</var>, <var title="">cp2x</var>, <var title="">cp2y</var>, <var title="">x</var>, <var title="">y</var>)</dt>
+
+   <dd>
+
+    <p>Adds the given point to the current path, connected to the previous one by a cubic B&#233;zier curve with the given control points.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-arcTo"><a href="#dom-context-2d-arcto">arcTo</a></code>(<var title="">x1</var>, <var title="">y1</var>, <var title="">x2</var>, <var title="">y2</var>, <var title="">radius</var>)</dt>
+
+   <dd>
+
+    <p>Adds a point to the current path, connected to the previous one
+    by a straight line, then adds a second point to the current path,
+    connected to the previous one by an arc whose properties are
+    described by the arguments.</p>
+
+    <p>Throws an <code><a href="infrastructure.html#index_size_err">INDEX_SIZE_ERR</a></code> exception if the given
+    radius is negative.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-arc"><a href="#dom-context-2d-arc">arc</a></code>(<var title="">x</var>, <var title="">y</var>, <var title="">radius</var>, <var title="">startAngle</var>, <var title="">endAngle</var>, <var title="">anticlockwise</var>)</dt>
+
+   <dd>
+
+    <p>Adds points to the subpath such that the arc described by the
+    circumference of the circle described by the arguments, starting
+    at the given start angle and ending at the given end angle, going
+    in the given direction, is added to the path, connected to the
+    previous point by a straight line.</p>
+
+    <p>Throws an <code><a href="infrastructure.html#index_size_err">INDEX_SIZE_ERR</a></code> exception if the given
+    radius is negative.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-rect"><a href="#dom-context-2d-rect">rect</a></code>(<var title="">x</var>, <var title="">y</var>, <var title="">w</var>, <var title="">h</var>)</dt>
+
+   <dd>
+
+    <p>Adds a new closed subpath to the path, representing the given rectangle.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-fill"><a href="#dom-context-2d-fill">fill</a></code>()</dt>
+
+   <dd>
+
+    <p>Fills the subpaths with the current fill style.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-stroke"><a href="#dom-context-2d-stroke">stroke</a></code>()</dt>
+
+   <dd>
+
+    <p>Strokes the subpaths with the current stroke style.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-clip"><a href="#dom-context-2d-clip">clip</a></code>()</dt>
+
+   <dd>
+
+    <p>Further constrains the clipping region to the given path.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-isPointInPath"><a href="#dom-context-2d-ispointinpath">isPointInPath</a></code>(<var title="">x</var>, <var title="">y</var>)</dt>
+
+   <dd>
+
+    <p>Returns true if the given point is in the current path.</p>
+
+   </dd>
+
+  </dl><h6 id="text"><span class="secno">4.8.11.1.9 </span>Text</h6><p class="XXX annotation"><b>Status: </b><i>Last call for comments</i></p><!-- a v3 feature --><dl class="domintro"><dt><var title="">context</var> . <code title="dom-context-2d-font"><a href="#dom-context-2d-font">font</a></code> [ = <var title="">value</var> ]</dt>
+
+   <dd>
+
+    <p>Returns the current font settings.</p>
+
+    <p>Can be set, to change the font. The syntax is the same as for
+    the CSS 'font' property; values that cannot be parsed as CSS font
+    values are ignored.</p>
+
+    <p>Relative keywords and lengths are computed relative to the font
+    of the <code><a href="#the-canvas-element">canvas</a></code> element.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-textAlign"><a href="#dom-context-2d-textalign">textAlign</a></code> [ = <var title="">value</var> ]</dt>
+
+   <dd>
+
+    <p>Returns the current text alignment settings.</p>
+
+    <p>Can be set, to change the alignment. The possible values are
+    <code title="">start</code>, <code title="">end</code>, <code title="">left</code>, <code title="">right</code>, and <code title="">center</code>. The default is <code title="">start</code>. Other values are ignored.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-textBaseline"><a href="#dom-context-2d-textbaseline">textBaseline</a></code> [ = <var title="">value</var> ]</dt>
+
+   <dd>
+
+    <p>Returns the current baseline alignment settings.</p>
+
+    <p>Can be set, to change the baseline alignment. The possible
+    values and their meanings are given below. The default is <code title="">alphabetic</code>. Other values are ignored.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-fillText"><a href="#dom-context-2d-filltext">fillText</a></code>(<var title="">text</var>, <var title="">x</var>, <var title="">y</var> [, <var title="">maxWidth</var> ] )</dt>
+   <dt><var title="">context</var> . <code title="dom-context-2d-strokeText"><a href="#dom-context-2d-stroketext">strokeText</a></code>(<var title="">text</var>, <var title="">x</var>, <var title="">y</var> [, <var title="">maxWidth</var> ] )</dt>
+
+   <dd>
+
+    <p>Fills or strokes (respectively) the given text at the given
+    position. If a maximum width is provided, the text will be scaled
+    to fit that width if necessary.</p>
+
+   </dd>
+
+   <dt><var title="">metrics</var> = <var title="">context</var> . <code title="dom-context-2d-measureText"><a href="#dom-context-2d-measuretext">measureText</a></code>(<var title="">text</var>)</dt>
+
+   <dd>
+
+    <p>Returns a <code><a href="#textmetrics">TextMetrics</a></code> object with the metrics of the given text in the current font.</p>
+
+   </dd>
+
+   <dt><var title="">metrics</var> . <code title="dom-textmetrics-width"><a href="#dom-textmetrics-width">width</a></code></dt>
+
+   <dd>
+
+    <p>Returns the advance width of the text that was passed to the
+    <code title="dom-context-2d-measureText"><a href="#dom-context-2d-measuretext">measureText()</a></code>
+    method.</p>
+
+   </dd>
+
+  </dl><p>The <code title="dom-context-2d-textBaseline"><a href="#dom-context-2d-textbaseline">textBaseline</a></code>
+  attribute's allowed keywords correspond to alignment points in the
+  font:</p><p><img alt="The top of the em square is
+  roughly at the top of the glyphs in a font, the hanging baseline is
+  where some glyphs like &#2310; are anchored, the middle is half-way
+  between the top of the em square and the bottom of the em square,
+  the alphabetic baseline is where characters like &#193;, &#255;,
+  f, and &#937; are anchored, the ideographic baseline is
+  where glyphs like &#31169; and &#36948; are anchored, and the bottom
+  of the em square is roughly at the bottom of the glyphs in a
+  font. The top and bottom of the bounding box can be far from these
+  baselines, due to glyphs extending far outside the em square." src="images/baselines.png"></p><p>The keywords map to these alignment points as follows:</p><dl><dt><dfn id="dom-context-2d-textbaseline-top" title="dom-context-2d-textBaseline-top"><code>top</code></dfn>
+   </dt><dd>The top of the em square</dd>
+
+   <dt><dfn id="dom-context-2d-textbaseline-hanging" title="dom-context-2d-textBaseline-hanging"><code>hanging</code></dfn>
+   </dt><dd>The hanging baseline</dd>
+
+   <dt><dfn id="dom-context-2d-textbaseline-middle" title="dom-context-2d-textBaseline-middle"><code>middle</code></dfn>
+   </dt><dd>The middle of the em square</dd>
+
+   <dt><dfn id="dom-context-2d-textbaseline-alphabetic" title="dom-context-2d-textBaseline-alphabetic"><code>alphabetic</code></dfn>
+   </dt><dd>The alphabetic baseline</dd>
+
+   <dt><dfn id="dom-context-2d-textbaseline-ideographic" title="dom-context-2d-textBaseline-ideographic"><code>ideographic</code></dfn>
+   </dt><dd>The ideographic baseline</dd>
+
+   <dt><dfn id="dom-context-2d-textbaseline-bottom" title="dom-context-2d-textBaseline-bottom"><code>bottom</code></dfn>
+   </dt><dd>The bottom of the em square</dd>
+
+  </dl><p class="note">A future version of the 2D context API may provide a
+  way to render fragments of documents, rendered using CSS, straight
+  to the canvas. This would be provided in preference to a dedicated
+  way of doing multiline layout.</p><h6 id="images"><span class="secno">4.8.11.1.10 </span>Images</h6><p class="XXX annotation"><b>Status: </b><i>Awaiting implementation feedback</i></p><p>To draw images onto the canvas, the <dfn id="dom-context-2d-drawimage" title="dom-context-2d-drawImage"><code>drawImage</code></dfn> method
+  can be used.</p><p>This method can be invoked with three different sets of arguments:</p><ul class="brief"><li><code title="">drawImage(<var title="">image</var>, <var title="">dx</var>, <var title="">dy</var>)</code>
+   </li><li><code title="">drawImage(<var title="">image</var>, <var title="">dx</var>, <var title="">dy</var>, <var title="">dw</var>, <var title="">dh</var>)</code>
+   </li><li><code title="">drawImage(<var title="">image</var>, <var title="">sx</var>, <var title="">sy</var>, <var title="">sw</var>, <var title="">sh</var>, <var title="">dx</var>, <var title="">dy</var>, <var title="">dw</var>, <var title="">dh</var>)</code>
+  </li></ul><!-- v3: drawImage() of an ImageData object might make sense (when resizing as well as filtering) - ack Charles Pritchard --><p>Each of those three can take either an
+  <code><a href="text-level-semantics.html#htmlimageelement">HTMLImageElement</a></code>, an <code><a href="#htmlcanvaselement">HTMLCanvasElement</a></code>, or
+  an <code><a href="video.html#htmlvideoelement">HTMLVideoElement</a></code> for the <var title="">image</var>
+  argument.</p><dl class="domintro"><dt><var title="">context</var> . <code title="">drawImage</code>(<var title="">image</var>, <var title="">dx</var>, <var title="">dy</var>)</dt>
+   <dt><var title="">context</var> . <code title="">drawImage</code>(<var title="">image</var>, <var title="">dx</var>, <var title="">dy</var>, <var title="">dw</var>, <var title="">dh</var>)</dt>
+   <dt><var title="">context</var> . <code title="">drawImage</code>(<var title="">image</var>, <var title="">sx</var>, <var title="">sy</var>, <var title="">sw</var>, <var title="">sh</var>, <var title="">dx</var>, <var title="">dy</var>, <var title="">dw</var>, <var title="">dh</var>)</dt>
+
+   <dd>
+
+    <p>Draws the given image onto the canvas. The arguments are
+    interpreted as follows:</p>
+
+    <p><img alt="The sx and sy parameters give the x and y coordinates of the source rectangle; the sw and sh arguments give the width and height of the source rectangle; the dx and dy give the x and y coordinates of the destination rectangle; and the dw and dh arguments give the width and height of the destination rectangle." src="images/drawImage.png"></p>
+
+    <p>If the first argument isn't an <code><a href="text-level-semantics.html#the-img-element">img</a></code>,
+    <code><a href="#the-canvas-element">canvas</a></code>, or <code><a href="video.html#video">video</a></code> element, throws a
+    <code><a href="infrastructure.html#type_mismatch_err">TYPE_MISMATCH_ERR</a></code> exception. If the image has no
+    image data, throws an <code><a href="infrastructure.html#invalid_state_err">INVALID_STATE_ERR</a></code> exception. If
+    the second argument isn't one of the allowed values, throws a
+    <code><a href="infrastructure.html#syntax_err">SYNTAX_ERR</a></code> exception. If the image isn't yet fully
+    decoded, then nothing is drawn.</p>
+
+   </dd>
+
+  </dl><h6 id="pixel-manipulation"><span class="secno">4.8.11.1.11 </span><dfn>Pixel manipulation</dfn></h6><p class="XXX annotation"><b>Status: </b><i>Awaiting implementation feedback</i></p><dl class="domintro"><dt><var title="">imagedata</var> = <var title="">context</var> . <code title="dom-context-2d-createImageData"><a href="#dom-context-2d-createimagedata">createImageData</a></code>(<var title="">sw</var>, <var title="">sh</var>)</dt>
+
+   <dd>
+
+    <p>Returns an <code><a href="#imagedata">ImageData</a></code> object with the given
+    dimensions in CSS pixels (which might map to a different number of
+    actual device pixels exposed by the object itself). All the pixels
+    in the returned object are transparent black.</p>
+
+   </dd>
+
+   <dt><var title="">imagedata</var> = <var title="">context</var> . <code title="dom-context-2d-createImageData"><a href="#dom-context-2d-createimagedata">createImageData</a></code>(<var title="">imagedata</var>)</dt>
+
+   <dd>
+
+    <p>Returns an <code><a href="#imagedata">ImageData</a></code> object with the same
+    dimensions as the argument. All the pixels in the returned object
+    are transparent black.</p>
+
+    <p>Throws a <code><a href="infrastructure.html#not_supported_err">NOT_SUPPORTED_ERR</a></code> exception if the
+    argument is null.</p>
+
+   </dd>
+
+   <dt><var title="">imagedata</var> = <var title="">context</var> . <code title="dom-context-2d-getImageData"><a href="#dom-context-2d-getimagedata">getImageData</a></code>(<var title="">sx</var>, <var title="">sy</var>, <var title="">sw</var>, <var title="">sh</var>)</dt>
+
+   <dd>
+
+    <p>Returns an <code><a href="#imagedata">ImageData</a></code> object containing the image
+    data for the given rectangle of the canvas.</p>
+
+    <p>Throws a <code><a href="infrastructure.html#not_supported_err">NOT_SUPPORTED_ERR</a></code> exception if any of the
+    arguments are not finite. Throws an <code><a href="infrastructure.html#index_size_err">INDEX_SIZE_ERR</a></code>
+    exception if the either of the width or height arguments are
+    zero.</p>
+
+   </dd>
+
+   <dt><var title="">imagedata</var> . <code title="dom-imagedata-width"><a href="#dom-imagedata-width">width</a></code></dt>
+   <dt><var title="">imagedata</var> . <code title="dom-imagedata-height"><a href="#dom-imagedata-height">height</a></code></dt>
+
+   <dd>
+
+    <p>Returns the actual dimensions of the data in the <code><a href="#imagedata">ImageData</a></code> object, in device pixels.</p>
+
+   </dd>
+
+   <dt><var title="">imagedata</var> . <code title="dom-imagedata-data"><a href="#dom-imagedata-data">data</a></code></dt>
+
+   <dd>
+
+    <p>Returns the one-dimensional array containing the data.</p>
+
+   </dd>
+
+   <dt><var title="">context</var> . <code title="dom-context-2d-putImageData"><a href="#dom-context-2d-putimagedata">putImageData</a></code>(<var title="">imagedata</var>, <var title="">dx</var>, <var title="">dy</var> [, <var title="">dirtyX</var>, <var title="">dirtyY</var>, <var title="">dirtyWidth</var>, <var title="">dirtyHeight</var> ])</dt>
+
+   <dd>
+
+    <p>Paints the data from the given <code><a href="#imagedata">ImageData</a></code> object
+    onto the canvas. If a dirty rectangle is provided, only the pixels
+    from that rectangle are painted.</p>
+
+    <p>The <code title="dom-context-2d-globalAlpha"><a href="#dom-context-2d-globalalpha">globalAlpha</a></code>
+    and <code title="dom-context-2d-globalCompositeOperation"><a href="#dom-context-2d-globalcompositeoperation">globalCompositeOperation</a></code>
+    attributes, as well as the shadow attributes, are ignored for the
+    purposes of this method call; pixels in the canvas are replaced
+    wholesale, with no composition, alpha blending, no shadows,
+    etc.</p>
+
+    <p>If the first argument isn't an <code><a href="#imagedata">ImageData</a></code> object,
+    throws a <code><a href="infrastructure.html#type_mismatch_err">TYPE_MISMATCH_ERR</a></code> exception. Throws a
+    <code><a href="infrastructure.html#not_supported_err">NOT_SUPPORTED_ERR</a></code> exception if any of the other
+    arguments are not finite.</p>
+
+   </dd>
+
+  </dl><div class="example">
+
+   <p>The data returned by <code title="dom-context-2d-getImageData"><a href="#dom-context-2d-getimagedata">getImageData()</a></code> is at the
+   resolution of the canvas backing store, which is likely to not be
+   one device pixel to each CSS pixel if the display used is a high
+   resolution display.</p>
+
+   <p>In the following example, the script generates an
+   <code><a href="#imagedata">ImageData</a></code> object so that it can draw onto it.</p>
+
+   <pre>// canvas is a reference to a &lt;canvas&gt; element
+var context = canvas.getContext('2d');
+
+// create a blank slate
+var data = context.createImageData(canvas.width, canvas.height);
+
+// create some plasma
+FillPlasma(data, 'green'); // green plasma
+
+// add a cloud to the plasma
+AddCloud(data, data.width/2, data.height/2); // put a cloud in the middle
+
+// paint the plasma+cloud on the canvas
+context.putImageData(data, 0, 0);
+
+// support methods
+function FillPlasma(data, color) { ... }
+function AddCloud(data, x, y) { ... }</pre>
+
+  </div><div class="example">
+
+   <p>Here is an example of using <code title="dom-context-2d-getImageData"><a href="#dom-context-2d-getimagedata">getImageData()</a></code> and <code title="dom-context-2d-putImageData"><a href="#dom-context-2d-putimagedata">putImageData()</a></code> to
+   implement an edge detection filter.</p>
+
+   <pre>&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+ &lt;head&gt;
+  &lt;title&gt;Edge detection demo&lt;/title&gt;
+  &lt;script&gt;
+   var image = new Image();
+   function init() {
+     image.onload = demo;
+     image.src = "image.jpeg";
+   }
+   function demo() {
+     var canvas = document.getElementsByTagName('canvas')[0];
+     var context = canvas.getContext('2d');
+
+     // draw the image onto the canvas
+     context.drawImage(image, 0, 0);
+
+     // get the image data to manipulate
+     var input = context.getImageData(0, 0, canvas.width, canvas.height);
+
+     // get an empty slate to put the data into
+     var output = context.createImageData(canvas.width, canvas.height);
+
+     // alias some variables for convenience
+     // notice that we are using input.width and input.height here
+     // as they might not be the same as canvas.width and canvas.height
+     // (in particular, they might be different on high-res displays)
+     var w = input.width, h = input.height;
+     var inputData = input.data;
+     var outputData = output.data;
+
+     // edge detection
+     for (var y = 1; y &lt; h-1; y += 1) {
+       for (var x = 1; x &lt; w-1; x += 1) {
+         for (var c = 0; c &lt; 3; c += 1) {
+           var i = (y*w + x)*4 + c;
+           outputData[i] = 127 + -inputData[i - w*4 - 4] -   inputData[i - w*4] - inputData[i - w*4 + 4] +
+                                 -inputData[i - 4]       + 8*inputData[i]       - inputData[i + 4] +
+                                 -inputData[i + w*4 - 4] -   inputData[i + w*4] - inputData[i + w*4 + 4];
+         }
+         outputData[(y*w + x)*4 + 3] = 255; // alpha
+       }
+     }
+
+     // put the image data back after manipulation
+     context.putImageData(output, 0, 0);
+   }
+  &lt;/script&gt;
+ &lt;/head&gt;
+ &lt;body onload="init()"&gt;
+  &lt;canvas&gt;&lt;/canvas&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+  </div><h6 id="examples"><span class="secno">4.8.11.1.12 </span>Examples</h6><p><i>This section is non-normative.</i></p><p>Here is an example of a script that uses canvas to draw pretty
+  glowing lines.</p><pre>&lt;canvas width="800" height="450"&gt;&lt;/canvas&gt;
+&lt;script&gt;
+
+ var context = document.getElementsByTagName('canvas')[0].getContext('2d');
+
+ var lastX = context.canvas.width * Math.random();
+ var lastY = context.canvas.height * Math.random();
+ var hue = 0;
+ function line() {
+   context.save();
+   context.translate(context.canvas.width/2, context.canvas.height/2);
+   context.scale(0.9, 0.9);
+   context.translate(-context.canvas.width/2, -context.canvas.height/2);
+   context.beginPath();
+   context.lineWidth = 5 + Math.random() * 10;
+   context.moveTo(lastX, lastY);
+   lastX = context.canvas.width * Math.random();
+   lastY = context.canvas.height * Math.random();
+   context.bezierCurveTo(context.canvas.width * Math.random(),
+                         context.canvas.height * Math.random(),
+                         context.canvas.width * Math.random(),
+                         context.canvas.height * Math.random(),
+                         lastX, lastY);
+
+   hue = hue + 10 * Math.random();
+   context.strokeStyle = 'hsl(' + hue + ', 50%, 50%)';
+   context.shadowColor = 'white';
+   context.shadowBlur = 10;
+   context.stroke();
+   context.restore();
+ }
+ setInterval(line, 50);
+
+ function blank() {
+   context.fillStyle = 'rgba(0,0,0,0.1)';
+   context.fillRect(0, 0, context.canvas.width, context.canvas.height);
+ }
+ setInterval(blank, 40);
+
+&lt;/script&gt;</pre><h4 id="the-map-element"><span class="secno">4.8.12 </span>The <dfn><code>map</code></dfn> element</h4><p class="XXX annotation"><b>Status: </b><i>Last call for comments</i></p><dl class="element"><dt>Categories</dt>
+   <dd><a href="dom.html#flow-content">Flow content</a>.</dd>
+   <dd>When the element only contains <a href="dom.html#phrasing-content">phrasing content</a>: <a href="dom.html#phrasing-content">phrasing content</a>.</dd>
+   <dt>Contexts in which this element may be used:</dt>
+   <dd>Where <a href="dom.html#phrasing-content">phrasing content</a> is expected.</dd>
+   <dt>Content model:</dt>
+   <dd><a href="embedded-content-0.html#transparent">Transparent</a>.</dd>
+   <dt>Content attributes:</dt>
+   <dd><a href="dom.html#global-attributes">Global attributes</a></dd>
+   <dd><code title="attr-map-name"><a href="#attr-map-name">name</a></code></dd>
+   <dt>DOM interface:</dt>
+   <dd>
+<pre class="idl">interface <dfn id="htmlmapelement">HTMLMapElement</dfn> : <a href="dom.html#htmlelement">HTMLElement</a> {
+           attribute DOMString <a href="#dom-map-name" title="dom-map-name">name</a>;
+  readonly attribute <a href="infrastructure.html#htmlcollection">HTMLCollection</a> <a href="#dom-map-areas" title="dom-map-areas">areas</a>;
+  readonly attribute <a href="infrastructure.html#htmlcollection">HTMLCollection</a> <a href="#dom-map-images" title="dom-map-images">images</a>;
+};</pre>
+   </dd>
+  </dl><p>The <code><a href="#the-map-element">map</a></code> element, in conjunction with any
+  <code><a href="#the-area-element">area</a></code> element descendants, defines an <a href="#image-map">image
+  map</a>. The element <a href="#represents">represents</a> its children.</p><p>The <dfn id="attr-map-name" title="attr-map-name"><code>name</code></dfn> attribute
+  gives the map a name so that it can be referenced. The attribute
+  must be present and must have a non-empty value with no <a href="#space-character" title="space character">space characters</a>. If the <code title="attr-id"><a href="dom.html#the-id-attribute">id</a></code> attribute is also specified, both
+  attributes must have the same value.</p><dl class="domintro"><dt><var title="">map</var> . <code title="dom-map-areas"><a href="#dom-map-areas">areas</a></code></dt>
+
+   <dd>
+
+    <p>Returns an <code><a href="infrastructure.html#htmlcollection">HTMLCollection</a></code> of the <code><a href="#the-area-element">area</a></code> elements in the <code><a href="#the-map-element">map</a></code>.</p>
+
+   </dd>
+
+   <dt><var title="">map</var> . <code title="dom-map-images"><a href="#dom-map-images">images</a></code></dt>
+
+   <dd>
+
+    <p>Returns an <code><a href="infrastructure.html#htmlcollection">HTMLCollection</a></code> of the <code><a href="text-level-semantics.html#the-img-element">img</a></code> and <code><a href="text-level-semantics.html#the-object-element">object</a></code> elements that use the <code><a href="#the-map-element">map</a></code>.</p>
+
+   </dd>
+
+  </dl><h4 id="the-area-element"><span class="secno">4.8.13 </span>The <dfn><code>area</code></dfn> element</h4><p class="XXX annotation"><b>Status: </b><i>Last call for comments</i></p><dl class="element"><dt>Categories</dt>
+   <dd><a href="dom.html#flow-content">Flow content</a>.</dd>
+   <dd><a href="dom.html#phrasing-content">Phrasing content</a>.</dd>
+   <dt>Contexts in which this element may be used:</dt>
+   <dd>Where <a href="dom.html#phrasing-content">phrasing content</a> is expected, but only if there is a <code><a href="#the-map-element">map</a></code> element ancestor.</dd>
+   <dt>Content model:</dt>
+   <dd>Empty.</dd>
+   <dt>Content attributes:</dt>
+   <dd><a href="dom.html#global-attributes">Global attributes</a></dd>
+   <dd><code title="attr-area-alt"><a href="#attr-area-alt">alt</a></code></dd>
+   <dd><code title="attr-area-coords"><a href="#attr-area-coords">coords</a></code></dd>
+   <dd><code title="attr-area-shape"><a href="#attr-area-shape">shape</a></code></dd>
+   <dd><code title="attr-hyperlink-href"><a href="history.html#attr-hyperlink-href">href</a></code></dd>
+   <dd><code title="attr-hyperlink-target"><a href="history.html#attr-hyperlink-target">target</a></code></dd>
+   <dd><code title="attr-hyperlink-ping"><a href="history.html#ping">ping</a></code></dd>
+   <dd><code title="attr-hyperlink-rel"><a href="history.html#attr-hyperlink-rel">rel</a></code></dd>
+   <dd><code title="attr-hyperlink-media"><a href="history.html#attr-hyperlink-media">media</a></code></dd>
+   <dd><code title="attr-hyperlink-hreflang"><a href="history.html#attr-hyperlink-hreflang">hreflang</a></code></dd>
+   <dd><code title="attr-hyperlink-type"><a href="history.html#attr-hyperlink-type">type</a></code></dd>
+   <dt>DOM interface:</dt>
+   <dd>
+<pre class="idl">interface <dfn id="htmlareaelement">HTMLAreaElement</dfn> : <a href="dom.html#htmlelement">HTMLElement</a> {
+           attribute DOMString <a href="#dom-area-alt" title="dom-area-alt">alt</a>;
+           attribute DOMString <a href="#dom-area-coords" title="dom-area-coords">coords</a>;
+           attribute DOMString <a href="#dom-area-shape" title="dom-area-shape">shape</a>;
+  stringifier attribute DOMString <a href="#dom-area-href" title="dom-area-href">href</a>;
+           attribute DOMString <a href="#dom-area-target" title="dom-area-target">target</a>;
+           attribute DOMString <a href="#dom-area-ping" title="dom-area-ping">ping</a>;
+           attribute DOMString <a href="#dom-area-rel" title="dom-area-rel">rel</a>;
+  readonly attribute DOMTokenList <a href="#dom-area-rellist" title="dom-area-relList">relList</a>;
+           attribute DOMString <a href="#dom-area-media" title="dom-area-media">media</a>;
+           attribute DOMString <a href="#dom-area-hreflang" title="dom-area-hreflang">hreflang</a>;
+           attribute DOMString <a href="#dom-area-type" title="dom-area-type">type</a>;
+
+  // <a href="infrastructure.html#url-decomposition-idl-attributes">URL decomposition IDL attributes</a>
+           attribute DOMString <a href="#dom-area-protocol" title="dom-area-protocol">protocol</a>;
+           attribute DOMString <a href="#dom-area-host" title="dom-area-host">host</a>;
+           attribute DOMString <a href="#dom-area-hostname" title="dom-area-hostname">hostname</a>;
+           attribute DOMString <a href="#dom-area-port" title="dom-area-port">port</a>;
+           attribute DOMString <a href="#dom-area-pathname" title="dom-area-pathname">pathname</a>;
+           attribute DOMString <a href="#dom-area-search" title="dom-area-search">search</a>;
+           attribute DOMString <a href="#dom-area-hash" title="dom-area-hash">hash</a>;
+};</pre>
+   </dd>
+  </dl><p>The <code><a href="#the-area-element">area</a></code> element <a href="#represents">represents</a> either a
+  hyperlink with some text and a corresponding area on an <a href="#image-map">image
+  map</a>, or a dead area on an image map.</p><p>If the <code><a href="#the-area-element">area</a></code> element has an <code title="attr-hyperlink-href"><a href="history.html#attr-hyperlink-href">href</a></code> attribute, then the
+  <code><a href="#the-area-element">area</a></code> element represents a <a href="history.html#hyperlink">hyperlink</a>. In
+  this case, the <dfn id="attr-area-alt" title="attr-area-alt"><code>alt</code></dfn>
+  attribute must be present. It specifies the text of the
+  hyperlink. Its value must be text that, when presented with the
+  texts specified for the other hyperlinks of the <a href="#image-map">image
+  map</a>, and with the alternative text of the image, but without
+  the image itself, provides the user with the same kind of choice as
+  the hyperlink would when used without its text but with its shape
+  applied to the image. The <code title="attr-area-alt"><a href="#attr-area-alt">alt</a></code>
+  attribute may be left blank if there is another <code><a href="#the-area-element">area</a></code>
+  element in the same <a href="#image-map">image map</a> that points to the same
+  resource and has a non-blank <code title="attr-area-alt"><a href="#attr-area-alt">alt</a></code>
+  attribute.</p><p>If the <code><a href="#the-area-element">area</a></code> element has no <code title="attr-hyperlink-href"><a href="history.html#attr-hyperlink-href">href</a></code> attribute, then the area
+  represented by the element cannot be selected, and the <code title="attr-area-alt"><a href="#attr-area-alt">alt</a></code> attribute must be omitted.</p><p>In both cases, the <code title="attr-area-shape"><a href="#attr-area-shape">shape</a></code> and
+  <code title="attr-area-coords"><a href="#attr-area-coords">coords</a></code> attributes specify the
+  area.</p><p>The <dfn id="attr-area-shape" title="attr-area-shape"><code>shape</code></dfn>
+  attribute is an <a href="infrastructure.html#enumerated-attribute">enumerated attribute</a>. The following
+  table lists the keywords defined for this attribute. The states
+  given in the first cell of the rows with keywords give the states to
+  which those keywords map. </p><table><thead><tr><th>State
+     </th><th>Keywords
+     </th></tr></thead><tbody><tr><td rowspan="2"><a href="#attr-area-shape-circle" title="attr-area-shape-circle">Circle state</a>
+     </td><td><dfn id="attr-area-shape-keyword-circle" title="attr-area-shape-keyword-circle"><code>circle</code></dfn>
+     </td></tr><tr></tr><tr><td><a href="#attr-area-shape-default" title="attr-area-shape-default">Default state</a>
+     </td><td><dfn id="attr-area-shape-keyword-default" title="attr-area-shape-keyword-default"><code>default</code></dfn>
+     </td></tr><tr><td rowspan="2"><a href="#attr-area-shape-poly" title="attr-area-shape-poly">Polygon state</a>
+     </td><td><dfn id="attr-area-shape-keyword-poly" title="attr-area-shape-keyword-poly"><code>poly</code></dfn>
+     </td></tr><tr></tr><tr><td rowspan="2"><a href="#attr-area-shape-rect" title="attr-area-shape-rect">Rectangle state</a>
+     </td><td><dfn id="attr-area-shape-keyword-rect" title="attr-area-shape-keyword-rect"><code>rect</code></dfn>
+     </td></tr><tr></tr></tbody></table><p>The attribute may be omitted. The <i>missing value default</i> is
+  the <a href="#attr-area-shape-rect" title="attr-area-shape-rect">rectangle</a> state.</p><p>The <dfn id="attr-area-coords" title="attr-area-coords"><code>coords</code></dfn>
+  attribute must, if specified, contain a <a href="infrastructure.html#valid-list-of-integers">valid list of
+  integers</a>. This attribute gives the coordinates for the shape
+  described by the <code title="attr-area-shape"><a href="#attr-area-shape">shape</a></code>
+  attribute. </p><!-- v2: It was suggested by John S. Urban that coords should
+  support percentages as well as pixels, so that one could use the
+  same image map for images of various sizes. --><p>In the <dfn id="attr-area-shape-circle" title="attr-area-shape-circle">circle state</dfn>,
+  <code><a href="#the-area-element">area</a></code> elements must have a <code title="attr-area-coords"><a href="#attr-area-coords">coords</a></code> attribute present, with three
+  integers, the last of which must be non-negative. The first integer
+  must be the distance in CSS pixels from the left edge of the image
+  to the center of the circle, the second integer must be the distance
+  in CSS pixels from the top edge of the image to the center of the
+  circle, and the third integer must be the radius of the circle,
+  again in CSS pixels.</p><p>In the <dfn id="attr-area-shape-default" title="attr-area-shape-default">default state</dfn>
+  state, <code><a href="#the-area-element">area</a></code> elements must not have a <code title="attr-area-coords"><a href="#attr-area-coords">coords</a></code> attribute. (The area is the
+  whole image.)</p><p>In the <dfn id="attr-area-shape-poly" title="attr-area-shape-poly">polygon state</dfn>,
+  <code><a href="#the-area-element">area</a></code> elements must have a <code title="attr-area-coords"><a href="#attr-area-coords">coords</a></code> attribute with at least six
+  integers, and the number of integers must be even. Each pair of
+  integers must represent a coordinate given as the distances from the
+  left and the top of the image in CSS pixels respectively, and all
+  the coordinates together must represent the points of the polygon,
+  in order.</p><p>In the <dfn id="attr-area-shape-rect" title="attr-area-shape-rect">rectangle state</dfn>,
+  <code><a href="#the-area-element">area</a></code> elements must have a <code title="attr-area-coords"><a href="#attr-area-coords">coords</a></code> attribute with exactly four
+  integers, the first of which must be less than the third, and the
+  second of which must be less than the fourth. The four points must
+  represent, respectively, the distance from the left edge of the
+  image to the left side of the rectangle, the distance from the
+  top edge to the top side, the distance from the left edge to the
+  right side, and the distance from the top edge to the bottom side,
+  all in CSS pixels.</p><p>The <code title="attr-hyperlink-target"><a href="history.html#attr-hyperlink-target">target</a></code>, <code title="attr-hyperlink-ping"><a href="history.html#ping">ping</a></code>, <code title="attr-hyperlink-rel"><a href="history.html#attr-hyperlink-rel">rel</a></code>, <code title="attr-hyperlink-media"><a href="history.html#attr-hyperlink-media">media</a></code>, <code title="attr-hyperlink-hreflang"><a href="history.html#attr-hyperlink-hreflang">hreflang</a></code>, and <code title="attr-hyperlink-type"><a href="history.html#attr-hyperlink-type">type</a></code> attributes must be omitted
+  if the <code title="attr-hyperlink-href"><a href="history.html#attr-hyperlink-href">href</a></code> attribute is
+  not present.</p><h4 id="image-maps"><span class="secno">4.8.14 </span>Image maps</h4><p class="XXX annotation"><b>Status: </b><i>Last call for comments</i></p><!-- TESTS
+  http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E%0A%3Cimg%20src%3D%22http%3A//hixie.ch/resources/images/smallcats%22%20usemap%3D%23a%20onclick%3Dw%28%27img%27%29%3E%0A%3Cmap%20name%3Da%3E%0A%20%3Carea%20onclick%3Dw%28%271%27%29%20coords%3D%270%25%200%25%20100%25%20100%25%27%20href%3Djavascript%3A%3E%0A%3C/map%3E
+  http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E%0A%3Cbody%20onfocus%3D%22w%28document.activeElement.tagName%29%22%3E%0A%3Cimg%20src%3D%22http%3A//hixie.ch/resources/images/smallcats%22%20usemap%3D%23a%20onclick%3Dw%28%27img%27%29%20onfocus%3D%22w%28document.activeElement.tagName%29%22%3E%0A%3Cimg%20src%3D%22http%3A//hixie.ch/resources/images/sample%22%20usemap%3D%23a%20onclick%3Dw%28%27img%27%29%20onfocus%3D%22w%28document.activeElement.tagName%29%22%3E%0A%3Cmap%20name%3Da%20onfocus%3D%22w%28document.activeElement.tagName%29%22%3E%0A%20%3Carea%20onclick%3Dw%28%271%27%29%20coords%3D%270%200%2050%2050%27%20href%3Djavascript%3A%20onfocus%3D%22w%28document.activeElement.tagName%29%22%3E%0A%3C/map%3E%0A%3Cscript%3E%0A%20var%20x%20%3D%20document.getElementsByTagName%28%27img%27%29%5B0%5D%3B%0A%20x.parentNode.appendChild%28x%29%3B%0A%20document.getElementsByTagName%28%27area%27%29%5B0%5D.focus%28%29%3B%0A%3C/script%3E
+  http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3Ex%3Cmap%3E%3Carea%20shape%3Dpolyg%20coords%3D%221%2C2%203%22%3E%3C/map%3E%0A%3Cscript%3Ex%20%3D%20document.getElementsByTagName%28%27area%27%29%5B0%5D%3B%20w%28x.shape%20+%20%27%20%27%20+%20x.coords%29%3C/script%3E
+  http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E%0D%0A%3Cp%3E%3Cimg%20src%3D%22http%3A//hixie.ch/resources/images/astrophy/128%22%20usemap%3D%23a%3E%0D%0A%3Cmap%20name%3Da%3E%3Carea%20shape%3Dcirc%20coords%3D%2220%2C20%2C10%25%22%20href%3D%23%3E%3Carea%20shape%3Dcirc%20coords%3D%2220%2C20%2C10%22%20href%3D%23%3E%3C/map%3E%0D%0A%3Cscript%3Edocument.write%28document.getElementsByTagName%28%27area%27%29%5B0%5D.coords%29%3C/script%3E
+  --><p>An <dfn id="image-map">image map</dfn> allows geometric areas on an image to be
+  associated with <a href="history.html#hyperlink" title="hyperlink">hyperlinks</a>.</p><p>An image, in the form of an <code><a href="text-level-semantics.html#the-img-element">img</a></code> element or an
+  <code><a href="text-level-semantics.html#the-object-element">object</a></code> element representing an image, may be associated
+  with an image map (in the form of a <code><a href="#the-map-element">map</a></code> element) by
+  specifying a <dfn id="attr-hyperlink-usemap" title="attr-hyperlink-usemap"><code>usemap</code></dfn> attribute on
+  the <code><a href="text-level-semantics.html#the-img-element">img</a></code> or <code><a href="text-level-semantics.html#the-object-element">object</a></code> element. The <code title="attr-hyperlink-usemap"><a href="#attr-hyperlink-usemap">usemap</a></code> attribute, if specified,
+  must be a <a href="infrastructure.html#valid-hash-name-reference">valid hash-name reference</a> to a
+  <code><a href="#the-map-element">map</a></code> element.</p><div class="example">
+
+   <p>Consider an image that looks as follows:</p>
+
+   <p><img alt="A line with four shapes in it, equally spaced: a red hollow box, a green circle, a blue triangle, and a yellow four-pointed star." src="images/sample-usemap.png"></p>
+
+   <p>If we wanted just the colored areas to be clickable, we could
+   do it as follows:</p>
+
+   <pre>&lt;p&gt;
+ Please select a shape:
+ &lt;img src="shapes.png" usemap="#shapes"
+      alt="Four shapes are available: a red hollow box, a green circle, a blue triangle, and a yellow four-pointed star."&gt;
+ &lt;map name="shapes"&gt;
+  &lt;area shape=rect coords="50,50,100,100"&gt; &lt;!-- the hole in the red box --&gt;
+  &lt;area shape=rect coords="25,25,125,125" href="red.html" alt="Red box."&gt;
+  &lt;area shape=circle coords="200,75,50" href="green.html" alt="Green circle."&gt;
+  &lt;area shape=poly coords="325,25,262,125,388,125" href="blue.html" alt="Blue triangle."&gt;
+  &lt;area shape=poly coords="450,25,435,60,400,75,435,90,450,125,465,90,500,75,465,60"
+        href="yellow.html" alt="Yellow star."&gt;
+ &lt;/map&gt;
+&lt;/p&gt;</pre>
+
+  </div><h4 id="mathml"><span class="secno">4.8.15 </span>MathML</h4><p class="XXX annotation"><b>Status: </b><i>Last call for comments</i></p><p>The <dfn id="math"><code>math</code></dfn> element from the <a href="#mathml-namespace">MathML
+  namespace</a> falls into the <a href="embedded-content-0.html#embedded-content">embedded content</a>,
+  <a href="dom.html#phrasing-content">phrasing content</a>, and <a href="dom.html#flow-content">flow content</a>
+  categories for the purposes of the content models in this
+  specification.</p><p>The semantics of MathML elements are defined by the MathML
+  specification and other relevant specifications. <a href="references.html#refsMATHML">[MATHML]</a></p><div class="example">
+
+   <p>Here is an example of the use of MathML in an HTML document:</p>
+
+   <pre>&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+ &lt;head&gt;
+  &lt;title&gt;The quadratic formula&lt;/title&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+  &lt;h1&gt;The quadratic formula&lt;/h1&gt;
+  &lt;p&gt;
+   &lt;math&gt;
+    &lt;mi&gt;x&lt;/mi&gt;
+    &lt;mo&gt;=&lt;/mo&gt;
+    &lt;mfrac&gt;
+     &lt;mrow&gt;
+      &lt;mo form="prefix"&gt;&#8722;&lt;/mo&gt; &lt;mi&gt;b&lt;/mi&gt;
+      &lt;mo&gt;&#177;&lt;/mo&gt;
+      &lt;msqrt&gt;
+       &lt;msup&gt; &lt;mi&gt;b&lt;/mi&gt; &lt;mn&gt;2&lt;/mn&gt; &lt;/msup&gt;
+       &lt;mo&gt;&#8722;&lt;/mo&gt;
+       &lt;mn&gt;4&lt;/mn&gt; &lt;mo&gt;&#8290;&lt;/mo&gt; &lt;mi&gt;a&lt;/mi&gt; &lt;mo&gt;&#8290;&lt;/mo&gt; &lt;mi&gt;c&lt;/mi&gt;
+      &lt;/msqrt&gt;
+     &lt;/mrow&gt;
+     &lt;mrow&gt;
+      &lt;mn&gt;2&lt;/mn&gt; &lt;mo&gt;&#8290;&lt;/mo&gt; &lt;mi&gt;a&lt;/mi&gt;
+     &lt;/mrow&gt;
+    &lt;/mfrac&gt;
+   &lt;/math&gt;
+  &lt;/p&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+  </div><h4 id="svg-0"><span class="secno">4.8.16 </span>SVG</h4><p>The <dfn id="svg"><code>svg</code></dfn> element from the <a href="#svg-namespace">SVG
+  namespace</a> falls into the <a href="embedded-content-0.html#embedded-content">embedded content</a>,
+  <a href="dom.html#phrasing-content">phrasing content</a>, and <a href="dom.html#flow-content">flow content</a>
+  categories for the purposes of the content models in this
+  specification.</p><p>When the SVG <code>foreignObject</code> element contains elements
+  from the <a href="#html-namespace-0">HTML namespace</a>, such elements must all be
+  <a href="dom.html#flow-content">flow content</a>. <a href="references.html#refsSVG">[SVG]</a></p><p>The content model for <code title="">title</code> elements in the
+  <a href="#svg-namespace">SVG namespace</a> inside <a href="dom.html#html-documents">HTML documents</a> is
+  <a href="dom.html#phrasing-content">phrasing content</a>. (This further constrains the
+  requirements given in the SVG specification.)</p><p>The semantics of SVG elements are defined by the SVG
+  specification and other relevant specifications. <a href="references.html#refsSVG">[SVG]</a></p><!-- The following paragraph is for bug 7510 --><p>The SVG specification includes requirements regarding the
+  handling of elements in the DOM that are not in the SVG namespace,
+  that are in SVG fragments, and that are not included in a
+  <code>foreignObject</code> element. <em>This</em> specification does
+  not define any processing for elements in SVG fragments that are not
+  in the HTML namespace; they are considered neither conforming nor
+  non-conforming from the perspective of this specification.</p><h4 id="dimension-attributes"><span class="secno">4.8.17 </span><dfn>Dimension attributes</dfn></h4><p class="XXX annotation"><b>Status: </b><i>Last call for comments</i></p><p>Author requirements<dfn id="attr-dim-width" title="attr-dim-width"><code>width</code></dfn> and <dfn id="attr-dim-height" title="attr-dim-height"><code>height</code></dfn> attributes on
+  <code><a href="text-level-semantics.html#the-img-element">img</a></code>, <code><a href="text-level-semantics.html#the-iframe-element">iframe</a></code>, <code><a href="text-level-semantics.html#the-embed-element">embed</a></code>,
+  <code><a href="text-level-semantics.html#the-object-element">object</a></code>, <code><a href="video.html#video">video</a></code>, and, when their <code title="attr-input-type"><a href="forms.html#attr-input-type">type</a></code> attribute is in the <a href="forms.html#image-button-state" title="attr-input-type-image">Image Button</a> state,
+  <code><a href="forms.html#the-input-element">input</a></code> elements may be specified to give the dimensions
+  of the visual content of the element (the width and height
+  respectively, relative to the nominal direction of the output
+  medium), in CSS pixels. The attributes, if specified, must have
+  values that are <a href="infrastructure.html#valid-non-negative-integer" title="valid non-negative integer">valid
+  non-negative integers</a>.</p><p>The specified dimensions given may differ from the dimensions
+  specified in the resource itself, since the resource may have a
+  resolution that differs from the CSS pixel resolution. (On screens,
+  CSS pixels have a resolution of 96ppi, but in general the CSS pixel
+  resolution depends on the reading distance.) If both attributes are
+  specified, then one of the following statements must be true:</p><ul><li><span title=""><var title="">specified width</var> - 0.5 &#8804;
+             <var title="">specified height</var> * <var title="">target ratio</var> &#8804;
+             <var title="">specified width</var> + 0.5</span></li>
+
+   <li><span title=""><var title="">specified height</var> - 0.5 &#8804;
+             <var title="">specified width</var> / <var title="">target ratio</var> &#8804;
+             <var title="">specified height</var> + 0.5</span></li>
+
+   <li><span title=""><var title="">specified height</var> = <var title="">specified width</var> = 0</span></li>
+
+  </ul><p>The <var title="">target ratio</var> is the ratio of the
+  intrinsic width to the intrinsic height in the resource. The <var title="">specified width</var> and <var title="">specified
+  height</var> are the values of the <code title="attr-dim-width"><a href="#attr-dim-width">width</a></code> and <code title="attr-dim-height"><a href="#attr-dim-height">height</a></code> attributes respectively.</p><p>The two attributes must be omitted if the resource in question
+  does not have both an intrinsic width and an intrinsic height.</p><p>If the two attributes are both zero, it indicates that the
+  element is not intended for the user (e.g. it might be a part of a
+  service to count page views).</p><p class="note">The dimension attributes are not intended to be used
+  to stretch the image.</p></body></html>
\ No newline at end of file

Index: forms.html
===================================================================
RCS file: /sources/public/html5/spec-author-view/forms.html,v
retrieving revision 1.303
retrieving revision 1.304
diff -u -d -r1.303 -r1.304
--- forms.html	5 Oct 2009 09:31:02 -0000	1.303
+++ forms.html	5 Oct 2009 09:36:47 -0000	1.304
@@ -211,4 +211,4416 @@
    .apple-table-examples.e2 th[scope=row] { padding-left: 1em; }
    .apple-table-examples sup { line-height: 0; }
 
-  </style><link href="data:text/css," rel="stylesheet" title="Complete specification"><link href="data:text/css,.impl%20%7B%20display:%20none;%20%7D" rel="alternate stylesheet" title="Author documentation only"><link href="data:text/css,.impl%20%7B%20background:%20%23FFEEEE;%20%7D" rel="alternate stylesheet" title="Highlight implementation requirements"><link href="http://www.w3.org/Sty
\ No newline at end of file
+  </style><link href="data:text/css," rel="stylesheet" title="Complete specification"><link href="data:text/css,.impl%20%7B%20display:%20none;%20%7D" rel="alternate stylesheet" title="Author documentation only"><link href="data:text/css,.impl%20%7B%20background:%20%23FFEEEE;%20%7D" rel="alternate stylesheet" title="Highlight implementation requirements"><link href="http://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet" type="text/css"><!-- ZZZ ED vs WD --><link href="tabular-data.html" title="4.9 Tabular data" rel="prev">
+  <link href="Overview.html#contents" title="Table of contents" rel="index">
+  <link href="interactive-elements.html" title="4.11 Interactive elements" rel="next">
+  </head><body onload="fixBrokenLink(); fixBrokenLink()"><div class="head">
+   <p><a href="http://www.w3.org/"><img alt="W3C" height="48" src="http://www.w3.org/Icons/w3c_home" width="72"></a></p>
+   <h1>HTML5</h1>
[...4388 lines suppressed...]
+ &lt;input type=search name=q&gt;
+ &lt;input type=submit&gt;
+&lt;/form&gt;</pre><p>If the user types in "cats" in the first field and "fur" in the
+  second, and then hits the submit button, then the user agent will
+  load <code title="">/find.cgi?t=cats&amp;q=fur</code>.</p><p>On the other hand, consider this form:</p><pre>&lt;form action="/find.cgi" method=post enctype="multipart/form-data"&gt;
+ &lt;input type=text name=t&gt;
+ &lt;input type=search name=q&gt;
+ &lt;input type=submit&gt;
+&lt;/form&gt;</pre><p>Given the same user input, the result on submission is quite
+  different: the user agent instead does an HTTP POST to the given
+  URL, with as the entity body something like the following text:</p><pre>------kYFrd4jNJEgCervE
+Content-Disposition: form-data; name="t"
+
+cats
+------kYFrd4jNJEgCervE
+Content-Disposition: form-data; name="q"
+
+fur
+------kYFrd4jNJEgCervE--</pre></body></html>
\ No newline at end of file

Index: editing.html
===================================================================
RCS file: /sources/public/html5/spec-author-view/editing.html,v
retrieving revision 1.303
retrieving revision 1.304
diff -u -d -r1.303 -r1.304
--- editing.html	5 Oct 2009 09:31:02 -0000	1.303
+++ editing.html	5 Oct 2009 09:36:47 -0000	1.304
@@ -64,4 +64,1394 @@
    h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
    h1 + h2, hr + h2.no-toc { page-break-before: auto; }
 
-   p > span:not([title=""]):not([class="XXX"]):not([class="impl"]), li > span:no
\ No newline at end of file
+   p > span:not([title=""]):not([class="XXX"]):not([class="impl"]), li > span:not([title=""]):not([class="XXX"]):not([class="impl"]) { border-bottom: solid #9999CC; }
+
+   div.head { margin: 0 0 1em; padding: 1em 0 0 0; }
+   div.head p { margin: 0; }
+   div.head h1 { margin: 0; }
+   div.head .logo { float: right; margin: 0 1em; }
[...1366 lines suppressed...]
+   
+   
+   
+   
+   
+   
+
+   
+   
+   
+   
+   
+   
+
+  </dl><!--
+v2 (well, really v0):
+ "forecolor", "hilitecolor", "fontname", "fontsize", "justifyleft",
+ "justifycenter", "justifyright", "justifyfull", "indent", "outdent"
+--></body></html>
\ No newline at end of file

Index: video.html
===================================================================
RCS file: /sources/public/html5/spec-author-view/video.html,v
retrieving revision 1.303
retrieving revision 1.304
diff -u -d -r1.303 -r1.304
--- video.html	5 Oct 2009 09:31:02 -0000	1.303
+++ video.html	5 Oct 2009 09:36:47 -0000	1.304
@@ -211,4 +211,1089 @@
    .apple-table-examples.e2 th[scope=row] { padding-left: 1em; }
    .apple-table-examples sup { line-height: 0; }
 
-  </style><link href="data:text/css," rel="stylesheet" title="Complete specification"><link href="data:text/css,.impl%20%7B%20display:%20none;%20%7D" rel="alternate stylesheet" title="Author documentation only"><link href="data:text/css,.impl%20%7B%20background:%20%23FFEEEE;%20%7D" rel="alternate stylesheet" title="Highlight implementation requirements"><link href="http://w
\ No newline at end of file
+  </style><link href="data:text/css," rel="stylesheet" title="Complete specification"><link href="data:text/css,.impl%20%7B%20display:%20none;%20%7D" rel="alternate stylesheet" title="Author documentation only"><link href="data:text/css,.impl%20%7B%20background:%20%23FFEEEE;%20%7D" rel="alternate stylesheet" title="Highlight implementation requirements"><link href="http://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet" type="text/css"><!-- ZZZ ED vs WD --><link href="text-level-semantics.html" title="4.6 Text-level semantics" rel="prev">
+  <link href="Overview.html#contents" title="Table of contents" rel="index">
+  <link href="the-canvas-element.html" title="4.8.11 The canvas element" rel="next">
+  </head><body onload="fixBrokenLink(); fixBrokenLink()"><div class="head">
+   <p><a href="http://www.w3.org/"><img alt="W3C" height="48" src="http://www.w3.org/Icons/w3c_home" width="72"></a></p>
+   <h1>HTML5</h1>
[...1061 lines suppressed...]
+     </td><td>
+    </td></tr><tr><td><dfn id="event-media-ended" title="event-media-ended"><code>ended</code></dfn>
+     </td><td><code>Event</code>
+     </td><td>Playback has stopped because the end of the <a href="#media-resource">media resource</a> was reached.
+     </td><td><code title="dom-media-currentTime"><a href="#dom-media-currenttime">currentTime</a></code> equals the end of the <a href="#media-resource">media resource</a>; <code title="dom-media-ended"><a href="#dom-media-ended">ended</a></code> is true.
+
+   </td></tr></tbody><tbody><tr><td><dfn id="event-media-ratechange" title="event-media-ratechange"><code>ratechange</code></dfn>
+     </td><td><code>Event</code>
+     </td><td>Either the <code title="dom-media-defaultPlaybackRate"><a href="#dom-media-defaultplaybackrate">defaultPlaybackRate</a></code> or the <code title="dom-media-playbackRate"><a href="#dom-media-playbackrate">playbackRate</a></code> attribute has just been updated.
+     </td><td>
+    </td></tr><tr><td><dfn id="event-media-durationchange" title="event-media-durationchange"><code>durationchange</code></dfn>
+     </td><td><code>Event</code>
+     </td><td>The <code title="dom-media-duration"><a href="#dom-media-duration">duration</a></code> attribute has just been updated.
+     </td><td>
+    </td></tr><tr><td><dfn id="event-media-volumechange" title="event-media-volumechange"><code>volumechange</code></dfn>
+     </td><td><code>Event</code>
+     </td><td>Either the <code title="dom-media-volume"><a href="#dom-media-volume">volume</a></code> attribute or the <code title="dom-media-muted"><a href="#dom-media-muted">muted</a></code> attribute has changed. Fired after the relevant attribute's setter has returned.
+     </td><td>
+  </td></tr></tbody></table></body></html>
\ No newline at end of file

Index: browsers.html
===================================================================
RCS file: /sources/public/html5/spec-author-view/browsers.html,v
retrieving revision 1.304
retrieving revision 1.305
diff -u -d -r1.304 -r1.305
--- browsers.html	5 Oct 2009 09:31:02 -0000	1.304
+++ browsers.html	5 Oct 2009 09:36:47 -0000	1.305
@@ -211,4 +211,682 @@
    .apple-table-examples.e2 th[scope=row] { padding-left: 1em; }
    .apple-table-examples sup { line-height: 0; }
 
-  </style><link href="data:text/css," rel="stylesheet" title="Complete specification"><link href="data:text/css,.impl%20%7B%20display:%20none;%20%7D" rel="alternate stylesheet" title="Author documentation only"><link href="data:text/css,.impl%20%7B%20background:%20%23FFEEEE;%20%7D" rel="alternate stylesheet" title="Highlight implementation requirements"><link href="http://www.w3.org
\ No newline at end of file
+  </style><link href="data:text/css," rel="stylesheet" title="Complete specification"><link href="data:text/css,.impl%20%7B%20display:%20none;%20%7D" rel="alternate stylesheet" title="Author documentation only"><link href="data:text/css,.impl%20%7B%20background:%20%23FFEEEE;%20%7D" rel="alternate stylesheet" title="Highlight implementation requirements"><link href="http://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet" type="text/css"><!-- ZZZ ED vs WD --><link href="microdata.html" title="5 Microdata" rel="prev">
+  <link href="Overview.html#contents" title="Table of contents" rel="index">
+  <link href="offline.html" title="6.7 Offline Web applications" rel="next">
+  </head><body onload="fixBrokenLink(); fixBrokenLink()"><div class="head">
+   <p><a href="http://www.w3.org/"><img alt="W3C" height="48" src="http://www.w3.org/Icons/w3c_home" width="72"></a></p>
+   <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>
+<p>This is revision 1.3240.</p>
+   </div><div>
+   <a href="microdata.html">&#8592; 5 Microdata</a> &#8211;
+   <a href="Overview.html#contents">Table of contents</a> &#8211;
+   <a href="offline.html">6.7 Offline Web applications &#8594;</a>
+  </div>
+
+  <h2 id="browsers"><span class="secno">6 </span>Web browsers</h2><h3 id="windows"><span class="secno">6.1 </span>Browsing contexts</h3><p>A <dfn id="browsing-context">browsing context</dfn> is an environment in which
+  <code>Document</code> objects are presented to the user.</p><p class="note">A tab or window in a Web browser typically contains
+  a <a href="#browsing-context">browsing context</a>, as does an <code><a href="text-level-semantics.html#the-iframe-element">iframe</a></code>.</p><p>Each <a href="#browsing-context">browsing context</a> has a corresponding
+  <code><a href="#windowproxy">WindowProxy</a></code> object.</p><p>A <a href="#browsing-context">browsing context</a> has a <a href="history.html#session-history">session
+  history</a>, which lists the <code>Document</code> objects that
+  that <a href="#browsing-context">browsing context</a> has presented, is presenting, or
+  will present. At any time, one <code>Document</code> in each
+  <a href="#browsing-context">browsing context</a> is designated the <dfn id="active-document">active
+  document</dfn>.</p><p>Each <code>Document</code> has a collection of one or more <a href="#view" title="view">views</a>.</p><p>A <dfn id="view">view</dfn> is a user agent interface tied to a particular
+  media used for the presentation of a particular
+  <code>Document</code> object in some media. A view may be
+  interactive. Each view is represented by an
+  <code>AbstractView</code> object. <a href="references.html#refsDOMVIEWS">[DOMVIEWS]</a></p><p>The main <a href="#view">view</a> through which a user primarily
+  interacts with a user agent is the <dfn id="default-view">default view</dfn>. The
+  <code>AbstractView</code> object that represents this view  is referred to as the <code>Document</code>'s
+  <code><a href="#window">Window</a></code> object. <code><a href="#windowproxy">WindowProxy</a></code> objects forward
+  everything to the <a href="#active-document">active document</a>'s <a href="#default-view">default
+  view</a>'s <code><a href="#window">Window</a></code> object.</p><p class="note">The <code title="dom-document">document</code>
+  attribute of an <code>AbstractView</code> object representing a
+  <a href="#view">view</a> gives the view's corresponding
+  <code>Document</code> object. <a href="references.html#refsDOMVIEWS">[DOMVIEWS]</a></p><p class="note">In general, there is a 1-to-1 mapping from the
+  <code><a href="#window">Window</a></code> object to the <code>Document</code> object. In
+  one particular case, a set of <a href="#view" title="view">views</a> can be
+  reused for the presentation of a second <code>Document</code> in the
+  same <a href="#browsing-context">browsing context</a>, such that the mapping is then
+  2:1. This occurs when a <a href="#browsing-context">browsing context</a> is <a href="#navigate" title="navigate">navigated</a> from the initial
+  <code><a href="#about:blank">about:blank</a></code> <code>Document</code> to another, with
+  <a href="#replacement-enabled">replacement enabled</a>.</p><p class="note">A typical Web browser has one obvious
+  <a href="#view">view</a> per <code>Document</code>: the browser's window
+  (screen media). This is typically the <a href="#default-view">default view</a>. If
+  a page is printed, however, a second view becomes evident, that of
+  the print media. The two views always share the same underlying
+  <code>Document</code> object, but they have a different presentation
+  of that object. A speech browser might have a different
+  <a href="#default-view">default view</a>, using the speech media.</p><p class="note">A <code>Document</code> does not necessarily have a
+  <a href="#browsing-context">browsing context</a> associated with it. In particular,
+  data mining tools are likely to never instantiate browsing
+  contexts.</p><hr><p>A <a href="#browsing-context">browsing context</a> can have a <dfn id="creator-browsing-context">creator browsing
+  context</dfn>, the <a href="#browsing-context">browsing context</a> that was
+  responsible for its creation. </p><p>If a <a href="#browsing-context">browsing context</a> <var title="">A</var> has a
+  <a href="#creator-browsing-context">creator browsing context</a>, then the
+  <code>Document</code> that was the <a href="#active-document">active document</a> of
+  that <a href="#creator-browsing-context">creator browsing context</a> at the time <var title="">A</var> was created is the <dfn id="creator-document">creator
+  <code>Document</code></dfn>.</p><h4 id="nested-browsing-contexts"><span class="secno">6.1.1 </span>Nested browsing contexts</h4><p>Certain elements (for example, <code><a href="text-level-semantics.html#the-iframe-element">iframe</a></code> elements) can
+  instantiate further <a href="#browsing-context" title="browsing context">browsing
+  contexts</a>. These are called <dfn id="nested-browsing-context" title="nested browsing
+  context">nested browsing contexts</dfn>. If a browsing context <var title="">P</var> has an element <var title="">E</var> in one of its
+  <code>Document</code>s <var title="">D</var> that nests another
+  browsing context <var title="">C</var> inside it, then <var title="">P</var> is said to be the <dfn id="parent-browsing-context">parent browsing
+  context</dfn> of <var title="">C</var>, <var title="">C</var> is
+  said to be a <dfn id="child-browsing-context">child browsing context</dfn> of <var title="">P</var>, <var title="">C</var> is said to be <dfn id="browsing-context-nested-through" title="browsing context nested through">nested through</dfn> <var title="">D</var>, and <var title="">E</var> is said to be the
+  <dfn id="browsing-context-container">browsing context container</dfn> of <var title="">C</var>.</p><p>A browsing context <var title="">A</var> is said to be an
+  ancestor of a browsing context <var title="">B</var> if there exists
+  a browsing context <var title="">A'</var> that is a <a href="#child-browsing-context">child
+  browsing context</a> of <var title="">A</var> and that is itself
+  an ancestor of <var title="">B</var>, or if there is a browsing
+  context <var title="">P</var> that is a <a href="#child-browsing-context">child browsing
+  context</a> of <var title="">A</var> and that is the <a href="#parent-browsing-context">parent
+  browsing context</a> of <var title="">B</var>.</p><p>The browsing context with no <a href="#parent-browsing-context">parent browsing context</a>
+  is the <dfn id="top-level-browsing-context">top-level browsing context</dfn> of all the browsing
+  contexts <a href="#nested-browsing-context" title="nested browsing context">nested</a> within
+  it (either directly or indirectly through other nested browsing
+  contexts).</p><p>The transitive closure of <a href="#parent-browsing-context" title="parent browsing
+  context">parent browsing contexts</a> for a <a href="#nested-browsing-context">nested browsing
+  context</a> gives the list of <dfn id="ancestor-browsing-context" title="ancestor browsing
+  context">ancestor browsing contexts</dfn>.</p><p>A <code>Document</code> is said to be <dfn id="fully-active">fully active</dfn>
+  when it is the <a href="#active-document">active document</a> of its <a href="#browsing-context">browsing
+  context</a>, and either its browsing context is a <a href="#top-level-browsing-context">top-level
+  browsing context</a>, or the <code>Document</code> <a href="#browsing-context-nested-through" title="browsing context nested through">through which</a> that
+  browsing context is <a href="#nested-browsing-context" title="nested browsing
+  context">nested</a> is itself <a href="#fully-active">fully active</a>.</p><p>Because they are nested through an element, <a href="#child-browsing-context" title="child
+  browsing context">child browsing contexts</a> are always tied to
+  a specific <code>Document</code> in their <a href="#parent-browsing-context">parent browsing
+  context</a>. User agents must not allow the user to interact with
+  <a href="#child-browsing-context" title="child browsing context">child browsing contexts</a>
+  of elements that are in <code>Document</code>s that are not
+  themselves <a href="#fully-active">fully active</a>.</p><p>A <a href="#nested-browsing-context">nested browsing context</a> can have a <a href="#seamless-browsing-context-flag">seamless
+  browsing context flag</a> set, if it is embedded through an
+  <code><a href="text-level-semantics.html#the-iframe-element">iframe</a></code> element with a <code title="attr-iframe-seamless"><a href="text-level-semantics.html#attr-iframe-seamless">seamless</a></code> attribute.</p><h5 id="navigating-nested-browsing-contexts-in-the-dom"><span class="secno">6.1.1.1 </span>Navigating nested browsing contexts in the DOM</h5><dl class="domintro"><dt><var title="">window</var> . <code title="dom-top"><a href="#dom-top">top</a></code></dt>
+
+   <dd>
+
+    <p>Returns the <code><a href="#windowproxy">WindowProxy</a></code> for the <a href="#top-level-browsing-context">top-level browsing context</a>.</p>
+
+   </dd>
+
+   <dt><var title="">window</var> . <code title="dom-parent"><a href="#dom-parent">parent</a></code></dt>
+
+   <dd>
+
+    <p>Returns the <code><a href="#windowproxy">WindowProxy</a></code> for the <a href="#parent-browsing-context">parent browsing context</a>.</p>
+
+   </dd>
+
+   <dt><var title="">window</var> . <code title="dom-frameElement"><a href="#dom-frameelement">frameElement</a></code></dt>
+
+   <dd>
+
+    <p>Returns the <code>Element</code> for the <a href="#browsing-context-container">browsing context container</a>.</p>
+
+    <p>Returns null if there isn't one.</p>
+
+    <p>Throws a <code><a href="infrastructure.html#security_err">SECURITY_ERR</a></code> exception in cross-origin situations.</p>
+
+   </dd>
+
+  </dl><h4 id="auxiliary-browsing-contexts"><span class="secno">6.1.2 </span>Auxiliary browsing contexts</h4><p>It is possible to create new browsing contexts that are related
+  to a <a href="#top-level-browsing-context">top-level browsing context</a> without being nested
+  through an element. Such browsing contexts are called <dfn id="auxiliary-browsing-context" title="auxiliary browsing context">auxiliary browsing
+  contexts</dfn>. Auxiliary browsing contexts are always <a href="#top-level-browsing-context" title="top-level browsing context">top-level browsing
+  contexts</a>.</p><p>An <a href="#auxiliary-browsing-context">auxiliary browsing context</a> has an <dfn id="opener-browsing-context">opener
+  browsing context</dfn>, which is the <a href="#browsing-context">browsing context</a>
+  from which the <a href="#auxiliary-browsing-context">auxiliary browsing context</a> was created,
+  and it has a <dfn id="furthest-ancestor-browsing-context">furthest ancestor browsing context</dfn>, which is
+  the <a href="#top-level-browsing-context">top-level browsing context</a> of the <a href="#opener-browsing-context">opener
+  browsing context</a> when the <a href="#auxiliary-browsing-context">auxiliary browsing
+  context</a> was created.</p><h5 id="navigating-auxiliary-browsing-contexts-in-the-dom"><span class="secno">6.1.2.1 </span>Navigating auxiliary browsing contexts in the DOM</h5><p>The <dfn id="dom-opener" title="dom-opener"><code>opener</code></dfn> IDL
+  attribute on the <code><a href="#window">Window</a></code> object must return the
+  <code><a href="#windowproxy">WindowProxy</a></code> object of the <a href="#browsing-context">browsing context</a>
+  from which the current <a href="#browsing-context">browsing context</a> was created
+  (its <a href="#opener-browsing-context">opener browsing context</a>), if there is one and it
+  is still available.</p><h4 id="secondary-browsing-contexts"><span class="secno">6.1.3 </span>Secondary browsing contexts</h4><p>User agents may support <dfn id="secondary-browsing-context" title="secondary browsing
+  context">secondary browsing contexts</dfn>, which are <a href="#browsing-context" title="browsing context">browsing contexts</a> that form part of
+  the user agent's interface, apart from the main content area.</p><h4 id="browsing-context-names"><span class="secno">6.1.4 </span>Browsing context names</h4><p>Browsing contexts can have a <dfn id="browsing-context-name">browsing context name</dfn>. By
+  default, a browsing context has no name (its name is not set).</p><p>A <dfn id="valid-browsing-context-name">valid browsing context name</dfn> is any string with at
+  least one character that does not start with a U+005F LOW LINE
+  character. (Names starting with an underscore are reserved for
+  special keywords.)</p><p>A <dfn id="valid-browsing-context-name-or-keyword">valid browsing context name or keyword</dfn> is any string
+  that is either a <a href="#valid-browsing-context-name">valid browsing context name</a> or that is
+  an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for one of: <code title="">_blank</code>, <code title="">_self</code>, <code title="">_parent</code>, or <code title="">_top</code>.</p><h3 id="the-window-object"><span class="secno">6.2 </span>The <code><a href="#window">Window</a></code> object</h3><pre class="idl">[OverrideBuiltins]
+interface <dfn id="window">Window</dfn> {
+  // the current browsing context
+  readonly attribute <a href="#windowproxy">WindowProxy</a> <a href="#dom-window" title="dom-window">window</a>;
+  readonly attribute <a href="#windowproxy">WindowProxy</a> <a href="#dom-self" title="dom-self">self</a>;
+           attribute DOMString <a href="#dom-name" title="dom-name">name</a>;
+  [PutForwards=href] readonly attribute <a href="history.html#location">Location</a> <a href="#dom-location" title="dom-location">location</a>;
+  readonly attribute <a href="history.html#history-0">History</a> <a href="#dom-history" title="dom-history">history</a>;
+  readonly attribute <a href="editing.html#undomanager">UndoManager</a> <a href="#dom-undomanager" title="dom-undoManager">undoManager</a>;
+  <a href="editing.html#selection-0">Selection</a> <a href="#dom-getselection" title="dom-getSelection">getSelection</a>();
+  [Replaceable] readonly attribute <a href="#barprop">BarProp</a> <a href="#dom-window-locationbar" title="dom-window-locationbar">locationbar</a>;
+  [Replaceable] readonly attribute <a href="#barprop">BarProp</a> <a href="#dom-window-menubar" title="dom-window-menubar">menubar</a>;
+  [Replaceable] readonly attribute <a href="#barprop">BarProp</a> <a href="#dom-window-personalbar" title="dom-window-personalbar">personalbar</a>;
+  [Replaceable] readonly attribute <a href="#barprop">BarProp</a> <a href="#dom-window-scrollbars" title="dom-window-scrollbars">scrollbars</a>;
+  [Replaceable] readonly attribute <a href="#barprop">BarProp</a> <a href="#dom-window-statusbar" title="dom-window-statusbar">statusbar</a>;
+  [Replaceable] readonly attribute <a href="#barprop">BarProp</a> <a href="#dom-window-toolbar" title="dom-window-toolbar">toolbar</a>;<!--
+  [Replaceable] readonly attribute <span>BarProp</span> <span title="dom-window-directories">directories</span>; // legacy (Gecko-only) -->
+  void <a href="#dom-window-close" title="dom-window-close">close</a>();
+  void <a href="#dom-window-focus" title="dom-window-focus">focus</a>();
+  void <a href="#dom-window-blur" title="dom-window-blur">blur</a>();
+
+  // other browsing contexts
+  [Replaceable] readonly attribute <a href="#windowproxy">WindowProxy</a> <a href="#dom-frames" title="dom-frames">frames</a>;
+  [Replaceable] readonly attribute unsigned long <a href="#dom-length" title="dom-length">length</a>;
+  readonly attribute <a href="#windowproxy">WindowProxy</a> <a href="#dom-top" title="dom-top">top</a>;
+  [Replaceable] readonly attribute <a href="#windowproxy">WindowProxy</a> <a href="#dom-opener" title="dom-opener">opener</a>;
+  readonly attribute <a href="#windowproxy">WindowProxy</a> <a href="#dom-parent" title="dom-parent">parent</a>;
+  readonly attribute <span>Element</span> <a href="#dom-frameelement" title="dom-frameElement">frameElement</a>;
+  <a href="#windowproxy">WindowProxy</a> <a href="#dom-open" title="dom-open">open</a>(in optional DOMString url, in optional DOMString target, in optional DOMString features, in optional DOMString replace);
+  <a href="#dom-window-item" title="dom-window-item">getter</a> <a href="#windowproxy">WindowProxy</a> (in unsigned long index);
+  <a href="#dom-window-nameditem" title="dom-window-namedItem">getter</a> <a href="#windowproxy">WindowProxy</a> (in DOMString name);
+
+  // the user agent
+  readonly attribute <a href="#navigator">Navigator</a> <a href="#dom-navigator" title="dom-navigator">navigator</a>; <!-- IE also has window.clientInformation === window.navigator -->
+  readonly attribute <a href="offline.html#applicationcache">ApplicationCache</a> <a href="#dom-applicationcache" title="dom-applicationCache">applicationCache</a>;
+
+  // user prompts
+  void <a href="#dom-alert" title="dom-alert">alert</a>(in DOMString message);
+  boolean <a href="#dom-confirm" title="dom-confirm">confirm</a>(in DOMString message);
+  DOMString <a href="#dom-prompt" title="dom-prompt">prompt</a>(in DOMString message, in optional DOMString default);
+  void <a href="#dom-print" title="dom-print">print</a>();
+  any <a href="#dom-showmodaldialog" title="dom-showModalDialog">showModalDialog</a>(in DOMString url, in optional any argument<!--, in optional DOMString features-->);
+
+  // <a href="comms.html#crossDocumentMessages">cross-document messaging</a>
+  void <a href="#dom-window-postmessage-2" title="dom-window-postMessage-2">postMessage</a>(in any message, in DOMString targetOrigin);
+  void <a href="#dom-window-postmessage-3" title="dom-window-postMessage-3">postMessage</a>(in any message, in <a href="comms.html#messageportarray">MessagePortArray</a> ports, in DOMString targetOrigin);
+
+  // <a href="#event-handler-idl-attributes">event handler IDL attributes</a>
+           attribute <a href="#function">Function</a> <a href="#handler-onabort" title="handler-onabort">onabort</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-onafterprint" title="handler-window-onafterprint">onafterprint</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-onbeforeprint" title="handler-window-onbeforeprint">onbeforeprint</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-onbeforeunload" title="handler-window-onbeforeunload">onbeforeunload</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-onblur" title="handler-window-onblur">onblur</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-oncanplay" title="handler-oncanplay">oncanplay</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-oncanplaythrough" title="handler-oncanplaythrough">oncanplaythrough</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onchange" title="handler-onchange">onchange</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onclick" title="handler-onclick">onclick</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-oncontextmenu" title="handler-oncontextmenu">oncontextmenu</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-ondblclick" title="handler-ondblclick">ondblclick</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-ondrag" title="handler-ondrag">ondrag</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-ondragend" title="handler-ondragend">ondragend</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-ondragenter" title="handler-ondragenter">ondragenter</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-ondragleave" title="handler-ondragleave">ondragleave</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-ondragover" title="handler-ondragover">ondragover</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-ondragstart" title="handler-ondragstart">ondragstart</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-ondrop" title="handler-ondrop">ondrop</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-ondurationchange" title="handler-ondurationchange">ondurationchange</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onemptied" title="handler-onemptied">onemptied</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onended" title="handler-onended">onended</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-onerror" title="handler-window-onerror">onerror</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-onfocus" title="handler-window-onfocus">onfocus</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onformchange" title="handler-onformchange">onformchange</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onforminput" title="handler-onforminput">onforminput</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-onhashchange" title="handler-window-onhashchange">onhashchange</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-oninput" title="handler-oninput">oninput</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-oninvalid" title="handler-oninvalid">oninvalid</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onkeydown" title="handler-onkeydown">onkeydown</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onkeypress" title="handler-onkeypress">onkeypress</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onkeyup" title="handler-onkeyup">onkeyup</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-onload" title="handler-window-onload">onload</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onloadeddata" title="handler-onloadeddata">onloadeddata</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onloadedmetadata" title="handler-onloadedmetadata">onloadedmetadata</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onloadstart" title="handler-onloadstart">onloadstart</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-onmessage" title="handler-window-onmessage">onmessage</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onmousedown" title="handler-onmousedown">onmousedown</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onmousemove" title="handler-onmousemove">onmousemove</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onmouseout" title="handler-onmouseout">onmouseout</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onmouseover" title="handler-onmouseover">onmouseover</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onmouseup" title="handler-onmouseup">onmouseup</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onmousewheel" title="handler-onmousewheel">onmousewheel</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-onoffline" title="handler-window-onoffline">onoffline</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-ononline" title="handler-window-ononline">ononline</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onpause" title="handler-onpause">onpause</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onplay" title="handler-onplay">onplay</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onplaying" title="handler-onplaying">onplaying</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-onpopstate" title="handler-window-onpopstate">onpopstate</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onprogress" title="handler-onprogress">onprogress</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onratechange" title="handler-onratechange">onratechange</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onreadystatechange" title="handler-onreadystatechange">onreadystatechange</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-onredo" title="handler-window-onredo">onredo</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-onresize" title="handler-window-onresize">onresize</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onscroll" title="handler-onscroll">onscroll</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onseeked" title="handler-onseeked">onseeked</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onseeking" title="handler-onseeking">onseeking</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onselect" title="handler-onselect">onselect</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onshow" title="handler-onshow">onshow</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onstalled" title="handler-onstalled">onstalled</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-onstorage" title="handler-window-onstorage">onstorage</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onsubmit" title="handler-onsubmit">onsubmit</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onsuspend" title="handler-onsuspend">onsuspend</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-ontimeupdate" title="handler-ontimeupdate">ontimeupdate</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-onundo" title="handler-window-onundo">onundo</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-window-onunload" title="handler-window-onunload">onunload</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onvolumechange" title="handler-onvolumechange">onvolumechange</a>;
+           attribute <a href="#function">Function</a> <a href="#handler-onwaiting" title="handler-onwaiting">onwaiting</a>;
+};
+<a href="#window">Window</a> implements <span>EventTarget</span>;</pre><!-- for more features to add here, look here:
+ http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/obj_window.asp
+ http://www.mozilla.org/docs/dom/domref/dom_window_ref.html
+ http://lxr.mozilla.org/mozilla/source/dom/public/idl/base/nsIDOMWindow.idl - scrollBy, etc
+ http://lxr.mozilla.org/mozilla/source/dom/public/idl/base/nsIDOMWindowInternal.idl - DOM level 0
+--><dl class="domintro"><dt><var title="">window</var> . <code title="dom-window"><a href="#dom-window">window</a></code></dt>
+   <dt><var title="">window</var> . <code title="dom-frames"><a href="#dom-frames">frames</a></code></dt>
+   <dt><var title="">window</var> . <code title="dom-self"><a href="#dom-self">self</a></code></dt>
+
+   <dd>
+
+    <p>These attributes all return <var title="">window</var>.</p>
+
+   </dd>
+
+  </dl><h4 id="apis-for-creating-and-navigating-browsing-contexts-by-name"><span class="secno">6.2.1 </span>APIs for creating and navigating browsing contexts by name</h4><dl class="domintro"><dt><var title="">window</var> = <var title="">window</var> . <code title="dom-open"><a href="#dom-open">open</a></code>( [ <var title="">url</var> [, <var title="">target</var> [, <var title="">features</var> [, <var title="">replace</var> ] ] ] ] )</dt>
+
+   <dd>
+
+    <p>Opens a window to show <var title="">url</var> (defaults to
+    <code><a href="#about:blank">about:blank</a></code>), and returns it. The <var title="">target</var> argument gives the name of the new
+    window. If a window exists with that name already, it is
+    reused. The <var title="">replace</var> attribute, if true, means
+    that whatever page is currently open in that window will be
+    removed from the window's session history. The <var title="">features</var> argument is ignored.</p>
+
+   </dd>
+
+   <dt><var title="">window</var> . <code title="dom-name"><a href="#dom-name">name</a></code> [ = <var title="">value</var> ]</dt>
+
+   <dd>
+
+    <p>Returns the name of the window.</p>
+
+    <p>Can be set, to change the name.</p>
+
+   </dd>
+
+   <dt><var title="">window</var> . <code title="dom-close">close</code>()</dt>
+
+   <dd>
+
+    <p>Closes the window.</p>
+
+   </dd>
+
+  </dl><h4 id="accessing-other-browsing-contexts"><span class="secno">6.2.2 </span>Accessing other browsing contexts</h4><dl class="domintro"><dt><var title="">window</var> . <code title="dom-length"><a href="#dom-length">length</a></code></dt>
+
+   <dd>
+
+    <p>Returns the number of <a href="#child-browsing-context" title="child browsing
+    context">child browsing contexts</a>.</p>
+
+   </dd>
+
+   <dt><var title="">window</var>[<var title="">index</var>]</dt>
+
+   <dd>
+
+    <p>Returns the indicated <a href="#child-browsing-context">child browsing context</a>.</p>
+
+   </dd>
+
+  </dl><h4 id="named-access-on-the-window-object"><span class="secno">6.2.3 </span>Named access on the <code><a href="#window">Window</a></code> object</h4><dl class="domintro"><dt><var title="">window</var>[<var title="">name</var>]</dt>
+
+   <dd>
+
+    <p>Returns the indicated <a href="#child-browsing-context">child browsing context</a>.</p>
+
+   </dd>
+
+  </dl><h4 id="browser-interface-elements"><span class="secno">6.2.4 </span>Browser interface elements</h4><p>To allow Web pages to integrate with Web browsers, certain Web
+  browser interface elements are exposed in a limited way to scripts
+  in Web pages.</p><p>Each interface element is represented by a <code><a href="#barprop">BarProp</a></code>
+  object:</p><pre class="idl">interface <dfn id="barprop">BarProp</dfn> {
+           attribute boolean <a href="#dom-barprop-visible" title="dom-BarProp-visible">visible</a>;
+};</pre><dl class="domintro"><dt><var title="">window</var> . <code title="dom-window-locationbar"><a href="#dom-window-locationbar">locationbar</a></code> . <code title="dom-BarProp-visible"><a href="#dom-barprop-visible">visible</a></code></dt>
+   <dd>
+    <p>Returns true if the location bar is visible; otherwise, returns false.</p>
+   </dd>
+
+   <dt><var title="">window</var> . <code title="dom-window-menubar"><a href="#dom-window-menubar">menubar</a></code> . <code title="dom-BarProp-visible"><a href="#dom-barprop-visible">visible</a></code></dt>
+   <dd>
+    <p>Returns true if the menu bar is visible; otherwise, returns false.</p>
+   </dd>
+
+   <dt><var title="">window</var> . <code title="dom-window-personalbar"><a href="#dom-window-personalbar">personalbar</a></code> . <code title="dom-BarProp-visible"><a href="#dom-barprop-visible">visible</a></code></dt>
+   <!--<dt><var title="">window</var> . <code title="dom-window-directories">directories</code> . <code title="dom-BarProp-visible">visible</code></dt>-->
+   <dd>
+    <p>Returns true if the personal bar is visible; otherwise, returns false.</p>
+   </dd>
+
+   <dt><var title="">window</var> . <code title="dom-window-scrollbars"><a href="#dom-window-scrollbars">scrollbars</a></code> . <code title="dom-BarProp-visible"><a href="#dom-barprop-visible">visible</a></code></dt>
+   <dd>
+    <p>Returns true if the scroll bars are visible; otherwise, returns false.</p>
+   </dd>
+
+   <dt><var title="">window</var> . <code title="dom-window-statusbar"><a href="#dom-window-statusbar">statusbar</a></code> . <code title="dom-BarProp-visible"><a href="#dom-barprop-visible">visible</a></code></dt>
+   <dd>
+    <p>Returns true if the status bar is visible; otherwise, returns false.</p>
+   </dd>
+
+   <dt><var title="">window</var> . <code title="dom-window-toolbar"><a href="#dom-window-toolbar">toolbar</a></code> . <code title="dom-BarProp-visible"><a href="#dom-barprop-visible">visible</a></code></dt>
+   <dd>
+    <p>Returns true if the toolbar is visible; otherwise, returns false.</p>
+   </dd>
+
+  </dl><h4 id="relaxing-the-same-origin-restriction"><span class="secno">6.2.5 </span>Relaxing the same-origin restriction</h4><dl class="domintro"><dt><var title="">document</var> . <code title="dom-document-domain"><a href="#dom-document-domain">domain</a></code> [ = <var title="">domain</var> ]</dt>
+
+   <dd>
+
+    <p>Returns the current domain used for security checks.</p>
+
+    <p>Can be set to a value that removes subdomains, to allow pages
+    on other subdomains of the same domain (if they do the same thing)
+    to access each other.</p>
+
+   </dd>
+
+  </dl><p class="note">The <code title="dom-document-domain"><a href="#dom-document-domain">domain</a></code>
+  attribute is used to enable pages on different hosts of a domain to
+  access each others' DOMs.</p><p class="warning">Do not use the <code title="dom-document-domain"><a href="#dom-document-domain">document.domain</a></code> attribute when
+  using shared hosting. If an untrusted third party is able to host an
+  HTTP server at the same IP address but on a different port, then the
+  same-origin protection that normally protects two different sites on
+  the same host will fail, as the ports are ignored when comparing
+  origins after the <code title="dom-document-domain"><a href="#dom-document-domain">document.domain</a></code> attribute has
+  been used.</p><h3 id="scripting"><span class="secno">6.3 </span>Scripting</h3><h4 id="introduction-2"><span class="secno">6.3.1 </span>Introduction</h4><p>Various mechanisms can cause author-provided executable code to
+  run in the context of a document. These mechanisms include, but are
+  probably not limited to:</p><ul><li>Processing of <code><a href="semantics.html#script">script</a></code> elements.</li>
+
+   <li>Processing of inline <code title="javascript
+   protocol"><a href="#javascript-protocol">javascript:</a></code> URLs (e.g. the <code title="attr-img-src"><a href="text-level-semantics.html#attr-img-src">src</a></code> attribute of <code><a href="text-level-semantics.html#the-img-element">img</a></code>
+   elements, or an <code title="">@import</code> rule in a CSS
+   <code><a href="semantics.html#the-style-element">style</a></code> element block).</li>
+
+   <li>Event handlers, whether registered through the DOM using <code title="">addEventListener()</code>, by explicit <a href="#event-handler-content-attributes">event handler
+   content attributes</a>, by <a href="#event-handler-idl-attributes">event handler IDL
+   attributes</a>, or otherwise.</li>
+
+   <li>Processing of technologies like XBL or SVG that have their own
+   scripting features.</li>
+
+  </ul><h4 id="events"><span class="secno">6.3.2 </span>Events</h4><p class="XXX annotation"><b>Status: </b><i>Last call for comments</i></p><!--test: <a href="http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A...%3Cscript%3E%0Aw(a%3Ddocument.implementation.createDocument(null%2C%20null%2C%20null))%3B%0Aw(a.appendChild(a.createElementNS('http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml'%2C%20'html')))%3B%0Aw(b%3Da.firstChild.appendChild(a.createElementNS('http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml'%2C%20'body')))%3B%0Aw(b.test%20%3D%20w)%3B%0Aw(b.setAttribute('onclick'%2C%20'test(%22fire%3A%20%22%20%2B%20event)'))%3B%0Aw(b.onclick)%3B%0Aw(e%3Da.createEvent('Event'))%3B%0Aw(e.initEvent('click'%2C%20false%2C%20false))%3B%0Aw(b.dispatchEvent(e))%3B%0A%3C%2Fscript%3E">test</a>--><p>Many objects can have <dfn id="event-handlers">event handlers</dfn> specified. These
+  act as bubbling event listeners for the object on which they are
+  specified.</p><p>An <a href="#event-handlers" title="event handlers">event handler</a> can either
+  have the value null or be set to a <code><a href="#function">Function</a></code>
+  object. </p><p>Event handlers are exposed in one or two ways.</p><p>The first way, common to all event handlers, is as an <a href="#event-handler-idl-attributes" title="event handler IDL attributes">event handler IDL
+  attribute</a>.</p><p>The second way is as an <a href="#event-handler-content-attributes" title="event handler content
+  attributes">event handler content attribute</a>. Event handlers
+  on <a href="infrastructure.html#html-elements">HTML elements</a> and some of the event handlers on
+  <code><a href="#window">Window</a></code> objects are exposed in this way.</p><p><dfn id="event-handler-content-attributes">Event handler content attributes</dfn>, when specified, must
+  contain valid JavaScript code matching the <code title="">FunctionBody</code> production. <a href="references.html#refsECMA262">[ECMA262]</a></p><p class="note">When an <a href="#event-handler-content-attributes" title="event handler content
+  attributes">event handler content attribute</a> is set on an
+  element owned by a <code>Document</code> that is not in a
+  <a href="#browsing-context">browsing context</a>, the corresponding event handler is
+  not changed.</p><!-- v2: we should probably support HTML4's Content-Script-Type header here. --><h3 id="timers"><span class="secno">6.4 </span>Timers</h3><p class="XXX annotation"><b>Status: </b><i>Last call for comments</i></p><p>The <code title="dom-windowtimers-setTimeout"><a href="#dom-windowtimers-settimeout">setTimeout()</a></code>
+  and <code title="dom-windowtimers-setInterval"><a href="#dom-windowtimers-setinterval">setInterval()</a></code>
+  methods allow authors to schedule timer-based callbacks.</p><pre class="idl">[Supplemental, NoInterfaceObject]
+interface <dfn id="windowtimers">WindowTimers</dfn> {
+  long <a href="#dom-windowtimers-settimeout" title="dom-windowtimers-setTimeout">setTimeout</a>(in any handler, in optional any timeout, in any... args);
+  void <a href="#dom-windowtimers-cleartimeout" title="dom-windowtimers-clearTimeout">clearTimeout</a>(in long handle);
+  long <a href="#dom-windowtimers-setinterval" title="dom-windowtimers-setInterval">setInterval</a>(in any handler, in optional any timeout, in any... args);
+  void <a href="#dom-windowtimers-clearinterval" title="dom-windowtimers-clearInterval">clearInterval</a>(in long handle);
+};
+<a href="#window">Window</a> implements <a href="#windowtimers">WindowTimers</a>;</pre><dl class="domintro"><dt><var title="">handle</var> = <var title="">window</var> . <code title="dom-windowtimers-setTimeout"><a href="#dom-windowtimers-settimeout">setTimeout</a></code>( <var title="">handler</var> [, <var title="">timeout</var> [, <var title="">arguments</var> ] ] )</dt>
+
+   <dd>
+
+    <p>Schedules a timeout to run <var title="">handler</var> after
+    <var title="">timeout</var> milliseconds. Any <var title="">arguments</var> are passed straight through to the <var title="">handler</var>.</p>
+
+   </dd>
+
+   <dt><var title="">handle</var> = <var title="">window</var> . <code title="dom-windowtimers-setTimeout"><a href="#dom-windowtimers-settimeout">setTimeout</a></code>( <var title="">code</var> [, <var title="">timeout</var> ] )</dt>
+
+   <dd>
+
+    <p>Schedules a timeout to compile and run <var title="">code</var>
+    after <var title="">timeout</var> milliseconds.</p>
+
+   </dd>
+
+   <dt><var title="">window</var> . <code title="dom-windowtimers-clearTimeout"><a href="#dom-windowtimers-cleartimeout">clearTimeout</a></code>( <var title="">handle</var> )</dt>
+
+   <dd>
+
+    <p>Cancels the timeout set with <code title="dom-windowtimers-setTimeout"><a href="#dom-windowtimers-settimeout">setTimeout()</a></code> identified by <var title="">handle</var>.</p>
+
+   </dd>
+
+   <dt><var title="">handle</var> = <var title="">window</var> . <code title="dom-windowtimers-setInterval"><a href="#dom-windowtimers-setinterval">setInterval</a></code>( <var title="">handler</var> [, <var title="">timeout</var> [, <var title="">arguments</var> ] ] )</dt>
+
+   <dd>
+
+    <p>Schedules a timeout to run <var title="">handler</var> every
+    <var title="">timeout</var> milliseconds. Any <var title="">arguments</var> are passed straight through to the <var title="">handler</var>.</p>
+
+   </dd>
+
+   <dt><var title="">handle</var> = <var title="">window</var> . <code title="dom-windowtimers-setInterval"><a href="#dom-windowtimers-setinterval">setInterval</a></code>( <var title="">code</var> [, <var title="">timeout</var> ] )</dt>
+
+   <dd>
+
+    <p>Schedules a timeout to compile and run <var title="">code</var>
+    every <var title="">timeout</var> milliseconds.</p>
+
+   </dd>
+
+   <dt><var title="">window</var> . <code title="dom-windowtimers-clearInterval"><a href="#dom-windowtimers-clearinterval">clearInterval</a></code>( <var title="">handle</var> )</dt>
+
+   <dd>
+
+    <p>Cancels the timeout set with <code title="dom-windowtimers-setInterval"><a href="#dom-windowtimers-setinterval">setInterval()</a></code> identified by <var title="">handle</var>.</p>
+
+   </dd>
+
+  </dl><p class="note">This API does not guarantee that timers will fire
+  exactly on schedule. Delays due to CPU load, other tasks, etc, are
+  to be expected.</p><h3 id="user-prompts"><span class="secno">6.5 </span>User prompts</h3><!--
+   v2 ideas:
+    * in-window modal dialogs
+       - escape/enter handling
+       - dragging the window out of the tab
+    * in-window non-modal palettes
+       - with a solution for the mobile space
+  --><h4 id="simple-dialogs"><span class="secno">6.5.1 </span>Simple dialogs</h4><dl class="domintro"><dt><var title="">window</var> . <code title="dom-alert"><a href="#dom-alert">alert</a></code>(<var title="">message</var>)</dt>
+   <dd>
+
+    <p>Displays a modal alert with the given message, and waits for the user to dismiss it.</p>
+
+    <p>A call to the <code title="dom-navigator-yieldForStorageUpdates"><a href="#dom-navigator-yieldforstorageupdates">navigator.yieldForStorageUpdates()</a></code>
+    method is implied when this method is invoked.</p>
+
+   </dd>
+
+   <dt><var title="">result</var> = <var title="">window</var> . <code title="dom-confirm"><a href="#dom-confirm">confirm</a></code>(<var title="">message</var>)</dt>
+   <dd>
+
+    <p>Displays a modal OK/Cancel prompt with the given message, waits
+    for the user to dismiss it, and returns true if the user clicks OK
+    and false if the user clicks Cancel.</p>
+
+    <p>A call to the <code title="dom-navigator-yieldForStorageUpdates"><a href="#dom-navigator-yieldforstorageupdates">navigator.yieldForStorageUpdates()</a></code>
+    method is implied when this method is invoked.</p>
+
+   </dd>
+
+   <dt><var title="">result</var> = <var title="">window</var> . <code title="dom-prompt"><a href="#dom-prompt">prompt</a></code>(<var title="">message</var> [, <var title="">default</var>] )</dt>
+   <dd>
+
+    <p>Displays a modal text field prompt with the given message,
+    waits for the user to dismiss it, and returns the value that the
+    user entered. If the user cancels the prompt, then returns null
+    instead. If the second argument is present, then the given value
+    is used as a default.</p>
+
+    <p>A call to the <code title="dom-navigator-yieldForStorageUpdates"><a href="#dom-navigator-yieldforstorageupdates">navigator.yieldForStorageUpdates()</a></code>
+    method is implied when this method is invoked.</p>
+
+   </dd>
+
+  </dl><h4 id="printing"><span class="secno">6.5.2 </span>Printing</h4><p class="XXX annotation"><b>Status: </b><i>First draft</i></p><dl class="domintro"><dt><var title="">window</var> . <code title="dom-print"><a href="#dom-print">print</a></code>()</dt>
+
+   <dd>
+
+    <p>Prompts the user to print the page.</p>
+
+    <p>A call to the <code title="dom-navigator-yieldForStorageUpdates"><a href="#dom-navigator-yieldforstorageupdates">navigator.yieldForStorageUpdates()</a></code>
+    method is implied when this method is invoked.</p>
+
+   </dd>
+
+  </dl><h4 id="dialogs-implemented-using-separate-documents"><span class="secno">6.5.3 </span>Dialogs implemented using separate documents</h4><dl class="domintro"><dt><var title="">result</var> = <var title="">window</var> . <code title="dom-showModalDialog"><a href="#dom-showmodaldialog">showModalDialog</a></code>(<var title="">url</var> [, <var title="">argument</var>] )</dt>
+
+   <dd>
+
+    <p>Prompts the user with the given page, waits for that page to
+    close, and returns the return value.</p>
+
+    <p>A call to the <code title="dom-navigator-yieldForStorageUpdates"><a href="#dom-navigator-yieldforstorageupdates">navigator.yieldForStorageUpdates()</a></code>
+    method is implied when this method is invoked.</p>
+
+   </dd>
+
+  </dl><pre class="idl">[Supplemental, NoInterfaceObject] interface <dfn id="windowmodal">WindowModal</dfn> {
+  readonly attribute any <a href="#dom-windowmodal-dialogarguments" title="dom-WindowModal-dialogArguments">dialogArguments</a>;
+           attribute DOMString <a href="#dom-windowmodal-returnvalue" title="dom-WindowModal-returnValue">returnValue</a>;
+};
+<a href="#window">Window</a> implements <a href="#windowmodal">WindowModal</a>; /* sometimes */</pre><dl class="domintro"><dt><var title="">window</var> . <code title="dom-WindowModal-dialogArguments"><a href="#dom-windowmodal-dialogarguments">dialogArguments</a></code></dt>
+
+   <dd>
+
+    <p>Returns the <var title="">argument</var> argument that was
+    passed to the <code title="dom-showModalDialog"><a href="#dom-showmodaldialog">showModalDialog()</a></code> method.</p>
+
+   </dd>
+
+   <dt><var title="">window</var> . <code title="dom-WindowModal-returnValue"><a href="#dom-windowmodal-returnvalue">returnValue</a></code> [ = <var title="">value</var> ]</dt>
+
+   <dd>
+
+    <p>Returns the current return value for the window.</p>
+
+    <p>Can be set, to change the value that will be returned by the
+    <code title="dom-showModalDialog"><a href="#dom-showmodaldialog">showModalDialog()</a></code>
+    method.</p>
+
+   </dd>
+
+  </dl><p class="note">The <code title="dom-window-close"><a href="#dom-window-close">window.close()</a></code> method can be used to
+  close the browsing context.</p><h3 id="system-state-and-capabilities"><span class="secno">6.6 </span>System state and capabilities</h3><pre class="idl">interface <dfn id="navigator">Navigator</dfn> {
+  // objects implementing this interface also implement the interfaces given below
+};
+<a href="#navigator">Navigator</a> implements <a href="#navigatorid">NavigatorID</a>;
+<a href="#navigator">Navigator</a> implements <a href="#navigatoronline">NavigatorOnLine</a>;
+<a href="#navigator">Navigator</a> implements <a href="#navigatorabilities">NavigatorAbilities</a>;
+
+[Supplemental, NoInterfaceObject]
+interface <dfn id="navigatorid">NavigatorID</dfn> {<!--
+  readonly attribute DOMString <span title="dom-navigator-appCodeName">appCodeName</span>;-->
+  readonly attribute DOMString <a href="#dom-navigator-appname" title="dom-navigator-appName">appName</a>;
+  readonly attribute DOMString <a href="#dom-navigator-appversion" title="dom-navigator-appVersion">appVersion</a>;
+  readonly attribute DOMString <a href="#dom-navigator-platform" title="dom-navigator-platform">platform</a>;
+  readonly attribute DOMString <a href="#dom-navigator-useragent" title="dom-navigator-userAgent">userAgent</a>;
+};
+
+[Supplemental, NoInterfaceObject]
+interface <dfn id="navigatoronline">NavigatorOnLine</dfn> {
+  readonly attribute boolean <a href="#dom-navigator-online" title="dom-navigator-onLine">onLine</a>;
+};
+
+[Supplemental, NoInterfaceObject]
+interface <dfn id="navigatorabilities">NavigatorAbilities</dfn> {
+  // content handler registration
+  void <a href="#dom-navigator-registerprotocolhandler" title="dom-navigator-registerProtocolHandler">registerProtocolHandler</a>(in DOMString scheme, in DOMString url, in DOMString title);
+  void <a href="#dom-navigator-registercontenthandler" title="dom-navigator-registerContentHandler">registerContentHandler</a>(in DOMString mimeType, in DOMString url, in DOMString title);
+  void <a href="#dom-navigator-yieldforstorageupdates" title="dom-navigator-yieldForStorageUpdates">yieldForStorageUpdates</a>();
+<!--  v2: cookieEnabled geolocator javaEnabled mozIsLocallyAvailable preference
+  readonly attribute <span>MimeTypeArray</span> <span title="dom-navigator-mimeTypes">mimeTypes</span>;
+  readonly attribute <span>PluginArray</span> <span title="dom-navigator-plugins">plugins</span>;
+  (the latter is used in a <video> element demo now, so we might need to pull this forward from v2!)
+-->};</pre><h4 id="client-identification"><span class="secno">6.6.1 </span>Client identification</h4><p>In certain cases, despite the best efforts of the entire
+  industry, Web browsers have bugs and limitations that Web authors
+  are forced to work around.</p><p>This section defines a collection of attributes that can be used
+  to determine, from script, the kind of user agent in use, in order
+  to work around these issues.</p><p>Client detection should always be limited to detecting known
+  current versions; future versions and unknown versions should always
+  be assumed to be fully compliant.</p><dl class="domintro"><dt><var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-appName"><a href="#dom-navigator-appname">appName</a></code></dt>
+   <dd>
+    <p>Returns the name of the browser.</p>
+   </dd>
+
+   <dt><var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-appVersion"><a href="#dom-navigator-appversion">appVersion</a></code></dt>
+   <dd>
+    <p>Returns the version of the browser.</p>
+   </dd>
+
+   <dt><var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-platform"><a href="#dom-navigator-platform">platform</a></code></dt>
+   <dd>
+    <p>Returns the name of the platform.</p>
+   </dd>
+
+   <dt><var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-userAgent"><a href="#dom-navigator-useragent">userAgent</a></code></dt>
+   <dd>
+    <p>Returns the complete User-Agent header.</p>
+   </dd>
+
+  </dl><h4 id="custom-handlers"><span class="secno">6.6.2 </span>Custom scheme and content handlers</h4><p class="XXX annotation"><b>Status: </b><i>Working draft</i></p><p>The <dfn id="dom-navigator-registerprotocolhandler" title="dom-navigator-registerProtocolHandler"><code>registerProtocolHandler()</code></dfn>
+  method allows Web sites to register themselves as possible handlers
+  for particular schemes. For example, an online fax service could
+  register itself as a handler of the <code>fax:</code> scheme (<a href="references.html#refsRFC2806">[RFC2806]</a>), so that if the user clicks on
+  such a link, he is given the opportunity to use that Web
+  site. Analogously, the <dfn id="dom-navigator-registercontenthandler" title="dom-navigator-registerContentHandler"><code>registerContentHandler()</code></dfn>
+  method allows Web sites to register themselves as possible handlers
+  for content in a particular <a href="infrastructure.html#mime-type">MIME type</a>. For example, the same online
+  fax service could register itself as a handler for
+  <code>image/g3fax</code> files (<a href="references.html#refsRFC1494">[RFC1494]</a>), so that if the user has no
+  native application capable of handling G3 Facsimile byte streams,
+  his Web browser can instead suggest he use that site to view the
+  image.</p><dl class="domintro"><dt><var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-registerProtocolHandler"><a href="#dom-navigator-registerprotocolhandler">registerProtocolHandler</a></code>(<var title="">scheme</var>, <var title="">url</var>, <var title="">title</var>)</dt>
+   <dt><var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-registerContentHandler"><a href="#dom-navigator-registercontenthandler">registerContentHandler</a></code>(<var title="">mimeType</var>, <var title="">url</var>, <var title="">title</var>)</dt>
+
+   <dd>
+
+    <p>Registers a handler for the given scheme or content type, at
+    the given URL, with the given title.</p>
+
+    <p>The string "<code title="">%s</code>" in the URL is used as a
+    placeholder for where to put the URL of the content to be
+    handled.</p>
+
+    <p>Throws a <code><a href="infrastructure.html#security_err">SECURITY_ERR</a></code> exception if the user agent
+    blocks the registration (this might happen if trying to register
+    as a handler for "http", for instance).</p>
+
+    <p>Throws a <code><a href="infrastructure.html#syntax_err">SYNTAX_ERR</a></code> if the "<code title="">%s</code>" string is missing in the URL.</p>
+
+   </dd>
+
+  </dl><h4 id="manually-releasing-the-storage-mutex"><span class="secno">6.6.3 </span>Manually releasing the storage mutex</h4><dl class="domintro"><dt><var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-yieldForStorageUpdates"><a href="#dom-navigator-yieldforstorageupdates">yieldForStorageUpdates</a></code>()</dt>
+
+   <dd>
+
+    <p>If a script uses the <code title="dom-document-cookie"><a href="#dom-document-cookie">document.cookie</a></code> API, or the
+    <code title="dom-localStorage">localStorage</code> API, the
+    browser will block other scripts from accessing cookies or storage
+    until the first script finishes.</p>
+
+    <p>Calling the <code title="dom-navigator-yieldForStorageUpdates"><a href="#dom-navigator-yieldforstorageupdates">navigator.yieldForStorageUpdates()</a></code>
+    method tells the user agent to unblock any other scripts that may
+    be blocked, even though the script hasn't returned.</p>
+
+    <p>Values of cookies and items in the <code>Storage</code> objects
+    of <code title="dom-localStorage">localStorage</code> attributes
+    can change after calling this method, whence its name.</p>
+
+   </dd>
+
+  </dl></body></html>
\ No newline at end of file

Index: syntax.html
===================================================================
RCS file: /sources/public/html5/spec-author-view/syntax.html,v
retrieving revision 1.304
retrieving revision 1.305
diff -u -d -r1.304 -r1.305
--- syntax.html	5 Oct 2009 09:31:02 -0000	1.304
+++ syntax.html	5 Oct 2009 09:36:47 -0000	1.305
@@ -211,4 +211,637 @@
    .apple-table-examples.e2 th[scope=row] { padding-left: 1em; }
    .apple-table-examples sup { line-height: 0; }
 
-  </style><link href="data:text/css," rel="stylesheet" title="Complete specification"><link href="data:text/css,.impl%20%7B%20display:%20none;%20%7D" rel="alternate stylesheet" title="Author documentation only"><link href="data:text/css,.impl%20%7B%20background:%20%23FFEEEE;%20%7D" rel="alternate stylesheet" title="Highlight implementation requirements"><link href="http://www.w3.
\ No newline at end of file
+  </style><link href="data:text/css," rel="stylesheet" title="Complete specification"><link href="data:text/css,.impl%20%7B%20display:%20none;%20%7D" rel="alternate stylesheet" title="Author documentation only"><link href="data:text/css,.impl%20%7B%20background:%20%23FFEEEE;%20%7D" rel="alternate stylesheet" title="Highlight implementation requirements"><link href="http://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet" type="text/css"><!-- ZZZ ED vs WD --><link href="comms.html" title="8 Communication" rel="prev">
+  <link href="Overview.html#contents" title="Table of contents" rel="index">
+  <link href="named-character-references.html" title="9.2 Named character references" rel="next">
+  </head><body onload="fixBrokenLink(); fixBrokenLink()"><div class="head">
+   <p><a href="http://www.w3.org/"><img alt="W3C" height="48" src="http://www.w3.org/Icons/w3c_home" width="72"></a></p>
+   <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>
+<p>This is revision 1.3240.</p>
+   </div><div>
+   <a href="comms.html">&#8592; 8 Communication</a> &#8211;
+   <a href="Overview.html#contents">Table of contents</a> &#8211;
+   <a href="named-character-references.html">9.2 Named character references &#8594;</a>
+  </div>
+
+  <h2 id="syntax"><span class="secno">9 </span><dfn>The HTML syntax</dfn></h2><p class="note">This section only describes the rules for
+  <code><a href="iana-considerations.html#text-html">text/html</a></code> resources. Rules for XML resources are
+  discussed in the section below entitled "<a href="the-xhtml-syntax.html#the-xhtml-syntax">The XHTML
+  syntax</a>".</p><h3 id="writing"><span class="secno">9.1 </span>Writing HTML documents</h3><p class="XXX annotation"><b>Status: </b><i>Working draft</i></p><p>Documents must consist of the following parts, in the given
+  order:</p><ol><li>Optionally, a single U+FEFF BYTE ORDER MARK (BOM) character.</li>
+
+   <li>Any number of <a href="#syntax-comments" title="syntax-comments">comments</a> and
+   <a href="#space-character" title="space character">space characters</a>.</li>
+
+   <li>A <a href="#syntax-doctype" title="syntax-doctype">DOCTYPE</a>.
+
+   </li><li>Any number of <a href="#syntax-comments" title="syntax-comments">comments</a> and
+   <a href="#space-character" title="space character">space characters</a>.</li>
+
+   <li>The root element, in the form of an <code><a href="semantics.html#the-html-element-0">html</a></code> <a href="#syntax-elements" title="syntax-elements">element</a>.</li>
+
+   <li>Any number of <a href="#syntax-comments" title="syntax-comments">comments</a> and
+   <a href="#space-character" title="space character">space characters</a>.</li>
+
+  </ol><p>The various types of content mentioned above are described in the
+  next few sections.</p><p>In addition, there are some restrictions on how <a href="semantics.html#character-encoding-declaration" title="character encoding declaration">character encoding
+  declarations</a> are to be serialized, as discussed in the
+  section on that topic.</p><div class="note">
+
+   <p>Space characters before the root <code><a href="semantics.html#the-html-element-0">html</a></code> element, and
+   space characters at the start of the <code><a href="semantics.html#the-html-element-0">html</a></code> element and
+   before the <code><a href="semantics.html#the-head-element-0">head</a></code> element, will be dropped when the
+   document is parsed; space characters <em>after</em> the root
+   <code><a href="semantics.html#the-html-element-0">html</a></code> element will be parsed as if they were at the end
+   of the <code><a href="semantics.html#the-body-element-0">body</a></code> element. Thus, space characters around the
+   root element do not round-trip.</p>
+
+   <p>It is suggested that newlines be inserted after the DOCTYPE,
+   after any comments that are before the root element, after the
+   <code><a href="semantics.html#the-html-element-0">html</a></code> element's start tag (if it is not <a href="#syntax-tag-omission" title="syntax-tag-omission">omitted</a>), and after any comments
+   that are inside the <code><a href="semantics.html#the-html-element-0">html</a></code> element but before the
+   <code><a href="semantics.html#the-head-element-0">head</a></code> element.</p>
+
+  </div><p>Many strings in the HTML syntax (e.g. the names of elements and
+  their attributes) are case-insensitive, but only for characters in
+  the ranges U+0041 .. U+005A (LATIN CAPITAL LETTER A to LATIN CAPITAL
+  LETTER Z) and U+0061 .. U+007A (LATIN SMALL LETTER A to LATIN SMALL
+  LETTER Z). For convenience, in this section this is just referred to
+  as "case-insensitive".</p><h4 id="the-doctype"><span class="secno">9.1.1 </span>The DOCTYPE</h4><p class="XXX annotation"><span><a href="http://www.w3.org/html/wg/tracker/issues/4">ISSUE-4</a> (html-versioning) blocks progress to Last Call</span></p><p>A <dfn id="syntax-doctype" title="syntax-doctype">DOCTYPE</dfn> is a mostly useless,
+  but required, header.</p><p class="note">DOCTYPEs are required for legacy reasons. When
+  omitted, browsers tend to use a different rendering mode that is
+  incompatible with some specifications. Including the DOCTYPE in a
+  document ensures that the browser makes a best-effort attempt at
+  following the relevant specifications.</p><p>A DOCTYPE must consist of the following characters, in this
+  order:</p><ol class="brief"><li>A U+003C LESS-THAN SIGN (<code>&lt;</code>) character.</li>
+   <li>A U+0021 EXCLAMATION MARK (<code>!</code>) character.</li>
+   <li>A string that is an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">DOCTYPE</code>".</li>
+   <li>One or more <a href="#space-character" title="space character">space characters</a>.</li>
+   <li>A string that is an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">HTML</code>".</li>
+   <li>Optionally, a <a href="#doctype-legacy-string">DOCTYPE legacy string</a> (defined below).</li>
+   <li>Zero or more <a href="#space-character" title="space character">space characters</a>.</li>
+   <li>A U+003E GREATER-THAN SIGN (<code>&gt;</code>) character.</li>
+  </ol><p class="note">In other words, <code>&lt;!DOCTYPE HTML&gt;</code>,
+  case-insensitively.</p><p>For the purposes of HTML generators that cannot output HTML
+  markup with the short DOCTYPE "<code title="">&lt;!DOCTYPE
+  HTML&gt;</code>", a <dfn id="doctype-legacy-string">DOCTYPE legacy string</dfn> may be inserted
+  into the DOCTYPE (in the position defined above). This string must
+  consist of:</p><ol class="brief"><li>One or more <a href="#space-character" title="space character">space characters</a>.</li>
+   <li>A string that is an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">SYSTEM</code>".</li>
+   <li>One or more <a href="#space-character" title="space character">space characters</a>.</li>
+   <li>A U+0022 QUOTATION MARK or U+0027 APOSTROPHE character (the <i>quote mark</i>).</li>
+   <li>The literal string "<code><a href="#about:legacy-compat">about:legacy-compat</a></code>".</li>
+   <li>A matching U+0022 QUOTATION MARK or U+0027 APOSTROPHE character (i.e. the same character as in the earlier step marked <i>quote mark</i>).</li>
+  </ol><p class="note">In other words, <code>&lt;!DOCTYPE HTML SYSTEM
+  "about:legacy-compat"&gt;</code> or <code>&lt;!DOCTYPE HTML SYSTEM
+  'about:legacy-compat'&gt;</code>, case-insensitively except for the bit
+  in quotes.</p><p>The <a href="#doctype-legacy-string">DOCTYPE legacy string</a> should not be used unless
+  the document is generated from a system that cannot output the
+  shorter string.</p><h4 id="elements-0"><span class="secno">9.1.2 </span>Elements</h4><p>There are five different kinds of <dfn id="syntax-elements" title="syntax-elements">elements</dfn>: <a href="#void-elements">void elements</a>,
+  <a href="#raw-text-elements">raw text elements</a>, <a href="#rcdata-elements">RCDATA elements</a>,
+  <a href="#foreign-elements">foreign elements</a>, and <a href="#normal-elements">normal elements</a>.</p><dl><dt><dfn id="void-elements">Void elements</dfn></dt>
+
+   <dd><code><a href="the-canvas-element.html#the-area-element">area</a></code>, <code><a href="semantics.html#the-base-element">base</a></code>, <code><a href="semantics.html#the-br-element">br</a></code>,
+   <code><a href="tabular-data.html#the-col-element">col</a></code>, <code><a href="interactive-elements.html#the-command">command</a></code>, <code><a href="text-level-semantics.html#the-embed-element">embed</a></code>,
+   <code><a href="semantics.html#the-hr-element">hr</a></code>, <code><a href="text-level-semantics.html#the-img-element">img</a></code>, <code><a href="forms.html#the-input-element">input</a></code>,
+   <code><a href="forms.html#the-keygen-element">keygen</a></code>, <code><a href="semantics.html#the-link-element">link</a></code>, <code><a href="semantics.html#meta">meta</a></code>,
+   <code><a href="text-level-semantics.html#the-param-element">param</a></code>, <code><a href="video.html#the-source-element">source</a></code></dd>
+
+   <dt><dfn id="raw-text-elements">Raw text elements</dfn></dt>
+
+   <dd><code><a href="semantics.html#script">script</a></code>, <code><a href="semantics.html#the-style-element">style</a></code></dd> <!-- iframe and
+   noscript don't count as raw text for syntax purposes -->
+
+   <dt><dfn id="rcdata-elements">RCDATA elements</dfn></dt>
+
+   <dd><code><a href="forms.html#the-textarea-element">textarea</a></code>, <code><a href="semantics.html#the-title-element-0">title</a></code></dd>
+
+   <dt><dfn id="foreign-elements">Foreign elements</dfn></dt>
+
+   <dd>Elements from the <a href="#mathml-namespace">MathML namespace</a>
+   and the <a href="#svg-namespace">SVG namespace</a>.</dd>
+
+   <dt><dfn id="normal-elements">Normal elements</dfn></dt>
+
+   <dd>All other allowed <a href="infrastructure.html#html-elements">HTML elements</a> are normal
+   elements.</dd>
+
+  </dl><p><dfn id="syntax-tags" title="syntax-tags">Tags</dfn> are used to delimit the start
+  and end of elements in the markup. <a href="#raw-text-elements" title="raw text
+  elements">Raw text</a>, <a href="#rcdata-elements" title="RCDATA
+  elements">RCDATA</a>, and <a href="#normal-elements" title="normal
+  elements">normal</a> elements have a <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> to indicate where they
+  begin, and an <a href="#syntax-end-tag" title="syntax-end-tag">end tag</a> to
+  indicate where they end. The start and end tags of certain
+  <a href="#normal-elements">normal elements</a> can be <a href="#syntax-tag-omission" title="syntax-tag-omission">omitted</a>, as described
+  later. Those that cannot be omitted must not be omitted. <a href="#void-elements">Void
+  elements</a> only have a start tag; end tags must not be
+  specified for <a href="#void-elements">void elements</a>. <a href="#foreign-elements">Foreign
+  elements</a> must either have a start tag and an end tag, or a
+  start tag that is marked as self-closing, in which case they must
+  not have an end tag.</p><p>The contents of the element must be placed between just after the
+  start tag (which <a href="#syntax-tag-omission" title="syntax-tag-omission">might be implied,
+  in certain cases</a>) and just before the end tag (which again,
+  <a href="#syntax-tag-omission" title="syntax-tag-omission">might be implied in certain
+  cases</a>). The exact allowed contents of each individual element
+  depends on the content model of that element, as described earlier
+  in this specification. Elements must not contain content that their
+  content model disallows. In addition to the restrictions placed on
+  the contents by those content models, however, the five types of
+  elements have additional <em>syntactic</em> requirements.</p><p><a href="#void-elements">Void elements</a> can't have any contents (since there's
+  no end tag, no content can be put between the start tag and the end
+  tag).</p><p><a href="#raw-text-elements">Raw text elements</a> can have <a href="#syntax-text" title="syntax-text">text</a>, though it has <a href="#cdata-rcdata-restrictions">restrictions</a> described
+  below.</p><p><a href="#rcdata-elements">RCDATA elements</a> can have <a href="#syntax-text" title="syntax-text">text</a> and <a href="#syntax-charref" title="syntax-charref">character references</a>, but the text
+  must not contain an <a href="#syntax-ambiguous-ampersand" title="syntax-ambiguous-ampersand">ambiguous ampersand</a>.
+  There are also <a href="#cdata-rcdata-restrictions">further
+  restrictions</a> described below.</p><p><a href="#foreign-elements">Foreign elements</a> whose start tag is marked as
+  self-closing can't have any contents (since, again, as there's no
+  end tag, no content can be put between the start tag and the end
+  tag). <a href="#foreign-elements">Foreign elements</a> whose start tag is <em>not</em>
+  marked as self-closing can have <a href="#syntax-text" title="syntax-text">text</a>, <a href="#syntax-charref" title="syntax-charref">character references</a>, <a href="#syntax-cdata" title="syntax-cdata">CDATA sections</a>, other <a href="#syntax-elements" title="syntax-elements">elements</a>, and <a href="#syntax-comments" title="syntax-comments">comments</a>, but the text must not
+  contain the character U+003C LESS-THAN SIGN (<code>&lt;</code>) or
+  an <a href="#syntax-ambiguous-ampersand" title="syntax-ambiguous-ampersand">ambiguous
+  ampersand</a>.</p><div class="note">
+
+   <p>The HTML syntax does not support namespace
+   declarations, even in <a href="#foreign-elements">foreign elements</a>.</p>
+
+   <p>For instance, consider the following HTML fragment:</p>
+
+   <pre>&lt;p&gt;
+ &lt;svg&gt;
+  &lt;metadata&gt;
+   &lt;!-- this is invalid --&gt;
+   &lt;cdr:license xmlns:cdr="http://www.example.com/cdr/metadata" name="MIT"/&gt;
+  &lt;/metadata&gt;
+ &lt;/svg&gt;
+&lt;/p&gt;</pre>
+
+   <p>The innermost element, <code title="">cdr:license</code>, is
+   actually in the SVG namespace, as the "<code title="">xmlns:cdr</code>" attribute has no effect (unlike in
+   XML). In fact, as the comment in the fragment above says, the
+   fragment is actually non-conforming. This is because the SVG
+   specification does not define any elements called "<code title="">cdr:license</code>" in the SVG namespace.</p>
+
+  </div><p><a href="#normal-elements">Normal elements</a> can have <a href="#syntax-text" title="syntax-text">text</a>, <a href="#syntax-charref" title="syntax-charref">character references</a>, other <a href="#syntax-elements" title="syntax-elements">elements</a>, and <a href="#syntax-comments" title="syntax-comments">comments</a>, but the text must not
+  contain the character U+003C LESS-THAN SIGN (<code>&lt;</code>) or
+  an <a href="#syntax-ambiguous-ampersand" title="syntax-ambiguous-ampersand">ambiguous
+  ampersand</a>. Some <a href="#normal-elements">normal elements</a> also have <a href="#element-restrictions">yet more restrictions</a> on what
+  content they are allowed to hold, beyond the restrictions imposed by
+  the content model and those described in this paragraph. Those
+  restrictions are described below.</p><p>Tags contain a <dfn id="syntax-tag-name" title="syntax-tag-name">tag name</dfn>,
+  giving the element's name. HTML elements all have names that only
+  use characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
+  NINE (9), U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
+  Z, and U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER
+  Z. In the HTML syntax, tag names, even those for <a href="#foreign-elements">foreign
+  elements</a>, may be written with any mix of lower- and uppercase
+  letters that, when converted to all-lowercase, matches the element's
+  tag name; tag names are case-insensitive.</p><h5 id="start-tags"><span class="secno">9.1.2.1 </span>Start tags</h5><p><dfn id="syntax-start-tag" title="syntax-start-tag">Start tags</dfn> must have the
+  following format:</p><ol><li>The first character of a start tag must be a U+003C LESS-THAN
+   SIGN (<code>&lt;</code>).</li>
+
+   <li>The next few characters of a start tag must be the element's
+   <a href="#syntax-tag-name" title="syntax-tag-name">tag name</a>.</li>
+
+   <li>If there are to be any attributes in the next step, there must
+   first be one or more <a href="#space-character" title="space character">space
+   characters</a>.</li>
+
+   <li>Then, the start tag may have a number of attributes, the <a href="#syntax-attributes" title="syntax-attributes">syntax for which</a> is described
+   below. Attributes may be separated from each other by one or more
+   <a href="#space-character" title="space character">space characters</a>.</li>
+
+   <li>After the attributes, there may be one or more <a href="#space-character" title="space character">space characters</a>. (Some attributes
+   are required to be followed by a space. See the <a href="#syntax-attributes" title="syntax-attributes">attributes section</a> below.)</li>
+
+   <li>Then, if the element is one of the <a href="#void-elements">void elements</a>,
+   or if the element is a <a href="#foreign-elements" title="foreign elements">foreign
+   element</a>, then there may be a single U+002F SOLIDUS
+   (<code>/</code>) character. This character has no effect on
+   <a href="#void-elements">void elements</a>, but on <a href="#foreign-elements">foreign elements</a> it
+   marks the start tag as self-closing.</li>
+
+   <li>Finally, start tags must be closed by a U+003E GREATER-THAN
+   SIGN (<code>&gt;</code>) character.</li>
+
+  </ol><h5 id="end-tags"><span class="secno">9.1.2.2 </span>End tags</h5><p><dfn id="syntax-end-tag" title="syntax-end-tag">End tags</dfn> must have the
+  following format:</p><ol><li>The first character of an end tag must be a U+003C LESS-THAN
+   SIGN (<code>&lt;</code>).</li>
+
+   <li>The second character of an end tag must be a U+002F SOLIDUS
+   (<code>/</code>).</li>
+
+   <li>The next few characters of an end tag must be the element's
+   <a href="#syntax-tag-name" title="syntax-tag-name">tag name</a>.</li>
+
+   <li>After the tag name, there may be one or more <a href="#space-character" title="space
+   character">space characters</a>.</li>
+
+   <li>Finally, end tags must be closed by a U+003E GREATER-THAN
+   SIGN (<code>&gt;</code>) character.</li>
+
+  </ol><h5 id="attributes"><span class="secno">9.1.2.3 </span>Attributes</h5><p><dfn id="syntax-attributes" title="syntax-attributes">Attributes</dfn> for an element
+  are expressed inside the element's start tag.</p><p>Attributes have a name and a value. <dfn id="syntax-attribute-name" title="syntax-attribute-name">Attribute names</dfn> must consist of
+  one or more characters other than the <a href="#space-character" title="space
+  character">space characters</a>, U+0000 NULL, U+0022 QUOTATION
+  MARK ("), U+0027 APOSTROPHE ('), U+003E GREATER-THAN SIGN
+  (&gt;), U+002F SOLIDUS (/), and U+003D EQUALS SIGN (=) characters,
+  the control characters, and any characters that are not defined by
+  Unicode. In the HTML syntax, attribute names, even those for
+  <a href="#foreign-elements">foreign elements</a>, may be written with any mix of lower-
+  and uppercase letters that are an <a href="infrastructure.html#ascii-case-insensitive">ASCII
+  case-insensitive</a> match for the attribute's name.</p><p><dfn id="syntax-attribute-value" title="syntax-attribute-value">Attribute values</dfn> are a
+  mixture of <a href="#syntax-text" title="syntax-text">text</a> and <a href="#syntax-charref" title="syntax-charref">character references</a>, except with the
+  additional restriction that the text cannot contain an <a href="#syntax-ambiguous-ampersand" title="syntax-ambiguous-ampersand">ambiguous ampersand</a>.</p><p>Attributes can be specified in four different ways:</p><dl><dt>Empty attribute syntax</dt>
+
+   <dd>
+
+    <p>Just the <a href="#syntax-attribute-name" title="syntax-attribute-name">attribute
+    name</a>.</p>
+
+    <div class="example">
+
+     <p>In the following example, the <code title="attr-fe-disabled"><a href="forms.html#attr-fe-disabled">disabled</a></code> attribute is given with
+     the empty attribute syntax:</p>
+
+     <pre>&lt;input <em>disabled</em>&gt;</pre>
+
+    </div>
+
+    <p>If an attribute using the empty attribute syntax is to be
+    followed by another attribute, then there must be a <a href="#space-character">space
+    character</a> separating the two.</p>
+
+   </dd>
+
+   <dt id="unquoted">Unquoted attribute value syntax</dt>
+
+   <dd>
+
+    <p>The <a href="#syntax-attribute-name" title="syntax-attribute-name">attribute name</a>,
+    followed by zero or more <a href="#space-character" title="space character">space
+    characters</a>, followed by a single U+003D EQUALS SIGN
+    character, followed by zero or more <a href="#space-character" title="space
+    character">space characters</a>, followed by the <a href="#syntax-attribute-value" title="syntax-attribute-value">attribute value</a>, which, in
+    addition to the requirements given above for attribute values,
+    must not contain any literal <a href="#space-character" title="space character">space
+    characters</a>, any U+0022 QUOTATION MARK (<code>"</code>)
+    characters, U+0027 APOSTROPHE (<code>'</code>) characters,
+    U+003D EQUALS SIGN (<code>=</code>) characters, U+003C LESS-THAN
+    SIGN (<code>&lt;</code>) characters, U+003E GREATER-THAN SIGN
+    (<code>&gt;</code>) characters, or U+0060 GRAVE ACCENT (`)
+    characters, and must not be the empty string.</p>
+
+    <!-- The ` character is in this list on a temporary basis, waiting
+         for IE to fix it's parsing bug whereby it treats ` as an
+         attribute value delimiter. Otherwise, escaping software that
+         tries to be clever and not use quotes when it doesn't need to
+         could be tricked by an attacker.
+
+         Posit a site that allows the user to input text that is used
+         verbatim in two attributes, such that the user can set the
+         first attribute's value to:
+
+            `
+
+         ...and the second to:
+
+            ` onload='...payload...' end=x
+
+         ...with the assumption that the site is going to not quote
+         the first one, and quote the second one with double quotes:
+
+            <body title=` class="` onload='...payload...' end=x">
+
+         In IE, this is treated as:
+
+            <body title=' class="'
+                  onload='...payload...'
+                  end='x"'>
+
+    -->
+
+
+    <div class="example">
+
+     <p>In the following example, the <code title="attr-input-value"><a href="forms.html#attr-input-value">value</a></code> attribute is given
+     with the unquoted attribute value syntax:</p>
+
+     <pre>&lt;input <em>value=yes</em>&gt;</pre>
+
+    </div>
+
+    <p>If an attribute using the unquoted attribute syntax is to be
+    followed by another attribute or by the optional U+002F SOLIDUS
+    character (/) allowed in step 6 of the <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> syntax above, then there
+    must be a <a href="#space-character">space character</a> separating the two.</p>
+
+   </dd>
+
+   <dt>Single-quoted attribute value syntax</dt>
+
+   <dd>
+
+    <p>The <a href="#syntax-attribute-name" title="syntax-attribute-name">attribute name</a>,
+    followed by zero or more <a href="#space-character" title="space character">space
+    characters</a>, followed by a single U+003D EQUALS SIGN
+    character, followed by zero or more <a href="#space-character" title="space
+    character">space characters</a>, followed by a single U+0027
+    APOSTROPHE (<code>'</code>) character, followed by the <a href="#syntax-attribute-value" title="syntax-attribute-value">attribute value</a>, which, in
+    addition to the requirements given above for attribute values,
+    must not contain any literal U+0027 APOSTROPHE (<code>'</code>)
+    characters, and finally followed by a second single U+0027
+    APOSTROPHE (<code>'</code>) character.</p>
+
+    <div class="example">
+
+     <p>In the following example, the <code title="attr-input-type"><a href="forms.html#attr-input-type">type</a></code> attribute is given with the
+     single-quoted attribute value syntax:</p>
+
+     <pre>&lt;input <em>type='checkbox'</em>&gt;</pre>
+
+    </div>
+
+    <p>If an attribute using the single-quoted attribute syntax is to
+    be followed by another attribute, then there must be a <a href="#space-character">space
+    character</a> separating the two.</p>
+
+   </dd>
+
+   <dt>Double-quoted attribute value syntax</dt>
+
+   <dd>
+
+    <p>The <a href="#syntax-attribute-name" title="syntax-attribute-name">attribute name</a>,
+    followed by zero or more <a href="#space-character" title="space character">space
+    characters</a>, followed by a single U+003D EQUALS SIGN
+    character, followed by zero or more <a href="#space-character" title="space
+    character">space characters</a>, followed by a single U+0022
+    QUOTATION MARK (<code>"</code>) character, followed by the <a href="#syntax-attribute-value" title="syntax-attribute-value">attribute value</a>, which, in
+    addition to the requirements given above for attribute values,
+    must not contain any literal U+0022 QUOTATION MARK
+    (<code>"</code>) characters, and finally followed by a second
+    single U+0022 QUOTATION MARK (<code>"</code>) character.</p>
+
+    <div class="example">
+
+     <p>In the following example, the <code title="attr-fe-name"><a href="forms.html#attr-fe-name">name</a></code> attribute is given with the
+     double-quoted attribute value syntax:</p>
+
+     <pre>&lt;input <em>name="be evil"</em>&gt;</pre>
+
+    </div>
+
+    <p>If an attribute using the double-quoted attribute syntax is to
+    be followed by another attribute, then there must be a <a href="#space-character">space
+    character</a> separating the two.</p>
+
+   </dd>
+
+  </dl><p>There must never be two or more attributes on the same start tag
+  whose names are an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for
+  each other.</p><hr><p>When a <a href="#foreign-elements" title="foreign elements">foreign element</a> has
+  one of the namespaced attributes given by the local name and
+  namespace of the first and second cells of a row from the following
+  table, it must be written using the name given by the third cell
+  from the same row.</p><table><thead><tr><th> Local name </th><th> Namespace </th><th> Attribute name
+   </th></tr></thead><tbody><tr><td> <code title="">actuate</code> </td><td> <a href="#xlink-namespace">XLink namespace</a> </td><td> <code title="">xlink:actuate</code>
+    </td></tr><tr><td> <code title="">arcrole</code> </td><td> <a href="#xlink-namespace">XLink namespace</a> </td><td> <code title="">xlink:arcrole</code>
+    </td></tr><tr><td> <code title="">href</code> </td><td> <a href="#xlink-namespace">XLink namespace</a> </td><td> <code title="">xlink:href</code>
+    </td></tr><tr><td> <code title="">role</code> </td><td> <a href="#xlink-namespace">XLink namespace</a> </td><td> <code title="">xlink:role</code>
+    </td></tr><tr><td> <code title="">show</code> </td><td> <a href="#xlink-namespace">XLink namespace</a> </td><td> <code title="">xlink:show</code>
+    </td></tr><tr><td> <code title="">title</code> </td><td> <a href="#xlink-namespace">XLink namespace</a> </td><td> <code title="">xlink:title</code>
+    </td></tr><tr><td> <code title="">type</code> </td><td> <a href="#xlink-namespace">XLink namespace</a> </td><td> <code title="">xlink:type</code>
+    </td></tr><tr><td> <code title="">base</code> </td><td> <a href="#xml-namespace">XML namespace</a> <!-- attr-xml-base --> </td><td> <code title="">xml:base</code>
+    </td></tr><tr><td> <code title="">lang</code> </td><td> <a href="#xml-namespace">XML namespace</a> </td><td> <code title="">xml:lang</code>
+    </td></tr><tr><td> <code title="">space</code> </td><td> <a href="#xml-namespace">XML namespace</a> </td><td> <code title="">xml:space</code>
+    </td></tr><tr><td> <code title="">xmlns</code> </td><td> <a href="#xmlns-namespace">XMLNS namespace</a> </td><td> <code title="">xmlns</code>
+    </td></tr><tr><td> <code title="">xlink</code> </td><td> <a href="#xmlns-namespace">XMLNS namespace</a> </td><td> <code title="">xmlns:xlink</code>
+  </td></tr></tbody></table><p>No other namespaced attribute can be expressed in the <a href="#syntax">the
+  HTML syntax</a>.</p><h5 id="optional-tags"><span class="secno">9.1.2.4 </span>Optional tags</h5><p>Certain tags can be <dfn id="syntax-tag-omission" title="syntax-tag-omission">omitted</dfn>.</p><p class="note">Omitting an element's <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> does not mean the element
+  is not present; it is implied, but it is still there. An HTML
+  document always has a root <code><a href="semantics.html#the-html-element-0">html</a></code> element, even if the
+  string <code title="">&lt;html&gt;</code> doesn't appear anywhere in
+  the markup.</p><!-- <html> --><p>An <code><a href="semantics.html#the-html-element-0">html</a></code> element's <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> may be omitted if the
+  first thing inside the <code><a href="semantics.html#the-html-element-0">html</a></code> element is not a <a href="#syntax-comments" title="syntax-comments">comment</a>.</p><!-- </html> --><p>An <code><a href="semantics.html#the-html-element-0">html</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> may be omitted if the <code><a href="semantics.html#the-html-element-0">html</a></code> element is not
+  immediately followed by a <a href="#syntax-comments" title="syntax-comments">comment</a>.</p><!-- <head> --><p>A <code><a href="semantics.html#the-head-element-0">head</a></code> element's <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> may be omitted <!--if the
+  element is empty, or--> if the first thing inside the
+  <code><a href="semantics.html#the-head-element-0">head</a></code> element is an element.</p><!-- </head> --><p>A <code><a href="semantics.html#the-head-element-0">head</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> may be omitted if the <code><a href="semantics.html#the-head-element-0">head</a></code> element is not
+  immediately followed by a <a href="#space-character">space character</a> or a <a href="#syntax-comments" title="syntax-comments">comment</a>.</p><!-- <body> --><p>A <code><a href="semantics.html#the-body-element-0">body</a></code> element's <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> may be omitted if the
+  element is empty, or if the first thing inside the <code><a href="semantics.html#the-body-element-0">body</a></code>
+  element is not a <a href="#space-character">space character</a> or a <a href="#syntax-comments" title="syntax-comments">comment</a>, except if the first thing
+  inside the <code><a href="semantics.html#the-body-element-0">body</a></code> element is a <code><a href="semantics.html#script">script</a></code> or
+  <code><a href="semantics.html#the-style-element">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="semantics.html#the-body-element-0">body</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> may be omitted if the <code><a href="semantics.html#the-body-element-0">body</a></code> element is not
+  immediately followed by a <a href="#syntax-comments" title="syntax-comments">comment</a>.</p><!-- </li> --><p>A <code><a href="semantics.html#the-li-element">li</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> may be omitted if the <code><a href="semantics.html#the-li-element">li</a></code> element is
+  immediately followed by another <code><a href="semantics.html#the-li-element">li</a></code> element or if there
+  is no more content in the parent element.</p><!-- </dt> --><p>A <code><a href="semantics.html#the-dt-element">dt</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> may be omitted if the <code><a href="semantics.html#the-dt-element">dt</a></code> element is
+  immediately followed by another <code><a href="semantics.html#the-dt-element">dt</a></code> element or a
+  <code><a href="semantics.html#the-dd-element">dd</a></code> element.</p><!-- </dd> --><p>A <code><a href="semantics.html#the-dd-element">dd</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> may be omitted if the <code><a href="semantics.html#the-dd-element">dd</a></code> element is
+  immediately followed by another <code><a href="semantics.html#the-dd-element">dd</a></code> element or a
+  <code><a href="semantics.html#the-dt-element">dt</a></code> element, or if there is no more content in the
+  parent element.</p><!-- </p> --><p>A <code><a href="semantics.html#the-p-element">p</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> may be omitted if the <code><a href="semantics.html#the-p-element">p</a></code> element is
+  immediately followed by an <code><a href="semantics.html#the-address-element">address</a></code>,
+  <code><a href="semantics.html#the-article-element">article</a></code>, <code><a href="semantics.html#the-aside-element">aside</a></code>, <code><a href="semantics.html#the-blockquote-element">blockquote</a></code>,
+  <!--v2DATAGRID <code>datagrid</code>,--> <code><a href="obsolete.html#dir">dir</a></code>,
+  <code><a href="semantics.html#the-div-element">div</a></code>, <code><a href="semantics.html#the-dl-element">dl</a></code>, <code><a href="forms.html#the-fieldset-element">fieldset</a></code>,
+  <code><a href="semantics.html#the-footer-element">footer</a></code>, <code><a href="forms.html#the-form-element">form</a></code>, <code><a href="semantics.html#the-h1-h2-h3-h4-h5-and-h6-elements">h1</a></code>,
+  <code><a href="semantics.html#the-h1-h2-h3-h4-h5-and-h6-elements">h2</a></code>, <code><a href="semantics.html#the-h1-h2-h3-h4-h5-and-h6-elements">h3</a></code>, <code><a href="semantics.html#the-h1-h2-h3-h4-h5-and-h6-elements">h4</a></code>, <code><a href="semantics.html#the-h1-h2-h3-h4-h5-and-h6-elements">h5</a></code>,
+  <code><a href="semantics.html#the-h1-h2-h3-h4-h5-and-h6-elements">h6</a></code>, <code><a href="semantics.html#the-header-element">header</a></code>, <code><a href="semantics.html#the-hgroup-element">hgroup</a></code>,
+  <code><a href="semantics.html#the-hr-element">hr</a></code>, <code><a href="interactive-elements.html#menus">menu</a></code>, <code><a href="semantics.html#the-nav-element">nav</a></code>,
+  <code><a href="semantics.html#the-ol-element">ol</a></code>, <code><a href="semantics.html#the-p-element">p</a></code>, <code><a href="semantics.html#the-pre-element">pre</a></code>,
+  <code><a href="semantics.html#the-section-element">section</a></code>, <code><a href="tabular-data.html#the-table-element">table</a></code>, or <code><a href="semantics.html#the-ul-element">ul</a></code>,
+  element, or if there is no more content in the parent element and
+  the parent element is not an <code><a href="text-level-semantics.html#the-a-element">a</a></code> element.</p><!-- </rt> --><p>An <code><a href="text-level-semantics.html#the-rt-element">rt</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> may be omitted if the <code><a href="text-level-semantics.html#the-rt-element">rt</a></code> element is
+  immediately followed by an <code><a href="text-level-semantics.html#the-rt-element">rt</a></code> or <code><a href="text-level-semantics.html#the-rp-element">rp</a></code>
+  element, or if there is no more content in the parent element.</p><!-- </rp> --><p>An <code><a href="text-level-semantics.html#the-rp-element">rp</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> may be omitted if the <code><a href="text-level-semantics.html#the-rp-element">rp</a></code> element is
+  immediately followed by an <code><a href="text-level-semantics.html#the-rt-element">rt</a></code> or <code><a href="text-level-semantics.html#the-rp-element">rp</a></code>
+  element, or if there is no more content in the parent element.</p><!-- </optgroup> (the text assumes <optgroup> can only be inside a
+  <select>; commented out text below can handle the non-<select> case
+  if we ever allow it) --><p>An <code><a href="forms.html#the-optgroup-element">optgroup</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end tag</a> may be omitted if the
+  <code><a href="forms.html#the-optgroup-element">optgroup</a></code> element <!--has an ancestor
+  <code>select</code> element and--> is immediately followed by
+  another <code><a href="forms.html#the-optgroup-element">optgroup</a></code> element, or if <!--all of the elements
+  that are ancestors of the <code>optgroup</code> element, up to and
+  including the first ancestor element that is not an
+  <code>optgroup</code> element, have no more content--> there is no
+  more content in the parent element.</p><!-- so e.g. the max number of </optgroup>s are omitted here:
+   <select><optgroup></select>
+   <p id=x><optgroup></optgroup>x</p>
+   <p id=x><optgroup><optgroup></optgroup></optgroup>x</p>
+   <p><optgroup id=x><optgroup></optgroup>x</p>
+   <p><optgroup><optgroup id=x>x</p>
+  --><!-- </option> --><p>An <code><a href="forms.html#the-option-element">option</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> may be omitted if the <code><a href="forms.html#the-option-element">option</a></code> element is
+  immediately followed by another <code><a href="forms.html#the-option-element">option</a></code> element, or if
+  it is immediately followed by an <code><a href="forms.html#the-optgroup-element">optgroup</a></code> element, or
+  if there is no more content in the parent element.</p><!-- <colgroup> --><p>A <code><a href="tabular-data.html#the-colgroup-element">colgroup</a></code> element's <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> may be omitted if the
+  first thing inside the <code><a href="tabular-data.html#the-colgroup-element">colgroup</a></code> element is a
+  <code><a href="tabular-data.html#the-col-element">col</a></code> element, and if the element is not immediately
+  preceded by another <code><a href="tabular-data.html#the-colgroup-element">colgroup</a></code> element whose <a href="#syntax-end-tag" title="syntax-end-tag">end tag</a> has been omitted. (It can't be
+  omitted if the element is empty.)</p><!-- </colgroup> --><p>A <code><a href="tabular-data.html#the-colgroup-element">colgroup</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end tag</a> may be omitted if the
+  <code><a href="tabular-data.html#the-colgroup-element">colgroup</a></code> element is not immediately followed by a
+  <a href="#space-character">space character</a> or a <a href="#syntax-comments" title="syntax-comments">comment</a>.</p><!-- </thead> --><p>A <code><a href="tabular-data.html#the-thead-element">thead</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> may be omitted if the <code><a href="tabular-data.html#the-thead-element">thead</a></code> element is
+  immediately followed by a <code><a href="tabular-data.html#the-tbody-element">tbody</a></code> or <code><a href="tabular-data.html#the-tfoot-element">tfoot</a></code>
+  element.</p><!-- <tbody> --><p>A <code><a href="tabular-data.html#the-tbody-element">tbody</a></code> element's <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> may be omitted if the
+  first thing inside the <code><a href="tabular-data.html#the-tbody-element">tbody</a></code> element is a
+  <code><a href="tabular-data.html#the-tr-element">tr</a></code> element, and if the element is not immediately
+  preceded by a <code><a href="tabular-data.html#the-tbody-element">tbody</a></code>, <code><a href="tabular-data.html#the-thead-element">thead</a></code>, or
+  <code><a href="tabular-data.html#the-tfoot-element">tfoot</a></code> element whose <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> has been omitted. (It can't be omitted if the element is
+  empty.)</p><!-- </tbody> --><p>A <code><a href="tabular-data.html#the-tbody-element">tbody</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> may be omitted if the <code><a href="tabular-data.html#the-tbody-element">tbody</a></code> element is
+  immediately followed by a <code><a href="tabular-data.html#the-tbody-element">tbody</a></code> or <code><a href="tabular-data.html#the-tfoot-element">tfoot</a></code>
+  element, or if there is no more content in the parent element.</p><!-- </tfoot> --><p>A <code><a href="tabular-data.html#the-tfoot-element">tfoot</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> may be omitted if the <code><a href="tabular-data.html#the-tfoot-element">tfoot</a></code> element is
+  immediately followed by a <code><a href="tabular-data.html#the-tbody-element">tbody</a></code> element, or if there is
+  no more content in the parent element.</p><!-- </tr> --><p>A <code><a href="tabular-data.html#the-tr-element">tr</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> may be omitted if the <code><a href="tabular-data.html#the-tr-element">tr</a></code> element is
+  immediately followed by another <code><a href="tabular-data.html#the-tr-element">tr</a></code> element, or if there
+  is no more content in the parent element.</p><!-- </td> --><p>A <code><a href="tabular-data.html#the-td-element">td</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> may be omitted if the <code><a href="tabular-data.html#the-td-element">td</a></code> element is
+  immediately followed by a <code><a href="tabular-data.html#the-td-element">td</a></code> or <code><a href="tabular-data.html#the-th-element">th</a></code>
+  element, or if there is no more content in the parent element.</p><!-- </th> --><p>A <code><a href="tabular-data.html#the-th-element">th</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
+  tag</a> may be omitted if the <code><a href="tabular-data.html#the-th-element">th</a></code> element is
+  immediately followed by a <code><a href="tabular-data.html#the-td-element">td</a></code> or <code><a href="tabular-data.html#the-th-element">th</a></code>
+  element, or if there is no more content in the parent element.</p><p><strong>However</strong>, a <a href="#syntax-start-tag" title="syntax-start-tag">start
+  tag</a> must never be omitted if it has any attributes.</p><h5 id="element-restrictions"><span class="secno">9.1.2.5 </span>Restrictions on content models</h5><p>For historical reasons, certain elements have extra restrictions
+  beyond even the restrictions given by their content model.</p><p>A <code><a href="tabular-data.html#the-table-element">table</a></code> element must not contain <code><a href="tabular-data.html#the-tr-element">tr</a></code>
+  elements, even though these elements are technically allowed inside
+  <code><a href="tabular-data.html#the-table-element">table</a></code> elements according to the content models
+  described in this specification. (If a <code><a href="tabular-data.html#the-tr-element">tr</a></code> element is
+  put inside a <code><a href="tabular-data.html#the-table-element">table</a></code> in the markup, it will in fact imply
+  a <code><a href="tabular-data.html#the-tbody-element">tbody</a></code> start tag before it.)</p><p>A single <a href="#syntax-newlines" title="syntax-newlines">newline</a> may be
+  placed immediately after the <a href="#syntax-start-tag" title="syntax-start-tag">start
+  tag</a> of <code><a href="semantics.html#the-pre-element">pre</a></code> and <code><a href="forms.html#the-textarea-element">textarea</a></code>
+  elements. This does not affect the processing of the element. The
+  otherwise optional <a href="#syntax-newlines" title="syntax-newlines">newline</a>
+  <em>must</em> be included if the element's contents themselves start
+  with a <a href="#syntax-newlines" title="syntax-newlines">newline</a> (because
+  otherwise the leading newline in the contents would be treated like
+  the optional newline, and ignored).</p><div class="example">
+   <p>The following two <code><a href="semantics.html#the-pre-element">pre</a></code> blocks are equivalent:</p>
+   <pre>&lt;pre&gt;Hello&lt;/pre&gt;</pre>
+   <pre>&lt;pre&gt;<br>Hello&lt;/pre&gt;</pre>
+  </div><h5 id="cdata-rcdata-restrictions"><span class="secno">9.1.2.6 </span>Restrictions on the contents of raw text and RCDATA elements</h5><p>The text in <a href="#raw-text-elements" title="raw text elements">raw text</a> and
+  <a href="#rcdata-elements" title="RCDATA elements">RCDATAs</a> element must not
+  contain any occurrences of the string "<code title="">&lt;/</code>"
+  (U+003C LESS-THAN SIGN, U+002F SOLIDUS) followed by characters that
+  case-insensitively match the tag name of the element followed by one
+  of U+0009 CHARACTER TABULATION, U+000A LINE FEED (LF), U+000C FORM
+  FEED (FF), U+000D CARRIAGE RETURN (CR), U+0020 SPACE, U+003E
+  GREATER-THAN SIGN (&gt;), or U+002F SOLIDUS (/), unless that string is
+  part of an <a href="#syntax-escape" title="syntax-escape">escaping text
+  span</a>.</p><p>An <dfn id="syntax-escape" title="syntax-escape">escaping text span</dfn> is a span
+  of <a href="#syntax-text" title="syntax-text">text</a> that starts with an <a href="#syntax-escape-start" title="syntax-escape-start">escaping text span start</a> that is
+  not itself in an <a href="#syntax-escape" title="syntax-escape">escaping text
+  span</a>, and ends at the next <a href="#syntax-escape-end" title="syntax-escape-end">escaping text span end</a>. There
+  cannot be any <a href="#syntax-charref" title="syntax-charref">character
+  references</a> inside an <a href="#syntax-escape" title="syntax-escape">escaping
+  text span</a> &#8212; sequences of characters that would look
+  like <a href="#syntax-charref" title="syntax-charref">character references</a> do not
+  have special meaning.</p><p>An <dfn id="syntax-escape-start" title="syntax-escape-start">escaping text span
+  start</dfn> is a part of <a href="#syntax-text" title="syntax-text">text</a> that
+  consists of the four character sequence "<code title="">&lt;!--</code>" (U+003C LESS-THAN SIGN, U+0021 EXCLAMATION
+  MARK, U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS).</p><p>An <dfn id="syntax-escape-end" title="syntax-escape-end">escaping text span end</dfn> is
+  a part of <a href="#syntax-text" title="syntax-text">text</a> that consists of the
+  three character sequence "<code title="">--&gt;</code>" (U+002D
+  HYPHEN-MINUS, U+002D HYPHEN-MINUS, U+003E GREATER-THAN SIGN).</p><p>An <a href="#syntax-escape-start" title="syntax-escape-start">escaping text span
+  start</a> may share its U+002D HYPHEN-MINUS characters with its
+  corresponding <a href="#syntax-escape-end" title="syntax-escape-end">escaping text span
+  end</a>.</p><p>The text in <a href="#raw-text-elements">raw text elements</a> and <a href="#rcdata-elements">RCDATA
+  elements</a> must not have an <a href="#syntax-escape-start" title="syntax-escape-start">escaping text span start</a> that is
+  not followed by an <a href="#syntax-escape-end" title="syntax-escape-end">escaping text
+  span end</a>.</p><h4 id="text-0"><span class="secno">9.1.3 </span>Text</h4><p><dfn id="syntax-text" title="syntax-text">Text</dfn> is allowed inside elements,
+  attributes, and comments. Text must consist of Unicode characters.
+  Text must not contain U+0000 characters. Text must not contain
+  permanently undefined Unicode characters (noncharacters). Text must
+  not contain control characters other than <a href="#space-character" title="space
+  character">space characters</a>. Extra constraints are placed on
+  what is and what is not allowed in text based on where the text is
+  to be put, as described in the other sections.</p><h5 id="newlines"><span class="secno">9.1.3.1 </span>Newlines</h5><p><dfn id="syntax-newlines" title="syntax-newlines">Newlines</dfn> in HTML may be
+  represented either as U+000D CARRIAGE RETURN (CR) characters, U+000A
+  LINE FEED (LF) characters, or pairs of U+000D CARRIAGE RETURN (CR),
+  U+000A LINE FEED (LF) characters in that order.</p><h4 id="character-references"><span class="secno">9.1.4 </span>Character references</h4><p>In certain cases described in other sections, <a href="#syntax-text" title="syntax-text">text</a> may be mixed with <dfn id="syntax-charref" title="syntax-charref">character references</dfn>. These can be used
+  to escape characters that couldn't otherwise legally be included in
+  <a href="#syntax-text" title="syntax-text">text</a>.</p><p>Character references must start with a U+0026 AMPERSAND
+  (<code>&amp;</code>). Following this, there are three possible kinds
+  of character references:</p><dl><dt>Named character references</dt>
+
+   <dd>The ampersand must be followed by one of the names given in the
+   <a href="named-character-references.html#named-character-references">named character references</a> section, using the same
+   case. The name must be one that is terminated by a U+003B SEMICOLON
+   character (;).</dd>
+
+
+   <dt>Decimal numeric character reference</dt>
+
+   <dd>The ampersand must be followed by a U+0023 NUMBER SIGN
+   (<code>#</code>) character, followed by one or more digits in the
+   range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), representing
+   a base-ten integer that corresponds to a Unicode code point that is
+   allowed according to the definition below. The digits must then be
+   followed by a U+003B SEMICOLON character (;).</dd>
+
+
+   <dt>Hexadecimal numeric character reference</dt>
+
+   <dd>The ampersand must be followed by a U+0023 NUMBER SIGN
+   (<code>#</code>) character, which must be followed by either a
+   U+0078 LATIN SMALL LETTER X character (x) or a U+0058 LATIN CAPITAL
+   LETTER X character (X), which must then be followed by one or more
+   digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9),
+   U+0061 LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F, and
+   U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F,
+   representing a base-sixteen integer that corresponds to a Unicode
+   code point that is allowed according to the definition below. The
+   digits must then be followed by a U+003B SEMICOLON character
+   (;).</dd>
+
+  </dl><p>The numeric character reference forms described above are allowed
+  to reference any Unicode code point other than U+0000, permanently
+  undefined Unicode characters (noncharacters), and control characters
+  other than <a href="#space-character" title="space character">space
+  characters</a>.</p><p>An <dfn id="syntax-ambiguous-ampersand" title="syntax-ambiguous-ampersand">ambiguous
+  ampersand</dfn> is a U+0026 AMPERSAND character (&amp;) that is
+  followed by some <a href="#syntax-text" title="syntax-text">text</a> other than a
+  <a href="#space-character">space character</a>, a U+003C LESS-THAN SIGN character
+  (&lt;), or another U+0026 AMPERSAND character
+  (<code>&amp;</code>).</p><h4 id="cdata-sections"><span class="secno">9.1.5 </span>CDATA sections</h4><p><dfn id="syntax-cdata" title="syntax-cdata">CDATA sections</dfn> must start with
+  the character sequence U+003C LESS-THAN SIGN, U+0021 EXCLAMATION
+  MARK, U+005B LEFT SQUARE BRACKET, U+0043 LATIN CAPITAL LETTER C,
+  U+0044 LATIN CAPITAL LETTER D, U+0041 LATIN CAPITAL LETTER A, U+0054
+  LATIN CAPITAL LETTER T, U+0041 LATIN CAPITAL LETTER A, U+005B LEFT
+  SQUARE BRACKET (<code title="">&lt;![CDATA[</code>). Following this
+  sequence, the CDATA section may have <a href="#syntax-text" title="syntax-text">text</a>, with the additional restriction
+  that the text must not contain the three character sequence U+005D
+  RIGHT SQUARE BRACKET, U+005D RIGHT SQUARE BRACKET, U+003E
+  GREATER-THAN SIGN (<code title="">]]&gt;</code>). Finally, the CDATA
+  section must be ended by the three character sequence U+005D RIGHT
+  SQUARE BRACKET, U+005D RIGHT SQUARE BRACKET, U+003E GREATER-THAN
+  SIGN (<code title="">]]&gt;</code>).</p><h4 id="comments"><span class="secno">9.1.6 </span>Comments</h4><p class="XXX annotation"><b>Status: </b><i>Working draft</i></p><p><dfn id="syntax-comments" title="syntax-comments">Comments</dfn> must start with the
+  four character sequence U+003C LESS-THAN SIGN, U+0021 EXCLAMATION
+  MARK, U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS (<code title="">&lt;!--</code>). Following this sequence, the comment may
+  have <a href="#syntax-text" title="syntax-text">text</a>, with the additional
+  restriction that the text must not start with a single U+003E
+  GREATER-THAN SIGN (&gt;) character, nor start with a U+002D
+  HYPHEN-MINUS character (-) followed by a
+  U+003E GREATER-THAN SIGN (&gt;) character, nor contain two
+  consecutive U+002D HYPHEN-MINUS (<code title="">-</code>)
+  characters, nor end with a U+002D HYPHEN-MINUS (<code title="">-</code>) character. Finally, the comment must be ended by
+  the three character sequence U+002D HYPHEN-MINUS, U+002D
+  HYPHEN-MINUS, U+003E GREATER-THAN SIGN (<code title="">--&gt;</code>).</p></body></html>
\ No newline at end of file

Index: semantics.html
===================================================================
RCS file: /sources/public/html5/spec-author-view/semantics.html,v
retrieving revision 1.303
retrieving revision 1.304
diff -u -d -r1.303 -r1.304
--- semantics.html	5 Oct 2009 09:31:02 -0000	1.303
+++ semantics.html	5 Oct 2009 09:36:47 -0000	1.304
@@ -211,4 +211,2918 @@
    .apple-table-examples.e2 th[scope=row] { padding-left: 1em; }
    .apple-table-examples sup { line-height: 0; }
 
-  </style><link href="data:text/css," rel="stylesheet" title="Complete specification"><link href="data:text/css,.impl%20%7B%20display:%20none;%20%7D" rel="alternate stylesheet" title="Author documentation only"><link href="data:text/css,.impl%20%7B%20background:%20%23FFEEEE;%20%7D" rel="alternate stylesheet" title="Highlight implementation requirements"><link href="http://ww
\ No newline at end of file
+  </style><link href="data:text/css," rel="stylesheet" title="Complete specification"><link href="data:text/css,.impl%20%7B%20display:%20none;%20%7D" rel="alternate stylesheet" title="Author documentation only"><link href="data:text/css,.impl%20%7B%20background:%20%23FFEEEE;%20%7D" rel="alternate stylesheet" title="Highlight implementation requirements"><link href="http://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet" type="text/css"><!-- ZZZ ED vs WD --><link href="embedded-content-0.html" title="3.2.5.1.6 Embedded content" rel="prev">
+  <link href="Overview.html#contents" title="Table of contents" rel="index">
+  <link href="text-level-semantics.html" title="4.6 Text-level semantics" rel="next">
+  </head><body onload="fixBrokenLink(); fixBrokenLink()"><div class="head">
+   <p><a href="http://www.w3.org/"><img alt="W3C" height="48" src="http://www.w3.org/Icons/w3c_home" width="72"></a></p>
+   <h1>HTML5</h1>
[...2890 lines suppressed...]
+
+   <pre>&lt;article lang="en-US"&gt;
+ &lt;h1&gt;My use of language and my cats&lt;/h1&gt;
+ &lt;p&gt;My cat's behavior hasn't changed much since her absence, except
+ that she plays her new physique to the neighbors regularly, in an
+ attempt to get pets.&lt;/p&gt;
+ &lt;div lang="en-GB"&gt;
+  &lt;p&gt;My other cat, coloured black and white, is a sweetie. He followed
+  us to the pool today, walking down the pavement with us. Yesterday
+  he apparently visited our neighbours. I wonder if he recognises that
+  their flat is a mirror image of ours.&lt;/p&gt;
+  &lt;p&gt;Hm, I just noticed that in the last paragraph I used British
+  English. But I'm supposed to write in American English. So I
+  shouldn't say "pavement" or "flat" or "colour"...&lt;/p&gt;
+ &lt;/div&gt;
+ &lt;p&gt;I should say "sidewalk" and "apartment" and "color"!&lt;/p&gt;
+&lt;/article&gt;</pre>
+
+  </div></body></html>
\ No newline at end of file

Index: comms.html
===================================================================
RCS file: /sources/public/html5/spec-author-view/comms.html,v
retrieving revision 1.303
retrieving revision 1.304
diff -u -d -r1.303 -r1.304
--- comms.html	5 Oct 2009 09:31:02 -0000	1.303
+++ comms.html	5 Oct 2009 09:36:47 -0000	1.304
@@ -0,0 +1,435 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<!DOCTYPE html>
+<!-- when publishing, change bits marked ZZZ --><html lang="en-US-x-Hixie"><head><title>8 Communication &#8212; HTML 5</title><style type="text/css">
+   pre { margin-left: 2em; white-space: pre-wrap; }
+   h2 { margin: 3em 0 1em 0; }
+   h3 { margin: 2.5em 0 1em 0; }
+   h4 { margin: 2.5em 0 0.75em 0; }
+   h5, h6 { margin: 2.5em 0 1em; }
+   h1 + h2, h1 + h2 + h2 { margin: 0.75em 0 0.75em; }
+   h2 + h3, h3 + h4, h4 + h5, h5 + h6 { margin-top: 0.5em; }
+   p { margin: 1em 0; }
+   hr:not(.top) { display: block; background: none; border: none; padding: 0; margin: 2em 0; height: auto; }
+   dl, dd { margin-top: 0; margin-bottom: 0; }
+   dt { margin-top: 0.75em; margin-bottom: 0.25em; clear: left; }
+   dt + dt { margin-top: 0; }
+   dd dt { margin-top: 0.25em; margin-bottom: 0; }
+   dd p { margin-top: 0; }
+   dd dl + p { margin-top: 1em; }
+   dd table + p { margin-top: 1em; }
+   p + * > li, dd li { margin: 1em 0; }
+   dt, dfn { font-weight: bold; font-style: normal; }
+   dt dfn { font-style: italic; }
+   pre, code { font-size: inherit; font-family: monospace; font-variant: normal; }
+   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
+   pre em { font-weight: bolder; font-style: normal; }
+   @media screen { code { color: orangered; } code :link, code :visited { color: inherit; } }
+   var sub { vertical-align: bottom; font-size: smaller; position: relative; top: 0.1em; }
+   table { border-collapse: collapse; border-style: hidden hidden none hidden; }
+   table thead { border-bottom: solid; }
+   table tbody th:first-child { border-left: solid; }
+   table td, table th { border-left: solid; border-right: solid; border-bottom: solid thin; vertical-align: top; padding: 0.2em; }
+   blockquote { margin: 0 0 0 2em; border: 0; padding: 0; font-style: italic; }
+
+   .bad, .bad *:not(.XXX) { color: gray; border-color: gray; background: transparent; }
+   .matrix, .matrix td { border: none; text-align: right; }
+   .matrix { margin-left: 2em; }
+   .dice-example { border-collapse: collapse; border-style: hidden solid solid hidden; border-width: thin; margin-left: 3em; }
+   .dice-example caption { width: 30em; font-size: smaller; font-style: italic; padding: 0.75em 0; text-align: left; }
+   .dice-example td, .dice-example th { border: solid thin; width: 1.35em; height: 1.05em; text-align: center; padding: 0; }
+
+   .toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
+   img.extra { float: right; }
+   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em 1em; }
+   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
+   pre.css { border: solid thin; background: #FFFFEE; color: black; padding: 0.5em 1em; }
+   pre.css:first-line { color: #AAAA50; }
+   dl.domintro { color: green; margin: 2em 0 2em 2em; padding: 0.5em 1em; border: none; background: #EEFFEE; }
+   hr + dl.domintro, div.impl + dl.domintro { margin-top: 2.5em; margin-bottom: 1.5em; }
+   dl.domintro dt, dl.domintro dt * { color: black; text-decoration: none; }
+   dl.domintro dd { margin: 0.5em 0 1em 2em; padding: 0; }
+   dl.domintro dd p { margin: 0.5em 0; }
+   dl.switch { padding-left: 2em; }
+   dl.switch > dt { text-indent: -1.5em; }
+   dl.switch > dt:before { content: '\21AA'; padding: 0 0.5em 0 0; display: inline-block; width: 1em; text-align: right; line-height: 0.5em; }
+   dl.triple { padding: 0 0 0 1em; }
+   dl.triple dt, dl.triple dd { margin: 0; display: inline }
+   dl.triple dt:after { content: ':'; }
+   dl.triple dd:after { content: '\A'; white-space: pre; }
+   .diff-old { text-decoration: line-through; color: silver; background: transparent; }
+   .diff-chg, .diff-new { text-decoration: underline; color: green; background: transparent; }
+   a .diff-new { border-bottom: 1px blue solid; }
+
+   h2 { page-break-before: always; }
+   h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+   h1 + h2, hr + h2.no-toc { page-break-before: auto; }
+
+   p > span:not([title=""]):not([class="XXX"]):not([class="impl"]), li > span:not([title=""]):not([class="XXX"]):not([class="impl"]) { border-bottom: solid #9999CC; }
+
+   div.head { margin: 0 0 1em; padding: 1em 0 0 0; }
+   div.head p { margin: 0; }
+   div.head h1 { margin: 0; }
+   div.head .logo { float: right; margin: 0 1em; }
+   div.head .logo img { border: none } /* remove border from top image */
+   div.head dl { margin: 1em 0; }
+   p.copyright { font-size: x-small; font-style: oblique; margin: 0; }
+
+   body > .toc > li { margin-top: 1em; margin-bottom: 1em; }
+   body > .toc.brief > li { margin-top: 0.35em; margin-bottom: 0.35em; }
+   body > .toc > li > * { margin-bottom: 0.5em; }
+   body > .toc > li > * > li > * { margin-bottom: 0.25em; }
+   .toc, .toc li { list-style: none; }
+
+   .brief { margin-top: 1em; margin-bottom: 1em; line-height: 1.1; }
+   .brief li { margin: 0; padding: 0; }
+   .brief li p { margin: 0; padding: 0; }
+
+   .category-list { margin-top: -0.75em; margin-bottom: 1em; line-height: 1.5; }
+   .category-list::before { content: '\21D2\A0'; font-size: 1.2em; font-weight: 900; }
+   .category-list li { display: inline; }
+   .category-list li:not(:last-child)::after { content: ', '; }
+   .category-list li > span, .category-list li > a { text-transform: lowercase; }
+   .category-list li * { text-transform: none; } /* don't affect <code> nested in <a> */
+
+   .XXX { color: #E50000; background: white; border: solid red; padding: 0.5em; margin: 1em 0; }
+   .XXX > :first-child { margin-top: 0; }
+   p .XXX { line-height: 3em; }
+   .annotation { border: solid thin black; background: #0C479D; color: white; position: relative; margin: 8px 0 20px 0; }
+   .annotation:before { position: absolute; left: 0; top: 0; width: 100%; height: 100%; margin: 6px -6px -6px 6px; background: #333333; z-index: -1; content: ''; }
+   .annotation :link, .annotation :visited { color: inherit; }
+   .annotation :link:hover, .annotation :visited:hover { background: transparent; }
+   .annotation span { border: none ! important; }
+   .note { color: green; background: transparent; font-family: sans-serif; }
+   .warning { color: red; background: transparent; }
+   .note, .warning { font-weight: bolder; font-style: italic; }
+   p.note, div.note { padding: 0.5em 2em; }
+   span.note { padding: 0 2em; }
+   .note p:first-child, .warning p:first-child { margin-top: 0; }
+   .note p:last-child, .warning p:last-child { margin-bottom: 0; }
+   .warning:before { font-style: normal; }
+   p.note:before { content: 'Note: '; }
+   p.warning:before { content: '\26A0 Warning! '; }
+
+   .bookkeeping:before { display: block; content: 'Bookkeeping details'; font-weight: bolder; font-style: italic; }
+   .bookkeeping { font-size: 0.8em; margin: 2em 0; }
+   .bookkeeping p { margin: 0.5em 2em; display: list-item; list-style: square; }
+
+   h4 { position: relative; z-index: 3; }
+   h4 + .element, h4 + div + .element { margin-top: -2.5em; padding-top: 2em; }
+   .element {
+     background: #EEEEFF;
+     color: black;
+     margin: 0 0 1em 0.15em;
+     padding: 0 1em 0.25em 0.75em;
+     border-left: solid #9999FF 0.25em;
+     position: relative;
+     z-index: 1;
+   }
+   .element:before {
+     position: absolute;
+     z-index: 2;
+     top: 0;
+     left: -1.15em;
+     height: 2em;
+     width: 0.9em;
+     background: #EEEEFF;
+     content: ' ';
+     border-style: none none solid solid;
+     border-color: #9999FF;
+     border-width: 0.25em;
+   }
+
+   .example { display: block; color: #222222; background: #FCFCFC; border-left: double; margin-left: 2em; padding-left: 1em; }
+   td > .example:only-child { margin: 0 0 0 0.1em; }
+
+   .tall-and-narrow {
+     font-size: 0.6em;
+     column-width: 25em;
+     column-gap: 1em;
+     -moz-column-width: 25em;
+     -moz-column-gap: 1em;
+     -webkit-column-width: 25em;
+     -webkit-column-gap: 1em;
+   }
+
+   ul.domTree, ul.domTree ul { padding: 0 0 0 1em; margin: 0; }
+   ul.domTree li { padding: 0; margin: 0; list-style: none; position: relative; }
+   ul.domTree li li { list-style: none; }
+   ul.domTree li:first-child::before { position: absolute; top: 0; height: 0.6em; left: -0.75em; width: 0.5em; border-style: none none solid solid; content: ''; border-width: 0.1em; }
+   ul.domTree li:not(:last-child)::after { position: absolute; top: 0; bottom: -0.6em; left: -0.75em; width: 0.5em; border-style: none none solid solid; content: ''; border-width: 0.1em; }
+   ul.domTree span { font-style: italic; font-family: serif; }
+   ul.domTree .t1 code { color: purple; font-weight: bold; }
+   ul.domTree .t2 { font-style: normal; font-family: monospace; }
+   ul.domTree .t2 .name { color: black; font-weight: bold; }
+   ul.domTree .t2 .value { color: blue; font-weight: normal; }
+   ul.domTree .t3 code, .domTree .t4 code, .domTree .t5 code { color: gray; }
+   ul.domTree .t7 code, .domTree .t8 code { color: green; }
+   ul.domTree .t10 code { color: teal; }
+
+  </style><style type="text/css">
+
+   .applies thead th > * { display: block; }
+   .applies thead code { display: block; }
+   .applies tbody th { whitespace: nowrap; }
+   .applies td { text-align: center; }
+   .applies .yes { background: yellow; }
+
+   .matrix, .matrix td { border: none; text-align: right; }
+   .matrix { margin-left: 2em; }
+
+   .dice-example { border-collapse: collapse; border-style: hidden solid solid hidden; border-width: thin; margin-left: 3em; }
+   .dice-example caption { width: 30em; font-size: smaller; font-style: italic; padding: 0.75em 0; text-align: left; }
+   .dice-example td, .dice-example th { border: solid thin; width: 1.35em; height: 1.05em; text-align: center; padding: 0; }
+
+   #table-example-1 { border: solid thin; border-collapse: collapse; margin-left: 3em; }
+   #table-example-1 * { font-family: "Essays1743", serif; line-height: 1.01em; }
+   #table-example-1 caption { padding-bottom: 0.5em; }
+   #table-example-1 thead, #table-example-1 tbody { border: none; }
+   #table-example-1 th, #table-example-1 td { border: solid thin; }
+   #table-example-1 th { font-weight: normal; }
+   #table-example-1 td { border-style: none solid; vertical-align: top; }
+   #table-example-1 th { padding: 0.5em; vertical-align: middle; text-align: center; }
+   #table-example-1 tbody tr:first-child td { padding-top: 0.5em; }
+   #table-example-1 tbody tr:last-child td { padding-bottom: 1.5em; }
+   #table-example-1 tbody td:first-child { padding-left: 2.5em; padding-right: 0; width: 9em; }
+   #table-example-1 tbody td:first-child::after { content: leader(". "); }
+   #table-example-1 tbody td { padding-left: 2em; padding-right: 2em; }
+   #table-example-1 tbody td:first-child + td { width: 10em; }
+   #table-example-1 tbody td:first-child + td ~ td { width: 2.5em; }
+   #table-example-1 tbody td:first-child + td + td + td ~ td { width: 1.25em; }
+
+   .apple-table-examples { border: none; border-collapse: separate; border-spacing: 1.5em 0em; width: 40em; margin-left: 3em; }
+   .apple-table-examples * { font-family: "Times", serif; }
+   .apple-table-examples td, .apple-table-examples th { border: none; white-space: nowrap; padding-top: 0; padding-bottom: 0; }
+   .apple-table-examples tbody th:first-child { border-left: none; width: 100%; }
+   .apple-table-examples thead th:first-child ~ th { font-size: smaller; font-weight: bolder; border-bottom: solid 2px; text-align: center; }
+   .apple-table-examples tbody th::after, .apple-table-examples tfoot th::after { content: leader(". ") }
+   .apple-table-examples tbody th, .apple-table-examples tfoot th { font: inherit; text-align: left; }
+   .apple-table-examples td { text-align: right; vertical-align: top; }
+   .apple-table-examples.e1 tbody tr:last-child td { border-bottom: solid 1px; }
+   .apple-table-examples.e1 tbody + tbody tr:last-child td { border-bottom: double 3px; }
+   .apple-table-examples.e2 th[scope=row] { padding-left: 1em; }
+   .apple-table-examples sup { line-height: 0; }
+
+  </style><link href="data:text/css," rel="stylesheet" title="Complete specification"><link href="data:text/css,.impl%20%7B%20display:%20none;%20%7D" rel="alternate stylesheet" title="Author documentation only"><link href="data:text/css,.impl%20%7B%20background:%20%23FFEEEE;%20%7D" rel="alternate stylesheet" title="Highlight implementation requirements"><link href="http://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet" type="text/css"><!-- ZZZ ED vs WD --><link href="editing.html" title="7 User Interaction" rel="prev">
+  <link href="Overview.html#contents" title="Table of contents" rel="index">
+  <link href="syntax.html" title="9 The HTML syntax" rel="next">
+  </head><body onload="fixBrokenLink(); fixBrokenLink()"><div class="head">
+   <p><a href="http://www.w3.org/"><img alt="W3C" height="48" src="http://www.w3.org/Icons/w3c_home" width="72"></a></p>
+   <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>
+<p>This is revision 1.3240.</p>
+   </div><div>
+   <a href="editing.html">&#8592; 7 User Interaction</a> &#8211;
+   <a href="Overview.html#contents">Table of contents</a> &#8211;
+   <a href="syntax.html">9 The HTML syntax &#8594;</a>
+  </div>
+
+  <h2 id="comms"><span class="secno">8 </span>Communication</h2><h3 id="event-definitions"><span class="secno">8.1 </span>Event definitions</h3><p>Messages in <span>server-sent events</span>, <span>Web
+  sockets</span>, <a href="#crossDocumentMessages">cross-document messaging</a>, and
+  <a href="#channel-messaging">channel messaging</a> use the <dfn id="event-message" title="event-message"><code>message</code></dfn> event. <a href="references.html#refsEVENTSOURCE">[EVENTSOURCE]</a> <a href="references.html#refsWEBSOCKET">[WEBSOCKET]</a></p><p>The following interface is defined for this event:</p><pre class="idl">interface <dfn id="messageevent">MessageEvent</dfn> : Event {
+  readonly attribute any <a href="#dom-messageevent-data" title="dom-MessageEvent-data">data</a>;
+  readonly attribute DOMString <a href="#dom-messageevent-origin" title="dom-MessageEvent-origin">origin</a>;
+  readonly attribute DOMString <a href="#dom-messageevent-lasteventid" title="dom-MessageEvent-lastEventId">lastEventId</a>;
+  readonly attribute <a href="#windowproxy">WindowProxy</a> <a href="#dom-messageevent-source" title="dom-MessageEvent-source">source</a>;
+  readonly attribute <a href="#messageportarray">MessagePortArray</a> <a href="#dom-messageevent-ports" title="dom-MessageEvent-ports">ports</a>;
+  void <a href="#dom-messageevent-initmessageevent" title="dom-MessageEvent-initMessageEvent">initMessageEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dataArg, in DOMString originArg, in DOMString lastEventIdArg, in <a href="#windowproxy">WindowProxy</a> sourceArg, in <a href="#messageportarray">MessagePortArray</a> portsArg);
+  void <a href="#dom-messageevent-initmessageeventns" title="dom-MessageEvent-initMessageEventNS">initMessageEventNS</a>(in DOMString namespaceURI, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dataArg, in DOMString originArg, in DOMString lastEventIdArg, in <a href="#windowproxy">WindowProxy</a> sourceArg, in <a href="#messageportarray">MessagePortArray</a> portsArg);
+};</pre><dl class="domintro"><dt><var title="">event</var> . <code title="dom-MessageEvent-data"><a href="#dom-messageevent-data">data</a></code></dt>
+
+   <dd>
+
+    <p>Returns the data of the message.</p>
+
+   </dd>
+
+   <dt><var title="">event</var> . <code title="dom-MessageEvent-origin"><a href="#dom-messageevent-origin">origin</a></code></dt>
+
+   <dd>
+
+    <p>Returns the origin of the message, for <span>server-sent
+    events</span> and <a href="#crossDocumentMessages">cross-document messaging</a>.</p>
+
+   </dd>
+
+   <dt><var title="">event</var> . <code title="dom-MessageEvent-lastEventId"><a href="#dom-messageevent-lasteventid">lastEventId</a></code></dt>
+
+   <dd>
+
+    <p>Returns the last event ID, for <span>server-sent
+    events</span>.</p>
+
+   </dd>
+
+   <dt><var title="">event</var> . <code title="dom-MessageEvent-source"><a href="#dom-messageevent-source">source</a></code></dt>
+
+   <dd>
+
+    <p>Returns the <code><a href="#windowproxy">WindowProxy</a></code> of the source window, for
+    <a href="#crossDocumentMessages">cross-document messaging</a>.</p>
+
+   </dd>
+
+   <dt><var title="">event</var> . <code title="dom-MessageEvent-ports"><a href="#dom-messageevent-ports">ports</a></code></dt>
+
+   <dd>
+
+    <p>Returns the <code><a href="#messageportarray">MessagePortArray</a></code> sent with the
+    message, for <a href="#crossDocumentMessages">cross-document messaging</a> and
+    <a href="#channel-messaging">channel messaging</a>.</p>
+
+   </dd>
+
+  </dl><h3 id="crossDocumentMessages"><span class="secno">8.2 </span><dfn>Cross-document messaging</dfn></h3><p class="XXX annotation"><b>Status: </b><i>Awaiting implementation feedback</i></p><p>Web browsers, for security and privacy reasons, prevent documents
+  in different domains from affecting each other; that is, cross-site
+  scripting is disallowed.</p><p>While this is an important security feature, it prevents pages
+  from different domains from communicating even when those pages are
+  not hostile. This section introduces a messaging system that allows
+  documents to communicate with each other regardless of their source
+  domain, in a way designed to not enable cross-site scripting
+  attacks.</p><h4 id="introduction-5"><span class="secno">8.2.1 </span>Introduction</h4><p><i>This section is non-normative.</i></p><div class="example">
+
+   <p>For example, if document A contains an <code><a href="text-level-semantics.html#the-iframe-element">iframe</a></code>
+   element that contains document B, and script in document A calls
+   <code title="dom-window-postMessage-2"><a href="#dom-window-postmessage-2">postMessage()</a></code> on the
+   <code><a href="browsers.html#window">Window</a></code> object of document B, then a message event will
+   be fired on that object, marked as originating from the
+   <code><a href="browsers.html#window">Window</a></code> of document A. The script in document A might
+   look like:</p>
+
+   <pre>var o = document.getElementsByTagName('iframe')[0];
+o.contentWindow.postMessage('Hello world', 'http://b.example.org/');</pre>
+
+   <p>To register an event handler for incoming events, the script
+   would use <code title="">addEventListener()</code> (or similar
+   mechanisms). For example, the script in document B might look
+   like:</p>
+
+   <pre>window.addEventListener('message', receiver, false);
+function receiver(e) {
+  if (e.origin == 'http://example.com') {
+    if (e.data == 'Hello world') {
+      e.source.postMessage('Hello', e.origin);
+    } else {
+      alert(e.data);
+    }
+  }
+}</pre>
+
+   <p>This script first checks the domain is the expected domain, and
+   then looks at the message, which it either displays to the user, or
+   responds to by sending a message back to the document which sent
+   the message in the first place.</p>
+
+  </div><h4 id="security-4"><span class="secno">8.2.2 </span>Security</h4><p class="warning">Use of this API requires extra care to protect
+  users from hostile entities abusing a site for their own
+  purposes.</p><p>Authors should check the <code title="dom-MessageEvent-origin"><a href="#dom-messageevent-origin">origin</a></code> attribute to ensure
+  that messages are only accepted from domains that they expect to
+  receive messages from. Otherwise, bugs in the author's message
+  handling code could be exploited by hostile sites.</p><p>Furthermore, even after checking the <code title="dom-MessageEvent-origin"><a href="#dom-messageevent-origin">origin</a></code> attribute, authors
+  should also check that the data in question is of the expected
+  format. Otherwise, if the source of the event has been attacked
+  using a cross-site scripting flaw, further unchecked processing of
+  information sent using the <code title="dom-window-postMessage-2"><a href="#dom-window-postmessage-2">postMessage()</a></code> method could
+  result in the attack being propagated into the receiver.</p><p>Authors should not use the wildcard keyword (*) in the <var title="">targetOrigin</var> argument in messages that contain any
+  confidential information, as otherwise there is no way to guarantee
+  that the message is only delivered to the recipient to which it was
+  intended.</p><h4 id="posting-messages"><span class="secno">8.2.3 </span>Posting messages</h4><dl class="domintro"><dt><var title="">window</var> . <code title="dom-window-postMessage-2"><a href="#dom-window-postmessage-2">postMessage</a></code>(<var title="">message</var>, [ <var title="">ports</var>, ] <var title="">targetOrigin</var>)</dt>
+
+   <dd>
+
+    <p>Posts a message, optionally with an array of ports, to the
+    given window.</p>
+
+    <p>If the origin of the target window doesn't match the given
+    origin, the message is discarded, to avoid information leakage. To
+    send the message to the target regardless of origin, set the
+    target origin to "<code title="">*</code>".</p>
+
+    <p>Throws an <code><a href="infrastructure.html#invalid_state_err">INVALID_STATE_ERR</a></code> if the <var title="">ports</var> array is not null and it contains either null
+    entries or duplicate ports.</p>
+
+   </dd>
+
+  </dl><h3 id="channel-messaging"><span class="secno">8.3 </span><dfn>Channel messaging</dfn></h3><p class="XXX annotation"><b>Status: </b><i>Last call for comments</i></p><h4 id="message-channels"><span class="secno">8.3.1 </span>Message channels</h4><pre class="idl">[<a href="#dom-messagechannel" title="dom-MessageChannel">Constructor</a>]
+interface <dfn id="messagechannel">MessageChannel</dfn> {
+  readonly attribute <a href="#messageport">MessagePort</a> <a href="#dom-channel-port1" title="dom-channel-port1">port1</a>;
+  readonly attribute <a href="#messageport">MessagePort</a> <a href="#dom-channel-port2" title="dom-channel-port2">port2</a>;
+};</pre><dl class="domintro"><dt><var title="">channel</var> = new <code title="dom-MessageChannel"><a href="#dom-messagechannel">MessageChannel</a></code>()</dt>
+
+   <dd>
+
+    <p>Returns a new <code><a href="#messagechannel">MessageChannel</a></code> object with two new <code><a href="#messageport">MessagePort</a></code> objects.</p>
+
+   </dd>
+
+   <dt><var title="">channel</var> . <code title="dom-MessageChannel-port1">port1</code></dt>
+
+   <dd>
+
+    <p>Returns the first <code><a href="#messageport">MessagePort</a></code> object.</p>
+
+   </dd>
+
+   <dt><var title="">channel</var> . <code title="dom-MessageChannel-port2">port2</code></dt>
+
+   <dd>
+
+    <p>Returns the second <code><a href="#messageport">MessagePort</a></code> object.</p>
+
+   </dd>
+
+  </dl><h4 id="message-ports"><span class="secno">8.3.2 </span>Message ports</h4><p>Each channel has two message ports. Data sent through one port is
+  received by the other port, and vice versa.</p><pre class="idl">typedef sequence&lt;MessagePort&gt; <dfn id="messageportarray">MessagePortArray</dfn>;
+
+interface <dfn id="messageport">MessagePort</dfn> {
+<!-- v2-onclose  readonly attribute boolean <span title="dom-MessagePort-active">active</span>;
+-->  void <a href="#dom-messageport-postmessage" title="dom-MessagePort-postMessage">postMessage</a>(in any message, in optional <a href="#messageportarray">MessagePortArray</a> ports);<!--
+  <span>MessagePort</span> <span title="dom-MessagePort-startConversation">startConversation</span>(in any message);-->
+  void <a href="#dom-messageport-start" title="dom-MessagePort-start">start</a>();
+  void <a href="#dom-messageport-close" title="dom-MessagePort-close">close</a>();
+
+  // event handlers
+           attribute <a href="#function">Function</a> <a href="#handler-messageport-onmessage" title="handler-MessagePort-onmessage">onmessage</a>;
+};
+<a href="#messageport">MessagePort</a> implements <span>EventTarget</span>;</pre><dl class="domintro"><!-- v2-onclose
+   <dt><var title="">port</var> . <code title="dom-MessagePort-active">active</code></dt>
+
+   <dd>
+
+    <p>Returns true if the port is still active; otherwise, returns false.</p>
+
+   </dd>
+--><dt><var title="">port</var> . <code title="dom-MessagePort-poseMessage">postMessage</code>(<var title="">message</var> [, <var title="">ports</var>] )</dt>
+
+   <dd>
+
+    <p>Posts a message through the channel, optionally with the given
+    ports.</p>
+
+    <p>Throws an <code><a href="infrastructure.html#invalid_state_err">INVALID_STATE_ERR</a></code> if the <var title="">ports</var> array is not null and it contains either null
+    entries, duplicate ports, or the source or target port.</p>
+
+   </dd>
+
+   <dt><var title="">port</var> . <code title="dom-MessagePort-start"><a href="#dom-messageport-start">start</a></code>()</dt>
+
+   <dd>
+
+    <p>Begins dispatching messages received on the port.</p>
+
+   </dd>
+
+   <dt><var title="">port</var> . <code title="dom-MessagePort-close"><a href="#dom-messageport-close">close</a></code>()</dt>
+
+   <dd>
+
+    <p>Disconnects the port, so that it is no longer active.</p>
+
+   </dd>
+
+  </dl><h5 id="ports-and-garbage-collection"><span class="secno">8.3.2.1 </span>Ports and garbage collection</h5><p class="note">Authors are strongly encouraged to explicitly close
+  <code><a href="#messageport">MessagePort</a></code> objects to disentangle them, so that their
+  resources can be recollected. Creating many <code><a href="#messageport">MessagePort</a></code>
+  objects and discarding them without closing them can lead to high
+  memory usage.</p></body></html>
\ No newline at end of file

Index: spec.html
===================================================================
RCS file: /sources/public/html5/spec-author-view/spec.html,v
retrieving revision 1.304
retrieving revision 1.305
diff -u -d -r1.304 -r1.305
--- spec.html	5 Oct 2009 09:31:02 -0000	1.304
+++ spec.html	5 Oct 2009 09:36:47 -0000	1.305
@@ -0,0 +1,27791 @@
+<!DOCTYPE html><!-- when publishing, change bits marked ZZZ --><html lang=en-US-x-Hixie><head><title>HTML5</title><style type=text/css>
+   pre { margin-left: 2em; white-space: pre-wrap; }
+   h2 { margin: 3em 0 1em 0; }
+   h3 { margin: 2.5em 0 1em 0; }
+   h4 { margin: 2.5em 0 0.75em 0; }
+   h5, h6 { margin: 2.5em 0 1em; }
+   h1 + h2, h1 + h2 + h2 { margin: 0.75em 0 0.75em; }
+   h2 + h3, h3 + h4, h4 + h5, h5 + h6 { margin-top: 0.5em; }
+   p { margin: 1em 0; }
+   hr:not(.top) { display: block; background: none; border: none; padding: 0; margin: 2em 0; height: auto; }
+   dl, dd { margin-top: 0; margin-bottom: 0; }
[...27761 lines suppressed...]
+ XXX * use the sample widgets:
+          <li><img alt="A text field with editable sections for each
+          value, with a button to pop up a dialog showing a calendar or
+          clock." src="sample-datetime-ui-2"></li>
+          <li><img alt="A calendar grid with a clock in the upper right
+          hand corner." src="sample-datetime-ui-3"></li>
+ XXX * make the spec more consistent about its use of "hexadecimal"
+       and "base-sixteen", the order that 0-9 A-Z a-z is mentioned,
+       and the detail to which the spec explains how to interpret a
+       string as a hexadecimal number.
+ XXX * become more consistent about what markup we use to mark up
+       productions (nothing? <i>? <code>?)
+ XXX * should check all cases of 'active document' and change the
+       relevant ones to 'fully active document'.
+ XXX * use <code>Document</code> consistently instead of 'document'.
+ XXX * s/raise/throw/g
+ XXX * be clearer about arrays/lists/collections being zero-based
+       despite using the term "/index/th".
+--></body></html>
\ No newline at end of file

Received on Monday, 5 October 2009 09:37:03 UTC