W3C home > Mailing lists > Public > public-html-commits@w3.org > June 2008

html5/spec/static/multipage Overview.html,NONE,1.1 acknowledgements.html,NONE,1.1 comms.html,NONE,1.1 dom.html,NONE,1.1 editing.html,NONE,1.1 embedded0.html,NONE,1.1 fragment-links.js,NONE,1.1 history.html,NONE,1.1 index.html,NONE,1.1 interactive-elements.html,NONE,1.1 introduction.html,NONE,1.1 named.html,NONE,1.1 no.html,NONE,1.1 offline.html,NONE,1.1 parsing.html,NONE,1.1 references.html,NONE,1.1 rendering.html,NONE,1.1 repetition.html,NONE,1.1 semantics.html,NONE,1.1 serializing.html,NONE,1.1 structured.html,NONE,1.1 syntax.html,NONE,1.1 tabular.html,NONE,1.1 text-level.html,NONE,1.1 the-canvas.html,NONE,1.1 the-root.html,NONE,1.1 tokenisation.html,NONE,1.1 tree-construction.html,NONE,1.1 video.html,NONE,1.1 web-browsers.html,NONE,1.1

From: Michael Smith via cvs-syncmail <cvsmail@w3.org>
Date: Tue, 10 Jun 2008 00:28:37 +0000
To: Message-Id: <E1K5rj3-0002kw-2C@lionel-hutz.w3.org>

Update of /sources/public/html5/spec/static/multipage
In directory hutz:/tmp/cvs-serv10008/static/multipage

Added Files:
	Overview.html acknowledgements.html comms.html dom.html 
	editing.html embedded0.html fragment-links.js history.html 
	index.html interactive-elements.html introduction.html 
	named.html no.html offline.html parsing.html references.html 
	rendering.html repetition.html semantics.html serializing.html 
	structured.html syntax.html tabular.html text-level.html 
	the-canvas.html the-root.html tokenisation.html 
	tree-construction.html video.html web-browsers.html 
Log Message:
added multipage version generated from spec-splitter script


--- NEW FILE: the-canvas.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...2609 lines suppressed...]
   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 the ratio of
   the specified width to the specified height must be the same as the ratio
   of the logical width to the logical height in the resource. The two
   attributes must be omitted if the resource in question does not have both
   a logical width and a logical height.

  <p>To parse the attributes, user agents must use the <a href="semantics.html#rules2">rules for parsing dimension values</a>. This will return
   either an integer length, a percentage value, or nothing. The user agent
   requirements for processing the values obtained from parsing these
   attributes are described <a href="rendering.html#sizing" title="sizing of embedded
   content">in the rendering section</a><!-- XXX xref -->. If one of these
   attributes, when parsing, returns no value, it must be treated, for the
   purposes of those requirements, as if it was not specified.

  <p>The <dfn id="width5" title="dom-dim-width"><code>width</code></dfn> and <dfn id="height4" title="dom-dim-height"><code>height</code></dfn> DOM attributes
   on the <code><a href="embedded0.html#embed">embed</a></code>, <code><a href="embedded0.html#object">object</a></code>, and <code><a href="video.html#video1">video</a></code> elements must <a href="dom.html#reflect">reflect</a> the content attributes of the same name.

  
--- NEW FILE: repetition.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
   ul.toc li ul { margin-bottom: 0.75em; }
   ul.toc li ul li ul { margin-bottom: 0.25em; }
   var sub { vertical-align: bottom; font-size: smaller; position: relative; top: 0.1em; }
   @media screen { code { color: rgb(255, 69, 0); background: transparent; } }
   code :link, code :visited { color: inherit; background: transparent; }
   .example { display: block; color: #222222; background: #FCFCFC; border-left: double; margin-left: 1em; padding-left: 1em; }
   .issue, .big-issue { color: #E50000; background: white; border: solid red; padding: 0.5em; margin: 1em 0; }
   .issue > :first-child, .big-issue > :first-child { margin-top: 0; }
   p .big-issue { line-height: 3em; }
   .note { color: green; background: transparent; }
   .note { font-family: sans-serif; }
   p.note:before { content: 'Note: '; }
   .warning { color: red; background: transparent; }
   .warning:before { font-style: normal; }
   p.warning:before { content: '\26A0 Warning! '; }
   .note, .warning { font-weight: bolder; font-style: italic; padding: 0.5em 2em; }
   .copyright { margin: 0.25em 0; }
   img { max-width: 100%; }
   h4 + .element { margin-top: -2.5em; padding-top: 2em; }
   h4 + p + .element { margin-top: -5em; padding-top: 4em; }
   .element { background: #EEEEFF; color: black; margin: 0 0 1em -1em; padding: 0 1em 0.25em 0.75em; border-left: solid #9999FF 0.25em; }
   table.matrix, table.matrix td { border: none; text-align: right; }
   table.matrix { margin-left: 2em; }
  </style>
  <link href="http://www.w3.org/StyleSheets/TR/%57%33%43-WD" rel="stylesheet" type="text/css">
  <!-- ZZZ -->

 <link href="comms.html" rel="prev" title="6. Communication">
  <link href="Overview.html#contents" rel="index" title="Table of contents">
  <link href="syntax.html" rel="next" title="8. The HTML syntax">
  <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 id="html-5">HTML 5</h1>

   <h2 class="no-num no-toc" id="a-vocabulary">A vocabulary and associated APIs
    for HTML and XHTML</h2>

   </div>

  <div>
   <a href="comms.html">&larr; 6. Communication</a> &ndash;
   <a href="Overview.html#contents">Table of contents</a> &ndash;
   <a href="syntax.html">8. The HTML syntax &rarr;</a>
  </div>

  <h2 id="repetition"><span class="secno">7. </span>Repetition templates</h2>

  <p class="big-issue">See <a href="http://www.whatwg.org/specs/web-forms/current-work/#repeatingFormControls">WF2</a>
   for now

  
--- NEW FILE: named.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...2190 lines suppressed...]
     <tr> <td> <code title="">zeetrf;</code> </td> <td> U+02128 </td> </tr>
     <tr> <td> <code title="">zeta;</code> </td> <td> U+003B6 </td> </tr>
     <tr> <td> <code title="">zfr;</code> </td> <td> U+1D537 </td> </tr>
     <tr> <td> <code title="">zhcy;</code> </td> <td> U+00436 </td> </tr>
     <tr> <td> <code title="">zigrarr;</code> </td> <td> U+021DD </td> </tr>
     <tr> <td> <code title="">zopf;</code> </td> <td> U+1D56B </td> </tr>
     <tr> <td> <code title="">zscr;</code> </td> <td> U+1D4CF </td> </tr>
     <tr> <td> <code title="">zwj;</code> </td> <td> U+0200D </td> </tr>
     <tr> <td> <code title="">zwnj;</code> </td> <td> U+0200C </td> </tr>
   </table>
   <!--
   If we want to add character references, Almorca suggests:
   > I would add &sub1; (character U+2081), &sub2;
   > (character U+2082) and &sub3; (character U+2083). They
   > would are the equivalent to &sup1;, &sup2;, and &sup3;.
   See also: http://www.w3.org/2003/entities/
  -->
   </div>

  
--- NEW FILE: serializing.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
   ul.toc li ul { margin-bottom: 0.75em; }
   ul.toc li ul li ul { margin-bottom: 0.25em; }
   var sub { vertical-align: bottom; font-size: smaller; position: relative; top: 0.1em; }
   @media screen { code { color: rgb(255, 69, 0); background: transparent; } }
   code :link, code :visited { color: inherit; background: transparent; }
   .example { display: block; color: #222222; background: #FCFCFC; border-left: double; margin-left: 1em; padding-left: 1em; }
   .issue, .big-issue { color: #E50000; background: white; border: solid red; padding: 0.5em; margin: 1em 0; }
   .issue > :first-child, .big-issue > :first-child { margin-top: 0; }
   p .big-issue { line-height: 3em; }
   .note { color: green; background: transparent; }
   .note { font-family: sans-serif; }
   p.note:before { content: 'Note: '; }
   .warning { color: red; background: transparent; }
   .warning:before { font-style: normal; }
   p.warning:before { content: '\26A0 Warning! '; }
   .note, .warning { font-weight: bolder; font-style: italic; padding: 0.5em 2em; }
   .copyright { margin: 0.25em 0; }
   img { max-width: 100%; }
   h4 + .element { margin-top: -2.5em; padding-top: 2em; }
   h4 + p + .element { margin-top: -5em; padding-top: 4em; }
   .element { background: #EEEEFF; color: black; margin: 0 0 1em -1em; padding: 0 1em 0.25em 0.75em; border-left: solid #9999FF 0.25em; }
   table.matrix, table.matrix td { border: none; text-align: right; }
   table.matrix { margin-left: 2em; }
  </style>
  <link href="http://www.w3.org/StyleSheets/TR/%57%33%43-WD" rel="stylesheet" type="text/css">
  <!-- ZZZ -->

 <link href="tree-construction.html" rel="prev" title="8.2.5 Tree construction">
  <link href="Overview.html#contents" rel="index" title="Table of contents">
  <link href="named.html" rel="next" title="8.6 Named character references">
  <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 id="html-5">HTML 5</h1>

   <h2 class="no-num no-toc" id="a-vocabulary">A vocabulary and associated APIs
    for HTML and XHTML</h2>

   </div>

  <div>
   <a href="tree-construction.html">&larr; 8.2.5 Tree construction</a> &ndash;
   <a href="Overview.html#contents">Table of contents</a> &ndash;
   <a href="named.html">8.6 Named character references &rarr;</a>
  </div>

  <h3 id="serializing"><span class="secno">8.4 </span>Serializing HTML fragments</h3>

  <p>The following steps form the <dfn id="html-fragment">HTML fragment
   serialization algorithm</dfn>. The algorithm takes as input a DOM
   <code>Element</code> or <code>Document</code>, referred to as <var title="">the node</var>, and either returns a string or raises an
   exception.

  <p class="note">This algorithm serializes the <em>children</em> of the node
   being serialized, not the node itself.

  <ol>
   <li>
    <p>Let <var title="">s</var> be a string, and initialise it to the empty
     string.

   <li>
    <p>For each child node of <var title="">the node</var>, in <a href="introduction.html#tree-order">tree order</a>, run the following steps:

    <ol>
     <li>
      <p>Let <var title="">current node</var> be the child node being
       processed.

     <li>
      <p>Append the appropriate string from the following list to <var title="">s</var>:</p>

      <dl class="switch">
       <dt>If <var title="">current node</var> is an <code title="">Element</code>

       <dd>
        <p>Append a U+003C LESS-THAN SIGN (<code title="">&lt;</code>)
         character, followed by the element's tag name. (For nodes created by
         the <a href="parsing.html#html-0">HTML parser</a>, <code title="">Document.createElement()</code>, or <code title="">Document.renameNode()</code>, the tag name will be
         lowercase.)</p>

        <p>For each attribute that the element has, append a U+0020 SPACE
         character, the attribute's name (which, for attributes set by the <a href="parsing.html#html-0">HTML parser</a> or by <code title="">Element.setAttributeNode()</code> or <code title="">Element.setAttribute()</code>, will be lowercase), a U+003D
         EQUALS SIGN (<code title="">=</code>) character, a U+0022 QUOTATION
         MARK (<code title="">"</code>) character, the attribute's
         value, <a href="#escapingString" title="escaping a string">escaped
         as described below</a> in <i>attribute mode</i>, and a second U+0022
         QUOTATION MARK (<code title="">"</code>) character.</p>

        <p>While the exact order of attributes is UA-defined, and may depend
         on factors such as the order that the attributes were given in the
         original markup, the sort order must be stable, such that
         consecutive invocations of this algorithm serialize an element's
         attributes in the same order.</p>

        <p>Append a U+003E GREATER-THAN SIGN (<code title="">&gt;</code>)
         character.</p>

        <p>If <var title="">current node</var> is an <code><a href="the-canvas.html#area">area</a></code>, <code><a href="the-root.html#base">base</a></code>,
         <code>basefont</code>, <code>bgsound</code>, <code><a href="the-root.html#br">br</a></code>, <code><a href="tabular.html#col">col</a></code>,
         <code><a href="embedded0.html#embed">embed</a></code>, <code>frame</code>,
         <code><a href="the-root.html#hr">hr</a></code>, <code><a href="embedded0.html#img">img</a></code>, <code>input</code>, <code><a href="the-root.html#link">link</a></code>, <code><a href="the-root.html#meta0">meta</a></code>, <code><a href="embedded0.html#param">param</a></code>, <code>spacer</code>, or
         <code>wbr</code> element, then continue on to the next child node at
         this point.</p>
        <!-- also, i guess: image, isindex,
        and keygen, but we don't list those because we don't consider
        those "elements", more "macros", and thus we should never
        serialize them -->
        <!-- XXX when we get around to it, add
        event-source -->
        <p>If <var title="">current node</var> is a <code><a href="the-root.html#pre">pre</a></code> <code>textarea</code>, or
         <code>listing</code> element, append a U+000A LINE FEED (LF)
         character.</p>

        <p>Append the value of running the <a href="#html-fragment">HTML
         fragment serialization algorithm</a> on the <var title="">current
         node</var> element (thus recursing into this algorithm for that
         element), followed by a U+003C LESS-THAN SIGN (<code title="">&lt;</code>) character, a U+002F SOLIDUS (<code title="">/</code>) character, the element's tag name again, and
         finally a U+003E GREATER-THAN SIGN (<code title="">&gt;</code>)
         character.</p>

       <dt>If <var title="">current node</var> is a <code title="">Text</code> or <code title="">CDATASection</code> node

       <dd>
        <p>If one of the ancestors of <var title="">current node</var> is a
         <code><a href="the-root.html#style1">style</a></code>, <code><a href="tabular.html#script1">script</a></code>, <code>xmp</code>, <code><a href="embedded0.html#iframe">iframe</a></code>, <code>noembed</code>,
         <code>noframes</code>, <code><a href="tabular.html#noscript">noscript</a></code>, or <code>plaintext</code>
         element, then append the value of <var title="">current node</var>'s
         <code title="">data</code> DOM attribute literally.</p>
        <!-- note about noscript: we're
        assuming here that scripting is disabled. If this algorithm is
        used with scripting disabled, this won't work right. XXX This
        might affect calling innerHTML on nodes in a document that is
        being designMode'd -->
        
        <p>Otherwise, append the value of <var title="">current node</var>'s
         <code title="">data</code> DOM attribute, <a href="#escapingString" title="escaping a string">escaped as described below</a>.</p>

       <dt>If <var title="">current node</var> is a <code title="">Comment</code>

       <dd>
        <p>Append the literal string <code>&lt;!--</code> (U+003C LESS-THAN
         SIGN, U+0021 EXCLAMATION MARK, U+002D HYPHEN-MINUS, U+002D
         HYPHEN-MINUS), followed by the value of <var title="">current
         node</var>'s <code title="">data</code> DOM attribute, followed by
         the literal string <code>--&gt;</code> (U+002D HYPHEN-MINUS, U+002D
         HYPHEN-MINUS, U+003E GREATER-THAN SIGN).</p>

       <dt>If <var title="">current node</var> is a <code title="">ProcessingInstruction</code>

       <dd>
        <p>Append the literal string <code>&lt;?</code> (U+003C LESS-THAN
         SIGN, U+003F QUESTION MARK), followed by the value of <var title="">current node</var>'s <code title="">target</code> DOM
         attribute, followed by a single U+0020 SPACE character, followed by
         the value of <var title="">current node</var>'s <code title="">data</code> DOM attribute, followed by a single U+003E
         GREATER-THAN SIGN character ('&gt;').</p>

       <dt>If <var title="">current node</var> is a <code title="">DocumentType</code>

       <dd>
        <p>Append the literal string <code>&lt;!DOCTYPE</code> (U+003C
         LESS-THAN SIGN, U+0021 EXCLAMATION MARK, U+0044 LATIN CAPITAL LETTER
         D, U+004F LATIN CAPITAL LETTER O, U+0043 LATIN CAPITAL LETTER C,
         U+0054 LATIN CAPITAL LETTER T, U+0059 LATIN CAPITAL LETTER Y, U+0050
         LATIN CAPITAL LETTER P, U+0045 LATIN CAPITAL LETTER E), followed by
         a space (U+0020 SPACE), followed by the value of <var title="">current node</var>'s <code title="">name</code> DOM
         attribute, followed by the literal string <code>&gt;</code> (U+003E
         GREATER-THAN SIGN).</p>
      </dl>

      <p>Other node types (e.g. <code title="">Attr</code>) cannot occur as
       children of elements. If, despite this, they somehow do occur, this
       algorithm must raise an <code>INVALID_STATE_ERR</code> exception.</p>
    </ol>

   <li>
    <p>The result of the algorithm is the string <var title="">s</var>.
  </ol>

  <p><dfn id="escapingString">Escaping a string</dfn> (for the purposes of the
   algorithm above) consists of replacing any occurrences of the "<code title="">&amp;</code>" character by the string "<code title="">&amp;amp;</code>", any occurrences of the "<code title="">&lt;</code>" character by the string "<code title="">&amp;lt;</code>", any occurrences of the "<code title="">&gt;</code>" character by the string "<code title="">&amp;gt;</code>", any occurrences of the U+00A0 NO-BREAK SPACE
   character by the string "<code title="">&amp;nbsp;</code>", and, if the
   algorithm was invoked in the <i>attribute mode</i>, any occurrences of the
   "<code title="">"</code>" character by the string "<code title="">&amp;quot;</code>".

  <p class="note">Entity reference nodes are <a href="introduction.html#entity-references">assumed to be expanded</a> by the user agent,
   and are therefore not covered in the algorithm above.

  <p class="note">It is possible that the output of this algorithm, if parsed
   with an <a href="parsing.html#html-0">HTML parser</a>, will not return the original
   tree structure. For instance, if a <code>textarea</code> element to which
   a <code title="">Comment</code> node has been appended is serialized and
   the output is then reparsed, the comment will end up being displayed in
   the text field. Similarly, if, as a result of DOM manipulation, an element
   contains a comment that contains the literal string "<code title="">--&gt;</code>", then when the result of serializing the element
   is parsed, the comment will be truncated at that point and the rest of the
   comment will be interpreted as markup. More examples would be making a
   <code><a href="tabular.html#script1">script</a></code> element contain a text node
   with the text string "<code>&lt;/script&gt;</code>", or having a <code><a href="the-root.html#p">p</a></code> element that contains a <code><a href="the-root.html#ul">ul</a></code> element (as the <code><a href="the-root.html#ul">ul</a></code>
   element's <span title="syntax-start-tag">start tag</span> would imply the
   end tag for the <code><a href="the-root.html#p">p</a></code>).

  <h3 id="parsing2"><span class="secno">8.5 </span>Parsing HTML fragments</h3>

  <p>The following steps form the <dfn id="html-fragment0">HTML fragment
   parsing algorithm</dfn>. The algorithm takes as input a DOM
   <code>Element</code>, referred to as the <var title="">context</var>
   element, which gives the context for the parser, as well as <var title="">input</var>, a string to parse, and returns a list of zero or
   more nodes.

  <p class="note">Parts marked <dfn id="fragment">fragment case</dfn> in
   algorithms in the parser section are parts that only occur if the parser
   was created for the purposes of this algorithm. The algorithms have been
   annotated with such markings for informational purposes only; such
   markings have no normative weight. If it is possible for a condition
   described as a <a href="#fragment">fragment case</a> to occur even when
   the parser wasn't created for the purposes of handling this algorithm,
   then that is an error in the specification.

  <ol>
   <li>
    <p>Create a new <code>Document</code> node, and mark it as being an <a href="dom.html#html-" title="HTML documents">HTML document</a>.</p>

   <li>
    <p>Create a new <a href="parsing.html#html-0">HTML parser</a>, and associate it with
     the just created <code>Document</code> node.</p>

   <li>
    <p>Set the <a href="parsing.html#html-0">HTML parser</a>'s <a href="tokenisation.html#tokenisation0">tokenisation</a> stage's <a href="tokenisation.html#content2">content model flag</a> according to the <var title="">context</var> element, as follows:</p>

    <dl class="switch">
     <dt>If it is a <code><a href="the-root.html#title1">title</a></code> or
      <code>textarea</code> element

     <dd>Set the <a href="tokenisation.html#content2">content model flag</a> to
      <em>RCDATA</em>.

     <dt>If it is a <code><a href="the-root.html#style1">style</a></code>, <code><a href="tabular.html#script1">script</a></code>, <code>xmp</code>, <code><a href="embedded0.html#iframe">iframe</a></code>, <code>noembed</code>, or
      <code>noframes</code> element

     <dd>Set the <a href="tokenisation.html#content2">content model flag</a> to
      <em>CDATA</em>.

     <dt>If it is a <code><a href="tabular.html#noscript">noscript</a></code> element

     <dd>If the <a href="parsing.html#scripting2">scripting flag</a> is enabled, set the
      <a href="tokenisation.html#content2">content model flag</a> to <em>CDATA</em>.
      Otherwise, set the <a href="tokenisation.html#content2">content model flag</a> to
      <em>PCDATA</em>.

     <dt>If it is a <code>plaintext</code> element

     <dd>Set the <a href="tokenisation.html#content2">content model flag</a> to
      <em>PLAINTEXT</em>.

     <dt>Otherwise

     <dd>Set the <a href="tokenisation.html#content2">content model flag</a> to
      <em>PCDATA</em>.
    </dl>

   <li>
    <p>Let <var title="">root</var> be a new <code><a href="the-root.html#html">html</a></code> element with no attributes.</p>

   <li>
    <p>Append the element <var title="">root</var> to the
     <code>Document</code> node created above.</p>

   <li>
    <p>Set up the parser's <a href="parsing.html#stack">stack of open elements</a> so
     that it contains just the single element <var title="">root</var>.</p>

   <li>
    <p><a href="parsing.html#reset" title="reset the insertion mode appropriately">Reset
     the parser's insertion mode appropriately</a>.</p>

    <p class="note">The parser will reference the <var title="">context</var>
     element as part of that algorithm.</p>

   <li>
    <p>Set the parser's <a href="parsing.html#form-element"><code>form</code> element
     pointer</a> to the nearest node to the <var title="">context</var>
     element that is a <code>form</code> element (going straight up the
     ancestor chain, and including the element itself, if it is a
     <code>form</code> element), or, if there is no such <code>form</code>
     element, to null.</p>

   <li>
    <p>Place into the <a href="parsing.html#input0">input stream</a> for the <a href="parsing.html#html-0">HTML parser</a> just created the <var title="">input</var>.</p>

   <li>
    <p>Start the parser and let it run until it has consumed all the
     characters just inserted into the input stream.</p>

   <li>
    <p>Return all the child nodes of <var title="">root</var>, preserving the
     document order.</p>
  </ol>

  
--- NEW FILE: history.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...1840 lines suppressed...]

     <dt>If it is an unmatched U+0027 APOSTROPHE ("'")

     <dt>If there is no next character

     <dd>
      <p>Return nothing.

     <dt>Otherwise

     <dd>
      <p>Return the string from this character to the first U+0009, U+000A,
       U+000B, U+000C, U+000D, U+0020, or U+003B character or the end of <var title="">s</var>, whichever comes first.
    </dl>
  </ol>

  <p class="note">The above algorithm is a willful violation of the HTTP
   specification. <a href="references.html#references">[RFC2616]</a>

  
--- NEW FILE: tree-construction.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...3432 lines suppressed...]

  <p>The <dfn id="html-namespace0">HTML namespace</dfn> is:
   <code>http://www.w3.org/1999/xhtml</code>

  <p>The <dfn id="mathml0">MathML namespace</dfn> is:
   <code>http://www.w3.org/1998/Math/MathML</code>

  <p>The <dfn id="svg-namespace">SVG namespace</dfn> is:
   <code>http://www.w3.org/2000/svg</code>

  <p>The <dfn id="xlink">XLink namespace</dfn> is:
   <code>http://www.w3.org/1999/xlink</code>

  <p>The <dfn id="xml-namespace">XML namespace</dfn> is:
   <code>http://www.w3.org/XML/1998/namespace</code>

  <p>The <dfn id="xmlns">XMLNS namespace</dfn> is:
   <code>http://www.w3.org/2000/xmlns/</code>

  
--- NEW FILE: Overview.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...1855 lines suppressed...]
      </span>Localization</a>

     <li><a href="no.html#declarative"><span class="secno">10.2 </span>Declarative 2D
      vector graphics and animation</a>

     <li><a href="no.html#declarative0"><span class="secno">10.3 </span>Declarative 3D
      scenes</a>

     <li><a href="no.html#timers"><span class="secno">10.4 </span>Timers</a>
    </ul>

   <li class="no-num"><a href="index.html#index">Index</a>

   <li class="no-num"><a href="references.html#references">References</a>

   <li class="no-num"><a href="acknowledgements.html#acknowledgements">Acknowledgements</a>
  </ul>
  <!--end-toc-->

  
--- NEW FILE: web-browsers.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...2182 lines suppressed...]
|                                                            |
|  [ ] Always do this for resources using the "x-meow"       |
|      protocol in future.                                   |
|                                                            |
|                                     ( Ok )  (( Cancel ))   |
|____________________________________________________________|</pre>

  <p>...where the third option is the one that was primed by the site
   registering itself earlier.

  <p>If the user does select that option, then the browser, in accordance
   with the requirements described in the previous two sections, will
   redirect the user to
   "http://kittens.example.org/?show=x-meow%3AS2l0dGVucyBhcmUgdGhlIGN1dGVzdCE%253D".

  <p>The <code title="dom-navigator-registerContentHandler"><a href="#registercontenthandler">registerContentHandler()</a></code> method
   would work equivalently, but for unknown MIME types instead of unknown
   protocols.

  
--- NEW FILE: text-level.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...2504 lines suppressed...]
  </div>

  <div class="example">
   <p>In the following example, a list that started with just fruit was
    replaced by a list with just colors.</p>

   <pre>&lt;h1&gt;List of &lt;del&gt;fruits&lt;/del&gt;&lt;ins&gt;colors&lt;/ins&gt;&lt;/h1&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;del&gt;Lime&lt;/del&gt;&lt;ins&gt;Green&lt;/ins&gt;&lt;/li&gt;
 &lt;li&gt;&lt;del&gt;Apple&lt;/del&gt;&lt;/li&gt;
 &lt;li&gt;Orange&lt;/li&gt;
 &lt;li&gt;&lt;del&gt;Pear&lt;/del&gt;&lt;/li&gt;
 &lt;li&gt;&lt;ins&gt;Teal&lt;/ins&gt;&lt;/li&gt;
 &lt;li&gt;&lt;del&gt;Lemon&lt;/del&gt;&lt;ins&gt;Yellow&lt;/ins&gt;&lt;/li&gt;
 &lt;li&gt;Olive&lt;/li&gt;
 &lt;li&gt;&lt;ins&gt;Purple&lt;/ins&gt;
&lt;/ul&gt;</pre>
  </div>

  
--- NEW FILE: parsing.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...1139 lines suppressed...]
  <p>Initially the <dfn id="head-element"><code title="">head</code> element
   pointer</dfn> and the <dfn id="form-element"><code title="">form</code>
   element pointer</dfn> are both null.

  <p>Once a <code><a href="the-root.html#head">head</a></code> element has been parsed
   (whether implicitly or explicitly) the <a href="#head-element"><code title="">head</code> element pointer</a> gets set to point to this node.

  <p>The <a href="#form-element"><code title="">form</code> element
   pointer</a> points to the last <code>form</code> element that was opened
   and whose end tag has not yet been seen. It is used to make form controls
   associate with forms in the face of dramatically bad markup, for
   historical reasons.

  <h5 id="the-scripting"><span class="secno">8.2.3.5. </span>The scripting state</h5>

  <p>The <dfn id="scripting2">scripting flag</dfn> is set to "enabled" if the
   <code>Document</code> with which the parser is associated was <a href="web-browsers.html#with-script">with script</a> when the parser was created, and
   "disabled" otherwise.

  
--- NEW FILE: tabular.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...2130 lines suppressed...]

  <p>When the element is removed from the document, if it has the <code title="attr-event-source-src"><a href="#src11">src</a></code> attribute
   specified, or, when the <code title="attr-event-source-src"><a href="#src11">src</a></code> attribute is about to be removed, the user
   agent must act as if the <code title="dom-remoteEventTarget-removeEventSource"><a href="comms.html#removeeventsource">removeEventSource()</a></code> method on the
   <code><a href="#event-source">event-source</a></code> element had been
   invoked with the URI resulting from resolving the <code title="attr-event-source-src"><a href="#src11">src</a></code> attribute's
   value to an absolute URI.

  <p>There can be more than one <code><a href="#event-source">event-source</a></code> element per document, but
   authors should take care to avoid opening multiple connections to the same
   server as HTTP recommends a limit to the number of simultaneous
   connections that a user agent can open per server.</p>
  <!-- XXX should we make 'load', 'error', 'abort' events fire on this
  element? -->

  <p>The <dfn id="src12" title="dom-event-source-src"><code>src</code></dfn> DOM
   attribute must <a href="dom.html#reflect">reflect</a> the content attribute of the
   same name.

  
--- NEW FILE: dom.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...1616 lines suppressed...]
   <dt><code title="">Document.getElementsByTagName()</code> and <code title="">Element.getElementsByTagName()</code>

   <dd>
    <p>These methods (but not their namespaced counterparts) must compare the
     given argument case-insensitively<!-- XXX xref --> when looking at <a href="introduction.html#html-elements" title="HTML elements">HTML elements</a>, and
     case-sensitively otherwise.</p>

    <p class="note">Thus, in an <a href="#html-" title="HTML documents">HTML
     document</a> with nodes in multiple namespaces, these methods will be
     both case-sensitive and case-insensitive at the same time.</p>

   <dt><code title="">Document.renameNode()</code>

   <dd>
    <p>If the new namespace is the <a href="tree-construction.html#html-namespace0">HTML
     namespace</a>, then the new qualified name must be lowercased before the
     rename takes place.<!-- XXX xref --></p>
  </dl>

  
--- NEW FILE: rendering.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
   ul.toc li ul { margin-bottom: 0.75em; }
   ul.toc li ul li ul { margin-bottom: 0.25em; }
   var sub { vertical-align: bottom; font-size: smaller; position: relative; top: 0.1em; }
   @media screen { code { color: rgb(255, 69, 0); background: transparent; } }
   code :link, code :visited { color: inherit; background: transparent; }
   .example { display: block; color: #222222; background: #FCFCFC; border-left: double; margin-left: 1em; padding-left: 1em; }
   .issue, .big-issue { color: #E50000; background: white; border: solid red; padding: 0.5em; margin: 1em 0; }
   .issue > :first-child, .big-issue > :first-child { margin-top: 0; }
   p .big-issue { line-height: 3em; }
   .note { color: green; background: transparent; }
   .note { font-family: sans-serif; }
   p.note:before { content: 'Note: '; }
   .warning { color: red; background: transparent; }
   .warning:before { font-style: normal; }
   p.warning:before { content: '\26A0 Warning! '; }
   .note, .warning { font-weight: bolder; font-style: italic; padding: 0.5em 2em; }
   .copyright { margin: 0.25em 0; }
   img { max-width: 100%; }
   h4 + .element { margin-top: -2.5em; padding-top: 2em; }
   h4 + p + .element { margin-top: -5em; padding-top: 4em; }
   .element { background: #EEEEFF; color: black; margin: 0 0 1em -1em; padding: 0 1em 0.25em 0.75em; border-left: solid #9999FF 0.25em; }
   table.matrix, table.matrix td { border: none; text-align: right; }
   table.matrix { margin-left: 2em; }
  </style>
  <link href="http://www.w3.org/StyleSheets/TR/%57%33%43-WD" rel="stylesheet" type="text/css">
  <!-- ZZZ -->

 <link href="named.html" rel="prev" title="8.6 Named character references">
  <link href="Overview.html#contents" rel="index" title="Table of contents">
  <link href="no.html" rel="next" title="10. Things that you can't do with this specification because they are better handled using other technologies that are further described herein">
  <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 id="html-5">HTML 5</h1>

   <h2 class="no-num no-toc" id="a-vocabulary">A vocabulary and associated APIs
    for HTML and XHTML</h2>

   </div>

  <div>
   <a href="named.html">&larr; 8.6 Named character references</a> &ndash;
   <a href="Overview.html#contents">Table of contents</a> &ndash;
   <a href="no.html">10. Things that you can't do with this specification because they are better handled using other technologies that are further described herein &rarr;</a>
  </div>

  <h2 id="rendering"><span class="secno">9. </span>Rendering and user-agent
   behavior</h2>
  <!-- XXX

    Rendering

    Default styling
      (have one paragraph or subsection per element)
      :link, :visited { }
      :link { }
      :visited { }
      section { }
      p { }
      img { } - how to handle alt text, img in link (no border)...
      mark { }
      /* ... */

      Form Controls
        ...

    Default UI
      link: click
      mark: skip to next mark element
      title attribute: tooltip
      cite attribute on q, blockquote, ins, del: on hover, show link
      ...

    Define how to determine what element is under the cursor, unless
    the CSS group has finally gotten around to defining that before we
    get to it

    Extensions to CSS
      for drag and drop
      for datagrid
      ...

  -->

  <p class="big-issue">This section will probably include details on how to
   render DATAGRID (including <span id="datagridPseudos">its
   pseudo-elements</span>), drag-and-drop, etc, in a visual medium, in
   concert with CSS. Terms that need to be defined include: <dfn id="sizing">sizing of embedded content</dfn>

  <p>CSS UAs in visual media must, when scrolling a page to a fragment
   identifier, align the top of the viewport with the target element's top
   border edge.</p>
  <!-- XXX horiz pos given bidi, and not
  scrolling when not required to? -->
  <!-- Elements that have been dropped: ACRONYM B BASEFONT BLINK
BIG CENTER DIR DIV FONT FRAME FRAMESET I ISINDEX MARQUEE NOEMBED
NOFRAMES S SPACER STRIKE TT U -->
  <!-- XXX bits and pieces that were removed from the semantic parts:

  <p>In CSS-aware user agents, the default presentation of this
  element should be achieved by including the following rules, or
  their equivalent, in the UA's user agent style sheet:</p>

  <pre>@namespace xh url(http://www.w3.org/1999/xhtml);
xh|section { display: block; margin: 1em 0; }</pre>
-->
  <!-- XXX alt="": Define that either the src="" is shown (as an image)
or the alt="" is shown (inline) but should not ever have both at
once. -->
  <!--
  <h4>Section headers</h4>

  <p>For <code>h1</code> elements, CSS-aware visual user agents should
  derive the size of the header from the level of <code>section</code>
  nesting. This effect should be achieved by including the following
  rules, or their equivalent, in the UA's user agent style sheet:</p>

  <pre>@namespace xh url(http://www.w3.org/1999/xhtml);
xh|section xh|h1 { /* same styles as h2 */ }
xh|section xh|section xh|h1 { /* same styles as h4 */ }
xh|section xh|section xh|section xh|h1 { /* same styles as h4 */ }
xh|section xh|section xh|section xh|section xh|h1 { /* same styles as h5 */ }
xh|section xh|section xh|section xh|section xh|section xh|h1 { /* same styles as h6 */ }</pre>

  <p>Authors should use <code>h1</code> elements to denote headers in
  sections. Authors may instead use <code>h2</code> ...
  <code>h6</code> elements, for backwards compatibility with user
  agents that do not support <code>section</code> elements.</p>

-->

  <p class="big-issue"> must define letting the user "<dfn id="obtain">obtain a
   physical form</dfn> (or a representation of a physical form)" of a
   document (printing) and what this means for the UA, in particular creating
   a new view for the print media.

  <p class="big-issue">Must define that in CSS, tag names in HTML documents,
   and class names in quirks mode documents, are case-insensitive.

  <h3 id="rendering0"><span class="secno">9.1 </span>Rendering and the DOM</h3>

  <p class="big-issue">This section is wrong. mediaMode will end up on Window,
   I think. All views implement Window.

  <p>Any object implement the <code>AbstractView</code> interface must also
   implement the <code><a href="#mediamodeabstractview">MediaModeAbstractView</a></code> interface.

  <pre class="idl">interface <dfn id="mediamodeabstractview">MediaModeAbstractView</dfn> {
  readonly attribute DOMString <a href="#mediamode">mediaMode</a>;
};</pre>

  <p>The <dfn id="mediamode"><code>mediaMode</code></dfn> attribute on objects
   implementing the <code><a href="#mediamodeabstractview">MediaModeAbstractView</a></code> interface
   must return the string that represents the canvas' current rendering mode
   (<code>screen</code>, <code>print</code>, etc). This is a lowercase
   string, as <a href="http://www.w3.org/TR/CSS21/media.html#media-types">defined by the
   CSS specification</a>. <a href="references.html#references">[CSS21]</a>

  <p>Some user agents may support multiple media, in which case there will
   exist multiple objects implementing the <code>AbstractView</code>
   interface. Only the default view implements the <code><a href="web-browsers.html#window">Window</a></code> interface. The other views can be reached
   using the <code><a href="web-browsers.html#view">view</a></code> attribute of the
   <code>UIEvent</code> interface, during event propagation. There is no way
   currently to enumerate all the views.</p>
  <!-- XXX examples! -->

  <h3 id="rendering1"><span class="secno">9.2 </span>Rendering and menus/toolbars</h3>

  <h4 id="the-icon"><span class="secno">9.2.1 </span>The 'icon' property</h4>

  <p>UAs should use the command's Icon as the default generic icon provided
   by the user agent when the 'icon' property computes to 'auto' on an
   element that either defines a command or refers to one using the <code title="command-attribute">command</code> attribute, but when the property
   computes to an actual image, it should use that image instead.

  <h3 id="obsolete"><span class="secno">9.3 </span>Obsolete elements, attributes,
   and APIs</h3>

  <h4 id="the-body0"><span class="secno">9.3.1 </span>The <code><a href="the-root.html#body0">body</a></code> element</h4>

  <p class="big-issue">Need to define the content attributes in terms of CSS or
   something.

  <pre class="idl">[XXX] interface <a href="dom.html#htmldocument">HTMLDocument</a> {
           attribute DOMString <a href="#fgcolor" title="dom-document-fgColor">fgColor</a>;
           attribute DOMString <a href="#bgcolor" title="dom-document-bgColor">bgColor</a>;
           attribute DOMString <a href="#linkcolor" title="dom-document-linkColor">linkColor</a>;
           attribute DOMString <a href="#vlinkcolor" title="dom-document-vlinkColor">vlinkColor</a>;
           attribute DOMString <a href="#alinkcolor" title="dom-document-alinkColor">alinkColor</a>;
};</pre>

  <p>The <dfn id="fgcolor" title="dom-document-fgColor"><code>fgColor</code></dfn> attribute on the
   <code>Document</code> object must <a href="dom.html#reflect">reflect</a> the <code title="attr-body-text">text</code> attribute on <a href="dom.html#the-body1">the
   <code>body</code> element</a>.

  <p>The <dfn id="bgcolor" title="dom-document-bgColor"><code>bgColor</code></dfn> attribute on the
   <code>Document</code> object must <a href="dom.html#reflect">reflect</a> the <code title="attr-body-bgcolor">bgcolor</code> attribute on <a href="dom.html#the-body1">the <code>body</code> element</a>.

  <p>The <dfn id="linkcolor" title="dom-document-linkColor"><code>linkColor</code></dfn> attribute on the
   <code>Document</code> object must <a href="dom.html#reflect">reflect</a> the <code title="attr-body-link">link</code> attribute on <a href="dom.html#the-body1">the
   <code>body</code> element</a>.

  <p>The <dfn id="vlinkcolor" title="dom-document-vLinkColor"><code>vLinkColor</code></dfn> attribute on
   the <code>Document</code> object must <a href="dom.html#reflect">reflect</a> the
   <code title="attr-body-vlink">vlink</code> attribute on <a href="dom.html#the-body1">the <code>body</code> element</a>.

  <p>The <dfn id="alinkcolor" title="dom-document-aLinkColor"><code>aLinkColor</code></dfn> attribute on
   the <code>Document</code> object must <a href="dom.html#reflect">reflect</a> the
   <code title="attr-body-alink">alink</code> attribute on <a href="dom.html#the-body1">the <code>body</code> element</a>.

  <pre class="idl">[XXX] interface <a href="the-root.html#htmlbodyelement">HTMLBodyElement</a> {
           attribute DOMString <a href="#text3" title="dom-body-text">text</a>;
           attribute DOMString <a href="#bgcolor0" title="dom-body-bgColor">bgColor</a>;
           attribute DOMString <a href="#background" title="dom-body-background">background</a>;
           attribute DOMString <a href="#link0" title="dom-body-link">link</a>;
           attribute DOMString <a href="#vlink" title="dom-body-vLink">vLink</a>;
           attribute DOMString <a href="#alink" title="dom-body-aLink">aLink</a>;
};</pre>

  <p>The <dfn id="text3" title="dom-body-text"><code>text</code></dfn> DOM
   attribute of the <code><a href="the-root.html#body0">body</a></code> element must <a href="dom.html#reflect">reflect</a> the element's <code title="attr-body-text">text</code> content attribute.

  <p>The <dfn id="bgcolor0" title="dom-body-bgColor"><code>bgColor</code></dfn>
   DOM attribute of the <code><a href="the-root.html#body0">body</a></code> element must
   <a href="dom.html#reflect">reflect</a> the element's <code title="attr-body-bgcolor">bgcolor</code> content attribute.

  <p>The <dfn id="background" title="dom-body-background"><code>background</code></dfn> DOM attribute of
   the <code><a href="the-root.html#body0">body</a></code> element must <a href="dom.html#reflect">reflect</a> the element's <code title="attr-body-background">background</code> content attribute.

  <p>The <dfn id="link0" title="dom-body-link"><code>link</code></dfn> DOM
   attribute of the <code><a href="the-root.html#body0">body</a></code> element must <a href="dom.html#reflect">reflect</a> the element's <code title="attr-body-link">link</code> content attribute.

  <p>The <dfn id="alink" title="dom-body-aLink"><code>aLink</code></dfn> DOM
   attribute of the <code><a href="the-root.html#body0">body</a></code> element must <a href="dom.html#reflect">reflect</a> the element's <code title="attr-body-alink">alink</code> content attribute.

  <p>The <dfn id="vlink" title="dom-body-vLink"><code>vLink</code></dfn> DOM
   attribute of the <code><a href="the-root.html#body0">body</a></code> element must <a href="dom.html#reflect">reflect</a> the element's <code title="attr-body-vlink">vlink</code> content attribute.

  <h4 id="the-applet"><span class="secno">9.3.2 </span>The <dfn id="applet"><code>applet</code></dfn> element</h4>

  <p>The <code><a href="#applet">applet</a></code> element is a Java-specific
   variant of the <code><a href="embedded0.html#embed">embed</a></code> element. In HTML5
   the <code><a href="#applet">applet</a></code> element is obsoleted so that
   all extension frameworks (Java, .NET, Flash, etc) are handled in a
   consistent manner.

  <p id="sandboxPluginApplet">If the <a href="embedded0.html#sandboxed0">sandboxed plugins
   browsing context flag</a> is set on the <a href="web-browsers.html#browsing1">browsing
   context</a> for which the <code><a href="#applet">applet</a></code>
   element's document is the <a href="web-browsers.html#active">active document</a>, then the
   element must be ignored (it represents nothing).

  <p>Otherwise, <span class="big-issue">define how the element works, if
   supported</span>.

  <pre class="idl">[XXX] interface <a href="dom.html#htmldocument">HTMLDocument</a> {
  readonly attribute <a href="dom.html#htmlcollection0">HTMLCollection</a> <a href="#applets" title="dom-document-applets">applets</a>;
};</pre>

  <p>The <dfn id="applets" title="dom-document-applets"><code>applets</code></dfn> attribute must
   return an <code><a href="dom.html#htmlcollection0">HTMLCollection</a></code>
   rooted at the <code>Document</code> node, whose filter matches only
   <code><a href="#applet">applet</a></code> elements.

  
--- NEW FILE: acknowledgements.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...1714 lines suppressed...]
    U+1234 FOO BAR character (foo)
    U+1234 FOO BAR ("foo") character
    U+1234 FOO BAR ('foo') character
    U+1234 FOO BAR (foo) character
    U+1234 FOO BAR character ("<code title="">foo</code>")
    U+1234 FOO BAR character ('<code title="">foo</code>')
    U+1234 FOO BAR character (<code title="">foo</code>)
    U+1234 FOO BAR ("<code title="">foo</code>") character
    U+1234 FOO BAR ('<code title="">foo</code>') character
    U+1234 FOO BAR (<code title="">foo</code>) character

And make these match:

    0x12 (ASCII FOO)
    0x12 (ASCII "foo")
    0x12 (ASCII 'foo')
    0x12 ("foo")
    0x12 ('foo')

-->

--- NEW FILE: fragment-links.js ---
var fragment_links = { 'limited':'dom','the-sessionstorage':'structured','the-draggable':'editing','globalalpha':'the-canvas','sending0':'comms','dynamic':'dom','update2':'history','update0':'offline','hanging':'the-canvas','registrationmark':'interactive-elements','scriptTag':'tree-construction','the-after1':'tree-construction','common2':'semantics','common3':'structured','common0':'dom','common1':'semantics','alphabetic':'the-canvas','charset0':'dom','charset1':'the-root','charset2':'tabular','charset3':'tabular','writing0':'syntax','collections0':'dom','the-end':'tree-construction','onsubmit':'web-browsers','rowindex':'tabular','htmlcommandelement':'interactive-elements','activation':'semantics','header-and-data-cell-semantics':'tabular','namespaces':'tree-construction','htmlmenuelement':'interactive-elements','undo-moving0':'editing','relationship1':'introduction','relationship0':'introduction','table-intro':'tabular','executing':'structured','miterlimit':'the-canvas','todataurl':'the-canvas','heading':semantics','browsing0':'history','alternate-style-sheets':'introduction','browsing2':'web-browsers','update1':'offline','updatecellchanged':'interactive-elements','sqlstatementerrorcallback':'structured','alt':'embedded0','errors':'structured','dialogs':'web-browsers','tokenisation':'tokenisation','custom-handlers':'web-browsers','blur':'semantics','metadata':'semantics','valid1':'semantics','error':'video','the-after0':'tree-construction','deletecaption':'tabular','root-element':'introduction','active':'web-browsers','path':'the-canvas','server-sent':'comms','error0':'video','error1':'video','dialog1':'web-browsers','dialog0':'web-browsers','appcache':'offline','itemn':'editing','canvaspattern':'the-canvas','changes':'offline','explicit0':'parsing','have-an0':'parsing','lasteventid':'comms','replace':'history','getrowclasses':'interactive-elements','script-created':'dom','serializing':'serializing','dnd':'editing','ispointinpath':'the-canvas','linecap':'the-canvas','page-load':'history','reconnection':'coms','type':'the-root','the-tr':'tabular','expose':'video','offline0':'offline','the-td':'tabular','named0':'named','cdata-rcdata-restrictions':'syntax','seekable':'video','the-th':'tabular','contenteditable-wrapSemantic':'editing','locked':'semantics','characterset':'dom','sidebar0':'structured','doctype':'syntax','popstate':'history','insertrow0':'tabular','end-tags':'syntax','mq':'introduction','measuretext':'the-canvas','the-samp':'text-level','redo0':'editing','scripting':'web-browsers','defer':'tabular','type9':'video','type8':'video','the-storage':'structured','levenberg0':'interactive-elements','type4':'embedded0','type7':'embedded0','type6':'embedded0','type1':'the-root','type0':'the-root','type3':'text-level','type2':'the-root','end':'video','the-ruby':'text-level','algorithm4':'history','algorithm3':'tabular','algorithm2':'tabular','algorithm1':'tabular','algorithm0':'tabular','ancestor':'web-browsers','openConnection':'comms','description':'the-root','after':'tokenisation','implementation0':'editig','templateelement':'interactive-elements','cite4':'text-level','cite2':'text-level','cite3':'text-level','cite0':'the-root','cite1':'text-level','canplay0':'video','normalized0':'video','execCommand':'editing','acknowledged':'tokenisation','the-img':'embedded0','event-handler-attributes':'web-browsers','first':'structured','parsing':'parsing','the-insertion':'parsing','initmessageeventns':'comms','hasfeature':'dom','the-script':'tabular','linewidth':'the-canvas','activating':'history','before':'tokenisation','img':'embedded0','writing':'offline','setcellcheckedstate':'interactive-elements','edits':'text-level','distinguishing':'the-root','datanode':'interactive-elements','hidden':'interactive-elements','fragment':'serializing','history0':'history','history1':'history','edits1':'text-level','edits0':'text-level','caption0':'tabular','htmldetailselement':'interactive-elements','shadows':'the-canvas','represents':'dom','icon2':'interactive-elements','hash0':'structured','commonDefaultDataGridMethodDefinition':'interactive-elements','clear4':'tree-construction','scope0':'tabular','scope1':'tabular','timeouthandler':'no','html-0':'parsing','rt':'text-level','comment1':'tokenisation','the-button':'tabular','rowType1':'interactive-elements','start2':'video','start3':'video','start0':'the-root','start1':'the-root','start6':'syntax','start4':'video','start5':'video','toolbars':'interactive-elements','applyToSection':'the-root','adjust':'tree-construction','datagriddataprovider':'interactive-elements','levenberg':'interactive-elements','default-media':'the-root','insert0':'tree-construction','insert1':'tree-construction','executesql':'structured','html-elements':'introduction','standard':'the-root','scoped':'the-root','object-plugin':'embedded0','the-link':'the-root','getselection':'editing','http-equiv0':'the-root','the-strong':'text-level','filter':'interactive-elements','prefetch':'structured','addtoken':'dom','currentsrc':'video','clearrect':'the-canvas','already':'tabular','features':'introduction','datagridPseuos':'rendering','rank':'the-root','parsing-main-inbody':'tree-construction','navigator':'web-browsers','the-ul':'the-root','top':'the-canvas','indeterminate':'interactive-elements','stack':'parsing','in-head':'tree-construction','htmlmetaelement':'the-root','serialization0':'web-browsers','onmouseup':'web-browsers','link-type4':'structured','tokens':'semantics','cdata':'syntax','cyclable':'interactive-elements','initundomanagerevent':'editing','target':'the-root','hastoken':'dom','height4':'the-canvas','height0':'the-canvas','height1':'the-canvas','height2':'the-canvas','height3':'the-canvas','hasfocus':'semantics','idle':'offline','classes':'semantics','length2':'dom','body0':'the-root','getelementsbyclassname':'dom','transaction0':'structured','navigate':'history','the-footer':'the-root','script0':'web-browsers','script1':'tabular','script2':'web-browsers','seek':'video','data-':'semantics','radiogroup0':'interactive-elements','read-image':'history','cue-ranges':'video','meta0':'the-root','the-datalist':'abular','data5':'comms','data4':'comms','data1':'the-canvas','data0':'embedded0','data3':'editing','data2':'interactive-elements','object':'embedded0','the-var':'text-level','scripts':'dom','min0':'text-level','headers0':'tabular','acknowledgements':'acknowledgements','content1':'the-root','content0':'the-root','htmlmapelement':'the-canvas','document.write0':'dom','dom':'dom','max2':'text-level','fillrect':'the-canvas','max0':'text-level','max1':'text-level','the-body1':'dom','the-body0':'rendering','mediaerraborted':'video','apis-for':'web-browsers','domtokenlist0':'dom','the-iframe':'embedded0','syntax':'syntax','parsing-main-inforeign':'tree-construction','colors':'the-canvas','the-element':'parsing','keywords':'semantics','htmloptionscollection':'dom','x1':'structured','durationchange':'video','implementation':'structured','menu':'interactive-elements','delays':'tree-construction','domtokenlist':'dom','version':'structured','source-in':'the-canvas','x4':'structured','htmlstyleelement':'the-root','destintion-out':'the-canvas','rectangle':'the-canvas','dl':'the-root','loopstart':'video','usemap0':'embedded0','usemap1':'the-canvas','empty0':'tabular','label0':'interactive-elements','label1':'interactive-elements','label2':'interactive-elements','label3':'interactive-elements','playbackrate':'video','list-of':'tabular','sqltransactioncallback':'structured','alinkcolor':'rendering','reconstruct':'parsing','dt':'the-root','focusoffset':'editing','the-label':'tabular','progress0':'video','progress1':'interactive-elements','traverse':'history','embedding0':'semantics','cdata1':'tokenisation','cdata0':'syntax','escaping':'syntax','sectioning0':'semantics','sectioning1':'the-root','optimum':'text-level','clearredo':'editing','applet':'rendering','the-2d':'the-canvas','tainted':'tree-construction','oncached':'offline','htmloptionscollection0':'dom','onkeydown':'web-browsers','filltext':'the-canvas','shadowcolor':'the-canvas','html5':'introduction','htmlruleelement':'interactive-elements','querycommandsupported':'ediing','title1':'the-root','title3':'the-root','text-field':'editing','editable0':'editing','urls':'semantics','contextmenu0':'interactive-elements','threads':'web-browsers','browser':'web-browsers','mediaerror':'video','col':'tabular','the-dd':'the-root','commands0':'interactive-elements','the-dl':'the-root','mutations':'interactive-elements','innerhtml':'dom','height':'embedded0','the-dt':'the-root','loaded':'video','sandboxPluginApplet':'rendering','onabort':'web-browsers','initmessageevent':'comms','htmlembedelement':'embedded0','lineto':'the-canvas','sandbox0':'embedded0','putimagedata':'the-canvas','hyperlinks':'structured','expected':'structured','videoheight':'video','onblur':'web-browsers','non-scripted':'introduction','anchors':'dom','relaxing':'web-browsers','the-lang':'semantics','radiogroup':'interactive-elements','child':'web-browsers','text-level':'text-level','the-list':'parsing','save':'the-canvas','formatting':'parsing','the-colgroup':'tabular','template2':'interactive-elements','template1':interactive-elements','template0':'interactive-elements','played':'video','character5':'tokenisation','character4':'tokenisation','character1':'dom','character0':'parsing','character3':'syntax','character2':'the-root','autoplay0':'video','id':'semantics','the-pre':'the-root','complex':'the-canvas','split':'semantics','classname':'semantics','querycommandstate':'editing','browsing':'web-browsers','inter-element':'semantics','declarative':'no','rowspan0':'tabular','http-equiv':'the-root','contextmenu':'interactive-elements','htmliframeelement':'embedded0','embedded1':'semantics','embedded0':'embedded0','ondblclick':'web-browsers','semantics0':'semantics','protocol':'history','cross-document':'comms','toolbars0':'interactive-elements','togglecolumnsortstate':'interactive-elements','the-before':'tree-construction','htmltimeelement':'text-level','the-col':'tabular','noscript':'tabular','onload':'web-browsers','the-storage0':'structured','character':'syntax','html-namespace0':'tree-construction','collections':'do','disk-space':'structured','anchornode':'editing','scriptingLanguages':'tabular','canvasgradient0':'the-canvas','remoteeventtarget':'comms','updateready':'offline','onkeypress':'web-browsers','pathname0':'structured','read-plugin':'history','rotate':'the-canvas','background':'rendering','htmlobjectelement':'embedded0','advanced':'tabular','d':'the-canvas','dom-attributes':'introduction','dragenter':'editing','specific':'semantics','executing0':'tabular','steps':'semantics','security':'dom','the-legend':'interactive-elements','reversed1':'interactive-elements','reversed0':'the-root','the-nav':'the-root','deleterow':'tabular','linkcolor':'rendering','paragraphs':'semantics','dragover':'editing','onchange':'web-browsers','apis-in':'dom','hyperlink1':'the-root','settransform':'the-canvas','comments':'syntax','tag-name':'syntax','secondary0':'web-browsers','secondary1':'parsing','same-origin':'web-browsers','bold':'editing','mediaerrnetwork':'video','mutation-during-parsing':'tree-construction','peer':'comms','essageevent':'comms','connectionreadevent':'comms','tokenisation0':'tokenisation','the-title':'semantics','datagridClassSummary':'interactive-elements','comment0':'tokenisation','comment3':'tokenisation','comment2':'tokenisation','seeking0':'video','seeking1':'video','htmltableelement':'tabular','next-input':'parsing','the-base':'the-root','remove1':'offline','remove0':'semantics','rendering':'rendering','low0':'text-level','onnoupdate':'offline','vlink':'rendering','parsing0':'offline','parsing1':'comms','parsing2':'serializing','seeked':'video','applets':'rendering','support':'tabular','initial':'tree-construction','transform':'the-canvas','href0':'the-root','width':'embedded0','href2':'the-root','href3':'text-level','href4':'the-canvas','href5':'history','href6':'structured','htmlscriptelement':'tabular','negative-tabindex':'semantics','have-an':'parsing','addcuerange':'video','forming':'tabular','clearstate':'history','notifications':'web-browsers','drag-and':'editing','fgcolor':'rendering','reset':'paring','moveto':'the-canvas','mediamode':'rendering','rel3':'structured','rel2':'the-canvas','handling-first-frame-available':'video','rel0':'the-root','colspan0':'tabular','arcx-':'the-canvas','media10':'video','media12':'structured','delete':'editing','application-name':'the-root','ondragenter':'web-browsers','escape':'tokenisation','opportunistic':'offline','onmousedown':'web-browsers','the-div':'interactive-elements','the-dir':'semantics','timezone':'text-level','tree-construction':'tree-construction','pixelratio':'video','ondragover':'web-browsers','no':'no','the-dialog':'the-root','fillstyle':'the-canvas','cellindex':'tabular','setting':'interactive-elements','returnvalue':'web-browsers','no-quirks':'dom','ondragstart':'web-browsers','datatransfer0':'editing','focusable':'semantics','miscellaneous':'interactive-elements','the-em':'text-level','the-source':'video','sql':'structured','xxx4index':'web-browsers','the-details':'interactive-elements','text3':'rendering','foster0':'tree-construction','foster1''tree-construction','bottom':'the-canvas','the-head':'the-root','form-element':'parsing','localization':'no','defaultDataProviderTableSort':'interactive-elements','dragend':'editing','html-namespace':'introduction','time':'text-level','pushstate':'history','the-title0':'the-root','the-title1':'dom','setdragimage':'editing','global':'semantics','focus':'semantics','hardwareLimitations':'introduction','sandboxNotifications':'web-browsers','sqltransactionerrorcallback':'structured','row':'tabular','dataunavailable0':'video','the-ins':'text-level','editors':'introduction','htmleventsourceelement':'tabular','default1':'interactive-elements','default0':'the-canvas','tool-bar':'interactive-elements','default2':'interactive-elements','load0':'video','navigator.online':'offline','downloading':'offline','rowgroup':'tabular','insertrow':'tabular','insertid':'structured','anonymous':'interactive-elements','server-sent-events':'comms','nestedParsing':'parsing','initdragevent':'editing','html-fragment0':'serializing','xm-namespace':'tree-construction','p':'the-root','setitem':'structured','div':'interactive-elements','beginpath':'the-canvas','dir':'semantics','timeranges':'video','conformance-checkers':'introduction','domstringmap0':'dom','uri-decomposition':'structured','obsolete':'rendering','valid4':'semantics','valid5':'semantics','valid6':'semantics','valid7':'semantics','valid0':'semantics','populating':'interactive-elements','valid2':'semantics','valid3':'semantics','lang0':'semantics','valid8':'web-browsers','valid9':'web-browsers','rellist1':'the-canvas','rellist0':'text-level','current':'dom','sequential':'semantics','triggers0':'interactive-elements','template':'interactive-elements','domain0':'web-browsers','alt2':'the-canvas','alt1':'the-canvas','alt0':'embedded0','iscollapsed':'editing','originalcontent':'interactive-elements','the-canvas':'the-canvas','autosubmit':'interactive-elements','address':'the-root','target2':'the-canvas','target3':'structured','target0':'the-root','target1':'text-level','sending':'cmms','the-optgroup':'tabular','loopend0':'video','content-type8':'history','content-type5':'history','vaguer':'semantics','content-type7':'history','content-type6':'history','onprogress':'offline','content-type0':'history','content-type3':'history','flagAsCandidateForCache':'offline','the-option':'tabular','the-select':'tabular','the-blockquote':'the-root','style-default-media':'the-root','last-event':'comms','src2':'embedded0','src3':'embedded0','src0':'embedded0','src1':'embedded0','src6':'video','src7':'video','src4':'embedded0','src5':'video','src8':'video','src9':'tabular','localStorageEvent':'structured','value6':'embedded0','value5':'embedded0','value4':'text-level','value3':'text-level','value2':'text-level','value1':'text-level','value0':'the-root','scope':'introduction','prev':'structured','scriptTagParserResumes':'tree-construction','addelement':'editing','sectioning':'semantics','insertimage':'editing','comments0':'syntax','parsing-main-incaption':'tree-construction','datatemplate':'interactive-lements','status0':'offline','datagridselection':'interactive-elements','the-output':'tabular','printing':'web-browsers','iframe':'embedded0','the-kbd':'text-level','making':'editing','the-style0':'the-root','select1':'editing','select0':'offline','input0':'parsing','undo0':'editing','sql-injection':'structured','figure':'embedded0','attribute':'syntax','hreflang':'the-root','paused':'video','type5':'embedded0','stroke':'the-canvas','abort':'video','media-playback':'video','onread':'comms','allowed':'web-browsers','requirements':'interactive-elements','shadowblur':'the-canvas','parsing-main-inheadnoscript':'tree-construction','charset':'the-root','ping':'structured','tbody':'tabular','unordered':'semantics','irrelevant0':'semantics','parameter':'embedded0','map':'the-canvas','pause0':'video','pause1':'video','max':'text-level','controls0':'video','date':'text-level','serialization':'the-canvas','xmlBase':'introduction','data':'embedded0','sandboxPluginObject':'embedded0','outline':'the-root','removeeventsouce':'comms','the-input':'tabular','explicit':'offline','q':'text-level','sandbox':'embedded0','redo-moving0':'editing','void-elements':'syntax','superscript':'editing','drawing0':'the-canvas','dom-feature':'dom','ended':'video','usemap':'embedded0','thead0':'tabular','the-data':'interactive-elements','htmlquoteelement':'the-root','allow-same-origin':'embedded0','focusnode':'editing','user-prompts':'web-browsers','focus0':'semantics','createpattern':'the-canvas','forms':'tabular','window':'web-browsers','parsing-main-intd':'tree-construction','blockquote':'the-root','matches':'offline','cleartimeout':'no','col0':'tabular','remove2':'editing','introduction1':'offline','introduction0':'interactive-elements','introduction3':'structured','introduction2':'structured','introduction4':'editing','sorted':'interactive-elements','initpopstateevent':'history','name':'the-root','getchildatposition':'interactive-elements','drop':'editing','the-default0':'web-browsers','getitem':'structured','authors-using-xhtml':'introdution','domain':'web-browsers','tcp-connections':'comms','byteranges':'video','manifests':'offline','begun':'video','self-closing':'tokenisation','changeversion':'structured','canvas':'the-canvas','selection0':'interactive-elements','selection1':'editing','space':'semantics','width2':'the-canvas','optimum0':'text-level','width0':'the-canvas','width1':'the-canvas','width4':'the-canvas','width5':'the-canvas','editcell':'interactive-elements','the-dragevent':'editing','opener':'web-browsers','navigating':'history','removeitem':'structured','contenteditable-breakBlock':'editing','the-small':'text-level','the-area':'the-canvas','optionin':'web-browsers','xhtml5':'introduction','dependencies':'introduction','htmllinkelement':'the-root','semi-transparent':'semantics','language':'semantics','nofollow':'structured','autoplaying':'video','preprocessing':'parsing','separator':'interactive-elements','the-caption':'tabular','image-maps':'the-canvas','origin':'web-browsers','omitted':'syntax','ended0':'video','ended1':'vieo','nested':'web-browsers','localbroadcastconnection':'comms','localstorage':'structured','directly':'web-browsers','message':'structured','scroll-to-fragid':'history','open':'dom','selectall':'interactive-elements','checked':'interactive-elements','href1':'the-root','bookmark':'structured','structured':'structured','quirks':'dom','types':'editing','updaterowchanged':'interactive-elements','cite':'the-root','broadcast':'comms','the-rule':'interactive-elements','pragma':'the-root','x2':'structured','x3':'structured','x0':'structured','copy':'the-canvas','semantics':'semantics','x5':'structured','effective':'video','document.title':'dom','rendering0':'rendering','rendering1':'rendering','source3':'comms','structure0':'semantics','pre':'the-root','head':'the-root','adddata':'editing','any':'structured','canvasgradient':'the-canvas','aside':'the-root','networkstate':'video','the-remoteeventtarget':'comms','online':'offline','onupdateready':'offline','timers':'no','link-type11':'structured','multiple':'interactve-elements','styling0':'the-root','normal':'web-browsers','location2':'history','link-type13':'structured','location0':'history','location1':'history','link-type12':'structured','read-html':'history','inserted':'introduction','cross-directory':'structured','icon':'interactive-elements','coords0':'the-canvas','tcpconnection':'comms','rowspecification':'interactive-elements','datetime':'text-level','datagrid':'interactive-elements','oldvalue':'structured','htmldocument':'dom','upgrade':'offline','setting0':'interactive-elements','title':'semantics','sql-and':'structured','content-type-sniffing':'history','inconsistentDataProvider':'interactive-elements','media2':'the-root','media3':'the-root','media0':'the-root','media1':'the-root','media6':'video','media7':'video','media4':'text-level','media5':'video','media8':'video','media9':'video','closeConnection':'comms','row0':'tabular','cleardata':'editing','embeds':'dom','parsing-main-intr':'tree-construction','loaded-first-frame':'video','textmetrics':'the-canvas,'lighter':'the-canvas','attribute3':'tokenisation','secondary':'web-browsers','resource':'dom','initconnectionreadeventns':'comms','hreflang0':'the-root','hreflang1':'text-level','hreflang2':'the-canvas','hreflang3':'structured','disabled1':'the-root','disabled0':'the-root','disabled3':'interactive-elements','disabled2':'interactive-elements','disabled5':'interactive-elements','disabled4':'interactive-elements','loadedmetadata':'video','disabled6':'interactive-elements','rel1':'text-level','strokestyle':'the-canvas','ignored':'introduction','the-address':'the-root','svg-namespace':'tree-construction','ismap':'embedded0','actively':'video','top-level':'web-browsers','pixel0':'video','pixel1':'the-canvas','date0':'text-level','byte-ranges':'video','label':'interactive-elements','enumerated':'semantics','html-fragment':'serializing','parent':'web-browsers','form-submission':'tabular','parsing-main-afterbody':'tree-construction','setinterval...':'no','connection0':'comms','article':'the-root','linejoin':'the-cnvas','inserttext':'editing','dates':'semantics','embedding':'semantics','settimeout':'no','loadedfirstframe':'video','vlinkcolor':'rendering','user-tracking':'structured','threads0':'structured','color':'the-canvas','colspan':'tabular','destination-in':'the-canvas','dispatch':'comms','insertcell':'tabular','dataunavailable':'video','rellist':'the-root','protocol0':'structured','caret':'editing','timeupdate':'video','the-command':'interactive-elements','sandboxLinks':'history','real-numbers':'semantics','mark':'text-level','documentSelection':'editing','tree-construction0':'tree-construction','getcellclasses':'interactive-elements','thead':'tabular','getcelldata':'interactive-elements','getelementsbyname':'dom','onmouseout':'web-browsers','close0':'comms','close1':'tokenisation','span1':'tabular','span0':'tabular','span3':'tabular','span2':'tabular','in-foreign':'tree-construction','ruby':'text-level','seamlessLinks':'history','hostname0':'structured','time-ranges':'video','adduri':'offline','in-frameset':'ree-construction','hidden2':'interactive-elements','hidden1':'interactive-elements','hidden0':'interactive-elements','parse':'parsing','middle':'the-canvas','content-type4':'history','redo-moving':'editing','kbd':'text-level','htmlbodyelement':'the-root','mode2':'interactive-elements','mode0':'interactive-elements','mode1':'interactive-elements','media':'video','limited0':'dom','limited1':'dom','html':'the-root','time-offset':'semantics','defer0':'tabular','samp':'text-level','events':'web-browsers','date-or0':'semantics','date-or1':'semantics','events0':'web-browsers','events1':'editing','nest':'interactive-elements','dropeffect':'editing','irda-peer':'comms','running':'tabular','copy-and':'editing','processField':'comms','ondragend':'web-browsers','data-mining':'introduction','network-other-specs':'comms','markup':'tokenisation','history2':'history','bufferingrate':'video','without':'web-browsers','canshowcurrentframe':'video','event4':'web-browsers','event2':'web-browsers','event3':'web-browsers','event0:'structured','event1':'comms','quadraticcurveto':'the-canvas','comment':'tokenisation','style1':'the-root','style0':'semantics','designModeScriptBlocked':'web-browsers','getselection0':'editing','defaultDataProviderTableMapper':'interactive-elements','in-row':'tree-construction','the-hr':'the-root','mediamodeabstractview':'rendering','parsing-main-inselect':'tree-construction','element-restrictions':'syntax','generator':'the-root','hint':'interactive-elements','param':'embedded0','onmousemove':'web-browsers','storageevent':'structured','canvas0':'the-canvas','overview':'parsing','declarative0':'no','generic-provider-selection':'interactive-elements','iscontenteditable':'editing','rules':'semantics','textcontent':'introduction','createimagedata':'the-canvas','network-security':'comms','using':'interactive-elements','multiple0':'interactive-elements','htmltablecolelement':'tabular','isindex':'tree-construction','fallback0':'offline','coords':'the-canvas','paused0':'video','fully':'web-browsers','removeallranes':'editing','grouping':'the-root','classlist':'semantics','duration':'video','defaultcharset':'dom','origin1':'comms','origin0':'web-browsers','confirm':'web-browsers','stops':'tree-construction','dom-tree0':'dom','list-of2':'web-browsers','list-of3':'comms','list-of0':'tabular','list-of1':'tabular','list-of4':'parsing','accessing':'web-browsers','equivalent':'tabular','shadows0':'the-canvas','update':'interactive-elements','getrowcount':'interactive-elements','image0':'web-browsers','src':'embedded0','ol':'the-root','dimension0':'the-canvas','dns-spoofing':'structured','destination-over':'the-canvas','non-interactive':'introduction','title-on-style':'the-root','doctype5':'tokenisation','initially-hidden':'interactive-elements','onmessage':'web-browsers','content-type':'history','invert':'interactive-elements','page-load0':'history','page-load1':'history','page-load2':'history','page-load3':'history','page-load4':'history','modalwindow':'web-browsers','editing0':'editing','image':'the-canvas','preceded':'emantics','editing1':'editing','sandboxed':'embedded0','the-section':'the-root','dragstart':'editing','dom-changes':'editing','htmltablesectionelement':'tabular','unsetting0':'interactive-elements','area':'the-canvas','flagAsCandidateForCache-result':'offline','styling':'the-root','src10':'tabular','src11':'tabular','src12':'tabular','low':'text-level','italic':'editing','lang':'semantics','htmldatagridelement':'interactive-elements','complete':'embedded0','htmlimageelement':'embedded0','code1':'structured','the-table':'tabular','getdata':'editing','domstringmap':'dom','ideographic':'the-canvas','text-expansion':'interactive-elements','resetBCName':'history','embedded':'semantics','ratechange':'video','images1':'the-canvas','images0':'dom','initstorageeventns':'structured','embed':'embedded0','htmlbaseelement':'the-root','video1':'video','popstateevent':'history','onerror':'web-browsers','sniffed':'history','fill':'the-canvas','tag-open':'tokenisation','storage':'structured','network-intro':'comms','valid':semantics','initdrageventns':'editing','sqlstatementcallback':'structured','fire-waiting-when-waiting':'video','video0':'video','lastmodified':'dom','a-selection':'editing','optionin0':'web-browsers','rp':'text-level','network':'comms','building':'interactive-elements','showmodaldialog':'web-browsers','htmlolistelement':'the-root','unselect':'editing','storage1':'structured','storage0':'structured','objectarray':'structured','external':'structured','drag-and-drop':'editing','checked1':'interactive-elements','checked0':'interactive-elements','checked3':'interactive-elements','checked2':'interactive-elements','non-fatal-media-error':'video','elements0':'syntax','elements1':'introduction','elements2':'semantics','message0':'comms','scripting2':'parsing','scripting1':'web-browsers','scripting0':'tabular','editing-intro':'editing','content':'introduction','bogus0':'tokenisation','createtfoot':'tabular','settimeout0':'no','irrelevant':'semantics','tr':'tabular','tree-order':'introduction','foster':'tree-constructon','th':'tabular','td':'tabular','the-abbr':'text-level','initundomanagereventns':'editing','browser0':'offline','onerror0':'offline','offline':'offline','condition':'interactive-elements','the-string0':'web-browsers','icon0':'interactive-elements','icon1':'interactive-elements','imagedata':'the-canvas','icon3':'structured','list':'interactive-elements','rules3':'semantics','navigate-non-Document':'history','tokenising':'tokenisation','subscript':'editing','small':'text-level','rowsaffected':'structured','postmessage':'comms','the-scripts':'tabular','sectionrowindex':'tabular','parsing-main-afterframeset':'tree-construction','plugins':'dom','phrasing1':'parsing','phrasing0':'semantics','readystate1':'comms','readystate0':'video','xor':'the-canvas','sub':'text-level','section':'the-root','deleterow0':'tabular','parsing-main-intbody':'tree-construction','onselect':'web-browsers','sup':'text-level','createradialgradient':'the-canvas','transparent0':'semantics','cookie0':'dom','hash':'history','rangecount':'edting','tags':'syntax','the-scripts0':'tabular','title0':'semantics','sandboxPluginEmbed':'embedded0','title2':'the-root','the-id':'semantics','title4':'text-level','title5':'text-level','title6':'interactive-elements','title7':'interactive-elements','strong':'text-level','legend':'interactive-elements','search':'history','the-location':'history','onbeforeunload':'web-browsers','action':'interactive-elements','compatmode':'dom','activation0':'introduction','printing0':'web-browsers','emptied':'video','href':'the-root','select':'interactive-elements','archives':'structured','textalign':'the-canvas','documents0':'semantics','default3':'web-browsers','doctype4':'tokenisation','getrowimage':'interactive-elements','meta-charset-during-parse':'tree-construction','the-stack':'parsing','text2':'syntax','canshowcurrentframe0':'video','text0':'syntax','text1':'tabular','controlling':'dom','mathml0':'tree-construction','appcache-history-2':'history','appcache-history-1':'offline','sizing':'rendering','online0':'offline,'the-initial':'tree-construction','phrasing':'semantics','the-rules':'web-browsers','paragraph':'semantics','del':'text-level','nameditem0':'dom','nameditem1':'dom','history':'history','prompt':'web-browsers','loopend':'video','tabular':'tabular','numbers':'semantics','sandboxPluginNavigate':'history','rowspan':'tabular','undomanager':'editing','menus':'interactive-elements','textbaseline':'the-canvas','the-html0':'dom','generic0':'tree-construction','dialogarguments':'web-browsers','the-thead':'tabular','reflect':'dom','state0':'history','when-a':'tabular','unlink':'editing','adoptionAgency':'tree-construction','a':'text-level','entry':'history','footer':'the-root','htmlaudioelement':'video','adjusted0':'video','link-type7':'structured','broadcasting':'comms','playing':'video','feed':'structured','hostname':'history','help':'structured','time-offsets':'semantics','htmlmodelement':'text-level','disabled':'the-root','style':'semantics','the-sub':'text-level','stylesheet':'structured','handleevent':'video','ssociatedSection':'the-root','port0':'structured','async0':'tabular','return':'web-browsers','seeking':'video','the-indicated':'history','filter0':'interactive-elements','document':'the-root','referrer':'dom','refresh':'the-root','stopped':'video','dir1':'semantics','dir0':'semantics','doctype2':'tokenisation','doctype3':'tokenisation','doctype0':'tokenisation','doctype1':'tokenisation','insertlinebreak':'editing','event':'web-browsers','print':'web-browsers','onfocus':'web-browsers','offsets':'video','windowtimers':'no','base':'the-root','cookie':'structured','insertparagraph':'editing','generate':'tree-construction','htmlcollection0':'dom','onopen':'comms','event-source':'tabular','caption':'tabular','assign':'history','auxiliary0':'web-browsers','tabindex':'semantics','pixelratio0':'video','ondownloading':'offline','encoding':'the-root','number':'semantics','find-a':'semantics','sqlerror':'structured','changing':'parsing','scoping':'parsing','script':'tabular','introduction':'introduction','menus-intro':interactive-elements','header0':'interactive-elements','dfn':'text-level','dragevent':'editing','option':'web-browsers','relationship':'introduction','immediate':'editing','sandboxWindowOpen':'web-browsers','httpequiv':'the-root','loading0':'video','undo-history':'editing','document.write...':'dom','focusing':'semantics','the-textarea':'tabular','irda-broadcast':'comms','b':'text-level','loopstart0':'video','headers':'tabular','other0':'structured','links1':'the-root','interactive':'introduction','insertion':'parsing','constructors':'web-browsers','createcaption':'tabular','skip-whitespace':'semantics','headings':'the-root','search1':'structured','search0':'structured','collapse':'editing','clientinformation':'web-browsers','totalbytes':'video','self':'web-browsers','window0':'web-browsers','cellType1':'interactive-elements','cellType2':'interactive-elements','elements3':'syntax','last-activated':'history','updating1':'offline','updating0':'interactive-elements','play':'video','sessionStorageEvent':'structued','the-embed':'embedded0','the-rt':'text-level','heading0':'semantics','textFieldSelection':'editing','datatransfer':'editing','security9':'web-browsers','the-p':'the-root','windows':'web-browsers','security6':'history','clear':'interactive-elements','security4':'web-browsers','datetime0':'text-level','datetime1':'text-level','security1':'the-canvas','security0':'video','the-b':'text-level','the-a':'text-level','htmlvideoelement':'video','the-i':'text-level','loadedmetadata0':'video','the-param':'embedded0','session':'history','set-of':'semantics','font':'the-canvas','in-body':'tree-construction','failed':'interactive-elements','circle':'the-canvas','createthead':'tabular','columns':'interactive-elements','interactive-elements':'interactive-elements','parsing-main-inframeset':'tree-construction','nameditem':'dom','the-datagrid':'interactive-elements','network0':'video','setdata':'editing','pingback':'structured','canvasrenderingcontext2d':'the-canvas','remove':'dom','row-group':'tabular','common':'introdution','x':'structured','activeelement':'semantics','column0':'tabular','uncached':'offline','user-interface':'video','opportunistically':'offline','close':'dom','about-blank-origin':'web-browsers','stringify':'dom','tfoot0':'tabular','text-node':'introduction','muted':'video','sessionstorage':'structured','alink':'rendering','rectx':'the-canvas','ascii-compatible':'the-root','dragleave':'editing','creating':'tree-construction','updaterowsinserted':'interactive-elements','strokerect':'the-canvas','after4':'tree-construction','after5':'tree-construction','after6':'tree-construction','after7':'tree-construction','after0':'tokenisation','after1':'tokenisation','after2':'tokenisation','after3':'tokenisation','last':'structured','sandboxed2':'embedded0','htmltablerowelement':'tabular','hyperlink':'structured','foreign':'offline','connection':'comms','context':'interactive-elements','initstorageevent':'structured','document.write':'dom','links0':'dom','condition0':'interactive-elements','load':'video','htmlsourceeement':'video','consume':'tokenisation','simple':'the-canvas','dimension':'the-canvas','the-default':'interactive-elements','header':'the-root','stroketext':'the-canvas','slots':'tabular','playcount0':'video','transformations':'the-canvas','create':'tree-construction','implicit':'offline','bgcolor':'rendering','removerange':'editing','change':'parsing','empty':'video','content2':'tokenisation','data-state':'tokenisation','audio0':'video','audio1':'video','audio2':'web-browsers','skip-':'semantics','global0':'interactive-elements','selectable-separator':'interactive-elements','htmlprogresselement':'text-level','the-ol':'the-root','updatecolumnchanged':'interactive-elements','nested0':'web-browsers','nested1':'web-browsers','evaluated':'interactive-elements','the-scripting':'parsing','destination-atop':'the-canvas','the-irrelevant':'semantics','initially-open':'interactive-elements','content-type1':'history','ready':'editing','content-type2':'history','in-head0':'tree-construction','undo-transaction':'editing,'port':'history','read':'comms','onclick':'web-browsers','clear3':'tree-construction','clear2':'tree-construction','clear1':'parsing','clear0':'structured','the-tfoot':'tabular','alert':'web-browsers','getcolumncount':'interactive-elements','canplaythrough0':'video','keyn':'structured','noreferrer':'structured','current5':'parsing','current4':'editing','current6':'parsing','current1':'history','current0':'video','current3':'editing','current2':'editing','length9':'structured','length8':'history','database':'structured','length3':'video','the-nest':'interactive-elements','length1':'dom','length0':'dom','length7':'offline','length6':'web-browsers','length5':'interactive-elements','length4':'video','unit-of':'web-browsers','loadstart':'video','allow-scripts':'embedded0','the-nodedatatemplate':'interactive-elements','xxx1name':'dom','updaterowsremoved':'interactive-elements','shape':'the-canvas','the-h1':'the-root','session0':'history','alternative':'the-root','sidebar':'structured','documentEncoding':'parsing,'newlines':'syntax','loading':'video','alternate':'structured','volumechange':'video','source':'video','shape0':'the-canvas','location':'video','input':'structured','newlines0':'syntax','getrowmenu':'interactive-elements','deletefromdocument':'editing','insert':'tree-construction','in-select0':'tree-construction','the-code':'text-level','table2':'tabular','table0':'tabular','table1':'tabular','parser-inserted':'tabular','remoteeventtarget0':'comms','undo-object':'editing','facets':'interactive-elements','manifest':'the-root','hyperlink0':'structured','collect':'semantics','hyperlink2':'text-level','disabled7':'interactive-elements','data-tree0':'interactive-elements','the-body':'the-root','pick-a':'video','terminology':'introduction','type-of':'embedded0','clipping':'the-canvas','back':'history','godelta':'history','selectallchildren':'editing','addcolorstop':'the-canvas','scale':'the-canvas','the-style':'semantics','anchoroffset':'editing','id2':'interactive-elements','id0':'semantics','id1':'interactive-lements','connecting':'comms','bogus':'tokenisation','processing0':'tabular','processing1':'interactive-elements','processing2':'offline','processing3':'structured','processing4':'comms','beziercurveto':'the-canvas','processing':'tabular','ping1':'the-canvas','ping0':'text-level','br':'the-root','async':'tabular','peer-to-peer0':'comms','escapingString':'serializing','undo1':'editing','firing':'web-browsers','the-ref':'interactive-elements','querycommandenabled':'editing','extensions':'the-root','dialog':'the-root','parsing-main-inhead':'tree-construction','forms0':'dom','the-rp':'text-level','the-session':'history','servers':'comms','the-li':'the-root','frames':'web-browsers','videowidth':'video','servers0':'comms','rows':'tabular','span':'text-level','quirks-mode-doctypes':'tree-construction','live':'introduction','the-span':'text-level','custom':'semantics','trusted0':'web-browsers','selectionend':'editing','forward':'history','translate':'the-canvas','sections':'the-root','the-javascript':'web-browsers''length11':'editing','length10':'structured','poster':'video','registercontenthandler':'web-browsers','link':'the-root','bufferedbytes':'video','the-tbody':'tabular','oncontextmenu':'web-browsers','the-q':'text-level','opener0':'web-browsers','undo-moving':'editing','security8':'editing','up':'structured','htmlparamelement':'embedded0','ul':'the-root','createlineargradient':'the-canvas','open1':'interactive-elements','open0':'interactive-elements','open3':'comms','open2':'web-browsers','ordered':'semantics','in-table':'tree-construction','security3':'web-browsers','xmllang':'semantics','xlink':'tree-construction','security2':'web-browsers','sizes0':'structured','images':'the-canvas','datetime2':'text-level','poster0':'video','the-template':'interactive-elements','the-br':'the-root','polygon':'the-canvas','nodedatatemplate':'interactive-elements','currenttime':'video','application':'offline','nav':'the-root','newvalue':'structured','elements':'dom','mediaevents':'video','parse1':'parsing','parse0':'offline',line-styles':'the-canvas','drag':'editing','sandboxSubmitBlocked':'tabular','structure':'introduction','code0':'video','furthest':'web-browsers','algorithm':'tabular','svg':'the-canvas','the-string':'web-browsers','activating0':'history','scroll':'history','normalized':'video','code':'text-level','boolean0':'semantics','head-element':'parsing','rules1':'semantics','rules0':'semantics','toggle':'dom','rules2':'semantics','rules5':'semantics','rules4':'semantics','go':'history','the-before0':'tree-construction','position0':'editing','the-event-source':'tabular','send':'comms','initially-closed':'interactive-elements','colgroup0':'tabular','tfoot':'tabular','syntax-references':'semantics','link-type5':'structured','getcaptiontext':'interactive-elements','failed0':'interactive-elements','link-type6':'structured','link-type1':'structured','link-type0':'structured','link-type3':'structured','link-type2':'structured','link-type9':'structured','link-type8':'structured','contenteditable':'editing','the-dfn':'text-leel','htmltableheadercellelement':'tabular','notes':'comms','the-icon':'rendering','commandtype':'interactive-elements','user-editing':'editing','before2':'tokenisation','compositing':'the-canvas','onkeyup':'web-browsers','resource0':'dom','html-vs':'introduction','after8':'tree-construction','peer-to-peer':'comms','video':'video','the-head0':'dom','the-localstorage':'structured','click':'semantics','index':'index','bdo':'text-level','bufferingthrottled':'video','ondragleave':'web-browsers','cell':'tabular','waiting':'video','parsing-main-intable':'tree-construction','addeventsource':'comms','body':'dom','onchecking':'offline','source-out':'the-canvas','following':'structured','dynamic1':'dom','dynamic0':'dom','dynamic3':'offline','dynamic2':'dom','the-xmlbase':'semantics','fatal-decode-error':'video','play0':'video','inserthtml':'editing','web-browsers':'web-browsers','itemindex5':'structured','itemindex4':'offline','itemindex3':'interactive-elements','itemindex2':'dom','itemindex1':'dom','itemindex0':'dom''navigating0':'history','buffered':'video','named':'named','ratios':'semantics','end-tags0':'syntax','onscroll':'web-browsers','boolean':'semantics','bluetooth-peer':'comms','bgcolor0':'rendering','redo':'editing','htmlmeterelement':'text-level','confidence':'parsing','seamless':'embedded0','next':'structured','the-common':'comms','read-text':'history','htmlformcontrolscollection0':'dom','swapcache':'offline','htmllielement':'the-root','editable':'interactive-elements','name6':'embedded0','name7':'the-canvas','name4':'embedded0','name5':'embedded0','name2':'embedded0','name3':'embedded0','name0':'the-root','name1':'embedded0','the-time':'text-level','in-caption':'tree-construction','name8':'the-canvas','name9':'web-browsers','application2':'offline','application3':'offline','read-xml':'history','clients':'comms','application0':'offline','application1':'offline','unsetting':'interactive-elements','insertorderedlist0':'editing','building0':'interactive-elements','links':'structured','process':'comms','high0':text-level','the-datatemplate':'interactive-elements','high':'text-level','tag':'structured','attributes2':'syntax','attributes0':'tabular','the-article':'the-root','source-atop':'the-canvas','dd':'the-root','when-the0':'editing','link0':'rendering','the-undomanager':'editing','focus-management':'semantics','attributes1':'syntax','read-ua-inline':'history','createtbody':'tabular','ambiguous':'syntax','xmlns':'tree-construction','parsing-main-inselectintable':'tree-construction','the-connection':'comms','the-canvas0':'the-canvas','fallback':'semantics','the-after':'tree-construction','applicationcache':'offline','comms':'comms','meter':'text-level','sqlresultset':'structured','collapsetostart':'editing','the-input0':'parsing','unchecked':'interactive-elements','using2':'interactive-elements','using3':'interactive-elements','using0':'interactive-elements','using1':'interactive-elements','using6':'interactive-elements','using7':'interactive-elements','using4':'interactive-elements','using5':'interactive-elemens','chosen':'video','using8':'parsing','li':'the-root','firing0':'web-browsers','firing1':'web-browsers','firing2':'web-browsers','firing3':'web-browsers','firing4':'web-browsers','firing5':'web-browsers','stalled':'video','xxx2name':'dom','network1':'comms','conformance':'introduction','pixel':'the-canvas','entity-references':'introduction','in-column':'tree-construction','sequential0':'structured','the-progress':'text-level','dropEffect-initialization':'editing','dataset':'semantics','transparent':'semantics','linkTypes':'structured','link-type20':'structured','datagrid0':'interactive-elements','mode':'interactive-elements','domtimestamp':'introduction','references':'references','runtime-script-errors':'web-browsers','history-notes':'history','contenteditable-delete':'editing','interaction0':'semantics','meta':'the-root','sandboxScriptBlocked':'web-browsers','special':'parsing','updateeverything':'interactive-elements','following0':'structured','time0':'text-level','time1':'text-level','how-rows':'interacive-elements','rel':'the-root','ref':'interactive-elements','htmlareaelement':'the-canvas','the-noscript':'tabular','link-type10':'structured','undo':'editing','encoding0':'parsing','initialize':'interactive-elements','index0':'structured','interaction':'semantics','determining':'parsing','length':'dom','pathname':'history','htmltabledatacellelement':'tabular','collapsetoend':'editing','footnotes':'text-level','registrationmark0':'interactive-elements','registerprotocolhandler':'web-browsers','tag-name0':'tokenisation','getelementsbyclassname0':'dom','parser-appcache':'tree-construction','mediaerrdecode':'video','sandboxCookies':'dom','applicationcache0':'offline','imagein0':'web-browsers','sandboxOrigin':'web-browsers','privacy':'structured','removecueranges':'video','getcontext':'the-canvas','htmlelement':'dom','xmlbase':'semantics','reversed':'the-root','lists':'semantics','the-aside':'the-root','contenteditable-br':'editing','reflecting':'dom','xxx3name':'dom','initconnectionreadevent':'comms','updating:'interactive-elements','xml-documents':'dom','date-or':'semantics','playcount':'video','the-history':'history','htmlnestelement':'interactive-elements','copy-to':'editing','clip':'the-canvas','htmlmediaelement':'video','allow-forms':'embedded0','documents':'dom','how-to':'introduction','min':'text-level','setselected':'interactive-elements','tabindex0':'semantics','scripts0':'semantics','database0':'structured','dom-tree':'dom','crossDocumentMessages':'comms','the-selection':'interactive-elements','cue-ranges0':'video','class':'semantics','htmlcanvaselement':'the-canvas','a-value':'semantics','url':'dom','media11':'the-canvas','shadowoffsetx':'the-canvas','shadowoffsety':'the-canvas','uri':'structured','initpopstateeventns':'history','hierarchical':'structured','databases':'structured','the-originalcontent':'interactive-elements','canplaythrough':'video','selection':'editing','data-tree':'interactive-elements','text':'the-canvas','javascript-protocol':'web-browsers','closepath':'the-canvas','pause':'introdction','sqlresultsetrowlist':'structured','ismap0':'embedded0','datetime-parser':'semantics','cache':'offline','source-over':'the-canvas','controls':'video','getimagedata':'the-canvas','event-stream-interpretation':'comms','the-root':'the-root','cache0':'offline','scoped0':'the-root','headings0':'the-root','onunload':'web-browsers','the-mark':'text-level','mathml':'the-canvas','abbr':'text-level','setselectionrange':'editing','scrolling':'semantics','effectAllowed-initialization':'editing','itemindex':'dom','areas':'the-canvas','draggable0':'editing','link-type':'structured','default':'the-root','the-bdo':'text-level','the-ready':'video','forwarddelete':'editing','view':'web-browsers','end0':'video','undomanagerevent':'editing','get-an':'parsing','command1':'interactive-elements','command0':'interactive-elements','command3':'interactive-elements','command2':'interactive-elements','link-type15':'structured','link-type14':'structured','link-type17':'structured','link-type16':'structured','link-type19':'structred','link-type18':'structured','state':'history','columnType2':'interactive-elements','trusted':'web-browsers','attribute2':'tokenisation','progress':'text-level','attribute0':'syntax','attribute1':'tokenisation','interfaces':'structured','attribute4':'tokenisation','todataurl0':'the-canvas','contenteditable1':'editing','contenteditable0':'editing','timezone0':'text-level','the-html':'the-root','html-':'dom','security7':'structured','key':'structured','disconnect':'comms','peertopeerconnection':'comms','optional':'syntax','close2':'tree-construction','commands':'interactive-elements','the-map':'the-canvas','flow-content':'semantics','plugin':'introduction','clients0':'comms','unfocusing':'semantics','attributes':'text-level','rows0':'tabular','rows1':'structured','adjusted':'video','author':'structured','globalcompositeoperation':'the-canvas','formatblock':'editing','security5':'web-browsers','table':'tabular','deletetfoot':'tabular','context2':'interactive-elements','context1':'interactive-elements','contxt0':'the-canvas','clearinterval':'no','semantics-intro':'semantics','the-fieldset':'tabular','type15':'interactive-elements','type14':'interactive-elements','type17':'structured','type16':'interactive-elements','type11':'tabular','type10':'the-canvas','type13':'interactive-elements','type12':'tabular','deletethead':'tabular','firing6':'web-browsers','onmousewheel':'web-browsers','repetition':'repetition','escaping1':'syntax','escaping0':'syntax','imagein':'web-browsers','currentloop':'video','sortable':'interactive-elements','license':'structured','scrollintoview':'semantics','defining':'text-level','triggers':'interactive-elements','value':'the-root','addrange':'editing','updaterowschanged':'interactive-elements','selectall0':'editing','the-meter':'text-level','in-cell':'tree-construction','modelist':'interactive-elements','flow-content0':'semantics','endindex0':'video','generic':'tree-construction','selectionstart':'editing','createlink':'editing','start':'syntax','endindex':'video','ref0':'interactive-eements','metadata0':'semantics','htmlformcontrolscollection':'dom','transformations0':'the-canvas','transaction':'structured','i':'text-level','the-manifest':'offline','paste0':'editing','draggable':'editing','command':'editing','the-applet':'rendering','position':'text-level','audio':'video','drawing':'the-canvas','autoplay':'video','restore':'the-canvas','htmlcollection':'dom','bluetooth-broadcast':'comms','obtain':'rendering','designMode':'editing','the-header':'the-root','datatemplate0':'interactive-elements','sandboxed4':'embedded0','sandboxed5':'web-browsers','sandboxed0':'embedded0','sandboxed1':'embedded0','arcto':'the-canvas','sandboxed3':'embedded0','unsigned':'semantics','outlines':'the-root','host0':'structured','usage':'text-level','cyclecell':'interactive-elements','effective2':'video','percentages-and-dimensions':'semantics','checking':'offline','source2':'editing','isselected':'interactive-elements','source0':'history','source1':'structured','onmouseover':'web-browsers','source4':'comms','re-icon':'structured','refnode':'interactive-elements','sizes':'the-root','loadedfirstframe0':'video','the-object':'embedded0','replacement':'history','clearundo':'editing','sample-handler-impl':'web-browsers','htmlanchorelement':'text-level','seamless0':'embedded0','seamless1':'embedded0','drawimage':'the-canvas','simple0':'web-browsers','getrangeat':'editing','with-script':'web-browsers','the-form':'tabular','the-doctype':'syntax','onresize':'web-browsers','defaultplaybackrate':'video','before4':'tree-construction','before5':'tree-construction','ondrag':'web-browsers','before0':'tokenisation','before1':'tokenisation','the-del':'text-level','before3':'tokenisation','host':'history','voidcallback':'video','querycommandvalue':'editing','paste':'editing','column':'tabular','the-undomanagerevent':'editing','innerhtml1':'dom','innerhtml0':'dom','undomanager0':'editing','canplay':'video','onstorage':'web-browsers','discard':'history','stringify0':'editing','em':'text-level','h2':'the-root','h3':'the-root','h1':'th-root','h6':'the-root','h4':'the-root','h5':'the-root','closing':'tree-construction','the-cite':'text-level','additional':'tokenisation','querycommandindeterm':'editing','shownotification':'web-browsers','var':'text-level','the-figure':'embedded0','ondrop':'web-browsers','hr':'the-root','document.writeln...':'dom','volume':'video','tbodies':'tabular','editing':'editing','interactive0':'semantics','interactive1':'semantics','in-table0':'tree-construction','lthostportgt':'structured','colgroup':'tabular','cells':'tabular','opendatabase':'structured','signed':'semantics','when-the':'editing','dispatchMessage':'comms','readystate':'dom','ins':'text-level','consumed':'parsing','onclose':'comms','other':'the-root','effective3':'web-browsers','details':'interactive-elements','effective1':'video','effective0':'video','browsing1':'web-browsers','htmltablecellelement':'tabular','kinds':'semantics','deletecell':'tabular','cut-to':'editing','authors-using-html':'introduction','sqltransaction':'structured','base-dnd-feeback':'editing','audio3':'web-browsers','contenteditable-insertText':'editing','in-select':'tree-construction','canvaspattern0':'the-canvas','auxiliary':'web-browsers','insertorderedlist':'editing','rule':'interactive-elements','effectallowed':'editing','getcaptionclasses':'interactive-elements','parsing-main-incolgroup':'tree-construction','width3':'the-canvas','click0':'interactive-elements','click1':'interactive-elements' };

var fragid = window.location.hash.substr(1);
if (!fragid) { /* handle section-foo.html links from the old multipage version, and broken foo.html from the new version */
    var m = window.location.pathname.match(/\/(?:section-)?([\w\-]+)\.html/);
    if (m) fragid = m[1];
}
var page = fragment_links[fragid];
if (page) {
    window.location.replace(page+'.html#'+fragid);
}

--- NEW FILE: interactive-elements.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...3400 lines suppressed...]

   <dt>DOM interface:

   <dd>Uses <code><a href="dom.html#htmlelement">HTMLElement</a></code>.
  </dl>

  <p>The <code><a href="#div">div</a></code> element represents nothing at
   all. It can be used with the <code title="attr-class"><a href="semantics.html#class">class</a></code>, <code title="attr-lang"><a href="semantics.html#lang">lang</a></code>/<code title="attr-xml-lang"><a href="semantics.html#xmllang">xml:lang</a></code>, and <code title="attr-title"><a href="semantics.html#title">title</a></code> attributes to mark up semantics common to a
   group of consecutive elements.

  <p class="big-issue">Allowing <code><a href="#div">div</a></code> elements to
   contain phrasing content makes it easy for authors to abuse <code><a href="#div">div</a></code>, using it with the <code>class=""</code>
   attribute to the point of not having any other elements in the markup.
   This is a disaster from an accessibility point of view, and it would be
   nice if we could somehow make such pages non-compliant without preventing
   people from using <code><a href="#div">div</a></code>s as the extension
   mechanism that they are, to handle things the spec can't otherwise do
   (like making new widgets).

  
--- NEW FILE: editing.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...2202 lines suppressed...]

   <dt>Anything else

   <dd><strong>Action:</strong> User agents must do nothing.

   <dd><strong>Enabled When:</strong> Never.

   <dd><strong>Indeterminate When:</strong> Never.

   <dd><strong>State:</strong> Always false.

   <dd><strong>Value:</strong> Always the string "<code title="">false</code>".
  </dl>
  <!--
XXX Once we resolve the style="" issue, address these:
 "forecolor", "hilitecolor", "fontname", "fontsize", "justifyleft",
 "justifycenter", "justifyright", "justifyfull", "indent", "outdent"
-->

  
--- NEW FILE: video.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...2267 lines suppressed...]
    <tr>
     <td><dfn id="volumechange" title="event-volumechange"><code>volumechange</code></dfn>

     <td><code>Event</code>

     <td>Either the <code title="dom-media-volume"><a href="#volume">volume</a></code> attribute or the <code title="dom-media-muted"><a href="#muted">muted</a></code> attribute has
      changed. Fired after the relevant attribute's setter has returned.

     <td>
  </table>

  <h5 id="security0"><span class="secno">3.12.10.14. </span>Security and privacy
   considerations</h5>

  <p class="big-issue">Talk about making sure interactive media files (e.g.
   SVG) don't have access to the container DOM (XSS potential); talk about
   not exposing any sensitive data like metadata from tracks in the media
   files (intranet snooping risk)

  
--- NEW FILE: offline.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...1244 lines suppressed...]
     event is targeted at or bubbles through the <code><a href="#applicationcache">ApplicationCache</a></code> object.
  </dl>

  <h4 id="browser0"><span class="secno">4.7.7 </span>Browser state</h4>

  <p>The <dfn id="navigator.online" title="dom-navigator-onLine"><code>navigator.onLine</code></dfn> attribute
   must return false if the user agent will not contact the network when the
   user follows links or when a script requests a remote page (or knows that
   such an attempt would fail), and must return true otherwise.

  <p>When the value that would be returned by the <code title="dom-navigator-onLine"><a href="#navigator.online">navigator.onLine</a></code> attribute of the
   <code><a href="web-browsers.html#window">Window</a></code> changes from true to false, the
   user agent must <a href="web-browsers.html#firing2">fire a simple event</a> called <dfn id="offline0" title="event-offline"><code>offline</code></dfn> at <a href="dom.html#the-body1">the body element</a>.

  <p>On the other hand, when the value that would be returned by the <code title="dom-navigator-onLine"><a href="#navigator.online">navigator.onLine</a></code> attribute of the
   <code><a href="web-browsers.html#window">Window</a></code> changes from false to true, the
   user agent must <a href="web-browsers.html#firing2">fire a simple event</a> called <dfn id="online0" title="event-online"><code>online</code></dfn> at <a href="dom.html#the-body1">the body element</a>.</p>
  <!-- XXX ononline onoffline need to be defined -->

  
--- NEW FILE: structured.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...2510 lines suppressed...]
     <td>&mdash;

     <td>Remove one leading U+0023 NUMBER SIGN ("<code title="">#</code>")
      character, if any

     <td>&mdash;
  </table>

  <p>The <dfn id="lthostportgt">&lt;hostport&gt;</dfn> component is defined as
   being the &lt;host&gt;/&lt;ihost&gt; component, followed by a colon and
   the &lt;port&gt; component, but with the colon and &lt;port&gt; component
   omitted if the given port matches the default port for the protocol given
   by the &lt;scheme&gt; component.</p>
  <!--
  http://www.hixie.ch/tests/adhoc/dom/level0/location/components/
  http://lxr.mozilla.org/seamonkey/source/dom/src/base/nsLocation.cpp
  http://wp.netscape.com/eng/mozilla/3.0/handbook/javascript/ref_h-l.htm#84722
-->

  
--- NEW FILE: tokenisation.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...1839 lines suppressed...]
     attribute</a>, and the last character matched is not a U+003B SEMICOLON
     (<code title="">;</code>), and the next character is in the range U+0030
     DIGIT ZERO to U+0039 DIGIT NINE, U+0041 LATIN CAPITAL LETTER A to U+005A
     LATIN CAPITAL LETTER Z, or U+0061 LATIN SMALL LETTER A to U+007A LATIN
     SMALL LETTER Z, then, for historical reasons, all the characters that
     were matched after the U+0026 AMPERSAND (&amp;) must be unconsumed, and
     nothing is returned.</p>

    <p>Otherwise, return a character token for the character corresponding to
     the character reference name (as given by the second column of the <a href="named.html#named0">named character references</a> table).</p>

    <div class="example">
     <p>If the markup contains <code title="">I'm &amp;notit; I tell
      you</code>, the character reference is parsed as "not", as in, <code title="">I'm &not;it; I tell you</code>. But if the markup was <code title="">I'm &amp;notin; I tell you</code>, the character reference
      would be parsed as "notin;", resulting in <code title="">I'm &notin; I
      tell you</code>.</p>
    </div>
  </dl>

  
--- NEW FILE: references.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
   ul.toc li ul { margin-bottom: 0.75em; }
   ul.toc li ul li ul { margin-bottom: 0.25em; }
   var sub { vertical-align: bottom; font-size: smaller; position: relative; top: 0.1em; }
   @media screen { code { color: rgb(255, 69, 0); background: transparent; } }
   code :link, code :visited { color: inherit; background: transparent; }
   .example { display: block; color: #222222; background: #FCFCFC; border-left: double; margin-left: 1em; padding-left: 1em; }
   .issue, .big-issue { color: #E50000; background: white; border: solid red; padding: 0.5em; margin: 1em 0; }
   .issue > :first-child, .big-issue > :first-child { margin-top: 0; }
   p .big-issue { line-height: 3em; }
   .note { color: green; background: transparent; }
   .note { font-family: sans-serif; }
   p.note:before { content: 'Note: '; }
   .warning { color: red; background: transparent; }
   .warning:before { font-style: normal; }
   p.warning:before { content: '\26A0 Warning! '; }
   .note, .warning { font-weight: bolder; font-style: italic; padding: 0.5em 2em; }
   .copyright { margin: 0.25em 0; }
   img { max-width: 100%; }
   h4 + .element { margin-top: -2.5em; padding-top: 2em; }
   h4 + p + .element { margin-top: -5em; padding-top: 4em; }
   .element { background: #EEEEFF; color: black; margin: 0 0 1em -1em; padding: 0 1em 0.25em 0.75em; border-left: solid #9999FF 0.25em; }
   table.matrix, table.matrix td { border: none; text-align: right; }
   table.matrix { margin-left: 2em; }
  </style>
  <link href="http://www.w3.org/StyleSheets/TR/%57%33%43-WD" rel="stylesheet" type="text/css">
  <!-- ZZZ -->

 <link href="index.html" rel="prev" title="Index">
  <link href="Overview.html#contents" rel="index" title="Table of contents">
  <link href="acknowledgements.html" rel="next" title="Acknowledgements">
  <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 id="html-5">HTML 5</h1>

   <h2 class="no-num no-toc" id="a-vocabulary">A vocabulary and associated APIs
    for HTML and XHTML</h2>

   </div>

  <div>
   <a href="index.html">&larr; Index</a> &ndash;
   <a href="Overview.html#contents">Table of contents</a> &ndash;
   <a href="acknowledgements.html">Acknowledgements &rarr;</a>
  </div>

  <h2 class="no-num" id="references">References</h2>

  <p class="big-issue">This section will be written in a future
   draft.<!--XXX--></p>
  <!-- XXX check that #refsRFC([0-9]+) is always for [RFC\1] -->

  
--- NEW FILE: semantics.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...2851 lines suppressed...]
   called to it.

  <p class="note">In a speech browser, this could happen by having the current
   playback position move to the start of the given element.

  <p>In visual user agents, if the argument is present and has the value
   false, the user agent should scroll the element into view such that both
   the bottom and the top of the element are in the viewport, with the bottom
   of the element aligned with the bottom of the viewport. If it isn't
   possible to show the entire element in that way, or if the argument is
   omitted or is true, then the user agent should instead align the top of
   the element with the top of the viewport. Visual user agents should
   further scroll horizontally as necessary to bring the element to the
   attention of the user.

  <p>Non-visual user agents may ignore the argument, or may treat it in some
   media-specific manner most useful to the user.</p>
  <!-- XXX maybe this should move to CSSOM -->

  
--- NEW FILE: index.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
   ul.toc li ul { margin-bottom: 0.75em; }
   ul.toc li ul li ul { margin-bottom: 0.25em; }
   var sub { vertical-align: bottom; font-size: smaller; position: relative; top: 0.1em; }
   @media screen { code { color: rgb(255, 69, 0); background: transparent; } }
   code :link, code :visited { color: inherit; background: transparent; }
   .example { display: block; color: #222222; background: #FCFCFC; border-left: double; margin-left: 1em; padding-left: 1em; }
   .issue, .big-issue { color: #E50000; background: white; border: solid red; padding: 0.5em; margin: 1em 0; }
   .issue > :first-child, .big-issue > :first-child { margin-top: 0; }
   p .big-issue { line-height: 3em; }
   .note { color: green; background: transparent; }
   .note { font-family: sans-serif; }
   p.note:before { content: 'Note: '; }
   .warning { color: red; background: transparent; }
   .warning:before { font-style: normal; }
   p.warning:before { content: '\26A0 Warning! '; }
   .note, .warning { font-weight: bolder; font-style: italic; padding: 0.5em 2em; }
   .copyright { margin: 0.25em 0; }
   img { max-width: 100%; }
   h4 + .element { margin-top: -2.5em; padding-top: 2em; }
   h4 + p + .element { margin-top: -5em; padding-top: 4em; }
   .element { background: #EEEEFF; color: black; margin: 0 0 1em -1em; padding: 0 1em 0.25em 0.75em; border-left: solid #9999FF 0.25em; }
   table.matrix, table.matrix td { border: none; text-align: right; }
   table.matrix { margin-left: 2em; }
  </style>
  <link href="http://www.w3.org/StyleSheets/TR/%57%33%43-WD" rel="stylesheet" type="text/css">
  <!-- ZZZ -->

 <link href="no.html" rel="prev" title="10. Things that you can't do with this specification because they are better handled using other technologies that are further described herein">
  <link href="Overview.html#contents" rel="index" title="Table of contents">
  <link href="references.html" rel="next" title="References">
  <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 id="html-5">HTML 5</h1>

   <h2 class="no-num no-toc" id="a-vocabulary">A vocabulary and associated APIs
    for HTML and XHTML</h2>

   </div>

  <div>
   <a href="no.html">&larr; 10. Things that you can't do with this specification because they are better handled using other technologies that are further described herein</a> &ndash;
   <a href="Overview.html#contents">Table of contents</a> &ndash;
   <a href="references.html">References &rarr;</a>
  </div>

  <h2 class="no-num" id="index">Index</h2>

  <p><em>This section is non-normative.</em>

  <p class="big-issue">List of elements

  <p class="big-issue">List of attributes

  <p class="big-issue">List of interfaces

  <p class="big-issue">List of events

  
--- NEW FILE: comms.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...1368 lines suppressed...]

   <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>

  <p class="warning">The integrity of this API is based on the inability for
   scripts of one <a href="web-browsers.html#origin0">origin</a> to post arbitrary events
   (using <code title="">dispatchEvent()</code> or otherwise) to objects in
   other origins (those that are not the <a href="web-browsers.html#same-origin" title="same
   origin">same</a>).

  <p class="note">Implementors are urged to take extra care in the
   implementation of this feature. It allows authors to transmit information
   from one domain to another domain, which is normally disallowed for
   security reasons. It also requires that UAs be careful to allow access to
   certain properties but not others.

  
--- NEW FILE: syntax.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
   ul.toc li ul { margin-bottom: 0.75em; }
   ul.toc li ul li ul { margin-bottom: 0.25em; }
   var sub { vertical-align: bottom; font-size: smaller; position: relative; top: 0.1em; }
   @media screen { code { color: rgb(255, 69, 0); background: transparent; } }
   code :link, code :visited { color: inherit; background: transparent; }
   .example { display: block; color: #222222; background: #FCFCFC; border-left: double; margin-left: 1em; padding-left: 1em; }
   .issue, .big-issue { color: #E50000; background: white; border: solid red; padding: 0.5em; margin: 1em 0; }
   .issue > :first-child, .big-issue > :first-child { margin-top: 0; }
   p .big-issue { line-height: 3em; }
   .note { color: green; background: transparent; }
   .note { font-family: sans-serif; }
   p.note:before { content: 'Note: '; }
   .warning { color: red; background: transparent; }
   .warning:before { font-style: normal; }
   p.warning:before { content: '\26A0 Warning! '; }
   .note, .warning { font-weight: bolder; font-style: italic; padding: 0.5em 2em; }
   .copyright { margin: 0.25em 0; }
   img { max-width: 100%; }
   h4 + .element { margin-top: -2.5em; padding-top: 2em; }
   h4 + p + .element { margin-top: -5em; padding-top: 4em; }
   .element { background: #EEEEFF; color: black; margin: 0 0 1em -1em; padding: 0 1em 0.25em 0.75em; border-left: solid #9999FF 0.25em; }
   table.matrix, table.matrix td { border: none; text-align: right; }
   table.matrix { margin-left: 2em; }
  </style>
  <link href="http://www.w3.org/StyleSheets/TR/%57%33%43-WD" rel="stylesheet" type="text/css">
  <!-- ZZZ -->

 <link href="repetition.html" rel="prev" title="7. Repetition templates">
  <link href="Overview.html#contents" rel="index" title="Table of contents">
  <link href="parsing.html" rel="next" title="8.2 Parsing HTML documents">
  <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 id="html-5">HTML 5</h1>

   <h2 class="no-num no-toc" id="a-vocabulary">A vocabulary and associated APIs
    for HTML and XHTML</h2>

   </div>

  <div>
   <a href="repetition.html">&larr; 7. Repetition templates</a> &ndash;
   <a href="Overview.html#contents">Table of contents</a> &ndash;
   <a href="parsing.html">8.2 Parsing HTML documents &rarr;</a>
  </div>

  <h2 id="syntax"><span class="secno">8. </span>The HTML syntax</h2>

  <h3 id="writing0"><span class="secno">8.1 </span>Writing HTML documents</h3>

  <p><em>This section only applies to documents, authoring tools, and markup
   generators. In particular, it does not apply to conformance checkers;
   conformance checkers must use the requirements given in the next section
   ("parsing HTML documents").</em>

  <p>Documents must consist of the following parts, in the given order:

  <ol>
   <li>Optionally, a single U+FEFF BYTE ORDER MARK (BOM) character.

   <li>Any number of <a href="#comments0" title="syntax-comments">comments</a>
    and <a href="semantics.html#space" title="space character">space characters</a>.

   <li>A <a href="#doctype" title="syntax-doctype">DOCTYPE</a>.

   <li>Any number of <a href="#comments0" title="syntax-comments">comments</a>
    and <a href="semantics.html#space" title="space character">space characters</a>.

   <li>The root element, in the form of an <code><a href="the-root.html#html">html</a></code> <a href="#elements3" title="syntax-elements">element</a>.

   <li>Any number of <a href="#comments0" title="syntax-comments">comments</a>
    and <a href="semantics.html#space" title="space character">space characters</a>.
  </ol>

  <p>The various types of content mentioned above are described in the next
   few sections.

  <p>In addition, there are some restrictions on how <span>character encoding
   declarations</span> 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="the-root.html#html">html</a></code>
    element, and space characters at the start of the <code><a href="the-root.html#html">html</a></code> element and before the <code><a href="the-root.html#head">head</a></code> element, will be dropped when the document
    is parsed; space characters <em>after</em> the root <code><a href="the-root.html#html">html</a></code> element will be parsed as if they were at
    the end of the <code><a href="the-root.html#body0">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="the-root.html#html">html</a></code> element's start tag (if it is not <a href="#omitted" title="syntax-tag-omission">omitted</a>), and after any
    comments that are inside the <code><a href="the-root.html#html">html</a></code>
    element but before the <code><a href="the-root.html#head">head</a></code> element.</p>
  </div>

  <h4 id="the-doctype"><span class="secno">8.1.1 </span>The DOCTYPE</h4>

  <p>A <dfn id="doctype" title="syntax-doctype">DOCTYPE</dfn> is a mostly
   useless, but required, header.

  <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>A DOCTYPE must consist of the following characters, in this order:

  <ol class="brief">
   <li>A U+003C LESS-THAN SIGN (<code>&lt;</code>) character.

   <li>A U+0021 EXCLAMATION MARK (<code>!</code>) character.

   <li>A U+0044 LATIN CAPITAL LETTER D or U+0064 LATIN SMALL LETTER D
    character.

   <li>A U+004F LATIN CAPITAL LETTER O or U+006F LATIN SMALL LETTER O
    character.

   <li>A U+0043 LATIN CAPITAL LETTER C or U+0063 LATIN SMALL LETTER C
    character.

   <li>A U+0054 LATIN CAPITAL LETTER T or U+0074 LATIN SMALL LETTER T
    character.

   <li>A U+0059 LATIN CAPITAL LETTER Y or U+0079 LATIN SMALL LETTER Y
    character.

   <li>A U+0050 LATIN CAPITAL LETTER P or U+0070 LATIN SMALL LETTER P
    character.

   <li>A U+0045 LATIN CAPITAL LETTER E or U+0065 LATIN SMALL LETTER E
    character.

   <li>One or more <a href="semantics.html#space" title="space character">space
    characters</a>.

   <li>A U+0048 LATIN CAPITAL LETTER H or U+0068 LATIN SMALL LETTER H
    character.

   <li>A U+0054 LATIN CAPITAL LETTER T or U+0074 LATIN SMALL LETTER T
    character.

   <li>A U+004D LATIN CAPITAL LETTER M or U+006D LATIN SMALL LETTER M
    character.

   <li>A U+004C LATIN CAPITAL LETTER L or U+006C LATIN SMALL LETTER L
    character.

   <li>Zero or more <a href="semantics.html#space" title="space character">space
    characters</a>.

   <li>A U+003E GREATER-THAN SIGN (<code>&gt;</code>) character.
  </ol>

  <p class="note">In other words, <code>&lt;!DOCTYPE HTML&gt;</code>,
   case-insensitively.

  <h4 id="elements0"><span class="secno">8.1.2 </span>Elements</h4>

  <p>There are five different kinds of <dfn id="elements3" title="syntax-elements">elements</dfn>: void elements, CDATA elements,
   RCDATA elements, foreign elements, and normal elements.

  <dl>
   <dt><dfn id="void-elements">Void elements</dfn>

   <dd><code><a href="the-root.html#base">base</a></code>, <code><a href="the-root.html#link">link</a></code>, <code><a href="the-root.html#meta0">meta</a></code>,
    <code><a href="the-root.html#hr">hr</a></code>, <code><a href="the-root.html#br">br</a></code>,
    <code><a href="embedded0.html#img">img</a></code>, <code><a href="embedded0.html#embed">embed</a></code>, <code><a href="embedded0.html#param">param</a></code>,
    <code><a href="the-canvas.html#area">area</a></code>, <code><a href="tabular.html#col">col</a></code>, <code>input</code><!-- XXX add: ,
   <code>command</code>, <code>event-source</code> -->

   <dt>CDATA elements

   <dd><code><a href="the-root.html#style1">style</a></code>, <code><a href="tabular.html#script1">script</a></code></dd>
   <!-- iframe and
   noscript don't count as CDATA for syntax purposes -->

   <dt>RCDATA elements

   <dd><code><a href="the-root.html#title1">title</a></code>, <code>textarea</code>

   <dt>Foreign elements

   <dd>Elements from the <a href="tree-construction.html#mathml0">MathML namespace</a> <!--XXXSVG
   and the <span>SVG namespace</span>.</dd>
-->
    

   <dt>Normal elements

   <dd>All other allowed <a href="introduction.html#html-elements">HTML elements</a> are
    normal elements.
  </dl>

  <p><dfn id="tags" title="syntax-tags">Tags</dfn> are used to delimit the start
   and end of elements in the markup. CDATA, RCDATA, and normal elements have
   a <a href="#start6" title="syntax-start-tags">start tag</a> to indicate
   where they begin, and an <a href="#end-tags0" title="syntax-end-tags">end
   tag</a> to indicate where they end. The start and end tags of certain
   normal elements can be <a href="#omitted" title="syntax-tag-omission">omitted</a>, as described later. Those that
   cannot be omitted must not be omitted. Void elements only have a start
   tag; end tags must not be specified for void elements. Foreign elements
   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>The contents of the element must be placed between just after the start
   tag (which <a href="#omitted" title="syntax-tag-omission">might be implied,
   in certain cases</a>) and just before the end tag (which again, <a href="#omitted" 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>Void elements 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>CDATA elements can have <a href="#text2" title="syntax-text">text</a>,
   though it has <a href="#cdata-rcdata-restrictions">restrictions</a>
   described below.

  <p>RCDATA elements can have <a href="#text2" title="syntax-text">text</a> and
   <a href="#character3" title="syntax-charref">character references</a>, but
   the text must not contain an <a href="#ambiguous" title="syntax-ambiguous-ampersand">ambiguous ampersand</a>. There are also
   <a href="#cdata-rcdata-restrictions">further restrictions</a> described
   below.

  <p>Foreign elements 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). Foreign elements whose start tag
   is <em>not</em> marked as self-closing can have <a href="#text2" title="syntax-text">text</a>, <a href="#character3" title="syntax-charref">character references</a>, <a href="#cdata0" title="syntax-cdata">CDATA blocks</a>, other <a href="#elements3" title="syntax-elements">elements</a>, and <a href="#comments0" 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="#ambiguous" title="syntax-ambiguous-ampersand">ambiguous
   ampersand</a>.

  <p>Normal elements can have <a href="#text2" title="syntax-text">text</a>, <a href="#character3" title="syntax-charref">character references</a>, other <a href="#elements3" title="syntax-elements">elements</a>, and <a href="#comments0" 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="#ambiguous" title="syntax-ambiguous-ampersand">ambiguous
   ampersand</a>. Some normal elements 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>Tags contain a <dfn id="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 .. U+0039 DIGIT NINE, U+0061
   LATIN SMALL LETTER A .. U+007A LATIN SMALL LETTER Z, U+0041 LATIN CAPITAL
   LETTER A .. U+005A LATIN CAPITAL LETTER Z, and U+002D HYPHEN-MINUS
   (<code>-</code>). In the HTML syntax, tag names 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.

  <h5 id="start"><span class="secno">8.1.2.1. </span>Start tags</h5>

  <p><dfn id="start6" title="syntax-start-tags">Start tags</dfn> must have the
   following format:

  <ol>
   <li>The first character of a start tag must be a U+003C LESS-THAN SIGN
    (<code>&lt;</code>).

   <li>The next few characters of a start tag must be the element's <a href="#tag-name" title="syntax-tag-name">tag name</a>.

   <li>If there are to be any attributes in the next step, there must first
    be one or more <a href="semantics.html#space" title="space character">space
    characters</a>.

   <li>Then, the start tag may have a number of attributes, the <a href="#attributes2" title="syntax-attributes">syntax for which</a> is
    described below. Attributes may be separated from each other by one or
    more <a href="semantics.html#space" title="space character">space characters</a>.

   <li>After the attributes, there may be one or more <a href="semantics.html#space" title="space character">space characters</a>. (Some attributes are
    required to be followed by a space. See the <a href="#attributes2" title="syntax-attributes">attributes section</a> below.)

   <li>Then, if the element is one of the void elements, or if the element is
    a foreign element, then there may be a single U+002F SOLIDUS
    (<code>/</code>) character. This character has no effect on void
    elements, but on foreign elements it marks the start tag as self-closing.

   <li>Finally, start tags must be closed by a U+003E GREATER-THAN SIGN
    (<code>&gt;</code>) character.
  </ol>

  <h5 id="end-tags"><span class="secno">8.1.2.2. </span>End tags</h5>

  <p><dfn id="end-tags0" title="syntax-end-tags">End tags</dfn> must have the
   following format:

  <ol>
   <li>The first character of an end tag must be a U+003C LESS-THAN SIGN
    (<code>&lt;</code>).

   <li>The second character of an end tag must be a U+002F SOLIDUS
    (<code>/</code>).

   <li>The next few characters of an end tag must be the element's <a href="#tag-name" title="syntax-tag-name">tag name</a>.

   <li>After the tag name, there may be one or more <a href="semantics.html#space" title="space character">space characters</a>.

   <li>Finally, end tags must be closed by a U+003E GREATER-THAN SIGN
    (<code>&gt;</code>) character.
  </ol>

  <h5 id="attributes1"><span class="secno">8.1.2.3. </span>Attributes</h5>

  <p><dfn id="attributes2" title="syntax-attributes">Attributes</dfn> for an
   element are expressed inside the element's start tag.

  <p>Attributes have a name and a value. <dfn id="attribute" title="syntax-attribute-name">Attribute names</dfn> must consist of one or
   more characters other than the <a href="semantics.html#space" 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 may be written with any mix of lower- and
   uppercase letters that, when converted to
   all-lowercase<!-- ASCII case-insensitive -->, matches the attribute's
   name; attribute names are case-insensitive.

  <p><dfn id="attribute0" title="syntax-attribute-value">Attribute values</dfn>
   are a mixture of <a href="#text2" title="syntax-text">text</a> and <a href="#character3" title="syntax-charref">character references</a>, except
   with the additional restriction that the text cannot contain an <a href="#ambiguous" title="syntax-ambiguous-ampersand">ambiguous
   ampersand</a>.

  <p>Attributes can be specified in four different ways:

  <dl>
   <dt>Empty attribute syntax

   <dd>
    <p>Just the <a href="#attribute" title="syntax-attribute-name">attribute
     name</a>.</p>

    <div class="example">
     <p>In the following example, the <code title="attr-input-disabled">disabled</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="semantics.html#space">space
     character</a> separating the two.</p>

   <dt>Unquoted attribute value syntax

   <dd>
    <p>The <a href="#attribute" title="syntax-attribute-name">attribute
     name</a>, followed by zero or more <a href="semantics.html#space" title="space
     character">space characters</a>, followed by a single U+003D EQUALS SIGN
     character, followed by zero or more <a href="semantics.html#space" title="space
     character">space characters</a>, followed by the <a href="#attribute0" 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="semantics.html#space" title="space character">space characters</a>, a
     U+0022 QUOTATION MARK (<code>"</code>) characters, U+0027
     APOSTROPHE (<code>'</code>) characters, U+003D EQUALS SIGN
     (<code>=</code>) characters, or U+003E GREATER-THAN SIGN
     (<code>&gt;</code>) characters.</p>

    <div class="example">
     <p>In the following example, the <code title="attr-input-value">value</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 one of the optional U+002F SOLIDUS
     (<code>/</code>) characters allowed in step 6 of the <span title="syntax-start-tag">start tag</span> syntax above, then there must be
     a <a href="semantics.html#space">space character</a> separating the two.</p>

   <dt>Single-quoted attribute value syntax

   <dd>
    <p>The <a href="#attribute" title="syntax-attribute-name">attribute
     name</a>, followed by zero or more <a href="semantics.html#space" title="space
     character">space characters</a>, followed by a single U+003D EQUALS SIGN
     character, followed by zero or more <a href="semantics.html#space" title="space
     character">space characters</a>, followed by a single U+0027 APOSTROPHE
     (<code>'</code>) character, followed by the <a href="#attribute0" 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">type</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="semantics.html#space">space character</a> separating the two.</p>

   <dt>Double-quoted attribute value syntax

   <dd>
    <p>The <a href="#attribute" title="syntax-attribute-name">attribute
     name</a>, followed by zero or more <a href="semantics.html#space" title="space
     character">space characters</a>, followed by a single U+003D EQUALS SIGN
     character, followed by zero or more <a href="semantics.html#space" title="space
     character">space characters</a>, followed by a single U+0022 QUOTATION
     MARK (<code>"</code>) character, followed by the <a href="#attribute0" 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-input-name">name</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="semantics.html#space">space character</a> separating the two.</p>
  </dl>

  <h5 id="optional"><span class="secno">8.1.2.4. </span>Optional tags</h5>

  <p>Certain tags can be <dfn id="omitted" title="syntax-tag-omission">omitted</dfn>.</p>
  <!-- <html> -->

  <p>An <code><a href="the-root.html#html">html</a></code> element's <span title="syntax-start-tag">start tag</span> may be omitted if the first thing
   inside the <code><a href="the-root.html#html">html</a></code> element is not a <a href="#comments0" title="syntax-comments">comment</a>.</p>
  <!-- </html> -->

  <p>An <code><a href="the-root.html#html">html</a></code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the <code><a href="the-root.html#html">html</a></code> element is not immediately followed a <a href="#comments0" title="syntax-comments">comment</a> and the element
   contains a <code><a href="the-root.html#body0">body</a></code> element that is either
   not empty or whose <span title="syntax-start-tag">start tag</span> has not
   been omitted.</p>
  <!-- <head> -->

  <p>A <code><a href="the-root.html#head">head</a></code> element's <span title="syntax-start-tag">start tag</span> may be omitted if the first thing
   inside the <code><a href="the-root.html#head">head</a></code> element is an element.</p>
  <!-- </head> -->

  <p>A <code><a href="the-root.html#head">head</a></code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the <code><a href="the-root.html#head">head</a></code> element is not immediately followed by a <a href="semantics.html#space">space character</a> or a <a href="#comments0" title="syntax-comments">comment</a>.</p>
  <!-- <body> -->

  <p>A <code><a href="the-root.html#body0">body</a></code> element's <span title="syntax-start-tag">start tag</span> may be omitted if the first thing
   inside the <code><a href="the-root.html#body0">body</a></code> element is not a <a href="semantics.html#space">space character</a> or a <a href="#comments0" title="syntax-comments">comment</a>, except if the first thing inside the
   <code><a href="the-root.html#body0">body</a></code> element is a <code><a href="tabular.html#script1">script</a></code> or <code><a href="the-root.html#style1">style</a></code> element.
   <!-- Note that even if the </head> end
  tag is present, the parser makes <style> and <script> elements
  between </head> and <body> end up in the <head> instead of implying
  the <body> --></p>
  <!-- </body> -->

  <p>A <code><a href="the-root.html#body0">body</a></code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the <code><a href="the-root.html#body0">body</a></code> element is not immediately followed by a <a href="#comments0" title="syntax-comments">comment</a> and the element is
   either not empty or its <span title="syntax-start-tag">start tag</span> has
   not been omitted.</p>
  <!-- </li> -->

  <p>A <code><a href="the-root.html#li">li</a></code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the <code><a href="the-root.html#li">li</a></code> element is immediately followed by another
   <code><a href="the-root.html#li">li</a></code> element or if there is no more content
   in the parent element.</p>
  <!-- </dt> -->

  <p>A <code><a href="the-root.html#dt">dt</a></code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the <code><a href="the-root.html#dt">dt</a></code> element is immediately followed by another
   <code><a href="the-root.html#dt">dt</a></code> element or a <code><a href="the-root.html#dd">dd</a></code> element.</p>
  <!-- </dd> -->

  <p>A <code><a href="the-root.html#dd">dd</a></code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the <code><a href="the-root.html#dd">dd</a></code> element is immediately followed by another
   <code><a href="the-root.html#dd">dd</a></code> element or a <code><a href="the-root.html#dt">dt</a></code> element, or if there is no more content in the
   parent element.</p>
  <!-- </p> -->

  <p>A <code><a href="the-root.html#p">p</a></code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the <code><a href="the-root.html#p">p</a></code> element is immediately followed by an <code><a href="the-root.html#address">address</a></code>, <code><a href="the-root.html#blockquote">blockquote</a></code>, <code><a href="the-root.html#dl">dl</a></code>, <code>fieldset</code>, <code>form</code>,
   <code><a href="the-root.html#h1">h1</a></code>, <code><a href="the-root.html#h2">h2</a></code>,
   <code><a href="the-root.html#h3">h3</a></code>, <code><a href="the-root.html#h4">h4</a></code>,
   <code><a href="the-root.html#h5">h5</a></code>, <code><a href="the-root.html#h6">h6</a></code>,
   <code><a href="the-root.html#hr">hr</a></code>, <code><a href="interactive-elements.html#menu">menu</a></code>,
   <code><a href="the-root.html#ol">ol</a></code>, <code><a href="the-root.html#p">p</a></code>,
   <code><a href="the-root.html#pre">pre</a></code>, <code><a href="tabular.html#table">table</a></code>, or <code><a href="the-root.html#ul">ul</a></code>
   element, or if there is no more content in the parent element.</p>
  <!-- </optgroup> -->

  <p>An <code>optgroup</code> element's <span title="syntax-end-tag">end
   tag</span> may be omitted if the <code>optgroup</code> element is
   immediately followed by another <code>optgroup</code> element, or if there
   is no more content in the parent element.</p>
  <!-- </option> -->

  <p>An <code>option</code> element's <span title="syntax-end-tag">end
   tag</span> may be omitted if the <code>option</code> element is
   immediately followed by another <code>option</code> element, or if there
   is no more content in the parent element.</p>
  <!-- <colgroup> -->

  <p>A <code><a href="tabular.html#colgroup">colgroup</a></code> element's <span title="syntax-start-tag">start tag</span> may be omitted if the first thing
   inside the <code><a href="tabular.html#colgroup">colgroup</a></code> element is a
   <code><a href="tabular.html#col">col</a></code> element, and if the element is not
   immediately preceded by another <code><a href="tabular.html#colgroup">colgroup</a></code> element whose <span title="syntax-end-tag">end tag</span> has been omitted.</p>
  <!-- </colgroup> -->

  <p>A <code><a href="tabular.html#colgroup">colgroup</a></code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the <code><a href="tabular.html#colgroup">colgroup</a></code> element is not immediately followed
   by a <a href="semantics.html#space">space character</a> or a <a href="#comments0" title="syntax-comments">comment</a>.</p>
  <!-- </thead> -->

  <p>A <code><a href="tabular.html#thead0">thead</a></code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the <code><a href="tabular.html#thead0">thead</a></code> element is immediately followed by a
   <code><a href="tabular.html#tbody">tbody</a></code> or <code><a href="tabular.html#tfoot0">tfoot</a></code> element.</p>
  <!-- <tbody> -->

  <p>A <code><a href="tabular.html#tbody">tbody</a></code> element's <span title="syntax-start-tag">start tag</span> may be omitted if the first thing
   inside the <code><a href="tabular.html#tbody">tbody</a></code> element is a <code><a href="tabular.html#tr">tr</a></code> element, and if the element is not immediately
   preceded by a <code><a href="tabular.html#tbody">tbody</a></code>, <code><a href="tabular.html#thead0">thead</a></code>, or <code><a href="tabular.html#tfoot0">tfoot</a></code> element whose <span title="syntax-end-tag">end tag</span> has been omitted.</p>
  <!-- </tbody> -->

  <p>A <code><a href="tabular.html#tbody">tbody</a></code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the <code><a href="tabular.html#tbody">tbody</a></code> element is immediately followed by a
   <code><a href="tabular.html#tbody">tbody</a></code> or <code><a href="tabular.html#tfoot0">tfoot</a></code> element, or if there is no more content in
   the parent element.</p>
  <!-- </tfoot> -->

  <p>A <code><a href="tabular.html#tfoot0">tfoot</a></code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the <code><a href="tabular.html#tfoot0">tfoot</a></code> element is immediately followed by a
   <code><a href="tabular.html#tbody">tbody</a></code> element, or if there is no more
   content in the parent element.</p>
  <!-- </tr> -->

  <p>A <code><a href="tabular.html#tr">tr</a></code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the <code><a href="tabular.html#tr">tr</a></code> element is immediately followed by another
   <code><a href="tabular.html#tr">tr</a></code> element, or if there is no more content
   in the parent element.</p>
  <!-- </td> -->

  <p>A <code><a href="tabular.html#td">td</a></code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the <code><a href="tabular.html#td">td</a></code> element is immediately followed by a <code><a href="tabular.html#td">td</a></code> or <code><a href="tabular.html#th">th</a></code> element, or
   if there is no more content in the parent element.</p>
  <!-- </th> -->

  <p>A <code><a href="tabular.html#th">th</a></code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the <code><a href="tabular.html#th">th</a></code> element is immediately followed by a <code><a href="tabular.html#td">td</a></code> or <code><a href="tabular.html#th">th</a></code> element, or
   if there is no more content in the parent element.

  <p><strong>However</strong>, a <span title="syntax-start-tag">start
   tag</span> must never be omitted if it has any attributes.

  <h5 id="element-restrictions"><span class="secno">8.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>An <code>optgroup</code> element must not contain <code>optgroup</code>
   elements, even though these elements are technically allowed to be nested
   according to the content models described in this specification. (If an
   <code>optgroup</code> element is put inside another in the markup, it will
   in fact imply an <code>optgroup</code> end tag before it.)

  <p>A <code><a href="tabular.html#table">table</a></code> element must not contain
   <code><a href="tabular.html#tr">tr</a></code> elements, even though these elements are
   technically allowed inside <code><a href="tabular.html#table">table</a></code>
   elements according to the content models described in this specification.
   (If a <code><a href="tabular.html#tr">tr</a></code> element is put inside a <code><a href="tabular.html#table">table</a></code> in the markup, it will in fact imply a
   <code><a href="tabular.html#tbody">tbody</a></code> start tag before it.)

  <p>A single U+000A LINE FEED (LF) character may be placed immediately after
   the <span title="syntax-start-tag">start tag</span> of <code><a href="the-root.html#pre">pre</a></code> and <code>textarea</code> elements. This does
   not affect the processing of the element. The otherwise optional U+000A
   LINE FEED (LF) character <em>must</em> be included if the element's
   contents start with that character (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="the-root.html#pre">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">8.1.2.6.
   </span>Restrictions on the contents of CDATA and RCDATA elements</h5>

  <p>The text in CDATA and RCDATA elements 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<!--ASCII--> match
   the tag name of the element followed by one of U+0009 CHARACTER
   TABULATION, U+000A LINE FEED (LF), U+000B LINE TABULATION, U+000C FORM
   FEED (FF), U+0020 SPACE, U+003E GREATER-THAN SIGN (&gt;), or U+002F SOLIDUS
   (/), unless that string is part of an <a href="#escaping" title="syntax-escape">escaping text span</a>.

  <p>An <dfn id="escaping" title="syntax-escape">escaping text span</dfn> is a
   span of <a href="#text2" title="syntax-text">text</a> that starts with an <a href="#escaping0" title="syntax-escape-start">escaping text span start</a>
   that is not itself in an <a href="#escaping" title="syntax-escape">escaping
   text span</a>, and ends at the next <a href="#escaping1" title="syntax-escape-end">escaping text span end</a>. There cannot be any <a href="#character3" title="syntax-charref">character references</a> inside an
   <a href="#escaping" title="syntax-escape">escaping text span</a>.

  <p>An <dfn id="escaping0" title="syntax-escape-start">escaping text span
   start</dfn> is a part of <a href="#text2" 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>An <dfn id="escaping1" title="syntax-escape-end">escaping text span
   end</dfn> is a part of <a href="#text2" 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) whose
   U+003E GREATER-THAN SIGN (&gt;).

  <p>An <a href="#escaping0" title="syntax-escape-start">escaping text span
   start</a> may share its U+002D HYPHEN-MINUS characters with its
   corresponding <a href="#escaping1" title="syntax-escape-end">escaping text
   span end</a>.

  <p>The text in CDATA and RCDATA elements must not have an <a href="#escaping0" title="syntax-escape-start">escaping text span start</a>
   that is not followed by an <a href="#escaping1" title="syntax-escape-end">escaping text span end</a>.

  <h4 id="text0"><span class="secno">8.1.3 </span>Text</h4>

  <p><dfn id="text2" 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. Text must not contain control characters
   other than <a href="semantics.html#space" 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.

  <h5 id="newlines"><span class="secno">8.1.3.1. </span>Newlines</h5>

  <p><dfn id="newlines0" 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.

  <h4 id="character"><span class="secno">8.1.4 </span>Character references</h4>

  <p>In certain cases described in other sections, <a href="#text2" title="syntax-text">text</a> may be mixed with <dfn id="character3" title="syntax-charref">character references</dfn>. These can be used to
   escape characters that couldn't otherwise legally be included in <a href="#text2" title="syntax-text">text</a>.

  <p>Character references must start with a U+0026 AMPERSAND
   (<code>&amp;</code>). Following this, there are three possible kinds of
   character references:

  <dl>
   <dt>Named character references

   <dd>The ampersand must be followed by one of the names given in the <a href="named.html#named0">named character references</a> section, using the same
    case. The name must be one that is terminated by a U+003B SEMICOLON
    (<code title="">;</code>) character.

   <dt>Decimal numeric character reference

   <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 .. U+0039 DIGIT NINE, representing a base-ten integer
    that itself is a Unicode code point that is not U+0000, U+000D, in the
    range U+0080 .. U+009F, or in the range 0xD800 .. 0xDFFF (surrogates).
    The digits must then be followed by a U+003B SEMICOLON character (<code title="">;</code>).

   <dt>Hexadecimal numeric character reference

   <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 or a U+0058 LATIN CAPITAL LETTER X character, which
    must then be followed by one or more digits in the range U+0030 DIGIT
    ZERO .. U+0039 DIGIT NINE, U+0061 LATIN SMALL LETTER A .. U+0066 LATIN
    SMALL LETTER F, and U+0041 LATIN CAPITAL LETTER A .. U+0046 LATIN CAPITAL
    LETTER F, representing a base-sixteen integer that itself is a Unicode
    code point that is not U+0000, U+000D, in the range U+0080 .. U+009F, or
    in the range 0xD800 .. 0xDFFF (surrogates). The digits must then be
    followed by a U+003B SEMICOLON character (<code title="">;</code>).
  </dl>

  <p>An <dfn id="ambiguous" title="syntax-ambiguous-ampersand">ambiguous
   ampersand</dfn> is a U+0026 AMPERSAND (<code>&amp;</code>) character that
   is followed by some <a href="#text2" title="syntax-text">text</a> other than
   a <a href="semantics.html#space">space character</a>, a U+003C LESS-THAN SIGN character
   ('&lt;'), or another U+0026 AMPERSAND (<code>&amp;</code>) character.

  <h4 id="cdata"><span class="secno">8.1.5 </span>CDATA blocks</h4>

  <p><dfn id="cdata0" title="syntax-cdata">CDATA blocks</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 block may have
   <a href="#text2" 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 block
   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>).

  <h4 id="comments"><span class="secno">8.1.6 </span>Comments</h4>

  <p><dfn id="comments0" 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="#text2" 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 (<code title="">-</code>) 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>).

  
--- NEW FILE: the-root.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...3021 lines suppressed...]

   <dt>Content model:

   <dd><a href="semantics.html#flow-content0">Flow content</a>.

   <dt>Element-specific attributes:

   <dd>None.

   <dt>DOM interface:

   <dd>Uses <code><a href="dom.html#htmlelement">HTMLElement</a></code>.
  </dl>

  <p>The <code><a href="#dd">dd</a></code> element represents the
   description, definition, or value, part of a term-description group in a
   description list (<code><a href="#dl">dl</a></code> element), and the
   discourse, or quote, part in a conversation (<code><a href="#dialog">dialog</a></code> element).

  
--- NEW FILE: introduction.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
   ul.toc li ul { margin-bottom: 0.75em; }
   ul.toc li ul li ul { margin-bottom: 0.25em; }
   var sub { vertical-align: bottom; font-size: smaller; position: relative; top: 0.1em; }
   @media screen { code { color: rgb(255, 69, 0); background: transparent; } }
   code :link, code :visited { color: inherit; background: transparent; }
   .example { display: block; color: #222222; background: #FCFCFC; border-left: double; margin-left: 1em; padding-left: 1em; }
   .issue, .big-issue { color: #E50000; background: white; border: solid red; padding: 0.5em; margin: 1em 0; }
   .issue > :first-child, .big-issue > :first-child { margin-top: 0; }
   p .big-issue { line-height: 3em; }
   .note { color: green; background: transparent; }
   .note { font-family: sans-serif; }
   p.note:before { content: 'Note: '; }
   .warning { color: red; background: transparent; }
   .warning:before { font-style: normal; }
   p.warning:before { content: '\26A0 Warning! '; }
   .note, .warning { font-weight: bolder; font-style: italic; padding: 0.5em 2em; }
   .copyright { margin: 0.25em 0; }
   img { max-width: 100%; }
   h4 + .element { margin-top: -2.5em; padding-top: 2em; }
   h4 + p + .element { margin-top: -5em; padding-top: 4em; }
   .element { background: #EEEEFF; color: black; margin: 0 0 1em -1em; padding: 0 1em 0.25em 0.75em; border-left: solid #9999FF 0.25em; }
   table.matrix, table.matrix td { border: none; text-align: right; }
   table.matrix { margin-left: 2em; }
  </style>
  <link href="http://www.w3.org/StyleSheets/TR/%57%33%43-WD" rel="stylesheet" type="text/css">
  <!-- ZZZ -->

 <link href="Overview.html#contents" rel="index" title="Table of contents">
  <link href="dom.html" rel="next" title="2. The Document Object Model">
  <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 id="html-5">HTML 5</h1>

   <h2 class="no-num no-toc" id="a-vocabulary">A vocabulary and associated APIs
    for HTML and XHTML</h2>

   </div>

  <div>
   <a href="Overview.html#contents">Table of contents</a> &ndash;
   <a href="dom.html">2. The Document Object Model &rarr;</a>
  </div>

  <h2 id="introduction"><span class="secno">1. </span>Introduction</h2>

  <p><em>This section is non-normative.</em>

  <p>The World Wide Web's markup language has always been HTML. HTML was
   primarily designed as a language for semantically describing scientific
   documents, although its general design and adaptations over the years has
   enabled it to be used to describe a number of other types of documents.

  <p>The main area that has not been adequately addressed by HTML is a vague
   subject referred to as Web Applications. This specification attempts to
   rectify this, while at the same time updating the HTML specifications to
   address issues raised in the past few years.

  <h3 id="scope"><span class="secno">1.1 </span>Scope</h3>

  <p><em>This section is non-normative.</em>

  <p>This specification is limited to providing a semantic-level markup
   language and associated semantic-level scripting APIs for authoring
   accessible pages on the Web ranging from static documents to dynamic
   applications.

  <p>The scope of this specification does not include providing mechanisms
   for media-specific customization of presentation (although default
   rendering rules for Web browsers are included at the end of this
   specification, and several mechanisms for hooking into CSS are provided as
   part of the language).

  <p>The scope of this specification does not include documenting every HTML
   or DOM feature supported by Web browsers. Browsers support many features
   that are considered to be very bad for accessibility or that are otherwise
   inappropriate. For example, the <code>blink</code> element is clearly
   presentational and authors wishing to cause text to blink should instead
   use CSS.

  <p>The scope of this specification is not to describe an entire operating
   system. In particular, hardware configuration software, image manipulation
   tools, and applications that users would be expected to use with high-end
   workstations on a daily basis are out of scope. In terms of applications,
   this specification is targeted specifically at applications that would be
   expected to be used by users on an occasional basis, or regularly but from
   disparate locations, with low CPU requirements. For instance online
   purchasing systems, searching systems, games (especially multiplayer
   online games), public telephone books or address books, communications
   software (e-mail clients, instant messaging clients, discussion software),
   document editing software, etc.

  <p>For sophisticated cross-platform applications, there already exist
   several proprietary solutions (such as Mozilla's XUL, Adobe's Flash, or
   Microsoft's Silverlight). These solutions are evolving faster than any
   standards process could follow, and the requirements are evolving even
   faster. These systems are also significantly more complicated to specify,
   and are orders of magnitude more difficult to achieve interoperability
   with, than the solutions described in this document. Platform-specific
   solutions for such sophisticated applications (for example the MacOS X
   Core APIs) are even further ahead.

  <h4 id="relationship"><span class="secno">1.1.1 </span>Relationship to HTML
   4.01, XHTML 1.1, DOM2 HTML</h4>

  <p><em>This section is non-normative.</em>

  <p>This specification represents a new version of HTML4 and XHTML1, along
   with a new version of the associated DOM2 HTML API. Migration from HTML4
   or XHTML1 to the format and APIs described in this specification should in
   most cases be straightforward, as care has been taken to ensure that
   backwards-compatibility is retained.</p>
  <!-- XXX refs -->

  <p>This specification will eventually supplant Web Forms 2.0 as well. <a href="references.html#references">[WF2]</a>

  <h4 id="relationship0"><span class="secno">1.1.2 </span>Relationship to XHTML2</h4>

  <p><em>This section is non-normative.</em>

  <p>XHTML2 <a href="references.html#references">[XHTML2]</a> defines a new HTML vocabulary
   with better features for hyperlinks, multimedia content, annotating
   document edits, rich metadata, declarative interactive forms, and
   describing the semantics of human literary works such as poems and
   scientific papers.

  <p>However, it lacks elements to express the semantics of many of the
   non-document types of content often seen on the Web. For instance, forum
   sites, auction sites, search engines, online shops, and the like, do not
   fit the document metaphor well, and are not covered by XHTML2.

  <p><em>This</em> specification aims to extend HTML so that it is also
   suitable in these contexts.

  <p>XHTML2 and this specification use different namespaces and therefore can
   both be implemented in the same XML processor.

  <h4 id="relationship1"><span class="secno">1.1.3 </span>Relationship to XUL,
   Flash, Silverlight, and other proprietary UI languages</h4>

  <p><em>This section is non-normative.</em>

  <p>This specification is independent of the various proprietary UI
   languages that various vendors provide. As an open, vendor-neutral
   language, HTML provides for a solution to the same problems without the
   risk of vendor lock-in.

  <h3 id="structure"><span class="secno">1.2 </span>Structure of this
   specification</h3>

  <p><em>This section is non-normative.</em>

  <p>This specification is divided into the following important sections:

  <dl>
   <dt><a href="dom.html#dom">The DOM</a>

   <dd>The DOM, or Document Object Model, provides a base for the rest of the
    specification.

   <dt><a href="semantics.html#semantics">The Semantics</a>

   <dd>Documents are built from elements. These elements form a tree using
    the DOM. Each element also has a predefined meaning, which is explained
    in this section. User agent requirements for how to handle each element
    are also given, along with rules for authors on how to use the element.

   <dt><a href="web-browsers.html#windows">Browsing Contexts</a>

   <dd>HTML documents do not exist in a vacuum &mdash; this section defines
    many of the features that affect environments that deal with multiple
    pages, links between pages, and running scripts.

   <dt>APIs

   <dd><a href="editing.html#editing">The Editing APIs</a>: HTML documents can provide a
    number of mechanisms for users to modify content, which are described in
    this section.

   <dd><a href="comms.html#comms">The Communication APIs</a>: Applications written in
    HTML often require mechanisms to communicate with remote servers, as well
    as communicating with other applications from different domains running
    on the same client.

   <dd><a href="repetition.html#repetition">Repetition Templates</a>: A mechanism to support
    repeating sections in forms.

   <dt><a href="syntax.html#syntax">The Language Syntax</a>

   <dd>All of these features would be for naught if they couldn't be
    represented in a serialized form and sent to other people, and so this
    section defines the syntax of HTML, along with rules for how to parse
    HTML.
  </dl>

  <p>There are also a couple of appendices, defining <a href="rendering.html#rendering">rendering rules</a> for Web browsers and listing <a href="no.html#no">areas that are out of scope</a> for this specification.

  <h4 id="how-to"><span class="secno">1.2.1 </span>How to read this specification</h4>

  <p>This specification should be read like all other specifications. First,
   it should be read cover-to-cover, multiple times. Then, it should be read
   backwards at least once. Then it should be read by picking random sections
   from the contents list and following all the cross-references.

  <h3 id="conformance"><span class="secno">1.3 </span>Conformance requirements</h3>

  <p>All diagrams, examples, and notes in this specification are
   non-normative, as are all sections explicitly marked non-normative.
   Everything else in this specification is normative.

  <p>The key words "MUST", "MUST NOT", "REQUIRED", <!--"SHALL", "SHALL
  NOT",-->
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in the
   normative parts of this document are to be interpreted as described in
   RFC2119. For readability, these words do not appear in all uppercase
   letters in this specification. <a href="references.html#references">[RFC2119]</a></p>
  <!-- XXX but they should be
  marked up -->

  <p>Requirements phrased in the imperative as part of algorithms (such as
   "strip any leading space characters" or "return false and abort these
   steps") are to be interpreted with the meaning of the key word ("must",
   "should", "may", etc) used in introducing the algorithm.

  <p>This specification describes the conformance criteria for user agents
   (relevant to implementors) and documents (relevant to authors and
   authoring tool implementors).

  <p class="note">There is no implied relationship between document conformance
   requirements and implementation conformance requirements. User agents are
   not free to handle non-conformant documents as they please; the processing
   model described in this specification applies to implementations
   regardless of the conformity of the input documents.

  <p>User agents fall into several (overlapping) categories with different
   conformance requirements.

  <dl>
   <dt id="interactive">Web browsers and other interactive user agents

   <dd>
    <p>Web browsers that support <a href="#xhtml5">XHTML</a> must process
     elements and attributes from the <a href="tree-construction.html#html-namespace0">HTML
     namespace</a> found in <a href="dom.html#xml-documents">XML documents</a> as
     described in this specification, so that users can interact with them,
     unless the semantics of those elements have been overridden by other
     specifications.</p>

    <p class="example">A conforming XHTML processor would, upon finding an
     XHTML <code><a href="tabular.html#script1">script</a></code> element in an XML
     document, execute the script contained in that element. However, if the
     element is found within an XSLT transformation sheet (assuming the UA
     also supports XSLT), then the processor would instead treat the <code><a href="tabular.html#script1">script</a></code> element as an opaque element that
     forms part of the transform.</p>

    <p>Web browsers that support <a href="#html5" title="HTML5">HTML</a> must
     process documents labeled as <code>text/html</code> as described in this
     specification, so that users can interact with them.</p>

   <dt id="non-interactive">Non-interactive presentation user agents

   <dd>
    <p>User agents that process HTML and XHTML documents purely to render
     non-interactive versions of them must comply to the same conformance
     criteria as Web browsers, except that they are exempt from requirements
     regarding user interaction.</p>

    <p class="note">Typical examples of non-interactive presentation user
     agents are printers (static UAs) and overhead displays (dynamic UAs). It
     is expected that most static non-interactive presentation user agents
     will also opt to <a href="#non-scripted">lack scripting support</a>.</p>

    <p class="example">A non-interactive but dynamic presentation UA would
     still execute scripts, allowing forms to be dynamically submitted, and
     so forth. However, since the concept of "focus" is irrelevant when the
     user cannot interact with the document, the UA would not need to support
     any of the focus-related DOM APIs.</p>

   <dt><dfn id="non-scripted">User agents with no scripting support</dfn>

   <dd>
    <p>Implementations that do not support scripting (or which have their
     scripting features disabled entirely) are exempt from supporting the
     events and DOM interfaces mentioned in this specification. For the parts
     of this specification that are defined in terms of an events model or in
     terms of the DOM, such user agents must still act as if events and the
     DOM were supported.</p>

    <p class="note">Scripting can form an integral part of an application. Web
     browsers that do not support scripting, or that have scripting disabled,
     might be unable to fully convey the author's intent.</p>

   <dt>Conformance checkers

   <dd id="conformance-checkers">
    <p>Conformance checkers must verify that a document conforms to the
     applicable conformance criteria described in this specification.
     Automated conformance checkers are exempt from detecting errors that
     require interpretation of the author's intent (for example, while a
     document is non-conforming if the content of a <code><a href="the-root.html#blockquote">blockquote</a></code> element is not a quote,
     conformance checkers running without the input of human judgement do not
     have to check that <code><a href="the-root.html#blockquote">blockquote</a></code>
     elements only contain quoted material).</p>

    <p>Conformance checkers must check that the input document conforms when
     parsed without a <a href="web-browsers.html#browsing1">browsing context</a> (meaning that
     no scripts are run, and that the parser's <a href="parsing.html#scripting2">scripting flag</a> is disabled), and should also
     check that the input document conforms when parsed with a <a href="web-browsers.html#browsing1">browsing context</a> in which scripts execute, and
     that the scripts never cause non-conforming states to occur other than
     transiently during script execution itself. (This is only a "SHOULD" and
     not a "MUST" requirement because it has been proven to be impossible. <a href="references.html#references">[HALTINGPROBLEM]</a>)</p>
    <!-- XXX
    [Computable] On computable numbers, with an application to the
    Entscheidungsproblem. Alan M. Turing. In Proceedings of the London
    Mathematical Society, series 2, volume 42, pages 230-265. London
    Mathematical Society,
    1937. http://www.turingarchive.org/browse.php/B/12 (referenced:
    2007-03-03) -->
    
    <p>The term "HTML5 validator" can be used to refer to a conformance
     checker that itself conforms to the applicable requirements of this
     specification.</p>

    <div class="note">
     <p>XML DTDs cannot express all the conformance requirements of this
      specification. Therefore, a validating XML processor and a DTD cannot
      constitute a conformance checker. Also, since neither of the two
      authoring formats defined in this specification are applications of
      SGML, a validating SGML system cannot constitute a conformance checker
      either.</p>

     <p>To put it another way, there are three types of conformance criteria:</p>

     <ol>
      <li>Criteria that can be expressed in a DTD.

      <li>Criteria that cannot be expressed by a DTD, but can still be
       checked by a machine.

      <li>Criteria that can only be checked by a human.
     </ol>

     <p>A conformance checker must check for the first two. A simple
      DTD-based validator only checks for the first class of errors and is
      therefore not a conforming conformance checker according to this
      specification.</p>
    </div>

   <dt>Data mining tools

   <dd id="data-mining">
    <p>Applications and tools that process HTML and XHTML documents for
     reasons other than to either render the documents or check them for
     conformance should act in accordance to the semantics of the documents
     that they process.</p>

    <p class="example">A tool that generates <a href="the-root.html#outline" title="outline">document outlines</a> but increases the nesting level for
     each paragraph and does not increase the nesting level for each section
     would not be conforming.</p>

   <dt id="editors">Authoring tools and markup generators

   <dd>
    <p>Authoring tools and markup generators must generate conforming
     documents. Conformance criteria that apply to authors also apply to
     authoring tools, where appropriate.</p>

    <p>Authoring tools are exempt from the strict requirements of using
     elements only for their specified purpose, but only to the extent that
     authoring tools are not yet able to determine author intent.</p>

    <p class="example">For example, it is not conforming to use an <code><a href="the-root.html#address">address</a></code> element for arbitrary contact
     information; that element can only be used for marking up contact
     information for the author of the document or section. However, since an
     authoring tool is likely unable to determine the difference, an
     authoring tool is exempt from that requirement.</p>

    <p class="note">In terms of conformance checking, an editor is therefore
     required to output documents that conform to the same extent that a
     conformance checker will verify.</p>

    <p>When an authoring tool is used to edit a non-conforming document, it
     may preserve the conformance errors in sections of the document that
     were not edited during the editing session (i.e. an editing tool is
     allowed to round-trip erroneous content). However, an authoring tool
     must not claim that the output is conformant if errors have been so
     preserved.</p>

    <p>Authoring tools are expected to come in two broad varieties: tools
     that work from structure or semantic data, and tools that work on a
     What-You-See-Is-What-You-Get media-specific editing basis (WYSIWYG).</p>

    <p>The former is the preferred mechanism for tools that author HTML,
     since the structure in the source information can be used to make
     informed choices regarding which HTML elements and attributes are most
     appropriate.</p>

    <p>However, WYSIWYG tools are legitimate. WYSIWYG tools should use
     elements they know are appropriate, and should not use elements that
     they do not know to be appropriate. This might in certain extreme cases
     mean limiting the use of flow elements to just a few elements, like
     <code><a href="interactive-elements.html#div">div</a></code>, <code><a href="text-level.html#b">b</a></code>,
     <code><a href="text-level.html#i">i</a></code>, and <code><a href="text-level.html#span">span</a></code> and making liberal use of the <code title="attr-style"><a href="semantics.html#style">style</a></code> attribute.</p>

    <p>All authoring tools, whether WYSIWYG or not, should make a best effort
     attempt at enabling users to create well-structured, semantically rich,
     media-independent content.</p>
  </dl>

  <p>Some conformance requirements are phrased as requirements on elements,
   attributes, methods or objects. Such requirements fall into two
   categories: those describing content model restrictions, and those
   describing implementation behavior. The former category of requirements
   are requirements on documents and authoring tools. The second category are
   requirements on user agents.

  <p>Conformance requirements phrased as algorithms or specific steps may be
   implemented in any manner, so long as the end result is equivalent. (In
   particular, the algorithms defined in this specification are intended to
   be easy to follow, and not intended to be performant.)

  <p id="hardwareLimitations">User agents may impose implementation-specific
   limits on otherwise unconstrained inputs, e.g. to prevent denial of
   service attacks, to guard against running out of memory, or to work around
   platform-specific limitations.

  <p>For compatibility with existing content and prior specifications, this
   specification describes two authoring formats: one based on XML (referred
   to as <dfn id="xhtml5" title="XHTML">XHTML5</dfn>), and one using a <a href="parsing.html#parsing">custom format</a> inspired by SGML (referred to as <dfn id="html5">HTML5</dfn>). Implementations may support only one of these two
   formats, although supporting both is encouraged.

  <p id="authors-using-xhtml"><a href="#xhtml5">XHTML</a> documents (<a href="dom.html#xml-documents">XML documents</a> using elements from the <a href="tree-construction.html#html-namespace0">HTML namespace</a>) that use the new features
   described in this specification and that are served over the wire (e.g. by
   HTTP) must be sent using an XML MIME type such as
   <code>application/xml</code> or <code>application/xhtml+xml</code> and
   must not be served as <code>text/html</code>. <a href="references.html#references">[RFC3023]</a>

  <p>Such XML documents may contain a <code>DOCTYPE</code> if desired, but
   this is not required to conform to this specification.

  <p class="note">According to the XML specification, XML processors are not
   guaranteed to process the external DTD subset referenced in the DOCTYPE.
   This means, for example, that using entity references for characters in
   XHTML documents is unsafe (except for <code title="">&amp;lt;</code>,
   <code title="">&amp;gt;</code>, <code title="">&amp;amp;</code>, <code title="">&amp;quot;</code> and <code title="">&amp;apos;</code>).

  <p id="authors-using-html"><a href="#html5" title="HTML5">HTML documents</a>,
   if they are served over the wire (e.g. by HTTP) must be labeled with the
   <code>text/html</code> MIME type.</p>
  <!--
  XXX update RFC 2854 -->

  <p id="entity-references">The language in this specification assumes that the
   user agent expands all entity references, and therefore does not include
   entity reference nodes in the DOM. If user agents do include entity
   reference nodes in the DOM, then user agents must handle them as if they
   were fully expanded when implementing this specification. For example, if
   a requirement talks about an element's child text nodes, then any text
   nodes that are children of an entity reference that is a child of that
   element would be used as well. Entity references to unknown entities must
   be treated as if they contained just an empty text node for the purposes
   of the algorithms defined in this specification.

  <h4 id="common"><span class="secno">1.3.1 </span>Common conformance
   requirements for APIs exposed to JavaScript</h4>

  <p class="big-issue">A lot of arrays/lists/<a href="dom.html#collections0" title="collections">collection</a>s in this spec assume zero-based indexes
   but use the term "<var title="">index</var>th" liberally. We should define
   those to be zero-based and be clearer about this.

  <p>Unless otherwise specified, if a DOM attribute that is a floating point
   number type (<code title="">float</code>) is assigned an Infinity or
   Not-a-Number value, a <code title="big-issue">NOT_SUPPORTED_ERR</code>
   exception must be raised.

  <p>Unless otherwise specified, if a method with an argument that is a
   floating point number type (<code title="">float</code>) is passed an
   Infinity or Not-a-Number value, a <code title="big-issue">NOT_SUPPORTED_ERR</code> exception must be raised.</p>
  <!-- XXX DOMB -->

  <p>Unless otherwise specified, if a method is passed fewer arguments than
   is defined for that method in its IDL definition, a <code title="big-issue">NOT_SUPPORTED_ERR</code> exception must be raised.</p>
  <!-- XXX DOMB -->

  <p>Unless otherwise specified, if a method is passed more arguments than is
   defined for that method in its IDL definition, the excess arguments must
   be ignored.</p>
  <!-- XXX When updating this spec for
  Bindings-For-DOM-compliance, also remove or consider the equivalent
  requirement in the canvas section for toDataURL() and
  getContext(). -->

  <h4 id="dependencies"><span class="secno">1.3.2 </span>Dependencies</h4>

  <p>This specification relies on several other underlying specifications.

  <dl>
   <dt>XML

   <dd>
    <p>Implementations that support XHTML5 must support some version of XML,
     as well as its corresponding namespaces specification, because XHTML5
     uses an XML serialization with namespaces. <a href="references.html#references">[XML]</a>
     <a href="references.html#references">[XMLNAMES]</a></p>

   <dt>XML Base

   <dd>
    <p id="xmlBase">User agents must follow the rules given by XML Base to
     resolve relative URIs in HTML and XHTML fragments. That is the mechanism
     used in this specification for resolving relative URIs in DOM trees. <a href="references.html#references">[XMLBASE]</a></p>

    <p class="note">It is possible for <code title="attr-xml-base"><a href="semantics.html#xmlbase">xml:base</a></code> attributes to be present even in
     HTML fragments, as such attributes can be added dynamically using
     script. (Such scripts would not be conforming, however, as <code title="attr-xml-base"><a href="semantics.html#xmlbase">xml:base</a></code> attributes as
     not allowed in <a href="dom.html#html-">HTML documents</a>.)</p>

   <dt>DOM

   <dd>
    <p>Implementations must support some version of DOM Core and DOM Events,
     because this specification is defined in terms of the DOM, and some of
     the features are defined as extensions to the DOM Core interfaces. <a href="references.html#references">[DOM3CORE]</a> <a href="references.html#references">[DOM3EVENTS]</a></p>

   <dt>ECMAScript

   <dd>
    <p>Implementations that use ECMAScript to implement the APIs defined in
     this specification must implement them in a manner consistent with the
     ECMAScript Bindings defined in the Web IDL specification, as this
     specification uses that specification's terminology. <a href="references.html#references">[WebIDL]</a></p>

   <dt id="mq">Media Queries

   <dd>
    <p>Implementations must support some version of the Media Queries
     language. However, when applying the rules of the Media Queries
     specification to media queries found in content attributes of <a href="#html-elements">HTML elements</a>, user agents must act as if all
     U+000B LINE TABULATION characters in the attribute were in fact U+0020
     SPACE characters. This is required to provide a consistent processing of
     <a href="semantics.html#space" title="space character">space characters</a> in HTML.
     <a href="references.html#references">[MQ]</a></p>
  </dl>

  <p>This specification does not require support of any particular network
   transport protocols, style sheet language, scripting language, or any of
   the DOM and WebAPI specifications beyond those described above. However,
   the language described by this specification is biased towards CSS as the
   styling language, ECMAScript as the scripting language, and HTTP as the
   network protocol, and several features assume that those languages and
   protocols are in use.

  <p class="note">This specification might have certain additional requirements
   on character encodings, image formats, audio formats, and video formats in
   the respective sections.

  <h4 id="features"><span class="secno">1.3.3 </span>Features defined in other
   specifications</h4>

  <p>Some elements are defined in terms of their DOM <dfn id="textcontent"><code>textContent</code></dfn> attribute. This is an
   attribute defined on the <code>Node</code> interface in DOM3 Core. <a href="references.html#references">[DOM3CORE]</a>

  <p class="big-issue">Should textContent be defined differently for dir="" and
   &lt;bdo&gt;? Should we come up with an alternative to textContent that
   handles those and other things, like alt=""?</p>
  <!-- This section is currently here exclusively so that we crossref
  to textContent. XXX also add event-click, event-change,
  event-DOMActivate, etc, here, once DOM3 Events is ready for that,
  and just have the section be a general "defined in other
  specifications" section -->

  <p>The interface <dfn id="domtimestamp"><code>DOMTimeStamp</code></dfn> is
   defined in DOM3 Core. <a href="references.html#references">[DOM3CORE]</a>

  <p>The term <dfn id="activation0">activation behavior</dfn> is used as
   defined in the DOM3 Events specification. <a href="references.html#references">[DOM3EVENTS]</a> <span class="big-issue">At the time
   of writing, DOM3 Events hadn't yet been updated to define that
   phrase.</span>

  <p id="alternate-style-sheets">The rules for handling alternative style
   sheets are defined in the CSS object model specification. <a href="references.html#references">[CSSOM]</a>

  <p class="big-issue">See <a href="http://dev.w3.org/cvsweb/~checkout~/csswg/cssom/Overview.html?content-type=text/html;%20charset=utf-8">http://dev.w3.org/cvsweb/~checkout~/csswg/cssom/Overview.html?content-type=text/html;%20charset=utf-8</a>

  <p>Certain features are defined in terms of CSS &lt;color&gt; values. When
   the CSS value <code title="">currentColor</code> is specified in this
   context, the "computed value of the 'color' property" for the purposes of
   determining the computed value of the <code title="">currentColor</code>
   keyword is the computed value of the 'color' property on the element in
   question. <a href="references.html#references">[CSS3COLOR]</a></p>
  <!-- XXX what if that
  element has no computed value? e.g. if it is not in a document? -->

  <p class="example">If a canvas gradient's <code title="dom-canvasgradient-addColorStop"><a href="the-canvas.html#addcolorstop">addColorStop()</a></code> method is called with the
   <code title="">currentColor</code> keyword as the color, then the computed
   value of the 'color' property on the <code><a href="the-canvas.html#canvas">canvas</a></code> element is the one that is used.

  <h3 id="terminology"><span class="secno">1.4 </span>Terminology</h3>

  <p>This specification refers to both HTML and XML attributes and DOM
   attributes, often in the same context. When it is not clear which is being
   referred to, they are referred to as <dfn id="content">content
   attributes</dfn> for HTML and XML attributes, and <dfn id="dom-attributes">DOM attributes</dfn> for those from the DOM. Similarly,
   the term "properties" is used for both ECMAScript object properties and
   CSS properties. When these are ambiguous they are qualified as object
   properties and CSS properties respectively.

  <p id="html-namespace">To ease migration from HTML to XHTML, UAs conforming
   to this specification will place elements in HTML in the
   <code>http://www.w3.org/1999/xhtml</code> namespace, at least for the
   purposes of the DOM and CSS. The term "<dfn id="elements1">elements in the
   HTML namespace</dfn>", or "<dfn id="html-elements">HTML elements</dfn>" for
   short, when used in this specification, thus refers to both HTML and XHTML
   elements.

  <p>Unless otherwise stated, all elements defined or mentioned in this
   specification are in the <code>http://www.w3.org/1999/xhtml</code>
   namespace, and all attributes defined or mentioned in this specification
   have no namespace (they are in the per-element partition).

  <p>The term <a href="dom.html#html-">HTML documents</a> is sometimes used in
   contrast with <a href="dom.html#xml-documents">XML documents</a> to specifically
   mean documents that were parsed using an <a href="parsing.html#html-0">HTML parser</a>
   (as opposed to using an XML parser or created purely through the DOM).

  <p>Generally, when the specification states that a feature applies to HTML
   or XHTML, it also includes the other. When a feature specifically only
   applies to one of the two languages, it is called out by explicitly
   stating that it does not apply to the other format, as in "for HTML, ...
   (this does not apply to XHTML)".

  <p>This specification uses the term <em>document</em> to refer to any use
   of HTML, ranging from short static documents to long essays or reports
   with rich multimedia, as well as to fully-fledged interactive
   applications.

  <p>For readability, the term URI is used to refer to both ASCII URIs and
   Unicode IRIs, as those terms are defined by RFC 3986 and RFC 3987
   respectively. On the rare occasions where IRIs are not allowed but ASCII
   URIs are, this is called out explicitly. <a href="references.html#references">[RFC3986]</a> <a href="references.html#references">[RFC3987]</a>

  <p>The term <dfn id="root-element">root element</dfn>, when not explicitly
   qualified as referring to the document's root element, means the furthest
   ancestor element node of whatever node is being discussed, or the node
   itself if it has no ancestors. When the node is a part of the document,
   then that is indeed the document's root element; however, if the node is
   not currently part of the document tree, the root element will be an
   orphaned node.

  <p>An element is said to have been <dfn id="inserted" title="insert an
   element into a document">inserted into a document</dfn> when its <a href="#root-element">root element</a> changes and is now the document's <a href="#root-element">root element</a>.

  <p>The term <dfn id="tree-order">tree order</dfn> means a pre-order,
   depth-first traversal of DOM nodes involved (through the <code title="">parentNode</code>/<code title="">childNodes</code> relationship).

  <p>When it is stated that some element or attribute is <dfn id="ignored" title="ignore">ignored</dfn>, or treated as some other value, or handled as
   if it was something else, this refers only to the processing of the node
   after it is in the DOM. A user agent must not mutate the DOM in such
   situations.

  <p>When an XML name, such as an attribute or element name, is referred to
   in the form <code><var title="">prefix</var>:<var title="">localName</var></code>, as in <code>xml:id</code> or
   <code>svg:rect</code>, it refers to a name with the local name <var title="">localName</var> and the namespace given by the prefix, as defined
   by the following table:

  <dl>
   <dt><code title="">xml</code>

   <dd><code>http://www.w3.org/XML/1998/namespace</code>

   <dt><code title="">html</code>

   <dd><code>http://www.w3.org/1999/xhtml</code>

   <dt><code title="">svg</code>

   <dd><code>http://www.w3.org/2000/svg</code>
  </dl>

  <p>For simplicity, terms such as <em>shown</em>, <em>displayed</em>, and
   <em>visible</em> might sometimes be used when referring to the way a
   document is rendered to the user. These terms are not meant to imply a
   visual medium; they must be considered to apply to other media in
   equivalent ways.

  <p>DOM interfaces defined in this specification use Web IDL. User agents
   must implement these interfaces as defined by the Web IDL specification.
   <a href="references.html#references">[WEBIDL]</a>

  <p>The construction "a <code>Foo</code> object", where <code>Foo</code> is
   actually an interface, is sometimes used instead of the more accurate "an
   object implementing the interface <code>Foo</code>".

  <p>A DOM attribute is said to be <em>getting</em> when its value is being
   retrieved (e.g. by author script), and is said to be <em>setting</em> when
   a new value is assigned to it.

  <p>If a DOM object is said to be <dfn id="live">live</dfn>, then that means
   that any attributes returning that object must always return the same
   object (not a new object each time), and the attributes and methods on
   that object must operate on the actual underlying data, not a snapshot of
   the data.

  <p>The terms <em>fire</em> and <em>dispatch</em> are used interchangeably
   in the context of events, as in the DOM Events specifications. <a href="references.html#references">[DOM3EVENTS]</a>

  <p>The term <dfn id="text-node">text node</dfn> refers to any
   <code>Text</code> node, including <code>CDATASection</code> nodes;
   specifically, any <code>Node</code> with node type <code title="">TEXT_NODE</code> (3) or <code title="">CDATA_SECTION_NODE</code>
   (4). <a href="references.html#references">[DOM3CORE]</a>

  <p>The term <dfn id="plugin">plugin</dfn> is used to mean any content
   handler, typically a third-party content handler, for Web content types
   that are not supported by the user agent natively, or for content types
   that do not expose a DOM, that supports rendering the content as part of
   the user agent's interface.

  <p class="example">One example of a plugin would be a PDF viewer that is
   instantiated in a <a href="web-browsers.html#browsing1">browsing context</a> when the user
   navigates to a PDF file. This would count as a plugin regardless of
   whether the party that implemented the PDF viewer component was the same
   as that which implemented the user agent itself. However, a PDF viewer
   application that launches separate from the user agent (as opposed to
   using the same interface) is not a plugin by this definition.

  <p class="note">This specification does not define a mechanism for
   interacting with plugins, as it is expected to be user-agent- and
   platform-specific. Some UAs might opt to support a plugin mechanism such
   as the Netscape Plugin API; others might use remote content converters or
   have built-in support for certain types. <a href="references.html#references">[NPAPI]</a>

  <p class="warning">Browsers should take extreme care when interacting with
   external content intended for <a href="#plugin" title="plugin">plugins</a>.
   When third-party software is run with the same privileges as the user
   agent itself, vulnerabilities in the third-party software become as
   dangerous as those in the user agent.

  <p>Some of the algorithms in this specification, for historical reasons,
   require the user agent to <dfn id="pause">pause</dfn> until some condition
   has been met. While a user agent is paused, it must ensure that no scripts
   execute (e.g. no event handlers, no timers, etc). User agents should
   remain responsive to user input while paused, however, albeit without
   letting the user interact with Web pages where that would involve invoking
   any script.

  <h4 id="html-vs"><span class="secno">1.4.1 </span>HTML vs XHTML</h4>

  <p><em>This section is non-normative.</em>

  <p>This specification defines an abstract language for describing documents
   and applications, and some APIs for interacting with in-memory
   representations of resources that use this language.

  <p>The in-memory representation is known as "DOM5 HTML", or "the DOM" for
   short.

  <p>There are various concrete syntaxes that can be used to transmit
   resources that use this abstract language, two of which are defined in
   this specification.

  <p>The first such concrete syntax is "HTML5". This is the format
   recommended for most authors. It is compatible with all legacy Web
   browsers. If a document is transmitted with the MIME type <code title="">text/html</code>, then it will be processed as an "HTML5"
   document by Web browsers.

  <p>The second concrete syntax uses XML, and is known as "XHTML5". When a
   document is transmitted with an XML MIME type, such as <code title="">application/xhtml+xml</code>, then it is processed by an XML
   processor by Web browsers, and treated as an "XHTML5" document. Authors
   are reminded that the processing for XML and HTML differs; in particular,
   even minor syntax errors will prevent an XML document from being rendered
   fully, whereas they would be ignored in the "HTML5" syntax.

  <p>The "DOM5 HTML", "HTML5", and "XHTML5" representations cannot all
   represent the same content. For example, namespaces cannot be represented
   using "HTML5", but they are supported in "DOM5 HTML" and "XHTML5".
   Similarly, documents that use the <code><a href="tabular.html#noscript">noscript</a></code> feature can be represented using
   "HTML5", but cannot be represented with "XHTML5" and "DOM5 HTML". Comments
   that contain the string "<code title="">--&gt;</code>" can be represented
   in "DOM5 HTML" but not in "HTML5" and "XHTML5". And so forth.

  
--- NEW FILE: embedded0.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
[...1573 lines suppressed...]

  <p>The <code><a href="#param">param</a></code> element defines parameters
   for plugins invoked by <code><a href="#object">object</a></code> elements.

  <p>The <dfn id="name5" title="attr-param-name"><code>name</code></dfn>
   attribute gives the name of the parameter.

  <p>The <dfn id="value5" title="attr-param-value"><code>value</code></dfn>
   attribute gives the value of the parameter.

  <p>Both attributes must be present. They may have any value.

  <p>If both attributes are present, and if the parent element of the
   <code><a href="#param">param</a></code> is an <code><a href="#object">object</a></code> element, then the element defines a <dfn id="parameter" title="concept-param-parameters">parameter</dfn> with the given
   name/value pair.

  <p>The DOM attributes <dfn id="name6" title="dom-param-name"><code>name</code></dfn> and <dfn id="value6" title="dom-param-value"><code>value</code></dfn> must both <a href="dom.html#reflect">reflect</a> the respective content attributes of the same
   name.

  
--- NEW FILE: no.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en-US"><head>
  <title>HTML 5</title>

  <style type="text/css">
   dt, dfn { font-weight: bold; font-style: normal; }
   img.extra { float: right; }
   body ins, body del { display: block; }
   body * ins, body * del { display: inline; }
   pre, code { color: black; background: transparent; font-size: inherit; font-family: monospace; }
   pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
   pre em { font-weight: bolder; font-style: normal; }
   pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
   pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em; }
   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; }
   ul.toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
   ul.toc li ul { margin-bottom: 0.75em; }
   ul.toc li ul li ul { margin-bottom: 0.25em; }
   var sub { vertical-align: bottom; font-size: smaller; position: relative; top: 0.1em; }
   @media screen { code { color: rgb(255, 69, 0); background: transparent; } }
   code :link, code :visited { color: inherit; background: transparent; }
   .example { display: block; color: #222222; background: #FCFCFC; border-left: double; margin-left: 1em; padding-left: 1em; }
   .issue, .big-issue { color: #E50000; background: white; border: solid red; padding: 0.5em; margin: 1em 0; }
   .issue > :first-child, .big-issue > :first-child { margin-top: 0; }
   p .big-issue { line-height: 3em; }
   .note { color: green; background: transparent; }
   .note { font-family: sans-serif; }
   p.note:before { content: 'Note: '; }
   .warning { color: red; background: transparent; }
   .warning:before { font-style: normal; }
   p.warning:before { content: '\26A0 Warning! '; }
   .note, .warning { font-weight: bolder; font-style: italic; padding: 0.5em 2em; }
   .copyright { margin: 0.25em 0; }
   img { max-width: 100%; }
   h4 + .element { margin-top: -2.5em; padding-top: 2em; }
   h4 + p + .element { margin-top: -5em; padding-top: 4em; }
   .element { background: #EEEEFF; color: black; margin: 0 0 1em -1em; padding: 0 1em 0.25em 0.75em; border-left: solid #9999FF 0.25em; }
   table.matrix, table.matrix td { border: none; text-align: right; }
   table.matrix { margin-left: 2em; }
  </style>
  <link href="http://www.w3.org/StyleSheets/TR/%57%33%43-WD" rel="stylesheet" type="text/css">
  <!-- ZZZ -->

 <link href="rendering.html" rel="prev" title="9. Rendering and user-agent behavior">
  <link href="Overview.html#contents" rel="index" title="Table of contents">
  <link href="index.html" rel="next" title="Index">
  <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 id="html-5">HTML 5</h1>

   <h2 class="no-num no-toc" id="a-vocabulary">A vocabulary and associated APIs
    for HTML and XHTML</h2>

   </div>

  <div>
   <a href="rendering.html">&larr; 9. Rendering and user-agent behavior</a> &ndash;
   <a href="Overview.html#contents">Table of contents</a> &ndash;
   <a href="index.html">Index &rarr;</a>
  </div>

  <h2 id="no"><span class="secno">10. </span>Things that you can't do with this
   specification because they are better handled using other technologies
   that are further described herein</h2>

  <p><em>This section is non-normative.</em>

  <p>There are certain features that are not handled by this specification
   because a client side markup language is not the right level for them, or
   because the features exist in other languages that can be integrated into
   this one. This section covers some of the more common requests.

  <h3 id="localization"><span class="secno">10.1 </span>Localization</h3>

  <p>If you wish to create localized versions of an HTML application, the
   best solution is to preprocess the files on the server, and then use HTTP
   content negotiation to serve the appropriate language.</p>
  <!-- <p>XXX example here</p> -->
  <!--XXXSVG (remove next section)-->

  <h3 id="declarative"><span class="secno">10.2 </span>Declarative 2D vector
   graphics and animation</h3>

  <p>Embedding vector graphics into XHTML documents is the domain of SVG.</p>
  <!-- <p>XXX example here</p> -->

  <h3 id="declarative0"><span class="secno">10.3 </span>Declarative 3D scenes</h3>

  <p>Embedding 3D imagery into XHTML documents is the domain of X3D, or
   technologies based on X3D that are namespace-aware.</p>
  <!-- <p>XXX example here</p> -->

  <h3 id="timers"><span class="secno">10.4 </span>Timers</h3>

  <p>This section is expected to be moved to the Window Object specification
   in due course.

  <pre class="idl">[NoInterfaceObject] interface <dfn id="windowtimers">WindowTimers</dfn> {
  // timers
  long <a href="#settimeout">setTimeout</a>(in <a href="#timeouthandler">TimeoutHandler</a> handler, in long timeout);
  long <a href="#settimeout">setTimeout</a>(in <a href="#timeouthandler">TimeoutHandler</a> handler, in long timeout, <var title="">arguments...</var>);
  long <a href="#settimeout">setTimeout</a>(in DOMString code, in long timeout);
  long <a href="#settimeout">setTimeout</a>(in DOMString code, in long timeout, in DOMString language);
  void <a href="#cleartimeout">clearTimeout</a>(in long handle);
  long <a href="#setinterval...">setInterval</a>(in <a href="#timeouthandler">TimeoutHandler</a> handler, in long timeout);
  long <a href="#setinterval...">setInterval</a>(in <a href="#timeouthandler">TimeoutHandler</a> handler, in long timeout, <var title="">arguments...</var>);
  long <a href="#setinterval...">setInterval</a>(in DOMString code, in long timeout);
  long <a href="#setinterval...">setInterval</a>(in DOMString code, in long timeout, in DOMString language);
  void <a href="#clearinterval">clearInterval</a>(in long handle);
};

interface <dfn id="timeouthandler">TimeoutHandler</dfn> {
  void handleEvent([Variadic] in any args);
};
</pre>

  <p>The <code><a href="#windowtimers">WindowTimers</a></code> interface must
   be obtainable from any <code><a href="web-browsers.html#window">Window</a></code> object
   using binding-specific casting methods.

  <p class="big-issue">Actually even better would be to just mix it straight
   into Window somehow.

  <p>The <code><a href="#settimeout">setTimeout</a></code> and <code><a href="#setinterval...">setInterval</a></code> methods allow authors to
   schedule timer-based events.

  <p>The <dfn id="settimeout" title="setTimeout"><code>setTimeout(<var title="">handler</var>, <var title="">timeout</var>[, <var title="">arguments...</var>])</code></dfn> method takes a reference to a
   <code><a href="#timeouthandler">TimeoutHandler</a></code> object and a
   length of time in milliseconds. It must return a handle to the timeout
   created, and then asynchronously wait <var title="">timeout</var>
   milliseconds and then invoke <code>handleEvent()</code> on the <var title="">handler</var> object. If any <var title="">arguments...</var>
   were provided, they must be passed to the <var title="">handler</var> as
   arguments to the <code>handleEvent()</code> function.

  <p>Alternatively, <dfn id="settimeout0" title=""><code>setTimeout(<var title="">code</var>, <var title="">timeout</var>[, <var title="">language</var>])</code></dfn> may be used. This variant takes a
   string instead of a <code><a href="#timeouthandler">TimeoutHandler</a></code> object. That string must
   be parsed using the specified <var title="">language</var> (defaulting to
   ECMAScript if the third argument is omitted) and executed in the scope of
   the <a href="web-browsers.html#browsing1">browsing context</a> associated with the <code><a href="web-browsers.html#window">Window</a></code> object on which the <code title="setTimeout"><a href="#settimeout">setTimeout()</a></code> method was
   invoked.

  <p class="big-issue">Need to define <var title="">language</var> values.

  <p>The <dfn id="setinterval..."><code>setInterval(...)</code></dfn> variants
   must work in the same way as the <code><a href="#settimeout">setTimeout</a></code> variants except that if <var title="">timeout</var> is a value greater than zero, the <var title="">handler</var> or <code><a href="text-level.html#code">code</a></code> must be
   invoked again every <var title="">timeout</var> milliseconds, not just the
   once.</p>
  <!-- so setInterval(x) and setInterval(x, 0) are
  equivalent to setTimeout(x) and setTimeout(x, 0) respectively -->

  <p>The <dfn id="cleartimeout"><code>clearTimeout()</code></dfn> and <dfn id="clearinterval"><code>clearInterval()</code></dfn> methods take one
   integer (the value returned by <code><a href="#settimeout">setTimeout</a></code> and <code><a href="#setinterval...">setInterval</a></code> respectively) and must
   cancel the specified timeout. When called with a value that does not
   correspond to an active timeout or interval, the methods must return
   without doing anything.

  <p>Timeouts must never fire while another script is executing. (Thus the
   HTML scripting model is strictly single-threaded and not reentrant.)

  
Received on Tuesday, 10 June 2008 00:29:19 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 9 October 2008 20:32:57 GMT