Annotation of html5/spec/textFieldSelection.html, revision 1.200

1.88      mike        1: <!DOCTYPE html>
1.159     sruby       2: <html lang="en-US-x-Hixie"><head><title>4.10.20 APIs for the text field selections &#8212; HTML5</title><style type="text/css">
1.1       mike        3:    pre { margin-left: 2em; white-space: pre-wrap; }
                      4:    h2 { margin: 3em 0 1em 0; }
                      5:    h3 { margin: 2.5em 0 1em 0; }
                      6:    h4 { margin: 2.5em 0 0.75em 0; }
                      7:    h5, h6 { margin: 2.5em 0 1em; }
                      8:    h1 + h2, h1 + h2 + h2 { margin: 0.75em 0 0.75em; }
                      9:    h2 + h3, h3 + h4, h4 + h5, h5 + h6 { margin-top: 0.5em; }
                     10:    p { margin: 1em 0; }
                     11:    hr:not(.top) { display: block; background: none; border: none; padding: 0; margin: 2em 0; height: auto; }
                     12:    dl, dd { margin-top: 0; margin-bottom: 0; }
                     13:    dt { margin-top: 0.75em; margin-bottom: 0.25em; clear: left; }
                     14:    dt + dt { margin-top: 0; }
                     15:    dd dt { margin-top: 0.25em; margin-bottom: 0; }
                     16:    dd p { margin-top: 0; }
                     17:    dd dl + p { margin-top: 1em; }
                     18:    dd table + p { margin-top: 1em; }
                     19:    p + * > li, dd li { margin: 1em 0; }
                     20:    dt, dfn { font-weight: bold; font-style: normal; }
                     21:    i, em { font-style: italic; }
                     22:    dt dfn { font-style: italic; }
                     23:    pre, code { font-size: inherit; font-family: monospace; font-variant: normal; }
                     24:    pre strong { color: black; font: inherit; font-weight: bold; background: yellow; }
                     25:    pre em { font-weight: bolder; font-style: normal; }
                     26:    @media screen { code { color: orangered; } code :link, code :visited { color: inherit; } }
                     27:    var sub { vertical-align: bottom; font-size: smaller; position: relative; top: 0.1em; }
                     28:    table { border-collapse: collapse; border-style: hidden hidden none hidden; }
                     29:    table thead, table tbody { border-bottom: solid; }
                     30:    table tbody th:first-child { border-left: solid; }
                     31:    table tbody th { text-align: left; }
                     32:    table td, table th { border-left: solid; border-right: solid; border-bottom: solid thin; vertical-align: top; padding: 0.2em; }
                     33:    blockquote { margin: 0 0 0 2em; border: 0; padding: 0; font-style: italic; }
                     34: 
                     35:    .bad, .bad *:not(.XXX) { color: gray; border-color: gray; background: transparent; }
                     36:    .matrix, .matrix td { border: none; text-align: right; }
                     37:    .matrix { margin-left: 2em; }
                     38:    .dice-example { border-collapse: collapse; border-style: hidden solid solid hidden; border-width: thin; margin-left: 3em; }
                     39:    .dice-example caption { width: 30em; font-size: smaller; font-style: italic; padding: 0.75em 0; text-align: left; }
                     40:    .dice-example td, .dice-example th { border: solid thin; width: 1.35em; height: 1.05em; text-align: center; padding: 0; }
                     41: 
                     42:    .toc dfn, h1 dfn, h2 dfn, h3 dfn, h4 dfn, h5 dfn, h6 dfn { font: inherit; }
                     43:    img.extra, p.overview { float: right; }
                     44:    pre.idl { border: solid thin; background: #EEEEEE; color: black; padding: 0.5em 1em; position: relative; }
                     45:    pre.idl :link, pre.idl :visited { color: inherit; background: transparent; }
                     46:    pre.idl::before { content: "IDL"; font: bold small sans-serif; padding: 0.5em; background: white; position: absolute; top: 0; margin: -1px 0 0 -4em; width: 1.5em; border: thin solid; border-radius: 0 0 0 0.5em }
                     47:    pre.css { border: solid thin; background: #FFFFEE; color: black; padding: 0.5em 1em; }
                     48:    pre.css:first-line { color: #AAAA50; }
                     49:    dl.domintro { color: green; margin: 2em 0 2em 2em; padding: 0.5em 1em; border: none; background: #DDFFDD; }
                     50:    hr + dl.domintro, div.impl + dl.domintro { margin-top: 2.5em; margin-bottom: 1.5em; }
                     51:    dl.domintro dt, dl.domintro dt * { color: black; text-decoration: none; }
                     52:    dl.domintro dd { margin: 0.5em 0 1em 2em; padding: 0; }
                     53:    dl.domintro dd p { margin: 0.5em 0; }
                     54:    dl.domintro:before { display: table; margin: -1em -0.5em -0.5em auto; width: auto; content: 'This box is non-normative. Implementation requirements are given below this box.'; color: black; font-style: italic; border: solid 2px; background: white; padding: 0 0.25em; }
                     55:    dl.switch { padding-left: 2em; }
                     56:    dl.switch > dt { text-indent: -1.5em; }
                     57:    dl.switch > dt:before { content: '\21AA'; padding: 0 0.5em 0 0; display: inline-block; width: 1em; text-align: right; line-height: 0.5em; }
                     58:    dl.triple { padding: 0 0 0 1em; }
                     59:    dl.triple dt, dl.triple dd { margin: 0; display: inline }
                     60:    dl.triple dt:after { content: ':'; }
                     61:    dl.triple dd:after { content: '\A'; white-space: pre; }
                     62:    .diff-old { text-decoration: line-through; color: silver; background: transparent; }
                     63:    .diff-chg, .diff-new { text-decoration: underline; color: green; background: transparent; }
                     64:    a .diff-new { border-bottom: 1px blue solid; }
                     65: 
1.180     sruby      66:    figure.diagrams { border: double black; background: white; padding: 1em; }
                     67:    figure.diagrams img { display: block; margin: 1em auto; } 
                     68: 
1.1       mike       69:    h2 { page-break-before: always; }
                     70:    h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
                     71:    h1 + h2, hr + h2.no-toc { page-break-before: auto; }
                     72: 
                     73:    p  > span:not([title=""]):not([class="XXX"]):not([class="impl"]):not([class="note"]),
                     74:    li > span:not([title=""]):not([class="XXX"]):not([class="impl"]):not([class="note"]), { border-bottom: solid #9999CC; }
                     75: 
                     76:    div.head { margin: 0 0 1em; padding: 1em 0 0 0; }
                     77:    div.head p { margin: 0; }
                     78:    div.head h1 { margin: 0; }
                     79:    div.head .logo { float: right; margin: 0 1em; }
                     80:    div.head .logo img { border: none } /* remove border from top image */
                     81:    div.head dl { margin: 1em 0; }
                     82:    div.head p.copyright, div.head p.alt { font-size: x-small; font-style: oblique; margin: 0; }
                     83: 
                     84:    body > .toc > li { margin-top: 1em; margin-bottom: 1em; }
                     85:    body > .toc.brief > li { margin-top: 0.35em; margin-bottom: 0.35em; }
                     86:    body > .toc > li > * { margin-bottom: 0.5em; }
                     87:    body > .toc > li > * > li > * { margin-bottom: 0.25em; }
                     88:    .toc, .toc li { list-style: none; }
                     89: 
                     90:    .brief { margin-top: 1em; margin-bottom: 1em; line-height: 1.1; }
                     91:    .brief li { margin: 0; padding: 0; }
                     92:    .brief li p { margin: 0; padding: 0; }
                     93: 
                     94:    .category-list { margin-top: -0.75em; margin-bottom: 1em; line-height: 1.5; }
                     95:    .category-list::before { content: '\21D2\A0'; font-size: 1.2em; font-weight: 900; }
                     96:    .category-list li { display: inline; }
                     97:    .category-list li:not(:last-child)::after { content: ', '; }
                     98:    .category-list li > span, .category-list li > a { text-transform: lowercase; }
                     99:    .category-list li * { text-transform: none; } /* don't affect <code> nested in <a> */
                    100: 
                    101:    .XXX { color: #E50000; background: white; border: solid red; padding: 0.5em; margin: 1em 0; }
                    102:    .XXX > :first-child { margin-top: 0; }
                    103:    p .XXX { line-height: 3em; }
                    104:    .annotation { border: solid thin black; background: #0C479D; color: white; position: relative; margin: 8px 0 20px 0; }
                    105:    .annotation:before { position: absolute; left: 0; top: 0; width: 100%; height: 100%; margin: 6px -6px -6px 6px; background: #333333; z-index: -1; content: ''; }
                    106:    .annotation :link, .annotation :visited { color: inherit; }
                    107:    .annotation :link:hover, .annotation :visited:hover { background: transparent; }
                    108:    .annotation span { border: none ! important; }
                    109:    .note { color: green; background: transparent; font-family: sans-serif; }
                    110:    .warning { color: red; background: transparent; }
                    111:    .note, .warning { font-weight: bolder; font-style: italic; }
                    112:    .note em, .warning em, .note i, .warning i { font-style: normal; }
                    113:    p.note, div.note { padding: 0.5em 2em; }
                    114:    span.note { padding: 0 2em; }
                    115:    .note p:first-child, .warning p:first-child { margin-top: 0; }
                    116:    .note p:last-child, .warning p:last-child { margin-bottom: 0; }
                    117:    .warning:before { font-style: normal; }
                    118:    p.note:before { content: 'Note: '; }
                    119:    p.warning:before { content: '\26A0 Warning! '; }
                    120: 
                    121:    .bookkeeping:before { display: block; content: 'Bookkeeping details'; font-weight: bolder; font-style: italic; }
                    122:    .bookkeeping { font-size: 0.8em; margin: 2em 0; }
                    123:    .bookkeeping p { margin: 0.5em 2em; display: list-item; list-style: square; }
                    124:    .bookkeeping dt { margin: 0.5em 2em 0; }
                    125:    .bookkeeping dd { margin: 0 3em 0.5em; }
                    126: 
                    127:    h4 { position: relative; z-index: 3; }
                    128:    h4 + .element, h4 + div + .element { margin-top: -2.5em; padding-top: 2em; }
                    129:    .element {
                    130:      background: #EEEEFF;
                    131:      color: black;
                    132:      margin: 0 0 1em 0.15em;
                    133:      padding: 0 1em 0.25em 0.75em;
                    134:      border-left: solid #9999FF 0.25em;
                    135:      position: relative;
                    136:      z-index: 1;
                    137:    }
                    138:    .element:before {
                    139:      position: absolute;
                    140:      z-index: 2;
                    141:      top: 0;
                    142:      left: -1.15em;
                    143:      height: 2em;
                    144:      width: 0.9em;
                    145:      background: #EEEEFF;
                    146:      content: ' ';
                    147:      border-style: none none solid solid;
                    148:      border-color: #9999FF;
                    149:      border-width: 0.25em;
                    150:    }
                    151: 
                    152:    .example { display: block; color: #222222; background: #FCFCFC; border-left: double; margin-left: 2em; padding-left: 1em; }
                    153:    td > .example:only-child { margin: 0 0 0 0.1em; }
                    154: 
                    155:    ul.domTree, ul.domTree ul { padding: 0 0 0 1em; margin: 0; }
                    156:    ul.domTree li { padding: 0; margin: 0; list-style: none; position: relative; }
                    157:    ul.domTree li li { list-style: none; }
                    158:    ul.domTree li:first-child::before { position: absolute; top: 0; height: 0.6em; left: -0.75em; width: 0.5em; border-style: none none solid solid; content: ''; border-width: 0.1em; }
                    159:    ul.domTree li:not(:last-child)::after { position: absolute; top: 0; bottom: -0.6em; left: -0.75em; width: 0.5em; border-style: none none solid solid; content: ''; border-width: 0.1em; }
                    160:    ul.domTree span { font-style: italic; font-family: serif; }
                    161:    ul.domTree .t1 code { color: purple; font-weight: bold; }
                    162:    ul.domTree .t2 { font-style: normal; font-family: monospace; }
                    163:    ul.domTree .t2 .name { color: black; font-weight: bold; }
                    164:    ul.domTree .t2 .value { color: blue; font-weight: normal; }
                    165:    ul.domTree .t3 code, .domTree .t4 code, .domTree .t5 code { color: gray; }
                    166:    ul.domTree .t7 code, .domTree .t8 code { color: green; }
                    167:    ul.domTree .t10 code { color: teal; }
                    168: 
                    169:    body.dfnEnabled dfn { cursor: pointer; }
                    170:    .dfnPanel {
                    171:      display: inline;
                    172:      position: absolute;
                    173:      z-index: 10;
                    174:      height: auto;
                    175:      width: auto;
                    176:      padding: 0.5em 0.75em;
                    177:      font: small sans-serif, Droid Sans Fallback;
                    178:      background: #DDDDDD;
                    179:      color: black;
                    180:      border: outset 0.2em;
                    181:    }
                    182:    .dfnPanel * { margin: 0; padding: 0; font: inherit; text-indent: 0; }
                    183:    .dfnPanel :link, .dfnPanel :visited { color: black; }
                    184:    .dfnPanel p { font-weight: bolder; }
                    185:    .dfnPanel * + p { margin-top: 0.25em; }
                    186:    .dfnPanel li { list-style-position: inside; }
                    187: 
                    188:    #configUI { position: absolute; z-index: 20; top: 10em; right: 1em; width: 11em; font-size: small; }
                    189:    #configUI p { margin: 0.5em 0; padding: 0.3em; background: #EEEEEE; color: black; border: inset thin; }
                    190:    #configUI p label { display: block; }
                    191:    #configUI #updateUI, #configUI .loginUI { text-align: center; }
                    192:    #configUI input[type=button] { display: block; margin: auto; }
                    193: 
                    194:    fieldset { margin: 1em; padding: 0.5em 1em; }
                    195:    fieldset > legend + * { margin-top: 0; }
                    196:    fieldset > :last-child { margin-bottom: 0; }
                    197:    fieldset p { margin: 0.5em 0; }
                    198: 
1.159     sruby     199:   </style><link href="http://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet" type="text/css"><style type="text/css">
1.1       mike      200: 
                    201:    .applies thead th > * { display: block; }
                    202:    .applies thead code { display: block; }
                    203:    .applies tbody th { whitespace: nowrap; }
                    204:    .applies td { text-align: center; }
                    205:    .applies .yes { background: yellow; }
                    206: 
                    207:    .matrix, .matrix td { border: hidden; text-align: right; }
                    208:    .matrix { margin-left: 2em; }
                    209: 
                    210:    .dice-example { border-collapse: collapse; border-style: hidden solid solid hidden; border-width: thin; margin-left: 3em; }
                    211:    .dice-example caption { width: 30em; font-size: smaller; font-style: italic; padding: 0.75em 0; text-align: left; }
                    212:    .dice-example td, .dice-example th { border: solid thin; width: 1.35em; height: 1.05em; text-align: center; padding: 0; }
                    213: 
                    214:    td.eg { border-width: thin; text-align: center; }
                    215: 
                    216:    #table-example-1 { border: solid thin; border-collapse: collapse; margin-left: 3em; }
                    217:    #table-example-1 * { font-family: "Essays1743", serif; line-height: 1.01em; }
                    218:    #table-example-1 caption { padding-bottom: 0.5em; }
                    219:    #table-example-1 thead, #table-example-1 tbody { border: none; }
                    220:    #table-example-1 th, #table-example-1 td { border: solid thin; }
                    221:    #table-example-1 th { font-weight: normal; }
                    222:    #table-example-1 td { border-style: none solid; vertical-align: top; }
                    223:    #table-example-1 th { padding: 0.5em; vertical-align: middle; text-align: center; }
                    224:    #table-example-1 tbody tr:first-child td { padding-top: 0.5em; }
                    225:    #table-example-1 tbody tr:last-child td { padding-bottom: 1.5em; }
                    226:    #table-example-1 tbody td:first-child { padding-left: 2.5em; padding-right: 0; width: 9em; }
                    227:    #table-example-1 tbody td:first-child::after { content: leader(". "); }
                    228:    #table-example-1 tbody td { padding-left: 2em; padding-right: 2em; }
                    229:    #table-example-1 tbody td:first-child + td { width: 10em; }
                    230:    #table-example-1 tbody td:first-child + td ~ td { width: 2.5em; }
                    231:    #table-example-1 tbody td:first-child + td + td + td ~ td { width: 1.25em; }
                    232: 
                    233:    .apple-table-examples { border: none; border-collapse: separate; border-spacing: 1.5em 0em; width: 40em; margin-left: 3em; }
                    234:    .apple-table-examples * { font-family: "Times", serif; }
                    235:    .apple-table-examples td, .apple-table-examples th { border: none; white-space: nowrap; padding-top: 0; padding-bottom: 0; }
                    236:    .apple-table-examples tbody th:first-child { border-left: none; width: 100%; }
                    237:    .apple-table-examples thead th:first-child ~ th { font-size: smaller; font-weight: bolder; border-bottom: solid 2px; text-align: center; }
                    238:    .apple-table-examples tbody th::after, .apple-table-examples tfoot th::after { content: leader(". ") }
                    239:    .apple-table-examples tbody th, .apple-table-examples tfoot th { font: inherit; text-align: left; }
                    240:    .apple-table-examples td { text-align: right; vertical-align: top; }
                    241:    .apple-table-examples.e1 tbody tr:last-child td { border-bottom: solid 1px; }
                    242:    .apple-table-examples.e1 tbody + tbody tr:last-child td { border-bottom: double 3px; }
                    243:    .apple-table-examples.e2 th[scope=row] { padding-left: 1em; }
                    244:    .apple-table-examples sup { line-height: 0; }
                    245: 
                    246:    .details-example img { vertical-align: top; }
                    247: 
                    248:    #base64-table {
                    249:      white-space: nowrap;
                    250:      font-size: 0.6em;
                    251:      column-width: 6em;
                    252:      column-count: 5;
                    253:      column-gap: 1em;
                    254:      -moz-column-width: 6em;
                    255:      -moz-column-count: 5;
                    256:      -moz-column-gap: 1em;
                    257:      -webkit-column-width: 6em;
                    258:      -webkit-column-count: 5;
                    259:      -webkit-column-gap: 1em;
                    260:    }
                    261:    #base64-table thead { display: none; }
                    262:    #base64-table * { border: none; }
                    263:    #base64-table tbody td:first-child:after { content: ':'; }
                    264:    #base64-table tbody td:last-child { text-align: right; }
                    265: 
                    266:    #named-character-references-table {
                    267:      white-space: nowrap;
                    268:      font-size: 0.6em;
                    269:      column-width: 30em;
                    270:      column-gap: 1em;
                    271:      -moz-column-width: 30em;
                    272:      -moz-column-gap: 1em;
                    273:      -webkit-column-width: 30em;
                    274:      -webkit-column-gap: 1em;
                    275:    }
                    276:    #named-character-references-table > table > tbody > tr > td:first-child + td,
                    277:    #named-character-references-table > table > tbody > tr > td:last-child { text-align: center; }
                    278:    #named-character-references-table > table > tbody > tr > td:last-child:hover > span { position: absolute; top: auto; left: auto; margin-left: 0.5em; line-height: 1.2; font-size: 5em; border: outset; padding: 0.25em 0.5em; background: white; width: 1.25em; height: auto; text-align: center; }
                    279:    #named-character-references-table > table > tbody > tr#entity-CounterClockwiseContourIntegral > td:first-child { font-size: 0.5em; }
                    280: 
                    281:    .glyph.control { color: red; }
                    282: 
                    283:    @font-face {
                    284:      font-family: 'Essays1743';
1.178     sruby     285:      src: url('../fonts/Essays1743.ttf');
1.1       mike      286:    }
                    287:    @font-face {
                    288:      font-family: 'Essays1743';
                    289:      font-weight: bold;
1.178     sruby     290:      src: url('../fonts/Essays1743-Bold.ttf');
1.1       mike      291:    }
                    292:    @font-face {
                    293:      font-family: 'Essays1743';
                    294:      font-style: italic;
1.178     sruby     295:      src: url('../fonts/Essays1743-Italic.ttf');
1.1       mike      296:    }
                    297:    @font-face {
                    298:      font-family: 'Essays1743';
                    299:      font-style: italic;
                    300:      font-weight: bold;
1.178     sruby     301:      src: url('../fonts/Essays1743-BoldItalic.ttf');
1.1       mike      302:    }
                    303: 
1.159     sruby     304:   </style><link href="data:text/css," id="complete" rel="stylesheet" title="Complete specification"><link href="data:text/css,.impl%20%7B%20display:%20none;%20%7D%0Ahtml%20%7B%20border:%20solid%20yellow;%20%7D%20.domintro:before%20%7B%20display:%20none;%20%7D" id="author" rel="alternate stylesheet" title="Author documentation only"><link href="data:text/css,.impl%20%7B%20background:%20%23FFEEEE;%20%7D%20.domintro:before%20%7B%20background:%20%23FFEEEE;%20%7D" id="highlight" rel="alternate stylesheet" title="Highlight implementation requirements"><script>
1.1       mike      305:    function getCookie(name) {
                    306:      var params = location.search.substr(1).split("&");
                    307:      for (var index = 0; index < params.length; index++) {
                    308:        if (params[index] == name)
                    309:          return "1";
                    310:        var data = params[index].split("=");
                    311:        if (data[0] == name)
                    312:          return unescape(data[1]);
                    313:      }
                    314:      var cookies = document.cookie.split("; ");
                    315:      for (var index = 0; index < cookies.length; index++) {
                    316:        var data = cookies[index].split("=");
                    317:        if (data[0] == name)
                    318:          return unescape(data[1]);
                    319:      }
                    320:      return null;
                    321:    }
1.198     sruby     322:   </script><link href="form-submission.html" title="4.10.19.6 Form submission" rel="prev">
                    323:   <link href="spec.html#contents" title="Table of contents" rel="contents">
1.22      mike      324:   </head><body onload="fixBrokenLink();" class="split chapter"><div class="head" id="head">
1.1       mike      325:    <p><a href="http://www.w3.org/"><img alt="W3C" height="48" src="http://www.w3.org/Icons/w3c_home" width="72"></a></p>
                    326: 
                    327:    <h1>HTML5</h1>
1.198     sruby     328:    <h2 class="no-num no-toc" id="a-vocabulary-and-associated-apis-for-html-and-xhtml">A vocabulary and associated APIs for HTML and XHTML</h2>
1.199     sruby     329:    <h2 class="no-num no-toc" id="editor's-draft-date-1-january-1970">Editor's Draft 11 October 2012</h2>
1.85      mike      330:    </div>
1.198     sruby     331:    <div class="prev_next">
1.159     sruby     332:    <a href="form-submission.html">&#8592; 4.10.19.6 Form submission</a> &#8211;
1.198     sruby     333:    <a href="spec.html#contents">Table of contents</a>
1.190     sruby     334:   <ol class="toc"><li><ol><li><ol><li><a href="textFieldSelection.html#textFieldSelection"><span class="secno">4.10.20 </span>APIs for the text field selections</a></li><li><a href="textFieldSelection.html#constraints"><span class="secno">4.10.21 </span>Constraints</a>
                    335:       <ol><li><a href="textFieldSelection.html#definitions"><span class="secno">4.10.21.1 </span>Definitions</a></li><li><a href="textFieldSelection.html#constraint-validation"><span class="secno">4.10.21.2 </span>Constraint validation</a></li><li><a href="textFieldSelection.html#the-constraint-validation-api"><span class="secno">4.10.21.3 </span>The constraint validation API</a></li><li><a href="textFieldSelection.html#security-forms"><span class="secno">4.10.21.4 </span>Security</a></li></ol></li><li><a href="textFieldSelection.html#form-submission-0"><span class="secno">4.10.22 </span>Form submission</a>
                    336:       <ol><li><a href="textFieldSelection.html#introduction-2"><span class="secno">4.10.22.1 </span>Introduction</a></li><li><a href="textFieldSelection.html#implicit-submission"><span class="secno">4.10.22.2 </span>Implicit submission</a></li><li><a href="textFieldSelection.html#form-submission-algorithm"><span class="secno">4.10.22.3 </span>Form submission algorithm</a></li><li><a href="textFieldSelection.html#constructing-form-data-set"><span class="secno">4.10.22.4 </span>Constructing the form data set</a></li><li><a href="textFieldSelection.html#url-encoded-form-data"><span class="secno">4.10.22.5 </span>URL-encoded form data</a></li><li><a href="textFieldSelection.html#multipart-form-data"><span class="secno">4.10.22.6 </span>Multipart form data</a></li><li><a href="textFieldSelection.html#plain-text-form-data"><span class="secno">4.10.22.7 </span>Plain text form data</a></li></ol></li><li><a href="textFieldSelection.html#resetting-a-form"><span class="secno">4.10.23 </span>Resetting a form</a></li></ol></li><li><a href="textFieldSelection.html#interactive-elements"><span class="secno">4.11 </span>Interactive elements</a>
                    337:     <ol><li><a href="textFieldSelection.html#the-details-element"><span class="secno">4.11.1 </span>The <code>details</code> element</a></li><li><a href="textFieldSelection.html#the-summary-element"><span class="secno">4.11.2 </span>The <code>summary</code> element</a></li><li><a href="textFieldSelection.html#the-command-element"><span class="secno">4.11.3 </span>The <code>command</code> element</a></li><li><a href="textFieldSelection.html#the-menu-element"><span class="secno">4.11.4 </span>The <code>menu</code> element</a>
                    338:       <ol><li><a href="textFieldSelection.html#menus-intro"><span class="secno">4.11.4.1 </span>Introduction</a></li><li><a href="textFieldSelection.html#building-menus-and-toolbars"><span class="secno">4.11.4.2 </span>Building menus and toolbars</a></li><li><a href="textFieldSelection.html#context-menus"><span class="secno">4.11.4.3 </span>Context menus</a></li><li><a href="textFieldSelection.html#toolbars"><span class="secno">4.11.4.4 </span>Toolbars</a></li></ol></li><li><a href="textFieldSelection.html#commands"><span class="secno">4.11.5 </span>Commands</a>
                    339:       <ol><li><a href="textFieldSelection.html#using-the-a-element-to-define-a-command"><span class="secno">4.11.5.1 </span>Using the <code>a</code> element to define a command</a></li><li><a href="textFieldSelection.html#using-the-button-element-to-define-a-command"><span class="secno">4.11.5.2 </span>Using the <code>button</code> element to define a command</a></li><li><a href="textFieldSelection.html#using-the-input-element-to-define-a-command"><span class="secno">4.11.5.3 </span>Using the <code>input</code> element to define a command</a></li><li><a href="textFieldSelection.html#using-the-option-element-to-define-a-command"><span class="secno">4.11.5.4 </span>Using the <code>option</code> element to define a command</a></li><li><a href="textFieldSelection.html#using-the-command-element-to-define-a-command"><span class="secno">4.11.5.5 </span>Using the <code>command</code> element to define
                    340:   a command</a></li><li><a href="textFieldSelection.html#using-the-command-attribute-on-command-elements-to-define-a-command-indirectly"><span class="secno">4.11.5.6 </span>Using the <code title="attr-command-command">command</code> attribute on <code>command</code> elements to define a command indirectly</a></li><li><a href="textFieldSelection.html#using-the-accesskey-attribute-on-a-label-element-to-define-a-command"><span class="secno">4.11.5.7 </span>Using the <code title="attr-accesskey">accesskey</code> attribute on a <code>label</code> element to define a command</a></li><li><a href="textFieldSelection.html#using-the-accesskey-attribute-on-a-legend-element-to-define-a-command"><span class="secno">4.11.5.8 </span>Using the <code title="attr-accesskey">accesskey</code> attribute on a <code>legend</code> element to define a command</a></li><li><a href="textFieldSelection.html#using-the-accesskey-attribute-to-define-a-command-on-other-elements"><span class="secno">4.11.5.9 </span>Using the <code title="attr-accesskey">accesskey</code> attribute to define a command on other elements</a></li></ol></li><li><a href="textFieldSelection.html#the-dialog-element"><span class="secno">4.11.6 </span>The <code>dialog</code> element</a>
                    341:       <ol><li><a href="textFieldSelection.html#anchor-points"><span class="secno">4.11.6.1 </span>Anchor points</a></li></ol></li></ol></li><li><a href="textFieldSelection.html#links"><span class="secno">4.12 </span>Links</a>
1.191     sruby     342:     <ol><li><a href="textFieldSelection.html#introduction-3"><span class="secno">4.12.1 </span>Introduction</a></li><li><a href="textFieldSelection.html#links-created-by-a-and-area-elements"><span class="secno">4.12.2 </span>Links created by <code>a</code> and <code>area</code> elements</a></li><li><a href="textFieldSelection.html#following-hyperlinks"><span class="secno">4.12.3 </span>Following hyperlinks</a></li><li><a href="textFieldSelection.html#downloading-resources"><span class="secno">4.12.4 </span>Downloading resources</a>
                    343:       <ol><li><a href="textFieldSelection.html#hyperlink-auditing"><span class="secno">4.12.4.1 </span>Hyperlink auditing</a></li></ol></li><li><a href="textFieldSelection.html#linkTypes"><span class="secno">4.12.5 </span>Link types</a>
                    344:       <ol><li><a href="textFieldSelection.html#rel-alternate"><span class="secno">4.12.5.1 </span>Link type "<code>alternate</code>"</a></li><li><a href="textFieldSelection.html#link-type-author"><span class="secno">4.12.5.2 </span>Link type "<code>author</code>"</a></li><li><a href="textFieldSelection.html#link-type-bookmark"><span class="secno">4.12.5.3 </span>Link type "<code>bookmark</code>"</a></li><li><a href="textFieldSelection.html#link-type-help"><span class="secno">4.12.5.4 </span>Link type "<code>help</code>"</a></li><li><a href="textFieldSelection.html#rel-icon"><span class="secno">4.12.5.5 </span>Link type "<code>icon</code>"</a></li><li><a href="textFieldSelection.html#link-type-license"><span class="secno">4.12.5.6 </span>Link type "<code>license</code>"</a></li><li><a href="textFieldSelection.html#link-type-nofollow"><span class="secno">4.12.5.7 </span>Link type "<code>nofollow</code>"</a></li><li><a href="textFieldSelection.html#link-type-noreferrer"><span class="secno">4.12.5.8 </span>Link type "<code>noreferrer</code>"</a></li><li><a href="textFieldSelection.html#link-type-prefetch"><span class="secno">4.12.5.9 </span>Link type "<code>prefetch</code>"</a></li><li><a href="textFieldSelection.html#link-type-search"><span class="secno">4.12.5.10 </span>Link type "<code>search</code>"</a></li><li><a href="textFieldSelection.html#link-type-stylesheet"><span class="secno">4.12.5.11 </span>Link type "<code>stylesheet</code>"</a></li><li><a href="textFieldSelection.html#link-type-tag"><span class="secno">4.12.5.12 </span>Link type "<code>tag</code>"</a></li><li><a href="textFieldSelection.html#sequential-link-types"><span class="secno">4.12.5.13 </span>Sequential link types</a>
                    345:         <ol><li><a href="textFieldSelection.html#link-type-next"><span class="secno">4.12.5.13.1 </span>Link type "<code>next</code>"</a></li><li><a href="textFieldSelection.html#link-type-prev"><span class="secno">4.12.5.13.2 </span>Link type "<code>prev</code>"</a></li></ol></li><li><a href="textFieldSelection.html#other-link-types"><span class="secno">4.12.5.14 </span>Other link types</a></li></ol></li></ol></li><li><a href="textFieldSelection.html#common-idioms"><span class="secno">4.13 </span>Common idioms without dedicated elements</a>
1.190     sruby     346:     <ol><li><a href="textFieldSelection.html#the-main-part-of-the-content"><span class="secno">4.13.1 </span>The main part of the content</a></li><li><a href="textFieldSelection.html#rel-up"><span class="secno">4.13.2 </span>Bread crumb navigation</a></li><li><a href="textFieldSelection.html#tag-clouds"><span class="secno">4.13.3 </span>Tag clouds</a></li><li><a href="textFieldSelection.html#conversations"><span class="secno">4.13.4 </span>Conversations</a></li><li><a href="textFieldSelection.html#footnotes"><span class="secno">4.13.5 </span>Footnotes</a></li></ol></li><li><a href="textFieldSelection.html#selectors"><span class="secno">4.14 </span>Matching HTML elements using selectors</a>
                    347:     <ol><li><a href="textFieldSelection.html#case-sensitivity"><span class="secno">4.14.1 </span>Case-sensitivity</a></li><li><a href="textFieldSelection.html#pseudo-classes"><span class="secno">4.14.2 </span>Pseudo-classes</a></li></ol></li></ol></li><li><a href="textFieldSelection.html#browsers"><span class="secno">5 </span>Loading Web pages</a>
                    348:   <ol><li><a href="textFieldSelection.html#windows"><span class="secno">5.1 </span>Browsing contexts</a>
                    349:     <ol><li><a href="textFieldSelection.html#nested-browsing-contexts"><span class="secno">5.1.1 </span>Nested browsing contexts</a>
                    350:       <ol><li><a href="textFieldSelection.html#navigating-nested-browsing-contexts-in-the-dom"><span class="secno">5.1.1.1 </span>Navigating nested browsing contexts in the DOM</a></li></ol></li><li><a href="textFieldSelection.html#auxiliary-browsing-contexts"><span class="secno">5.1.2 </span>Auxiliary browsing contexts</a>
                    351:       <ol><li><a href="textFieldSelection.html#navigating-auxiliary-browsing-contexts-in-the-dom"><span class="secno">5.1.2.1 </span>Navigating auxiliary browsing contexts in the DOM</a></li></ol></li><li><a href="textFieldSelection.html#secondary-browsing-contexts"><span class="secno">5.1.3 </span>Secondary browsing contexts</a></li><li><a href="textFieldSelection.html#security-nav"><span class="secno">5.1.4 </span>Security</a></li><li><a href="textFieldSelection.html#groupings-of-browsing-contexts"><span class="secno">5.1.5 </span>Groupings of browsing contexts</a></li><li><a href="textFieldSelection.html#browsing-context-names"><span class="secno">5.1.6 </span>Browsing context names</a></li></ol></li><li><a href="textFieldSelection.html#the-window-object"><span class="secno">5.2 </span>The <code>Window</code> object</a>
                    352:     <ol><li><a href="textFieldSelection.html#security-window"><span class="secno">5.2.1 </span>Security</a></li><li><a href="textFieldSelection.html#apis-for-creating-and-navigating-browsing-contexts-by-name"><span class="secno">5.2.2 </span>APIs for creating and navigating browsing contexts by name</a></li><li><a href="textFieldSelection.html#accessing-other-browsing-contexts"><span class="secno">5.2.3 </span>Accessing other browsing contexts</a></li><li><a href="textFieldSelection.html#named-access-on-the-window-object"><span class="secno">5.2.4 </span>Named access on the <code>Window</code> object</a></li><li><a href="textFieldSelection.html#garbage-collection-and-browsing-contexts"><span class="secno">5.2.5 </span>Garbage collection and browsing contexts</a></li><li><a href="textFieldSelection.html#browser-interface-elements"><span class="secno">5.2.6 </span>Browser interface elements</a></li><li><a href="textFieldSelection.html#the-windowproxy-object"><span class="secno">5.2.7 </span>The <code>WindowProxy</code> object</a></li></ol></li><li><a href="textFieldSelection.html#origin"><span class="secno">5.3 </span>Origin</a>
                    353:     <ol><li><a href="textFieldSelection.html#relaxing-the-same-origin-restriction"><span class="secno">5.3.1 </span>Relaxing the same-origin restriction</a></li></ol></li><li><a href="textFieldSelection.html#sandboxing"><span class="secno">5.4 </span>Sandboxing</a></li><li><a href="textFieldSelection.html#history"><span class="secno">5.5 </span>Session history and navigation</a>
                    354:     <ol><li><a href="textFieldSelection.html#the-session-history-of-browsing-contexts"><span class="secno">5.5.1 </span>The session history of browsing contexts</a></li><li><a href="textFieldSelection.html#the-history-interface"><span class="secno">5.5.2 </span>The <code>History</code> interface</a></li><li><a href="textFieldSelection.html#the-location-interface"><span class="secno">5.5.3 </span>The <code>Location</code> interface</a>
                    355:       <ol><li><a href="textFieldSelection.html#security-location"><span class="secno">5.5.3.1 </span>Security</a></li></ol></li><li><a href="textFieldSelection.html#history-notes"><span class="secno">5.5.4 </span>Implementation notes for session history</a></li></ol></li><li><a href="textFieldSelection.html#browsing-the-web"><span class="secno">5.6 </span>Browsing the Web</a>
                    356:     <ol><li><a href="textFieldSelection.html#navigating-across-documents"><span class="secno">5.6.1 </span>Navigating across documents</a></li><li><a href="textFieldSelection.html#read-html"><span class="secno">5.6.2 </span>Page load processing model for HTML files</a></li><li><a href="textFieldSelection.html#read-xml"><span class="secno">5.6.3 </span>Page load processing model for XML files</a></li><li><a href="textFieldSelection.html#read-text"><span class="secno">5.6.4 </span>Page load processing model for text files</a></li><li><a href="textFieldSelection.html#read-multipart-x-mixed-replace"><span class="secno">5.6.5 </span>Page load processing model for <code>multipart/x-mixed-replace</code> resources</a></li><li><a href="textFieldSelection.html#read-media"><span class="secno">5.6.6 </span>Page load processing model for media</a></li><li><a href="textFieldSelection.html#read-plugin"><span class="secno">5.6.7 </span>Page load processing model for content that uses plugins</a></li><li><a href="textFieldSelection.html#read-ua-inline"><span class="secno">5.6.8 </span>Page load processing model for inline content that doesn't have a DOM</a></li><li><a href="textFieldSelection.html#scroll-to-fragid"><span class="secno">5.6.9 </span>Navigating to a fragment identifier</a></li><li><a href="textFieldSelection.html#history-traversal"><span class="secno">5.6.10 </span>History traversal</a>
                    357:       <ol><li><a href="textFieldSelection.html#event-definitions-0"><span class="secno">5.6.10.1 </span>Event definitions</a></li></ol></li><li><a href="textFieldSelection.html#unloading-documents"><span class="secno">5.6.11 </span>Unloading documents</a>
                    358:       <ol><li><a href="textFieldSelection.html#event-definition"><span class="secno">5.6.11.1 </span>Event definition</a></li></ol></li><li><a href="textFieldSelection.html#aborting-a-document-load"><span class="secno">5.6.12 </span>Aborting a document load</a></li></ol></li><li><a href="textFieldSelection.html#offline"><span class="secno">5.7 </span>Offline Web applications</a>
                    359:     <ol><li><a href="textFieldSelection.html#introduction-4"><span class="secno">5.7.1 </span>Introduction</a>
                    360:       <ol><li><a href="textFieldSelection.html#appcacheevents"><span class="secno">5.7.1.1 </span>Event summary</a></li></ol></li><li><a href="textFieldSelection.html#appcache"><span class="secno">5.7.2 </span>Application caches</a></li><li><a href="textFieldSelection.html#manifests"><span class="secno">5.7.3 </span>The cache manifest syntax</a>
                    361:       <ol><li><a href="textFieldSelection.html#some-sample-manifests"><span class="secno">5.7.3.1 </span>Some sample manifests</a></li><li><a href="textFieldSelection.html#writing-cache-manifests"><span class="secno">5.7.3.2 </span>Writing cache manifests</a></li><li><a href="textFieldSelection.html#parsing-cache-manifests"><span class="secno">5.7.3.3 </span>Parsing cache manifests</a></li></ol></li><li><a href="textFieldSelection.html#downloading-or-updating-an-application-cache"><span class="secno">5.7.4 </span>Downloading or updating an application cache</a></li><li><a href="textFieldSelection.html#the-application-cache-selection-algorithm"><span class="secno">5.7.5 </span>The application cache selection algorithm</a></li><li><a href="textFieldSelection.html#changesToNetworkingModel"><span class="secno">5.7.6 </span>Changes to the networking model</a></li><li><a href="textFieldSelection.html#expiring-application-caches"><span class="secno">5.7.7 </span>Expiring application caches</a></li><li><a href="textFieldSelection.html#disk-space"><span class="secno">5.7.8 </span>Disk space</a></li><li><a href="textFieldSelection.html#application-cache-api"><span class="secno">5.7.9 </span>Application cache API</a></li><li><a href="textFieldSelection.html#browser-state"><span class="secno">5.7.10 </span>Browser state</a></li></ol></li></ol></li><li><a href="textFieldSelection.html#webappapis"><span class="secno">6 </span>Web application APIs</a>
                    362:   <ol><li><a href="textFieldSelection.html#scripting"><span class="secno">6.1 </span>Scripting</a>
1.191     sruby     363:     <ol><li><a href="textFieldSelection.html#introduction-5"><span class="secno">6.1.1 </span>Introduction</a></li><li><a href="textFieldSelection.html#enabling-and-disabling-scripting"><span class="secno">6.1.2 </span>Enabling and disabling scripting</a></li><li><a href="textFieldSelection.html#processing-model-2"><span class="secno">6.1.3 </span>Processing model</a>
1.190     sruby     364:       <ol><li><a href="textFieldSelection.html#definitions-0"><span class="secno">6.1.3.1 </span>Definitions</a></li><li><a href="textFieldSelection.html#calling-scripts"><span class="secno">6.1.3.2 </span>Calling scripts</a></li><li><a href="textFieldSelection.html#creating-scripts"><span class="secno">6.1.3.3 </span>Creating scripts</a></li><li><a href="textFieldSelection.html#killing-scripts"><span class="secno">6.1.3.4 </span>Killing scripts</a></li><li><a href="textFieldSelection.html#runtime-script-errors"><span class="secno">6.1.3.5 </span>Runtime script errors</a>
                    365:         <ol><li><a href="textFieldSelection.html#runtime-script-errors-in-documents"><span class="secno">6.1.3.5.1 </span>Runtime script errors in documents</a></li></ol></li></ol></li><li><a href="textFieldSelection.html#event-loops"><span class="secno">6.1.4 </span>Event loops</a>
1.191     sruby     366:       <ol><li><a href="textFieldSelection.html#definitions-1"><span class="secno">6.1.4.1 </span>Definitions</a></li><li><a href="textFieldSelection.html#processing-model-3"><span class="secno">6.1.4.2 </span>Processing model</a></li><li><a href="textFieldSelection.html#generic-task-sources"><span class="secno">6.1.4.3 </span>Generic task sources</a></li></ol></li><li><a href="textFieldSelection.html#javascript-protocol"><span class="secno">6.1.5 </span>The <code title="">javascript:</code> URL scheme</a></li><li><a href="textFieldSelection.html#events"><span class="secno">6.1.6 </span>Events</a>
1.190     sruby     367:       <ol><li><a href="textFieldSelection.html#event-handler-attributes"><span class="secno">6.1.6.1 </span>Event handlers</a></li><li><a href="textFieldSelection.html#event-handlers-on-elements,-document-objects,-and-window-objects"><span class="secno">6.1.6.2 </span>Event handlers on elements, <code>Document</code> objects, and <code>Window</code> objects</a></li><li><a href="textFieldSelection.html#event-firing"><span class="secno">6.1.6.3 </span>Event firing</a></li><li><a href="textFieldSelection.html#events-and-the-window-object"><span class="secno">6.1.6.4 </span>Events and the <code>Window</code> object</a></li></ol></li></ol></li><li><a href="textFieldSelection.html#atob"><span class="secno">6.2 </span>Base64 utility methods</a></li><li><a href="textFieldSelection.html#timers"><span class="secno">6.3 </span>Timers</a></li><li><a href="textFieldSelection.html#user-prompts"><span class="secno">6.4 </span>User prompts</a>
                    368:     <ol><li><a href="textFieldSelection.html#simple-dialogs"><span class="secno">6.4.1 </span>Simple dialogs</a></li><li><a href="textFieldSelection.html#printing"><span class="secno">6.4.2 </span>Printing</a></li><li><a href="textFieldSelection.html#dialogs-implemented-using-separate-documents"><span class="secno">6.4.3 </span>Dialogs implemented using separate documents</a></li></ol></li><li><a href="textFieldSelection.html#system-state-and-capabilities"><span class="secno">6.5 </span>System state and capabilities</a>
                    369:     <ol><li><a href="textFieldSelection.html#the-navigator-object"><span class="secno">6.5.1 </span>The <code>Navigator</code> object</a>
                    370:       <ol><li><a href="textFieldSelection.html#client-identification"><span class="secno">6.5.1.1 </span>Client identification</a></li><li><a href="textFieldSelection.html#custom-handlers"><span class="secno">6.5.1.2 </span>Custom scheme and content handlers</a></li><li><a href="textFieldSelection.html#security-and-privacy"><span class="secno">6.5.1.3 </span>Security and privacy</a></li><li><a href="textFieldSelection.html#sample-handler-impl"><span class="secno">6.5.1.4 </span>Sample user interface</a></li><li><a href="textFieldSelection.html#manually-releasing-the-storage-mutex"><span class="secno">6.5.1.5 </span>Manually releasing the storage mutex</a></li></ol></li><li><a href="textFieldSelection.html#the-external-interface"><span class="secno">6.5.2 </span>The <code>External</code> interface</a></li></ol></li></ol></li><li><a href="textFieldSelection.html#editing"><span class="secno">7 </span>User interaction</a>
                    371:   <ol><li><a href="textFieldSelection.html#the-hidden-attribute"><span class="secno">7.1 </span>The <code>hidden</code> attribute</a></li><li><a href="textFieldSelection.html#inert-subtrees"><span class="secno">7.2 </span>Inert subtrees</a></li><li><a href="textFieldSelection.html#activation"><span class="secno">7.3 </span>Activation</a></li><li><a href="textFieldSelection.html#focus"><span class="secno">7.4 </span>Focus</a>
                    372:     <ol><li><a href="textFieldSelection.html#sequential-focus-navigation-and-the-tabindex-attribute"><span class="secno">7.4.1 </span>Sequential focus navigation and the <code title="attr-tabindex">tabindex</code> attribute</a></li><li><a href="textFieldSelection.html#focus-management"><span class="secno">7.4.2 </span>Focus management</a></li><li><a href="textFieldSelection.html#document-level-focus-apis"><span class="secno">7.4.3 </span>Document-level focus APIs</a></li><li><a href="textFieldSelection.html#element-level-focus-apis"><span class="secno">7.4.4 </span>Element-level focus APIs</a></li></ol></li><li><a href="textFieldSelection.html#assigning-keyboard-shortcuts"><span class="secno">7.5 </span>Assigning keyboard shortcuts</a>
1.191     sruby     373:     <ol><li><a href="textFieldSelection.html#introduction-6"><span class="secno">7.5.1 </span>Introduction</a></li><li><a href="textFieldSelection.html#the-accesskey-attribute"><span class="secno">7.5.2 </span>The <code>accesskey</code> attribute</a></li><li><a href="textFieldSelection.html#processing-model-4"><span class="secno">7.5.3 </span>Processing model</a></li></ol></li><li><a href="textFieldSelection.html#editing-0"><span class="secno">7.6 </span>Editing</a>
1.190     sruby     374:     <ol><li><a href="textFieldSelection.html#contenteditable"><span class="secno">7.6.1 </span>Making document regions editable: The <code title="attr-contenteditable">contenteditable</code> content
                    375:   attribute</a></li><li><a href="textFieldSelection.html#making-entire-documents-editable:-the-designmode-idl-attribute"><span class="secno">7.6.2 </span>Making entire documents editable: The <code title="dom-document-designMode">designMode</code> IDL attribute</a></li><li><a href="textFieldSelection.html#best-practices-for-in-page-editors"><span class="secno">7.6.3 </span>Best practices for in-page editors</a></li><li><a href="textFieldSelection.html#editing-apis"><span class="secno">7.6.4 </span>Editing APIs</a></li><li><a href="textFieldSelection.html#spelling-and-grammar-checking"><span class="secno">7.6.5 </span>Spelling and grammar checking</a></li></ol></li><li><a href="textFieldSelection.html#dnd"><span class="secno">7.7 </span>Drag and drop</a>
                    376:     <ol><li><a href="textFieldSelection.html#introduction-7"><span class="secno">7.7.1 </span>Introduction</a></li><li><a href="textFieldSelection.html#the-drag-data-store"><span class="secno">7.7.2 </span>The drag data store</a></li><li><a href="textFieldSelection.html#the-datatransfer-interface"><span class="secno">7.7.3 </span>The <code>DataTransfer</code> interface</a>
                    377:       <ol><li><a href="textFieldSelection.html#the-datatransferitemlist-interface"><span class="secno">7.7.3.1 </span>The <code>DataTransferItemList</code> interface</a></li><li><a href="textFieldSelection.html#the-datatransferitem-interface"><span class="secno">7.7.3.2 </span>The <code>DataTransferItem</code> interface</a></li></ol></li><li><a href="textFieldSelection.html#the-dragevent-interface"><span class="secno">7.7.4 </span>The <code>DragEvent</code> interface</a></li><li><a href="textFieldSelection.html#drag-and-drop-processing-model"><span class="secno">7.7.5 </span>Drag-and-drop processing model</a></li><li><a href="textFieldSelection.html#dndevents"><span class="secno">7.7.6 </span>Events summary</a></li><li><a href="textFieldSelection.html#the-draggable-attribute"><span class="secno">7.7.7 </span>The <code>draggable</code> attribute</a></li><li><a href="textFieldSelection.html#the-dropzone-attribute"><span class="secno">7.7.8 </span>The <code>dropzone</code> attribute</a></li><li><a href="textFieldSelection.html#security-risks-in-the-drag-and-drop-model"><span class="secno">7.7.9 </span>Security risks in the drag-and-drop model</a></li></ol></li></ol></li><li><a href="textFieldSelection.html#syntax"><span class="secno">8 </span>The HTML syntax</a>
                    378:   <ol><li><a href="textFieldSelection.html#writing"><span class="secno">8.1 </span>Writing HTML documents</a>
                    379:     <ol><li><a href="textFieldSelection.html#the-doctype"><span class="secno">8.1.1 </span>The DOCTYPE</a></li><li><a href="textFieldSelection.html#elements-0"><span class="secno">8.1.2 </span>Elements</a>
                    380:       <ol><li><a href="textFieldSelection.html#start-tags"><span class="secno">8.1.2.1 </span>Start tags</a></li><li><a href="textFieldSelection.html#end-tags"><span class="secno">8.1.2.2 </span>End tags</a></li><li><a href="textFieldSelection.html#attributes-0"><span class="secno">8.1.2.3 </span>Attributes</a></li><li><a href="textFieldSelection.html#optional-tags"><span class="secno">8.1.2.4 </span>Optional tags</a></li><li><a href="textFieldSelection.html#element-restrictions"><span class="secno">8.1.2.5 </span>Restrictions on content models</a></li><li><a href="textFieldSelection.html#cdata-rcdata-restrictions"><span class="secno">8.1.2.6 </span>Restrictions on the contents of raw text and RCDATA elements</a></li></ol></li><li><a href="textFieldSelection.html#text"><span class="secno">8.1.3 </span>Text</a>
                    381:       <ol><li><a href="textFieldSelection.html#newlines"><span class="secno">8.1.3.1 </span>Newlines</a></li></ol></li><li><a href="textFieldSelection.html#character-references"><span class="secno">8.1.4 </span>Character references</a></li><li><a href="textFieldSelection.html#cdata-sections"><span class="secno">8.1.5 </span>CDATA sections</a></li><li><a href="textFieldSelection.html#comments"><span class="secno">8.1.6 </span>Comments</a></li></ol></li><li><a href="textFieldSelection.html#parsing"><span class="secno">8.2 </span>Parsing HTML documents</a>
                    382:     <ol><li><a href="textFieldSelection.html#overview-of-the-parsing-model"><span class="secno">8.2.1 </span>Overview of the parsing model</a></li><li><a href="textFieldSelection.html#the-input-byte-stream"><span class="secno">8.2.2 </span>The input byte stream</a>
                    383:       <ol><li><a href="textFieldSelection.html#determining-the-character-encoding"><span class="secno">8.2.2.1 </span>Determining the character encoding</a></li><li><a href="textFieldSelection.html#character-encodings-0"><span class="secno">8.2.2.2 </span>Character encodings</a></li><li><a href="textFieldSelection.html#changing-the-encoding-while-parsing"><span class="secno">8.2.2.3 </span>Changing the encoding while parsing</a></li><li><a href="textFieldSelection.html#preprocessing-the-input-stream"><span class="secno">8.2.2.4 </span>Preprocessing the input stream</a></li></ol></li><li><a href="textFieldSelection.html#parse-state"><span class="secno">8.2.3 </span>Parse state</a>
                    384:       <ol><li><a href="textFieldSelection.html#the-insertion-mode"><span class="secno">8.2.3.1 </span>The insertion mode</a></li><li><a href="textFieldSelection.html#the-stack-of-open-elements"><span class="secno">8.2.3.2 </span>The stack of open elements</a></li><li><a href="textFieldSelection.html#the-list-of-active-formatting-elements"><span class="secno">8.2.3.3 </span>The list of active formatting elements</a></li><li><a href="textFieldSelection.html#the-element-pointers"><span class="secno">8.2.3.4 </span>The element pointers</a></li><li><a href="textFieldSelection.html#other-parsing-state-flags"><span class="secno">8.2.3.5 </span>Other parsing state flags</a></li></ol></li><li><a href="textFieldSelection.html#tokenization"><span class="secno">8.2.4 </span>Tokenization</a>
                    385:       <ol><li><a href="textFieldSelection.html#data-state"><span class="secno">8.2.4.1 </span>Data state</a></li><li><a href="textFieldSelection.html#character-reference-in-data-state"><span class="secno">8.2.4.2 </span>Character reference in data state</a></li><li><a href="textFieldSelection.html#rcdata-state"><span class="secno">8.2.4.3 </span>RCDATA state</a></li><li><a href="textFieldSelection.html#character-reference-in-rcdata-state"><span class="secno">8.2.4.4 </span>Character reference in RCDATA state</a></li><li><a href="textFieldSelection.html#rawtext-state"><span class="secno">8.2.4.5 </span>RAWTEXT state</a></li><li><a href="textFieldSelection.html#script-data-state"><span class="secno">8.2.4.6 </span>Script data state</a></li><li><a href="textFieldSelection.html#plaintext-state"><span class="secno">8.2.4.7 </span>PLAINTEXT state</a></li><li><a href="textFieldSelection.html#tag-open-state"><span class="secno">8.2.4.8 </span>Tag open state</a></li><li><a href="textFieldSelection.html#end-tag-open-state"><span class="secno">8.2.4.9 </span>End tag open state</a></li><li><a href="textFieldSelection.html#tag-name-state"><span class="secno">8.2.4.10 </span>Tag name state</a></li><li><a href="textFieldSelection.html#rcdata-less-than-sign-state"><span class="secno">8.2.4.11 </span>RCDATA less-than sign state</a></li><li><a href="textFieldSelection.html#rcdata-end-tag-open-state"><span class="secno">8.2.4.12 </span>RCDATA end tag open state</a></li><li><a href="textFieldSelection.html#rcdata-end-tag-name-state"><span class="secno">8.2.4.13 </span>RCDATA end tag name state</a></li><li><a href="textFieldSelection.html#rawtext-less-than-sign-state"><span class="secno">8.2.4.14 </span>RAWTEXT less-than sign state</a></li><li><a href="textFieldSelection.html#rawtext-end-tag-open-state"><span class="secno">8.2.4.15 </span>RAWTEXT end tag open state</a></li><li><a href="textFieldSelection.html#rawtext-end-tag-name-state"><span class="secno">8.2.4.16 </span>RAWTEXT end tag name state</a></li><li><a href="textFieldSelection.html#script-data-less-than-sign-state"><span class="secno">8.2.4.17 </span>Script data less-than sign state</a></li><li><a href="textFieldSelection.html#script-data-end-tag-open-state"><span class="secno">8.2.4.18 </span>Script data end tag open state</a></li><li><a href="textFieldSelection.html#script-data-end-tag-name-state"><span class="secno">8.2.4.19 </span>Script data end tag name state</a></li><li><a href="textFieldSelection.html#script-data-escape-start-state"><span class="secno">8.2.4.20 </span>Script data escape start state</a></li><li><a href="textFieldSelection.html#script-data-escape-start-dash-state"><span class="secno">8.2.4.21 </span>Script data escape start dash state</a></li><li><a href="textFieldSelection.html#script-data-escaped-state"><span class="secno">8.2.4.22 </span>Script data escaped state</a></li><li><a href="textFieldSelection.html#script-data-escaped-dash-state"><span class="secno">8.2.4.23 </span>Script data escaped dash state</a></li><li><a href="textFieldSelection.html#script-data-escaped-dash-dash-state"><span class="secno">8.2.4.24 </span>Script data escaped dash dash state</a></li><li><a href="textFieldSelection.html#script-data-escaped-less-than-sign-state"><span class="secno">8.2.4.25 </span>Script data escaped less-than sign state</a></li><li><a href="textFieldSelection.html#script-data-escaped-end-tag-open-state"><span class="secno">8.2.4.26 </span>Script data escaped end tag open state</a></li><li><a href="textFieldSelection.html#script-data-escaped-end-tag-name-state"><span class="secno">8.2.4.27 </span>Script data escaped end tag name state</a></li><li><a href="textFieldSelection.html#script-data-double-escape-start-state"><span class="secno">8.2.4.28 </span>Script data double escape start state</a></li><li><a href="textFieldSelection.html#script-data-double-escaped-state"><span class="secno">8.2.4.29 </span>Script data double escaped state</a></li><li><a href="textFieldSelection.html#script-data-double-escaped-dash-state"><span class="secno">8.2.4.30 </span>Script data double escaped dash state</a></li><li><a href="textFieldSelection.html#script-data-double-escaped-dash-dash-state"><span class="secno">8.2.4.31 </span>Script data double escaped dash dash state</a></li><li><a href="textFieldSelection.html#script-data-double-escaped-less-than-sign-state"><span class="secno">8.2.4.32 </span>Script data double escaped less-than sign state</a></li><li><a href="textFieldSelection.html#script-data-double-escape-end-state"><span class="secno">8.2.4.33 </span>Script data double escape end state</a></li><li><a href="textFieldSelection.html#before-attribute-name-state"><span class="secno">8.2.4.34 </span>Before attribute name state</a></li><li><a href="textFieldSelection.html#attribute-name-state"><span class="secno">8.2.4.35 </span>Attribute name state</a></li><li><a href="textFieldSelection.html#after-attribute-name-state"><span class="secno">8.2.4.36 </span>After attribute name state</a></li><li><a href="textFieldSelection.html#before-attribute-value-state"><span class="secno">8.2.4.37 </span>Before attribute value state</a></li><li><a href="textFieldSelection.html#attribute-value-(double-quoted)-state"><span class="secno">8.2.4.38 </span>Attribute value (double-quoted) state</a></li><li><a href="textFieldSelection.html#attribute-value-(single-quoted)-state"><span class="secno">8.2.4.39 </span>Attribute value (single-quoted) state</a></li><li><a href="textFieldSelection.html#attribute-value-(unquoted)-state"><span class="secno">8.2.4.40 </span>Attribute value (unquoted) state</a></li><li><a href="textFieldSelection.html#character-reference-in-attribute-value-state"><span class="secno">8.2.4.41 </span>Character reference in attribute value state</a></li><li><a href="textFieldSelection.html#after-attribute-value-(quoted)-state"><span class="secno">8.2.4.42 </span>After attribute value (quoted) state</a></li><li><a href="textFieldSelection.html#self-closing-start-tag-state"><span class="secno">8.2.4.43 </span>Self-closing start tag state</a></li><li><a href="textFieldSelection.html#bogus-comment-state"><span class="secno">8.2.4.44 </span>Bogus comment state</a></li><li><a href="textFieldSelection.html#markup-declaration-open-state"><span class="secno">8.2.4.45 </span>Markup declaration open state</a></li><li><a href="textFieldSelection.html#comment-start-state"><span class="secno">8.2.4.46 </span>Comment start state</a></li><li><a href="textFieldSelection.html#comment-start-dash-state"><span class="secno">8.2.4.47 </span>Comment start dash state</a></li><li><a href="textFieldSelection.html#comment-state"><span class="secno">8.2.4.48 </span>Comment state</a></li><li><a href="textFieldSelection.html#comment-end-dash-state"><span class="secno">8.2.4.49 </span>Comment end dash state</a></li><li><a href="textFieldSelection.html#comment-end-state"><span class="secno">8.2.4.50 </span>Comment end state</a></li><li><a href="textFieldSelection.html#comment-end-bang-state"><span class="secno">8.2.4.51 </span>Comment end bang state</a></li><li><a href="textFieldSelection.html#doctype-state"><span class="secno">8.2.4.52 </span>DOCTYPE state</a></li><li><a href="textFieldSelection.html#before-doctype-name-state"><span class="secno">8.2.4.53 </span>Before DOCTYPE name state</a></li><li><a href="textFieldSelection.html#doctype-name-state"><span class="secno">8.2.4.54 </span>DOCTYPE name state</a></li><li><a href="textFieldSelection.html#after-doctype-name-state"><span class="secno">8.2.4.55 </span>After DOCTYPE name state</a></li><li><a href="textFieldSelection.html#after-doctype-public-keyword-state"><span class="secno">8.2.4.56 </span>After DOCTYPE public keyword state</a></li><li><a href="textFieldSelection.html#before-doctype-public-identifier-state"><span class="secno">8.2.4.57 </span>Before DOCTYPE public identifier state</a></li><li><a href="textFieldSelection.html#doctype-public-identifier-(double-quoted)-state"><span class="secno">8.2.4.58 </span>DOCTYPE public identifier (double-quoted) state</a></li><li><a href="textFieldSelection.html#doctype-public-identifier-(single-quoted)-state"><span class="secno">8.2.4.59 </span>DOCTYPE public identifier (single-quoted) state</a></li><li><a href="textFieldSelection.html#after-doctype-public-identifier-state"><span class="secno">8.2.4.60 </span>After DOCTYPE public identifier state</a></li><li><a href="textFieldSelection.html#between-doctype-public-and-system-identifiers-state"><span class="secno">8.2.4.61 </span>Between DOCTYPE public and system identifiers state</a></li><li><a href="textFieldSelection.html#after-doctype-system-keyword-state"><span class="secno">8.2.4.62 </span>After DOCTYPE system keyword state</a></li><li><a href="textFieldSelection.html#before-doctype-system-identifier-state"><span class="secno">8.2.4.63 </span>Before DOCTYPE system identifier state</a></li><li><a href="textFieldSelection.html#doctype-system-identifier-(double-quoted)-state"><span class="secno">8.2.4.64 </span>DOCTYPE system identifier (double-quoted) state</a></li><li><a href="textFieldSelection.html#doctype-system-identifier-(single-quoted)-state"><span class="secno">8.2.4.65 </span>DOCTYPE system identifier (single-quoted) state</a></li><li><a href="textFieldSelection.html#after-doctype-system-identifier-state"><span class="secno">8.2.4.66 </span>After DOCTYPE system identifier state</a></li><li><a href="textFieldSelection.html#bogus-doctype-state"><span class="secno">8.2.4.67 </span>Bogus DOCTYPE state</a></li><li><a href="textFieldSelection.html#cdata-section-state"><span class="secno">8.2.4.68 </span>CDATA section state</a></li><li><a href="textFieldSelection.html#tokenizing-character-references"><span class="secno">8.2.4.69 </span>Tokenizing character references</a></li></ol></li><li><a href="textFieldSelection.html#tree-construction"><span class="secno">8.2.5 </span>Tree construction</a>
                    386:       <ol><li><a href="textFieldSelection.html#creating-and-inserting-elements"><span class="secno">8.2.5.1 </span>Creating and inserting elements</a></li><li><a href="textFieldSelection.html#closing-elements-that-have-implied-end-tags"><span class="secno">8.2.5.2 </span>Closing elements that have implied end tags</a></li><li><a href="textFieldSelection.html#foster-parenting"><span class="secno">8.2.5.3 </span>Foster parenting</a></li><li><a href="textFieldSelection.html#parsing-main-inhtml"><span class="secno">8.2.5.4 </span>The rules for parsing tokens in HTML content</a>
                    387:         <ol><li><a href="textFieldSelection.html#the-initial-insertion-mode"><span class="secno">8.2.5.4.1 </span>The "initial" insertion mode</a></li><li><a href="textFieldSelection.html#the-before-html-insertion-mode"><span class="secno">8.2.5.4.2 </span>The "before html" insertion mode</a></li><li><a href="textFieldSelection.html#the-before-head-insertion-mode"><span class="secno">8.2.5.4.3 </span>The "before head" insertion mode</a></li><li><a href="textFieldSelection.html#parsing-main-inhead"><span class="secno">8.2.5.4.4 </span>The "in head" insertion mode</a></li><li><a href="textFieldSelection.html#parsing-main-inheadnoscript"><span class="secno">8.2.5.4.5 </span>The "in head noscript" insertion mode</a></li><li><a href="textFieldSelection.html#the-after-head-insertion-mode"><span class="secno">8.2.5.4.6 </span>The "after head" insertion mode</a></li><li><a href="textFieldSelection.html#parsing-main-inbody"><span class="secno">8.2.5.4.7 </span>The "in body" insertion mode</a></li><li><a href="textFieldSelection.html#parsing-main-incdata"><span class="secno">8.2.5.4.8 </span>The "text" insertion mode</a></li><li><a href="textFieldSelection.html#parsing-main-intable"><span class="secno">8.2.5.4.9 </span>The "in table" insertion mode</a></li><li><a href="textFieldSelection.html#parsing-main-intabletext"><span class="secno">8.2.5.4.10 </span>The "in table text" insertion mode</a></li><li><a href="textFieldSelection.html#parsing-main-incaption"><span class="secno">8.2.5.4.11 </span>The "in caption" insertion mode</a></li><li><a href="textFieldSelection.html#parsing-main-incolgroup"><span class="secno">8.2.5.4.12 </span>The "in column group" insertion mode</a></li><li><a href="textFieldSelection.html#parsing-main-intbody"><span class="secno">8.2.5.4.13 </span>The "in table body" insertion mode</a></li><li><a href="textFieldSelection.html#parsing-main-intr"><span class="secno">8.2.5.4.14 </span>The "in row" insertion mode</a></li><li><a href="textFieldSelection.html#parsing-main-intd"><span class="secno">8.2.5.4.15 </span>The "in cell" insertion mode</a></li><li><a href="textFieldSelection.html#parsing-main-inselect"><span class="secno">8.2.5.4.16 </span>The "in select" insertion mode</a></li><li><a href="textFieldSelection.html#parsing-main-inselectintable"><span class="secno">8.2.5.4.17 </span>The "in select in table" insertion mode</a></li><li><a href="textFieldSelection.html#parsing-main-afterbody"><span class="secno">8.2.5.4.18 </span>The "after body" insertion mode</a></li><li><a href="textFieldSelection.html#parsing-main-inframeset"><span class="secno">8.2.5.4.19 </span>The "in frameset" insertion mode</a></li><li><a href="textFieldSelection.html#parsing-main-afterframeset"><span class="secno">8.2.5.4.20 </span>The "after frameset" insertion mode</a></li><li><a href="textFieldSelection.html#the-after-after-body-insertion-mode"><span class="secno">8.2.5.4.21 </span>The "after after body" insertion mode</a></li><li><a href="textFieldSelection.html#the-after-after-frameset-insertion-mode"><span class="secno">8.2.5.4.22 </span>The "after after frameset" insertion mode</a></li></ol></li><li><a href="textFieldSelection.html#parsing-main-inforeign"><span class="secno">8.2.5.5 </span>The rules for parsing tokens in foreign content</a></li></ol></li><li><a href="textFieldSelection.html#the-end"><span class="secno">8.2.6 </span>The end</a></li><li><a href="textFieldSelection.html#coercing-an-html-dom-into-an-infoset"><span class="secno">8.2.7 </span>Coercing an HTML DOM into an infoset</a></li><li><a href="textFieldSelection.html#an-introduction-to-error-handling-and-strange-cases-in-the-parser"><span class="secno">8.2.8 </span>An introduction to error handling and strange cases in the parser</a>
                    388:       <ol><li><a href="textFieldSelection.html#misnested-tags:-b-i-/b-/i"><span class="secno">8.2.8.1 </span>Misnested tags: &lt;b&gt;&lt;i&gt;&lt;/b&gt;&lt;/i&gt;</a></li><li><a href="textFieldSelection.html#misnested-tags:-b-p-/b-/p"><span class="secno">8.2.8.2 </span>Misnested tags: &lt;b&gt;&lt;p&gt;&lt;/b&gt;&lt;/p&gt;</a></li><li><a href="textFieldSelection.html#unexpected-markup-in-tables"><span class="secno">8.2.8.3 </span>Unexpected markup in tables</a></li><li><a href="textFieldSelection.html#scripts-that-modify-the-page-as-it-is-being-parsed"><span class="secno">8.2.8.4 </span>Scripts that modify the page as it is being parsed</a></li><li><a href="textFieldSelection.html#the-execution-of-scripts-that-are-moving-across-multiple-documents"><span class="secno">8.2.8.5 </span>The execution of scripts that are moving across multiple documents</a></li><li><a href="textFieldSelection.html#unclosed-formatting-elements"><span class="secno">8.2.8.6 </span>Unclosed formatting elements</a></li></ol></li></ol></li><li><a href="textFieldSelection.html#serializing-html-fragments"><span class="secno">8.3 </span>Serializing HTML fragments</a></li><li><a href="textFieldSelection.html#parsing-html-fragments"><span class="secno">8.4 </span>Parsing HTML fragments</a></li><li><a href="textFieldSelection.html#named-character-references"><span class="secno">8.5 </span>Named character references</a></li></ol></li><li><a href="textFieldSelection.html#the-xhtml-syntax"><span class="secno">9 </span>The XHTML syntax</a>
                    389:   <ol><li><a href="textFieldSelection.html#writing-xhtml-documents"><span class="secno">9.1 </span>Writing XHTML documents</a></li><li><a href="textFieldSelection.html#parsing-xhtml-documents"><span class="secno">9.2 </span>Parsing XHTML documents</a></li><li><a href="textFieldSelection.html#serializing-xhtml-fragments"><span class="secno">9.3 </span>Serializing XHTML fragments</a></li><li><a href="textFieldSelection.html#parsing-xhtml-fragments"><span class="secno">9.4 </span>Parsing XHTML fragments</a></li></ol></li><li><a href="textFieldSelection.html#rendering"><span class="secno">10 </span>Rendering</a>
                    390:   <ol><li><a href="textFieldSelection.html#introduction-8"><span class="secno">10.1 </span>Introduction</a></li><li><a href="textFieldSelection.html#the-css-user-agent-style-sheet-and-presentational-hints"><span class="secno">10.2 </span>The CSS user agent style sheet and presentational hints</a></li><li><a href="textFieldSelection.html#non-replaced-elements"><span class="secno">10.3 </span>Non-replaced elements</a>
                    391:     <ol><li><a href="textFieldSelection.html#hidden-elements"><span class="secno">10.3.1 </span>Hidden elements</a></li><li><a href="textFieldSelection.html#the-page"><span class="secno">10.3.2 </span>The page</a></li><li><a href="textFieldSelection.html#flow-content-0"><span class="secno">10.3.3 </span>Flow content</a></li><li><a href="textFieldSelection.html#phrasing-content-0"><span class="secno">10.3.4 </span>Phrasing content</a></li><li><a href="textFieldSelection.html#bidirectional-text"><span class="secno">10.3.5 </span>Bidirectional text</a></li><li><a href="textFieldSelection.html#quotes"><span class="secno">10.3.6 </span>Quotes</a></li><li><a href="textFieldSelection.html#sections-and-headings"><span class="secno">10.3.7 </span>Sections and headings</a></li><li><a href="textFieldSelection.html#lists"><span class="secno">10.3.8 </span>Lists</a></li><li><a href="textFieldSelection.html#tables"><span class="secno">10.3.9 </span>Tables</a></li><li><a href="textFieldSelection.html#form-controls"><span class="secno">10.3.10 </span>Form controls</a></li><li><a href="textFieldSelection.html#the-hr-element-0"><span class="secno">10.3.11 </span>The <code>hr</code> element</a></li><li><a href="textFieldSelection.html#the-fieldset-element-0"><span class="secno">10.3.12 </span>The <code>fieldset</code> element</a></li></ol></li><li><a href="textFieldSelection.html#replaced-elements"><span class="secno">10.4 </span>Replaced elements</a>
                    392:     <ol><li><a href="textFieldSelection.html#embedded-content-1"><span class="secno">10.4.1 </span>Embedded content</a></li><li><a href="textFieldSelection.html#images"><span class="secno">10.4.2 </span>Images</a></li><li><a href="textFieldSelection.html#attributes-for-embedded-content-and-images"><span class="secno">10.4.3 </span>Attributes for embedded content and images</a></li><li><a href="textFieldSelection.html#image-maps-0"><span class="secno">10.4.4 </span>Image maps</a></li><li><a href="textFieldSelection.html#toolbars-0"><span class="secno">10.4.5 </span>Toolbars</a></li></ol></li><li><a href="textFieldSelection.html#bindings"><span class="secno">10.5 </span>Bindings</a>
                    393:     <ol><li><a href="textFieldSelection.html#introduction-9"><span class="secno">10.5.1 </span>Introduction</a></li><li><a href="textFieldSelection.html#the-button-element-0"><span class="secno">10.5.2 </span>The <code>button</code> element</a></li><li><a href="textFieldSelection.html#the-details-element-0"><span class="secno">10.5.3 </span>The <code>details</code> element</a></li><li><a href="textFieldSelection.html#the-input-element-as-a-text-entry-widget"><span class="secno">10.5.4 </span>The <code>input</code> element as a text entry widget</a></li><li><a href="textFieldSelection.html#the-input-element-as-domain-specific-widgets"><span class="secno">10.5.5 </span>The <code>input</code> element as domain-specific widgets</a></li><li><a href="textFieldSelection.html#the-input-element-as-a-range-control"><span class="secno">10.5.6 </span>The <code>input</code> element as a range control</a></li><li><a href="textFieldSelection.html#the-input-element-as-a-color-well"><span class="secno">10.5.7 </span>The <code>input</code> element as a color well</a></li><li><a href="textFieldSelection.html#the-input-element-as-a-checkbox-and-radio-button-widgets"><span class="secno">10.5.8 </span>The <code>input</code> element as a checkbox and radio button widgets</a></li><li><a href="textFieldSelection.html#the-input-element-as-a-file-upload-control"><span class="secno">10.5.9 </span>The <code>input</code> element as a file upload control</a></li><li><a href="textFieldSelection.html#the-input-element-as-a-button"><span class="secno">10.5.10 </span>The <code>input</code> element as a button</a></li><li><a href="textFieldSelection.html#the-marquee-element"><span class="secno">10.5.11 </span>The <code>marquee</code> element</a></li><li><a href="textFieldSelection.html#the-meter-element-0"><span class="secno">10.5.12 </span>The <code>meter</code> element</a></li><li><a href="textFieldSelection.html#the-progress-element-0"><span class="secno">10.5.13 </span>The <code>progress</code> element</a></li><li><a href="textFieldSelection.html#the-select-element-0"><span class="secno">10.5.14 </span>The <code>select</code> element</a></li><li><a href="textFieldSelection.html#the-textarea-element-0"><span class="secno">10.5.15 </span>The <code>textarea</code> element</a></li><li><a href="textFieldSelection.html#the-keygen-element-0"><span class="secno">10.5.16 </span>The <code>keygen</code> element</a></li></ol></li><li><a href="textFieldSelection.html#frames-and-framesets"><span class="secno">10.6 </span>Frames and framesets</a></li><li><a href="textFieldSelection.html#interactive-media"><span class="secno">10.7 </span>Interactive media</a>
                    394:     <ol><li><a href="textFieldSelection.html#links,-forms,-and-navigation"><span class="secno">10.7.1 </span>Links, forms, and navigation</a></li><li><a href="textFieldSelection.html#the-title-attribute-0"><span class="secno">10.7.2 </span>The <code title="attr-title">title</code> attribute</a></li><li><a href="textFieldSelection.html#editing-hosts"><span class="secno">10.7.3 </span>Editing hosts</a></li><li><a href="textFieldSelection.html#text-rendered-in-native-user-interfaces"><span class="secno">10.7.4 </span>Text rendered in native user interfaces</a></li></ol></li><li><a href="textFieldSelection.html#print-media"><span class="secno">10.8 </span>Print media</a></li></ol></li><li><a href="textFieldSelection.html#obsolete"><span class="secno">11 </span>Obsolete features</a>
                    395:   <ol><li><a href="textFieldSelection.html#obsolete-but-conforming-features"><span class="secno">11.1 </span>Obsolete but conforming features</a>
                    396:     <ol><li><a href="textFieldSelection.html#warnings-for-obsolete-but-conforming-features"><span class="secno">11.1.1 </span>Warnings for obsolete but conforming features</a></li></ol></li><li><a href="textFieldSelection.html#non-conforming-features"><span class="secno">11.2 </span>Non-conforming features</a></li><li><a href="textFieldSelection.html#requirements-for-implementations"><span class="secno">11.3 </span>Requirements for implementations</a>
                    397:     <ol><li><a href="textFieldSelection.html#the-applet-element"><span class="secno">11.3.1 </span>The <code>applet</code> element</a></li><li><a href="textFieldSelection.html#the-marquee-element-0"><span class="secno">11.3.2 </span>The <code>marquee</code> element</a></li><li><a href="textFieldSelection.html#frames"><span class="secno">11.3.3 </span>Frames</a></li><li><a href="textFieldSelection.html#other-elements,-attributes-and-apis"><span class="secno">11.3.4 </span>Other elements, attributes and APIs</a></li></ol></li></ol></li><li><a href="textFieldSelection.html#iana"><span class="secno">12 </span>IANA considerations</a>
                    398:   <ol><li><a href="textFieldSelection.html#text/html"><span class="secno">12.1 </span><code>text/html</code></a></li><li><a href="textFieldSelection.html#multipart/x-mixed-replace"><span class="secno">12.2 </span><code>multipart/x-mixed-replace</code></a></li><li><a href="textFieldSelection.html#application/xhtml+xml"><span class="secno">12.3 </span><code>application/xhtml+xml</code></a></li><li><a href="textFieldSelection.html#application/x-www-form-urlencoded"><span class="secno">12.4 </span><code>application/x-www-form-urlencoded</code></a></li><li><a href="textFieldSelection.html#text/cache-manifest"><span class="secno">12.5 </span><code>text/cache-manifest</code></a></li><li><a href="textFieldSelection.html#web+-scheme-prefix"><span class="secno">12.6 </span><code>web+</code> scheme prefix</a></li></ol></li><li><a class="no-num" href="textFieldSelection.html#index">Index</a>
1.198     sruby     399:   <ol><li><a class="no-num" href="textFieldSelection.html#elements-1">Elements</a></li><li><a class="no-num" href="textFieldSelection.html#element-content-categories">Element content categories</a></li><li><a class="no-num" href="textFieldSelection.html#attributes-1">Attributes</a></li><li><a class="no-num" href="textFieldSelection.html#element-interfaces">Element Interfaces</a></li><li><a class="no-num" href="textFieldSelection.html#all-interfaces">All Interfaces</a></li><li><a class="no-num" href="textFieldSelection.html#events-0">Events</a></li></ol></li><li><a class="no-num" href="textFieldSelection.html#references">References</a></li><li><a class="no-num" href="textFieldSelection.html#acknowledgements">Acknowledgements</a></li></ol></div>
1.1       mike      400: 
1.85      mike      401:   <h4 id="textFieldSelection"><span class="secno">4.10.20 </span>APIs for the text field selections</h4>
                    402: 
1.159     sruby     403:   <!-- v2 idea: DOM Range APIs to expose the textarea/input edited
                    404:   value (ack martijnw) -->
1.85      mike      405: 
                    406:   <p>The <code><a href="the-input-element.html#the-input-element">input</a></code> and <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> elements define
1.1       mike      407:   the following members in their DOM interfaces for handling their
1.85      mike      408:   selection:</p>
                    409: 
1.190     sruby     410:   <pre class="idl extract">  void <span title="dom-textarea/input-select">select</span>();
                    411:            attribute unsigned long <span title="dom-textarea/input-selectionStart">selectionStart</span>;
                    412:            attribute unsigned long <span title="dom-textarea/input-selectionEnd">selectionEnd</span>;
                    413:            attribute DOMString <span title="dom-textarea/input-selectionDirection">selectionDirection</span>;
1.159     sruby     414: 
1.190     sruby     415:   void <span title="dom-textarea/input-setSelectionRange">setSelectionRange</span>(unsigned long start, unsigned long end, optional DOMString direction = "preserve");</pre>
1.159     sruby     416:   <!-- v2: also add textLength? it seems to be widely used -->
                    417: 
1.85      mike      418: 
1.120     mike      419: 
1.85      mike      420:   <p>These methods and attributes expose and control the selection of
                    421:   <code><a href="the-input-element.html#the-input-element">input</a></code> and <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> text fields.</p>
                    422: 
1.190     sruby     423:   <dl class="domintro"><dt><var title="">element</var> . <code title="dom-textarea/input-select">select</code>()</dt>
1.1       mike      424: 
                    425:    <dd>
                    426: 
                    427:     <p>Selects everything in the text field.</p>
                    428: 
                    429:    </dd>
                    430: 
                    431:    <dt><var title="">element</var> . <code title="dom-textarea/input-selecionStart">selectionStart</code> [ = <var title="">value</var> ]</dt>
                    432: 
                    433:    <dd>
                    434: 
                    435:     <p>Returns the offset to the start of the selection.</p>
                    436: 
                    437:     <p>Can be set, to change the start of the selection.</p>
                    438: 
                    439:    </dd>
                    440: 
                    441:    <dt><var title="">element</var> . <code title="dom-textarea/input-selecionEnd">selectionEnd</code> [ = <var title="">value</var> ]</dt>
                    442: 
                    443:    <dd>
                    444: 
                    445:     <p>Returns the offset to the end of the selection.</p>
                    446: 
                    447:     <p>Can be set, to change the end of the selection.</p>
                    448: 
                    449:    </dd>
                    450: 
                    451:    <dt><var title="">element</var> . <code title="dom-textarea/input-selecionDirection">selectionDirection</code> [ = <var title="">value</var> ]</dt>
                    452: 
                    453:    <dd>
                    454: 
                    455:     <p>Returns the current direction of the selection.</p>
                    456: 
                    457:     <p>Can be set, to change the direction of the selection.</p>
                    458: 
                    459:     <p>The possible values are "<code title="">forward</code>", "<code title="">backward</code>", and "<code title="">none</code>".</p>
                    460: 
                    461:    </dd>
                    462: 
1.190     sruby     463:    <dt><var title="">element</var> . <code title="dom-textarea/input-setSelectionRange">setSelectionRange</code>(<var title="">start</var>, <var title="">end</var> [, <var title="">direction</var>] )</dt>
1.1       mike      464: 
                    465:    <dd>
                    466: 
                    467:     <p>Changes the selection to cover the given substring in the given direction. If the direction is omitted, it will be reset to be the platform default (none or forward).</p>
                    468: 
                    469:    </dd>
                    470: 
1.120     mike      471: 
1.159     sruby     472: 
                    473: 
1.1       mike      474:   <p>All elements to which this API applies have either a selection or
                    475:   a text entry cursor position at all times (even for elements that
1.190     sruby     476:   are not <a href="#being-rendered">being rendered</a>). User agents should follow
1.1       mike      477:   platform conventions to determine their initial state.</p>
                    478: 
1.190     sruby     479:   
1.85      mike      480: 
                    481:   <p>Characters with no visible rendering, such as U+200D ZERO WIDTH
1.1       mike      482:   JOINER, still count as characters. Thus, for instance, the selection
                    483:   can include just an invisible character, and the text insertion
1.85      mike      484:   cursor can be placed to one side or another of such a character.</p>
                    485: 
                    486:   <div class="example">
1.1       mike      487: 
                    488:    <p>To obtain the currently selected text, the following JavaScript
                    489:    suffices:</p>
                    490: 
                    491:    <pre>var selectionText = control.value.substring(control.selectionStart, control.selectionEnd);</pre>
                    492: 
                    493:    <p>...where <var title="">control</var> is the <code><a href="the-input-element.html#the-input-element">input</a></code>
                    494:    or <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> element.</p>
                    495: 
1.85      mike      496:   </div>
                    497: 
                    498:   <div class="example">
1.1       mike      499: 
                    500:    <p>To add some text at the start of a text control, while
                    501:    maintaining the text selection, the three attributes must be
                    502:    preserved:</p>
                    503: 
                    504:    <pre>var oldStart = control.selectionStart;
                    505: var oldEnd = control.selectionEnd;
                    506: var oldDirection = control.selectionDirection;
                    507: var prefix = "http://";
                    508: control.value = prefix + control.value;
                    509: control.setSelectionRange(oldStart + prefix.length, oldEnd + prefix.length, oldDirection);</pre>
                    510: 
                    511:    <p>...where <var title="">control</var> is the <code><a href="the-input-element.html#the-input-element">input</a></code>
                    512:    or <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> element.</p>
                    513: 
1.85      mike      514:   </div>
1.159     sruby     515: <!--TOPIC:HTML-->
1.85      mike      516: 
                    517: 
                    518: 
1.190     sruby     519:   <h4 id="constraints"><span class="secno">4.10.21 </span>Constraints</h4>
                    520: 
                    521:   <h5 id="definitions"><span class="secno">4.10.21.1 </span>Definitions</h5>
                    522: 
                    523:   <div class="impl">
                    524: 
                    525:   <p>A <a href="forms.html#category-submit" title="category-submit">submittable element</a> is a
                    526:   <dfn id="candidate-for-constraint-validation">candidate for constraint validation</dfn> except when a
                    527:   condition has <dfn id="barred-from-constraint-validation" title="barred from constraint validation">barred
                    528:   the element from constraint validation</dfn>. (For example, an
                    529:   element is <a href="#barred-from-constraint-validation">barred from constraint validation</a> if it is
                    530:   an <code><a href="the-object-element.html#the-object-element">object</a></code> element.)</p>
                    531: 
                    532:   <p>An element can have a <dfn id="custom-validity-error-message">custom validity error message</dfn>
                    533:   defined. Initially, an element must have its <a href="#custom-validity-error-message">custom validity
                    534:   error message</a> set to the empty string. When its value is not
                    535:   the empty string, the element is <a href="#suffering-from-a-custom-error">suffering from a custom
                    536:   error</a>. It can be set using the <code title="dom-cva-setCustomValidity"><a href="#dom-cva-setcustomvalidity">setCustomValidity()</a></code>
                    537:   method. The user agent should use the <a href="#custom-validity-error-message">custom validity error
                    538:   message</a> when alerting the user to the problem with the
                    539:   control.</p>
                    540: 
                    541:   <p>An element can be constrained in various ways. The following is
                    542:   the list of <dfn id="validity-states">validity states</dfn> that a form control can be
                    543:   in, making the control invalid for the purposes of constraint
                    544:   validation. (The definitions below are non-normative; other parts of
                    545:   this specification define more precisely when each state applies or
                    546:   does not.)</p>
                    547: 
                    548:   <dl><dt> <dfn id="suffering-from-being-missing">Suffering from being missing</dfn> </dt>
                    549: 
                    550:    <dd> <p>When a control has no <a href="attributes-common-to-form-controls.html#concept-fe-value" title="concept-fe-value">value</a> but has a <code title="">required</code> attribute (<code><a href="the-input-element.html#the-input-element">input</a></code> <code title="attr-input-required"><a href="common-input-element-attributes.html#attr-input-required">required</a></code>, <code><a href="the-select-element.html#the-select-element">select</a></code>
                    551:    <code title="attr-select-required"><a href="the-select-element.html#attr-select-required">required</a></code>,
                    552:    <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> <code title="attr-textarea-required"><a href="the-textarea-element.html#attr-textarea-required">required</a></code>), or, in the case of
                    553:    an element in a <i><a href="states-of-the-type-attribute.html#radio-button-group">radio button group</a></i>, any of the other
                    554:    elements in the group has a <code title="attr-input-required"><a href="common-input-element-attributes.html#attr-input-required">required</a></code> attribute. </p></dd>
                    555: 
                    556:    <dt> <dfn id="suffering-from-a-type-mismatch">Suffering from a type mismatch</dfn> </dt>
                    557: 
                    558:    <dd> <p>When a control that allows arbitrary user
                    559:    input has a <a href="attributes-common-to-form-controls.html#concept-fe-value" title="concept-fe-value">value</a> that is not
                    560:    in the correct syntax (<a href="states-of-the-type-attribute.html#e-mail-state-(type=email)" title="attr-input-type-email">E-mail</a>, <a href="states-of-the-type-attribute.html#url-state-(type=url)" title="attr-input-type-url">URL</a>). </p></dd>
                    561: 
                    562:    <dt> <dfn id="suffering-from-a-pattern-mismatch">Suffering from a pattern mismatch</dfn> </dt>
                    563: 
                    564:    <dd> <p>When a control has a <a href="attributes-common-to-form-controls.html#concept-fe-value" title="concept-fe-value">value</a> that doesn't satisfy the
                    565:    <code title="attr-input-pattern"><a href="common-input-element-attributes.html#attr-input-pattern">pattern</a></code> attribute.</p></dd>
                    566: 
                    567:    <dt> <dfn id="suffering-from-being-too-long">Suffering from being too long</dfn> </dt>
                    568: 
                    569:    <dd> <p>When a control has a <a href="attributes-common-to-form-controls.html#concept-fe-value" title="concept-fe-value">value</a> that is too long for the
                    570:    <a href="attributes-common-to-form-controls.html#attr-fe-maxlength" title="attr-fe-maxlength">form control <code title="">maxlength</code> attribute</a> (<code><a href="the-input-element.html#the-input-element">input</a></code>
                    571:    <code title="attr-input-maxlength"><a href="common-input-element-attributes.html#attr-input-maxlength">maxlength</a></code>,
                    572:    <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> <code title="attr-textarea-maxlength"><a href="the-textarea-element.html#attr-textarea-maxlength">maxlength</a></code>). </p></dd>
                    573: 
                    574:    <dt> <dfn id="suffering-from-an-underflow">Suffering from an underflow</dfn> </dt>
                    575: 
                    576:    <dd> <p>When a control has a <a href="attributes-common-to-form-controls.html#concept-fe-value" title="concept-fe-value">value</a> that is too low for the <code title="attr-input-min"><a href="common-input-element-attributes.html#attr-input-min">min</a></code> attribute.</p></dd>
                    577: 
                    578:    <dt> <dfn id="suffering-from-an-overflow">Suffering from an overflow</dfn> </dt>
                    579: 
                    580:    <dd> <p>When a control has a <a href="attributes-common-to-form-controls.html#concept-fe-value" title="concept-fe-value">value</a> that is too high for the
                    581:    <code title="attr-input-max"><a href="common-input-element-attributes.html#attr-input-max">max</a></code> attribute.</p></dd>
                    582: 
                    583:    <dt> <dfn id="suffering-from-a-step-mismatch">Suffering from a step mismatch</dfn> </dt>
                    584: 
                    585:    <dd> <p>When a control has a <a href="attributes-common-to-form-controls.html#concept-fe-value" title="concept-fe-value">value</a> that doesn't fit the rules
                    586:    given by the <code title="attr-input-step"><a href="common-input-element-attributes.html#attr-input-step">step</a></code>
                    587:    attribute.</p></dd>
                    588: 
                    589:    <dt> <dfn id="suffering-from-a-custom-error">Suffering from a custom error</dfn> </dt>
                    590: 
                    591:    <dd> <p>When a control's <a href="#custom-validity-error-message">custom validity error
                    592:    message</a> (as set by the element's <code title="dom-cva-setCustomValidity"><a href="#dom-cva-setcustomvalidity">setCustomValidity()</a></code>
                    593:    method) is not the empty string.</p> </dd>
                    594: 
                    595:   </dl><p class="note">An element can still suffer from these states even
                    596:   when the element is <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a>; thus these states can
                    597:   be represented in the DOM even if validating the form during
                    598:   submission wouldn't indicate a problem to the user.</p>
                    599: 
                    600:   <p>An element <dfn id="concept-fv-valid" title="concept-fv-valid">satisfies its
                    601:   constraints</dfn> if it is not suffering from any of the above
                    602:   <a href="#validity-states">validity states</a>.</p>
                    603: 
                    604:   </div>
                    605: 
                    606: 
                    607: 
                    608:   <div class="impl">
                    609: 
                    610:   <h5 id="constraint-validation"><span class="secno">4.10.21.2 </span>Constraint validation</h5>
                    611: 
                    612:   <p>When the user agent is required to <dfn id="statically-validate-the-constraints">statically validate the
                    613:   constraints</dfn> of <code><a href="the-form-element.html#the-form-element">form</a></code> element <var title="">form</var>, it must run the following steps, which return
                    614:   either a <i>positive</i> result (all the controls in the form are
                    615:   valid) or a <i>negative</i> result (there are invalid controls)
                    616:   along with a (possibly empty) list of elements that are invalid and
                    617:   for which no script has claimed responsibility:</p>
                    618: 
                    619:   <ol><li><p>Let <var title="">controls</var> be a list of all the <a href="forms.html#category-submit" title="category-submit">submittable elements</a> whose
                    620:    <a href="association-of-controls-and-forms.html#form-owner">form owner</a> is <var title="">form</var>, in <a href="infrastructure.html#tree-order">tree
                    621:    order</a>.</p></li>
                    622: 
                    623:    <li><p>Let <var title="">invalid controls</var> be an initially
                    624:    empty list of elements.</p></li>
                    625: 
                    626:    <li>
                    627: 
                    628:     <p>For each element <var title="">field</var> in <var title="">controls</var>, in <a href="infrastructure.html#tree-order">tree order</a>, run the
                    629:     following substeps:</p>
                    630: 
                    631:     <ol><li><p>If <var title="">field</var> is not a <a href="#candidate-for-constraint-validation">candidate for
                    632:      constraint validation</a>, then move on to the next
                    633:      element.</p></li>
                    634: 
                    635:      <li><p>Otherwise, if <var title="">field</var> <a href="#concept-fv-valid" title="concept-fv-valid">satisfies its constraints</a>, then
                    636:      move on to the next element.</p></li>
                    637: 
                    638:      <li><p>Otherwise, add <var title="">field</var> to <var title="">invalid controls</var>.</p></li>
                    639: 
                    640:     </ol></li>
                    641: 
                    642:    <li><p>If <var title="">invalid controls</var> is empty, then
                    643:    return a <i>positive</i> result and abort these steps.</p></li>
                    644: 
                    645:    <li><p>Let <var title="">unhandled invalid controls</var> be an
                    646:    initially empty list of elements.</p></li>
                    647: 
                    648:    <li>
                    649: 
                    650:     <p>For each element <var title="">field</var> in <var title="">invalid controls</var>, if any, in <a href="infrastructure.html#tree-order">tree
                    651:     order</a>, run the following substeps:</p>
                    652: 
                    653:     <ol><li><p><a href="#fire-a-simple-event">Fire a simple event</a> named <code title="event-invalid">invalid</code> that is cancelable at <var title="">field</var>.</p></li>
                    654: 
                    655:      <li><p>If the event was not canceled, then add <var title="">field</var> to <var title="">unhandled invalid
                    656:      controls</var>.</p></li>
                    657: 
                    658:     </ol></li>
                    659: 
                    660:    <li><p>Return a <i>negative</i> result with the list of elements in
                    661:    the <var title="">unhandled invalid controls</var> list.</p></li>
                    662: 
                    663:   </ol><p>If a user agent is to <dfn id="interactively-validate-the-constraints">interactively validate the
                    664:   constraints</dfn> of <code><a href="the-form-element.html#the-form-element">form</a></code> element <var title="">form</var>, then the user agent must run the following
                    665:   steps:</p>
                    666: 
                    667:   <ol><li><p><a href="#statically-validate-the-constraints">Statically validate the constraints</a> of <var title="">form</var>, and let <var title="">unhandled invalid
                    668:    controls</var> be the list of elements returned if the result was
                    669:    <i>negative</i>.</p></li>
                    670: 
                    671:    <li><p>If the result was <i>positive</i>, then return that result
                    672:    and abort these steps.</p></li>
                    673: 
                    674:    <li><p>Report the problems with the constraints of at least one of
                    675:    the elements given in <var title="">unhandled invalid
                    676:    controls</var> to the user. User agents may focus one of those
                    677:    elements in the process, by running the <a href="#focusing-steps">focusing steps</a>
                    678:    for that element, and may change the scrolling position of the
                    679:    document, or perform some other action that brings the element to
                    680:    the user's attention. User agents may report more than one
                    681:    constraint violation. User agents may coalesce related constraint
                    682:    violation reports if appropriate (e.g. if multiple radio buttons in
                    683:    a <a href="states-of-the-type-attribute.html#radio-button-group" title="radio button group">group</a> are marked as
                    684:    required, only one error need be reported). If one of the controls
                    685:    is not <a href="#being-rendered">being rendered</a> (e.g. it has the <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> attribute set) then user agents
                    686:    may report a script error.</p></li>
                    687: 
                    688:    <li><p>Return a <i>negative</i> result.</p></li>
                    689: 
                    690:   </ol></div>
                    691: 
                    692: 
                    693: 
                    694: <!--TOPIC:DOM APIs-->
                    695:   <h5 id="the-constraint-validation-api"><span class="secno">4.10.21.3 </span>The <dfn>constraint validation API</dfn></h5>
                    696: 
                    697:   <dl class="domintro"><dt><var title="">element</var> . <code title="dom-cva-willValidate"><a href="#dom-cva-willvalidate">willValidate</a></code></dt>
                    698: 
                    699:    <dd>
                    700: 
                    701:     <p>Returns true if the element will be validated when the form is submitted; false otherwise.</p>
                    702: 
                    703:    </dd>
                    704: 
                    705:    <dt><var title="">element</var> . <code title="dom-cva-setCustomValidity"><a href="#dom-cva-setcustomvalidity">setCustomValidity</a></code>(<var title="">message</var>)</dt>
                    706: 
                    707:    <dd>
                    708: 
                    709:     <p>Sets a custom error, so that the element would fail to
                    710:     validate. The given message is the message to be shown to the user
                    711:     when reporting the problem to the user.</p>
                    712: 
                    713:     <p>If the argument is the empty string, clears the custom error.</p>
                    714: 
                    715:    </dd>
                    716: 
                    717:    <dt><var title="">element</var> . <code title="dom-cva-validity"><a href="#dom-cva-validity">validity</a></code> . <code title="dom-validitystate-valueMissing"><a href="#dom-validitystate-valuemissing">valueMissing</a></code></dt>
                    718: 
                    719:    <dd>
                    720: 
                    721:     <p>Returns true if the element has no value but is a required field; false otherwise.</p>
                    722: 
                    723:    </dd>
                    724: 
                    725:    <dt><var title="">element</var> . <code title="dom-cva-validity"><a href="#dom-cva-validity">validity</a></code> . <code title="dom-validitystate-typeMismatch"><a href="#dom-validitystate-typemismatch">typeMismatch</a></code></dt>
                    726: 
                    727:    <dd>
                    728: 
                    729:     <p>Returns true if the element's value is not in the correct syntax; false otherwise.</p>
                    730: 
                    731:    </dd>
                    732: 
                    733:    <dt><var title="">element</var> . <code title="dom-cva-validity"><a href="#dom-cva-validity">validity</a></code> . <code title="dom-validitystate-patternMismatch"><a href="#dom-validitystate-patternmismatch">patternMismatch</a></code></dt>
                    734: 
                    735:    <dd>
                    736: 
                    737:     <p>Returns true if the element's value doesn't match the provided pattern; false otherwise.</p>
                    738: 
                    739:    </dd>
                    740: 
                    741:    <dt><var title="">element</var> . <code title="dom-cva-validity"><a href="#dom-cva-validity">validity</a></code> . <code title="dom-validitystate-tooLong"><a href="#dom-validitystate-toolong">tooLong</a></code></dt>
                    742: 
                    743:    <dd>
                    744: 
                    745:     <p>Returns true if the element's value is longer than the provided maximum length; false otherwise.</p>
                    746: 
                    747:    </dd>
                    748: 
                    749:    <dt><var title="">element</var> . <code title="dom-cva-validity"><a href="#dom-cva-validity">validity</a></code> . <code title="dom-validitystate-rangeUnderflow"><a href="#dom-validitystate-rangeunderflow">rangeUnderflow</a></code></dt>
                    750: 
                    751:    <dd>
                    752: 
                    753:     <p>Returns true if the element's value is lower than the provided minimum; false otherwise.</p>
                    754: 
                    755:    </dd>
                    756: 
                    757:    <dt><var title="">element</var> . <code title="dom-cva-validity"><a href="#dom-cva-validity">validity</a></code> . <code title="dom-validitystate-rangeOverflow"><a href="#dom-validitystate-rangeoverflow">rangeOverflow</a></code></dt>
                    758: 
                    759:    <dd>
                    760: 
                    761:     <p>Returns true if the element's value is higher than the provided maximum; false otherwise.</p>
                    762: 
                    763:    </dd>
                    764: 
                    765:    <dt><var title="">element</var> . <code title="dom-cva-validity"><a href="#dom-cva-validity">validity</a></code> . <code title="dom-validitystate-stepMismatch"><a href="#dom-validitystate-stepmismatch">stepMismatch</a></code></dt>
                    766: 
                    767:    <dd>
                    768: 
                    769:     <p>Returns true if the element's value doesn't fit the rules given by the <code title="attr-input-step"><a href="common-input-element-attributes.html#attr-input-step">step</a></code> attribute; false otherwise.</p>
                    770: 
                    771:    </dd>
                    772: 
                    773:    <dt><var title="">element</var> . <code title="dom-cva-validity"><a href="#dom-cva-validity">validity</a></code> . <code title="dom-validitystate-customError"><a href="#dom-validitystate-customerror">customError</a></code></dt>
                    774: 
                    775:    <dd>
                    776: 
                    777:     <p>Returns true if the element has a custom error; false otherwise.</p>
                    778: 
                    779:    </dd>
                    780: 
                    781:    <dt><var title="">element</var> . <code title="dom-cva-validity"><a href="#dom-cva-validity">validity</a></code> . <code title="dom-validitystate-valid"><a href="#dom-validitystate-valid">valid</a></code></dt>
                    782: 
                    783:    <dd>
                    784: 
                    785:     <p>Returns true if the element's value has no validity problems; false otherwise.</p>
                    786: 
                    787:    </dd>
                    788: 
                    789:    <dt><var title="">valid</var> = <var title="">element</var> . <code title="dom-cva-checkValidity"><a href="#dom-cva-checkvalidity">checkValidity</a></code>()</dt>
                    790: 
                    791:    <dd>
                    792: 
                    793:     <p>Returns true if the element's value has no validity problems;
                    794:     false otherwise. Fires an <code title="event-invalid">invalid</code> event at the element in the
                    795:     latter case.</p>
                    796: 
                    797:    </dd>
                    798: 
                    799:    <dt><var title="">element</var> . <code title="dom-cva-validationMessage"><a href="#dom-cva-validationmessage">validationMessage</a></code></dt>
                    800: 
                    801:    <dd>
                    802: 
                    803:     <p>Returns the error message that would be shown to the user if
                    804:     the element was to be checked for validity.</p>
                    805: 
                    806:    </dd>
                    807: 
                    808:   </dl><div class="impl">
                    809: 
                    810:   <p>The <dfn id="dom-cva-willvalidate" title="dom-cva-willValidate"><code>willValidate</code></dfn>
                    811:   attribute must return true if an element is a <a href="#candidate-for-constraint-validation">candidate for
                    812:   constraint validation</a>, and false otherwise (i.e. false if any
                    813:   conditions are <a href="#barred-from-constraint-validation" title="barred from constraint
                    814:   validation">barring it from constraint validation</a>).</p>
                    815: 
                    816:   <p>The <dfn id="dom-cva-setcustomvalidity" title="dom-cva-setCustomValidity"><code>setCustomValidity(<var title="">message</var>)</code></dfn>, when invoked, must set the
                    817:   <a href="#custom-validity-error-message">custom validity error message</a> to the value of the given
                    818:   <var title="">message</var> argument.</p>
                    819: 
                    820:   </div>
                    821: 
                    822:   <div class="example">
                    823: 
                    824:    <p>In the following example, a script checks the value of a form
                    825:    control each time it is edited, and whenever it is not a valid
                    826:    value, uses the <code title="dom-cva-setCustomValidity"><a href="#dom-cva-setcustomvalidity">setCustomValidity()</a></code> method
                    827:    to set an appropriate message.</p>
                    828: 
                    829:    <pre>&lt;label&gt;Feeling: &lt;input name=f type="text" oninput="check(this)"&gt;&lt;/label&gt;
                    830: &lt;script&gt;
                    831:  function check(input) {
                    832:    if (input.value == "good" ||
                    833:        input.value == "fine" ||
                    834:        input.value == "tired") {
                    835:      input.setCustomValidity('"' + input.value + '" is not a feeling.');
                    836: <!--   } else if (input.value == "...") {
                    837:      input.setCustomValidity('...');
                    838: -->   } else {
                    839:      // input is fine -- reset the error message
                    840:      input.setCustomValidity('');
                    841:    }
                    842:  }
                    843: &lt;/script&gt;</pre>
                    844: 
                    845:   </div>
                    846: 
                    847:   <div class="impl">
                    848: 
                    849:   <p>The <dfn id="dom-cva-validity" title="dom-cva-validity"><code>validity</code></dfn>
                    850:   attribute must return a <code><a href="#validitystate">ValidityState</a></code> object that
                    851:   represents the <a href="#validity-states">validity states</a> of the element. This
                    852:   object is <a href="infrastructure.html#live">live</a>, and the same object must be returned
                    853:   each time the element's <code title="dom-cva-validity"><a href="#dom-cva-validity">validity</a></code> attribute is retrieved.</p>
                    854: 
                    855: <pre class="idl">interface <dfn id="validitystate">ValidityState</dfn> {
                    856:   readonly attribute boolean <a href="#dom-validitystate-valuemissing" title="dom-ValidityState-valueMissing">valueMissing</a>;
                    857:   readonly attribute boolean <a href="#dom-validitystate-typemismatch" title="dom-ValidityState-typeMismatch">typeMismatch</a>;
                    858:   readonly attribute boolean <a href="#dom-validitystate-patternmismatch" title="dom-ValidityState-patternMismatch">patternMismatch</a>;
                    859:   readonly attribute boolean <a href="#dom-validitystate-toolong" title="dom-ValidityState-tooLong">tooLong</a>;
                    860:   readonly attribute boolean <a href="#dom-validitystate-rangeunderflow" title="dom-ValidityState-rangeUnderflow">rangeUnderflow</a>;
                    861:   readonly attribute boolean <a href="#dom-validitystate-rangeoverflow" title="dom-ValidityState-rangeOverflow">rangeOverflow</a>;
                    862:   readonly attribute boolean <a href="#dom-validitystate-stepmismatch" title="dom-ValidityState-stepMismatch">stepMismatch</a>;
                    863:   readonly attribute boolean <a href="#dom-validitystate-customerror" title="dom-ValidityState-customError">customError</a>;
                    864:   readonly attribute boolean <a href="#dom-validitystate-valid" title="dom-ValidityState-valid">valid</a>;
                    865: };</pre>
                    866: 
                    867:   <p>A <code><a href="#validitystate">ValidityState</a></code> object has the following
                    868:   attributes. On getting, they must return true if the corresponding
                    869:   condition given in the following list is true, and false
                    870:   otherwise.</p>
                    871: 
                    872:   <dl><dt><dfn id="dom-validitystate-valuemissing" title="dom-ValidityState-valueMissing"><code>valueMissing</code></dfn></dt>
                    873:    <dd> <p>The control is <a href="#suffering-from-being-missing">suffering from being missing</a>.</p> </dd>
                    874: 
                    875:    <dt><dfn id="dom-validitystate-typemismatch" title="dom-ValidityState-typeMismatch"><code>typeMismatch</code></dfn></dt>
                    876:    <dd> <p>The control is <a href="#suffering-from-a-type-mismatch">suffering from a type mismatch</a>.</p> </dd>
                    877: 
                    878:    <dt><dfn id="dom-validitystate-patternmismatch" title="dom-ValidityState-patternMismatch"><code>patternMismatch</code></dfn></dt>
                    879:    <dd> <p>The control is <a href="#suffering-from-a-pattern-mismatch">suffering from a pattern mismatch</a>.</p> </dd>
                    880: 
                    881:    <dt><dfn id="dom-validitystate-toolong" title="dom-ValidityState-tooLong"><code>tooLong</code></dfn></dt>
                    882:    <dd> <p>The control is <a href="#suffering-from-being-too-long">suffering from being too long</a>.</p> </dd>
                    883: 
                    884:    <dt><dfn id="dom-validitystate-rangeunderflow" title="dom-ValidityState-rangeUnderflow"><code>rangeUnderflow</code></dfn></dt>
                    885:    <dd> <p>The control is <a href="#suffering-from-an-underflow">suffering from an underflow</a>.</p> </dd>
                    886: 
                    887:    <dt><dfn id="dom-validitystate-rangeoverflow" title="dom-ValidityState-rangeOverflow"><code>rangeOverflow</code></dfn></dt>
                    888:    <dd> <p>The control is <a href="#suffering-from-an-overflow">suffering from an overflow</a>.</p> </dd>
                    889: 
                    890:    <dt><dfn id="dom-validitystate-stepmismatch" title="dom-ValidityState-stepMismatch"><code>stepMismatch</code></dfn></dt>
                    891:    <dd> <p>The control is <a href="#suffering-from-a-step-mismatch">suffering from a step mismatch</a>.</p> </dd>
                    892: 
                    893:    <dt><dfn id="dom-validitystate-customerror" title="dom-ValidityState-customError"><code>customError</code></dfn></dt>
                    894:    <dd> <p>The control is <a href="#suffering-from-a-custom-error">suffering from a custom error</a>.</p> </dd>
                    895: 
                    896:    <dt><dfn id="dom-validitystate-valid" title="dom-ValidityState-valid"><code>valid</code></dfn></dt>
                    897:    <dd> <p>None of the other conditions are true.</p> </dd>
                    898: 
                    899:   </dl><p>When the <dfn id="dom-cva-checkvalidity" title="dom-cva-checkValidity"><code>checkValidity()</code></dfn>
                    900:   method is invoked, if the element is a <a href="#candidate-for-constraint-validation">candidate for
                    901:   constraint validation</a> and does not <a href="#concept-fv-valid" title="concept-fv-valid">satisfy its constraints</a>, the user
                    902:   agent must <a href="#fire-a-simple-event">fire a simple event</a> named <code title="event-invalid">invalid</code> that is cancelable (but in this
                    903:   case has no default action) at the element and return
                    904:   false. Otherwise, it must only return true without doing anything
                    905:   else.</p>
                    906: 
                    907:   <p>The <dfn id="dom-cva-validationmessage" title="dom-cva-validationMessage"><code>validationMessage</code></dfn>
                    908:   attribute must return the empty string if the element is not a
                    909:   <a href="#candidate-for-constraint-validation">candidate for constraint validation</a> or if it is one but
                    910:   it <a href="#concept-fv-valid" title="concept-fv-valid">satisfies its constraints</a>;
                    911:   otherwise, it must return a suitably localized message that the user
                    912:   agent would show the user if this were the only form control with a
                    913:   validity constraint problem. If the user agent would not actually
                    914:   show a textual message in such a situation (e.g. it would show a
                    915:   graphical cue instead), then the attribute must return a suitably
                    916:   localized message that expresses (one or more of) the validity
                    917:   constraint(s) that the control does not satisfy. If the element is a
                    918:   <a href="#candidate-for-constraint-validation">candidate for constraint validation</a> and is
                    919:   <a href="#suffering-from-a-custom-error">suffering from a custom error</a>, then the <a href="#custom-validity-error-message">custom
                    920:   validity error message</a> should be present in the return
                    921:   value.</p>
                    922: 
                    923:   </div>
                    924: <!--TOPIC:HTML-->
                    925: 
                    926: 
                    927: <!--ADD-TOPIC:Security-->
                    928:   <h5 id="security-forms"><span class="secno">4.10.21.4 </span>Security</h5>
                    929: 
                    930:   <p id="security-0">Servers should not rely on client-side
                    931:   validation. Client-side validation can be intentionally bypassed by
                    932:   hostile users, and unintentionally bypassed by users of older user
                    933:   agents or automated tools that do not implement these features. The
                    934:   constraint validation features are only intended to improve the user
                    935:   experience, not to provide any kind of security mechanism.</p>
                    936: <!--REMOVE-TOPIC:Security-->
                    937: 
                    938: 
                    939: 
                    940: 
                    941:   <h4 id="form-submission-0"><span class="secno">4.10.22 </span><dfn>Form submission</dfn></h4>
                    942: 
                    943:   <div class="impl">
                    944: 
                    945:   <h5 id="introduction-2"><span class="secno">4.10.22.1 </span>Introduction</h5>
                    946: 
                    947:   </div>
                    948: 
                    949:   <p><i>This section is non-normative.</i></p>
                    950:   <p>When a form is submitted, the data in the form is converted into
                    951:   the structure specified by the <a href="form-submission.html#concept-fs-enctype" title="concept-fs-enctype">enctype</a>, and then sent to the
                    952:   destination specified by the <a href="form-submission.html#concept-fs-action" title="concept-fs-action">action</a> using the given <a href="form-submission.html#concept-fs-method" title="concept-fs-method">method</a>.</p>
                    953: 
                    954:   <p>For example, take the following form:</p>
                    955: 
                    956:   <pre>&lt;form action="/find.cgi" method=get&gt;
                    957:  &lt;input type=text name=t&gt;
                    958:  &lt;input type=search name=q&gt;
                    959:  &lt;input type=submit&gt;
                    960: &lt;/form&gt;</pre>
                    961: 
                    962:   <p>If the user types in "cats" in the first field and "fur" in the
                    963:   second, and then hits the submit button, then the user agent will
                    964:   load <code title="">/find.cgi?t=cats&amp;q=fur</code>.</p>
                    965: 
                    966:   <p>On the other hand, consider this form:</p>
                    967: 
                    968:   <pre>&lt;form action="/find.cgi" method=post enctype="multipart/form-data"&gt;
                    969:  &lt;input type=text name=t&gt;
                    970:  &lt;input type=search name=q&gt;
                    971:  &lt;input type=submit&gt;
                    972: &lt;/form&gt;</pre>
                    973: 
                    974:   <p>Given the same user input, the result on submission is quite
                    975:   different: the user agent instead does an HTTP POST to the given
                    976:   URL, with as the entity body something like the following text:</p>
                    977: 
                    978:   <pre>------kYFrd4jNJEgCervE
                    979: Content-Disposition: form-data; name="t"
                    980: 
                    981: cats
                    982: ------kYFrd4jNJEgCervE
                    983: Content-Disposition: form-data; name="q"
                    984: 
                    985: fur
                    986: ------kYFrd4jNJEgCervE--</pre>
                    987: 
                    988: 
                    989: 
                    990:   <div class="impl">
                    991: 
                    992:   <h5 id="implicit-submission"><span class="secno">4.10.22.2 </span>Implicit submission</h5>
                    993: 
                    994:   <p>A <code><a href="the-form-element.html#the-form-element">form</a></code> element's <dfn id="default-button">default button</dfn> is the
                    995:   first <a href="forms.html#concept-submit-button" title="concept-submit-button">submit button</a> in
                    996:   <a href="infrastructure.html#tree-order">tree order</a> whose <a href="association-of-controls-and-forms.html#form-owner">form owner</a> is that
                    997:   <code><a href="the-form-element.html#the-form-element">form</a></code> element.</p>
                    998: 
                    999:   <p>If the user agent supports letting the user submit a form
                   1000:   implicitly (for example, on some platforms hitting the "enter" key
                   1001:   while a text field is focused implicitly submits the form), then
                   1002:   doing so for a form whose <a href="#default-button">default button</a> has a defined
                   1003:   <a href="content-models.html#activation-behavior">activation behavior</a> must cause the user agent to
                   1004:   <a href="content-models.html#run-synthetic-click-activation-steps">run synthetic click activation steps</a> on that
                   1005:   <a href="#default-button">default button</a>.</p>
                   1006: 
                   1007:   <p class="note">Consequently, if the <a href="#default-button">default button</a> is
                   1008:   <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a>, the form is not
                   1009:   submitted when such an implicit submission mechanism is used. (A
                   1010:   button has no <a href="content-models.html#activation-behavior">activation behavior</a> when disabled.)</p>
                   1011: 
                   1012:   <p class="note">There are pages on the Web that are only usable if
                   1013:   there is a way to implicitly submit forms, so user agents are
                   1014:   strongly encouraged to support this.</p>
                   1015: 
                   1016:   <p><!-- For Web compatibility reasons caused by obscure historical
                   1017:   accidents, -->If the form has no <a href="forms.html#concept-submit-button" title="concept-submit-button">submit button</a>, then the
                   1018:   implicit submission mechanism must do nothing if the form has more
                   1019:   than one <i>field that blocks implicit submission</i>, and must
                   1020:   <a href="#concept-form-submit" title="concept-form-submit">submit</a> the
                   1021:   <code><a href="the-form-element.html#the-form-element">form</a></code> element from the <code><a href="the-form-element.html#the-form-element">form</a></code> element itself
                   1022:   otherwise.</p>
                   1023: 
                   1024:   <p>For the purpose of the previous paragraph, an element is a
                   1025:   <i>field that blocks implicit submission</i> of a <code><a href="the-form-element.html#the-form-element">form</a></code>
                   1026:   element if it is an <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <a href="association-of-controls-and-forms.html#form-owner">form
                   1027:   owner</a> is that <code><a href="the-form-element.html#the-form-element">form</a></code> element and whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in one of the
                   1028:   following states:
                   1029:   <a href="states-of-the-type-attribute.html#text-(type=text)-state-and-search-state-(type=search)" title="attr-input-type-text">Text</a>,
                   1030:   <a href="states-of-the-type-attribute.html#text-(type=text)-state-and-search-state-(type=search)" title="attr-input-type-search">Search</a>,
                   1031:   <a href="states-of-the-type-attribute.html#url-state-(type=url)" title="attr-input-type-url">URL</a>,
                   1032:   <a href="states-of-the-type-attribute.html#telephone-state-(type=tel)" title="attr-input-type-tel">Telephone</a>,
                   1033:   <a href="states-of-the-type-attribute.html#e-mail-state-(type=email)" title="attr-input-type-email">E-mail</a>,
                   1034:   <a href="states-of-the-type-attribute.html#password-state-(type=password)" title="attr-input-type-password">Password</a>,
                   1035:   <a href="states-of-the-type-attribute.html#date-and-time-state-(type=datetime)" title="attr-input-type-datetime">Date and Time</a>,
                   1036:   <a href="states-of-the-type-attribute.html#date-state-(type=date)" title="attr-input-type-date">Date</a>,
                   1037:   <a href="states-of-the-type-attribute.html#month-state-(type=month)" title="attr-input-type-month">Month</a>,
                   1038:   <a href="states-of-the-type-attribute.html#week-state-(type=week)" title="attr-input-type-week">Week</a>,
                   1039:   <a href="states-of-the-type-attribute.html#time-state-(type=time)" title="attr-input-type-time">Time</a>,
                   1040:   <a href="states-of-the-type-attribute.html#local-date-and-time-state-(type=datetime-local)" title="attr-input-type-datetime-local">Local Date and Time</a>,
                   1041:   <a href="states-of-the-type-attribute.html#number-state-(type=number)" title="attr-input-type-number">Number</a>
                   1042:   </p>
                   1043: 
                   1044:   </div>
                   1045: 
                   1046: 
                   1047:   <div class="impl">
                   1048: 
                   1049:   <h5 id="form-submission-algorithm"><span class="secno">4.10.22.3 </span>Form submission algorithm</h5>
                   1050: 
                   1051:   <p>When a <code><a href="the-form-element.html#the-form-element">form</a></code> element <var title="">form</var> is <dfn id="concept-form-submit" title="concept-form-submit">submitted</dfn> from an element <var title="">submitter</var> (typically a button), optionally with a
                   1052:   <var title="">submitted from <code title="dom-form-submit"><a href="the-form-element.html#dom-form-submit">submit()</a></code> method</var> flag set, the
                   1053:   user agent must run the following steps:</p>
                   1054: 
                   1055:   <ol><li><p>Let <var title="">form document</var> be the <var title="">form</var>'s <code><a href="dom.html#document">Document</a></code>.</p></li>
                   1056: 
                   1057:    <li id="sandboxSubmitBlocked"><p>If <var title="">form
                   1058:    document</var> has no associated <a href="#browsing-context">browsing context</a> or
                   1059:    its <a href="#active-sandboxing-flag-set">active sandboxing flag set</a> has its
                   1060:    <a href="#sandboxed-forms-browsing-context-flag">sandboxed forms browsing context flag</a> set, then abort
                   1061:    these steps without doing anything.</p></li>
                   1062: 
                   1063:    <li><p>Let <var title="">form browsing context</var> be the
                   1064:    <a href="#browsing-context">browsing context</a> of <var title="">form
                   1065:    document</var>.</p></li>
                   1066: 
                   1067:    <li><p>If <var title="">form</var> is already being submitted
                   1068:    (i.e. the form was <a href="#concept-form-submit" title="concept-form-submit">submitted</a> again while processing
                   1069:    the events fired from the next two steps, probably from a script
                   1070:    redundantly calling the <code title="dom-form-submit"><a href="the-form-element.html#dom-form-submit">submit()</a></code> method on <var title="">form</var>), then abort these steps. This doesn't affect
                   1071:    the earlier instance of this algorithm.</p></li>
                   1072: 
                   1073:    <!-- lock (implicit in previous step) -->
                   1074: 
                   1075:    <li><p>If the <var title="">submitted from <code title="dom-form-submit"><a href="the-form-element.html#dom-form-submit">submit()</a></code> method</var> flag is not
                   1076:    set, and the <var title="">submitter</var> element's <a href="form-submission.html#concept-fs-novalidate" title="concept-fs-novalidate">no-validate state</a> is false,
                   1077:    then <a href="#interactively-validate-the-constraints">interactively validate the constraints</a> of <var title="">form</var> and examine the result: if the result is
                   1078:    negative (the constraint validation concluded that there were
                   1079:    invalid fields and probably informed the user of this) then abort
                   1080:    these steps.</p></li>
                   1081: 
                   1082:    <li><p>If the <var title="">submitted from <code title="dom-form-submit"><a href="the-form-element.html#dom-form-submit">submit()</a></code> method</var> flag is not
                   1083:    set, then <a href="#fire-a-simple-event">fire a simple event</a> that is cancelable named
                   1084:    <code title="event-submit">submit</code>, at <var title="">form</var>. If the event's default action is prevented
                   1085:    (i.e. if the event is canceled) then abort these steps. Otherwise,
                   1086:    continue (effectively the default action is to perform the
                   1087:    submission).</p></li>
                   1088: 
                   1089:    <!-- if you add any steps between the "lock" and "unlock" lines,
                   1090:    make sure to update the step immediately before the "lock" line -->
                   1091: 
                   1092:    <!-- unlock -->
                   1093: 
                   1094:    <li><p>Let <var title="">form data set</var> be the result of
                   1095:    <a href="#constructing-the-form-data-set">constructing the form data set</a> for <var title="">form</var> in the context of <var title="">submitter</var>.</p></li>
                   1096: 
                   1097:    <li><p>Let <var title="">action</var> be the <var title="">submitter</var> element's <a href="form-submission.html#concept-fs-action" title="concept-fs-action">action</a>.</p></li>
                   1098: 
                   1099:    <li>
                   1100: 
                   1101:     <p>If <var title="">action</var> is the empty string, let <var title="">action</var> be <a href="dom.html#the-document's-address">the document's address</a> of
                   1102:     the <var title="">form document</var>.</p>
                   1103: 
                   1104:     <p class="note">This step is a <a href="introduction.html#willful-violation">willful violation</a> of
                   1105:     RFC 3986, which would require base URL processing here. This
                   1106:     violation is motivated by a desire for compatibility with legacy
                   1107:     content. <a href="#refsRFC3986">[RFC3986]</a></p>
                   1108: 
                   1109:     <!-- Don't ask me why. But that's what IE does. It even treats
                   1110:     action="" differently from action=" " or action="#" (the latter
                   1111:     two resolve to the base URL, the first one resolves to the doc
                   1112:     URL). And other browsers concur. It is even required, see e.g.
                   1113:       http://bugs.webkit.org/show_bug.cgi?id=7763
                   1114:       https://bugzilla.mozilla.org/show_bug.cgi?id=297761
                   1115:     -->
                   1116: 
                   1117:    </li>
                   1118: 
                   1119:    <li><p><a href="urls.html#resolve-a-url" title="resolve a url">Resolve</a> the
                   1120:    <a href="urls.html#url">URL</a> <var title="">action</var>, relative to the <var title="">submitter</var> element. If this fails, abort these
                   1121:    steps. Otherwise, let <var title="">action</var> be the resulting
                   1122:    <a href="urls.html#absolute-url">absolute URL</a>.</p></li>
                   1123: 
                   1124:    <li><p>Let <var title="">scheme</var> be the <a href="urls.html#url-scheme" title="url-scheme">&lt;scheme&gt;</a> of the resulting
                   1125:    <a href="urls.html#absolute-url">absolute URL</a>.</p></li>
                   1126: 
                   1127:    <li><p>Let <var title="">enctype</var> be the <var title="">submitter</var> element's <a href="form-submission.html#concept-fs-enctype" title="concept-fs-enctype">enctype</a>.</p></li>
                   1128: 
                   1129:    <li><p>Let <var title="">method</var> be the <var title="">submitter</var> element's <a href="form-submission.html#concept-fs-method" title="concept-fs-method">method</a>.</p></li>
                   1130: 
                   1131:    <li><p>Let <var title="">target</var> be the <var title="">submitter</var> element's <a href="form-submission.html#concept-fs-target" title="concept-fs-target">target</a>.</p></li>
                   1132: 
                   1133:    <li><p>If the user indicated a specific <a href="#browsing-context">browsing
                   1134:    context</a> to use when submitting the form, then let <var title="">target browsing context</var> be that <a href="#browsing-context">browsing
                   1135:    context</a>. Otherwise, apply <a href="#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name">the rules for choosing a
                   1136:    browsing context given a browsing context name</a> using <var title="">target</var> as the name and <var title="">form browsing
                   1137:    context</var> as the context in which the algorithm is executed,
                   1138:    and let <var title="">target browsing context</var> be the
                   1139:    resulting <a href="#browsing-context">browsing context</a>.</p></li>
                   1140: 
                   1141:    <li><p>If <var title="">target browsing context</var> was created
                   1142:    in the previous step, or if the <var title="">form document</var>
                   1143:    has not yet <a href="#completely-loaded">completely loaded</a>, then let <var title="">replace</var> be true. Otherwise, let it be
                   1144:    false.</p></li>
                   1145: 
                   1146:    <li>
                   1147: 
                   1148: <!--FORM-DIALOG-->
                   1149: 
                   1150:     <p>Otherwise, select the appropriate row in the table below based
                   1151:     on the value of <var title="">scheme</var> as given by the first
                   1152:     cell of each row. Then, select the appropriate cell on that row
                   1153:     based on the value of <var title="">method</var> as given in the
                   1154:     first cell of each column. Then, jump to the steps named in that
                   1155:     cell and defined below the table.</p>
                   1156: 
                   1157:     <table><thead><tr><td>
                   1158:       </td><th> <a href="form-submission.html#attr-fs-method-get" title="attr-fs-method-GET">GET</a>
                   1159:       </th><th> <a href="form-submission.html#attr-fs-method-post" title="attr-fs-method-POST">POST</a>
                   1160:      </th></tr></thead><tbody><tr><th> <code title="">http</code>
                   1161:       </th><td> <a href="#submit-mutate-action" title="submit-mutate-action">Mutate action URL</a>
                   1162:       </td><td> <a href="#submit-body" title="submit-body">Submit as entity body</a>
                   1163:      </td></tr><tr><th> <code title="">https</code>
                   1164:       </th><td> <a href="#submit-mutate-action" title="submit-mutate-action">Mutate action URL</a>
                   1165:       </td><td> <a href="#submit-body" title="submit-body">Submit as entity body</a>
                   1166:      </td></tr><tr><th> <code title="">ftp</code>
                   1167:       </th><td> <a href="#submit-get-action" title="submit-get-action">Get action URL</a>
                   1168:       </td><td> <a href="#submit-get-action" title="submit-get-action">Get action URL</a>
                   1169:      </td></tr><tr><th> <code title="">javascript</code>
                   1170:       </th><td> <a href="#submit-get-action" title="submit-get-action">Get action URL</a>
                   1171:       </td><td> <a href="#submit-get-action" title="submit-get-action">Get action URL</a>
                   1172:      </td></tr><tr><th> <code title="">data</code>
                   1173:       </th><td> <a href="#submit-get-action" title="submit-get-action">Get action URL</a>
                   1174:       </td><td> <a href="#submit-data-post" title="submit-data-post">Post to data:</a>
                   1175:      </td></tr><tr><th> <code title="">mailto</code>
                   1176:       </th><td> <a href="#submit-mailto-headers" title="submit-mailto-headers">Mail with headers</a>
                   1177:       </td><td> <a href="#submit-mailto-body" title="submit-mailto-body">Mail as body</a>
                   1178:     </td></tr></tbody></table><p>If <var title="">scheme</var> is not one of those listed in
                   1179:     this table, then the behavior is not defined by this
                   1180:     specification. User agents should, in the absence of another
                   1181:     specification defining this, act in a manner analogous to that
                   1182:     defined in this specification for similar schemes.</p>
                   1183: 
                   1184:     <p>The behaviors are as follows:</p>
                   1185: 
                   1186:     <dl><dt><dfn id="submit-mutate-action" title="submit-mutate-action">Mutate action URL</dfn>
                   1187:      </dt><dd>
                   1188: 
                   1189:       <p>Let <var title="">query</var> be the result of encoding the
                   1190:       <var title="">form data set</var> using the <a href="#application/x-www-form-urlencoded-encoding-algorithm"><code title="">application/x-www-form-urlencoded</code> encoding
                   1191:       algorithm</a>, interpreted as a US-ASCII string.</p>
                   1192: 
                   1193:       <!-- by this point we've already tried to resolve the URL, so we
                   1194:       know we can parse it -->
                   1195: 
                   1196:       <p>Let <var title="">destination</var> be a new <a href="urls.html#url">URL</a>
                   1197:       that is equal to the <var title="">action</var> except that its
                   1198:       <a href="urls.html#url-query" title="url-query">&lt;query&gt;</a> component is
                   1199:       replaced by <var title="">query</var> (adding a "?" (U+003F) character if appropriate).</p>
                   1200: 
                   1201:       <p><a href="#navigate">Navigate</a><!--DONAV form--> <var title="">target
                   1202:       browsing context</var> to <var title="">destination</var>. If
                   1203:       <var title="">replace</var> is true, then <var title="">target
                   1204:       browsing context</var> must be navigated with <a href="#replacement-enabled">replacement
                   1205:       enabled</a>.</p>
                   1206: 
                   1207:      </dd>
                   1208: 
                   1209:      <dt><dfn id="submit-body" title="submit-body">Submit as entity body</dfn>
                   1210:      </dt><dd>
                   1211: 
                   1212:       <p>Let <var title="">entity body</var> be the result of encoding
                   1213:       the <var title="">form data set</var> using the
                   1214:       <a href="#appropriate-form-encoding-algorithm">appropriate form encoding algorithm</a>.</p>
                   1215: 
                   1216:       <p>Let <var title="">MIME type</var> be determined as
                   1217:       follows:</p>
                   1218: 
                   1219:       <dl><dt>If <var title="">enctype</var> is <code title="attr-fs-enctype-urlencoded"><a href="form-submission.html#attr-fs-enctype-urlencoded">application/x-www-form-urlencoded</a></code></dt>
                   1220: 
                   1221:        <dd>Let <var title="">MIME type</var> be "<code title="">application/x-www-form-urlencoded</code>".</dd>
                   1222: 
                   1223:        <dt>If <var title="">enctype</var> is <code title="attr-fs-enctype-formdata"><a href="form-submission.html#attr-fs-enctype-formdata">multipart/form-data</a></code></dt>
                   1224: 
                   1225:        <dd>Let <var title="">MIME type</var> be the concatenation of
                   1226:        the string "<code title="">multipart/form-data;</code>", a
                   1227:        U+0020 SPACE character, the string "<code title="">boundary=</code>", and the <a href="#multipart/form-data-boundary-string"><code title="">multipart/form-data</code> boundary string</a>
                   1228:        generated by the <a href="#multipart/form-data-encoding-algorithm"><code title="">multipart/form-data</code> encoding
                   1229:        algorithm</a>.</dd>
                   1230: 
                   1231:        <dt>If <var title="">enctype</var> is <code title="attr-fs-enctype-text"><a href="form-submission.html#attr-fs-enctype-text">text/plain</a></code></dt>
                   1232: 
                   1233:        <dd>Let <var title="">MIME type</var> be "<code title="">text/plain</code>".</dd>
                   1234: 
                   1235:       </dl><!--<p>If <var title="">method</var> is anything but (GET or)
                   1236:       POST, and the <span>origin</span> of <var title="">action</var>
                   1237:       is not the <span>same origin</span> as that of <var
                   1238:       title="">form document</var>, then abort these steps.</p> [or do
                   1239:       CORS] (this is commented out since only POST can trigger this
                   1240:       now, and that's historically unrestricted)--><p>Otherwise, <a href="#navigate">navigate</a><!--DONAV form--> <var title="">target browsing context</var> to <var title="">action</var> using the HTTP method given by <var title="">method</var> and with <var title="">entity body</var>
                   1241:       as the entity body, of type <var title="">MIME type</var>. If
                   1242:       <var title="">replace</var> is true, then <var title="">target
                   1243:       browsing context</var> must be navigated with <a href="#replacement-enabled">replacement
                   1244:       enabled</a>.</p>
                   1245: 
                   1246:      </dd>
                   1247: 
                   1248:      <dt><dfn id="submit-get-action" title="submit-get-action">Get action URL</dfn>
                   1249:      </dt><dd>
                   1250: 
                   1251:       <p><a href="#navigate">Navigate</a><!--DONAV form--> <var title="">target
                   1252:       browsing context</var> to <var title="">action</var>. If <var title="">replace</var> is true, then <var title="">target
                   1253:       browsing context</var> must be navigated with <a href="#replacement-enabled">replacement
                   1254:       enabled</a>.</p>
                   1255: 
                   1256:      </dd>
                   1257: 
                   1258:      <dt><dfn id="submit-data-post" title="submit-data-post">Post to data:</dfn>
                   1259:      </dt><dd>
                   1260: 
                   1261:       <p>Let <var title="">data</var> be the result of encoding the
                   1262:       <var title="">form data set</var> using the <a href="#appropriate-form-encoding-algorithm">appropriate
                   1263:       form encoding algorithm</a>.</p>
                   1264: 
                   1265:       <p>If <var title="">action</var> contains the string "<code title="">%%%%</code>" (four U+0025 PERCENT SIGN characters),
                   1266:       then %-escape all bytes in <var title="">data</var> that, if
                   1267:       interpreted as US-ASCII, do not match the <code title="">unreserved</code> production in the URI Generic Syntax,
                   1268:       and then, treating the result as a US-ASCII string, further
                   1269:       %-escape all the U+0025 PERCENT SIGN characters in the resulting
                   1270:       string and replace the first occurrence of "<code title="">%%%%</code>" in <var title="">action</var> with the
                   1271:       resulting double-escaped string. <a href="#refsRFC3986">[RFC3986]</a></p>
                   1272: 
                   1273:       <p>Otherwise, if <var title="">action</var> contains the string
                   1274:       "<code title="">%%</code>" (two U+0025 PERCENT SIGN characters
                   1275:       in a row, but not four), then %-escape all characters in <var title="">data</var> that, if interpreted as US-ASCII, do not
                   1276:       match the <code title="">unreserved</code> production in the URI
                   1277:       Generic Syntax, and then, treating the result as a US-ASCII
                   1278:       string, replace the first occurrence of "<code title="">%%</code>" in <var title="">action</var> with the
                   1279:       resulting escaped string. <a href="#refsRFC3986">[RFC3986]</a></p>
                   1280: 
                   1281:       <p><a href="#navigate">Navigate</a><!--DONAV form--> <var title="">target
                   1282:       browsing context</var> to the potentially modified <var title="">action</var> (which will be a <a href="infrastructure.html#data-protocol" title="data
                   1283:       protocol"><code title="">data:</code> URL</a>). If <var title="">replace</var> is true, then <var title="">target
                   1284:       browsing context</var> must be navigated with <a href="#replacement-enabled">replacement
                   1285:       enabled</a>.</p>
                   1286: 
                   1287:      </dd>
                   1288: 
                   1289:      <dt><dfn id="submit-mailto-headers" title="submit-mailto-headers">Mail with headers</dfn>
                   1290:      </dt><dd>
                   1291: 
                   1292:       <p>Let <var title="">headers</var> be the resulting encoding the
                   1293:       <var title="">form data set</var> using the <a href="#application/x-www-form-urlencoded-encoding-algorithm"><code title="">application/x-www-form-urlencoded</code> encoding
                   1294:       algorithm</a>, interpreted as a US-ASCII string.</p>
                   1295: 
                   1296:       <p>Replace occurrences of "+" (U+002B) characters in
                   1297:       <var title="">headers</var> with the string "<code title="">%20</code>".</p>
                   1298: 
                   1299:       <p>Let <var title="">destination</var> consist of all the
                   1300:       characters from the first character in <var title="">action</var> to the character immediately before the
                   1301:       first "?" (U+003F) character, if any, or the end of
                   1302:       the string if there are none.</p>
                   1303: 
                   1304:       <p>Append a single "?" (U+003F) character to <var title="">destination</var>.</p>
                   1305: 
                   1306:       <p>Append <var title="">headers</var> to <var title="">destination</var>.</p>
                   1307: 
                   1308:       <p><a href="#navigate">Navigate</a><!--DONAV form--> <var title="">target
                   1309:       browsing context</var> to <var title="">destination</var>. If
                   1310:       <var title="">replace</var> is true, then <var title="">target
                   1311:       browsing context</var> must be navigated with <a href="#replacement-enabled">replacement
                   1312:       enabled</a>.</p>
                   1313: 
                   1314:      </dd>
                   1315: 
                   1316:      <dt><dfn id="submit-mailto-body" title="submit-mailto-body">Mail as body</dfn>
                   1317:      </dt><dd>
                   1318: 
                   1319:       <p>Let <var title="">body</var> be the resulting encoding the
                   1320:       <var title="">form data set</var> using the <a href="#appropriate-form-encoding-algorithm">appropriate
                   1321:       form encoding algorithm</a> and then %-escaping all the bytes
                   1322:       in the resulting byte string that, when interpreted as US-ASCII,
                   1323:       do not match the <code title="">unreserved</code> production in
                   1324:       the URI Generic Syntax. <a href="#refsRFC3986">[RFC3986]</a></p>
                   1325: 
                   1326:       <p>Let <var title="">destination</var> have the same value as
                   1327:       <var title="">action</var>.</p>
                   1328: 
                   1329:       <p>If <var title="">destination</var> does not contain a "?" (U+003F) character, append a single "?" (U+003F) character to <var title="">destination</var>. Otherwise, append a single U+0026
                   1330:       AMPERSAND character (&amp;).</p>
                   1331: 
                   1332:       <p>Append the string "<code title="">body=</code>" to <var title="">destination</var>.</p>
                   1333: 
                   1334:       <p>Append <var title="">body</var>, interpreted as a US-ASCII
                   1335:       string, to <var title="">destination</var>.</p>
                   1336: 
                   1337:       <p><a href="#navigate">Navigate</a><!--DONAV form--> <var title="">target
                   1338:       browsing context</var> to <var title="">destination</var>. If
                   1339:       <var title="">replace</var> is true, then <var title="">target
                   1340:       browsing context</var> must be navigated with <a href="#replacement-enabled">replacement
                   1341:       enabled</a>.</p>
                   1342: 
                   1343:      </dd>
                   1344: 
                   1345: 
                   1346: <!--FORM-DIALOG-->
                   1347: 
                   1348:     </dl><p>The <dfn id="appropriate-form-encoding-algorithm">appropriate form encoding algorithm</dfn> is
                   1349:     determined as follows:</p>
                   1350: 
                   1351:     <dl><dt>If <var title="">enctype</var> is <code title="attr-fs-enctype-urlencoded"><a href="form-submission.html#attr-fs-enctype-urlencoded">application/x-www-form-urlencoded</a></code></dt>
                   1352: 
                   1353:      <dd>Use the <a href="#application/x-www-form-urlencoded-encoding-algorithm"><code title="">application/x-www-form-urlencoded</code> encoding
                   1354:      algorithm</a>.</dd>
                   1355: 
                   1356:      <dt>If <var title="">enctype</var> is <code title="attr-fs-enctype-formdata"><a href="form-submission.html#attr-fs-enctype-formdata">multipart/form-data</a></code></dt>
                   1357: 
                   1358:      <dd>Use the <a href="#multipart/form-data-encoding-algorithm"><code title="">multipart/form-data</code> encoding
                   1359:      algorithm</a>.</dd>
                   1360: 
                   1361:      <dt>If <var title="">enctype</var> is <code title="attr-fs-enctype-text"><a href="form-submission.html#attr-fs-enctype-text">text/plain</a></code></dt>
                   1362: 
                   1363:      <dd>Use the <a href="#text/plain-encoding-algorithm"><code title="">text/plain</code> encoding
                   1364:      algorithm</a>.</dd>
                   1365: 
                   1366:     </dl></li>
                   1367: 
                   1368:   </ol><h5 id="constructing-form-data-set"><span class="secno">4.10.22.4 </span>Constructing the form data set</h5>
                   1369: 
                   1370:   <p>The algorithm to <dfn id="constructing-the-form-data-set" title="constructing the form data
                   1371:   set">construct the form data set</dfn> for a form <var title="">form</var> optionally in the context of a submitter <var title="">submitter</var> is as follows. If not specified otherwise,
                   1372:   <var title="">submitter</var> is null.</p>
                   1373: 
                   1374:   <ol><li><p>Let <var title="">controls</var> be a list of all the <a href="forms.html#category-submit" title="category-submit">submittable elements</a> whose
                   1375:    <a href="association-of-controls-and-forms.html#form-owner">form owner</a> is <var title="">form</var>, in <a href="infrastructure.html#tree-order">tree
                   1376:    order</a>.</p></li>
                   1377: 
                   1378:    <li><p>Let the <var title="">form data set</var> be a list of
                   1379:    name-value-type tuples, initially empty.</p></li>
                   1380: 
                   1381:    <li>
                   1382: 
                   1383:     <p><i>Loop</i>: For each element <var title="">field</var> in <var title="">controls</var>, in <a href="infrastructure.html#tree-order">tree order</a>, run the
                   1384:     following substeps:</p>
                   1385: 
                   1386:     <ol><li>
                   1387: 
                   1388:       <p>If any of the following conditions are met, then skip these
                   1389:       substeps for this element:</p>
                   1390: 
                   1391:       <ul><li>The <var title="">field</var> element has a
                   1392:        <code><a href="the-datalist-element.html#the-datalist-element">datalist</a></code> element ancestor.</li>
                   1393: 
                   1394:        <li>The <var title="">field</var> element is <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a>.</li>
                   1395: 
                   1396:        <li>The <var title="">field</var> element is a <a href="forms.html#concept-button" title="concept-button">button</a> but it is not <var title="">submitter</var>.</li>
                   1397: 
                   1398:        <li>The <var title="">field</var> element is an
                   1399:        <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#checkbox-state-(type=checkbox)" title="attr-input-type-checkbox">Checkbox</a> state and
                   1400:        whose <a href="attributes-common-to-form-controls.html#concept-fe-checked" title="concept-fe-checked">checkedness</a> is
                   1401:        false.</li>
                   1402: 
                   1403:        <li>The <var title="">field</var> element is an
                   1404:        <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#radio-button-state-(type=radio)" title="attr-input-type-radio">Radio Button</a> state and
                   1405:        whose <a href="attributes-common-to-form-controls.html#concept-fe-checked" title="concept-fe-checked">checkedness</a> is
                   1406:        false.</li>
                   1407: 
                   1408:        <li>The <var title="">field</var> element is not an
                   1409:        <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#image-button-state-(type=image)" title="attr-input-type-image">Image Button</a> state, and
                   1410:        either the <var title="">field</var> element does not have a
                   1411:        <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">name</a></code> attribute specified, or
                   1412:        its <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">name</a></code> attribute's value is
                   1413:        the empty string.</li>
                   1414: 
                   1415:        <li>The <var title="">field</var> element is an
                   1416:        <code><a href="the-object-element.html#the-object-element">object</a></code> element that is not using a
                   1417:        <a href="infrastructure.html#plugin">plugin</a>.</li>
                   1418: 
                   1419:       </ul><p>Otherwise, process <var title="">field</var> as follows:</p>
                   1420: 
                   1421:      </li>
                   1422: 
                   1423:      <li><p>Let <var title="">type</var> be the value of the <code title="">type</code> IDL attribute of <var title="">field</var>.</p></li> <!-- if the field is an <object>
                   1424:      element, this will get ignored. -->
                   1425: 
                   1426:      <li>
                   1427: 
                   1428:       <p>If the <var title="">field</var> element is an
                   1429:       <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#image-button-state-(type=image)" title="attr-input-type-image">Image Button</a> state,
                   1430:       then run these further nested substeps:</p>
                   1431: 
                   1432:       <ol><li><p>If the <var title="">field</var> element has a <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">name</a></code> attribute specified and its
                   1433:        value is not the empty string, let <var title="">name</var> be
                   1434:        that value followed by a single "." (U+002E) character.
                   1435:        Otherwise, let <var title="">name</var> be the empty
                   1436:        string.</p></li>
                   1437: 
                   1438:        <li><p>Let <var title="">name<sub title="">x</sub></var> be the
                   1439:        string consisting of the concatenation of <var title="">name</var> and a single "x" (U+0078) character.</p></li>
                   1440: 
                   1441:        <li><p>Let <var title="">name<sub title="">y</sub></var> be the
                   1442:        string consisting of the concatenation of <var title="">name</var> and a single "y" (U+0079) character.</p></li>
                   1443: 
                   1444:        <li><p>The <var title="">field</var> element is <var title="">submitter</var>, and before this algorithm was invoked
                   1445:        the user <a href="states-of-the-type-attribute.html#concept-input-type-image-coordinate" title="concept-input-type-image-coordinate">indicated a
                   1446:        coordinate</a>. Let <var title="">x</var> be the <var title="">x</var>-component of the coordinate selected by the
                   1447:        user, and let <var title="">y</var> be the <var title="">y</var>-component of the coordinate selected by the
                   1448:        user.</p></li>
                   1449: 
                   1450:        <li><p>Append an entry to the <var title="">form data set</var>
                   1451:        with the name <var title="">name<sub title="">x</sub></var>,
                   1452:        the value <var title="">x</var>, and the type <var title="">type</var>.</p></li>
                   1453: 
                   1454:        <li><p>Append an entry to the <var title="">form data set</var>
                   1455:        with the name <var title="">name<sub title="">y</sub></var> and
                   1456:        the value <var title="">y</var>, and the type <var title="">type</var>.</p></li>
                   1457: 
                   1458:        <li><p>Skip the remaining substeps for this element: if there
                   1459:        are any more elements in <var title="">controls</var>, return
                   1460:        to the top of the <i>loop</i> step, otherwise, jump to the
                   1461:        <i>end</i> step below.</p></li>
                   1462: 
                   1463:       </ol></li>
                   1464: 
                   1465:      <li><p>Let <var title="">name</var> be the value of the <var title="">field</var> element's <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">name</a></code> attribute.</p></li>
                   1466: 
                   1467:      <li><p>If the <var title="">field</var> element is a
                   1468:      <code><a href="the-select-element.html#the-select-element">select</a></code> element, then for each <code><a href="the-option-element.html#the-option-element">option</a></code>
                   1469:      element in the <code><a href="the-select-element.html#the-select-element">select</a></code> element whose <a href="the-option-element.html#concept-option-selectedness" title="concept-option-selectedness">selectedness</a> is true,
                   1470:      append an entry to the <var title="">form data set</var> with the
                   1471:      <var title="">name</var> as the name, the <a href="the-option-element.html#concept-option-value" title="concept-option-value">value</a> of the
                   1472:      <code><a href="the-option-element.html#the-option-element">option</a></code> element as the value, and <var title="">type</var> as the type.</p></li>
                   1473: 
                   1474:      <li>
                   1475: 
                   1476:       <p>Otherwise, if the <var title="">field</var> element is an
                   1477:       <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#checkbox-state-(type=checkbox)" title="attr-input-type-checkbox">Checkbox</a> state or the
                   1478:       <a href="states-of-the-type-attribute.html#radio-button-state-(type=radio)" title="attr-input-type-radio">Radio Button</a> state,
                   1479:       then run these further nested substeps:</p>
                   1480: 
                   1481:       <ol><li><p>If the <var title="">field</var> element has a <code title="attr-input-value"><a href="the-input-element.html#attr-input-value">value</a></code> attribute specified, then
                   1482:        let <var title="">value</var> be the value of that attribute;
                   1483:        otherwise, let <var title="">value</var> be the string
                   1484:        "<code title="">on</code>".</p></li>
                   1485: 
                   1486:        <li><p>Append an entry to the <var title="">form data set</var>
                   1487:        with <var title="">name</var> as the name, <var title="">value</var> as the value, and <var title="">type</var>
                   1488:        as the type.</p></li>
                   1489: 
                   1490:       </ol></li>
                   1491: 
                   1492:      <li><p>Otherwise, if the <var title="">field</var> element is an
                   1493:      <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#file-upload-state-(type=file)" title="attr-input-type-file">File Upload</a> state, then for
                   1494:      each file <a href="states-of-the-type-attribute.html#concept-input-type-file-selected" title="concept-input-type-file-selected">selected</a> in the
                   1495:      <code><a href="the-input-element.html#the-input-element">input</a></code> element, append an entry to the <var title="">form data set</var> with the <var title="">name</var> as
                   1496:      the name, the file (consisting of the name, the type, and the
                   1497:      body) as the value, and <var title="">type</var> as the type. If
                   1498:      there are no <a href="states-of-the-type-attribute.html#concept-input-type-file-selected" title="concept-input-type-file-selected">selected files</a>,
                   1499:      then append an entry to the <var title="">form data set</var>
                   1500:      with the <var title="">name</var> as the name, the empty string
                   1501:      as the value, and <code>application/octet-stream</code> as the
                   1502:      type.</p></li>
                   1503:      <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=529859 -->
                   1504: 
                   1505:      <li><p>Otherwise, if the <var title="">field</var> element is an
                   1506:      <code><a href="the-object-element.html#the-object-element">object</a></code> element: try to obtain a form submission
                   1507:      value from the <a href="infrastructure.html#plugin">plugin</a><!-- using NPAPI's
                   1508:      NPP_GetValue() entry point with the NPPVformValue variable -->,
                   1509:      and if that is successful, append an entry to the <var title="">form data set</var> with <var title="">name</var> as the
                   1510:      name, the returned form submission value as the value, and the
                   1511:      string "<code title="">object</code>" as the type.</p></li>
                   1512: 
                   1513:      <li><p>Otherwise, append an entry to the <var title="">form data
                   1514:      set</var> with <var title="">name</var> as the name, the <a href="attributes-common-to-form-controls.html#concept-fe-value" title="concept-fe-value">value</a> of the <var title="">field</var> element as the value, and <var title="">type</var> as the type.</p></li>
                   1515: 
                   1516:      <li>
                   1517: 
                   1518:       <p>If the element has a <a href="form-submission.html#form-control-dirname-attribute">form control <code title="">dirname</code> attribute</a>, and that attribute's
                   1519:       value is not the empty string, then run these substeps:</p>
                   1520: 
                   1521:       <ol><li><p>Let <var title="">dirname</var> be the value of the
                   1522:        element's <code title="">dirname</code> attribute.</p></li>
                   1523: 
                   1524:        <li><p>Let <var title="">dir</var> be the string "<code title="">ltr</code>" if <a href="global-attributes.html#the-directionality">the directionality</a> of the
                   1525:        element is '<a href="global-attributes.html#concept-ltr" title="concept-ltr">ltr</a>', and "<code title="">rtl</code>" otherwise (i.e. when <a href="global-attributes.html#the-directionality">the
                   1526:        directionality</a> of the element is '<a href="global-attributes.html#concept-rtl" title="concept-rtl">rtl</a>').</p></li>
                   1527: 
                   1528:        <li><p>Append an entry to the <var title="">form data set</var>
                   1529:        with <var title="">dirname</var> as the name, <var title="">dir</var> as the value, and the string "<code title="">direction</code>" as the type.</p></li>
                   1530: 
                   1531:       </ol><p class="note">An element can only have a <a href="form-submission.html#form-control-dirname-attribute">form control
                   1532:       <code title="">dirname</code> attribute</a> if it is a
                   1533:       <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> element or an <code><a href="the-input-element.html#the-input-element">input</a></code> element
                   1534:       whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in
                   1535:       either the <a href="states-of-the-type-attribute.html#text-(type=text)-state-and-search-state-(type=search)" title="attr-input-type-text">Text</a> state
                   1536:       or the <a href="states-of-the-type-attribute.html#text-(type=text)-state-and-search-state-(type=search)" title="attr-input-type-search">Search</a>
                   1537:       state.</p>
                   1538: 
                   1539:      </li>
                   1540: 
                   1541:     </ol></li>
                   1542: 
                   1543:    <li>
                   1544: 
                   1545:     <p><i>End</i>: For the name of each entry in the <var title="">form data set</var>, and for the value of each entry in
                   1546:     the <var title="">form data set</var> whose type is not "<code title="">file</code>" or "<code title="">textarea</code>", replace
                   1547:     every occurrence of a "CR" (U+000D) character not
                   1548:     followed by a "LF" (U+000A) character, and every
                   1549:     occurrence of a "LF" (U+000A) character not preceded by a
                   1550:     "CR" (U+000D) character, by a two-character string
                   1551:     consisting of a U+000D CARRIAGE RETURN U+000A LINE FEED (CRLF)
                   1552:     character pair.</p>
                   1553: 
                   1554:     <p class="note">In the case of the <a href="attributes-common-to-form-controls.html#concept-fe-value" title="concept-fe-value">value</a> of <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>
                   1555:     elements, this newline normalization is already performed during
                   1556:     the conversion of the control's <a href="the-textarea-element.html#concept-textarea-raw-value" title="concept-textarea-raw-value">raw value</a> into the
                   1557:     control's <a href="attributes-common-to-form-controls.html#concept-fe-value" title="concept-fe-value">value</a> (which also
                   1558:     performs any necesary line wrapping). In the case of
                   1559:     <code><a href="the-input-element.html#the-input-element">input</a></code> elements <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attributes in the <a href="states-of-the-type-attribute.html#file-upload-state-(type=file)" title="attr-input-type-file">File Upload</a> state, the value
                   1560:     is not normalized.</p>
                   1561: 
                   1562:    </li>
                   1563: 
                   1564:    <li><p>Return the <var title="">form data set</var>.</p></li>
                   1565: 
                   1566:   </ol></div>
                   1567: 
                   1568: 
                   1569:   <h5 id="url-encoded-form-data"><span class="secno">4.10.22.5 </span>URL-encoded form data</h5>
                   1570: 
                   1571:   <p class="note">This form data set encoding is in many ways an
                   1572:   aberrant monstrosity, the result of many years of implementation
                   1573:   accidents and compromises leading to a set of requirements necessary
                   1574:   for interoperability, but in no way representing good design
                   1575:   practices. In particular, readers are cautioned to pay close
                   1576:   attention to the twisted details involving repeated (and in some
                   1577:   cases nested) conversions between character encodings and byte
                   1578:   sequences.</p>
                   1579: 
                   1580:   <div class="impl">
                   1581: 
                   1582:   <p>The <dfn id="application/x-www-form-urlencoded-encoding-algorithm"><code title="">application/x-www-form-urlencoded</code> encoding
                   1583:   algorithm</dfn> is as follows:</p>
                   1584: 
                   1585:   <ol><!-- the first few steps of this are the same as in the next section --><li><p>Let <var title="">result</var> be the empty string.</p></li>
                   1586: 
                   1587:    <li>
                   1588: 
                   1589:     <p>If the <code><a href="the-form-element.html#the-form-element">form</a></code> element has an <code title="attr-form-accept-charset"><a href="the-form-element.html#attr-form-accept-charset">accept-charset</a></code> attribute,
                   1590:     then, taking into account the characters found in the <var title="">form data set</var>'s names and values, and the character
                   1591:     encodings supported by the user agent, select a character encoding
                   1592:     from the list given in the <code><a href="the-form-element.html#the-form-element">form</a></code>'s <code title="attr-form-accept-charset"><a href="the-form-element.html#attr-form-accept-charset">accept-charset</a></code> attribute
                   1593:     that is an <a href="infrastructure.html#ascii-compatible-character-encoding">ASCII-compatible character encoding</a>. If
                   1594:     none of the encodings are supported, or if none are listed, then
                   1595:     let the selected character encoding be UTF-8.</p>
                   1596: 
                   1597:     <p>Otherwise, if the <a href="infrastructure.html#document's-character-encoding">document's character encoding</a> is
                   1598:     an <a href="infrastructure.html#ascii-compatible-character-encoding">ASCII-compatible character encoding</a>, then that is
                   1599:     the selected character encoding.</p>
                   1600: 
                   1601:     <p>Otherwise, let the selected character encoding be UTF-8.</p>
                   1602: 
                   1603:    </li>
                   1604: 
                   1605:    <li><p>Let <var title="">charset</var> be the <a href="infrastructure.html#preferred-mime-name">preferred MIME
                   1606:    name</a> of the selected character encoding.</p></li>
                   1607: 
                   1608:    <li>
                   1609: 
                   1610:     <p>For each entry in the <var title="">form data set</var>,
                   1611:     perform these substeps:</p>
                   1612: 
                   1613:     <ol><li><p>If the entry's name is "<code title="attr-fe-name-charset"><a href="attributes-common-to-form-controls.html#attr-fe-name-charset">_charset_</a></code>"
                   1614:      and its type is "<code title="">hidden</code>", replace its value
                   1615:      with <var title="">charset</var>.</p></li>
                   1616: 
                   1617:      <li><p>If the entry's type is "<code title="">file</code>",
                   1618:      replace its value with the file's filename only.</p></li> <!--
                   1619:      this is not present in the next section -->
                   1620: 
                   1621:      <li><p>For each character in the entry's name and value that
                   1622:      cannot be expressed using the selected character encoding,
                   1623:      replace the character by a string consisting of a U+0026
                   1624:      AMPERSAND character (&amp;), a "#" (U+0023) character,
                   1625:      one or more characters in the range <a href="common-microsyntaxes.html#ascii-digits">ASCII digits</a> representing the Unicode code point of the
                   1626:      character in base ten, and finally a U+003B SEMICOLON character
                   1627:      (;).</p></li><!-- we should say it should be the shortest
                   1628:      possible string, no leading zeros. this whole step is asinine,
                   1629:      though, so... -->
                   1630: 
                   1631:      <!-- this is where the similarities with the next section end -->
                   1632: 
                   1633:      <li>
                   1634: 
                   1635:       <p>Encode the entry's name and value using the selected
                   1636:       character encoding. The entry's name and value are now byte
                   1637:       strings.</p>
                   1638: 
                   1639:      </li>
                   1640: 
                   1641:      <li>
                   1642: 
                   1643:       <p>For each byte in the entry's name and value, apply the
                   1644:       appropriate subsubsteps from the following list:</p>
                   1645: 
                   1646:       <dl class="switch"><dt>The byte is 0x20 (U+0020 SPACE if interpreted as ASCII)</dt>
                   1647: 
                   1648:        <dd>Replace the byte with a single 0x2B byte ("+" (U+002B) character if interpreted as ASCII).</dd>
                   1649: 
                   1650: 
                   1651:        <!-- * - . 0-9 a-z _ A-Z -->
                   1652: 
                   1653:        <dt>If the byte is in the range 0x2A, 0x2D, 0x2E, 0x30 to 0x39,
                   1654:        0x41 to 0x5A, 0x5F, 0x61 to 0x7A</dt>
                   1655: 
                   1656:        <dd><p>Leave the byte as is.</p></dd>
                   1657: 
                   1658: 
                   1659:        <dt>Otherwise</dt>
                   1660: 
                   1661:        <dd>
                   1662: 
                   1663:         <ol><li><p>Let <var title="">s</var> be a string consisting of a
                   1664:          "%" (U+0025) character followed by two characters
                   1665:          in the ranges <a href="common-microsyntaxes.html#ascii-digits">ASCII digits</a>
                   1666:          and U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL
                   1667:          LETTER F representing the hexadecimal value of the byte in
                   1668:          question (zero-padded if necessary).</p></li>
                   1669: 
                   1670:          <li><p>Encode the string <var title="">s</var> as US-ASCII,
                   1671:          so that it is now a byte string.</p>
                   1672: 
                   1673:          </li><li><p>Replace the byte in question in the name or value
                   1674:          being processed by the bytes in <var title="">s</var>,
                   1675:          preserving their relative order.</p></li>
                   1676: 
                   1677:         </ol></dd>
                   1678: 
                   1679:       </dl></li>
                   1680: 
                   1681:      <li>
                   1682: 
                   1683:       <p>Interpret the entry's name and value as Unicode strings
                   1684:       encoded in US-ASCII. (All of the bytes in the string will be in
                   1685:       the range 0x00 to 0x7F; the high bit will be zero throughout.)
                   1686:       The entry's name and value are now Unicode strings again.</p>
                   1687: 
                   1688:      </li>
                   1689: 
                   1690:      <li><p>If the entry's name is "<code title="attr-fe-name-isindex"><a href="attributes-common-to-form-controls.html#attr-fe-name-isindex">isindex</a></code>", its type is "<code title="">text</code>", and this is the first entry in the <var title="">form data set</var>, then append the value to <var title="">result</var> and skip the rest of the substeps for this
                   1691:      entry, moving on to the next entry, if any, or the next step in
                   1692:      the overall algorithm otherwise.</p></li>
                   1693: 
                   1694:      <li><p>If this is not the first entry, append a single U+0026
                   1695:      AMPERSAND character (&amp;) to <var title="">result</var>.</p></li>
                   1696: 
                   1697:      <li><p>Append the entry's name to <var title="">result</var>.</p></li>
                   1698: 
                   1699:      <li><p>Append a single "=" (U+003D) character to <var title="">result</var>.</p></li>
                   1700: 
                   1701:      <li><p>Append the entry's value to <var title="">result</var>.</p></li>
                   1702: 
                   1703:     </ol></li>
                   1704: 
                   1705:    <li><p>Encode <var title="">result</var> as US-ASCII and return the
                   1706:    resulting byte stream.</p></li>
                   1707: 
                   1708:   </ol></div>
                   1709: 
                   1710:   <p>To <dfn id="application/x-www-form-urlencoded-decoding-algorithm" title="application/x-www-form-urlencoded decoding
                   1711:   algorithm">decode <code>application/x-www-form-urlencoded</code>
                   1712:   payloads</dfn>, the following algorithm should be used. This
                   1713:   algorithm uses as inputs the payload itself, <var title="">payload</var>, consisting of a Unicode string using only
                   1714:   characters in the range U+0000 to U+007F; a default character
                   1715:   encoding <var title="">encoding</var>; and optionally an <var title="">isindex</var> flag indicating that the payload is to be
                   1716:   processed as if it had been generated for a form containing an <code title="attr-fe-name-isindex"><a href="attributes-common-to-form-controls.html#attr-fe-name-isindex">isindex</a></code> control. The output of
                   1717:   this algorithm is a sorted list of name-value pairs. If the <var title="">isindex</var> flag is set and the first control really was
                   1718:   an <code title="attr-fe-name-isindex"><a href="attributes-common-to-form-controls.html#attr-fe-name-isindex">isindex</a></code> control, then
                   1719:   the first name-value pair will have as its name the empty
                   1720:   string.</p>
                   1721: 
                   1722:   <ol><li><p>Let <var title="">strings</var> be the result of <a href="common-microsyntaxes.html#strictly-split-a-string" title="strictly split a string">strictly splitting the
                   1723:    string</a> <var title="">payload</var> on U+0026 AMPERSAND
                   1724:    characters (&amp;).</p></li>
                   1725: 
                   1726:    <li><p>If the <var title="">isindex</var> flag is set and the first
                   1727:    string in <var title="">strings</var> does not contain a "=" (U+003D) character, insert a U+003D EQUALS SIGN character
                   1728:    (=) at the start of the first string in <var title="">strings</var>.</p></li>
                   1729: 
                   1730:    <li><p>Let <var title="">pairs</var> be an empty list of name-value
                   1731:    pairs.</p></li>
                   1732: 
                   1733:    <li>
                   1734: 
                   1735:     <p>For each string <var title="">string</var> in <var title="">strings</var>, run these substeps:</p>
                   1736: 
                   1737:     <ol><li>
                   1738: 
                   1739:       <p>If <var title="">string</var> contains a "=" (U+003D) character, then let <var title="">name</var> be the
                   1740:       substring of <var title="">string</var> from the start of <var title="">string</var> up to but excluding its first "=" (U+003D) character, and let <var title="">value</var> be
                   1741:       the substring from the first character, if any, after the first
                   1742:       "=" (U+003D) character up to the end of <var title="">string</var>. If the first U+003D EQUALS SIGN character
                   1743:       (=) is the first character, then <var title="">name</var> will
                   1744:       be the empty string. If it is the last character, then <var title="">value</var> will be the empty string.</p>
                   1745: 
                   1746:       <p>Otherwise, <var title="">string</var> contains no "=" (U+003D) characters. Let <var title="">name</var> have
                   1747:       the value of <var title="">string</var> and let <var title="">value</var> be the empty string.</p>
                   1748: 
                   1749:      </li>
                   1750: 
                   1751:      <li>
                   1752: 
                   1753:       <p>Replace any "+" (U+002B) characters in <var title="">name</var> and <var title="">value</var> with U+0020
                   1754:       SPACE characters.</p>
                   1755: 
                   1756:      </li>
                   1757: 
                   1758:      <li>
                   1759: 
                   1760:       <p>Replace any escape in <var title="">name</var> and <var title="">value</var> with the character represented by the
                   1761:       escape. This replacement most not be recursive.</p>
                   1762: 
                   1763:       <p>An escape is a "%" (U+0025) character followed by
                   1764:       two characters in the ranges <a href="common-microsyntaxes.html#ascii-digits">ASCII digits</a>, U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN
                   1765:       CAPITAL LETTER F, and U+0061 LATIN SMALL LETTER A to U+0066
                   1766:       LATIN SMALL LETTER F.</p>
                   1767: 
                   1768:       <p>The character represented by an escape is the Unicode
                   1769:       character whose code point is equal to the value of the two
                   1770:       characters after the "%" (U+0025) character,
                   1771:       interpreted as a hexadecimal number (in the range 0..255).</p>
                   1772: 
                   1773:       <p class="example">So for instance the string "<code title="">A%2BC</code>" would become "<code title="">A+C</code>".
                   1774:       Similarly, the string "<code title="">100%25AA%21</code>"
                   1775:       becomes the string "<code title="">100%AA!</code>".</p>
                   1776: 
                   1777:      </li>
                   1778: 
                   1779:      <li><p>Convert the <var title="">name</var> and <var title="">value</var> strings to their byte representation in
                   1780:      ISO-8859-1 (i.e. convert the Unicode string to a byte string,
                   1781:      mapping code points to byte values directly).</p></li>
                   1782: 
                   1783:      <li><p>Add a pair consisting of <var title="">name</var> and <var title="">value</var> to <var title="">pairs</var>.</p></li>
                   1784: 
                   1785:     </ol></li>
                   1786: 
                   1787:    <li><p>If any of the name-value pairs in <var title="">pairs</var>
                   1788:    have a name component consisting of the string "<code title="">_charset_</code>" encoded in US-ASCII, and the value
                   1789:    component of the first such pair, when decoded as US-ASCII, is the
                   1790:    name of a supported character encoding, then let <var title="">encoding</var> be that character encoding (replacing the
                   1791:    default passed to the algorithm).</p></li>
                   1792: 
                   1793:    <li><p>Convert the name and value components of each name-value
                   1794:    pair in <var title="">pairs</var> to Unicode by interpreting the
                   1795:    bytes according to the encoding <var title="">encoding</var>.</p></li>
                   1796: 
                   1797:    <li><p>Return <var title="">pairs</var>.</p></li>
                   1798: 
                   1799:   </ol><p class="note">Parameters on the
                   1800:   <code><a href="#application/x-www-form-urlencoded">application/x-www-form-urlencoded</a></code> MIME type are
                   1801:   ignored. In particular, this MIME type does not support the <code title="">charset</code> parameter.</p>
                   1802: 
                   1803: 
                   1804: 
                   1805:   <div class="impl">
                   1806: 
                   1807:   <h5 id="multipart-form-data"><span class="secno">4.10.22.6 </span>Multipart form data</h5>
                   1808: 
                   1809:   <!-- http://hixie.ch/tests/adhoc/html/forms/submission/multipart_form-data/ -->
                   1810: 
                   1811:   <!-- NOTE: This algorithm is also used by the XHR spec -->
                   1812: 
                   1813:   <p>The <dfn id="multipart/form-data-encoding-algorithm"><code title="">multipart/form-data</code> encoding
                   1814:   algorithm</dfn> is as follows:</p>
                   1815: 
                   1816:   <ol><!-- the first few steps of this are the same as in the previous section --><li><p>Let <var title="">result</var> be the empty string.</p></li>
                   1817: 
                   1818:    <li>
                   1819: 
                   1820:     <p>If the algorithm was invoked with an explicit character
                   1821:     encoding, let the selected character encoding be that encoding.
                   1822:     (This algorithm is used by other specifications, which provide an
                   1823:     explicit character encoding to avoid the dependency on the
                   1824:     <code><a href="the-form-element.html#the-form-element">form</a></code> element described in the next paragraph.)</p>
                   1825: 
                   1826:     <p>Otherwise, if the <code><a href="the-form-element.html#the-form-element">form</a></code> element has an <code title="attr-form-accept-charset"><a href="the-form-element.html#attr-form-accept-charset">accept-charset</a></code> attribute,
                   1827:     then, taking into account the characters found in the <var title="">form data set</var>'s names and values, and the character
                   1828:     encodings supported by the user agent, select a character encoding
                   1829:     from the list given in the <code><a href="the-form-element.html#the-form-element">form</a></code>'s <code title="attr-form-accept-charset"><a href="the-form-element.html#attr-form-accept-charset">accept-charset</a></code> attribute
                   1830:     that is an <a href="infrastructure.html#ascii-compatible-character-encoding">ASCII-compatible character encoding</a>. If
                   1831:     none of the encodings are supported, or if none are listed, then
                   1832:     let the selected character encoding be UTF-8.</p>
                   1833: 
                   1834:     <p>Otherwise, if the <a href="infrastructure.html#document's-character-encoding">document's character encoding</a> is
                   1835:     an <a href="infrastructure.html#ascii-compatible-character-encoding">ASCII-compatible character encoding</a>, then that is
                   1836:     the selected character encoding.</p>
                   1837: 
                   1838:     <p>Otherwise, let the selected character encoding be UTF-8.</p>
                   1839: 
                   1840:    </li>
                   1841: 
                   1842:    <li><p>Let <var title="">charset</var> be the <a href="infrastructure.html#preferred-mime-name">preferred MIME
                   1843:    name</a> of the selected character encoding.</p></li>
                   1844: 
                   1845:    <li>
                   1846: 
                   1847:     <p>For each entry in the <var title="">form data set</var>,
                   1848:     perform these substeps:</p>
                   1849: 
                   1850:     <ol><li><p>If the entry's name is "<code title="attr-fe-name-charset"><a href="attributes-common-to-form-controls.html#attr-fe-name-charset">_charset_</a></code>" and its type is
                   1851:      "<code title="">hidden</code>", replace its value with <var title="">charset</var>.</p></li>
                   1852: 
                   1853:      <!-- the step that replaces a file with its name is missing in
                   1854:      this version of the algorithm -->
                   1855: 
                   1856:      <li><p>For each character in the entry's name and value that
                   1857:      cannot be expressed using the selected character encoding,
                   1858:      replace the character by a string consisting of a U+0026
                   1859:      AMPERSAND character (&amp;), a "#" (U+0023) character,
                   1860:      one or more characters in the range <a href="common-microsyntaxes.html#ascii-digits">ASCII digits</a> representing the Unicode code point of the
                   1861:      character in base ten, and finally a U+003B SEMICOLON character
                   1862:      (;).</p></li><!-- we should say it should be the shortest
                   1863:      possible string, no leading zeros. this whole step is asinine,
                   1864:      though, so... -->
                   1865: 
                   1866:      <!-- this is where the similarities with the previous section end -->
                   1867: 
                   1868:     </ol></li>
                   1869: 
                   1870:    <li>
                   1871: 
                   1872:     <p>Encode the (now mutated) <var title="">form data set</var>
                   1873:     using the rules described by RFC 2388, <cite>Returning Values from
                   1874:     Forms: <code title="">multipart/form-data</code></cite>, and
                   1875:     return the resulting byte stream. <a href="#refsRFC2388">[RFC2388]</a></p>
                   1876: 
                   1877:     <p>Each entry in the <var title="">form data set</var> is a
                   1878:     <i>field</i>, the name of the entry is the <i>field name</i> and
                   1879:     the value of the entry is the <i>field value</i>.</p>
                   1880: 
                   1881:     <p>The order of parts must be the same as the order of fields in
                   1882:     the <var title="">form data set</var>. Multiple entries with the
                   1883:     same name must be treated as distinct fields.</p>
                   1884: 
                   1885:     <p class="note">In particular, this means that multiple files
                   1886:     submitted as part of a single <code title="">&lt;input&#160;type=file&#160;multiple&gt;</code> element
                   1887:     will result in each file having its own field; the "sets of files"
                   1888:     feature ("<code title="">multipart/mixed</code>") of RFC 2388 is
                   1889:     not used.</p>
                   1890: 
                   1891:     <p>The parts of the generated <code title="">multipart/form-data</code> resource that correspond to
                   1892:     non-file fields must not have a <code><a href="urls.html#content-type">Content-Type</a></code> header
                   1893:     specified. Their names and values must be encoded using the
                   1894:     character encoding selected above (field names in particular do
                   1895:     not get converted to a 7-bit safe encoding as suggested in RFC
                   1896:     2388).</p>
                   1897: 
                   1898:     <p>File names included in the generated <code title="">multipart/form-data</code> resource (as part of file
                   1899:     fields) must use the character encoding selected above, though the
                   1900:     precise name may be approximated if necessary (e.g. newlines could
                   1901:     be removed from file names, quotes could be changed to "%22", and
                   1902:     characters not expressible in the selected character encoding
                   1903:     could be replaced by other characters). User agents must not use
                   1904:     the RFC 2231 encoding suggested by RFC 2388.</p> <!-- this isn't a
                   1905:     willful violation since 2388 doesn't make it a requirement, it
                   1906:     just vaguely suggests it -->
                   1907: 
                   1908:     <p>The boundary used by the user agent in generating the return
                   1909:     value of this algorithm is the <dfn id="multipart/form-data-boundary-string"><code title="">multipart/form-data</code> boundary string</dfn>. (This
                   1910:     value is used to generate the MIME type of the form submission
                   1911:     payload generated by this algorithm.)</p>
                   1912: 
                   1913:    </li>
                   1914: 
                   1915:   </ol></div>
                   1916: 
                   1917:   <p>For details on how to interpret <code>multipart/form-data</code>
                   1918:   payloads, see RFC 2388. <a href="#refsRFC2388">[RFC2388]</a></p>
                   1919: 
                   1920: 
                   1921: 
                   1922:   <h5 id="plain-text-form-data"><span class="secno">4.10.22.7 </span>Plain text form data</h5>
                   1923: 
                   1924:   <div class="impl">
                   1925: 
                   1926:   <p>The <dfn id="text/plain-encoding-algorithm"><code title="">text/plain</code> encoding
                   1927:   algorithm</dfn> is as follows:</p>
                   1928: 
                   1929:   <ol><li><p>Let <var title="">result</var> be the empty string.</p></li>
                   1930: 
                   1931:    <li>
                   1932: 
                   1933:     <!-- this is different from application/x-www-form-urlencoded in
                   1934:     that it isn't limited to ASCII-compatible encodings -->
                   1935: 
                   1936:     <p>If the <code><a href="the-form-element.html#the-form-element">form</a></code> element has an <code title="attr-form-accept-charset"><a href="the-form-element.html#attr-form-accept-charset">accept-charset</a></code> attribute,
                   1937:     then, taking into account the characters found in the <var title="">form data set</var>'s names and values, and the character
                   1938:     encodings supported by the user agent, select a character encoding
                   1939:     from the list given in the <code><a href="the-form-element.html#the-form-element">form</a></code>'s <code title="attr-form-accept-charset"><a href="the-form-element.html#attr-form-accept-charset">accept-charset</a></code> attribute.
                   1940:     If none of the encodings are supported, or if none are listed,
                   1941:     then let the selected character encoding be UTF-8.</p>
                   1942: 
                   1943:     <p>Otherwise, the selected character encoding is the
                   1944:     <a href="infrastructure.html#document's-character-encoding">document's character encoding</a>.</p>
                   1945: 
                   1946:    </li>
                   1947: 
                   1948:    <li><p>Let <var title="">charset</var> be the <a href="infrastructure.html#preferred-mime-name">preferred MIME
                   1949:    name</a> of the selected character encoding.</p></li>
                   1950: 
                   1951:    <li><p>If the entry's name is "<code title="attr-fe-name-charset"><a href="attributes-common-to-form-controls.html#attr-fe-name-charset">_charset_</a></code>" and its type is
                   1952:    "<code title="">hidden</code>", replace its value with <var title="">charset</var>.</p></li>
                   1953: 
                   1954:    <li><p>If the entry's type is "<code title="">file</code>", replace
                   1955:    its value with the file's filename only.</p></li>
                   1956: 
                   1957:    <li>
                   1958: 
                   1959:     <p>For each entry in the <var title="">form data set</var>,
                   1960:     perform these substeps:</p>
                   1961: 
                   1962:     <ol><li><p>Append the entry's name to <var title="">result</var>.</p></li>
                   1963: 
                   1964:      <li><p>Append a single "=" (U+003D) character to <var title="">result</var>.</p></li>
                   1965: 
                   1966:      <li><p>Append the entry's value to <var title="">result</var>.</p></li>
                   1967: 
                   1968:      <li><p>Append a "CR" (U+000D) "LF" (U+000A)
                   1969:      character pair to <var title="">result</var>.</p></li>
                   1970: 
                   1971:     </ol></li>
                   1972: 
                   1973:    <li><p>Encode <var title="">result</var> using the selected
                   1974:    character encoding and return the resulting byte stream.</p></li>
                   1975: 
                   1976:   </ol></div>
                   1977: 
                   1978:   <p>Payloads using the <code>text/plain</code> format are intended to
                   1979:   be human readable. They are not reliably interpretable by computer,
                   1980:   as the format is ambiguous (for example, there is no way to
                   1981:   distinguish a literal newline in a value from the newline at the end
                   1982:   of the value).</p>
                   1983: 
                   1984: 
                   1985: 
                   1986:   <div class="impl">
                   1987: 
                   1988:   <h4 id="resetting-a-form"><span class="secno">4.10.23 </span>Resetting a form</h4>
                   1989: 
                   1990:   <p>When a <code><a href="the-form-element.html#the-form-element">form</a></code> element <var title="">form</var> is <dfn id="concept-form-reset" title="concept-form-reset">reset</dfn>, the user agent must
                   1991:   <a href="#fire-a-simple-event">fire a simple event</a> named <code title="event-reset">reset</code>, that is cancelable, at <var title="">form</var>, and then, if that event is not canceled, must
                   1992:   invoke the <a href="#concept-form-reset-control" title="concept-form-reset-control">reset
                   1993:   algorithm</a> of each <a href="forms.html#category-reset" title="category-reset">resettable
                   1994:   element</a> whose <a href="association-of-controls-and-forms.html#form-owner">form owner</a> is <var title="">form</var>.</p>
                   1995: 
                   1996:   <p>Each <a href="forms.html#category-reset" title="category-reset">resettable element</a>
                   1997:   defines its own <dfn id="concept-form-reset-control" title="concept-form-reset-control">reset
                   1998:   algorithm</dfn>. Changes made to form controls as part of these
                   1999:   algorithms do not count as changes caused by the user (and thus,
                   2000:   e.g., do not cause <code title="event-input">input</code> events to
                   2001:   fire).</p>
                   2002: 
                   2003:   </div>
                   2004: 
                   2005: 
                   2006: 
                   2007:   <h3 id="interactive-elements"><span class="secno">4.11 </span>Interactive elements</h3>
                   2008: 
                   2009:   <h4 id="the-details-element"><span class="secno">4.11.1 </span>The <dfn><code>details</code></dfn> element</h4>
                   2010: 
                   2011:   <dl class="element"><dt><a href="element-definitions.html#element-dfn-categories" title="element-dfn-categories">Categories</a>:</dt>
                   2012:    <dd><a href="content-models.html#flow-content-1">Flow content</a>.</dd>
                   2013:    <dd><a href="headings-and-sections.html#sectioning-root">Sectioning root</a>.</dd>
                   2014:    <dd><a href="content-models.html#interactive-content-0">Interactive content</a>.</dd>
                   2015:    <dd><a href="content-models.html#palpable-content-0">Palpable content</a>.</dd>
                   2016:    <dt><a href="element-definitions.html#element-dfn-contexts" title="element-dfn-contexts">Contexts in which this element can be used</a>:</dt>
                   2017:    <dd>Where <a href="content-models.html#flow-content-1">flow content</a> is expected.</dd>
                   2018:    <dt><a href="element-definitions.html#element-dfn-content-model" title="element-dfn-content-model">Content model</a>:</dt>
                   2019:    <dd>One <code><a href="#the-summary-element">summary</a></code> element followed by <a href="content-models.html#flow-content-1">flow content</a>.</dd>
                   2020:    <dt><a href="element-definitions.html#element-dfn-attributes" title="element-dfn-attributes">Content attributes</a>:</dt>
                   2021:    <dd><a href="global-attributes.html#global-attributes">Global attributes</a></dd>
                   2022:    <dd><code title="attr-details-open"><a href="#attr-details-open">open</a></code></dd>
                   2023:    <dt><a href="element-definitions.html#element-dfn-dom" title="element-dfn-dom">DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
                   2024:    <dd>
                   2025: <pre class="idl">interface <dfn id="htmldetailselement">HTMLDetailsElement</dfn> : <a href="elements.html#htmlelement">HTMLElement</a> {
                   2026:            attribute boolean <a href="#dom-details-open" title="dom-details-open">open</a>;
                   2027: };</pre>
                   2028:    </dd>
                   2029:   </dl><!--TOPIC:HTML--><p>The <code><a href="#the-details-element">details</a></code> element <a href="#represents">represents</a> a
                   2030:   disclosure widget from which the user can obtain additional
                   2031:   information or controls.</p>
                   2032: 
                   2033:   <p class="note">The <code><a href="#the-details-element">details</a></code> element is not appropriate
                   2034:   for footnotes. Please see <a href="#footnotes">the section on
                   2035:   footnotes</a> for details on how to mark up footnotes.</p>
                   2036: 
                   2037:   <p>The <span class="impl">first</span> <code><a href="#the-summary-element">summary</a></code> element
                   2038:   child of the element, if any, <a href="#represents">represents</a> the summary or
                   2039:   legend of the details. <span class="impl">If there is no child
                   2040:   <code><a href="#the-summary-element">summary</a></code> element, the user agent should provide its own
                   2041:   legend (e.g. "Details").</span></p>
                   2042: 
                   2043:   <p>The rest of the element's contents <a href="#represents">represents</a> the
                   2044:   additional information or controls.</p>
                   2045: 
                   2046:   <p>The <dfn id="attr-details-open" title="attr-details-open"><code>open</code></dfn>
                   2047:   content attribute is a <a href="common-microsyntaxes.html#boolean-attribute">boolean attribute</a>. If present,
                   2048:   it indicates that both the summary and the additional information is
                   2049:   to be shown to the user. If the attribute is absent, only the
                   2050:   summary is to be shown.</p>
                   2051: 
                   2052:   <div class="impl">
                   2053: 
                   2054:   <p>When the element is created, if the attribute is absent, the
                   2055:   additional information should be hidden; if the attribute is
                   2056:   present, that information should be shown. Subsequently, if the
                   2057:   attribute is removed, then the information should be hidden; if the
                   2058:   attribute is added, the information should be shown.</p>
                   2059: 
                   2060:   <p>The user agent should allow the user to request that the
                   2061:   additional information be shown or hidden. To honor a request for
                   2062:   the details to be shown, the user agent must set the <code title="attr-details-open"><a href="#attr-details-open">open</a></code> attribute on the element to
                   2063:   the value <code title="">open</code>. To honor a request for the
                   2064:   information to be hidden, the user agent must remove the <code title="attr-details-open"><a href="#attr-details-open">open</a></code> attribute from the
                   2065:   element.</p>
                   2066: 
                   2067:   <p>The <dfn id="dom-details-open" title="dom-details-open"><code>open</code></dfn> IDL
                   2068:   attribute must <a href="common-dom-interfaces.html#reflect">reflect</a> the <code title="attr-details-open"><a href="#attr-details-open">open</a></code> content attribute.</p>
                   2069: 
                   2070:   </div>
                   2071: 
                   2072:   <div class="example">
                   2073: 
                   2074:    <p>The following example shows the <code><a href="#the-details-element">details</a></code> element
                   2075:    being used to hide technical details in a progress report.</p>
                   2076: 
                   2077:    <pre>&lt;section class="progress window"&gt;
                   2078:  &lt;h1&gt;Copying "Really Achieving Your Childhood Dreams"&lt;/h1&gt;
                   2079:  &lt;details&gt;
                   2080:   &lt;summary&gt;Copying... &lt;progress max="375505392" value="97543282"&gt;&lt;/progress&gt; 25%&lt;/summary&gt;
                   2081:   &lt;dl&gt;
                   2082:    &lt;dt&gt;Transfer rate:&lt;/dt&gt; &lt;dd&gt;452KB/s&lt;/dd&gt;
                   2083:    &lt;dt&gt;Local filename:&lt;/dt&gt; &lt;dd&gt;/home/rpausch/raycd.m4v&lt;/dd&gt;
                   2084:    &lt;dt&gt;Remote filename:&lt;/dt&gt; &lt;dd&gt;/var/www/lectures/raycd.m4v&lt;/dd&gt;
                   2085:    &lt;dt&gt;Duration:&lt;/dt&gt; &lt;dd&gt;01:16:27&lt;/dd&gt;
                   2086:    &lt;dt&gt;Color profile:&lt;/dt&gt; &lt;dd&gt;SD (6-1-6)&lt;/dd&gt;
                   2087:    &lt;dt&gt;Dimensions:&lt;/dt&gt; &lt;dd&gt;320&#215;240&lt;/dd&gt;
                   2088:   &lt;/dl&gt;
                   2089:  &lt;/details&gt;
                   2090: &lt;/section&gt;</pre>
                   2091: 
                   2092:   </div>
                   2093: 
                   2094:   <div class="example">
                   2095: 
                   2096:    <p>The following shows how a <code><a href="#the-details-element">details</a></code> element can be
                   2097:    used to hide some controls by default:</p>
                   2098: 
                   2099:    <pre>&lt;details&gt;
                   2100:  &lt;summary&gt;&lt;label for=fn&gt;Name &amp; Extension:&lt;/label&gt;&lt;/summary&gt;
                   2101:  &lt;p&gt;&lt;input type=text id=fn name=fn value="Pillar Magazine.pdf"&gt;
                   2102:  &lt;p&gt;&lt;label&gt;&lt;input type=checkbox name=ext checked&gt; Hide extension&lt;/label&gt;
                   2103: &lt;/details&gt;</pre>
                   2104: 
                   2105:    <p>One could use this in conjunction with other <code><a href="#the-details-element">details</a></code>
                   2106:    in a list to allow the user to collapse a set of fields down to a
                   2107:    small set of headings, with the ability to open each one.</p>
                   2108: 
                   2109:    <p class="details-example"><img alt="" height="611" src="images/sample-details-1.png" width="345"><img alt="" height="666" src="images/sample-details-2.png" width="345"></p>
                   2110: 
                   2111:    <p>In these examples, the summary really just summarises what the
                   2112:    controls can change, and not the actual values, which is less than
                   2113:    ideal.</p>
                   2114: 
                   2115:   </div>
                   2116: 
                   2117:   <div class="example">
                   2118: 
                   2119:    <p>Because the <code title="attr-details-open"><a href="#attr-details-open">open</a></code>
                   2120:    attribute is added and removed automatically as the user interacts
                   2121:    with the control, it can be used in CSS to style the element
                   2122:    differently based on its state. Here, a stylesheet is used to
                   2123:    animate the color of the summary when the element is opened or
                   2124:    closed:</p>
                   2125: 
                   2126:    <pre>&lt;style&gt;
                   2127:  details &gt; summary { transition: color 1s; color: black; }
                   2128:  details[open] &gt; summary { color: red; }
                   2129: &lt;/style&gt;
                   2130: &lt;details&gt;
                   2131:  &lt;summary&gt;Automated Status: Operational&lt;/summary&gt;
                   2132:  &lt;p&gt;Velocity: 12m/s&lt;/p&gt;
                   2133:  &lt;p&gt;Direction: North&lt;/p&gt;
                   2134: &lt;/details&gt;</pre>
                   2135: 
                   2136:   </div>
                   2137: 
                   2138: 
                   2139:   <h4 id="the-summary-element"><span class="secno">4.11.2 </span>The <dfn><code>summary</code></dfn> element</h4>
                   2140: 
                   2141:   <dl class="element"><dt><a href="element-definitions.html#element-dfn-categories" title="element-dfn-categories">Categories</a>:</dt>
                   2142:    <dd>None.</dd>
                   2143:    <dt><a href="element-definitions.html#element-dfn-contexts" title="element-dfn-contexts">Contexts in which this element can be used</a>:</dt>
                   2144:    <dd>As the first child of a <code><a href="#the-details-element">details</a></code> element.</dd>
                   2145:    <dt><a href="element-definitions.html#element-dfn-content-model" title="element-dfn-content-model">Content model</a>:</dt>
                   2146:    <dd><a href="content-models.html#phrasing-content-1">Phrasing content</a>.</dd>
                   2147:    <dt><a href="element-definitions.html#element-dfn-attributes" title="element-dfn-attributes">Content attributes</a>:</dt>
                   2148:    <dd><a href="global-attributes.html#global-attributes">Global attributes</a></dd>
                   2149:    <dt><a href="element-definitions.html#element-dfn-dom" title="element-dfn-dom">DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
                   2150:    <dd>Uses <code><a href="elements.html#htmlelement">HTMLElement</a></code>.</dd>
                   2151:   </dl><!--TOPIC:HTML--><p>The <code><a href="#the-summary-element">summary</a></code> element <a href="#represents">represents</a> a
                   2152:   summary, caption, or legend for the rest of the contents of the
                   2153:   <code><a href="#the-summary-element">summary</a></code> element's parent <code><a href="#the-details-element">details</a></code>
                   2154:   element<span class="impl">, if any</span>.</p>
                   2155: 
                   2156: 
                   2157: 
                   2158: 
                   2159:   <h4 id="the-command-element"><span class="secno">4.11.3 </span>The <dfn id="the-command"><code>command</code></dfn> element</h4>
                   2160: 
                   2161:   <dl class="element"><dt><a href="element-definitions.html#element-dfn-categories" title="element-dfn-categories">Categories</a>:</dt>
                   2162:    <dd><a href="content-models.html#metadata-content-0">Metadata content</a>.</dd>
                   2163:    <dd><a href="content-models.html#flow-content-1">Flow content</a>.</dd>
                   2164:    <dd><a href="content-models.html#phrasing-content-1">Phrasing content</a>.</dd>
                   2165:    <dt><a href="element-definitions.html#element-dfn-contexts" title="element-dfn-contexts">Contexts in which this element can be used</a>:</dt>
                   2166:    <dd>Where <a href="content-models.html#metadata-content-0">metadata content</a> is expected.</dd>
                   2167:    <dd>Where <a href="content-models.html#phrasing-content-1">phrasing content</a> is expected.</dd>
                   2168:    <dt><a href="element-definitions.html#element-dfn-content-model" title="element-dfn-content-model">Content model</a>:</dt>
                   2169:    <dd>Empty.</dd>
                   2170:    <dt><a href="element-definitions.html#element-dfn-attributes" title="element-dfn-attributes">Content attributes</a>:</dt>
                   2171:    <dd><a href="global-attributes.html#global-attributes">Global attributes</a></dd>
                   2172:    <dd><code title="attr-command-type"><a href="#attr-command-type">type</a></code></dd>
                   2173:    <dd><code title="attr-command-label"><a href="#attr-command-label">label</a></code></dd>
                   2174:    <dd><code title="attr-command-icon"><a href="#attr-command-icon">icon</a></code></dd>
                   2175:    <dd><code title="attr-command-disabled"><a href="#attr-command-disabled">disabled</a></code></dd>
                   2176:    <dd><code title="attr-command-checked"><a href="#attr-command-checked">checked</a></code></dd>
                   2177:    <dd><code title="attr-command-radiogroup"><a href="#attr-command-radiogroup">radiogroup</a></code></dd>
                   2178:    <!--<dd><code title="attr-command-default">default</code></dd>-->
                   2179:    <dd><code title="attr-command-command"><a href="#attr-command-command">command</a></code></dd>
                   2180:    <dd>Also, the <code title="attr-command-title"><a href="#attr-command-title">title</a></code> attribute has special semantics on this element.</dd>
                   2181:    <dt><a href="element-definitions.html#element-dfn-dom" title="element-dfn-dom">DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
                   2182:    <dd>
                   2183: <pre class="idl">interface <dfn id="htmlcommandelement">HTMLCommandElement</dfn> : <a href="elements.html#htmlelement">HTMLElement</a> {
                   2184:            attribute DOMString <a href="#dom-command-type" title="dom-command-type">type</a>;
                   2185:            attribute DOMString <a href="#dom-command-label" title="dom-command-label">label</a>;
                   2186:            attribute DOMString <a href="#dom-command-icon" title="dom-command-icon">icon</a>;
                   2187:            attribute boolean <a href="#dom-command-disabled" title="dom-command-disabled">disabled</a>;
                   2188:            attribute boolean <a href="#dom-command-checked" title="dom-command-checked">checked</a>;
                   2189:            attribute DOMString <a href="#dom-command-radiogroup" title="dom-command-radiogroup">radiogroup</a>;<!--
                   2190:            attribute boolean <span title="dom-command-default">default</span>;-->
                   2191:   readonly attribute <a href="elements.html#htmlelement">HTMLElement</a>? <a href="#dom-command-command" title="dom-command-command">command</a>;
                   2192: };</pre>
                   2193:    </dd>
                   2194:   </dl><!--TOPIC:HTML--><p>The <code><a href="#the-command-element">command</a></code> element represents a command that the user
                   2195:   can invoke.</p>
                   2196: 
                   2197:   <p>A command can be explicitly part of a context menu or toolbar,
                   2198:   using the <code><a href="#the-menu-element">menu</a></code> element. It can also be put anywhere
                   2199:   else on a page, either just to define a keyboard shortcut, or to
                   2200:   define a command that is then referenced from other
                   2201:   <code><a href="#the-command-element">command</a></code> elements.</p>
                   2202: 
                   2203:   <p>A <code><a href="#the-command-element">command</a></code> element that uses the
                   2204:   <code title="attr-command-type"><a href="#attr-command-type">type</a></code>,
                   2205:   <code title="attr-command-label"><a href="#attr-command-label">label</a></code>,
                   2206:   <code title="attr-command-icon"><a href="#attr-command-icon">icon</a></code>,
                   2207:   <code title="attr-command-disabled"><a href="#attr-command-disabled">disabled</a></code>,
                   2208:   <code title="attr-command-checked"><a href="#attr-command-checked">checked</a></code>,
                   2209:   <code title="attr-command-radiogroup"><a href="#attr-command-radiogroup">radiogroup</a></code>,
                   2210:   <!--<code title="attr-command-default">default</code>,--> and
                   2211:   <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code> attributes defines a new
                   2212:   command. A <code><a href="#the-command-element">command</a></code> element that uses the <code title="attr-command-command"><a href="#attr-command-command">command</a></code> <em>attribute</em>
                   2213:   defines a command by reference to another one. This allows authors
                   2214:   to define a command once, and set its state (e.g. whether it is
                   2215:   active or disabled) in one place, and have all references to that
                   2216:   command in the user interface change at the same time.</p>
                   2217: 
                   2218:   <hr><p>The <dfn id="attr-command-type" title="attr-command-type"><code>type</code></dfn>
                   2219:   attribute indicates the kind of command: either a normal command
                   2220:   with an associated action, or a state or option that can be toggled,
                   2221:   or a selection of one item from a list of items.</p>
                   2222: 
                   2223:   <p>The attribute is an <a href="common-microsyntaxes.html#enumerated-attribute">enumerated attribute</a> with three
                   2224:   keywords and states. The "<dfn id="attr-command-type-keyword-command" title="attr-command-type-keyword-command"><code>command</code></dfn>"
                   2225:   keyword maps to the <a href="#attr-command-type-state-command" title="attr-command-type-state-command">Command</a> state, the
                   2226:   "<dfn id="attr-command-type-keyword-checkbox" title="attr-command-type-keyword-checkbox"><code>checkbox</code></dfn>"
                   2227:   keyword maps to the <a href="#attr-command-type-state-checkbox" title="attr-command-type-state-checkbox">Checkbox</a> state, and
                   2228:   the "<dfn id="attr-command-type-keyword-radio" title="attr-command-type-keyword-radio"><code>radio</code></dfn>"
                   2229:   keyword maps to the <a href="#attr-command-type-state-radio" title="attr-command-type-state-radio">Radio</a> state. The
                   2230:   <i>missing value default</i> is the <a href="#attr-command-type-state-command" title="attr-command-type-state-command">Command</a> state.</p>
                   2231: 
                   2232:   <dl><dt>The <dfn id="attr-command-type-state-command" title="attr-command-type-state-command">Command</dfn> state</dt>
                   2233: 
                   2234:    <dd><p>The element <a href="#represents">represents</a> a normal command with an associated action.</p></dd>
                   2235: 
                   2236:    <dt>The <dfn id="attr-command-type-state-checkbox" title="attr-command-type-state-checkbox">Checkbox</dfn> state</dt>
                   2237: 
                   2238:    <dd><p>The element <a href="#represents">represents</a> a state or option that can be toggled.</p></dd>
                   2239: 
                   2240:    <dt>The <dfn id="attr-command-type-state-radio" title="attr-command-type-state-radio">Radio</dfn> state</dt>
                   2241: 
                   2242:    <dd><p>The element <a href="#represents">represents</a> a selection of one item from a list of items.</p></dd>
                   2243: 
                   2244:   </dl><p>The <dfn id="attr-command-label" title="attr-command-label"><code>label</code></dfn>
                   2245:   attribute gives the name of the command, as shown to the user. The
                   2246:   <code title="attr-command-label"><a href="#attr-command-label">label</a></code> attribute must be
                   2247:   specified and must have a value that is not the empty string.</p>
                   2248: 
                   2249:   <p>The <dfn id="attr-command-title" title="attr-command-title"><code>title</code></dfn>
                   2250:   attribute gives a hint describing the command, which might be shown
                   2251:   to the user to help him.</p>
                   2252: 
                   2253:   <p>The <dfn id="attr-command-icon" title="attr-command-icon"><code>icon</code></dfn>
                   2254:   attribute gives a picture that represents the command. If the
                   2255:   attribute is specified, the attribute's value must contain a
                   2256:   <a href="urls.html#valid-non-empty-url-potentially-surrounded-by-spaces">valid non-empty URL potentially surrounded by
                   2257:   spaces</a>. <span class="impl">To obtain the <a href="urls.html#absolute-url">absolute
                   2258:   URL</a> of the icon when the attribute's value is not the empty
                   2259:   string, the attribute's value must be <a href="urls.html#resolve-a-url" title="resolve a
                   2260:   url">resolved</a> relative to the element. When the attribute is
                   2261:   absent, or its value is the empty string, or <a href="urls.html#resolve-a-url" title="resolve a
                   2262:   url">resolving</a> its value fails, there is no icon.</span></p>
                   2263:   <!-- this is affected by the base URL being changed, so users of
                   2264:   this should cache the image once they've fetched it once, at least
                   2265:   until the relative url changes again -->
                   2266: 
                   2267:   <p>The <dfn id="attr-command-disabled" title="attr-command-disabled"><code>disabled</code></dfn> attribute
                   2268:   is a <a href="common-microsyntaxes.html#boolean-attribute">boolean attribute</a> that, if present, indicates that
                   2269:   the command is not available in the current state.</p>
                   2270: 
                   2271:   <p class="note">The distinction between <code title="attr-command-disabled"><a href="#attr-command-disabled">disabled</a></code> and <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> is subtle. A command would be
                   2272:   disabled if, in the same context, it could be enabled if only
                   2273:   certain aspects of the situation were changed. A command would be
                   2274:   marked as hidden if, in that situation, the command will never be
                   2275:   enabled. For example, in the context menu for a water faucet, the
                   2276:   command "open" might be disabled if the faucet is already open, but
                   2277:   the command "eat" would be marked hidden since the faucet could
                   2278:   never be eaten.</p>
                   2279: 
                   2280:   <p>The <dfn id="attr-command-checked" title="attr-command-checked"><code>checked</code></dfn>
                   2281:   attribute is a <a href="common-microsyntaxes.html#boolean-attribute">boolean attribute</a> that, if present,
                   2282:   indicates that the command is selected. The attribute must be
                   2283:   omitted unless the <code title="attr-command-type"><a href="#attr-command-type">type</a></code>
                   2284:   attribute is in either the <a href="#attr-command-type-state-checkbox" title="attr-command-type-state-checkbox">Checkbox</a> state or
                   2285:   the <a href="#attr-command-type-state-radio" title="attr-command-type-state-radio">Radio</a>
                   2286:   state.</p>
                   2287: 
                   2288:   <p>The <dfn id="attr-command-radiogroup" title="attr-command-radiogroup"><code>radiogroup</code></dfn>
                   2289:   attribute gives the name of the group of commands that will be
                   2290:   toggled when the command itself is toggled, for commands whose <code title="attr-command-type"><a href="#attr-command-type">type</a></code> attribute has the value "<code title="">radio</code>". The scope of the name is the child list of
                   2291:   the parent element. The attribute must be omitted unless the <code title="attr-command-type"><a href="#attr-command-type">type</a></code> attribute is in the <a href="#attr-command-type-state-radio" title="attr-command-type-state-radio">Radio</a> state.</p>
                   2292: 
                   2293: <!--
                   2294:   <p>If the <code>command</code> element is used when <span
                   2295:   title="menu generation">generating</span> a <span>context
                   2296:   menu</span>, then the <dfn
                   2297:   title="attr-command-default"><code>default</code></dfn> attribute
                   2298:   indicates, if present, that the command is the one that would have
                   2299:   been invoked if the user had directly activated the menu's subject
                   2300:   instead of using its context menu. The <code
                   2301:   title="attr-command-default">default</code> attribute is a
                   2302:   <span>boolean attribute</span>. The attribute must be omitted unless
                   2303:   the <code title="attr-command-type">type</code> attribute is in the
                   2304:   <span title="attr-command-type-state-command">Command</span>
                   2305:   state.</p>
                   2306: 
                   2307:   <div class="example">
                   2308: 
                   2309:    ...an example that shows an element that, if double-clicked,
                   2310:    invokes an action, but that also has a context menu, showing the
                   2311:    various <code>command</code> attributes off, and that has a default
                   2312:    command...
                   2313: 
                   2314:   </div>
                   2315: -->
                   2316: 
                   2317:   <hr><p>If a <code><a href="#the-command-element">command</a></code> element <var title="">slave</var> has a
                   2318:   <dfn id="attr-command-command" title="attr-command-command"><code>command</code></dfn>
                   2319:   attribute, and <var title="">slave</var> is <a href="infrastructure.html#in-a-document">in a
                   2320:   <code>Document</code></a>, and there is an element in that
                   2321:   <code><a href="dom.html#document">Document</a></code> whose <a href="infrastructure.html#concept-id" title="concept-id">ID</a> has a
                   2322:   value equal to the value of <var title="">slave</var>'s <code title="attr-command-command"><a href="#attr-command-command">command</a></code> attribute, and the first
                   2323:   such element in <a href="infrastructure.html#tree-order">tree order</a>, hereafter <var title="">master</var>, itself <a href="#concept-command" title="concept-command">defines
                   2324:   a command</a> and either is not a <code><a href="#the-command-element">command</a></code> element or
                   2325:   does not itself have a <code title="attr-command-command"><a href="#attr-command-command">command</a></code> attribute, then the
                   2326:   <dfn id="master-command">master command</dfn> of <var title="">slave</var> is <var title="">master</var>.</p>
                   2327: 
                   2328:   <p>An element with a
                   2329:   <code title="attr-command-command"><a href="#attr-command-command">command</a></code>
                   2330:   attribute must have a <a href="#master-command">master command</a> and must not have any
                   2331:   <code title="attr-command-type"><a href="#attr-command-type">type</a></code>,
                   2332:   <code title="attr-command-label"><a href="#attr-command-label">label</a></code>,
                   2333:   <code title="attr-command-icon"><a href="#attr-command-icon">icon</a></code>,
                   2334:   <code title="attr-command-disabled"><a href="#attr-command-disabled">disabled</a></code>,
                   2335:   <code title="attr-command-checked"><a href="#attr-command-checked">checked</a></code>, or
                   2336:   <code title="attr-command-radiogroup"><a href="#attr-command-radiogroup">radiogroup</a></code>
                   2337:   attributes.</p>
                   2338: 
                   2339:   <hr><div class="impl">
                   2340: 
                   2341:   <p>The <dfn id="dom-command-type" title="dom-command-type"><code>type</code></dfn> IDL
                   2342:   attribute must <a href="common-dom-interfaces.html#reflect">reflect</a> the content attribute of the
                   2343:   same name, <a href="common-dom-interfaces.html#limited-to-only-known-values">limited to only known values</a>.</p>
                   2344: 
                   2345:   <p>The <dfn id="dom-command-label" title="dom-command-label"><code>label</code></dfn>, <dfn id="dom-command-icon" title="dom-command-icon"><code>icon</code></dfn>, <dfn id="dom-command-disabled" title="dom-command-disabled"><code>disabled</code></dfn>, <dfn id="dom-command-checked" title="dom-command-checked"><code>checked</code></dfn>, and <dfn id="dom-command-radiogroup" title="dom-command-radiogroup"><code>radiogroup</code></dfn><!--,
                   2346:   and <dfn title="dom-command-default"><code>default</code></dfn>-->
                   2347:   IDL attributes must <a href="common-dom-interfaces.html#reflect">reflect</a> the respective content
                   2348:   attributes of the same name.</p>
                   2349: 
                   2350:   <p>The <dfn id="dom-command-command" title="dom-command-command"><code>command</code></dfn>
                   2351:   IDL attribute must return the <a href="#master-command">master command</a>, if any,
                   2352:   or null otherwise.</p>
                   2353: 
                   2354:   <hr><p>If the element's <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled State</a> is false
                   2355:   (enabled) then the element's <a href="content-models.html#activation-behavior">activation behavior</a>
                   2356:   depends on the element's <code title="attr-command-type"><a href="#attr-command-type">type</a></code>
                   2357:   and <code title="attr-command-command"><a href="#attr-command-command">command</a></code> attributes, as
                   2358:   follows:</p>
                   2359: 
                   2360:   <dl class="switch"><dt>If the element has a <a href="#master-command">master command</a> set by its
                   2361:    <code title="attr-command-command"><a href="#attr-command-command">command</a></code> attribute</dt>
                   2362: 
                   2363:    <dd><p>The user agent must <a href="content-models.html#run-synthetic-click-activation-steps">run synthetic click activation
                   2364:    steps</a> on the element's <a href="#master-command">master command</a>.</p></dd>
                   2365:    <!-- we know it has a defined <span>activation behavior</span> if
                   2366:    we get here -->
                   2367: 
                   2368: 
                   2369:    <dt>If the <code title="attr-command-type"><a href="#attr-command-type">type</a></code> attribute is
                   2370:    in the <a href="#attr-command-type-state-checkbox" title="attr-command-type-state-checkbox">Checkbox</a> state</dt>
                   2371: 
                   2372:    <dd><p>If the element has a <code title="attr-command-checked"><a href="#attr-command-checked">checked</a></code> attribute, the UA must
                   2373:    remove that attribute. Otherwise, the UA must add a <code title="attr-command-checked"><a href="#attr-command-checked">checked</a></code> attribute, with the
                   2374:    literal value <code title="">checked</code>.</p></dd>
                   2375: 
                   2376: 
                   2377:    <dt>If the <code title="attr-command-type"><a href="#attr-command-type">type</a></code> attribute is
                   2378:    in the <a href="#attr-command-type-state-radio" title="attr-command-type-state-radio">Radio</a> state</dt>
                   2379: 
                   2380:    <dd><p>If the element has a parent, then the UA must walk the list
                   2381:    of child nodes of that parent element, and for each node that is a
                   2382:    <code><a href="#the-command-element">command</a></code> element, if that element has a <code title="attr-command-radiogroup"><a href="#attr-command-radiogroup">radiogroup</a></code> attribute whose
                   2383:    value exactly matches the current element's (treating missing <code title="attr-command-radiogroup"><a href="#attr-command-radiogroup">radiogroup</a></code> attributes as if
                   2384:    they were the empty string), and has a <code title="attr-command-checked"><a href="#attr-command-checked">checked</a></code> attribute, must remove
                   2385:    that attribute.</p>
                   2386: 
                   2387:    <p>Then, the element's <code title="attr-command-checked"><a href="#attr-command-checked">checked</a></code> attribute attribute
                   2388:    must be set to the literal value <code title="">checked</code>.</p></dd>
                   2389: 
                   2390: 
                   2391:    <dt>Otherwise</dt>
                   2392: 
                   2393:    <dd><p>The element's <a href="content-models.html#activation-behavior">activation behavior</a> is to do
                   2394:    nothing.</p></dd>
                   2395: 
                   2396:   </dl><p class="note">Firing a synthetic <code title="event-click"><a href="infrastructure.html#event-click">click</a></code> event at the element does not cause
                   2397:   any of the actions described above to happen.</p>
                   2398: 
                   2399:   <!-- v2COMMAND: Expose the Triggers facet again. -->
                   2400: 
                   2401:   <p>If the element's <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled State</a> is true
                   2402:   (disabled) then the element has no <a href="content-models.html#activation-behavior">activation
                   2403:   behavior</a>.</p>
                   2404: 
                   2405:   </div>
                   2406: 
                   2407:   <p class="note"><code><a href="#the-command-element">command</a></code> elements are not rendered
                   2408:   unless they <a href="#the-menu-element" title="menu">form part of a menu</a>.</p>
                   2409: 
                   2410:   <div class="example">
                   2411: 
                   2412:    <p>Here is an example of a toolbar with three buttons that let the
                   2413:    user toggle between left, center, and right alignment. One could
                   2414:    imagine such a toolbar as part of a text editor. The toolbar also
                   2415:    has a separator followed by another button labeled "Publish",
                   2416:    though that button is disabled.</p>
                   2417: 
                   2418:    <pre>&lt;menu type="toolbar"&gt;
                   2419:  &lt;command type="radio" radiogroup="alignment" checked="checked"
                   2420:           label="Left" icon="icons/alL.png" onclick="setAlign('left')"&gt;
                   2421:  &lt;command type="radio" radiogroup="alignment"
                   2422:           label="Center" icon="icons/alC.png" onclick="setAlign('center')"&gt;
                   2423:  &lt;command type="radio" radiogroup="alignment"
                   2424:           label="Right" icon="icons/alR.png" onclick="setAlign('right')"&gt;
                   2425:  &lt;hr&gt;
                   2426:  &lt;command type="command" disabled
                   2427:           label="Publish" icon="icons/pub.png" onclick="publish()"&gt;
                   2428: &lt;/menu&gt;</pre>
                   2429: 
                   2430:   </div>
                   2431: 
                   2432: 
                   2433: 
                   2434:   <h4 id="the-menu-element"><span class="secno">4.11.4 </span>The <dfn id="menus"><code>menu</code></dfn> element</h4>
                   2435: 
                   2436:   <dl class="element"><dt><a href="element-definitions.html#element-dfn-categories" title="element-dfn-categories">Categories</a>:</dt>
                   2437:    <dd><a href="content-models.html#flow-content-1">Flow content</a>.</dd>
                   2438:    <dd>If the element's <code title="attr-menu-type"><a href="#attr-menu-type">type</a></code> attribute is in the <a href="#toolbar-state" title="toolbar state">toolbar</a> state: <a href="content-models.html#interactive-content-0">Interactive content</a>.</dd>
                   2439:    <dd>If the element's <code title="attr-menu-type"><a href="#attr-menu-type">type</a></code> attribute is in the <a href="#toolbar-state" title="toolbar state">toolbar</a> state or the <a href="#list-state" title="list state">list</a> state: <a href="content-models.html#palpable-content-0">Palpable content</a>.</dd>
                   2440:    <dt><a href="element-definitions.html#element-dfn-contexts" title="element-dfn-contexts">Contexts in which this element can be used</a>:</dt>
                   2441:    <dd>Where <a href="content-models.html#flow-content-1">flow content</a> is expected.</dd>
                   2442:    <dt><a href="element-definitions.html#element-dfn-content-model" title="element-dfn-content-model">Content model</a>:</dt>
                   2443:    <dd>Either: Zero or more <code><a href="the-li-element.html#the-li-element">li</a></code> elements.</dd>
                   2444:    <dd>Or: <a href="content-models.html#flow-content-1">Flow content</a>.</dd>
                   2445:    <dt><a href="element-definitions.html#element-dfn-attributes" title="element-dfn-attributes">Content attributes</a>:</dt>
                   2446:    <dd><a href="global-attributes.html#global-attributes">Global attributes</a></dd>
                   2447:    <dd><code title="attr-menu-type"><a href="#attr-menu-type">type</a></code></dd>
                   2448:    <dd><code title="attr-menu-label"><a href="#attr-menu-label">label</a></code></dd>
                   2449:    <dt><a href="element-definitions.html#element-dfn-dom" title="element-dfn-dom">DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
                   2450:    <dd>
                   2451: <pre class="idl">interface <dfn id="htmlmenuelement">HTMLMenuElement</dfn> : <a href="elements.html#htmlelement">HTMLElement</a> {
                   2452:            attribute DOMString <a href="#dom-menu-type" title="dom-menu-type">type</a>;
                   2453:            attribute DOMString <a href="#dom-menu-label" title="dom-menu-label">label</a>;
                   2454: };</pre>
                   2455:   </dd></dl><!--TOPIC:HTML--><p>The <code><a href="#the-menu-element">menu</a></code> element represents a list of commands.</p>
                   2456: 
                   2457:   <!-- v2 idea: <menu> should get an icon, like <command> -->
                   2458: 
                   2459:   <p>The <dfn id="attr-menu-type" title="attr-menu-type"><code>type</code></dfn> attribute
                   2460:   is an <a href="common-microsyntaxes.html#enumerated-attribute">enumerated attribute</a> indicating the kind of menu
                   2461:   being declared. The attribute has three states. The <code title="attr-menu-type-context">context</code> keyword maps to the
                   2462:   <dfn id="context-menu-state" title="context menu state">context menu</dfn> state, in which
                   2463:   the element is declaring a context menu. The <code title="attr-menu-type-toolbar">toolbar</code> keyword maps to the
                   2464:   <dfn id="toolbar-state" title="toolbar state">toolbar</dfn> state, in which the
                   2465:   element is declaring a toolbar. The attribute may also be
                   2466:   omitted. The <i>missing value default</i> is the <dfn id="list-state" title="list
                   2467:   state">list</dfn> state, which indicates that the element is merely
                   2468:   a list of commands that is neither declaring a context menu nor
                   2469:   defining a toolbar.</p>
                   2470: 
                   2471:   <p>If a <code><a href="#the-menu-element">menu</a></code> element's <code title="attr-menu-type"><a href="#attr-menu-type">type</a></code> attribute is in the <a href="#context-menu-state" title="context menu state">context menu</a> state, then the
                   2472:   element <a href="#represents">represents</a> the commands of a context menu, and
                   2473:   the user can only interact with the commands if that context menu is
                   2474:   activated.</p>
                   2475: 
                   2476:   <p>If a <code><a href="#the-menu-element">menu</a></code> element's <code title="attr-menu-type"><a href="#attr-menu-type">type</a></code> attribute is in the <a href="#toolbar-state" title="toolbar state">toolbar</a> state, then the element
                   2477:   <a href="#represents">represents</a> a list of active commands that the user can
                   2478:   immediately interact with.</p>
                   2479: 
                   2480:   <p>If a <code><a href="#the-menu-element">menu</a></code> element's <code title="attr-menu-type"><a href="#attr-menu-type">type</a></code> attribute is in the <a href="#list-state" title="list state">list</a> state, then the element either
                   2481:   <a href="#represents">represents</a> an unordered list of items (each represented
                   2482:   by an <code><a href="the-li-element.html#the-li-element">li</a></code> element), each of which represents a command
                   2483:   that the user can perform or activate, or, if the element has no
                   2484:   <code><a href="the-li-element.html#the-li-element">li</a></code> element children, <a href="content-models.html#flow-content-1">flow content</a>
                   2485:   describing available commands.</p>
                   2486: 
                   2487:   <p>The <dfn id="attr-menu-label" title="attr-menu-label"><code>label</code></dfn>
                   2488:   attribute gives the label of the menu. It is used by user agents to
                   2489:   display nested menus in the UI. For example, a context menu
                   2490:   containing another menu would use the nested menu's <code title="attr-menu-label"><a href="#attr-menu-label">label</a></code> attribute for the submenu's
                   2491:   menu label.</p>
                   2492: 
                   2493:   <div class="impl">
                   2494: 
                   2495:   <p>The <dfn id="dom-menu-type" title="dom-menu-type"><code>type</code></dfn> and <dfn id="dom-menu-label" title="dom-menu-label"><code>label</code></dfn> IDL attributes must
                   2496:   <a href="common-dom-interfaces.html#reflect">reflect</a> the respective content attributes of the same
                   2497:   name.</p>
                   2498: 
                   2499:   </div>
                   2500: 
                   2501: 
                   2502: 
                   2503:   <h5 id="menus-intro"><span class="secno">4.11.4.1 </span>Introduction</h5>
                   2504: 
                   2505:   <p><i>This section is non-normative.</i></p>
                   2506:   <p>The <code><a href="#the-menu-element">menu</a></code> element is used to define context menus and
                   2507:   toolbars.</p>
                   2508: 
                   2509:   <p>For example, the following represents a toolbar with three menu
                   2510:   buttons on it, each of which has a dropdown menu with a series of
                   2511:   options:</p>
                   2512: 
                   2513:   <pre>&lt;menu type="toolbar"&gt;
                   2514:  &lt;li&gt;
                   2515:   &lt;menu label="File"&gt;
                   2516:    &lt;button type="button" onclick="fnew()"&gt;New...&lt;/button&gt;
                   2517:    &lt;button type="button" onclick="fopen()"&gt;Open...&lt;/button&gt;
                   2518:    &lt;button type="button" onclick="fsave()"&gt;Save&lt;/button&gt;
                   2519:    &lt;button type="button" onclick="fsaveas()"&gt;Save as...&lt;/button&gt;
                   2520:   &lt;/menu&gt;
                   2521:  &lt;/li&gt;
                   2522:  &lt;li&gt;
                   2523:   &lt;menu label="Edit"&gt;
                   2524:    &lt;button type="button" onclick="ecopy()"&gt;Copy&lt;/button&gt;
                   2525:    &lt;button type="button" onclick="ecut()"&gt;Cut&lt;/button&gt;
                   2526:    &lt;button type="button" onclick="epaste()"&gt;Paste&lt;/button&gt;
                   2527:   &lt;/menu&gt;
                   2528:  &lt;/li&gt;
                   2529:  &lt;li&gt;
                   2530:   &lt;menu label="Help"&gt;
                   2531:    &lt;li&gt;&lt;a href="help.html"&gt;Help&lt;/a&gt;&lt;/li&gt;
                   2532:    &lt;li&gt;&lt;a href="about.html"&gt;About&lt;/a&gt;&lt;/li&gt;
                   2533:   &lt;/menu&gt;
                   2534:  &lt;/li&gt;
                   2535: &lt;/menu&gt;</pre>
                   2536: 
                   2537:   <p>In a supporting user agent, this might look like this:</p>
                   2538: 
                   2539:   <p><img alt="A toolbar with three buttons, labeled 'File', 'Edit', and 'Help'; where if you select the 'Edit' button you get a drop-down menu with three more options, 'Copy', 'Cut', and 'Paste'." height="101" src="images/sample-toolbar-1.png" width="303"></p>
                   2540: 
                   2541:   <p>In a legacy user agent, the above would look like a bulleted list
                   2542:   with three items, the first of which has four buttons, the second of
                   2543:   which has three, and the third of which has two nested bullet points
                   2544:   with two items consisting of links.</p>
                   2545: 
                   2546:   <hr><p>The following implements a similar toolbar, with a single button
                   2547:   whose values, when selected, redirect the user to Web sites.</p>
                   2548: 
                   2549:   <pre>&lt;form action="redirect.cgi"&gt;
                   2550:  &lt;menu type="toolbar"&gt;
                   2551:   &lt;label for="goto"&gt;Go to...&lt;/label&gt;
                   2552:   &lt;menu label="Go"&gt;
                   2553:    &lt;select id="goto"<!--
                   2554:            onchange="if (this.options[this.selectedIndex].value)
                   2555:                      window.location = this.options[this.selectedIndex].value"-->&gt;
                   2556:     &lt;option value="" selected="selected"&gt; Select site: &lt;/option&gt;
                   2557:     &lt;option value="http://www.apple.com/"&gt; Apple &lt;/option&gt;
                   2558:     &lt;option value="http://www.mozilla.org/"&gt; Mozilla &lt;/option&gt;
                   2559:     &lt;option value="http://www.opera.com/"&gt; Opera &lt;/option&gt;
                   2560:    &lt;/select&gt;
                   2561:    &lt;span&gt;&lt;input type="submit" value="Go"&gt;&lt;/span&gt;
                   2562:   &lt;/menu&gt;
                   2563:  &lt;/menu&gt;
                   2564: &lt;/form&gt;</pre>
                   2565: 
                   2566:   <p>The behavior in supporting user agents is similar to the example
                   2567:   above, but here the legacy behavior consists of a single
                   2568:   <code><a href="the-select-element.html#the-select-element">select</a></code> element with a submit button. The submit button
                   2569:   doesn't appear in the toolbar, because it is not a child of the
                   2570:   <code><a href="#the-menu-element">menu</a></code> element or of its <code><a href="the-li-element.html#the-li-element">li</a></code> children.</p>
                   2571: 
                   2572: 
                   2573: 
                   2574:   <div class="impl">
                   2575: 
                   2576:   <h5 id="building-menus-and-toolbars"><span class="secno">4.11.4.2 </span><dfn>Building menus and toolbars</dfn></h5>
                   2577: 
                   2578:   <p>A menu (or toolbar) consists of a list of zero or more of the
                   2579:   following components:</p>
                   2580: 
                   2581:   <ul class="brief"><li><a href="#concept-command" title="concept-command">Commands</a>, which can be marked as default commands</li>
                   2582:    <li>Separators</li>
                   2583:    <li>Other menus (which allows the list to be nested)</li>
                   2584:   </ul><p>The list corresponding to a particular <code><a href="#the-menu-element">menu</a></code> element
                   2585:   is built by iterating over its child nodes. For each child node in
                   2586:   <a href="infrastructure.html#tree-order">tree order</a>, the required behavior depends on what the
                   2587:   node is, as follows:</p>
                   2588: 
                   2589:   <dl class="switch"><dt>An element that <a href="#concept-command" title="concept-command">defines a command</a></dt>
                   2590: 
                   2591:    <dd>Append the command to the menu, respecting its <a href="#concept-facet" title="concept-facet">facets</a><!-- we might need to be
                   2592:    explicit about what this means for each facet, if testing shows
                   2593:    this isn't well-implemented. e.g.: If there's an Icon facet for the
1.191     sruby    2594:    command, it should be <span title="fetch">fetched</span><!- -FETCH-
                   2595:    -> (this would be http-origin privacy-sensitive), and then that
                   2596:    image should be associated with the command, such that each command
                   2597:    only has its image fetched once, to prevent changes to the base URL
                   2598:    from having effects after the image has been fetched once. (no need
                   2599:    to resolve the Icon facet, it's an absolute URL) -->. <!--If the
                   2600:    element is a <code>command</code> element with a <code
1.190     sruby    2601:    title="attr-command-default">default</code> attribute, mark the
                   2602:    command as being a default command.--></dd>
                   2603: 
                   2604: 
                   2605:    <dt>An <code><a href="the-hr-element.html#the-hr-element">hr</a></code> element</dt>
                   2606:    <dt>An <code><a href="the-option-element.html#the-option-element">option</a></code> element that has a <code title="attr-option-value"><a href="the-option-element.html#attr-option-value">value</a></code> attribute set to the empty
                   2607:    string, and has a <code title="attr-option-disabled"><a href="the-option-element.html#attr-option-disabled">disabled</a></code> attribute, and whose
                   2608:    <code><a href="infrastructure.html#textcontent">textContent</a></code> consists of a string of one or more
                   2609:    hyphens (U+002D HYPHEN-MINUS)</dt>
                   2610: 
                   2611:    <dd>Append a separator to the menu.</dd>
                   2612: 
                   2613: 
                   2614:    <dt>An <code><a href="the-li-element.html#the-li-element">li</a></code> element</dt>
                   2615:    <dt>A <code><a href="the-label-element.html#the-label-element">label</a></code> element</dt>
                   2616: 
                   2617:    <dd>Iterate over the children of the element.</dd>
                   2618: 
                   2619: 
                   2620:    <dt>A <code><a href="#the-menu-element">menu</a></code> element with no <code title="attr-menu-label"><a href="#attr-menu-label">label</a></code> attribute</dt>
                   2621:    <dt>A <code><a href="the-select-element.html#the-select-element">select</a></code> element</dt>
                   2622: 
                   2623:    <dd>Append a separator to the menu, then iterate over the children
                   2624:    of the <code><a href="#the-menu-element">menu</a></code> or <code><a href="the-select-element.html#the-select-element">select</a></code> element, then
                   2625:    append another separator.</dd>
                   2626: 
                   2627:    <!-- v2: we might want to support <select> in <label> as giving a named submenu -->
                   2628: 
                   2629: 
                   2630:    <dt>A <code><a href="#the-menu-element">menu</a></code> element with a <code title="attr-menu-label"><a href="#attr-menu-label">label</a></code> attribute</dt>
                   2631:    <dt>An <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code> element with a <code title="attr-menu-label"><a href="#attr-menu-label">label</a></code> attribute</dt>
                   2632: 
                   2633:    <dd>Append a submenu to the menu, using the value of the element's
                   2634:    <code title="">label</code> attribute as the label of the menu. The
                   2635:    submenu must be constructed by taking the element and creating a
                   2636:    new menu for it using the complete process described in this
                   2637:    section.</dd>
                   2638: 
                   2639: 
                   2640:    <dt>Any other node</dt>
                   2641: 
                   2642:    <dd><a href="infrastructure.html#ignore">Ignore</a> the node.</dd>
                   2643: 
                   2644:   </dl><p>Once all the nodes have been processed as described above, the
                   2645:   user agent must the post-process the menu as follows:</p>
                   2646: 
                   2647:   <ol><li>Except for separators, any menu item with no label, or whose
                   2648:    label is the empty string, must be removed.</li>
                   2649: 
                   2650:    <li>Any sequence of two or more separators in a row must be
                   2651:    collapsed to a single separator.</li>
                   2652: 
                   2653:    <li>Any separator at the start or end of the menu must be
                   2654:    removed.</li>
                   2655: 
                   2656:   </ol></div>
                   2657: 
                   2658: 
                   2659: 
                   2660: 
                   2661:   <h5 id="context-menus"><span class="secno">4.11.4.3 </span><dfn>Context menus</dfn></h5>
                   2662: 
                   2663:   <p>The <dfn id="attr-contextmenu" title="attr-contextmenu"><code>contextmenu</code></dfn>
                   2664:   attribute gives the element's <a href="#context-menus" title="context menus">context
                   2665:   menu</a>. The value must be the <a href="infrastructure.html#concept-id" title="concept-id">ID</a> of a <code><a href="#the-menu-element">menu</a></code> element in the
                   2666:   DOM. <span class="impl">If the node that would be obtained by
                   2667:   invoking the <code title="dom-Document-getElementById"><a href="infrastructure.html#dom-document-getelementbyid">getElementById()</a></code> method
                   2668:   using the attribute's value as the only argument is null or not a
                   2669:   <code><a href="#the-menu-element">menu</a></code> element, then the element has no assigned context
                   2670:   menu. Otherwise, the element's assigned context menu is the element
                   2671:   so identified.</span></p>
                   2672: 
                   2673:   <div class="impl">
                   2674: 
                   2675:   <p>When an element's context menu is requested (e.g. by the user
                   2676:   right-clicking the element, or pressing a context menu key), the
                   2677:   user agent must apply the appropriate rules from the following
                   2678:   list:</p>
                   2679: 
                   2680:   <dl class="switch"><dt>If the user requested a context menu using a pointing device</dt>
                   2681: 
                   2682:    <dd><p>The user agent must fire an event with the name <code title="event-contextmenu">contextmenu</code>, that bubbles and is
                   2683:    cancelable, and that uses the <code><a href="infrastructure.html#mouseevent-10">MouseEvent</a></code> interface, at
                   2684:    the element for which the menu was requested. The context
                   2685:    information of the event must be initialized to the same values as
                   2686:    the last <code><a href="infrastructure.html#mouseevent-10">MouseEvent</a></code> user interaction event that was
                   2687:    fired as part of the gesture that that was interpreted as a request
                   2688:    for the context menu.</p></dd>
                   2689: 
                   2690:    <dt>Otherwise</dt>
                   2691: 
                   2692:    <dd><p>The user agent must <a href="#fire-a-synthetic-mouse-event" title="fire a synthetic mouse
                   2693:    event">fire a synthetic mouse event named <code title="event-contextmenu">contextmenu</code></a> that bubbles
                   2694:    and is cancelable at the element for which the menu was
                   2695:    requested.</p></dd>
                   2696: 
                   2697:   </dl><p class="note">Typically, therefore, the firing of the <code title="event-contextmenu">contextmenu</code> event will be the
                   2698:   default action of a <code title="mouseup">mouseup</code> or <code title="event-keyup">keyup</code> event. The exact sequence of events
                   2699:   is UA-dependent, as it will vary based on platform conventions.</p>
                   2700: 
                   2701:   <p>The default action of the <code title="event-contextmenu">contextmenu</code> event depends on
                   2702:   whether the element or one of its ancestors has a context menu
                   2703:   assigned (using the <code title="attr-contextmenu"><a href="#attr-contextmenu">contextmenu</a></code> attribute) or not. If
                   2704:   there is no context menu assigned, the default action must be for
                   2705:   the user agent to show its default context menu, if it has one.</p>
                   2706: 
                   2707:   <p>If the element or one of its ancestors <em>does</em> have a
                   2708:   context menu assigned, then the user agent must <a href="#fire-a-simple-event">fire a simple
                   2709:   event</a> named <code title="event-show">show</code> at the
                   2710:   <code><a href="#the-menu-element">menu</a></code> element of the context menu of the nearest
                   2711:   ancestor (including the element itself) with one assigned.</p>
                   2712:   <!-- v2: include modifier key information -->
                   2713: 
                   2714:   <p>The default action of <em>this</em> event is that the user agent
                   2715:   must show a context menu <a href="#building-menus-and-toolbars" title="building menus and
                   2716:   toolbars">built</a> from the <code><a href="#the-menu-element">menu</a></code> element.</p>
                   2717: 
                   2718:   <p>The user agent may also provide access to its default context
                   2719:   menu, if any, with the context menu shown. For example, it could
                   2720:   merge the menu items from the two menus together, or provide the
                   2721:   page's context menu as a submenu of the default menu.</p>
                   2722: 
                   2723:   <p>If the user dismisses the menu without making a selection,
                   2724:   nothing in particular happens.</p>
                   2725: 
                   2726:   <p>If the user selects a menu item that represents a <a href="#concept-command" title="concept-command">command</a>, then the UA must invoke
                   2727:   that command's <a href="#command-facet-action" title="command-facet-Action">Action</a>.</p>
                   2728: 
                   2729:   <p>Context menus must not, while being shown, reflect changes in the
                   2730:   DOM; they are constructed as the default action of the <code title="event-show">show</code> event and must remain as constructed
                   2731:   until dismissed.</p>
                   2732: 
                   2733:   <p>User agents may provide means for bypassing the context menu
                   2734:   processing model, ensuring that the user can always access the UA's
                   2735:   default context menus. For example, the user agent could handle
                   2736:   right-clicks that have the Shift key depressed in such a way that it
                   2737:   does not fire the <code title="event-contextmenu">contextmenu</code>
                   2738:   event and instead always shows the default context menu.</p>
                   2739: 
                   2740:   <p>The <dfn id="dom-contextmenu" title="dom-contextMenu"><code>contextMenu</code></dfn>
                   2741:   IDL attribute must <a href="common-dom-interfaces.html#reflect">reflect</a> the <code title="attr-contextmenu"><a href="#attr-contextmenu">contextmenu</a></code> content attribute.</p>
                   2742: 
                   2743:   </div>
                   2744: 
                   2745:   <div class="example">
                   2746: 
                   2747:    <p>Here is an example of a context menu for an input control:</p>
                   2748: 
                   2749:    <pre>&lt;form name="npc"&gt;
                   2750:  &lt;label&gt;Character name: &lt;input name=char type=text contextmenu=namemenu required&gt;&lt;/label&gt;
                   2751:  &lt;menu type=context id=namemenu&gt;
                   2752:   &lt;command label="Pick random name" onclick="document.forms.npc.elements.char.value = getRandomName()"&gt;
                   2753:   &lt;command label="Prefill other fields based on name" onclick="prefillFields(document.forms.npc.elements.char.value)"&gt;
                   2754:  &lt;/menu&gt;
                   2755: &lt;/form&gt;</pre>
                   2756: 
                   2757:    <p>This adds two items to the control's context menu, one called
                   2758:    "Pick random name", and one called "Prefill other fields based on
                   2759:    name". They invoke scripts that are not shown in the example
                   2760:    above.</p>
                   2761: 
                   2762:   </div>
                   2763: 
                   2764: 
                   2765: 
                   2766:   <div class="impl">
                   2767: 
                   2768:   <h5 id="toolbars"><span class="secno">4.11.4.4 </span><dfn>Toolbars</dfn></h5>
                   2769: 
                   2770:   <p>When a <code><a href="#the-menu-element">menu</a></code> element has a <code title="attr-menu-type"><a href="#attr-menu-type">type</a></code> attribute in the <a href="#toolbar-state" title="toolbar state">toolbar</a> state, then the user agent
                   2771:   must <a href="#building-menus-and-toolbars" title="building menus and toolbars">build</a> the
                   2772:   menu for that <code><a href="#the-menu-element">menu</a></code> element, and use the result in the
                   2773:   rendering.</p>
                   2774: 
                   2775:   <p>The user agent must reflect changes made to the
                   2776:   <code><a href="#the-menu-element">menu</a></code>'s DOM, by immediately <a href="#building-menus-and-toolbars" title="building menus
                   2777:   and toolbars">rebuilding</a> the menu.</p>
                   2778: 
                   2779:   </div>
                   2780: 
                   2781: 
                   2782: 
                   2783:   <h4 id="commands"><span class="secno">4.11.5 </span>Commands</h4>
                   2784: 
                   2785:   <p>A <dfn id="concept-command" title="concept-command">command</dfn> is the abstraction
                   2786:   behind menu items, buttons, and links. Once a command is defined,
                   2787:   other parts of the interface can refer to the same command, allowing
                   2788:   many access points to a single feature to share facets such as the
                   2789:   <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled State</a>.</p>
                   2790: 
                   2791:   <p id="facets">Commands are defined to have the following
                   2792:   <dfn id="concept-facet" title="concept-facet">facets</dfn>:</p>
                   2793: 
                   2794:   <dl><dt><dfn id="command-facet-type" title="command-facet-Type">Type</dfn></dt>
                   2795: 
                   2796:    <dd>The kind of command: "command", meaning it is a normal command;
                   2797:    "radio", meaning that triggering the command will, amongst other
                   2798:    things, set the <a href="#command-facet-checkedstate" title="command-facet-CheckedState">Checked
                   2799:    State</a> to true (and probably uncheck some other commands); or
                   2800:    "checkbox", meaning that triggering the command will, amongst other
                   2801:    things, toggle the value of the <a href="#command-facet-checkedstate" title="command-facet-CheckedState">Checked State</a>.</dd>
                   2802: 
                   2803:    <dt><dfn id="command-facet-id" title="command-facet-ID">ID</dfn></dt>
                   2804: 
                   2805:    <dd>The name of the command, for referring to the command from the
                   2806:    markup or from script. If a command has no ID, it is an
                   2807:    <dfn id="anonymous-command">anonymous command</dfn>.</dd>
                   2808: 
                   2809:    <dt><dfn id="command-facet-label" title="command-facet-Label">Label</dfn></dt>
                   2810: 
                   2811:    <dd>The name of the command as seen by the user.</dd>
                   2812: 
                   2813:    <dt><dfn id="command-facet-hint" title="command-facet-Hint">Hint</dfn></dt>
                   2814: 
                   2815:    <dd>A helpful or descriptive string that can be shown to the
                   2816:    user.</dd>
                   2817: 
                   2818:    <dt><dfn id="command-facet-icon" title="command-facet-Icon">Icon</dfn></dt>
                   2819: 
                   2820:    <dd>An <a href="urls.html#absolute-url">absolute URL</a> identifying a graphical image that
                   2821:    represents the action. A command might not have an Icon.</dd> <!--
                   2822:    changing base URLs might change the icon -->
                   2823: 
                   2824:    <dt><dfn id="command-facet-accesskey" title="command-facet-AccessKey">Access Key</dfn></dt>
                   2825: 
                   2826:    <dd>A key combination selected by the user agent that triggers the
                   2827:    command. A command might not have an Access Key.</dd>
                   2828: 
                   2829:    <dt><dfn id="command-facet-hiddenstate" title="command-facet-HiddenState">Hidden State</dfn></dt>
                   2830: 
                   2831:    <dd>Whether the command is hidden or not (basically, whether it
                   2832:    should be shown in menus).</dd>
                   2833: 
                   2834:    <dt><dfn id="command-facet-disabledstate" title="command-facet-DisabledState">Disabled State</dfn></dt>
                   2835: 
                   2836:    <dd>Whether the command is relevant and can be triggered or not.</dd>
                   2837: 
                   2838:    <dt><dfn id="command-facet-checkedstate" title="command-facet-CheckedState">Checked State</dfn></dt>
                   2839: 
                   2840:    <dd>Whether the command is checked or not.</dd>
                   2841: 
                   2842:    <dt><dfn id="command-facet-action" title="command-facet-Action">Action</dfn></dt>
                   2843: 
                   2844:    <dd>The actual effect that triggering the command will have. This
                   2845:    could be a scripted event handler, a <a href="urls.html#url">URL</a> to which to
                   2846:    <a href="#navigate">navigate</a>, or a form submission.</dd>
                   2847: 
                   2848: <!-- v2COMMAND
                   2849:    <dt><dfn title="command-facet-Triggers">Triggers</dfn></dt>
                   2850: 
                   2851:    <dd>The list of elements that can trigger the command. The element
                   2852:    defining a command is always in the list of elements that can
                   2853:    trigger the command. For anonymous commands, only the element
                   2854:    defining the command is on the list, since other elements have no
                   2855:    way to refer to it.</dd>
                   2856: -->
                   2857: 
                   2858:   </dl><!--TOPIC:DOM APIs--><p>These facets are exposed on elements using the <dfn id="command-api">command
                   2859:   API</dfn>:</p>
                   2860: 
                   2861:   <dl class="domintro"><dt><var title="">element</var> . <code title="dom-command-ro-commandType"><a href="#dom-command-ro-commandtype">commandType</a></code></dt>
                   2862: 
                   2863:    <dd>
                   2864: 
                   2865:     <p>Exposes the <a href="#command-facet-type" title="command-facet-Type">Type</a> facet of the command.</p>
                   2866: 
                   2867:    </dd>
                   2868: 
                   2869:    <dt><var title="">element</var> . <code title="dom-Element-id"><a href="infrastructure.html#dom-element-id">id</a></code></dt>
                   2870: 
                   2871:    <dd>
                   2872: 
                   2873:     <p>Exposes the <a href="#command-facet-id" title="command-facet-ID">ID</a> facet of the command.</p>
                   2874: 
                   2875:    </dd>
                   2876: 
                   2877:    <dt><var title="">element</var> . <code title="dom-command-ro-commandLabel"><a href="#dom-command-ro-commandlabel">commandLabel</a></code></dt>
                   2878: 
                   2879:    <dd>
                   2880: 
                   2881:     <p>Exposes the <a href="#command-facet-label" title="command-facet-Label">Label</a> facet of the command.</p>
                   2882: 
                   2883:    </dd>
                   2884: 
                   2885:    <dt><var title="">element</var> . <code title="dom-title"><a href="global-attributes.html#dom-title">title</a></code></dt>
                   2886: 
                   2887:    <dd>
                   2888: 
                   2889:     <p>Exposes the <a href="#command-facet-hint" title="command-facet-Hint">Hint</a> facet of the command.</p>
                   2890: 
                   2891:    </dd>
                   2892: 
                   2893:    <dt><var title="">element</var> . <code title="dom-command-ro-commandIcon"><a href="#dom-command-ro-commandicon">commandIcon</a></code></dt>
                   2894: 
                   2895:    <dd>
                   2896: 
                   2897:     <p>Exposes the <a href="#command-facet-icon" title="command-facet-Icon">Icon</a> facet of the command.</p>
                   2898: 
                   2899:    </dd>
                   2900: 
                   2901:    <dt><var title="">element</var> . <code title="dom-accessKeyLabel"><a href="#dom-accesskeylabel">accessKeyLabel</a></code></dt>
                   2902: 
                   2903:    <dd>
                   2904: 
                   2905:     <p>Exposes the <a href="#command-facet-accesskey" title="command-facet-AccessKey">Access Key</a> facet of the command.</p>
                   2906: 
                   2907:    </dd>
                   2908: 
                   2909:    <dt><var title="">element</var> . <code title="dom-command-ro-commandHidden"><a href="#dom-command-ro-commandhidden">commandHidden</a></code></dt>
                   2910: 
                   2911:    <dd>
                   2912: 
                   2913:     <p>Exposes the <a href="#command-facet-hiddenstate" title="command-facet-HiddenState">Hidden State</a> facet of the command.</p>
                   2914: 
                   2915:    </dd>
                   2916: 
                   2917:    <dt><var title="">element</var> . <code title="dom-command-ro-commandDisabled"><a href="#dom-command-ro-commanddisabled">commandDisabled</a></code></dt>
                   2918: 
                   2919:    <dd>
                   2920: 
                   2921:     <p>Exposes the <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled State</a> facet of the command.</p>
                   2922: 
                   2923:    </dd>
                   2924: 
                   2925:    <dt><var title="">element</var> . <code title="dom-command-ro-commandChecked"><a href="#dom-command-ro-commandchecked">commandChecked</a></code></dt>
                   2926: 
                   2927:    <dd>
                   2928: 
                   2929:     <p>Exposes the <a href="#command-facet-checkedstate" title="command-facet-CheckedState">Checked State</a> facet of the command.</p>
                   2930: 
                   2931:    </dd>
                   2932: 
                   2933:    <dt><var title="">element</var> . <code title="dom-click"><a href="#dom-click">click</a></code>()</dt>
                   2934: 
                   2935:    <dd>
                   2936: 
                   2937:     <p>Triggers the <a href="#command-facet-action" title="command-facet-Action">Action</a> of the command.</p>
                   2938: 
                   2939:    </dd>
                   2940: 
                   2941: <!--v2COMMAND
                   2942:    <dt><var title="">element</var> . <code title="dom-command-ro-commandTriggers">commandTriggers</code></dt>
                   2943: 
                   2944:    <dd>
                   2945: 
                   2946:     <p>Exposes the <span title="command-facet-Triggers">Triggers</span> facet of the command.</p>
                   2947: 
                   2948:    </dd>
                   2949: -->
                   2950: 
                   2951:   </dl><div class="impl">
                   2952: 
                   2953:   <p>The <dfn id="dom-command-ro-commandtype" title="dom-command-ro-commandType"><code>commandType</code></dfn>
                   2954:   attribute must return a string whose value is either "<code title="">command</code>", "<code title="">radio</code>", or "<code title="">checkbox</code>", depending on whether the <a href="#command-facet-type" title="command-facet-Type">Type</a> of the command defined by the
                   2955:   element is "command", "radio", or "checkbox" respectively. If the
                   2956:   element does not define a command, it must return null.</p>
                   2957: 
                   2958:   <p>The <dfn id="dom-command-ro-commandlabel" title="dom-command-ro-commandLabel"><code>commandLabel</code></dfn>
                   2959:   attribute must return the command's <a href="#command-facet-label" title="command-facet-Label">Label</a>, or null if the element
                   2960:   does not define a command or does not specify a <a href="#command-facet-label" title="command-facet-Label">Label</a>.</p>
                   2961: 
                   2962:   <p>The <dfn id="dom-command-ro-commandicon" title="dom-command-ro-commandIcon"><code>commandIcon</code></dfn>
                   2963:   attribute must return the <a href="urls.html#absolute-url">absolute URL</a> of the command's
                   2964:   <a href="#command-facet-icon" title="command-facet-Icon">Icon</a>. If the element does
                   2965:   not specify an icon, or if the element does not define a command,
                   2966:   then the attribute must return null.</p>
                   2967: 
                   2968:   <p>The <dfn id="dom-command-ro-commandhidden" title="dom-command-ro-commandHidden"><code>commandHidden</code></dfn>
                   2969:   attribute must return true if the command's <a href="#command-facet-hiddenstate" title="command-facet-HiddenState">Hidden State</a> is that the
                   2970:   command is hidden, and false if the command is not hidden. If the
                   2971:   element does not define a command, the attribute must return
                   2972:   null.</p>
                   2973: 
                   2974:   <p>The <dfn id="dom-command-ro-commanddisabled" title="dom-command-ro-commandDisabled"><code>commandDisabled</code></dfn>
                   2975:   attribute must return true if the command's <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled State</a> is that
                   2976:   the command is disabled, and false if the command is not disabled.
                   2977:   This attribute is not affected by the command's <a href="#command-facet-hiddenstate" title="command-facet-HiddenState">Hidden State</a>. If the
                   2978:   element does not define a command, the attribute must return
                   2979:   null.</p>
                   2980: 
                   2981:   <p>The <dfn id="dom-command-ro-commandchecked" title="dom-command-ro-commandChecked"><code>commandChecked</code></dfn>
                   2982:   attribute must return true if the command's <a href="#command-facet-checkedstate" title="command-facet-CheckedState">Checked State</a> is that the
                   2983:   command is checked, and false if it is that the command is not
                   2984:   checked. If the element does not define a command, the attribute
                   2985:   must return null.</p>
                   2986: 
                   2987: <!--v2COMMAND
                   2988:   <p>The <dfn
                   2989:   title="dom-command-ro-commandTriggers"><code>commandTriggers</code></dfn>
                   2990:   attribute must return a list containing the elements that can
                   2991:   trigger the command (the command's <span
                   2992:   title="command-facet-Triggers">Triggers</span>). The list must be
                   2993:   <span>live</span>. The same object must be returned each time. While
                   2994:   the element does not define a command, the list must be empty.</p>
                   2995: -->
                   2996: 
                   2997:   <p class="note">The <a href="#command-facet-id" title="command-facet-ID">ID</a> facet
                   2998:   is exposed by the <code title="dom-Element-id"><a href="infrastructure.html#dom-element-id">id</a></code> IDL attribute, the
                   2999:   <a href="#command-facet-hint" title="command-facet-Hint">Hint</a> facet is exposed by the
                   3000:   <code title="dom-title"><a href="global-attributes.html#dom-title">title</a></code> IDL attribute, and the <a href="#command-facet-accesskey" title="command-facet-AccessKey">AccessKey</a> facet is exposed by
                   3001:   the <code title="dom-accessKeyLabel"><a href="#dom-accesskeylabel">accessKeyLabel</a></code> IDL
                   3002:   attribute.</p>
                   3003: 
                   3004:   </div>
                   3005: 
                   3006:   <hr><dl class="domintro"><dt><var title="">document</var> . <code title="dom-document-commands"><a href="#dom-document-commands">commands</a></code></dt>
                   3007:    <dd>
                   3008:     <p>Returns an <code><a href="infrastructure.html#htmlcollection">HTMLCollection</a></code> of the elements in the
                   3009:     <code><a href="dom.html#document">Document</a></code> that define commands and have IDs.</p>
                   3010:    </dd>
                   3011: 
                   3012:   </dl><div class="impl">
                   3013: 
                   3014:   <p>The <dfn id="dom-document-commands" title="dom-document-commands"><code>commands</code></dfn> attribute
                   3015:   of the document's <code><a href="dom.html#document">Document</a></code> interface must return an
                   3016:   <code><a href="infrastructure.html#htmlcollection">HTMLCollection</a></code> rooted at the <code><a href="dom.html#document">Document</a></code>
                   3017:   node, whose filter matches only elements that <a href="#concept-command" title="concept-command">define commands</a> and have <a href="#command-facet-id" title="command-facet-ID">IDs</a>.</p>
                   3018: 
                   3019:   </div>
                   3020: <!--TOPIC:HTML-->
                   3021: 
                   3022:   <hr><p>User agents may expose the <a href="#concept-command" title="concept-command">commands</a> whose <a href="#command-facet-hiddenstate" title="command-facet-HiddenState">Hidden State</a> facet is false
                   3023:   (visible) and whose elements are <a href="infrastructure.html#in-a-document">in a
                   3024:   <code>Document</code></a>. For example, such commands could be
                   3025:   listed in the user agent's menu bar. User agents are encouraged to
                   3026:   do this especially for commands that have <a href="#command-facet-accesskey" title="command-facet-AccessKey">Access Keys</a>, as a way to
                   3027:   advertise those keys to the user.</p>
                   3028: 
                   3029: 
                   3030:   <div class="impl">
                   3031: 
                   3032:   <h5 id="using-the-a-element-to-define-a-command"><span class="secno">4.11.5.1 </span><dfn title="a-command">Using the <code>a</code> element to define a command</dfn></h5>
                   3033: 
                   3034:   <p>An <code><a href="the-a-element.html#the-a-element">a</a></code> element with an <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute <a href="#concept-command" title="concept-command">defines a command</a>.</p>
                   3035: 
                   3036:   <p>The <a href="#command-facet-type" title="command-facet-Type">Type</a> of the command
                   3037:   is "command".</p>
                   3038: 
                   3039:   <p>The <a href="#command-facet-id" title="command-facet-ID">ID</a> of the command is
                   3040:   the value of the <code title="attr-id"><a href="global-attributes.html#the-id-attribute">id</a></code> attribute of the
                   3041:   element, if the attribute is present and not empty. Otherwise the
                   3042:   command is an <a href="#anonymous-command">anonymous command</a>.</p>
                   3043: 
                   3044:   <p>The <a href="#command-facet-label" title="command-facet-Label">Label</a> of the command
                   3045:   is the string given by the element's <code><a href="infrastructure.html#textcontent">textContent</a></code> IDL
                   3046:   attribute.</p>
                   3047: 
                   3048:   <p>The <a href="#command-facet-hint" title="command-facet-Hint">Hint</a> of the command
                   3049:   is the value of the <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code> attribute
                   3050:   of the element. If the attribute is not present, the <a href="#command-facet-hint" title="command-facet-Hint">Hint</a> is the empty string.</p>
                   3051: 
                   3052:   <p>The <a href="#command-facet-icon" title="command-facet-Icon">Icon</a> of the command
                   3053:   is the <a href="urls.html#absolute-url">absolute URL</a> obtained from <a href="urls.html#resolve-a-url" title="resolve
                   3054:   a url">resolving</a> the value of the <code title="attr-img-src"><a href="the-img-element.html#attr-img-src">src</a></code> attribute of the first
                   3055:   <code><a href="the-img-element.html#the-img-element">img</a></code> element descendant of the element in <a href="infrastructure.html#tree-order">tree
                   3056:   order</a>, relative to that element, if there is such an element
                   3057:   and resolving its attribute is successful. Otherwise, there is no
                   3058:   <a href="#command-facet-icon" title="command-facet-Icon">Icon</a> for the command.</p>
                   3059: 
                   3060:   <p>The <a href="#command-facet-accesskey" title="command-facet-AccessKey">AccessKey</a> of the
                   3061:   command is the element's <a href="#assigned-access-key">assigned access key</a>, if
                   3062:   any.</p>
                   3063: 
                   3064:   <p>The <a href="#command-facet-hiddenstate" title="command-facet-HiddenState">Hidden State</a>
                   3065:   of the command is true (hidden) if the element has a <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> attribute, and false
                   3066:   otherwise.</p>
                   3067: 
                   3068:   <p>The <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled
                   3069:   State</a> facet of the command is true if the element or one of
                   3070:   its ancestors is <a href="#inert">inert</a>, and false otherwise.</p>
                   3071: 
                   3072:   <p>The <a href="#command-facet-checkedstate" title="command-facet-CheckedState">Checked State</a>
                   3073:   of the command is always false. (The command is never checked.)</p>
                   3074: 
                   3075:   <p>The <a href="#command-facet-action" title="command-facet-Action">Action</a> of the
                   3076:   command, if the element has a defined <a href="content-models.html#activation-behavior">activation
                   3077:   behavior</a>, is to <a href="content-models.html#run-synthetic-click-activation-steps">run synthetic click activation
                   3078:   steps</a> on the element. Otherwise, it is just to <a href="#fire-a-click-event">fire a
                   3079:   <code title="event-click">click</code> event</a> at the
                   3080:   element.</p>
                   3081: 
                   3082: 
                   3083:   <h5 id="using-the-button-element-to-define-a-command"><span class="secno">4.11.5.2 </span><dfn title="button-command">Using the <code>button</code> element to define a command</dfn></h5>
                   3084: 
                   3085:   <p>A <code><a href="the-button-element.html#the-button-element">button</a></code> element always <a href="#concept-command" title="concept-command">defines a command</a>.</p>
                   3086: 
                   3087:   <p>The <a href="#command-facet-type" title="command-facet-Type">Type</a>, <a href="#command-facet-id" title="command-facet-ID">ID</a>, <a href="#command-facet-label" title="command-facet-Label">Label</a>, <a href="#command-facet-hint" title="command-facet-Hint">Hint</a>, <a href="#command-facet-icon" title="command-facet-Icon">Icon</a>, <a href="#command-facet-accesskey" title="command-facet-AccessKey">Access Key</a>, <a href="#command-facet-hiddenstate" title="command-facet-HiddenState">Hidden State</a>, <a href="#command-facet-checkedstate" title="command-facet-CheckedState">Checked State</a>, and <a href="#command-facet-action" title="command-facet-Action">Action</a> facets of the command are
                   3088:   determined <a href="#using-the-a-element-to-define-a-command" title="a-command">as for <code>a</code>
                   3089:   elements</a> (see the previous section).</p>
                   3090: 
                   3091:   <p>The <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled
                   3092:   State</a> of the command is true if the element or one of its
                   3093:   ancestors is <a href="#inert">inert</a>, or if the element's <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a> state is set, and false
                   3094:   otherwise.</p>
                   3095: 
                   3096: 
                   3097:   <h5 id="using-the-input-element-to-define-a-command"><span class="secno">4.11.5.3 </span><dfn title="input-command">Using the <code>input</code> element to define a command</dfn></h5>
                   3098: 
                   3099:   <p>An <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in one of the <a href="states-of-the-type-attribute.html#submit-button-state-(type=submit)" title="attr-input-type-submit">Submit Button</a>, <a href="states-of-the-type-attribute.html#reset-button-state-(type=reset)" title="attr-input-type-reset">Reset Button</a>, <a href="states-of-the-type-attribute.html#image-button-state-(type=image)" title="attr-input-type-image">Image Button</a>, <a href="states-of-the-type-attribute.html#button-state-(type=button)" title="attr-input-type-button">Button</a>, <a href="states-of-the-type-attribute.html#radio-button-state-(type=radio)" title="attr-input-type-radio">Radio Button</a>, or <a href="states-of-the-type-attribute.html#checkbox-state-(type=checkbox)" title="attr-input-type-checkbox">Checkbox</a> states <a href="#concept-command" title="concept-command">defines a command</a>.</p>
                   3100: 
                   3101:   <p>The <a href="#command-facet-type" title="command-facet-Type">Type</a> of the command
                   3102:   is "radio" if the <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code>
                   3103:   attribute is in the <code title="attr-input-type-radio"><a href="states-of-the-type-attribute.html#radio-button-state-(type=radio)">Radio
                   3104:   Button</a></code> state, "checkbox" if the <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <code title="attr-input-type-checkbox"><a href="states-of-the-type-attribute.html#checkbox-state-(type=checkbox)">Checkbox</a></code> state, and
                   3105:   "command" otherwise.</p>
                   3106: 
                   3107:   <p>The <a href="#command-facet-id" title="command-facet-ID">ID</a> of the command is
                   3108:   the value of the <code title="attr-id"><a href="global-attributes.html#the-id-attribute">id</a></code> attribute of the
                   3109:   element, if the attribute is present and not empty. Otherwise the
                   3110:   command is an <a href="#anonymous-command">anonymous command</a>.</p>
                   3111: 
                   3112:   <p>The <a href="#command-facet-label" title="command-facet-Label">Label</a> of the command
                   3113:   depends on the Type of the command:</p>
                   3114: 
                   3115:   <p>If the <a href="#command-facet-type" title="command-facet-Type">Type</a> is "command",
                   3116:   then it is the string given by the <code title="attr-input-value"><a href="the-input-element.html#attr-input-value">value</a></code> attribute, if any, and a
                   3117:   UA-dependent, locale-dependent value that the UA uses to label the
                   3118:   button itself if the attribute is absent.</p>
                   3119: 
                   3120:   <p>Otherwise, the <a href="#command-facet-type" title="command-facet-Type">Type</a> is
                   3121:   "radio" or "checkbox". If the element is a <a href="the-label-element.html#labeled-control">labeled
                   3122:   control</a>, the <code><a href="infrastructure.html#textcontent">textContent</a></code> of the first
                   3123:   <code><a href="the-label-element.html#the-label-element">label</a></code> element in <a href="infrastructure.html#tree-order">tree order</a> whose
                   3124:   <a href="the-label-element.html#labeled-control">labeled control</a> is the element in question is the <a href="#command-facet-label" title="command-facet-Label">Label</a> (in DOM terms, this is the
                   3125:   string given by <code><var title="">element</var>.labels[0].textContent</code>). Otherwise,
                   3126:   the value of the <code title="attr-input-value"><a href="the-input-element.html#attr-input-value">value</a></code>
                   3127:   attribute, if present, is the <a href="#command-facet-label" title="command-facet-Label">Label</a>. Otherwise, the <a href="#command-facet-label" title="command-facet-Label">Label</a> is the empty string.</p>
                   3128: 
                   3129:   <p>The <a href="#command-facet-hint" title="command-facet-Hint">Hint</a> of the command
                   3130:   is the value of the <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code> attribute
                   3131:   of the <code><a href="the-input-element.html#the-input-element">input</a></code> element. If the attribute is not present, the
                   3132:   <a href="#command-facet-hint" title="command-facet-Hint">Hint</a> is the empty
                   3133:   string.</p>
                   3134: 
                   3135:   <p>If the element's <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code>
                   3136:   attribute is in the <a href="states-of-the-type-attribute.html#image-button-state-(type=image)" title="attr-input-type-image">Image
                   3137:   Button</a> state, and the element has a <code title="attr-img-src"><a href="the-img-element.html#attr-img-src">src</a></code> attribute, and that attribute's
                   3138:   value can be successfully <a href="urls.html#resolve-a-url" title="resolve a
                   3139:   url">resolved</a> relative to the element, then the <a href="#command-facet-icon" title="command-facet-Icon">Icon</a> of the command is the
                   3140:   <a href="urls.html#absolute-url">absolute URL</a> obtained from resolving that attribute
                   3141:   that way. Otherwise, there is no <a href="#command-facet-icon" title="command-facet-Icon">Icon</a> for the command.</p>
                   3142: 
                   3143:   <p>The <a href="#command-facet-accesskey" title="command-facet-AccessKey">AccessKey</a> of the
                   3144:   command is the element's <a href="#assigned-access-key">assigned access key</a>, if
                   3145:   any.</p>
                   3146: 
                   3147:   <p>The <a href="#command-facet-hiddenstate" title="command-facet-HiddenState">Hidden State</a>
                   3148:   of the command is true (hidden) if the element has a <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> attribute, and false
                   3149:   otherwise.</p>
                   3150: 
                   3151:   <p>The <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled
                   3152:   State</a> of the command is true if the element or one of its
                   3153:   ancestors is <a href="#inert">inert</a>, or if the element's <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a> state is set, and false
                   3154:   otherwise.</p>
                   3155: 
                   3156:   <p>The <a href="#command-facet-checkedstate" title="command-facet-CheckedState">Checked State</a>
                   3157:   of the command is true if the command is of <a href="#command-facet-type" title="command-facet-Type">Type</a> "radio" or "checkbox" and the
                   3158:   element is <a href="attributes-common-to-form-controls.html#concept-fe-checked" title="concept-fe-checked">checked</a>
                   3159:   attribute, and false otherwise.</p>
                   3160: 
                   3161:   <p>The <a href="#command-facet-action" title="command-facet-Action">Action</a> of the
                   3162:   command, if the element has a defined <a href="content-models.html#activation-behavior">activation
                   3163:   behavior</a>, is to <a href="content-models.html#run-synthetic-click-activation-steps">run synthetic click activation
                   3164:   steps</a> on the element. Otherwise, it is just to <a href="#fire-a-click-event">fire a
                   3165:   <code title="event-click">click</code> event</a> at the
                   3166:   element.</p>
                   3167: 
                   3168: 
                   3169:   <h5 id="using-the-option-element-to-define-a-command"><span class="secno">4.11.5.4 </span><dfn title="option-command">Using the <code>option</code> element to define a command</dfn></h5>
                   3170: 
                   3171:   <p>An <code><a href="the-option-element.html#the-option-element">option</a></code> element with an ancestor
                   3172:   <code><a href="the-select-element.html#the-select-element">select</a></code> element and either no <code title="attr-option-value"><a href="the-option-element.html#attr-option-value">value</a></code> attribute or a <code title="attr-option-value"><a href="the-option-element.html#attr-option-value">value</a></code> attribute that is not the
                   3173:   empty string <a href="#concept-command" title="concept-command">defines a
                   3174:   command</a>.</p>
                   3175: 
                   3176:   <p>The <a href="#command-facet-type" title="command-facet-Type">Type</a> of the command
                   3177:   is "radio" if the <code><a href="the-option-element.html#the-option-element">option</a></code>'s nearest ancestor
                   3178:   <code><a href="the-select-element.html#the-select-element">select</a></code> element has no <code title="attr-select-multiple"><a href="the-select-element.html#attr-select-multiple">multiple</a></code> attribute, and
                   3179:   "checkbox" if it does.</p>
                   3180: 
                   3181:   <p>The <a href="#command-facet-id" title="command-facet-ID">ID</a> of the command is
                   3182:   the value of the <code title="attr-id"><a href="global-attributes.html#the-id-attribute">id</a></code> attribute of the
                   3183:   element, if the attribute is present and not empty. Otherwise the
                   3184:   command is an <a href="#anonymous-command">anonymous command</a>.</p>
                   3185: 
                   3186:   <p>The <a href="#command-facet-label" title="command-facet-Label">Label</a> of the command
                   3187:   is the value of the <code><a href="the-option-element.html#the-option-element">option</a></code> element's <code title="attr-option-label"><a href="the-option-element.html#attr-option-label">label</a></code> attribute, if there is one,
                   3188:   or else the value of <code><a href="the-option-element.html#the-option-element">option</a></code> element's
                   3189:   <code><a href="infrastructure.html#textcontent">textContent</a></code> IDL attribute, with <a href="common-microsyntaxes.html#strip-leading-and-trailing-whitespace" title="strip
                   3190:   leading and trailing whitespace">leading and trailing whitespace
                   3191:   stripped</a>, and with any sequences of two or more <a href="common-microsyntaxes.html#space-character" title="space character">space characters</a> replaced by a single
                   3192:   U+0020 SPACE character.</p>
                   3193: 
                   3194:   <p>The <a href="#command-facet-hint" title="command-facet-Hint">Hint</a> of the command
                   3195:   is the string given by the element's <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code> attribute, if any, and the empty
                   3196:   string if the attribute is absent.</p>
                   3197: 
                   3198:   <p>There is no <a href="#command-facet-icon" title="command-facet-Icon">Icon</a> for the
                   3199:   command.</p>
                   3200: 
                   3201:   <p>The <a href="#command-facet-accesskey" title="command-facet-AccessKey">AccessKey</a> of the
                   3202:   command is the element's <a href="#assigned-access-key">assigned access key</a>, if
                   3203:   any.</p>
                   3204: 
                   3205:   <p>The <a href="#command-facet-hiddenstate" title="command-facet-HiddenState">Hidden State</a>
                   3206:   of the command is true (hidden) if the element has a <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> attribute, and false
                   3207:   otherwise.</p>
                   3208: 
                   3209:   <p>The <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled
                   3210:   State</a> of the command is true if the element is <a href="the-option-element.html#concept-option-disabled" title="concept-option-disabled">disabled</a>, or if its nearest
                   3211:   ancestor <code><a href="the-select-element.html#the-select-element">select</a></code> element is <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a>, or if it or one of its
                   3212:   ancestors is <a href="#inert">inert</a>, and false otherwise.</p>
                   3213: 
                   3214:   <p>The <a href="#command-facet-checkedstate" title="command-facet-CheckedState">Checked State</a>
                   3215:   of the command is true (checked) if the element's <a href="the-option-element.html#concept-option-selectedness" title="concept-option-selectedness">selectedness</a> is true, and
                   3216:   false otherwise.</p>
                   3217: 
                   3218:   <p>The <a href="#command-facet-action" title="command-facet-Action">Action</a> of the
                   3219:   command depends on its <a href="#command-facet-type" title="command-facet-Type">Type</a>. If the command is of <a href="#command-facet-type" title="command-facet-Type">Type</a> "radio" then it must <a href="the-select-element.html#concept-select-pick" title="concept-select-pick">pick</a> the <code><a href="the-option-element.html#the-option-element">option</a></code>
                   3220:   element. Otherwise, it must <a href="the-select-element.html#concept-select-toggle" title="concept-select-toggle">toggle</a> the <code><a href="the-option-element.html#the-option-element">option</a></code>
                   3221:   element.</p>
                   3222: 
                   3223: 
                   3224: 
                   3225:   <h5 id="using-the-command-element-to-define-a-command"><span class="secno">4.11.5.5 </span>Using the <dfn title="command-element"><code>command</code></dfn> element to define
                   3226:   a command</h5>
                   3227: 
                   3228:   <p>A <code><a href="#the-command-element">command</a></code> element that does not have a <code title="attr-command-command"><a href="#attr-command-command">command</a></code> attribute <a href="#concept-command" title="concept-command">defines a command</a>.</p>
                   3229: 
                   3230:   <p>The <a href="#command-facet-type" title="command-facet-Type">Type</a> of the command
                   3231:   is "radio" if the <code><a href="#the-command-element">command</a></code>'s <code title="attr-command-type"><a href="#attr-command-type">type</a></code> attribute is
                   3232:   "<code>radio</code>", "checkbox" if the attribute's value is
                   3233:   "<code>checkbox</code>", and "command" otherwise.</p>
                   3234: 
                   3235:   <p>The <a href="#command-facet-id" title="command-facet-ID">ID</a> of the command is
                   3236:   the value of the <code title="attr-id"><a href="global-attributes.html#the-id-attribute">id</a></code> attribute of the
                   3237:   element, if the attribute is present and not empty. Otherwise the
                   3238:   command is an <a href="#anonymous-command">anonymous command</a>.</p>
                   3239: 
                   3240:   <p>The <a href="#command-facet-label" title="command-facet-Label">Label</a> of the command
                   3241:   is the value of the element's <code title="attr-command-label"><a href="#attr-command-label">label</a></code> attribute, if there is one,
                   3242:   or the empty string if it doesn't.</p>
                   3243: 
                   3244:   <p>The <a href="#command-facet-hint" title="command-facet-Hint">Hint</a> of the command
                   3245:   is the string given by the element's <code title="attr-command-title"><a href="#attr-command-title">title</a></code> attribute, if any, and the
                   3246:   empty string if the attribute is absent.</p>
                   3247: 
                   3248:   <p>The <a href="#command-facet-icon" title="command-facet-Icon">Icon</a> for the command
                   3249:   is the <a href="urls.html#absolute-url">absolute URL</a> obtained from <a href="urls.html#resolve-a-url" title="resolve
                   3250:   a url">resolving</a> the value of the element's <code title="attr-command-icon"><a href="#attr-command-icon">icon</a></code> attribute, relative to the
                   3251:   element, if it has such an attribute and resolving it is
                   3252:   successful. Otherwise, there is no <a href="#command-facet-icon" title="command-facet-Icon">Icon</a> for the command.</p>
                   3253: 
                   3254:   <p>The <a href="#command-facet-accesskey" title="command-facet-AccessKey">AccessKey</a> of the
                   3255:   command is the element's <a href="#assigned-access-key">assigned access key</a>, if
                   3256:   any.</p>
                   3257: 
                   3258:   <p>The <a href="#command-facet-hiddenstate" title="command-facet-HiddenState">Hidden State</a>
                   3259:   of the command is true (hidden) if the element has a <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> attribute, and false
                   3260:   otherwise.</p>
                   3261: 
                   3262:   <p>The <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled
                   3263:   State</a> of the command is true if the element or one of its
                   3264:   ancestors is <a href="#inert">inert</a>, or if the element has a <code title="attr-command-disabled"><a href="#attr-command-disabled">disabled</a></code> attribute, and false
                   3265:   otherwise.</p>
                   3266: 
                   3267:   <p>The <a href="#command-facet-checkedstate" title="command-facet-CheckedState">Checked State</a>
                   3268:   of the command is true (checked) if the element has a <code title="attr-command-checked"><a href="#attr-command-checked">checked</a></code> attribute, and false
                   3269:   otherwise.</p>
                   3270: 
                   3271:   <p>The <a href="#command-facet-action" title="command-facet-Action">Action</a> of the
                   3272:   command, if the element has a defined <a href="content-models.html#activation-behavior">activation
                   3273:   behavior</a>, is to <a href="content-models.html#run-synthetic-click-activation-steps">run synthetic click activation
                   3274:   steps</a> on the element. Otherwise, it is just to <a href="#fire-a-click-event">fire a
                   3275:   <code title="event-click">click</code> event</a> at the
                   3276:   element.</p>
                   3277: 
                   3278: 
                   3279: 
                   3280:   <h5 id="using-the-command-attribute-on-command-elements-to-define-a-command-indirectly"><span class="secno">4.11.5.6 </span><dfn title="command-command-command">Using the <code title="attr-command-command">command</code> attribute on <code>command</code> elements to define a command indirectly</dfn></h5>
                   3281: 
                   3282:   <p>A <code><a href="#the-command-element">command</a></code> element with a <a href="#master-command">master command</a>
                   3283:   <a href="#concept-command" title="concept-command">defines a command</a>.</p>
                   3284: 
                   3285:   <p>The <a href="#command-facet-type" title="command-facet-Type">Type</a> of the command
                   3286:   is the <a href="#command-facet-type" title="command-facet-Type">Type</a> of the
                   3287:   <a href="#master-command">master command</a>.</p>
                   3288: 
                   3289:   <p>The <a href="#command-facet-id" title="command-facet-ID">ID</a> of the command is
                   3290:   the value of the <code title="attr-id"><a href="global-attributes.html#the-id-attribute">id</a></code> attribute of the
                   3291:   element, if the attribute is present and not empty. Otherwise the
                   3292:   command is an <a href="#anonymous-command">anonymous command</a>.</p>
                   3293: 
                   3294:   <p>The <a href="#command-facet-label" title="command-facet-Label">Label</a> of the command
                   3295:   is the <a href="#command-facet-label" title="command-facet-Label">Label</a> of the
                   3296:   <a href="#master-command">master command</a>.</p>
                   3297: 
                   3298:   <p>If the element has a <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code>
                   3299:   attribute, then the <a href="#command-facet-hint" title="command-facet-Hint">Hint</a> of
                   3300:   the command is the value of that <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code> attribute. Otherwise, the <a href="#command-facet-hint" title="command-facet-Hint">Hint</a> of the command is the <a href="#command-facet-hint" title="command-facet-Hint">Hint</a> of the <a href="#master-command">master
                   3301:   command</a>.</p>
                   3302: 
                   3303:   <p>The <a href="#command-facet-icon" title="command-facet-Icon">Icon</a> of the command
                   3304:   is the <a href="#command-facet-icon" title="command-facet-Icon">Icon</a> of the
                   3305:   <a href="#master-command">master command</a>.</p>
                   3306: 
                   3307:   <p>The <a href="#command-facet-accesskey" title="command-facet-AccessKey">AccessKey</a> of the
                   3308:   command is the element's <a href="#assigned-access-key">assigned access key</a>, if
                   3309:   any.</p>
                   3310: 
                   3311:   <p>The <a href="#command-facet-hiddenstate" title="command-facet-HiddenState">Hidden State</a>
                   3312:   of the command is the <a href="#command-facet-hiddenstate" title="command-facet-HiddenState">Hidden
                   3313:   State</a> of the <a href="#master-command">master command</a>.</p>
                   3314: 
                   3315:   <p>The <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled
                   3316:   State</a> of the command is the <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled State</a> of the
                   3317:   <a href="#master-command">master command</a>.</p>
                   3318: 
                   3319:   <p>The <a href="#command-facet-checkedstate" title="command-facet-CheckedState">Checked
                   3320:   State</a> of the command is the <a href="#command-facet-checkedstate" title="command-facet-CheckedState">Checked State</a> of the
                   3321:   <a href="#master-command">master command</a>.</p>
                   3322: 
                   3323:   <p>The <a href="#command-facet-action" title="command-facet-Action">Action</a> of the
                   3324:   command is to invoke the <a href="#command-facet-action" title="command-facet-Action">Action</a> of the <a href="#master-command">master
                   3325:   command</a>.</p>
                   3326: 
                   3327: 
                   3328: 
                   3329:   <h5 id="using-the-accesskey-attribute-on-a-label-element-to-define-a-command"><span class="secno">4.11.5.7 </span><dfn title="label-command">Using the <code title="attr-accesskey">accesskey</code> attribute on a <code>label</code> element to define a command</dfn></h5>
                   3330: 
                   3331:   <p>A <code><a href="the-label-element.html#the-label-element">label</a></code> element that has an <a href="#assigned-access-key">assigned access
                   3332:   key</a> and a <a href="the-label-element.html#labeled-control">labeled control</a> and whose
                   3333:   <a href="the-label-element.html#labeled-control">labeled control</a> <a href="#concept-command" title="concept-command">defines a
                   3334:   command</a>, itself <a href="#concept-command" title="concept-command">defines a
                   3335:   command</a>.</p>
                   3336: 
                   3337:   <p>The <a href="#command-facet-type" title="command-facet-Type">Type</a> of the command
                   3338:   is "command".</p>
                   3339: 
                   3340:   <p>The <a href="#command-facet-id" title="command-facet-ID">ID</a> of the command is
                   3341:   the value of the <code title="attr-id"><a href="global-attributes.html#the-id-attribute">id</a></code> attribute of the
                   3342:   element, if the attribute is present and not empty. Otherwise the
                   3343:   command is an <a href="#anonymous-command">anonymous command</a>.</p>
                   3344: 
                   3345:   <p>The <a href="#command-facet-label" title="command-facet-Label">Label</a> of the command
                   3346:   is the string given by the element's <code><a href="infrastructure.html#textcontent">textContent</a></code> IDL
                   3347:   attribute.</p>
                   3348: 
                   3349:   <p>The <a href="#command-facet-hint" title="command-facet-Hint">Hint</a> of the command
                   3350:   is the value of the <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code> attribute
                   3351:   of the element.</p>
                   3352: 
                   3353:   <p>There is no <a href="#command-facet-icon" title="command-facet-Icon">Icon</a> for the
                   3354:   command.</p>
                   3355: 
                   3356:   <p>The <a href="#command-facet-accesskey" title="command-facet-AccessKey">AccessKey</a> of the
                   3357:   command is the element's <a href="#assigned-access-key">assigned access key</a>.</p>
                   3358: 
                   3359:   <p>The <a href="#command-facet-hiddenstate" title="command-facet-HiddenState">Hidden State</a>,
                   3360:   <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled State</a>, and
                   3361:   <a href="#command-facet-action" title="command-facet-Action">Action</a> facets of the
                   3362:   command are the same as the respective facets of the element's
                   3363:   <a href="the-label-element.html#labeled-control">labeled control</a>.</p>
                   3364: 
                   3365:   <p>The <a href="#command-facet-checkedstate" title="command-facet-CheckedState">Checked State</a>
                   3366:   of the command is always false. (The command is never checked.)</p>
                   3367: 
                   3368: 
                   3369: 
                   3370:   <h5 id="using-the-accesskey-attribute-on-a-legend-element-to-define-a-command"><span class="secno">4.11.5.8 </span><dfn title="legend-command">Using the <code title="attr-accesskey">accesskey</code> attribute on a <code>legend</code> element to define a command</dfn></h5>
                   3371: 
                   3372:   <p>A <code><a href="the-legend-element.html#the-legend-element">legend</a></code> element that has an <a href="#assigned-access-key">assigned access
                   3373:   key</a> and is a child of a <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code> element that
                   3374:   has a descendant that is not a descendant of the <code><a href="the-legend-element.html#the-legend-element">legend</a></code>
                   3375:   element and is neither a <code><a href="the-label-element.html#the-label-element">label</a></code> element nor a
                   3376:   <code><a href="the-legend-element.html#the-legend-element">legend</a></code> element but that <a href="#concept-command" title="concept-command">defines a command</a>, itself <a href="#concept-command" title="concept-command">defines a command</a>.</p>
                   3377: 
                   3378:   <p>The <a href="#command-facet-type" title="command-facet-Type">Type</a> of the command
                   3379:   is "command".</p>
                   3380: 
                   3381:   <p>The <a href="#command-facet-id" title="command-facet-ID">ID</a> of the command is
                   3382:   the value of the <code title="attr-id"><a href="global-attributes.html#the-id-attribute">id</a></code> attribute of the
                   3383:   element, if the attribute is present and not empty. Otherwise the
                   3384:   command is an <a href="#anonymous-command">anonymous command</a>.</p>
                   3385: 
                   3386:   <p>The <a href="#command-facet-label" title="command-facet-Label">Label</a> of the command
                   3387:   is the string given by the element's <code><a href="infrastructure.html#textcontent">textContent</a></code> IDL
                   3388:   attribute.</p>
                   3389: 
                   3390:   <p>The <a href="#command-facet-hint" title="command-facet-Hint">Hint</a> of the command
                   3391:   is the value of the <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code> attribute
                   3392:   of the element.</p>
                   3393: 
                   3394:   <p>There is no <a href="#command-facet-icon" title="command-facet-Icon">Icon</a> for the
                   3395:   command.</p>
                   3396: 
                   3397:   <p>The <a href="#command-facet-accesskey" title="command-facet-AccessKey">AccessKey</a> of the
                   3398:   command is the element's <a href="#assigned-access-key">assigned access key</a>.</p>
                   3399: 
                   3400:   <p>The <a href="#command-facet-hiddenstate" title="command-facet-HiddenState">Hidden State</a>,
                   3401:   <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled State</a>, and
                   3402:   <a href="#command-facet-action" title="command-facet-Action">Action</a> facets of the
                   3403:   command are the same as the respective facets of the first element
                   3404:   in <a href="infrastructure.html#tree-order">tree order</a> that is a descendant of the parent of the
                   3405:   <code><a href="the-legend-element.html#the-legend-element">legend</a></code> element that <a href="#concept-command" title="concept-command">defines a command</a> but is not a
                   3406:   descendant of the <code><a href="the-legend-element.html#the-legend-element">legend</a></code> element and is neither a
                   3407:   <code><a href="the-label-element.html#the-label-element">label</a></code> nor a <code><a href="the-legend-element.html#the-legend-element">legend</a></code> element.</p>
                   3408: 
                   3409:   <p>The <a href="#command-facet-checkedstate" title="command-facet-CheckedState">Checked State</a>
                   3410:   of the command is always false. (The command is never checked.)</p>
                   3411: 
                   3412: 
                   3413: 
                   3414:   <h5 id="using-the-accesskey-attribute-to-define-a-command-on-other-elements"><span class="secno">4.11.5.9 </span><dfn title="accesskey-command">Using the <code title="attr-accesskey">accesskey</code> attribute to define a command on other elements</dfn></h5>
                   3415: 
                   3416:   <p>An element that has an <a href="#assigned-access-key">assigned access key</a> <a href="#concept-command" title="concept-command">defines a command</a>.</p>
                   3417: 
                   3418:   <p>If one of the earlier sections that define elements that <a href="#concept-command" title="concept-command">define commands</a> define that this
                   3419:   element <a href="#concept-command" title="concept-command">defines a command</a>, then
                   3420:   that section applies to this element, and this section does not.
                   3421:   Otherwise, this section applies to that element.</p>
                   3422: 
                   3423:   <p>The <a href="#command-facet-type" title="command-facet-Type">Type</a> of the command
                   3424:   is "command".</p>
                   3425: 
                   3426:   <p>The <a href="#command-facet-id" title="command-facet-ID">ID</a> of the command is
                   3427:   the value of the <code title="attr-id"><a href="global-attributes.html#the-id-attribute">id</a></code> attribute of the
                   3428:   element, if the attribute is present and not empty. Otherwise the
                   3429:   command is an <a href="#anonymous-command">anonymous command</a>.</p>
                   3430: 
                   3431:   <p>The <a href="#command-facet-label" title="command-facet-Label">Label</a> of the command
                   3432:   depends on the element. If the element is a <a href="the-label-element.html#labeled-control">labeled
                   3433:   control</a>, the <code><a href="infrastructure.html#textcontent">textContent</a></code> of the first
                   3434:   <code><a href="the-label-element.html#the-label-element">label</a></code> element in <a href="infrastructure.html#tree-order">tree order</a> whose
                   3435:   <a href="the-label-element.html#labeled-control">labeled control</a> is the element in question is the <a href="#command-facet-label" title="command-facet-Label">Label</a> (in DOM terms, this is the
                   3436:   string given by <code><var title="">element</var>.labels[0].textContent</code>). Otherwise, the
                   3437:   <a href="#command-facet-label" title="command-facet-Label">Label</a> is the
                   3438:   <code><a href="infrastructure.html#textcontent">textContent</a></code> of the element itself.</p>
                   3439: 
                   3440:   <p>The <a href="#command-facet-hint" title="command-facet-Hint">Hint</a> of the command
                   3441:   is the value of the <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code> attribute
                   3442:   of the element. If the attribute is not present, the <a href="#command-facet-hint" title="command-facet-Hint">Hint</a> is the empty string.</p>
                   3443: 
                   3444:   <p>There is no <a href="#command-facet-icon" title="command-facet-Icon">Icon</a> for the
                   3445:   command.</p>
                   3446: 
                   3447:   <p>The <a href="#command-facet-accesskey" title="command-facet-AccessKey">AccessKey</a> of the
                   3448:   command is the element's <a href="#assigned-access-key">assigned access key</a>.</p>
                   3449: 
                   3450:   <p>The <a href="#command-facet-hiddenstate" title="command-facet-HiddenState">Hidden State</a>
                   3451:   of the command is true (hidden) if the element has a <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> attribute, and false
                   3452:   otherwise.</p>
                   3453: 
                   3454:   <p>The <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled
                   3455:   State</a> of the command is true if the element or one of its
                   3456:   ancestors is <a href="#inert">inert</a>, and false otherwise.</p>
                   3457: 
                   3458:   <p>The <a href="#command-facet-checkedstate" title="command-facet-CheckedState">Checked State</a>
                   3459:   of the command is always false. (The command is never checked.)</p>
                   3460: 
                   3461:   <p>The <a href="#command-facet-action" title="command-facet-Action">Action</a> of the
                   3462:   command is to run the following steps:</p>
                   3463: 
                   3464:   <ol><li>If the element is <a href="#focusable">focusable</a>, run the
                   3465:    <a href="#focusing-steps">focusing steps</a> for the element.</li>
                   3466: 
                   3467:    <li>If the element has a defined <a href="content-models.html#activation-behavior">activation behavior</a>,
                   3468:    <a href="content-models.html#run-synthetic-click-activation-steps">run synthetic click activation steps</a> on the
                   3469:    element.</li>
                   3470: 
                   3471:    <li>Otherwise, if the element does not have a defined
                   3472:    <a href="content-models.html#activation-behavior">activation behavior</a>, <a href="#fire-a-click-event">fire a <code title="event-click">click</code> event</a> at the element.</li>
                   3473: 
                   3474:   </ol></div>
                   3475: 
                   3476: 
                   3477:   <h4 id="the-dialog-element"><span class="secno">4.11.6 </span>The <dfn><code>dialog</code></dfn> element</h4>
                   3478: 
                   3479:   <dl class="element"><dt><a href="element-definitions.html#element-dfn-categories" title="element-dfn-categories">Categories</a>:</dt>
                   3480:    <dd><a href="content-models.html#flow-content-1">Flow content</a>.</dd>
                   3481:    <dd><a href="headings-and-sections.html#sectioning-root">Sectioning root</a>.</dd>
                   3482:    <dt><a href="element-definitions.html#element-dfn-contexts" title="element-dfn-contexts">Contexts in which this element can be used</a>:</dt>
                   3483:    <dd>Where <a href="content-models.html#flow-content-1">flow content</a> is expected.</dd>
                   3484:    <dd>As a child of a <code><a href="the-dt-element.html#the-dt-element">dt</a></code> element.</dd>
                   3485:    <dd>As a child of a <code><a href="the-th-element.html#the-th-element">th</a></code> element.</dd>
                   3486:    <dt><a href="element-definitions.html#element-dfn-content-model" title="element-dfn-content-model">Content model</a>:</dt>
                   3487:    <dd><a href="content-models.html#flow-content-1">Flow content</a>.</dd>
                   3488:    <dt><a href="element-definitions.html#element-dfn-attributes" title="element-dfn-attributes">Content attributes</a>:</dt>
                   3489:    <dd><a href="global-attributes.html#global-attributes">Global attributes</a></dd>
                   3490:    <dd><code title="attr-dialog-open"><a href="#attr-dialog-open">open</a></code></dd>
                   3491:    <dt><a href="element-definitions.html#element-dfn-dom" title="element-dfn-dom">DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
                   3492:    <dd>
                   3493: <pre class="idl">interface <dfn id="htmldialogelement">HTMLDialogElement</dfn> : <a href="elements.html#htmlelement">HTMLElement</a> {
                   3494:            attribute boolean <a href="#dom-dialog-open" title="dom-dialog-open">open</a>;
                   3495:            attribute DOMString <a href="#dom-dialog-returnvalue" title="dom-dialog-returnValue">returnValue</a>;
                   3496:   void <a href="#dom-dialog-show" title="dom-dialog-show">show</a>(optional (<a href="infrastructure.html#mouseevent-10">MouseEvent</a> or <a href="infrastructure.html#element">Element</a>) anchor);
                   3497:   void <a href="#dom-dialog-showmodal" title="dom-dialog-showModal">showModal</a>(optional (<a href="infrastructure.html#mouseevent-10">MouseEvent</a> or <a href="infrastructure.html#element">Element</a>) anchor);
                   3498:   void <a href="#dom-dialog-close" title="dom-dialog-close">close</a>(optional DOMString returnValue);
                   3499: };</pre>
                   3500:    </dd>
                   3501:   </dl><!--TOPIC:HTML--><p>The <code><a href="#the-dialog-element">dialog</a></code> element represents a part of an
                   3502:   application that a user interacts with to perform a task, for
                   3503:   example a dialog box, inspector, or window.</p>
                   3504: 
                   3505:   <p>The <dfn id="attr-dialog-open" title="attr-dialog-open"><code>open</code></dfn>
                   3506:   attribute is a <a href="common-microsyntaxes.html#boolean-attribute">boolean attribute</a>. When specified, it
                   3507:   indicates that the <code><a href="#the-dialog-element">dialog</a></code> element is active and that
                   3508:   the user can interact with it.</p>
                   3509: 
                   3510:   <div class="impl">
                   3511: 
                   3512:   <p>A <code><a href="#the-dialog-element">dialog</a></code> element without an <code title="attr-dialog-open"><a href="#attr-dialog-open">open</a></code> attribute specified should not
                   3513:   be shown to the user. This requirement may be implemented indirectly
                   3514:   through the style layer. For example, user agents that <a href="infrastructure.html#renderingUA">support the suggested default rendering</a>
                   3515:   implement this requirement using the CSS rules described in the <a href="#rendering">rendering section</a>.</p>
                   3516: 
                   3517:   </div>
                   3518: 
                   3519: <!--TOPIC:DOM APIs-->
                   3520: 
                   3521:   <dl class="domintro"><dt><var title="">dialog</var> . <code title="dom-dialog-show"><a href="#dom-dialog-show">show</a></code>( [ <var title="">anchor</var> ] )</dt>
                   3522: 
                   3523:    <dd>
                   3524: 
                   3525:     <p>Displays the <code><a href="#the-dialog-element">dialog</a></code> element.</p>
                   3526: 
                   3527:     <p>The argument, if provided, provides an anchor point to which
                   3528:     the element will be fixed.</p>
                   3529: 
                   3530:    </dd>
                   3531: 
                   3532:    <dt><var title="">dialog</var> . <code title="dom-dialog-showModal"><a href="#dom-dialog-showmodal">showModal</a></code>( [ <var title="">anchor</var> ] )</dt>
                   3533: 
                   3534:    <dd>
                   3535: 
                   3536:     <p>Displays the <code><a href="#the-dialog-element">dialog</a></code> element and makes it the top-most modal dialog.</p>
                   3537: 
                   3538:     <p>The argument, if provided, provides an anchor point to which
                   3539:     the element will be fixed.</p>
                   3540: 
                   3541:     <p>This method honors the <code title="attr-fe-autofocus"><a href="attributes-common-to-form-controls.html#attr-fe-autofocus">autofocus</a></code> attribute.</p>
                   3542: 
                   3543:    </dd>
                   3544: 
                   3545:    <dt><var title="">dialog</var> . <code title="dom-dialog-close"><a href="#dom-dialog-close">close</a></code>( [ <var title="">result</var> ] )</dt>
                   3546: 
                   3547:    <dd>
                   3548: 
                   3549:     <p>Closes the <code><a href="#the-dialog-element">dialog</a></code> element.</p>
                   3550: 
                   3551:     <p>The argument, if provided, provides a return value.</p>
                   3552: 
                   3553:    </dd>
                   3554: 
                   3555:    <dt><var title="">dialog</var> . <code title="dom-dialog-returnValue"><a href="#dom-dialog-returnvalue">returnValue</a></code> [ = <var title="">result</var> ]</dt>
                   3556: 
                   3557:    <dd>
                   3558: 
                   3559:     <p>Returns the <code><a href="#the-dialog-element">dialog</a></code>'s return value.</p>
                   3560: 
                   3561:     <p>Can be set, to update the return value.</p>
                   3562: 
                   3563:    </dd>
                   3564: 
                   3565:   </dl><div class="impl">
                   3566: 
                   3567:   <p>When the <dfn id="dom-dialog-show" title="dom-dialog-show"><code>show()</code></dfn>
                   3568:   method is invoked, the user agent must run the following steps:</p>
                   3569: 
                   3570:   <ol><li><p>If the element already has an <code title="attr-dialog-open"><a href="#attr-dialog-open">open</a></code> attribute, then abort these
                   3571:    steps.</p></li>
                   3572: 
                   3573:    <li><p>Add an <code title="attr-dialog-open"><a href="#attr-dialog-open">open</a></code> attribute
                   3574:    to the <code><a href="#the-dialog-element">dialog</a></code> element, whose value is the empty
                   3575:    string.</p></li>
                   3576: 
                   3577:    <li><p>If the <code title="dom-dialog-show"><a href="#dom-dialog-show">show()</a></code> method
                   3578:    was invoked with an argument, <a href="#set-up-the-position">set up the position</a> of
                   3579:    the <code><a href="#the-dialog-element">dialog</a></code> element, using that argument as the anchor.
                   3580:    Otherwise, <a href="#set-up-the-default-static-position">set up the default static position</a> of the
                   3581:    dialog element.</p></li>
                   3582: 
                   3583:   </ol><hr><p>Each <code><a href="dom.html#document">Document</a></code> has a stack of <code><a href="#the-dialog-element">dialog</a></code>
                   3584:   elements known as the <dfn id="pending-dialog-stack">pending dialog stack</dfn>. When a
                   3585:   <code><a href="dom.html#document">Document</a></code> is created, this stack must be initialized to
                   3586:   be empty.</p>
                   3587: 
                   3588:   <p>When an element is added to the <a href="#pending-dialog-stack">pending dialog
                   3589:   stack</a>, it must also be added to the <a href="infrastructure.html#top-layer">top layer</a>
                   3590:   layer. When an element is removed from the <a href="#pending-dialog-stack">pending dialog
                   3591:   stack</a>, it must be removed from the <a href="infrastructure.html#top-layer">top layer</a>. <a href="#refsFULLSCREEN">[FULLSCREEN]</a></p>
                   3592: 
                   3593:   <p>When the <dfn id="dom-dialog-showmodal" title="dom-dialog-showModal"><code>showModal()</code></dfn> method
                   3594:   is invoked, the user agent must run the following steps:</p>
                   3595: 
                   3596:   <ol><li><p>Let <var title="">dialog</var> be the <code><a href="#the-dialog-element">dialog</a></code>
                   3597:    element on which the method was invoked.</p></li>
                   3598: 
                   3599:    <li><p>If <var title="">dialog</var> already has an <code title="attr-dialog-open"><a href="#attr-dialog-open">open</a></code> attribute, then throw an
                   3600:    <a href="infrastructure.html#invalidstateerror">InvalidStateError</a> exception and abort these
                   3601:    steps.</p></li>
                   3602: 
                   3603:    <li><p>If <var title="">dialog</var> is not <a href="infrastructure.html#in-a-document">in a
                   3604:    <code>Document</code></a>, then throw an
                   3605:    <a href="infrastructure.html#invalidstateerror">InvalidStateError</a> exception and abort these
                   3606:    steps.</p></li>
                   3607: 
                   3608:    <li><p>Add an <code title="attr-dialog-open"><a href="#attr-dialog-open">open</a></code> attribute
                   3609:    to <var title="">dialog</var>, whose value is the empty
                   3610:    string.</p></li>
                   3611: 
                   3612:    <li><p>If the <code title="dom-dialog-showModal"><a href="#dom-dialog-showmodal">showModal()</a></code>
                   3613:    method was invoked with an argument, <a href="#set-up-the-position">set up the
                   3614:    position</a> of <var title="">dialog</var>, using that argument
                   3615:    as the anchor. Otherwise, <a href="#set-up-the-default-static-position">set up the default static
                   3616:    position</a> of the dialog element.</p></li>
                   3617: 
                   3618:    <li><p>Let <var title="">dialog</var>'s <code><a href="dom.html#document">Document</a></code> be
                   3619:    <a href="#blocked-by-a-modal-dialog" title="blocked by a modal dialog">blocked by the modal
                   3620:    dialog</a> <var title="">dialog</var>.</p></li>
                   3621: 
                   3622:    <li><p>Push <var title="">dialog</var> onto <var title="">dialog</var>'s <code><a href="dom.html#document">Document</a></code>'s <a href="#pending-dialog-stack">pending
                   3623:    dialog stack</a>.</p></li>
                   3624: 
                   3625:    <li><p>Let <var title="">control</var> be the first element in tree
                   3626:    order whose nearest ancestor <code><a href="#the-dialog-element">dialog</a></code> element is <var title="">dialog</var> and that has an <code title="attr-fe-autofocus"><a href="attributes-common-to-form-controls.html#attr-fe-autofocus">autofocus</a></code> attribute
                   3627:    specified, if any.</p></li>
                   3628: 
                   3629:    <li><p>If there is no <var title="">control</var>, then abort these
                   3630:    steps.</p></li>
                   3631: 
                   3632:    <li><p>Run the <a href="#focusing-steps">focusing steps</a> for <var title="">control</var>.</p></li>
                   3633: 
                   3634:   </ol><p>If at any time a <code><a href="#the-dialog-element">dialog</a></code> element is <a href="infrastructure.html#remove-an-element-from-a-document" title="remove an element from a document">removed from a
                   3635:   <code>Document</code></a>, then if that <code><a href="#the-dialog-element">dialog</a></code> is in
                   3636:   that <code><a href="dom.html#document">Document</a></code>'s <a href="#pending-dialog-stack">pending dialog stack</a>, the
                   3637:   following steps must be run:</p>
                   3638: 
                   3639:   <ol><li><p>Let <var title="">dialog</var> be that <code><a href="#the-dialog-element">dialog</a></code>
                   3640:    element and <var title="">document</var> be the
                   3641:    <code><a href="dom.html#document">Document</a></code> from which it is being removed.</p></li>
                   3642: 
                   3643:    <li><p>Remove <var title="">dialog</var> from <var title="">document</var>'s <a href="#pending-dialog-stack">pending dialog
                   3644:    stack</a>.</p></li>
                   3645: 
                   3646:    <li><p>If <var title="">document</var>'s <a href="#pending-dialog-stack">pending dialog
                   3647:    stack</a> is not empty, then let <var title="">document</var> be
                   3648:    <a href="#blocked-by-a-modal-dialog" title="blocked by a modal dialog">blocked by the modal
                   3649:    dialog</a> that is at the top of <var title="">document</var>'s
                   3650:    <a href="#pending-dialog-stack">pending dialog stack</a>. Otherwise, let <var title="">document</var> be no longer <a href="#blocked-by-a-modal-dialog">blocked by a modal
                   3651:    dialog</a> at all.</p></li>
                   3652: 
                   3653:   </ol><p>When the <dfn id="dom-dialog-close" title="dom-dialog-close"><code>close()</code></dfn>
                   3654:   method is invoked, the user agent must <a href="#close-the-dialog">close the dialog</a>
                   3655:   that the method was invoked on. If the method was invoked with an
                   3656:   argument, that argument must be used as the return value; otherwise,
                   3657:   there is no return value.</p>
                   3658: 
                   3659: <!--TOPIC:HTML-->
                   3660: 
                   3661:   <p>When a <code><a href="#the-dialog-element">dialog</a></code> element <var title="">dialog</var> is
                   3662:   to be <dfn id="close-the-dialog" title="close the dialog">closed</dfn>, optionally with a
                   3663:   return value <var title="">result</var>, the user agent must run the
                   3664:   following steps:</p>
                   3665: 
                   3666:   <ol><li><p>If <var title="">dialog</var> does not have an <code title="attr-dialog-open"><a href="#attr-dialog-open">open</a></code> attribute, then throw an
                   3667:    <a href="infrastructure.html#invalidstateerror">InvalidStateError</a> exception and abort these
                   3668:    steps.</p></li>
                   3669: 
                   3670:    <li><p>Remove <var title="">dialog</var>'s <code title="attr-dialog-open"><a href="#attr-dialog-open">open</a></code> attribute.</p></li>
                   3671: 
                   3672:    <li><p>If the argument was passed a <var title="">result</var>,
                   3673:    then set the <code title="dom-dialog-returnValue"><a href="#dom-dialog-returnvalue">returnValue</a></code> attribute to the
                   3674:    value of <var title="">result</var>.</p></li>
                   3675: 
                   3676:    <li>
                   3677: 
                   3678:     <p>If <var title="">dialog</var> is in its <code><a href="dom.html#document">Document</a></code>'s
                   3679:     <a href="#pending-dialog-stack">pending dialog stack</a>, then run these substeps:</p>
                   3680: 
                   3681:     <ol><li><p>Remove <var title="">dialog</var> from that <a href="#pending-dialog-stack">pending
                   3682:      dialog stack</a>.</p></li>
                   3683: 
                   3684:      <li><p>If that <a href="#pending-dialog-stack">pending dialog stack</a> is not empty,
                   3685:      then let <var title="">dialog</var>'s <code><a href="dom.html#document">Document</a></code> be
                   3686:      <a href="#blocked-by-a-modal-dialog" title="blocked by a modal dialog">blocked by the modal
                   3687:      dialog</a> that is at the top of the <a href="#pending-dialog-stack">pending dialog
                   3688:      stack</a>. Otherwise, let <var title="">document</var> be no
                   3689:      longer <a href="#blocked-by-a-modal-dialog">blocked by a modal dialog</a> at all.</p></li>
                   3690: 
                   3691:     </ol></li>
                   3692: 
                   3693:    <li><p><a href="#queue-a-task">Queue a task</a> to <a href="#fire-a-simple-event">fire a simple
                   3694:    event</a> named <code title="event-close">close</code> at <var title="">dialog</var>.</p></li>
                   3695: 
                   3696:   </ol><!--TOPIC:DOM APIs--><p>The <dfn id="dom-dialog-returnvalue" title="dom-dialog-returnValue"><code>returnValue</code></dfn> IDL
                   3697:   attribute, on getting, must return the last value to which it was
                   3698:   set. On setting, it must be set to the new value. When the element
                   3699:   is created, it must be set to the empty string.</p>
                   3700: 
                   3701: <!--TOPIC:HTML-->
                   3702: 
                   3703:   <hr><p><strong>Canceling dialogs</strong>: When a
                   3704:   <code><a href="dom.html#document">Document</a></code>'s <a href="#pending-dialog-stack">pending dialog stack</a> is not
                   3705:   empty, user agents may provide a user interface that, upon
                   3706:   activation, <a href="#queue-a-task" title="queue a task">queues a task</a> to
                   3707:   <a href="#fire-a-simple-event">fire a simple event</a> named <code title="event-cancel">cancel</code> that is cancelable at the top
                   3708:   <code><a href="#the-dialog-element">dialog</a></code> element on the <code><a href="dom.html#document">Document</a></code>'s
                   3709:   <a href="#pending-dialog-stack">pending dialog stack</a>. The default action of this event
                   3710:   must be to <a href="#close-the-dialog">close the dialog</a> with no return value.</p>
                   3711: 
                   3712:   <p class="note">An example of such a UI mechanism would be the user
                   3713:   pressing the "Escape" key.</p>
                   3714: 
                   3715:   <hr><p>When a user agent is to <dfn id="set-up-the-default-static-position">set up the default static
                   3716:   position</dfn> of an element <var title="">dialog</var> without an
                   3717:   anchor, it must set up the element such that its top static
                   3718:   position, for the purposes of calculating the used value of the
                   3719:   'top' property, is the value that would place the element's top
                   3720:   margin edge as far from the top of the viewport as the element's
                   3721:   bottom margin edge from the bottom of the viewport, if the element's
                   3722:   height is less than the height of the viewport, and otherwise is the
                   3723:   value that would place the element's top margin edge at the top of
                   3724:   the viewport.</p>
                   3725: 
                   3726:   <p>This top static position must remain the element's top static
                   3727:   position until it is next changed by the above algorithm or the next
                   3728:   one. (The element's static position is only used in calculating the
                   3729:   used value of the 'top' property in certain situations; it's not
                   3730:   used, for instance, to position the element if its 'position'
                   3731:   property is set to 'static'.)</p>
                   3732: 
                   3733:   <p>When a user agent is to <dfn id="set-up-the-position">set up the position</dfn> of an
                   3734:   element <var title="">dialog</var> using an anchor <var title="">anchor</var>, it must run the following steps:</p>
                   3735: 
                   3736:   <ol><li>
                   3737: 
                   3738:     <p>If <var title="">anchor</var> is a <code><a href="infrastructure.html#mouseevent-10">MouseEvent</a></code>
                   3739:     object, then run these substeps:</p>
                   3740: 
                   3741:     <ol><li><p>If <var title="">anchor</var>'s target element does not
                   3742:      have a rendered box, or is in a different document than <var title="">dialog</var>, then abort the <a href="#set-up-the-position">set up the
                   3743:      position</a> steps.</p></li>
                   3744: 
                   3745:      <li><p>Let <var title="">anchor element</var> be an anonymous
                   3746:      element rendered as a box with zero height and width (so its
                   3747:      margin and border boxes both just form a point), positioned so
                   3748:      that its top and left are at the coordinate identified by the
                   3749:      event, and whose properties all compute to their initial
                   3750:      values.</p></li>
                   3751: 
                   3752:     </ol><p>Otherwise, let <var title="">anchor element</var> be <var title="">anchor</var>.</p>
                   3753: 
                   3754:    </li>
                   3755: 
                   3756:    <li><p>Let <var title="">dialog</var> be <a href="#magically-aligned">magically
                   3757:    aligned</a> to <var title="">anchor element</var>.</p></li>
                   3758: 
                   3759:   </ol><p>While an element <var title="">A</var> is <dfn id="magically-aligned">magically
                   3760:   aligned</dfn> to an element <var title="">B</var>, <var title="">A</var> and <var title="">B</var> both have rendered boxes,
                   3761:   and <var title="">B</var> is not a descendant of <var title="">A</var>, the following requirements apply:</p>
                   3762: 
                   3763:   <ul><li><p><var title="">A</var>'s 'position' property must compute to
                   3764:    the keyword '<dfn id="css-position-absolute-anchored" title="css-position-absolute-anchored">absolute-anchored</dfn>'.</p></li>
                   3765: 
                   3766:    <li>
                   3767: 
                   3768:     <p>Let <var title="">A</var> and <var title="">B</var>'s anchor
                   3769:     points be defined as per the appropriate entry in the following
                   3770:     list:</p>
                   3771: 
                   3772:     <dl class="switch"><dt>If the computed value of 'anchor-point' is 'none' on both
                   3773:      <var title="">A</var> and <var title="">B</var>
                   3774: 
                   3775:      </dt><dd>
                   3776: 
                   3777:       <p>The anchor points of <var title="">A</var> and <var title="">B</var> are the center points of their respective first
                   3778:       boxes' border boxes.
                   3779: 
                   3780: 
                   3781:      </p></dd><dt>If the computed value of 'anchor-point' is 'none' on <var title="">A</var> and a specific point on <var title="">B</var>
                   3782: 
                   3783:      </dt><dd>
                   3784:       <p>The anchor point of <var title="">B</var> is the point given
                   3785:       by its 'anchor-point' property.
                   3786: 
                   3787:       </p><p>If the anchor point of <var title="">B</var> is the center
                   3788:       point of <var title="">B</var>'s first box's border box, then
                   3789:       <var title="">A</var>'s anchor point is the center point of its
                   3790:       first box's margin box.
                   3791: 
                   3792:       </p><p>Otherwise, <var title="">A</var>'s anchor point is on one of
                   3793:       its margin edges. Consider four hypothetical half-infinite lines
                   3794:       L1, L2, L3, and L4 that each start in the center of <var title="">B</var>'s first box's border box, and that extend
                   3795:       respectively through the top left corner, top right corner,
                   3796:       bottom right corner, and bottom left corner of <var title="">B</var>'s first box's border box. <var title="">A</var>'s anchor point is determined by the location of
                   3797:       <var title="">B</var>'s anchor point relative to these four
                   3798:       hypothetical lines, as follows:
                   3799: 
                   3800:       </p><p>If the anchor point of <var title="">B</var> lies on L1 or
                   3801:       L2, or inside the area bounded by L1 and L2 that also contains
                   3802:       the points above <var title="">B</var>'s first box's border box,
                   3803:       then let <var title="">A</var>'s anchor point be the horizontal
                   3804:       center of <var title="">A</var>'s bottom margin edge.</p>
                   3805: 
                   3806:       <p>Otherwise, if the anchor point of <var title="">B</var> lies
                   3807:       on L3 or L4, or inside the area bounded by L4 and L4 that also
                   3808:       contains the points below <var title="">B</var>'s first box's
                   3809:       border box, then let <var title="">A</var>'s anchor point be the
                   3810:       horizontal center of <var title="">A</var>'s top margin
                   3811:       edge.</p>
                   3812: 
                   3813:       <p>Otherwise, if the anchor point of <var title="">B</var> lies
                   3814:       inside the area bounded by L4 and L1 that also contains the
                   3815:       points to the left of <var title="">B</var>'s first box's border
                   3816:       box, then let <var title="">A</var>'s anchor point be the
                   3817:       vertical center of <var title="">A</var>'s right margin
                   3818:       edge.</p>
                   3819: 
                   3820:       <p>Otherwise, the anchor point of <var title="">B</var> lies
                   3821:       inside the area bounded by L2 and L3 that also contains the
                   3822:       points to the right of <var title="">B</var>'s first box's
                   3823:       border box; let <var title="">A</var>'s anchor point be the
                   3824:       vertical center of <var title="">A</var>'s left margin edge.</p>
                   3825: 
                   3826: 
                   3827:      </dd><dt>If the computed value of 'anchor-point' is a specific point
                   3828:      on <var title="">A</var> and 'none' on <var title="">B</var>
                   3829: 
                   3830:      </dt><dd>
                   3831:       <p>The anchor point of <var title="">A</var> is the point given
                   3832:       by its 'anchor-point' property.
                   3833: 
                   3834:       </p><p>If the anchor point of <var title="">A</var> is the center
                   3835:       point of <var title="">A</var>'s first box's margin box, then
                   3836:       <var title="">B</var>'s anchor point is the center point of its
                   3837:       first box's border box.
                   3838: 
                   3839:       </p><p>Otherwise, <var title="">B</var>'s anchor point is on one of
                   3840:       its border edges. Consider four hypothetical half-infinite lines
                   3841:       L1, L2, L3, and L4 that each start in the center of <var title="">A</var>'s first box's margin box, and that extend
                   3842:       respectively through the top left corner, top right corner,
                   3843:       bottom right corner, and bottom left corner of <var title="">A</var>'s first box's margin box. <var title="">B</var>'s anchor point is determined by the location of
                   3844:       <var title="">A</var>'s anchor point relative to these four
                   3845:       hypothetical lines, as follows:
                   3846: 
                   3847:       </p><p>If the anchor point of <var title="">A</var> lies on L1 or
                   3848:       L2, or inside the area bounded by L1 and L2 that also contains
                   3849:       the points above <var title="">A</var>'s first box's margin box,
                   3850:       then let <var title="">B</var>'s anchor point be the horizontal
                   3851:       center of <var title="">B</var>'s bottom border edge.</p>
                   3852: 
                   3853:       <p>Otherwise, if the anchor point of <var title="">A</var> lies
                   3854:       on L3 or L4, or inside the area bounded by L4 and L4 that also
                   3855:       contains the points below <var title="">A</var>'s first box's
                   3856:       margin box, then let <var title="">B</var>'s anchor point be the
                   3857:       horizontal center of <var title="">B</var>'s top border
                   3858:       edge.</p>
                   3859: 
                   3860:       <p>Otherwise, if the anchor point of <var title="">A</var> lies
                   3861:       inside the area bounded by L4 and L1 that also contains the
                   3862:       points to the left of <var title="">A</var>'s first box's margin
                   3863:       box, then let <var title="">B</var>'s anchor point be the
                   3864:       vertical center of <var title="">B</var>'s right border
                   3865:       edge.</p>
                   3866: 
                   3867:       <p>Otherwise, the anchor point of <var title="">A</var> lies
                   3868:       inside the area bounded by L2 and L3 that also contains the
                   3869:       points to the right of <var title="">A</var>'s first box's
                   3870:       margin box; let <var title="">B</var>'s anchor point be the
                   3871:       vertical center of <var title="">B</var>'s left border edge.</p>
                   3872: 
                   3873: 
                   3874:      </dd><dt>If the computed value of 'anchor-point' is a specific point
                   3875:      on both <var title="">A</var> and <var title="">B</var>
                   3876: 
                   3877:      </dt><dd>
                   3878:       <p>The anchor points of <var title="">A</var> and <var title="">B</var> are the points given by their respective
                   3879:       'anchor-point' properties.
                   3880: 
                   3881:     </p></dd></dl><p class="note">The rules above generally use <var title="">A</var>'s <em>margin</em> box, but <var title="">B</var>'s <em>border</em> box. This is because while <var title="">A</var> always has a margin box, and using the margin box
                   3882:     allows for the dialog to be positioned offset from the box it is
                   3883:     annotating, <var title="">B</var> sometimes does not have a margin
                   3884:     box (e.g. if it is a table-cell), or has a margin box whose
                   3885:     position may be not entirely clear (e.g. in the face of margin
                   3886:     collapsing and 'clear' handling of in-flow blocks).</p>
                   3887: 
                   3888:     <p>In cases where <var title="">B</var> does not have a border box
                   3889:     but its border box is used by the algorithm above, user agents
                   3890:     must use its first box's content area instead. (This is in
                   3891:     particular an issue with boxes in tables that have
                   3892:     'border-collapse' set to 'collapse'.)</p>
                   3893: 
                   3894:    </li>
                   3895: 
                   3896:   </ul><p class="note">The trivial example of an element that does not have
                   3897:   a rendered box is one whose 'display' property computes to 'none'.
                   3898:   However, there are many other cases; e.g. table columns do not have
                   3899:   boxes (their properties merely affect other boxes).</p>
                   3900: 
                   3901:   <p>When an element's 'position' property must compute to
                   3902:   'absolute-anchored', the 'float', property does not apply and must
                   3903:   compute to 'none', the 'display' property must compute to a value as
                   3904:   described by the table in <a href="http://www.w3.org/TR/CSS21/visuren.html#dis-pos-flo">the
                   3905:   section of CSS 2.1 describing the <cite>relationships between
                   3906:   'display', 'position', and 'float'</cite></a>, and the element's box
                   3907:   must be positioned using the rules for absolute positioning but with
                   3908:   its static position set such that if the box is positioned in its
                   3909:   static position, its anchor point is exactly aligned over the anchor
                   3910:   point of the element to which it is <a href="#magically-aligned">magically
                   3911:   aligned</a>.</p>
                   3912: 
                   3913:   <p class="note">The 'absolute-anchored' keyword is not a keyword
                   3914:   that can be specified in CSS; the 'position' property can only
                   3915:   compute to this value if the <code><a href="#the-dialog-element">dialog</a></code> element is
                   3916:   positioned via the APIs described above.</p>
                   3917: 
                   3918: <!--TOPIC:DOM APIs-->
                   3919:   <p>The <dfn id="dom-dialog-open" title="dom-dialog-open"><code>open</code></dfn> IDL
                   3920:   attribute must <a href="common-dom-interfaces.html#reflect">reflect</a> the <code title="attr-dialog-open"><a href="#attr-dialog-open">open</a></code> content attribute.</p>
                   3921: <!--TOPIC:HTML-->
                   3922: 
                   3923:   </div>
                   3924: 
                   3925: 
                   3926:   <h5 id="anchor-points"><span class="secno">4.11.6.1 </span>Anchor points</h5>
                   3927: 
                   3928:   <p class="critical">This section will eventually be moved to a CSS
                   3929:   specification; it is specified here only on an interim basis until
                   3930:   an editor can be found to own this.</p>
                   3931: 
                   3932:   <table class="css-property"><caption>'anchor-point'</caption>
                   3933:    <tr><th>Value:
                   3934:     </th><td> none | &lt;position&gt;
                   3935:    </td></tr><tr><th>Initial:
                   3936:     </th><td> none
                   3937:    </td></tr><tr><th>Applies to:
                   3938:     </th><td> all elements
                   3939:    </td></tr><tr><th>Inherited:
                   3940:     </th><td> no
                   3941:    </td></tr><tr><th>Percentages:
                   3942:     </th><td> refer to width or height of box; see prose
                   3943:    </td></tr><tr><th>Media:
                   3944:     </th><td> visual
                   3945:    </td></tr><tr><th>Computed value:
                   3946:     </th><td> The specified value, but with any lengths replaced by their corresponding absolute length
                   3947:    </td></tr><tr><th>Animatable:
                   3948:     </th><td> no
                   3949:    </td></tr><tr><th>Canonical order:
                   3950:     </th><td> per grammar
                   3951:   </td></tr></table><p>The 'anchor-point' property specifies a point to which dialog
                   3952:   boxes are to be aligned.</p>
                   3953: 
                   3954:   <p>If the value is a &lt;position&gt;, the alignment point is the point
                   3955:   given by the value, which must be interpreted relative to the
                   3956:   element's first rendered box's margin box. Percentages must be
                   3957:   calculated relative to the element's first rendered box's margin box
                   3958:   (specifically, its width for the horizontal position and its height
                   3959:   for the vertical position). <a href="#refsCSSVALUES">[CSSVALUES]</a>
                   3960:   <a href="#refsCSS">[CSS]</a></p>
                   3961: 
                   3962:   <p>If the value is the keyword 'none', then no explicit alignment
                   3963:   point is defined. The user agent will pick an alignment point
                   3964:   automatically if necessary (as described in the definition of the
                   3965:   <code title="dom-dialog-open"><a href="#dom-dialog-open">open()</a></code> method above).</p>
                   3966: 
                   3967: 
                   3968:   <h3 id="links"><span class="secno">4.12 </span>Links</h3>
                   3969: 
                   3970:   <h4 id="introduction-3"><span class="secno">4.12.1 </span>Introduction</h4>
                   3971: 
                   3972:   <p>Links are a conceptual construct, created by <code><a href="the-a-element.html#the-a-element">a</a></code>,
                   3973:   <code><a href="the-area-element.html#the-area-element">area</a></code>, and <code><a href="the-link-element.html#the-link-element">link</a></code> elements, that <a href="#represents" title="represents">represent</a> a connection between two
                   3974:   resources, one of which is the current <code><a href="dom.html#document">Document</a></code>. There
                   3975:   are two kinds of links in HTML:</p>
                   3976: 
                   3977:   <dl><dt><dfn id="external-resource-link" title="external resource link">Links to external
                   3978:    resources</dfn></dt>
                   3979: 
                   3980:    <dd><p>These are links to resources that are to be used to augment
                   3981:    the current document, generally automatically processed by the user
                   3982:    agent.</p></dd>
                   3983: 
                   3984:    <dt><dfn id="hyperlink" title="hyperlink">Hyperlinks</dfn></dt>
                   3985: 
                   3986:    <dd><p>These are links to other resources that are generally
                   3987:    exposed to the user by the user agent so that the user can cause
                   3988:    the user agent to <a href="#navigate">navigate</a> to those resources, e.g. to
                   3989:    visit them in a browser or download them.</p></dd>
                   3990: 
                   3991:   </dl><p>For <code><a href="the-link-element.html#the-link-element">link</a></code> elements with an <code title="attr-link-href"><a href="the-link-element.html#attr-link-href">href</a></code> attribute and a <code title="attr-link-rel"><a href="the-link-element.html#attr-link-rel">rel</a></code> attribute, links must be created
                   3992:   for the keywords of the <code title="attr-link-rel"><a href="the-link-element.html#attr-link-rel">rel</a></code>
                   3993:   attribute, as defined for those keywords in the <a href="#linkTypes">link types</a> section.</p>
                   3994: 
                   3995:   <p>Similarly, for <code><a href="the-a-element.html#the-a-element">a</a></code> and <code><a href="the-area-element.html#the-area-element">area</a></code> elements with
                   3996:   an <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute and a
                   3997:   <code title="attr-hyperlink-rel"><a href="#attr-hyperlink-rel">rel</a></code> attribute, links must be
                   3998:   created for the keywords of the <code title="attr-hyperlink-rel"><a href="#attr-hyperlink-rel">rel</a></code> attribute as defined for those
                   3999:   keywords in the <a href="#linkTypes">link types</a> section. Unlike
                   4000:   <code><a href="the-link-element.html#the-link-element">link</a></code> elements, however, <code><a href="the-a-element.html#the-a-element">a</a></code> and
                   4001:   <code><a href="the-area-element.html#the-area-element">area</a></code> element with an <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute that either do not
                   4002:   have a <code title="attr-hyperlink-rel"><a href="#attr-hyperlink-rel">rel</a></code> attribute, or
                   4003:   whose <code title="attr-hyperlink-rel"><a href="#attr-hyperlink-rel">rel</a></code> attribute has no
                   4004:   keywords that are defined as specifying <a href="#hyperlink" title="hyperlink">hyperlinks</a>, must also create a
                   4005:   <a href="#hyperlink">hyperlink</a>. This implied hyperlink has no special
                   4006:   meaning (it has no <a href="#linkTypes">link type</a>) beyond
                   4007:   linking the element's document to the resource given by the
                   4008:   element's <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code>
                   4009:   attribute.</p>
                   4010: 
                   4011:   <p>A <a href="#hyperlink">hyperlink</a> can have one or more <dfn id="hyperlink-annotation" title="hyperlink annotation">hyperlink annotations</dfn> that modify
                   4012:   the processing semantics of that hyperlink.</p>
                   4013: 
                   4014: 
                   4015:   <h4 id="links-created-by-a-and-area-elements"><span class="secno">4.12.2 </span>Links created by <code><a href="the-a-element.html#the-a-element">a</a></code> and <code><a href="the-area-element.html#the-area-element">area</a></code> elements</h4>
                   4016: 
                   4017:   <p>The <dfn id="attr-hyperlink-href" title="attr-hyperlink-href"><code>href</code></dfn>
                   4018:   attribute on <code><a href="the-a-element.html#the-a-element">a</a></code> and <code><a href="the-area-element.html#the-area-element">area</a></code> elements must have
                   4019:   a value that is a <a href="urls.html#valid-url-potentially-surrounded-by-spaces">valid URL potentially surrounded by
                   4020:   spaces</a>.</p>
                   4021: 
                   4022:   <p class="note">The <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code>
                   4023:   attribute on <code><a href="the-a-element.html#the-a-element">a</a></code> and <code><a href="the-area-element.html#the-area-element">area</a></code> elements is not
                   4024:   required; when those elements do not have <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attributes they do not
                   4025:   create hyperlinks.</p>
                   4026: 
                   4027:   <p>The <dfn id="attr-hyperlink-target" title="attr-hyperlink-target"><code>target</code></dfn>
                   4028:   attribute, if present, must be a <a href="#valid-browsing-context-name-or-keyword">valid browsing context name
                   4029:   or keyword</a>. It gives the name of the <a href="#browsing-context">browsing
                   4030:   context</a> that will be used. <span class="impl">User agents use
                   4031:   this name when <a href="#following-hyperlinks-0">following hyperlinks</a>.</span></p>
                   4032: 
                   4033: <!--PING-->
                   4034: 
                   4035:   <p>The <dfn id="attr-hyperlink-rel" title="attr-hyperlink-rel"><code>rel</code></dfn>
                   4036:   attribute on <code><a href="the-a-element.html#the-a-element">a</a></code> and <code><a href="the-area-element.html#the-area-element">area</a></code> elements controls
                   4037:   what kinds of links the elements create. The attribue's value must
                   4038:   be a <a href="common-microsyntaxes.html#set-of-space-separated-tokens">set of space-separated tokens</a>. The <a href="#linkTypes">allowed keywords and their meanings</a> are
                   4039:   defined below.</p>
                   4040: 
                   4041:   <p>The <code title="attr-hyperlink-rel"><a href="#attr-hyperlink-rel">rel</a></code> attribute has
                   4042:   no default value. If the attribute is omitted or if none of the
                   4043:   values in the attribute are recognized by the user agent, then the
                   4044:   document has no particular relationship with the destination
                   4045:   resource other than there being a hyperlink between the two.</p>
                   4046: 
                   4047:   <p>The <dfn id="attr-hyperlink-media" title="attr-hyperlink-media"><code>media</code></dfn>
                   4048:   attribute describes for which media the target document was
                   4049:   designed. It is purely advisory. The value must be a <a href="common-microsyntaxes.html#valid-media-query">valid
                   4050:   media query</a>. The default, if the <code title="attr-hyperlink-media"><a href="#attr-hyperlink-media">media</a></code> attribute is omitted, is
                   4051:   "<code title="">all</code>".</p>
                   4052: 
                   4053:   <p>The <dfn id="attr-hyperlink-hreflang" title="attr-hyperlink-hreflang"><code>hreflang</code></dfn>
                   4054:   attribute on <code><a href="the-a-element.html#the-a-element">a</a></code> and <code><a href="the-area-element.html#the-area-element">area</a></code> elements that
                   4055:   create <a href="#hyperlink" title="hyperlink">hyperlinks</a>, if present, gives
                   4056:   the language of the linked resource. It is purely advisory. The
                   4057:   value must be a valid BCP 47 language tag. <a href="#refsBCP47">[BCP47]</a> <span class="impl">User agents must
                   4058:   not consider this attribute authoritative &#8212; upon fetching the
                   4059:   resource, user agents must use only language information associated
                   4060:   with the resource to determine its language, not metadata included
                   4061:   in the link to the resource.</span></p>
                   4062: 
                   4063:   <p>The <dfn id="attr-hyperlink-type" title="attr-hyperlink-type"><code>type</code></dfn>
                   4064:   attribute, if present, gives the <a href="infrastructure.html#mime-type">MIME type</a> of the
                   4065:   linked resource. It is purely advisory. The value must be a
                   4066:   <a href="infrastructure.html#valid-mime-type">valid MIME type</a>. <span class="impl">User agents must
                   4067:   not consider the <code title="attr-hyperlink-type"><a href="#attr-hyperlink-type">type</a></code>
                   4068:   attribute authoritative &#8212; upon fetching the resource, user
                   4069:   agents must not use metadata included in the link to the resource to
                   4070:   determine its type.</span></p>
                   4071: 
                   4072: 
                   4073:   <div class="impl">
                   4074: 
                   4075:   <h4 id="following-hyperlinks"><span class="secno">4.12.3 </span>Following hyperlinks</h4>
                   4076: 
                   4077:   <!-- This whole section should be rewritten to use algorithmic style -->
                   4078: 
                   4079:   <p>When a user <dfn id="following-hyperlinks-0" title="following hyperlinks">follows a
                   4080:   hyperlink</dfn> created by an element, the user agent must <a href="urls.html#resolve-a-url" title="resolve a url">resolve</a> the <a href="urls.html#url">URL</a> given by
                   4081:   the <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute of that
                   4082:   element, relative to that element, and if that is successful, must
                   4083:   <a href="#navigate">navigate</a><!--DONAV hyperlink--> a <a href="#browsing-context">browsing
                   4084:   context</a> to the resulting <a href="urls.html#absolute-url">absolute URL</a>. In the
                   4085:   case of server-side image maps, that <a href="urls.html#absolute-url">absolute URL</a> must
                   4086:   have its <var><a href="the-a-element.html#hyperlink-suffix">hyperlink suffix</a></var> appended to it before the
                   4087:   navigation is started.</p>
                   4088: 
                   4089:   <p>If <a href="urls.html#resolve-a-url" title="resolve a url">resolving</a> the
                   4090:   <a href="urls.html#url">URL</a> fails, the user agent may report the error to the
                   4091:   user in a user-agent-specific manner, may
                   4092:   <a href="#navigate">navigate</a><!--DONAV hyperlink--> to an error page to
                   4093:   report the error, or may ignore the error and do nothing.</p>
                   4094: 
                   4095:   <p>If the user indicated a specific <a href="#browsing-context">browsing context</a>
                   4096:   when following the hyperlink, or if the user agent is configured to
                   4097:   follow hyperlinks by navigating a particular browsing context, then
                   4098:   that must be the <a href="#browsing-context">browsing context</a> that is
                   4099:   navigated.</p>
                   4100: 
                   4101:   <p>Otherwise, if the element is an <code><a href="the-a-element.html#the-a-element">a</a></code> or
                   4102:   <code><a href="the-area-element.html#the-area-element">area</a></code> element that has a <code title="attr-hyperlink-target"><a href="#attr-hyperlink-target">target</a></code> attribute, then the
                   4103:   <a href="#browsing-context">browsing context</a> that is navigated must be chosen by
                   4104:   applying <a href="#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name">the rules for choosing a browsing context given a
                   4105:   browsing context name</a>, using the value of the <code title="attr-hyperlink-target"><a href="#attr-hyperlink-target">target</a></code> attribute as the
                   4106:   browsing context name. If these rules result in the creation of a
                   4107:   new <a href="#browsing-context">browsing context</a>, it must be navigated with
                   4108:   <a href="#replacement-enabled">replacement enabled</a>.</p>
                   4109: 
                   4110: 
                   4111: 
                   4112:   <p>Otherwise, if the element is an <code><a href="the-a-element.html#the-a-element">a</a></code> or
                   4113:   <code><a href="the-area-element.html#the-area-element">area</a></code> element with no <code title="attr-hyperlink-target"><a href="#attr-hyperlink-target">target</a></code> attribute, but the
                   4114:   <code><a href="dom.html#document">Document</a></code> contains a <code><a href="the-base-element.html#the-base-element">base</a></code> element with a
                   4115:   <code title="attr-base-target"><a href="the-base-element.html#attr-base-target">target</a></code> attribute, then the
                   4116:   browsing context that is navigated must be chosen by applying
                   4117:   <a href="#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name">the rules for choosing a browsing context given a browsing
                   4118:   context name</a>, using the value of the <code title="attr-base-target"><a href="the-base-element.html#attr-base-target">target</a></code> attribute of the first such
                   4119:   <code><a href="the-base-element.html#the-base-element">base</a></code> element as the browsing context name. If these
                   4120:   rules result in the creation of a new <a href="#browsing-context">browsing context</a>,
                   4121:   it must be navigated with <a href="#replacement-enabled">replacement enabled</a>.</p>
                   4122:   <!-- c.f. concept-fs-target -->
                   4123: 
                   4124:   <p>Otherwise, the browsing context that must be navigated is the
                   4125:   same browsing context as the one which the element itself is in.</p>
                   4126: 
                   4127:   <p>The navigation must be done with the <a href="#browsing-context">browsing
                   4128:   context</a> that contains the <code><a href="dom.html#document">Document</a></code> object with
                   4129:   which the element in question is associated as the <a href="#source-browsing-context">source
                   4130:   browsing context</a>.</p>
                   4131: 
                   4132:   </div>
                   4133: 
                   4134: 
1.191     sruby    4135: <!--DOWNLOAD-->
                   4136: 
                   4137:   <h4 id="downloading-resources"><span class="secno">4.12.4 </span>Downloading resources</h4>
                   4138: 
                   4139:   <p>In some cases, resources are intended for later use rather than
                   4140:   immediate viewing. To indicate that a resource is intended to be
                   4141:   downloaded for use later, rather than immediately used, the <code title="attr-hyperlink-download">download</code> attribute can be
                   4142:   specified on the <code><a href="the-a-element.html#the-a-element">a</a></code> or <code><a href="the-area-element.html#the-area-element">area</a></code> element that
                   4143:   creates the <a href="#hyperlink">hyperlink</a> to that resource.</p>
                   4144: 
                   4145:   <p>The attribute can furthermore be given a value, to specify the
                   4146:   filename that user agents are to use when storing the resource in a
                   4147:   file system. This value can be overridden by the <code title="http-content-disposition">Content-Disposition</code> HTTP
                   4148:   header's filename parameters. <a href="#refsRFC6266">[RFC6266]</a></p>
                   4149: 
                   4150:   <p>In cross-origin situations, the <code title="attr-hyperlink-download">download</code> attribute has to be
                   4151:   combined with the <code title="http-content-disposition">Content-Disposition</code> HTTP
                   4152:   header, specifically with the <code title="">attachment</code>
                   4153:   disposition type, to avoid the user being warned of possibly
                   4154:   nefarious activity. (This is to protect users from being made to
                   4155:   download sensitive personal or confidential information without
                   4156:   their full understanding.)</p>
                   4157: 
                   4158:   <div class="impl">
                   4159: 
                   4160:   <hr><p>When a user <dfn id="downloading-hyperlinks" title="downloading hyperlinks">downloads a
                   4161:   hyperlink</dfn> created by an element, the user agent must run the
                   4162:   following steps:</p>
                   4163: 
                   4164:   <ol><li><p><a href="urls.html#resolve-a-url" title="resolve a url">Resolve</a> the
                   4165:    <a href="urls.html#url">URL</a> given by the <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute of that element,
                   4166:    relative to that element.</p></li>
                   4167: 
                   4168:    <li><p>If <a href="urls.html#resolve-a-url" title="resolve a url">resolving</a> the
                   4169:    <a href="urls.html#url">URL</a> fails, the user agent may report the error to the
                   4170:    user in a user-agent-specific manner, may
                   4171:    <a href="#navigate">navigate</a><!--DONAV download error--> to an error page
                   4172:    to report the error, or may ignore the error and do nothing. In
                   4173:    either case, the user agent must abort these steps.</p>
                   4174: 
                   4175:    </li><li><p>Otherwise, let <var title="">URL</var> be the resulting
                   4176:    <a href="urls.html#absolute-url">absolute URL</a>.</p></li>
                   4177: 
                   4178:    <li><p>In the case of server-side image maps, append the
                   4179:    <var><a href="the-a-element.html#hyperlink-suffix">hyperlink suffix</a></var> to <var title="">URL</var>.</p></li>
                   4180: 
                   4181:    <li><p>Return to whatever algorithm invoked these steps and continue
                   4182:    these steps asynchronously.</p></li>
                   4183: 
                   4184:    <li><p><a href="urls.html#fetch">Fetch</a><!--FETCH--> <var title="">URL</var> and
                   4185:    handle the resulting resource <a href="#as-a-download">as a download</a>.</p></li>
                   4186:    <!-- http-origin privacy sensitive -->
                   4187: 
                   4188:   </ol><p>When a user agent is to handle a resource obtained from a
                   4189:   <a href="urls.html#fetch">fetch</a> algorithm <dfn id="as-a-download">as a download</dfn>, it should
                   4190:   provide the user with a way to save the resource for later use, if a
                   4191:   resource is successfully obtained; or otherwise should report any
                   4192:   problems downloading the file to the user.</p>
                   4193: 
                   4194:   <p>If the user agent needs a file name for a resource being handled
                   4195:   <a href="#as-a-download">as a download</a>, it should select one using the following
                   4196:   algorithm.</p>
                   4197: 
                   4198:   <p class="warning">This algorithm is intended to mitigate security
                   4199:   dangers involved in downloading files from untrusted sites, and user
                   4200:   agents are strongly recommended to follow it.</p> <!-- but it's
                   4201:   optional, since it's not really an interoperability issue -->
                   4202: 
                   4203:   <ol><li><p>Let <var title="">filename</var> be the void value.</p></li>
                   4204: 
                   4205:    <li><p>If the resource has a <code title="http-content-disposition">Content-Disposition</code> header,      <!-- Content-Disposition: attachment; filename="" is always honoured, even cross-origin -->
                   4206:    that header specifies the <code title="">attachment</code>
                   4207:    disposition type, and the header includes filename information,
                   4208:    then let <var title="">filename</var> have the value specified by
                   4209:    the header, and jump to the step labeled "sanitize" below. <a href="#refsRFC6266">[RFC6266]</a></p></li>
                   4210: 
                   4211:    <li><p>Let <var title="">resource origin</var> be the
                   4212:    <a href="#origin-0">origin</a> of the resource being downloaded.</p></li>
                   4213: 
                   4214:    <li><p>Let <var title="">interface origin</var> be the
                   4215:    <a href="#origin-0">origin</a> of the <code><a href="dom.html#document">Document</a></code> in which the <a href="#downloading-hyperlinks" title="downloading hyperlinks">download</a> or
                   4216:    <a href="#navigate">navigate</a> action resulting in the download was
                   4217:    initiated, if any.</p></li>
                   4218: 
                   4219:    <li><p>If there is no <var title="">interface origin</var>, then
                   4220:    let <var title="">trusted operation</var> be true. Otherwise, let
                   4221:    <var title="">trusted operation</var> be true if <var title="">resource origin</var> is the <a href="#same-origin">same origin</a> as
                   4222:    <var title="">interface origin</var>, and false otherwise.</p></li>
                   4223: 
                   4224:    <li><p>If <var title="">trusted operation</var> is true and the          <!-- Content-Disposition: *; filename="" overrides download="" for same-origin -->
                   4225:    resource has a <code title="http-content-disposition">Content-Disposition</code> header
                   4226:    and that header includes filename information, then let <var title="">filename</var> have the value specified by the header, and
                   4227:    jump to the step labeled "sanitize" below. <a href="#refsRFC6266">[RFC6266]</a></p></li>
                   4228: 
                   4229:    <li><p>If the download was not initiated from a
                   4230:    <a href="#hyperlink">hyperlink</a> created by an <code><a href="the-a-element.html#the-a-element">a</a></code> or
                   4231:    <code><a href="the-area-element.html#the-area-element">area</a></code> element, or if the element of the
                   4232:    <a href="#hyperlink">hyperlink</a> from which it was initiated did not have a
                   4233:    <code title="attr-hyperlink-download">download</code> attribute
                   4234:    when the download was initiated, or if there was such an attribute
                   4235:    but its value when the download was initiated was the empty string,
                   4236:    then jump to the step labeled <i>no proposed filename</i>.</p></li>
                   4237: 
                   4238:    <li><p>Let <var title="">proposed filename</var> have the value of
                   4239:    the <code title="attr-hyperlink-download">download</code> attribute
                   4240:    of the element of the <a href="#hyperlink">hyperlink</a> that initiated the
                   4241:    download at the time the download was initiated.</p></li>
                   4242: 
                   4243:    <li><p>If <var title="">trusted operation</var> is true, let <var title="">filename</var> have the value of <var title="">proposed
                   4244:    filename</var>, and jump to the step labeled "sanitize"                  <!-- download="" works for all links when same-origin -->
                   4245:    below.</p></li>                                                          <!-- it is not used cross-origin, though, even for explicit user gestures -->
                   4246:                                                                             <!-- except: -->
                   4247:    <li><p>If the resource has a <code title="http-content-disposition">Content-Disposition</code> header       <!-- Content-Disposition: attachment with no filename="" allows download="" cross-origin -->
                   4248:    and that header specifies the <code title="">attachment</code>
                   4249:    disposition type, let <var title="">filename</var> have the value
                   4250:    of <var title="">proposed filename</var>, and jump to the step
                   4251:    labeled "sanitize" below. <a href="#refsRFC6266">[RFC6266]</a></p></li>
                   4252: 
                   4253:    <li><p><i>No proposed filename</i>: If <var title="">trusted             <!-- fallback for same-origin resources or explicit downloads: use the resource's file name -->
                   4254:    operation</var> is true, or if the user indicated a preference for
                   4255:    having the resource in question downloaded, let <var title="">filename</var> have a value derived from the
                   4256:    <a href="urls.html#url">URL</a> of the resource in a user-agent-defined manner,
                   4257:    and jump to the step labeled "sanitize" below.</p></li>
                   4258: 
                   4259:    <li>
                   4260: 
                   4261:     <p>Act in a user-agent-defined manner to safeguard the user from a      <!-- no C-D: a header on cross-origin raises red flags -->
                   4262:     potentially hostile cross-origin download. If the download is not
                   4263:     to be aborted, then let <var title="">filename</var> be set to the
                   4264:     user's preferred file name or to a file name selected by the user
                   4265:     agent, and jump to the step labeled "sanitize" below.</p>
                   4266: 
                   4267:     <div class="warning">
                   4268: 
                   4269:      <p>If the algorithm reaches this step, then a download was begun
                   4270:      from a different origin than the resource being downloaded, and
                   4271:      the origin did not mark the file as suitable for downloading, and
                   4272:      the download was not initiated by the user. This could be because
                   4273:      a <code title="attr-hyperlink-download">download</code> attribute
                   4274:      was used to trigger the download, or because the resource in
                   4275:      question is not of a type that the user agent supports.</p>
                   4276: 
                   4277:      <p>This could be dangerous, because, for instance, a hostile
                   4278:      server could be trying to get a user to unknowingly download
                   4279:      private information and then re-upload it to the hostile server,
                   4280:      by tricking the user into thinking the data is from the hostile
                   4281:      server.</p>
                   4282: 
                   4283:      <p>Thus, it is in the user's interests that the user be somehow
                   4284:      notified that the resource in question comes from quite a
                   4285:      different source, and to prevent confusion, any suggested
                   4286:      filename from the potentially hostile <var title="">interface
                   4287:      origin</var> should be ignored.</p>
                   4288: 
                   4289:     </div>
                   4290: 
                   4291:    </li>
                   4292: 
                   4293:    <li><p><i>Sanitize</i>: Optionally, allow the user to influence <var title="">filename</var>. For example, a user agent could prompt the
                   4294:    user for a file name, potentially providing the value of <var title="">filename</var> as determined above as a default
                   4295:    value.</p></li>
                   4296: 
                   4297:    <li>
                   4298: 
                   4299:     <p>Adjust <var title="">filename</var> to be suitable for the
                   4300:     local file system.</p>
                   4301: 
                   4302:     <p class="example">For example, this could involve removing
                   4303:     characters that are not legal in file names, or trimming leading
                   4304:     and trailing whitespace.</p>
                   4305: 
                   4306:    </li>
                   4307: 
                   4308:    <li><p>If the platform conventions do not in any way use <a href="#concept-extension" title="concept-extension">extensions</a> to determine the types
                   4309:    of file on the file system, then return <var title="">filename</var> as the file name and abort these
                   4310:    steps.</p></li>
                   4311: 
                   4312:    <li><p>Let <var title="">claimed type</var> be the type given by
                   4313:    the resource's <a href="urls.html#content-type" title="Content-Type">Content-Type
                   4314:    metadata</a>, if any is known. Let <var title="">named
                   4315:    type</var> be the type given by <var title="">filename</var>'s
                   4316:    <a href="#concept-extension" title="concept-extension">extension</a>, if any is known.
                   4317:    For the purposes of this step, a <i>type</i> is a mapping of a
                   4318:    <a href="infrastructure.html#mime-type">MIME type</a> to an <a href="#concept-extension" title="concept-extension">extension</a>.</p></li>
                   4319: 
                   4320:    <li><p>If <var title="">named type</var> is consistent with the
                   4321:    user's preferences (e.g. because the value of <var title="">filename</var> was determined by prompting the user), then
                   4322:    return <var title="">filename</var> as the file name and abort
                   4323:    these steps.</p></li>
                   4324: 
                   4325:    <li><p>If <var title="">claimed type</var> and <var title="">named
                   4326:    type</var> are the same type (i.e. the type given by the resource's
                   4327:    <a href="urls.html#content-type" title="Content-Type">Content-Type metadata</a> is
                   4328:    consistent with the type given by <var title="">filename</var>'s
                   4329:    <a href="#concept-extension" title="concept-extension">extension</a>), then return <var title="">filename</var> as the file name and abort these
                   4330:    steps.</p></li>
                   4331: 
                   4332:    <li>
                   4333: 
                   4334:     <p>If the <var title="">claimed type</var> is known, then alter
                   4335:     <var title="">filename</var> to add an <a href="#concept-extension" title="concept-extension">extension</a> corresponding to <var title="">claimed type</var>.</p>
                   4336: 
                   4337:     <p>Otherwise, if <var title="">named type</var> is known to be
                   4338:     potentially dangerous (e.g. it will be treated by the platform
                   4339:     conventions as a native executable, shell script, HTML
                   4340:     application, or executable-macro-capable document) then optionally
                   4341:     alter <var title="">filename</var> to add a known-safe <a href="#concept-extension" title="concept-extension">extension</a> (e.g. "<code title="">.txt</code>").</p>
                   4342: 
                   4343:     <p class="note">This last step would make it impossible to
                   4344:     download executables, which might not be desireable. As always,
                   4345:     implementors are forced to balance security and usability in this
                   4346:     matter.</p>
                   4347: 
                   4348:    </li>
                   4349: 
                   4350:    <li><p>Return <var title="">filename</var> as the file
                   4351:    name.</p></li>
                   4352: 
                   4353:   </ol><p>For the purposes of this algorithm, a file <dfn id="concept-extension" title="concept-extension">extension</dfn> consists of any part of
                   4354:   the file name that platform conventions dictate will be used for
                   4355:   identifying the type of the file. For example, many operating
                   4356:   systems use the part of the file name following the last dot ("<code title="">.</code>") in the file name to determine the type of the
                   4357:   file, and from that the manner in which the file is to be opened or
                   4358:   executed.</p>
                   4359: 
                   4360:   <p>User agents should ignore any directory or path information
                   4361:   provided by the resource itself, its <a href="urls.html#url">URL</a>, and any <code title="attr-hyperlink-download">download</code> attribute, in
                   4362:   deciding where to store the resulting file in the user's file
                   4363:   system.</p>
                   4364: 
                   4365:   </div>
                   4366: 
                   4367: 
1.190     sruby    4368: <!--PING-->
                   4369: 
1.191     sruby    4370:   <div class="impl">
                   4371: 
                   4372:   <h5 id="hyperlink-auditing"><span class="secno">4.12.4.1 </span><dfn>Hyperlink auditing</dfn></h5>
                   4373: 
                   4374:   <p>If a <a href="#hyperlink">hyperlink</a> created by an <code><a href="the-a-element.html#the-a-element">a</a></code> or
                   4375:   <code><a href="the-area-element.html#the-area-element">area</a></code> element has a <code title="attr-hyperlink-ping">ping</code> attribute, and the user
                   4376:   follows the hyperlink, and the value of the element's <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute can be <a href="urls.html#resolve-a-url" title="resolve a url">resolved</a>, relative to the element,
                   4377:   without failure, then the user agent must take the <code title="attr-hyperlink-ping">ping</code> attribute's value, <a href="common-microsyntaxes.html#split-a-string-on-spaces" title="split a string on spaces">split that string on spaces</a>,
                   4378:   <a href="urls.html#resolve-a-url" title="resolve a url">resolve</a> each resulting token
                   4379:   relative to the element, and then each of the resulting <a href="urls.html#absolute-url" title="absolute URL">absolute URLs</a> should be <a href="urls.html#fetch" title="fetch">fetched</a><!--FETCH--> from the
                   4380:   <a href="#origin-0">origin</a> of the <code><a href="dom.html#document">Document</a></code> containing the
                   4381:   <a href="#hyperlink">hyperlink</a> <!-- not http-origin privacy sensitive -->
                   4382:   (as described below). (Tokens that fail to resolve are ignored.)
                   4383:   This may be done in parallel with the primary request, and is
                   4384:   independent of the result of that request.</p>
                   4385: 
                   4386:   <p>User agents should allow the user to adjust this behavior, for
                   4387:   example in conjunction with a setting that disables the sending of
                   4388:   HTTP <code title="http-referer">Referer</code> (sic) headers. Based
                   4389:   on the user's preferences, UAs may either <a href="infrastructure.html#ignore">ignore</a> the
                   4390:   <code title="attr-hyperlink-ping">ping</code> attribute altogether,
                   4391:   or selectively ignore URLs in the list (e.g. ignoring any
                   4392:   third-party URLs).</p>
                   4393: 
                   4394:   <p>For URLs that are HTTP URLs, the requests must be performed using
                   4395:   the POST method, with an entity body with the <a href="infrastructure.html#mime-type">MIME type</a>
                   4396:   <code>text/ping</code> consisting of the four-character string
                   4397:   "<code title="">PING</code>". All relevant cookie and HTTP
                   4398:   authentication headers must be included in the request. Which other
                   4399:   headers are required depends on the URLs involved.</p>
                   4400: 
                   4401:   <dl class="switch"><dt>If both the <a href="dom.html#the-document's-address" title="the document's address">address</a>
                   4402:    of the <code><a href="dom.html#document">Document</a></code> object containing the hyperlink being
                   4403:    audited and the ping URL have the <a href="#same-origin">same origin</a></dt>
                   4404: 
                   4405:    <dd>The request must include a <code title="http-ping-from">Ping-From</code> HTTP header with, as its
                   4406:    value, the <a href="dom.html#the-document's-address" title="the document's address">address</a> of
                   4407:    the document containing the hyperlink, and a <code title="http-ping-to">Ping-To</code> HTTP header with, as its value,
                   4408:    the address of the <a href="urls.html#absolute-url">absolute URL</a> of the target of the
                   4409:    hyperlink. The request must not include a <code title="http-referer">Referer</code> (sic) HTTP header. <!-- because
                   4410:    otherwise it would look like a trustable same-origin POST --></dd>
                   4411: 
                   4412:    <dt>Otherwise, if the origins are different, but the document
                   4413:    containing the hyperlink being audited was not retrieved over an
                   4414:    encrypted connection</dt>
                   4415: 
                   4416:    <dd>The request must include a <code title="http-referer">Referer</code> (sic) HTTP header with, as its
                   4417:    value, the <a href="dom.html#the-document's-address" title="the document's address">address</a> of
                   4418:    the document containing the hyperlink, a <code title="http-ping-from">Ping-From</code> HTTP header with the same
                   4419:    value, and a <code title="http-ping-to">Ping-To</code> HTTP header
                   4420:    with, as its value, the address of the target of the
                   4421:    hyperlink.</dd>
                   4422: 
                   4423:    <dt>Otherwise, the origins are different and the document
                   4424:    containing the hyperlink being audited was retrieved over an
                   4425:    encrypted connection</dt>
                   4426: 
                   4427:    <dd>The request must include a <code title="http-ping-to">Ping-To</code> HTTP header with, as its value,
                   4428:    the address of the target of the hyperlink. The request must
                   4429:    neither include a <code title="http-referer">Referer</code> (sic)
                   4430:    HTTP header nor include a <code title="http-ping-from">Ping-From</code> HTTP header.</dd>
                   4431: 
                   4432:   </dl><p class="note">To save bandwidth, implementors might also wish to
                   4433:   consider omitting optional headers such as <code>Accept</code> from
                   4434:   these requests.</p>
                   4435: 
                   4436:   <p>User agents must, unless otherwise specified by the user, honor
                   4437:   the HTTP headers (including, in particular, redirects and HTTP
                   4438:   cookie headers), but must ignore any entity bodies returned in the
                   4439:   responses. User agents may close the connection prematurely once
                   4440:   they start receiving an entity body. <a href="#refsCOOKIES">[COOKIES]</a></p>
                   4441: 
                   4442:   <p>When the <code title="attr-hyperlink-ping">ping</code> attribute is
                   4443:   present, user agents should clearly indicate to the user that
                   4444:   following the hyperlink will also cause secondary requests to be
                   4445:   sent in the background, possibly including listing the actual target
                   4446:   URLs.</p>
                   4447: 
                   4448:   <p class="example">For example, a visual user agent could include
                   4449:   the hostnames of the target ping URLs along with the hyperlink's
                   4450:   actual URL in a status bar or tooltip.</p>
                   4451: 
                   4452:   </div>
                   4453: 
                   4454:   <div class="note">
                   4455: 
                   4456:    <p>The <code title="attr-hyperlink-ping">ping</code> attribute is redundant
                   4457:    with pre-existing technologies like HTTP redirects and JavaScript
                   4458:    in allowing Web pages to track which off-site links are most
                   4459:    popular or allowing advertisers to track click-through rates.</p>
                   4460: 
                   4461:    <p>However, the <code title="attr-hyperlink-ping">ping</code> attribute
                   4462:    provides these advantages to the user over those alternatives:</p>
                   4463: 
                   4464:    <ul><li>It allows the user to see the final target URL
                   4465:     unobscured.</li>
                   4466: 
                   4467:     <li>It allows the UA to inform the user about the out-of-band
                   4468:     notifications.</li>
                   4469: 
                   4470:     <li>It allows the user to disable the notifications without losing
                   4471:     the underlying link functionality.</li>
                   4472: 
                   4473:     <li>It allows the UA to optimize the use of available network
                   4474:     bandwidth so that the target page loads faster.</li>
1.190     sruby    4475: 
1.191     sruby    4476:    </ul><p>Thus, while it is possible to track users without this feature,
                   4477:    authors are encouraged to use the <code title="attr-hyperlink-ping">ping</code> attribute so that the user
                   4478:    agent can make the user experience more transparent.</p>
1.190     sruby    4479: 
1.191     sruby    4480:   </div>
                   4481: 
                   4482:   <!-- resolving ping urls happens at audit time, so base URL changes
                   4483:   affect the values of ping attributes -->
                   4484: 
                   4485: 
                   4486: 
                   4487:   <h4 id="linkTypes"><span class="secno">4.12.5 </span>Link types</h4>
1.190     sruby    4488: 
                   4489:   <p>The following table summarizes the link types that are defined by
                   4490:   this specification. This table is non-normative; the actual
                   4491:   definitions for the link types are given in the next few
                   4492:   sections.</p>
                   4493: 
                   4494:   <p>In this section, the term <i>referenced document</i> refers to
                   4495:   the resource identified by the element representing the link, and
                   4496:   the term <i>current document</i> refers to the resource within
                   4497:   which the element representing the link finds itself.</p>
                   4498: 
                   4499:   <div class="impl">
                   4500: 
                   4501:   <p>To determine which link types apply to a <code><a href="the-link-element.html#the-link-element">link</a></code>,
                   4502:   <code><a href="the-a-element.html#the-a-element">a</a></code>, or <code><a href="the-area-element.html#the-area-element">area</a></code> element, the element's <code title="">rel</code> attribute must be <a href="common-microsyntaxes.html#split-a-string-on-spaces" title="split a string on
                   4503:   spaces">split on spaces</a>. The resulting tokens are the link
                   4504:   types that apply to that element.</p>
                   4505: 
                   4506:   </div>
                   4507: 
                   4508:   <p>Except where otherwise specified, a keyword must not be specified
                   4509:   more than once per <code title="attr-hyperlink-rel"><a href="#attr-hyperlink-rel">rel</a></code>
                   4510:   attribute.</p>
                   4511: 
                   4512:   <p>Link types are always <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a><span class="impl">, and must be compared as such</span>.</p>
                   4513: 
                   4514:   <p class="example">Thus, <code title="">rel="next"</code> is the
                   4515:   same as <code title="">rel="NEXT"</code>.</p>
                   4516: 
                   4517:   <table><thead><tr><th rowspan="2">Link type</th>
                   4518:      <th colspan="2">Effect on...</th>
                   4519:      <th rowspan="2">Brief description</th>
                   4520:     </tr><tr><th><code><a href="the-link-element.html#the-link-element">link</a></code></th>
                   4521:      <th><code><a href="the-a-element.html#the-a-element">a</a></code> and <code><a href="the-area-element.html#the-area-element">area</a></code></th>
                   4522:     </tr></thead><tbody><tr><td><code title="rel-alternate"><a href="#rel-alternate">alternate</a></code></td> <!-- second most used <link rel> value -->
                   4523:      <td><a href="#hyperlink">Hyperlink</a></td>
                   4524:      <td><a href="#hyperlink">Hyperlink</a></td>
                   4525:      <td>Gives alternate representations of the current document.</td>
                   4526:     </tr><tr><td><code title="rel-author"><a href="#link-type-author">author</a></code></td>
                   4527:      <td><a href="#hyperlink">Hyperlink</a></td>
                   4528:      <td><a href="#hyperlink">Hyperlink</a></td>
                   4529:      <td>Gives a link to the author of the current document or article.</td>
                   4530:     </tr><tr><td><code title="rel-bookmark"><a href="#link-type-bookmark">bookmark</a></code></td> <!-- fourth most used <a rel> value -->
                   4531:      <td><em>not allowed</em></td>
                   4532:      <td><a href="#hyperlink">Hyperlink</a></td>
                   4533:      <td>Gives the permalink for the nearest ancestor section.</td>
                   4534:     </tr><!-- (commented out on the assumption that rel=contact is really XFN)
                   4535:     <tr>
                   4536:      <td><code title="rel-contact">contact</code></td> <!- 8th most used <a rel> value ->
                   4537:      <td><span>Hyperlink</span></td>
                   4538:      <td><span>Hyperlink</span></td>
                   4539:      <td>Gives a link to contact information for the current document.</td>
                   4540:     </tr>
                   4541: --><!-- fifth and sixth most used <a rel> value (sixth is "external nofollow"), but moved to the wiki because of http://www.w3.org/Bugs/Public/show_bug.cgi?id=11181 --><!--!--><!--
                   4542:     <tr>
                   4543:      <td><code title="rel-external">external</code></td>
                   4544:      <td><em>not allowed</em></td>
                   4545:      <td><span>Hyperlink</span></td>
                   4546:      <td>Indicates that the referenced document is not part of the same site as the current document.</td>
                   4547:     </tr>
                   4548: --><tr><td><code title="rel-help"><a href="#link-type-help">help</a></code></td>
                   4549:      <td><a href="#hyperlink">Hyperlink</a></td>
                   4550:      <td><a href="#hyperlink">Hyperlink</a></td>
                   4551:      <td>Provides a link to context-sensitive help.</td>
                   4552:     </tr><tr><td><code title="rel-icon"><a href="#rel-icon">icon</a></code></td> <!-- link rel="shortcut icon" and its ilk are the fourth, sixth, and ninth most used values -->
                   4553:      <td><a href="#external-resource-link" title="external resource link">External Resource</a></td>
                   4554:      <td><em>not allowed</em></td>
                   4555:      <td>Imports an icon to represent the current document.</td>
                   4556:     </tr><tr><td><code title="rel-license"><a href="#link-type-license">license</a></code></td> <!-- seventh most used <a rel> value -->
                   4557:      <td><a href="#hyperlink">Hyperlink</a></td>
                   4558:      <td><a href="#hyperlink">Hyperlink</a></td>
                   4559:      <td>Indicates that the main content of the current document is covered by the copyright license described by the referenced document.</td>
                   4560:     </tr><tr><td><code title="rel-next"><a href="#link-type-next">next</a></code></td>
                   4561:      <td><a href="#hyperlink">Hyperlink</a></td>
                   4562:      <td><a href="#hyperlink">Hyperlink</a></td>
                   4563:      <td>Indicates that the current document is a part of a series, and that the next document in the series is the referenced document.</td>
                   4564:     </tr><tr><td><code title="rel-nofollow"><a href="#link-type-nofollow">nofollow</a></code></td> <!-- most used <a rel> value (and sixth most used is "external nofollow") -->
                   4565:      <td><em>not allowed</em></td>
                   4566:      <td><a href="#hyperlink-annotation" title="hyperlink annotation">Annotation</a></td>
                   4567:      <td>Indicates that the current document's original author or publisher does not endorse the referenced document.</td>
                   4568:     </tr><tr><td><code title="rel-noreferrer"><a href="#link-type-noreferrer">noreferrer</a></code></td>
                   4569:      <td><em>not allowed</em></td>
                   4570:      <td><a href="#hyperlink-annotation" title="hyperlink annotation">Annotation</a></td>
                   4571:      <td>Requires that the user agent not send an HTTP <code title="http-referer">Referer</code> (sic) header if the user follows the hyperlink.</td>
                   4572:     </tr><!-- used quite a bit; removed for http://www.w3.org/Bugs/Public/show_bug.cgi?id=12224 --><!-- now registered in http://microformats.org/wiki/existing-rel-values#formats --><!--
                   4573:     <tr>
                   4574:      <td><code title="rel-pingback">pingback</code></td>
                   4575:      <td><span title="external resource link">External Resource</span></td>
                   4576:      <td><em>not allowed</em></td>
                   4577:      <td>Gives the address of the pingback server that handles pingbacks to the current document.</td>
                   4578:     </tr>
                   4579: --><tr><td><code title="rel-prefetch"><a href="#link-type-prefetch">prefetch</a></code></td>
                   4580:      <td><a href="#external-resource-link" title="external resource link">External Resource</a></td>
                   4581:      <td><a href="#external-resource-link" title="external resource link">External Resource</a></td>
                   4582:      <td>Specifies that the target resource should be preemptively cached.</td>
                   4583:     </tr><tr><td><code title="rel-prev"><a href="#link-type-prev">prev</a></code></td> <!-- prev is used more than previous -->
                   4584:      <td><a href="#hyperlink">Hyperlink</a></td>
                   4585:      <td><a href="#hyperlink">Hyperlink</a></td>
                   4586:      <td>Indicates that the current document is a part of a series, and that the previous document in the series is the referenced document.</td>
                   4587:     </tr><tr><td><code title="rel-search"><a href="#link-type-search">search</a></code></td> <!-- used quite a bit -->
                   4588:      <td><a href="#hyperlink">Hyperlink</a></td>
                   4589:      <td><a href="#hyperlink">Hyperlink</a></td>
                   4590:      <td>Gives a link to a resource that can be used to search through the current document and its related pages.</td>
                   4591:     </tr><!-- used quite a bit, but dropped due to wg decision in http://www.w3.org/Bugs/Public/show_bug.cgi?id=11183 --><!--!--><!--
                   4592:     <tr>
                   4593:      <td><code title="rel-sidebar">sidebar</code></td>
                   4594:      <td><span>Hyperlink</span></td>
                   4595:      <td><span>Hyperlink</span></td>
                   4596:      <td>Specifies that the referenced document, if retrieved, is intended to be shown in the browser's sidebar (if it has one).</td>
                   4597:     </tr>
                   4598: --><tr><td><code title="rel-stylesheet"><a href="#link-type-stylesheet">stylesheet</a></code></td> <!-- most commonly used <link rel> value, variants came in 7th, 8th, 12th, 17th... -->
                   4599:      <td><a href="#external-resource-link" title="external resource link">External Resource</a></td>
                   4600:      <td><em>not allowed</em></td>
                   4601:      <td>Imports a stylesheet.</td>
                   4602:     </tr><tr><td><code title="rel-tag"><a href="#link-type-tag">tag</a></code></td> <!-- second and third most used <a rel> value (third is technically "category tag"). -->
                   4603:      <td><em>not allowed</em></td>
                   4604:      <td><a href="#hyperlink">Hyperlink</a></td>
                   4605:      <td>Gives a tag (identified by the given address) that applies to the current document.</td>
                   4606:     </tr></tbody></table><div class="impl">
                   4607: 
                   4608:   <p>Some of the types described below list synonyms for these
                   4609:   values. These <!--<span class="impl">-->are to be handled as
                   4610:   specified by user agents, but<!--</span>--> must not be used in
                   4611:   documents.</p>
                   4612: 
                   4613:   </div>
                   4614: 
                   4615:   <!-- v2 ideas:
                   4616:    * rel="related" // see also
                   4617:    * http://microformats.org/wiki/rel-enclosure
                   4618:   -->
                   4619: 
                   4620: 
1.191     sruby    4621:   <h5 id="rel-alternate"><span class="secno">4.12.5.1 </span>Link type "<dfn title="rel-alternate"><code>alternate</code></dfn>"</h5>
1.190     sruby    4622: 
                   4623:   <p>The <code title="rel-alternate"><a href="#rel-alternate">alternate</a></code> keyword may be
                   4624:   used with <code><a href="the-link-element.html#the-link-element">link</a></code>, <code><a href="the-a-element.html#the-a-element">a</a></code>, and <code><a href="the-area-element.html#the-area-element">area</a></code>
                   4625:   elements.</p>
                   4626: 
                   4627:   <p>The meaning of this keyword depends on the values of the other
                   4628:   attributes.</p>
                   4629: 
                   4630:   <dl class="switch"><dt>If the element is a <code><a href="the-link-element.html#the-link-element">link</a></code> element and the <code title="attr-link-rel"><a href="the-link-element.html#attr-link-rel">rel</a></code> attribute also contains the
                   4631:    keyword <code title="rel-stylesheet"><a href="#link-type-stylesheet">stylesheet</a></code></dt>
                   4632: 
                   4633:    <dd>
                   4634: 
                   4635:     <p>The <code title="rel-alternate"><a href="#rel-alternate">alternate</a></code> keyword
                   4636:     modifies the meaning of the <code title="rel-stylesheet"><a href="#link-type-stylesheet">stylesheet</a></code> keyword in the way
                   4637:     described for that keyword. The <code title="rel-alternate"><a href="#rel-alternate">alternate</a></code> keyword does not create a
                   4638:     link of its own.</p>
                   4639: 
                   4640:    </dd>
                   4641: 
                   4642: 
                   4643:    <dt>The <code title="rel-alternate"><a href="#rel-alternate">alternate</a></code> keyword is
                   4644:    used with the <code title="attr-hyperlink-type"><a href="#attr-hyperlink-type">type</a></code>
                   4645:    attribute set to the value <code title="">application/rss+xml</code> or the value <code title="">application/atom+xml</code></dt>
                   4646: 
                   4647:    <dd>
                   4648: 
                   4649:     <p>The keyword creates a <a href="#hyperlink">hyperlink</a> referencing a
                   4650:     syndication feed (though not necessarily syndicating exactly the
                   4651:     same content as the current page).</p>
                   4652: 
                   4653:     <div class="impl">
                   4654: 
                   4655:     <p>The first <code><a href="the-link-element.html#the-link-element">link</a></code>, <code><a href="the-a-element.html#the-a-element">a</a></code>, or <code><a href="the-area-element.html#the-area-element">area</a></code>
                   4656:     element in the document (in tree order) with the <code title="rel-alternate"><a href="#rel-alternate">alternate</a></code> keyword used with the <code title="attr-hyperlink-type"><a href="#attr-hyperlink-type">type</a></code> attribute set to the value
                   4657:     <code title="">application/rss+xml</code> or the value <code title="">application/atom+xml</code> must be treated as the default
                   4658:     syndication feed for the purposes of feed autodiscovery.</p>
                   4659: 
                   4660:     <div class="example">
                   4661:      <p>The following <code><a href="the-link-element.html#the-link-element">link</a></code> element gives the syndication
                   4662:      feed for the current page:</p>
                   4663:      <pre>&lt;link rel="alternate" type="application/atom+xml" href="data.xml"&gt;</pre>
                   4664:      <p>The following extract offers various different syndication
                   4665:      feeds:</p>
                   4666:      <pre>&lt;p&gt;You can access the planets database using Atom feeds:&lt;/p&gt;
                   4667: &lt;ul&gt;
                   4668:  &lt;li&gt;&lt;a href="recently-visited-planets.xml" rel="alternate" type="application/atom+xml"&gt;Recently Visited Planets&lt;/a&gt;&lt;/li&gt;
                   4669:  &lt;li&gt;&lt;a href="known-bad-planets.xml" rel="alternate" type="application/atom+xml"&gt;Known Bad Planets&lt;/a&gt;&lt;/li&gt;
                   4670:  &lt;li&gt;&lt;a href="unexplored-planets.xml" rel="alternate" type="application/atom+xml"&gt;Unexplored Planets&lt;/a&gt;&lt;/li&gt;
                   4671: &lt;/ul&gt;</pre>
                   4672:     </div>
                   4673: 
                   4674:     </div>
                   4675: 
                   4676:    </dd>
                   4677: 
                   4678: 
                   4679:    <dt>Otherwise</dt>
                   4680: 
                   4681:    <dd>
                   4682: 
                   4683:     <p>The keyword creates a <a href="#hyperlink">hyperlink</a> referencing an
                   4684:     alternate representation of the current document.</p>
                   4685: 
                   4686:     <p>The nature of the referenced document is given by the <code title="attr-hyperlink-media"><a href="#attr-hyperlink-media">media</a></code>, <code title="attr-hyperlink-hreflang"><a href="#attr-hyperlink-hreflang">hreflang</a></code>, and <code title="attr-hyperlink-type"><a href="#attr-hyperlink-type">type</a></code> attributes.</p>
                   4687: 
                   4688:     <p>If the <code title="rel-alternate"><a href="#rel-alternate">alternate</a></code> keyword is
                   4689:     used with the <code title="attr-hyperlink-media"><a href="#attr-hyperlink-media">media</a></code>
                   4690:     attribute, it indicates that the referenced document is intended for
                   4691:     use with the media specified.</p>
                   4692: 
                   4693:     <p>If the <code title="rel-alternate"><a href="#rel-alternate">alternate</a></code> keyword is
                   4694:     used with the <code title="attr-hyperlink-hreflang"><a href="#attr-hyperlink-hreflang">hreflang</a></code>
                   4695:     attribute, and that attribute's value differs from the <a href="infrastructure.html#root-element">root
                   4696:     element</a>'s <a href="global-attributes.html#language">language</a>, it indicates that the
                   4697:     referenced document is a translation.</p>
                   4698: 
                   4699:     <p>If the <code title="rel-alternate"><a href="#rel-alternate">alternate</a></code> keyword is
                   4700:     used with the <code title="attr-hyperlink-type"><a href="#attr-hyperlink-type">type</a></code>
                   4701:     attribute, it indicates that the referenced document is a
                   4702:     reformulation of the current document in the specified format.</p>
                   4703: 
                   4704:     <p>The <code title="attr-hyperlink-media"><a href="#attr-hyperlink-media">media</a></code>, <code title="attr-hyperlink-hreflang"><a href="#attr-hyperlink-hreflang">hreflang</a></code>, and <code title="attr-hyperlink-type"><a href="#attr-hyperlink-type">type</a></code> attributes can be combined
                   4705:     when specified with the <code title="rel-alternate"><a href="#rel-alternate">alternate</a></code>
                   4706:     keyword.</p>
                   4707: 
                   4708:     <div class="example">
                   4709: 
                   4710:      <p>For example, the following link is a French translation that
                   4711:      uses the PDF format:</p>
                   4712: 
                   4713:      <pre>&lt;link rel=alternate type=application/pdf hreflang=fr href=manual-fr&gt;</pre>
                   4714: 
                   4715:     </div>
                   4716: 
                   4717:     <p>This relationship is transitive &#8212; that is, if a document
                   4718:     links to two other documents with the link type "<code title="rel-alternate"><a href="#rel-alternate">alternate</a></code>", then, in addition to
                   4719:     implying that those documents are alternative representations of
                   4720:     the first document, it is also implying that those two documents
                   4721:     are alternative representations of each other.</p>
                   4722: 
                   4723:    </dd>
                   4724: 
1.191     sruby    4725:   </dl><h5 id="link-type-author"><span class="secno">4.12.5.2 </span>Link type "<dfn title="rel-author"><code>author</code></dfn>"</h5>
1.190     sruby    4726: 
                   4727:   <p>The <code title="rel-author"><a href="#link-type-author">author</a></code> keyword may be
                   4728:   used with <code><a href="the-link-element.html#the-link-element">link</a></code>, <code><a href="the-a-element.html#the-a-element">a</a></code>, and <code><a href="the-area-element.html#the-area-element">area</a></code>
                   4729:   elements. This keyword creates a <a href="#hyperlink">hyperlink</a>.</p>
                   4730: 
                   4731:   <p>For <code><a href="the-a-element.html#the-a-element">a</a></code> and <code><a href="the-area-element.html#the-area-element">area</a></code> elements, the <code title="rel-author"><a href="#link-type-author">author</a></code> keyword indicates that the
                   4732:   referenced document provides further information about the author of
                   4733:   the nearest <code><a href="the-article-element.html#the-article-element">article</a></code> element ancestor of the element
                   4734:   defining the hyperlink, if there is one, or of the page as a whole,
                   4735:   otherwise.</p>
                   4736: 
                   4737:   <p>For <code><a href="the-link-element.html#the-link-element">link</a></code> elements, the <code title="rel-author"><a href="#link-type-author">author</a></code> keyword indicates that the
                   4738:   referenced document provides further information about the author
                   4739:   for the page as a whole.</p>
                   4740: 
                   4741:   <p class="note">The "referenced document" can be, and often is, a
                   4742:   <code title="">mailto:</code> URL giving the e-mail address of the
                   4743:   author. <a href="#refsMAILTO">[MAILTO]</a></p>
                   4744: 
                   4745:   <div class="impl">
                   4746: 
                   4747:   <p><strong>Synonyms</strong>: For historical reasons, user agents
                   4748:   must also treat <code><a href="the-link-element.html#the-link-element">link</a></code>, <code><a href="the-a-element.html#the-a-element">a</a></code>, and
                   4749:   <code><a href="the-area-element.html#the-area-element">area</a></code> elements that have a <code title="">rev</code>
                   4750:   attribute with the value "<code>made</code>" as having the <code title="rel-author"><a href="#link-type-author">author</a></code> keyword specified as a link
                   4751:   relationship.</p>
                   4752: 
                   4753:   </div>
                   4754: 
                   4755: 
1.191     sruby    4756:   <h5 id="link-type-bookmark"><span class="secno">4.12.5.3 </span>Link type "<dfn title="rel-bookmark"><code>bookmark</code></dfn>"</h5>
1.190     sruby    4757: 
                   4758:   <p>The <code title="rel-bookmark"><a href="#link-type-bookmark">bookmark</a></code> keyword may be
                   4759:   used with <code><a href="the-a-element.html#the-a-element">a</a></code> and <code><a href="the-area-element.html#the-area-element">area</a></code> elements. This
                   4760:   keyword creates a <a href="#hyperlink">hyperlink</a>.</p>
                   4761: 
                   4762:   <p>The <code title="rel-bookmark"><a href="#link-type-bookmark">bookmark</a></code> keyword gives a
                   4763:   permalink for the nearest ancestor <code><a href="the-article-element.html#the-article-element">article</a></code> element of
                   4764:   the linking element in question, or of <a href="headings-and-sections.html#associatedSection">the section the linking element is most
                   4765:   closely associated with</a>, if there are no ancestor
                   4766:   <code><a href="the-article-element.html#the-article-element">article</a></code> elements.</p>
                   4767: 
                   4768:   <div class="example">
                   4769:    <p>The following snippet has three permalinks. A user agent could
                   4770:    determine which permalink applies to which part of the spec by
                   4771:    looking at where the permalinks are given.</p>
                   4772:    <pre> ...
                   4773:  &lt;body&gt;
                   4774:   &lt;h1&gt;Example of permalinks&lt;/h1&gt;
                   4775:   &lt;div id="a"&gt;
                   4776:    &lt;h2&gt;First example&lt;/h2&gt;
                   4777:    &lt;p&gt;&lt;a href="a.html" rel="bookmark"&gt;This&lt;/a&gt; permalink applies to
                   4778:    only the content from the first H2 to the second H2. The DIV isn't
                   4779:    exactly that section, but it roughly corresponds to it.&lt;/p&gt;
                   4780:   &lt;/div&gt;
                   4781:   &lt;h2&gt;Second example&lt;/h2&gt;
                   4782:   &lt;article id="b"&gt;
                   4783:    &lt;p&gt;&lt;a href="b.html" rel="bookmark"&gt;This&lt;/a&gt; permalink applies to
                   4784:    the outer ARTICLE element (which could be, e.g., a blog post).&lt;/p&gt;
                   4785:    &lt;article id="c"&gt;
                   4786:     &lt;p&gt;&lt;a href="c.html" rel="bookmark"&gt;This&lt;/a&gt; permalink applies to
                   4787:     the inner ARTICLE element (which could be, e.g., a blog comment).&lt;/p&gt;
                   4788:    &lt;/article&gt;
                   4789:   &lt;/article&gt;
                   4790:  &lt;/body&gt;
                   4791:  ...</pre>
                   4792:   </div>
                   4793: 
                   4794: <!-- (commented out on the assumption that rel=contact is really XFN)
                   4795:   <h5>Link type "<dfn title="rel-contact"><code>contact</code></dfn>"</h5>
                   4796: 
                   4797:   <p>The <code title="rel-contact">contact</code> keyword may be used
                   4798:   with <code>link</code>, <code>a</code>, and <code>area</code>
                   4799:   elements. This keyword creates a <span>hyperlink</span>.</p>
                   4800: 
                   4801:   <p>For <code>a</code> and <code>area</code> elements, the <code
                   4802:   title="rel-contact">contact</code> keyword indicates that the
                   4803:   referenced document provides further contact information for the
                   4804:   author of the nearest <code>article</code> element ancestor of the
                   4805:   element defining the hyperlink, if there is one, or of the page as a
                   4806:   whole, otherwise.</p>
                   4807: 
                   4808:   <div class="impl">
                   4809: 
                   4810:   <p>User agents must treat any hyperlink in an <code>address</code>
                   4811:   element as having the <code title="rel-contact">contact</code> link
                   4812:   type specified.</p>
                   4813: 
                   4814:   </div>
                   4815: 
                   4816:   <p>For <code>link</code> elements, the <code
                   4817:   title="rel-contact">contact</code> keyword indicates that the
                   4818:   referenced document provides further contact information for the
                   4819:   page as a whole.</p>
                   4820: -->
                   4821: 
                   4822: <!-- fifth and sixth most used <a rel> value (sixth is "external nofollow"), but moved to the wiki because of http://www.w3.org/Bugs/Public/show_bug.cgi?id=11181 --> <!--!-->
                   4823: <!--
                   4824:   <h5>Link type "<dfn title="rel-external"><code>external</code></dfn>"</h5>
                   4825: 
                   4826:   <p>The <code title="rel-external">external</code> keyword may be
                   4827:   used with <code>a</code> and <code>area</code> elements. This
                   4828:   keyword creates a <span>hyperlink</span>.</p>
                   4829: 
                   4830:   <p>The <code title="rel-external">external</code> keyword indicates
                   4831:   that the link is leading to a document that is not part of the site
                   4832:   that the current document forms a part of.</p>
                   4833: -->
                   4834: 
1.191     sruby    4835:   <h5 id="link-type-help"><span class="secno">4.12.5.4 </span>Link type "<dfn title="rel-help"><code>help</code></dfn>"</h5>
1.190     sruby    4836: 
                   4837:   <p>The <code title="rel-help"><a href="#link-type-help">help</a></code> keyword may be used with
                   4838:   <code><a href="the-link-element.html#the-link-element">link</a></code>, <code><a href="the-a-element.html#the-a-element">a</a></code>, and <code><a href="the-area-element.html#the-area-element">area</a></code>
                   4839:   elements. This keyword creates a <a href="#hyperlink">hyperlink</a>.</p>
                   4840: 
                   4841:   <p>For <code><a href="the-a-element.html#the-a-element">a</a></code> and <code><a href="the-area-element.html#the-area-element">area</a></code> elements, the <code title="rel-help"><a href="#link-type-help">help</a></code> keyword indicates that the referenced
                   4842:   document provides further help information for the parent of the
                   4843:   element defining the hyperlink, and its children.</p>
                   4844: 
                   4845:   <div class="example">
                   4846: 
                   4847:    <p>In the following example, the form control has associated
                   4848:    context-sensitive help. The user agent could use this information,
                   4849:    for example, displaying the referenced document if the user presses
                   4850:    the "Help" or "F1" key.</p>
                   4851: 
                   4852:    <pre> &lt;p&gt;&lt;label&gt; Topic: &lt;input name=topic&gt; &lt;a href="help/topic.html" rel="help"&gt;(Help)&lt;/a&gt;&lt;/label&gt;&lt;/p&gt;</pre>
                   4853: 
                   4854:   </div>
                   4855: 
                   4856:   <p>For <code><a href="the-link-element.html#the-link-element">link</a></code> elements, the <code title="rel-help"><a href="#link-type-help">help</a></code> keyword indicates that the referenced
                   4857:   document provides help for the page as a whole.</p>
                   4858: 
                   4859:   <p>For <code><a href="the-a-element.html#the-a-element">a</a></code> and <code><a href="the-area-element.html#the-area-element">area</a></code> elements, on some
                   4860:   browsers, the <code title="rel-help"><a href="#link-type-help">help</a></code> keyword causes the
                   4861:   link to use a different cursor.</p>
                   4862: 
                   4863: 
1.191     sruby    4864:   <h5 id="rel-icon"><span class="secno">4.12.5.5 </span>Link type "<dfn title="rel-icon"><code>icon</code></dfn>"</h5>
1.190     sruby    4865: 
                   4866:   <p>The <code title="rel-icon"><a href="#rel-icon">icon</a></code> keyword may be used with
                   4867:   <code><a href="the-link-element.html#the-link-element">link</a></code> elements. This keyword creates an <a href="#external-resource-link" title="external resource link">external resource link</a>.</p>
                   4868: 
                   4869:   <div class="impl">
                   4870: 
                   4871:   <p>The specified resource is an icon representing the page or site,
                   4872:   and should be used by the user agent when representing the page in
                   4873:   the user interface.</p>
                   4874: 
                   4875:   </div>
                   4876: 
                   4877:   <p>Icons could be auditory icons, visual icons, or other kinds of
                   4878:   icons. <span class="impl">If multiple icons are provided, the user
                   4879:   agent must select the most appropriate icon according to the <code title="attr-link-type"><a href="the-link-element.html#attr-link-type">type</a></code>, <code title="attr-link-media"><a href="the-link-element.html#attr-link-media">media</a></code>, and <code title="attr-link-sizes"><a href="#attr-link-sizes">sizes</a></code> attributes. If there are
                   4880:   multiple equally appropriate icons, user agents must use the last
                   4881:   one declared in <a href="infrastructure.html#tree-order">tree order</a> at the time that the user
                   4882:   agent collected the list of icons. If the user agent tries to use an
                   4883:   icon but that icon is determined, upon closer examination, to in
                   4884:   fact be inappropriate (e.g. because it uses an unsupported format),
                   4885:   then the user agent must try the next-most-appropriate icon as
                   4886:   determined by the attributes.</span></p>
                   4887: 
                   4888:   <div class="impl">
                   4889: 
                   4890:   <p class="note">User agents are not required to update icons when
                   4891:   the list of icons changes, but are encouraged to do so.</p>
                   4892: 
                   4893:   <p>There is no default type for resources given by the <code title="rel-icon"><a href="#rel-icon">icon</a></code> keyword. However, for the purposes of
                   4894:   <a href="the-link-element.html#concept-link-type-sniffing">determining the type of the
                   4895:   resource</a>, user agents must expect the resource to be an image.</p>
                   4896: 
                   4897:   </div>
                   4898: 
                   4899:   <p>The <dfn id="attr-link-sizes" title="attr-link-sizes"><code>sizes</code></dfn>
                   4900:   attribute gives the sizes of icons for visual media. Its value, if
                   4901:   present, is merely advisory. User agents may use the value to decide
                   4902:   which icon(s) to use if multiple icons are available.</p>
                   4903: 
                   4904:   <p>If specified, the attribute must have a value that is an
                   4905:   <a href="common-microsyntaxes.html#unordered-set-of-unique-space-separated-tokens">unordered set of unique space-separated tokens</a> which
                   4906:   are <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a>. Each value must be either
                   4907:   an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="attr-link-sizes-any"><a href="#attr-link-sizes-any">any</a></code>", or a value that consists of
                   4908:   two <a href="common-microsyntaxes.html#valid-non-negative-integer" title="valid non-negative integer">valid non-negative
                   4909:   integers</a> that do not have a leading "0" (U+0030)
                   4910:   character and that are separated by a single U+0078 LATIN SMALL
                   4911:   LETTER X or U+0058 LATIN CAPITAL LETTER X character.</p>
                   4912: 
                   4913:   <p>The keywords represent icon sizes.</p>
                   4914: 
                   4915:   <div class="impl">
                   4916: 
                   4917:   <p>To parse and process the attribute's value, the user agent must
                   4918:   first <a href="common-microsyntaxes.html#split-a-string-on-spaces" title="split a string on spaces">split the attribute's
                   4919:   value on spaces</a>, and must then parse each resulting keyword
                   4920:   to determine what it represents.</p>
                   4921: 
                   4922:   </div>
                   4923: 
                   4924:   <p>The <dfn id="attr-link-sizes-any" title="attr-link-sizes-any"><code>any</code></dfn> keyword
                   4925:   represents that the resource contains a scalable icon, e.g. as
                   4926:   provided by an SVG image.</p>
                   4927: 
                   4928:   <div class="impl">
                   4929: 
                   4930:   <p>Other keywords must be further parsed as follows to determine
                   4931:   what they represent:</p>
                   4932: 
                   4933:   <ul><li><p>If the keyword doesn't contain exactly one U+0078 LATIN
                   4934:    SMALL LETTER X or U+0058 LATIN CAPITAL LETTER X character, then
                   4935:    this keyword doesn't represent anything. Abort these steps for that
                   4936:    keyword.</p></li>
                   4937: 
                   4938:    <li><p>Let <var title="">width string</var> be the string before
                   4939:    the "<code title="">x</code>" or "<code title="">X</code>".</p></li>
                   4940: 
                   4941:    <li><p>Let <var title="">height string</var> be the string after
                   4942:    the "<code title="">x</code>" or "<code title="">X</code>".</p></li>
                   4943: 
                   4944:    <li><p>If either <var title="">width string</var> or <var title="">height string</var> start with a "0" (U+0030)
                   4945:    character or contain any characters other than characters in the
                   4946:    range <a href="common-microsyntaxes.html#ascii-digits">ASCII digits</a>, then this
                   4947:    keyword doesn't represent anything. Abort these steps for that
                   4948:    keyword.</p></li>
                   4949: 
                   4950:    <li><p>Apply the <a href="common-microsyntaxes.html#rules-for-parsing-non-negative-integers">rules for parsing non-negative
                   4951:    integers</a> to <var title="">width string</var> to obtain <var title="">width</var>.</p></li>
                   4952: 
                   4953:    <li><p>Apply the <a href="common-microsyntaxes.html#rules-for-parsing-non-negative-integers">rules for parsing non-negative
                   4954:    integers</a> to <var title="">height string</var> to obtain <var title="">height</var>.</p></li>
                   4955: 
                   4956:    <li><p>The keyword represents that the resource contains a bitmap
                   4957:    icon with a width of <var title="">width</var> device pixels and a
                   4958:    height of <var title="">height</var> device pixels.</p></li>
                   4959: 
                   4960:   </ul></div>
                   4961: 
                   4962:   <p>The keywords specified on the <code title="attr-link-sizes"><a href="#attr-link-sizes">sizes</a></code> attribute must not represent
                   4963:   icon sizes that are not actually available in the linked
                   4964:   resource.</p>
                   4965: 
                   4966:   <div class="impl">
                   4967: 
                   4968:   <p>In the absence of a <code><a href="the-link-element.html#the-link-element">link</a></code> with the <code title="rel-icon"><a href="#rel-icon">icon</a></code> keyword, for <code><a href="dom.html#document">Document</a></code>s
                   4969:   obtained over HTTP or HTTPS, user agents may instead attempt to
1.191     sruby    4970:   <a href="urls.html#fetch">fetch</a><!--FETCH--> and use an icon with the
                   4971:   <a href="urls.html#absolute-url">absolute URL</a> obtained by resolving the <a href="urls.html#url">URL</a>
                   4972:   "<code title="">/favicon.ico</code>" against <a href="dom.html#the-document's-address">the document's
1.190     sruby    4973:   address</a>, as if the page had declared that icon using the
                   4974:   <code title="rel-icon"><a href="#rel-icon">icon</a></code> keyword.</p>
                   4975: 
                   4976:   </div>
                   4977: 
                   4978:   <div class="example">
                   4979: 
                   4980:    <p>The following snippet shows the top part of an application with
                   4981:    several icons.</p>
                   4982: 
                   4983:    <pre>&lt;!DOCTYPE HTML&gt;
                   4984: &lt;html&gt;
                   4985:  &lt;head&gt;
                   4986:   &lt;title&gt;lsForums &#8212; Inbox&lt;/title&gt;
                   4987:   &lt;link rel=icon href=favicon.png sizes="16x16" type="image/png"&gt;
                   4988:   &lt;link rel=icon href=windows.ico sizes="32x32 48x48" type="image/vnd.microsoft.icon"&gt;
                   4989:   &lt;link rel=icon href=mac.icns sizes="128x128 512x512 8192x8192 32768x32768"&gt;
                   4990:   &lt;link rel=icon href=iphone.png sizes="57x57" type="image/png"&gt;
                   4991:   &lt;link rel=icon href=gnome.svg sizes="any" type="image/svg+xml"&gt;
                   4992:   &lt;link rel=stylesheet href=lsforums.css&gt;
                   4993:   &lt;script src=lsforums.js&gt;&lt;/script&gt;
                   4994:   &lt;meta name=application-name content="lsForums"&gt;
                   4995:  &lt;/head&gt;
                   4996:  &lt;body&gt;
                   4997:   ...</pre>
                   4998: 
                   4999:   </div>
                   5000: 
                   5001:   <p>For historical reasons, the <code title="rel-icon"><a href="#rel-icon">icon</a></code>
                   5002:   keyword may be preceded by the keyword "<code title="">shortcut</code>". If the "<code title="">shortcut</code>"
                   5003:   keyword is present, it must be come immediately before the <code title="rel-icon"><a href="#rel-icon">icon</a></code> keyword and the two keywords must be
                   5004:   separated by only a single U+0020 SPACE character.</p>
                   5005: 
                   5006: 
1.191     sruby    5007:   <h5 id="link-type-license"><span class="secno">4.12.5.6 </span>Link type "<dfn title="rel-license"><code>license</code></dfn>"</h5>
1.190     sruby    5008: 
                   5009:   <p>The <code title="rel-license"><a href="#link-type-license">license</a></code> keyword may be used
                   5010:   with <code><a href="the-link-element.html#the-link-element">link</a></code>, <code><a href="the-a-element.html#the-a-element">a</a></code>, and <code><a href="the-area-element.html#the-area-element">area</a></code>
                   5011:   elements. This keyword creates a <a href="#hyperlink">hyperlink</a>.</p>
                   5012: 
                   5013:   <p>The <code title="rel-license"><a href="#link-type-license">license</a></code> keyword indicates
                   5014:   that the referenced document provides the copyright license terms
                   5015:   under which the main content of the current document is
                   5016:   provided.</p>
                   5017: 
                   5018:   <p>This specification does not specify how to distinguish between
                   5019:   the main content of a document and content that is not deemed to be
                   5020:   part of that main content. The distinction should be made clear to
                   5021:   the user.</p>
                   5022: 
                   5023:   <div class="example">
                   5024: 
                   5025:    <p>Consider a photo sharing site. A page on that site might
                   5026:    describe and show a photograph, and the page might be marked up as
                   5027:    follows:</p>
                   5028: 
                   5029:    <pre>&lt;!DOCTYPE HTML&gt;
                   5030: &lt;html&gt;
                   5031:  &lt;head&gt;
                   5032:   &lt;title&gt;Exampl Pictures: Kissat&lt;/title&gt;
                   5033:   &lt;link rel="stylesheet" href="/style/default"&gt;
                   5034:  &lt;/head&gt;
                   5035:  &lt;body&gt;
                   5036:   &lt;h1&gt;Kissat&lt;/h1&gt;
                   5037:   &lt;nav&gt;
                   5038:    &lt;a href="../"&gt;Return to photo index&lt;/a&gt;
                   5039:   &lt;/nav&gt;
                   5040:   &lt;figure&gt;
                   5041:    &lt;img src="/pix/39627052_fd8dcd98b5.jpg"&gt;
                   5042:    &lt;figcaption&gt;Kissat&lt;/figcaption&gt;
                   5043:   &lt;/figure&gt;
                   5044:   &lt;p&gt;One of them has six toes!&lt;/p&gt;
                   5045:   &lt;p&gt;&lt;small&gt;&lt;a rel="license" href="http://www.opensource.org/licenses/mit-license.php"&gt;MIT Licensed&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
                   5046:   &lt;footer&gt;
                   5047:    &lt;a href="/"&gt;Home&lt;/a&gt; | &lt;a href="../"&gt;Photo index&lt;/a&gt;
                   5048:    &lt;p&gt;&lt;small&gt;&#169; copyright 2009 Exampl Pictures. All Rights Reserved.&lt;/small&gt;&lt;/p&gt;
                   5049:   &lt;/footer&gt;
                   5050:  &lt;/body&gt;
                   5051: &lt;/html&gt;</pre>
                   5052: 
                   5053:    <p>In this case the <code title="rel-license"><a href="#link-type-license">license</a></code>
                   5054:    applies to just the photo (the main content of the document), not
                   5055:    the whole document. In particular not the design of the page
                   5056:    itself, which is covered by the copyright given at the bottom of
                   5057:    the document. This could be made clearer in the styling
                   5058:    (e.g. making the license link prominently positioned near the
                   5059:    photograph, while having the page copyright in light small text at
                   5060:    the foot of the page.</p>
                   5061: 
                   5062:   </div>
                   5063: 
                   5064:   <div class="impl">
                   5065: 
                   5066:   <p><strong>Synonyms</strong>: For historical reasons, user agents
                   5067:   must also treat the keyword "<code title="">copyright</code>" like
                   5068:   the <code title="rel-license"><a href="#link-type-license">license</a></code> keyword.</p>
                   5069: 
                   5070:   </div>
                   5071: 
                   5072: 
1.191     sruby    5073:   <h5 id="link-type-nofollow"><span class="secno">4.12.5.7 </span>Link type "<dfn title="rel-nofollow"><code>nofollow</code></dfn>"</h5>
1.190     sruby    5074: 
                   5075:   <p>The <code title="rel-nofollow"><a href="#link-type-nofollow">nofollow</a></code> keyword may be
                   5076:   used with <code><a href="the-a-element.html#the-a-element">a</a></code> and <code><a href="the-area-element.html#the-area-element">area</a></code> elements. This
                   5077:   keyword does not create a <a href="#hyperlink">hyperlink</a>, but <a href="#hyperlink-annotation" title="hyperlink annotation">annotates</a> any other hyperlinks
                   5078:   created by the element (the implied hyperlink, if no other keywords
                   5079:   create one).</p>
                   5080: 
                   5081:   <p>The <code title="rel-nofollow"><a href="#link-type-nofollow">nofollow</a></code> keyword indicates
                   5082:   that the link is not endorsed by the original author or publisher of
                   5083:   the page, or that the link to the referenced document was included
                   5084:   primarily because of a commercial relationship between people
                   5085:   affiliated with the two pages.</p>
                   5086: 
                   5087: 
1.191     sruby    5088:   <h5 id="link-type-noreferrer"><span class="secno">4.12.5.8 </span>Link type "<dfn title="rel-noreferrer"><code>noreferrer</code></dfn>"</h5>
1.190     sruby    5089: 
                   5090:   <p>The <code title="rel-noreferrer"><a href="#link-type-noreferrer">noreferrer</a></code> keyword may be
                   5091:   used with <code><a href="the-a-element.html#the-a-element">a</a></code> and <code><a href="the-area-element.html#the-area-element">area</a></code> elements. This
                   5092:   keyword does not create a <a href="#hyperlink">hyperlink</a>, but <a href="#hyperlink-annotation" title="hyperlink annotation">annotates</a> any other hyperlinks
                   5093:   created by the element (the implied hyperlink, if no other keywords
                   5094:   create one).</p>
                   5095: 
                   5096:   <p>It indicates that no referrer information is to be leaked when
                   5097:   following the link.</p>
                   5098: 
                   5099:   <div class="impl">
                   5100: 
                   5101:   <p>If a user agent follows a link defined by an <code><a href="the-a-element.html#the-a-element">a</a></code> or
                   5102:   <code><a href="the-area-element.html#the-area-element">area</a></code> element that has the <code title="rel-noreferrer"><a href="#link-type-noreferrer">noreferrer</a></code> keyword, the user agent
                   5103:   must not include a <code title="http-referer">Referer</code> (sic)
                   5104:   HTTP header (<a href="urls.html#concept-http-equivalent-headers" title="concept-http-equivalent-headers">or
                   5105:   equivalent</a> for other protocols) in the request.</p>
                   5106: 
                   5107:   <p>This keyword also <a href="#noopener">causes the <code title="dom-opener">opener</code> attribute to remain null</a> if the
                   5108:   hyperlink creates a new <a href="#browsing-context">browsing context</a>.</p>
                   5109: 
                   5110:   </div>
                   5111: 
                   5112:   <!-- v2: Would be nice to apply this to other elements too,
                   5113:   e.g. letting <img> or CSS or <video> hide the referrer -->
                   5114: 
                   5115: <!-- used quite a bit; removed for http://www.w3.org/Bugs/Public/show_bug.cgi?id=12224 -->
                   5116: <!-- now registered in http://microformats.org/wiki/existing-rel-values#formats -->
                   5117: <!--
                   5118:   <h5>Link type "<dfn title="rel-pingback"><code>pingback</code></dfn>"</h5>
                   5119: 
                   5120:   <p>The <code title="rel-pingback">pingback</code> keyword may be
                   5121:   used with <code>link</code> elements. This keyword creates an <span
                   5122:   title="external resource link">external resource link</span>.</p>
                   5123: 
                   5124:   <p>For the semantics of the <code
                   5125:   title="rel-pingback">pingback</code> keyword, see the Pingback 1.0
                   5126:   specification. <a href="#refsPINGBACK">[PINGBACK]</a></p>
                   5127: -->
                   5128: 
1.191     sruby    5129:   <h5 id="link-type-prefetch"><span class="secno">4.12.5.9 </span>Link type "<dfn title="rel-prefetch"><code>prefetch</code></dfn>"</h5>
1.190     sruby    5130: 
                   5131:   <p>The <code title="rel-prefetch"><a href="#link-type-prefetch">prefetch</a></code> keyword may be
                   5132:   used with <code><a href="the-link-element.html#the-link-element">link</a></code>, <code><a href="the-a-element.html#the-a-element">a</a></code>, and <code><a href="the-area-element.html#the-area-element">area</a></code>
                   5133:   elements. This keyword creates an <a href="#external-resource-link" title="external resource
                   5134:   link">external resource link</a>.</p>
                   5135: 
                   5136:   <p>The <code title="rel-prefetch"><a href="#link-type-prefetch">prefetch</a></code> keyword indicates
                   5137:   that preemptively fetching and caching the specified resource is
                   5138:   likely to be beneficial, as it is highly likely that the user will
                   5139:   require this resource.</p>
                   5140: 
                   5141:   <p>There is no default type for resources given by the <code title="rel-prefetch"><a href="#link-type-prefetch">prefetch</a></code> keyword.</p>
                   5142: 
                   5143: 
1.191     sruby    5144:   <h5 id="link-type-search"><span class="secno">4.12.5.10 </span>Link type "<dfn title="rel-search"><code>search</code></dfn>"</h5>
1.190     sruby    5145: 
                   5146:   <p>The <code title="rel-search"><a href="#link-type-search">search</a></code> keyword may be used
                   5147:   with <code><a href="the-link-element.html#the-link-element">link</a></code>, <code><a href="the-a-element.html#the-a-element">a</a></code>, and <code><a href="the-area-element.html#the-area-element">area</a></code>
                   5148:   elements. This keyword creates a <a href="#hyperlink">hyperlink</a>.</p>
                   5149: 
                   5150:   <p>The <code title="rel-search"><a href="#link-type-search">search</a></code> keyword indicates that
                   5151:   the referenced document provides an interface specifically for
                   5152:   searching the document and its related resources.</p>
                   5153: 
                   5154:   <p class="note">OpenSearch description documents can be used with
                   5155:   <code><a href="the-link-element.html#the-link-element">link</a></code> elements and the <code title="rel-search"><a href="#link-type-search">search</a></code> link type to enable user agents to
                   5156:   autodiscover search interfaces. <a href="#refsOPENSEARCH">[OPENSEARCH]</a></p>
                   5157: 
                   5158: 
                   5159: <!-- dropped due to wg decision in http://www.w3.org/Bugs/Public/show_bug.cgi?id=11183 --> <!--!-->
                   5160: <!--
                   5161:   <h5>Link type "<dfn title="rel-sidebar"><code>sidebar</code></dfn>"</h5>
                   5162: 
                   5163:   <p>The <code title="rel-sidebar">sidebar</code> keyword may be used
                   5164:   with <code>link</code>, <code>a</code>, and <code>area</code>
                   5165:   elements. This keyword creates a <span>hyperlink</span>.</p>
                   5166: 
                   5167:   <p>The <code title="rel-sidebar">sidebar</code> keyword indicates
                   5168:   that the referenced document, if retrieved, is intended to be shown
                   5169:   in a <span>secondary browsing context</span> (if possible), instead
                   5170:   of in the current <span>browsing context</span>.</p>
                   5171: 
                   5172:   <p>A <span>hyperlink</span> with the <code
                   5173:   title="rel-sidebar">sidebar</code> keyword specified is a <dfn
                   5174:   title="rel-sidebar-hyperlink">sidebar hyperlink</dfn>.</p>
                   5175: -->
                   5176: 
1.191     sruby    5177:   <h5 id="link-type-stylesheet"><span class="secno">4.12.5.11 </span>Link type "<dfn title="rel-stylesheet"><code>stylesheet</code></dfn>"</h5>
1.190     sruby    5178: 
                   5179:   <p>The <code title="rel-stylesheet"><a href="#link-type-stylesheet">stylesheet</a></code> keyword may be
                   5180:   used with <code><a href="the-link-element.html#the-link-element">link</a></code> elements. This keyword creates an <a href="#external-resource-link" title="external resource link">external resource link</a> that
                   5181:   contributes to the <a href="styling.html#styling">styling processing model</a>.</p>
                   5182: 
                   5183:   <p>The specified resource is a resource that describes how to
                   5184:   present the document. Exactly how the resource is to be processed
                   5185:   depends on the actual type of the resource.</p>
                   5186: 
                   5187:   <p>If the <code title="rel-alternate"><a href="#rel-alternate">alternate</a></code> keyword is
                   5188:   also specified on the <code><a href="the-link-element.html#the-link-element">link</a></code> element, then <dfn id="the-link-is-an-alternative-stylesheet">the link
                   5189:   is an alternative stylesheet</dfn>; in this case, the <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code> attribute must be specified on the
                   5190:   <code><a href="the-link-element.html#the-link-element">link</a></code> element, with a non-empty value.</p>
                   5191: 
                   5192:   <p>The default type for resources given by the <code title="rel-stylesheet"><a href="#link-type-stylesheet">stylesheet</a></code> keyword is <code title="">text/css</code>.</p>
                   5193: 
                   5194:   <div class="impl">
                   5195: 
                   5196:   <p>The appropriate time to <a href="the-link-element.html#concept-link-obtain" title="concept-link-obtain">obtain</a> the resource is when the
                   5197:   <a href="#external-resource-link" title="external resource link">external resource link</a>
                   5198:   is created or when its element is <a href="infrastructure.html#insert-an-element-into-a-document" title="insert an element
                   5199:   into a document">inserted into a document</a>, whichever happens
                   5200:   last. If the resource is <a href="#the-link-is-an-alternative-stylesheet" title="the link is an alternative
                   5201:   stylesheet">an alternative stylesheet</a> then the user agent may
                   5202:   defer obtaining the resource until it is part of the <a href="infrastructure.html#preferred-style-sheet-set">preferred
                   5203:   style sheet set</a>. <a href="#refsCSSOM">[CSSOM]</a></p> <!--
                   5204:   what about DOM access of alt style sheets? -->
                   5205: 
                   5206:   <p><strong>Quirk</strong>: If the document has been set to
                   5207:   <a href="infrastructure.html#quirks-mode">quirks mode</a>, has the <a href="#same-origin">same origin</a> as the
                   5208:   <a href="urls.html#url">URL</a> of the external resource<!-- CVE-2010-0654 -->, and
                   5209:   the <a href="urls.html#content-type" title="Content-Type">Content-Type metadata</a> of the
                   5210:   external resource is not a supported style sheet type, the user
                   5211:   agent must instead assume it to be <code title="">text/css</code>.</p>
                   5212: 
                   5213:   </div>
                   5214: 
                   5215: 
1.191     sruby    5216:   <h5 id="link-type-tag"><span class="secno">4.12.5.12 </span>Link type "<dfn title="rel-tag"><code>tag</code></dfn>"</h5>
1.190     sruby    5217: 
                   5218:   <p>The <code title="rel-tag"><a href="#link-type-tag">tag</a></code> keyword may be used with
                   5219:   <code><a href="the-a-element.html#the-a-element">a</a></code> and <code><a href="the-area-element.html#the-area-element">area</a></code> elements. This keyword creates
                   5220:   a <a href="#hyperlink">hyperlink</a>.</p>
                   5221: 
                   5222:   <p>The <code title="rel-tag"><a href="#link-type-tag">tag</a></code> keyword indicates that the
                   5223:   <em>tag</em> that the referenced document represents applies to the
                   5224:   current document.</p>
                   5225: 
                   5226:   <p class="note">Since it indicates that the tag <em>applies to the
                   5227:   current document</em>, it would be inappropriate to use this keyword
                   5228:   in the markup of a <a href="#tag-cloud">tag cloud</a>, which lists
                   5229:   the popular tags across a set of pages.</p>
                   5230: 
                   5231:   <div class="example">
                   5232: 
                   5233:    <p>This document is about some gems, and so it is <i>tagged</i>
                   5234:    with "<code title="">http://en.wikipedia.org/wiki/Gemstone</code>"
                   5235:    to unambiguously categorise it as applying to the "jewel" kind of
                   5236:    gems, and not to, say, the towns in the US, the Ruby package
                   5237:    format, or the Swiss locomotive class:</p>
                   5238: 
                   5239:    <pre>&lt;!DOCTYPE HTML&gt;
                   5240: &lt;html&gt;
                   5241:  &lt;head&gt;
                   5242:   &lt;title&gt;My Precious&lt;/title&gt;
                   5243:  &lt;/head&gt;
                   5244:  &lt;body&gt;
                   5245:   &lt;header&gt;&lt;h1&gt;My precious&lt;/h1&gt; &lt;p&gt;Summer 2012&lt;/p&gt;&lt;/header&gt;
                   5246:   &lt;p&gt;Recently I managed to dispose of a red gem that had been
                   5247:   bothering me. I now have a much nicer blue sapphire.&lt;/p&gt;
                   5248:   &lt;p&gt;The red gem had been found in a bauxite stone while I was digging
                   5249:   out the office level, but nobody was willing to haul it away. The
                   5250:   same red gem stayed there for literally years.&lt;/p&gt;
                   5251:   &lt;footer&gt;
                   5252:    Tags: &lt;a rel=tag href="http://en.wikipedia.org/wiki/Gemstone"&gt;Gemstone&lt;/a&gt;
                   5253:   &lt;/footer&gt;
                   5254:  &lt;/body&gt;
                   5255: &lt;/html&gt;</pre>
                   5256: 
                   5257:   </div>
                   5258: 
                   5259:   <div class="example">
                   5260: 
                   5261:    <p>In <em>this</em> document, there are two articles. The "<code title="rel-tag"><a href="#link-type-tag">tag</a></code>" link, however, applies to the whole
                   5262:    page (and would do so wherever it was placed, including if it was
                   5263:    within the <code><a href="the-article-element.html#the-article-element">article</a></code> elements).</p>
                   5264: 
                   5265:    <pre>&lt;!DOCTYPE HTML&gt;
                   5266: &lt;html&gt;
                   5267:  &lt;head&gt;
                   5268:   &lt;title&gt;Gem 4/4&lt;/title&gt;
                   5269:  &lt;/head&gt;
                   5270:  &lt;body&gt;
                   5271:   &lt;article&gt;
                   5272:    &lt;h1&gt;801: Steinbock&lt;/h1&gt;
                   5273:    &lt;p&gt;The number 801 Gem 4/4 electro-diesel has an ibex and was rebuilt in 2002.&lt;/p&gt;
                   5274:   &lt;/article&gt;
                   5275:   &lt;article&gt;
                   5276:    &lt;h1&gt;802: Murmeltier&lt;/h1&gt;
                   5277:    &lt;figure&gt;
                   5278:     &lt;img src="http://upload.wikimedia.org/wikipedia/commons/b/b0/Trains_de_la_Bernina_en_hiver_2.jpg"
                   5279:          alt="The 802 was red with pantographs and tall vents on the side."&gt;
                   5280:     &lt;figcaption&gt;The 802 in the 1980s, above Lago Bianco.&lt;/figcaption&gt;
                   5281:    &lt;/figure&gt;
                   5282:    &lt;p&gt;The number 802 Gem 4/4 electro-diesel has a marmot and was rebuilt in 2003.&lt;/p&gt;
                   5283:   &lt;/article&gt;
                   5284:   &lt;p class="topic"&gt;&lt;a rel=tag href="http://en.wikipedia.org/wiki/Rhaetian_Railway_Gem_4/4"&gt;Gem 4/4&lt;/a&gt;&lt;/p&gt;
                   5285:  &lt;/body&gt;
                   5286: &lt;/html&gt;</pre>
                   5287: 
                   5288:   </div>
                   5289: 
                   5290: 
                   5291: 
1.191     sruby    5292:   <h5 id="sequential-link-types"><span class="secno">4.12.5.13 </span>Sequential link types</h5>
1.190     sruby    5293: 
                   5294:   <p>Some documents form part of a sequence of documents.</p>
                   5295: 
                   5296:   <p>A sequence of documents is one where each document can have a
                   5297:   <em>previous sibling</em> and a <em>next sibling</em>. A document
                   5298:   with no previous sibling is the start of its sequence, a document
                   5299:   with no next sibling is the end of its sequence.</p>
                   5300: 
                   5301:   <p>A document may be part of multiple sequences.</p>
                   5302: 
                   5303: 
1.191     sruby    5304:   <h6 id="link-type-next"><span class="secno">4.12.5.13.1 </span>Link type "<dfn title="rel-next"><code>next</code></dfn>"</h6>
1.190     sruby    5305: 
                   5306:   <p>The <code title="rel-next"><a href="#link-type-next">next</a></code> keyword may be used with
                   5307:   <code><a href="the-link-element.html#the-link-element">link</a></code>, <code><a href="the-a-element.html#the-a-element">a</a></code>, and <code><a href="the-area-element.html#the-area-element">area</a></code>
                   5308:   elements. This keyword creates a <a href="#hyperlink">hyperlink</a>.</p>
                   5309: 
                   5310:   <p>The <code title="rel-next"><a href="#link-type-next">next</a></code> keyword indicates that the
                   5311:   document is part of a sequence, and that the link is leading to the
                   5312:   document that is the next logical document in the sequence.</p>
                   5313: 
                   5314: 
1.191     sruby    5315:   <h6 id="link-type-prev"><span class="secno">4.12.5.13.2 </span>Link type "<dfn title="rel-prev"><code>prev</code></dfn>"</h6>
1.190     sruby    5316: 
                   5317:   <p>The <code title="rel-prev"><a href="#link-type-prev">prev</a></code> keyword may be used with
                   5318:   <code><a href="the-link-element.html#the-link-element">link</a></code>, <code><a href="the-a-element.html#the-a-element">a</a></code>, and <code><a href="the-area-element.html#the-area-element">area</a></code>
                   5319:   elements. This keyword creates a <a href="#hyperlink">hyperlink</a>.</p>
                   5320: 
                   5321:   <p>The <code title="rel-prev"><a href="#link-type-prev">prev</a></code> keyword indicates that the
                   5322:   document is part of a sequence, and that the link is leading to the
                   5323:   document that is the previous logical document in the sequence.</p>
                   5324: 
                   5325:   <div class="impl">
                   5326: 
                   5327:   <p><strong>Synonyms</strong>: For historical reasons, user agents
                   5328:   must also treat the keyword "<code title="">previous</code>" like
                   5329:   the <code title="rel-prev"><a href="#link-type-prev">prev</a></code> keyword.</p>
                   5330: 
                   5331:   </div>
                   5332: 
                   5333: 
1.191     sruby    5334:   <h5 id="other-link-types"><span class="secno">4.12.5.14 </span>Other link types</h5>
1.190     sruby    5335: 
                   5336:   <!-- XXX should update this section to more closely match the wiki -->
                   5337:   <!-- possibly also applying the principles described here:
                   5338:      http://lists.w3.org/Archives/Public/public-html/2011Mar/0497.html
                   5339:   -->
                   5340: 
                   5341:   <p><dfn id="concept-rel-extensions" title="concept-rel-extensions">Extensions to the predefined
                   5342:   set of link types</dfn> may be registered in the <a href="http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions">microformats wiki existing-rel-values page</a>. <a href="#refsMFREL">[MFREL]</a></p>
                   5343: 
                   5344:   <p>Anyone is free to edit the <span title="">microformats wiki
                   5345:   existing-rel-values page</span> at any time to add a type. Extension
                   5346:   types must be specified with the following information:</p>
                   5347: 
                   5348:   <dl><dt>Keyword</dt>
                   5349: 
                   5350:    <dd>
                   5351: 
                   5352:     <p>The actual value being defined. The value should not be
                   5353:     confusingly similar to any other defined value (e.g. differing
                   5354:     only in case).</p>
                   5355: 
                   5356:     <p>If the value contains a ":" (U+003A) character, it must
                   5357:     also be an <a href="urls.html#absolute-url">absolute URL</a>.</p>
                   5358: 
                   5359:    </dd>
                   5360: 
                   5361: 
                   5362:    <dt>Effect on... <code><a href="the-link-element.html#the-link-element">link</a></code></dt>
                   5363: 
                   5364:    <dd>
                   5365: 
                   5366:     <p>One of the following:</p>
                   5367: 
                   5368:     <dl><dt>Not allowed</dt>
                   5369: 
                   5370:      <dd>The keyword must not be specified on <code><a href="the-link-element.html#the-link-element">link</a></code>
                   5371:      elements.</dd>
                   5372: 
                   5373:      <dt>Hyperlink</dt>
                   5374: 
                   5375:      <dd>The keyword may be specified on a <code><a href="the-link-element.html#the-link-element">link</a></code> element;
                   5376:      it creates a <a href="#hyperlink">hyperlink</a>.</dd>
                   5377: 
                   5378:      <dt>External Resource</dt>
                   5379: 
                   5380:      <dd>The keyword may be specified on a <code><a href="the-link-element.html#the-link-element">link</a></code> element;
                   5381:      it creates an <a href="#external-resource-link">external resource link</a>.</dd>
                   5382: 
                   5383:     </dl></dd>
                   5384: 
                   5385: 
                   5386:    <dt>Effect on... <code><a href="the-a-element.html#the-a-element">a</a></code> and <code><a href="the-area-element.html#the-area-element">area</a></code></dt>
                   5387: 
                   5388:    <dd>
                   5389: 
                   5390:     <p>One of the following:</p>
                   5391: 
                   5392:     <dl><dt>Not allowed</dt>
                   5393: 
                   5394:      <dd>The keyword must not be specified on <code><a href="the-a-element.html#the-a-element">a</a></code> and
                   5395:      <code><a href="the-area-element.html#the-area-element">area</a></code> elements.</dd>
                   5396: 
                   5397:      <dt>Hyperlink</dt>
                   5398: 
                   5399:      <dd>The keyword may be specified on <code><a href="the-a-element.html#the-a-element">a</a></code> and
                   5400:      <code><a href="the-area-element.html#the-area-element">area</a></code> elements; it creates a
                   5401:      <a href="#hyperlink">hyperlink</a>.</dd>
                   5402: 
                   5403:      <dt>External Resource</dt>
                   5404: 
                   5405:      <dd>The keyword may be specified on <code><a href="the-a-element.html#the-a-element">a</a></code> and
                   5406:      <code><a href="the-area-element.html#the-area-element">area</a></code> elements; it creates an <a href="#external-resource-link">external resource
                   5407:      link</a>.</dd>
                   5408: 
                   5409:      <dt>Hyperlink Annotation</dt>
                   5410: 
                   5411:      <dd>The keyword may be specified on <code><a href="the-a-element.html#the-a-element">a</a></code> and
                   5412:      <code><a href="the-area-element.html#the-area-element">area</a></code> elements; it <a href="#hyperlink-annotation" title="hyperlink
                   5413:      annotation">annotates</a> other <a href="#hyperlink" title="hyperlink">hyperlinks</a> created by the element.</dd>
                   5414: 
                   5415:     </dl></dd>
                   5416: 
                   5417: 
                   5418:    <dt>Brief description</dt>
                   5419: 
                   5420:    <dd><p>A short non-normative description of what the keyword's
                   5421:    meaning is.</p></dd>
                   5422: 
                   5423: 
                   5424:    <dt>Specification</dt>
                   5425: 
                   5426:    <dd><p>A link to a more detailed description of the keyword's
                   5427:    semantics and requirements. It could be another page on the Wiki,
                   5428:    or a link to an external page.</p></dd>
                   5429: 
                   5430: 
                   5431:    <dt>Synonyms</dt>
                   5432: 
                   5433:    <dd><p>A list of other keyword values that have exactly the same
                   5434:    processing requirements. Authors should not use the values defined
                   5435:    to be synonyms, they are only intended to allow user agents to
                   5436:    support legacy content. Anyone may remove synonyms that are not
                   5437:    used in practice; only names that need to be processed as synonyms
                   5438:    for compatibility with legacy content are to be registered in this
                   5439:    way.</p></dd>
                   5440: 
                   5441: 
                   5442:    <dt>Status</dt>
                   5443: 
                   5444:    <dd>
                   5445: 
                   5446:     <p>One of the following:</p>
                   5447: 
                   5448:     <dl><dt>Proposed</dt>
                   5449: 
                   5450:      <dd>The keyword has not received wide peer review and
                   5451:      approval. Someone has proposed it and is, or soon will be, using
                   5452:      it.</dd>
                   5453: 
                   5454:      <dt>Ratified</dt>
                   5455: 
                   5456:      <dd>The keyword has received wide peer review and approval. It
                   5457:      has a specification that unambiguously defines how to handle
                   5458:      pages that use the keyword, including when they use it in
                   5459:      incorrect ways.</dd>
                   5460: 
                   5461:      <dt>Discontinued</dt>
                   5462: 
                   5463:      <dd>The keyword has received wide peer review and it has been
                   5464:      found wanting. Existing pages are using this keyword, but new
                   5465:      pages should avoid it. The "brief description" and
                   5466:      "specification" entries will give details of what authors should
                   5467:      use instead, if anything.</dd>
                   5468: 
                   5469:     </dl><p>If a keyword is found to be redundant with existing values, it
                   5470:     should be removed and listed as a synonym for the existing
                   5471:     value.</p>
                   5472: 
                   5473:     <p>If a keyword is registered in the "proposed" state for a
                   5474:     period of a month or more without being used or specified, then it
                   5475:     may be removed from the registry.</p>
                   5476: 
                   5477:     <p>If a keyword is added with the "proposed" status and found to
                   5478:     be redundant with existing values, it should be removed and listed
                   5479:     as a synonym for the existing value. If a keyword is added with
                   5480:     the "proposed" status and found to be harmful, then it should be
                   5481:     changed to "discontinued" status.</p>
                   5482: 
                   5483:     <p>Anyone can change the status at any time, but should only do so
                   5484:     in accordance with the definitions above.</p>
                   5485: 
                   5486:    </dd>
                   5487: 
                   5488:   </dl><div class="impl">
                   5489: 
                   5490:   <p>Conformance checkers may use the information given on the <span title="">microformats wiki existing-rel-values page</span> to
                   5491:   establish if a value is allowed or not: values defined in this
                   5492:   specification or marked as "proposed" or "ratified" must be accepted
                   5493:   when used on the elements for which they apply as described in the
                   5494:   "Effect on..." field, whereas values marked as "discontinued" or 
                   5495:   values not containing a U+003A COLON character but not listed in 
                   5496:   either this specification or on the aforementioned page must be 
                   5497:   reported as invalid. The remaining values must be accepted as valid 
                   5498:   if they are absolute URLs containing US-ASCII characters only and 
                   5499:   rejected otherwise. Conformance checkers may cache this
                   5500:   information (e.g. for performance reasons or to avoid the use of
                   5501:   unreliable network connectivity).</p>
                   5502: 
                   5503:   <p class="note">Note: Even URL-valued link types are compared 
                   5504:   ASCII-case-insensitively. Validators might choose to warn about 
                   5505:   characters U+0041 (LATIN CAPITAL LETTER A) through 
                   5506:   U+005A (LATIN CAPITAL LETTER Z) (inclusive) in the pre-case-folded 
                   5507:   form of link types that contain a colon.</p>
                   5508: 
                   5509:   <p>When an author uses a new type not defined by either this
                   5510:   specification or the Wiki page, conformance checkers should offer to
                   5511:   add the value to the Wiki, with the details described above, with
                   5512:   the "proposed" status.</p>
                   5513: 
                   5514:   </div>
                   5515: 
                   5516:   <p>Types defined as extensions in the <a href="http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions">microformats
                   5517:   wiki existing-rel-values page</a> with the status "proposed" or
                   5518:   "ratified" may be used with the <code title="">rel</code> attribute
                   5519:   on <code><a href="the-link-element.html#the-link-element">link</a></code>, <code><a href="the-a-element.html#the-a-element">a</a></code>, and <code><a href="the-area-element.html#the-area-element">area</a></code> elements
                   5520:   in accordance to the "Effect on..." field. <a href="#refsMFREL">[MFREL]</a></p>
                   5521: 
                   5522: 
                   5523: 
                   5524:   <h3 id="common-idioms"><span class="secno">4.13 </span>Common idioms without dedicated elements</h3>
                   5525: 
                   5526:   <h4 id="the-main-part-of-the-content"><span class="secno">4.13.1 </span>The main part of the content</h4>
                   5527: 
                   5528:   <p>The main content of a page &#8212; not including headers and
                   5529:   footers, navigation links, sidebars, advertisements, and so forth
                   5530:   &#8212; can be marked up in a variety of ways, depending on the
                   5531:   needs of the author.</p>
                   5532: 
                   5533:   <p>The simplest solution is to not mark up the main content at all,
                   5534:   and just leave it as implicit. Another way to think of this is that
                   5535:   the <code><a href="the-body-element.html#the-body-element">body</a></code> elements marks up the main content of the
                   5536:   page, and the bits that aren't main content are excluded through the
                   5537:   use of more appropriate elements like <code><a href="the-aside-element.html#the-aside-element">aside</a></code> and
                   5538:   <code><a href="the-nav-element.html#the-nav-element">nav</a></code>.</p>
                   5539: 
                   5540:   <div class="example">
                   5541: 
                   5542:    <p>Here is a short Web page marked up along this minimalistic
                   5543:    school of thought. The main content is highlighted. Notice how all
                   5544:    the <em>other</em> content in the <code><a href="the-body-element.html#the-body-element">body</a></code> is marked up
                   5545:    with elements to indicate that it's not part of the main content,
                   5546:    in this case <code><a href="the-header-element.html#the-header-element">header</a></code>, <code><a href="the-nav-element.html#the-nav-element">nav</a></code>, and
                   5547:    <code><a href="the-footer-element.html#the-footer-element">footer</a></code>.</p>
                   5548: 
                   5549:    <pre>&lt;!DOCTYPE HTML&gt;
                   5550: &lt;html&gt;
                   5551:  &lt;head&gt;
                   5552:   &lt;title&gt; My Toys &lt;/title&gt;
                   5553:  &lt;/head&gt;
                   5554:  &lt;body&gt;
                   5555:   &lt;header&gt;
                   5556:    &lt;h1&gt;My toys&lt;/h1&gt;
                   5557:   &lt;/header&gt;
                   5558:   &lt;nav&gt;
                   5559:    &lt;p&gt;&lt;a href="/"&gt;Home&lt;/a&gt;&lt;/p&gt;
                   5560:    &lt;p&gt;&lt;a href="/contact"&gt;Contact&lt;/a&gt;&lt;/p&gt;
                   5561:   &lt;/nav&gt;
                   5562: <strong>  &lt;p&gt;I really like my chained book and my telephone. I'm not such a
                   5563:   fan of my big ball.&lt;/p&gt;
                   5564:   &lt;p&gt;Another toy I like is my mirror.&lt;/p&gt;</strong>
                   5565:   &lt;footer&gt;
                   5566:    &lt;p&gt;&#169; copyright 2010 by the boy&lt;/p&gt;
                   5567:   &lt;/footer&gt;
                   5568:  &lt;/body&gt;
                   5569: &lt;/html&gt;</pre>
                   5570: 
                   5571:   </div>
                   5572: 
                   5573:   <p>If the main content is an independent unit of content that one
                   5574:   could imagine syndicating independently, then the
                   5575:   <code><a href="the-article-element.html#the-article-element">article</a></code> element would be appropriate to mark up the
                   5576:   main content of the document.</p>
                   5577: 
                   5578:   <div class="example">
                   5579: 
                   5580:    <p>The document in the previous example is here recast as a blog
                   5581:    post:</p>
                   5582: 
                   5583:    <pre>&lt;!DOCTYPE HTML&gt;
                   5584: &lt;html&gt;
                   5585:  &lt;head&gt;
                   5586:   &lt;title&gt; The Boy Blog: My Toys &lt;/title&gt;
                   5587:  &lt;/head&gt;
                   5588:  &lt;body&gt;
                   5589:   &lt;header&gt;
                   5590:    &lt;h1&gt;The Boy Blog&lt;/h1&gt;
                   5591:   &lt;/header&gt;
                   5592:   &lt;nav&gt;
                   5593:    &lt;p&gt;&lt;a href="/"&gt;Home&lt;/a&gt;&lt;/p&gt;
                   5594:    &lt;p&gt;&lt;a href="/contact"&gt;Contact&lt;/a&gt;&lt;/p&gt;
                   5595:   &lt;/nav&gt;
                   5596: <strong>  &lt;article&gt;
                   5597:    &lt;header&gt;
                   5598:     &lt;h1&gt;My toys&lt;/h1&gt;
                   5599:     &lt;p&gt;Published August 4th&lt;/p&gt;
                   5600:    &lt;/header&gt;
                   5601:    &lt;p&gt;I really like my chained book and my telephone. I'm not such a
                   5602:    fan of my big ball.&lt;/p&gt;
                   5603:    &lt;p&gt;Another toy I like is my mirror.&lt;/p&gt;
                   5604:   &lt;/article&gt;</strong>
                   5605:   &lt;footer&gt;
                   5606:    &lt;p&gt;&#169; copyright 2010 by the boy&lt;/p&gt;
                   5607:   &lt;/footer&gt;
                   5608:  &lt;/body&gt;
                   5609: &lt;/html&gt;</pre>
                   5610: 
                   5611:   </div>
                   5612: 
                   5613:   <p>If the main content is not an independent unit of content so much
                   5614:   as a section of a larger work, for instance a chapter, then the
                   5615:   <code><a href="the-section-element.html#the-section-element">section</a></code> element would be appropriate to mark up the
                   5616:   main content of the document.</p>
                   5617: 
                   5618:   <div class="example">
                   5619: 
                   5620:    <p>Here is the same document, case as a chapter in an online
                   5621:    book:</p>
                   5622: 
                   5623:    <pre>&lt;!DOCTYPE HTML&gt;
                   5624: &lt;html&gt;
                   5625:  &lt;head&gt;
                   5626:   &lt;title&gt; Chapter 2: My Toys &#8212; The Book of the Boy &lt;/title&gt;
                   5627:  &lt;/head&gt;
                   5628:  &lt;body&gt;
                   5629:   &lt;header&gt;
                   5630:    &lt;h1&gt;Chapter 2: My Toys&lt;/h1&gt;
                   5631:   &lt;/header&gt;
                   5632:   &lt;nav&gt;
                   5633:    &lt;p&gt;&lt;a href="/"&gt;Front Page&lt;/a&gt;&lt;/p&gt;
                   5634:    &lt;p&gt;&lt;a href="/toc"&gt;Table of Contents&lt;/a&gt;&lt;/p&gt;
                   5635:    &lt;p&gt;&lt;a href="/c1"&gt;Chapter 1&lt;/a&gt; &#8212; &lt;a href="/c3"&gt;Chapter 3&lt;/a&gt;&lt;/p&gt;
                   5636:   &lt;/nav&gt;
                   5637: <strong>  &lt;section&gt;
                   5638:    &lt;p&gt;I really like my chained book and my telephone. I'm not such a
                   5639:    fan of my big ball.&lt;/p&gt;
                   5640:    &lt;p&gt;Another toy I like is my mirror.&lt;/p&gt;
                   5641:   &lt;/section&gt;</strong>
                   5642:   &lt;footer&gt;
                   5643:    &lt;p&gt;&#169; copyright 2010 by the boy&lt;/p&gt;
                   5644:   &lt;/footer&gt;
                   5645:  &lt;/body&gt;
                   5646: &lt;/html&gt;</pre>
                   5647: 
                   5648:   </div>
                   5649: 
                   5650:   <p>If neither <code><a href="the-article-element.html#the-article-element">article</a></code> nor <code><a href="the-section-element.html#the-section-element">section</a></code> would be
                   5651:   appropriate, but the main content still needs an explicit element,
                   5652:   for example for styling purposes, then the <code><a href="the-div-element.html#the-div-element">div</a></code> element
                   5653:   can be used.</p>
                   5654: 
                   5655:   <div class="example">
                   5656: 
                   5657:    <p>This is the same as the original example, but using
                   5658:    <code><a href="the-div-element.html#the-div-element">div</a></code> for the main content instead of leaving it
                   5659:    implied:</p>
                   5660: 
                   5661:    <pre>&lt;!DOCTYPE HTML&gt;
                   5662: &lt;html&gt;
                   5663:  &lt;head&gt;
                   5664:   &lt;title&gt; My Toys &lt;/title&gt;
                   5665:   &lt;style&gt;
                   5666:    body &gt; div { background: navy; color: yellow; }
                   5667:   &lt;/style&gt;
                   5668:  &lt;/head&gt;
                   5669:  &lt;body&gt;
                   5670:   &lt;header&gt;
                   5671:    &lt;h1&gt;My toys&lt;/h1&gt;
                   5672:   &lt;/header&gt;
                   5673:   &lt;nav&gt;
                   5674:    &lt;p&gt;&lt;a href="/"&gt;Home&lt;/a&gt;&lt;/p&gt;
                   5675:    &lt;p&gt;&lt;a href="/contact"&gt;Contact&lt;/a&gt;&lt;/p&gt;
                   5676:   &lt;/nav&gt;
                   5677: <strong>  &lt;div&gt;
                   5678:    &lt;p&gt;I really like my chained book and my telephone. I'm not such a
                   5679:    fan of my big ball.&lt;/p&gt;
                   5680:    &lt;p&gt;Another toy I like is my mirror.&lt;/p&gt;
                   5681:   &lt;/div&gt;</strong>
                   5682:   &lt;footer&gt;
                   5683:    &lt;p&gt;&#169; copyright 2010 by the boy&lt;/p&gt;
                   5684:   &lt;/footer&gt;
                   5685:  &lt;/body&gt;
                   5686: &lt;/html&gt;</pre>
                   5687: 
                   5688:   </div>
                   5689: 
                   5690: 
                   5691:   <h4 id="rel-up"><span class="secno">4.13.2 </span>Bread crumb navigation</h4>
                   5692: 
                   5693:   <p>This specification does not provide a machine-readable way of
                   5694:   describing bread-crumb navigation menus. Authors are encouraged to
                   5695:   just use a series of links in a paragraph. The <code><a href="the-nav-element.html#the-nav-element">nav</a></code>
                   5696:   element can be used to mark the section containing these
                   5697:   paragraphs as being navigation blocks.</p>
                   5698: 
                   5699:   <div class="example">
                   5700: 
                   5701:    <p>In the following example, the current page can be reached via
                   5702:    two paths.</p>
                   5703: 
                   5704:    <pre>&lt;nav&gt;
                   5705:  &lt;p&gt;
                   5706:   &lt;a href="/"&gt;Main&lt;/a&gt; &gt;
                   5707:   &lt;a href="/products/"&gt;Products&lt;/a&gt; &gt;
                   5708:   &lt;a href="/products/dishwashers/"&gt;Dishwashers&lt;/a&gt; &gt;
                   5709:   &lt;a&gt;Second hand&lt;/a&gt;
                   5710:  &lt;/p&gt;
                   5711:  &lt;p&gt;
                   5712:   &lt;a href="/"&gt;Main&lt;/a&gt; &gt;
                   5713:   &lt;a href="/second-hand/"&gt;Second hand&lt;/a&gt; &gt;
                   5714:   &lt;a&gt;Dishwashers&lt;/a&gt;
                   5715:  &lt;/p&gt;
                   5716: &lt;/nav&gt;</pre>
                   5717: 
                   5718:   </div>
                   5719: 
                   5720: 
                   5721:   <h4 id="tag-clouds"><span class="secno">4.13.3 </span>Tag clouds</h4>
                   5722: 
                   5723:   <p id="tag-cloud">This specification does not define any markup
                   5724:   specifically for marking up lists of keywords that apply to a group
                   5725:   of pages (also known as <i>tag clouds</i>). In general, authors are
                   5726:   encouraged to either mark up such lists using <code><a href="the-ul-element.html#the-ul-element">ul</a></code>
                   5727:   elements with explicit inline counts that are then hidden and turned
                   5728:   into a presentational effect using a style sheet, or to use SVG.</p>
                   5729: 
                   5730:   <div class="example">
                   5731: 
                   5732:    <p>Here, three tags are included in a short tag cloud:</p>
                   5733: 
                   5734:    <pre>&lt;style&gt;
                   5735: @media screen, print, handheld, tv {
                   5736:   /* should be ignored by non-visual browsers */
                   5737:   .tag-cloud &gt; li &gt; span { display: none; }
                   5738:   .tag-cloud &gt; li { display: inline; }
                   5739:   .tag-cloud-1 { font-size: 0.7em; }
                   5740:   .tag-cloud-2 { font-size: 0.9em; }
                   5741:   .tag-cloud-3 { font-size: 1.1em; }
                   5742:   .tag-cloud-4 { font-size: 1.3em; }
                   5743:   .tag-cloud-5 { font-size: 1.5em; }
                   5744: }
                   5745: &lt;/style&gt;
                   5746: ...
                   5747: &lt;ul class="tag-cloud"&gt;
                   5748:  &lt;li class="tag-cloud-4"&gt;&lt;a title="28 instances" href="/t/apple"&gt;apple&lt;/a&gt; &lt;span&gt;(popular)&lt;/span&gt;
                   5749:  &lt;li class="tag-cloud-2"&gt;&lt;a title="6 instances"  href="/t/kiwi"&gt;kiwi&lt;/a&gt; &lt;span&gt;(rare)&lt;/span&gt;
                   5750:  &lt;li class="tag-cloud-5"&gt;&lt;a title="41 instances" href="/t/pear"&gt;pear&lt;/a&gt; &lt;span&gt;(very popular)&lt;/span&gt;
                   5751: &lt;/ul&gt;</pre>
                   5752: 
                   5753:    <p>The actual frequency of each tag is given using the <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code> attribute. A CSS style sheet is
                   5754:    provided to convert the markup into a cloud of differently-sized
                   5755:    words, but for user agents that do not support CSS or are not
                   5756:    visual, the markup contains annotations like "(popular)" or
                   5757:    "(rare)" to categorize the various tags by frequency, thus enabling
                   5758:    all users to benefit from the information.</p>
                   5759: 
                   5760:    <p>The <code><a href="the-ul-element.html#the-ul-element">ul</a></code> element is used (rather than
                   5761:    <code><a href="the-ol-element.html#the-ol-element">ol</a></code>) because the order is not particularly important:
                   5762:    while the list is in fact ordered alphabetically, it would convey
                   5763:    the same information if ordered by, say, the length of the tag.</p>
                   5764: 
                   5765:    <p>The <code title="rel-tag"><a href="#link-type-tag">tag</a></code> <code title="attr-hyperlink-rel"><a href="#attr-hyperlink-rel">rel</a></code>-keyword is <em>not</em> used
                   5766:    on these <code><a href="the-a-element.html#the-a-element">a</a></code> elements because they do not represent tags
                   5767:    that apply to the page itself; they are just part of an index
                   5768:    listing the tags themselves.</p>
                   5769: 
                   5770:   </div>
                   5771: 
                   5772: 
                   5773:   <h4 id="conversations"><span class="secno">4.13.4 </span>Conversations</h4>
                   5774: 
                   5775:   <!-- http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-September/022576.html -->
                   5776: 
                   5777:   <p>This specification does not define a specific element for marking
                   5778:   up conversations, meeting minutes, chat transcripts, dialogues in
                   5779:   screenplays, instant message logs, and other situations where
                   5780:   different players take turns in discourse.</p>
                   5781: 
                   5782:   <p>Instead, authors are encouraged to mark up conversations using
                   5783:   <code><a href="the-p-element.html#the-p-element">p</a></code> elements and punctuation. Authors who need to mark
                   5784:   the speaker for styling purposes are encouraged to use
                   5785:   <code><a href="the-span-element.html#the-span-element">span</a></code> or <code><a href="the-b-element.html#the-b-element">b</a></code>. Paragraphs with their text
                   5786:   wrapped in the <code><a href="the-i-element.html#the-i-element">i</a></code> element can be used for marking up
                   5787:   stage directions.</p>
                   5788: 
                   5789:   <div class="example">
                   5790: 
                   5791:    <p>This example demonstrates this using an extract from Abbot and
                   5792:    Costello's famous sketch, <cite>Who's on first</cite>:</p>
                   5793: 
                   5794: <pre>&lt;p&gt; Costello: Look, you gotta first baseman?
                   5795: &lt;p&gt; Abbott: Certainly.
                   5796: &lt;p&gt; Costello: Who's playing first?
                   5797: &lt;p&gt; Abbott: That's right.
                   5798: &lt;p&gt; Costello becomes exasperated.
                   5799: &lt;p&gt; Costello: When you pay off the first baseman every month, who gets the money?
                   5800: &lt;p&gt; Abbott: Every dollar of it.</pre>
                   5801: 
                   5802:   </div>
                   5803: 
                   5804: <!--DATA--><!--FORK-->
                   5805: 
                   5806:   <div class="example">
                   5807: 
                   5808:    <p>HTML does not have a good way to mark up graphs, so descriptions
                   5809:    of interactive conversations from games are more difficult to mark
                   5810:    up. This example shows one possible convention using
                   5811:    <code><a href="the-dl-element.html#the-dl-element">dl</a></code> elements to list the possible responses at each
                   5812:    point in the conversation. Another option to consider is describing
                   5813:    the conversation in the form of a DOT file, and outputting the
                   5814:    result as an SVG image to place in the document. <a href="#refsDOT">[DOT]</a></p>
                   5815: 
                   5816:    <pre>&lt;p&gt; Next, you meet a fisherman. You can say one of several greetings:
                   5817: &lt;dl&gt;
                   5818:  &lt;dt&gt; "Hello there!"
                   5819:  &lt;dd&gt;
                   5820:   &lt;p&gt; He responds with "Hello, how may I help you?"; you can respond with:
                   5821:   &lt;dl&gt;
                   5822:    &lt;dt&gt; "I would like to buy a fish."
                   5823:    &lt;dd&gt; &lt;p&gt; He sells you a fish and the conversation finishes.
                   5824:    &lt;dt&gt; "Can I borrow your boat?"
                   5825:    &lt;dd&gt;
                   5826:     &lt;p&gt; He is surprised and asks "What are you offering in return?".
                   5827:     &lt;dl&gt;
                   5828:      &lt;dt&gt; "Five gold." (if you have enough)
                   5829:      &lt;dt&gt; "Ten gold." (if you have enough)
                   5830:      &lt;dt&gt; "Fifteen gold." (if you have enough)
                   5831:      &lt;dd&gt; &lt;p&gt; He lends you his boat. The conversation ends.
                   5832:      &lt;dt&gt; "A fish." (if you have one)
                   5833:      &lt;dt&gt; "A newspaper." (if you have one)
                   5834:      &lt;dt&gt; "A pebble." (if you have one)
                   5835:      &lt;dd&gt; &lt;p&gt; "No thanks", he replies. Your conversation options        
                   5836:      at this point are the same as they were after asking to borrow
                   5837:      his boat, minus any options you've suggested before.
                   5838:     &lt;/dl&gt;
                   5839:    &lt;/dd&gt;
                   5840:   &lt;/dl&gt;
                   5841:  &lt;/dd&gt;
                   5842:  &lt;dt&gt; "Vote for me in the next election!"
                   5843:  &lt;dd&gt; &lt;p&gt; He turns away. The conversation finishes.
                   5844:  &lt;dt&gt; "Sir, are you aware that your fish are running away?"
                   5845:  &lt;dd&gt;
                   5846:   &lt;p&gt; He looks at you skeptically and says "Fish cannot run, sir".
                   5847:   &lt;dl&gt;
                   5848:    &lt;dt&gt; "You got me!"
                   5849:    &lt;dd&gt; &lt;p&gt; The fisherman sighs and the conversation ends.
                   5850:    &lt;dt&gt; "Only kidding."
                   5851:    &lt;dd&gt; &lt;p&gt; "Good one!" he retorts. Your conversation options at this
                   5852:    point are the same as those following "Hello there!" above.
                   5853:    &lt;dt&gt; "Oh, then what are they doing?"
                   5854:    &lt;dd&gt; &lt;p&gt; He looks at his fish, giving you an opportunity to steal
                   5855:    his boat, which you do. The conversation ends.
                   5856:   &lt;/dl&gt;
                   5857:  &lt;/dd&gt;
                   5858: &lt;/ul&gt;</pre>
                   5859: 
                   5860:   </div>
                   5861: 
                   5862: 
                   5863:   <h4 id="footnotes"><span class="secno">4.13.5 </span>Footnotes</h4>
                   5864: 
                   5865:   <p>HTML does not have a dedicated mechanism for marking up
                   5866:   footnotes. Here are the recommended alternatives.</p>
                   5867: 
                   5868: <!--FORK--><!--TITLE-->
                   5869: 
                   5870:   <hr><p>For
                   5871: <!--FORK--><!--TITLE-->
                   5872:   annotations, the <code><a href="the-a-element.html#the-a-element">a</a></code> element should be used, pointing to
                   5873:   an element later in the document. The convention is that the
                   5874:   contents of the link be a number in square brackets.</p>
                   5875: 
                   5876:   <div class="example">
                   5877: 
                   5878:    <p>In this example, a footnote in the dialogue links to a paragraph
                   5879:    below the dialogue. The paragraph then reciprocally links back to the
                   5880:    dialogue, allowing the user to return to the location of the
                   5881:    footnote.</p>
                   5882: 
                   5883:    <pre>&lt;p&gt; Announcer: Number 16: The &lt;i&gt;hand&lt;/i&gt;.
                   5884: &lt;p&gt; Interviewer: Good evening. I have with me in the studio tonight
                   5885: Mr Norman St John Polevaulter, who for the past few years has been
                   5886: contradicting people. Mr Polevaulter, why &lt;em&gt;do&lt;/em&gt; you
                   5887: contradict people?
                   5888: &lt;p&gt; Norman: I don't. &lt;sup&gt;&lt;a href="#fn1" id="r1"&gt;[1]&lt;/a&gt;&lt;/sup&gt;
                   5889: &lt;p&gt; Interviewer: You told me you did!
                   5890: <em>...</em>
                   5891: &lt;section&gt;
                   5892:  &lt;p id="fn1"&gt;&lt;a href="#r1"&gt;[1]&lt;/a&gt; This is, naturally, a lie,
                   5893:  but paradoxically if it were true he could not say so without
                   5894:  contradicting the interviewer and thus making it false.&lt;/p&gt;
                   5895: &lt;/section&gt;</pre>
                   5896: 
                   5897:   </div>
                   5898: 
                   5899:   <hr><p>For side notes, longer annotations that apply to entire sections
                   5900:   of the text rather than just specific words or sentences, the
                   5901:   <code><a href="the-aside-element.html#the-aside-element">aside</a></code> element should be used.</p>
                   5902: 
                   5903:   <div class="example">
                   5904: 
                   5905:    <p>In this example, a sidebar is given after a dialogue, giving it
                   5906:    some context.</p>
                   5907: 
                   5908:    <pre>&lt;p&gt; &lt;span class="speaker"&gt;Customer&lt;/span&gt;: I will not buy this record, it is scratched.
                   5909: &lt;p&gt; &lt;span class="speaker"&gt;Shopkeeper&lt;/span&gt;: I'm sorry?
                   5910: &lt;p&gt; &lt;span class="speaker"&gt;Customer&lt;/span&gt;: I will not buy this record, it is scratched.
                   5911: &lt;p&gt; &lt;span class="speaker"&gt;Shopkeeper&lt;/span&gt;: No no no, this's'a tobacconist's.
                   5912: &lt;aside&gt;
                   5913:  &lt;p&gt;In 1970, the British Empire lay in ruins, and foreign
                   5914:  nationalists frequented the streets &#8212; many of them Hungarians
                   5915:  (not the streets &#8212; the foreign nationals). Sadly, Alexander
                   5916:  Yalt has been publishing incompetently-written phrase books.
                   5917: &lt;/aside&gt;</pre>
                   5918: 
                   5919:   </div>
                   5920: 
                   5921:   <hr><p>For figures or tables, footnotes can be included in the relevant
                   5922:   <code><a href="the-figcaption-element.html#the-figcaption-element">figcaption</a></code> or <code><a href="the-caption-element.html#the-caption-element">caption</a></code> element, or in
                   5923:   surrounding prose.</p>
                   5924: 
                   5925:   <div class="example">
                   5926: 
                   5927:    <p>In this example, a <!-- round --> table has cells with footnotes
                   5928:    that are given in prose. A <code><a href="the-figure-element.html#the-figure-element">figure</a></code> element is used to
                   5929:    give a single legend to the combination of the table and its
                   5930:    footnotes.</p>
                   5931: 
                   5932:    <pre>&lt;figure&gt;
                   5933:  &lt;figcaption&gt;Table 1. Alternative activities for knights.&lt;/figcaption&gt;
                   5934:  &lt;table&gt;
                   5935:   &lt;tr&gt;
                   5936:    &lt;th&gt; Activity
                   5937:    &lt;th&gt; Location
                   5938:    &lt;th&gt; Cost
                   5939:   &lt;tr&gt;
                   5940:    &lt;td&gt; Dance
                   5941:    &lt;td&gt; Wherever possible
                   5942:    &lt;td&gt; &#163;0&lt;sup&gt;&lt;a href="#fn1"&gt;1&lt;/a&gt;&lt;/sup&gt;
                   5943:   &lt;tr&gt;
                   5944:    &lt;td&gt; Routines, chorus scenes&lt;sup&gt;&lt;a href="#fn2"&gt;2&lt;/a&gt;&lt;/sup&gt;
                   5945:    &lt;td&gt; Undisclosed
                   5946:    &lt;td&gt; Undisclosed
                   5947:   &lt;tr&gt;
                   5948:    &lt;td&gt; Dining&lt;sup&gt;&lt;a href="#fn3"&gt;3&lt;/a&gt;&lt;/sup&gt;
                   5949:    &lt;td&gt; Camelot
                   5950:    &lt;td&gt; Cost of ham, jam, and spam&lt;sup&gt;&lt;a href="#fn4"&gt;4&lt;/a&gt;&lt;/sup&gt;
                   5951:  &lt;/table&gt;
                   5952:  &lt;p id="fn1"&gt;1. Assumed.&lt;/p&gt;
                   5953:  &lt;p id="fn2"&gt;2. Footwork impeccable.&lt;/p&gt;
                   5954:  &lt;p id="fn3"&gt;3. Quality described as "well".&lt;/p&gt;
                   5955:  &lt;p id="fn4"&gt;4. A lot.&lt;/p&gt;
                   5956: &lt;/figure&gt;</pre>
                   5957: 
                   5958:   </div>
                   5959: 
                   5960: 
                   5961: 
                   5962: 
                   5963:   <div class="impl">
                   5964: 
                   5965:   <h3 id="selectors"><span class="secno">4.14 </span>Matching HTML elements using selectors</h3>
                   5966: 
                   5967:   <h4 id="case-sensitivity"><span class="secno">4.14.1 </span>Case-sensitivity</h4>
                   5968: 
                   5969:   <p>The Selectors specification leaves the case-sensitivity of IDs,
                   5970:   classes, element names, attribute names, and attribute values to be
                   5971:   defined by the host language. <a href="#refsSELECTORS">[SELECTORS]</a></p>
                   5972: 
                   5973:   <p>The <a href="infrastructure.html#concept-id" title="concept-id">unique identifier</a> of
                   5974:   <a href="infrastructure.html#html-elements">HTML elements</a> in documents that are in <a href="infrastructure.html#quirks-mode">quirks
                   5975:   mode</a> must be treated as <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a>
                   5976:   for the purposes of selector matching.</p>
                   5977: 
                   5978:   <p>Classes from the <code title="attr-class"><a href="global-attributes.html#classes">class</a></code> attribute
                   5979:   of <a href="infrastructure.html#html-elements">HTML elements</a> in documents that are in <a href="infrastructure.html#quirks-mode">quirks
                   5980:   mode</a> must be treated as <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a>
                   5981:   for the purposes of selector matching.</p>
                   5982: 
                   5983:   <p>Attribute and element <em>names</em> of <a href="infrastructure.html#html-elements">HTML
                   5984:   elements</a> in <a href="infrastructure.html#html-documents">HTML documents</a> must be treated as
                   5985:   <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> for the purposes of selector
                   5986:   matching.</p>
                   5987: 
                   5988:   <p>Everything else (attribute values on <a href="infrastructure.html#html-elements">HTML elements</a>,
                   5989:   IDs and classes in <a href="infrastructure.html#no-quirks-mode">no-quirks mode</a> and
                   5990:   <a href="infrastructure.html#limited-quirks-mode">limited-quirks mode</a>, and element names, attribute
                   5991:   names, and attribute values in <a href="infrastructure.html#xml-documents">XML documents</a>) must be
                   5992:   treated as <a href="infrastructure.html#case-sensitive">case-sensitive</a> for the purposes of selector
                   5993:   matching.</p>
                   5994: 
                   5995: 
                   5996:   <h4 id="pseudo-classes"><span class="secno">4.14.2 </span>Pseudo-classes</h4>
                   5997: 
                   5998:   <p>There are a number of dynamic selectors that can be used with
                   5999:   HTML. This section defines when these selectors match HTML elements.
                   6000:   <a href="#refsSELECTORS">[SELECTORS]</a> <a href="#refsCSSUI">[CSSUI]</a></p>
                   6001: 
                   6002:   <dl><dt><dfn id="selector-link" title="selector-link"><code>:link</code></dfn></dt>
                   6003:    <dt><dfn id="selector-visited" title="selector-visited"><code>:visited</code></dfn></dt>
                   6004: 
                   6005:    <dd>
                   6006: 
                   6007:     <p>All <code><a href="the-a-element.html#the-a-element">a</a></code> elements that have an <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute, all
                   6008:     <code><a href="the-area-element.html#the-area-element">area</a></code> elements that have an <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute, and all
                   6009:     <code><a href="the-link-element.html#the-link-element">link</a></code> elements that have an <code title="attr-link-href"><a href="the-link-element.html#attr-link-href">href</a></code> attribute, must match one of
                   6010:     <code title="selector-link"><a href="#selector-link">:link</a></code> and <code title="selector-visited"><a href="#selector-visited">:visited</a></code>.</p>
                   6011: 
                   6012:     <p>Other specifications might apply more specific rules regarding
                   6013:     how these elements are to match these pseudo-classes, to mitigate
                   6014:     some privacy concerns that apply with straightforward
                   6015:     implementations of this requirement.</p>
                   6016: 
                   6017:    </dd>
                   6018: 
                   6019: 
                   6020:    <dt><dfn id="selector-active" title="selector-active"><code>:active</code></dfn></dt>
                   6021: 
                   6022:    <dd>
                   6023: 
                   6024:     <p>The <code title="selector-active"><a href="#selector-active">:active</a></code> pseudo-class
                   6025:     is defined to match an element <q cite="http://dev.w3.org/csswg/selectors3/#the-user-action-pseudo-classes-hover-act">while
                   6026:     an element is <i>being activated</i> by the user</q>. For the
                   6027:     purposes of defining the <code title="selector-active"><a href="#selector-active">:active</a></code> pseudo-class only, an HTML
                   6028:     user agent must consider an element as <i>being activated</i> if
                   6029:     it is:</p>
                   6030: 
                   6031:     <ul><li>
                   6032: 
                   6033:       <p>An element falling into one of the following categories
                   6034:       between the time the user begins to indicate an intent to
                   6035:       trigger the element's <a href="content-models.html#activation-behavior">activation behavior</a> and
                   6036:       either the time the user stops indicating an intent to trigger
                   6037:       the element's <a href="content-models.html#activation-behavior">activation behavior</a>, or the time the
                   6038:       element's <a href="content-models.html#activation-behavior">activation behavior</a> has finished running,
                   6039:       which ever comes first:</p>
                   6040: 
                   6041:       <ul><li><code><a href="the-a-element.html#the-a-element">a</a></code> elements that have an <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute</li>
                   6042: 
                   6043:        <li><code><a href="the-area-element.html#the-area-element">area</a></code> elements that have an <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute</li>
                   6044: 
                   6045:        <li><code><a href="the-link-element.html#the-link-element">link</a></code> elements that have an <code title="attr-link-href"><a href="the-link-element.html#attr-link-href">href</a></code> attribute</li>
                   6046: 
                   6047:        <li><code><a href="the-button-element.html#the-button-element">button</a></code> elements that are not <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a></li>
                   6048: 
                   6049:        <li><code><a href="the-input-element.html#the-input-element">input</a></code> elements whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#submit-button-state-(type=submit)" title="attr-input-type-submit">Submit Button</a>, <a href="states-of-the-type-attribute.html#image-button-state-(type=image)" title="attr-input-type-image">Image Button</a>, <a href="states-of-the-type-attribute.html#reset-button-state-(type=reset)" title="attr-input-type-reset">Reset Button</a>, or <a href="states-of-the-type-attribute.html#button-state-(type=button)" title="attr-input-type-button">Button</a> state</li>
                   6050: 
                   6051:        <li><code><a href="#the-command-element">command</a></code> elements that do not have a <code title="attr-command-disabled"><a href="#attr-command-disabled">disabled</a></code> attribute</li>
                   6052: 
                   6053:        <li>elements that have their <a href="#specially-focusable">tabindex focus flag</a> set</li>
                   6054: 
                   6055:       </ul><p class="example">For example, if the user is using a keyboard
                   6056:       to push a <code><a href="the-button-element.html#the-button-element">button</a></code> element by pressing the space bar,
                   6057:       the element would match this pseudo-class in between the time
                   6058:       that the element received the <code title="event-keydown">keydown</code> event and the time the
                   6059:       element received the <code title="event-keyup">keyup</code>
                   6060:       event.</p>
                   6061: 
                   6062:      </li>
                   6063: 
                   6064:      <li>
                   6065: 
                   6066:       <p>An element that the user indicates using a pointing device
                   6067:       while that pointing device is in the "down" state (e.g. for a
                   6068:       mouse, between the time the mouse button is pressed and the time
                   6069:       it is depressed).</p>
                   6070: 
                   6071:      </li>
                   6072: 
                   6073:      <li>
                   6074: 
                   6075:       <p>An element that has a descendant that is currently matching
                   6076:       the <code title="selector-active"><a href="#selector-active">:active</a></code>
                   6077:       pseudo-class.</p>
                   6078: 
                   6079:      </li>
                   6080: 
                   6081:     </ul></dd>
                   6082: 
                   6083: 
                   6084:    <dt><dfn id="selector-hover" title="selector-hover"><code>:hover</code></dfn></dt>
                   6085: 
                   6086:    <dd>
                   6087: 
                   6088:     <p>The <code title="selector-hover"><a href="#selector-hover">:hover</a></code> pseudo-class is
                   6089:     defined to match an element <q cite="http://dev.w3.org/csswg/selectors3/#the-user-action-pseudo-classes-hover-act">while
                   6090:     the user <i>designates</i> an element with a pointing device</q>.
                   6091:     For the purposes of defining the <code title="selector-hover"><a href="#selector-hover">:hover</a></code> pseudo-class only, an HTML
                   6092:     user agent must consider an element as being one that the user
                   6093:     <i>designates</i> if it is:</p>
                   6094: 
                   6095:     <ul><li>
                   6096: 
                   6097:       <p>An element that the user indicates using a pointing device.</p>
                   6098: 
                   6099:      </li>
                   6100: 
                   6101:      <li>
                   6102: 
                   6103:       <p>An element that has a descendant that the user indicates
                   6104:       using a pointing device.</p>
                   6105: 
                   6106:      </li>
                   6107: 
                   6108:      <li>
                   6109: 
                   6110:       <p>An element that is the <a href="the-label-element.html#labeled-control">labeled control</a> of a
                   6111:       <code><a href="the-label-element.html#the-label-element">label</a></code> element that is currently matching <a href="#selector-hover" title="selector-hover">:hover</a>.</p>
                   6112: 
                   6113:      </li>
                   6114: 
                   6115:     </ul><!--
                   6116: Demos:
                   6117:  http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1315
                   6118:  http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1316
                   6119:  http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1317
                   6120: --><div class="example">
                   6121: 
                   6122:      <p>Consider in particular a fragment such as:</p>
                   6123: 
                   6124:      <pre>&lt;p&gt; &lt;label for=c&gt; &lt;input id=a&gt; &lt;/label&gt; &lt;span id=b&gt; &lt;input id=c&gt; &lt;/span&gt; &lt;/p&gt;</pre>
                   6125: 
                   6126:      <p>If the user designates the element with ID "<code title="">a</code>" with their pointing device, then the
                   6127:      <code><a href="the-p-element.html#the-p-element">p</a></code> element (and all its ancestors not shown in the
                   6128:      snippet above), the <code><a href="the-label-element.html#the-label-element">label</a></code> element, the element with
                   6129:      ID "<code title="">a</code>", and the element with ID "<code title="">c</code>" will match the <a href="#selector-hover" title="selector-hover">:hover</a> pseudo-class. The element
                   6130:      with ID "<code title="">a</code>" matches it from condition 1,
                   6131:      the <code><a href="the-label-element.html#the-label-element">label</a></code> and <code><a href="the-p-element.html#the-p-element">p</a></code> elements match it
                   6132:      because of condition 2 (one of their descendants is designated),
                   6133:      and the element with ID "<code title="">c</code>" matches it
                   6134:      through condition 3 (its <code><a href="the-label-element.html#the-label-element">label</a></code> element matches <a href="#selector-hover" title="selector-hover">:hover</a>). However, the element with
                   6135:      ID "<code title="">b</code>" does <em>not</em> match <a href="#selector-hover" title="selector-hover">:hover</a>: its descendant is not
                   6136:      designated, even though it matches <a href="#selector-hover" title="selector-hover">:hover</a>.</p>
                   6137: 
                   6138:     </div>
                   6139: 
                   6140:    </dd>
                   6141: 
                   6142: 
                   6143:    <dt><dfn id="selector-enabled" title="selector-enabled"><code>:enabled</code></dfn></dt>
                   6144: 
                   6145:    <dd>
                   6146: 
                   6147:     <p>The <code title="selector-enabled"><a href="#selector-enabled">:enabled</a></code> pseudo-class
                   6148:     must match any element falling into one of the following
                   6149:     categories:</p>
                   6150: 
                   6151:     <ul><li><code><a href="the-a-element.html#the-a-element">a</a></code> elements that have an <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute</li>
                   6152: 
                   6153:      <li><code><a href="the-area-element.html#the-area-element">area</a></code> elements that have an <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute</li>
                   6154: 
                   6155:      <li><code><a href="the-link-element.html#the-link-element">link</a></code> elements that have an <code title="attr-link-href"><a href="the-link-element.html#attr-link-href">href</a></code> attribute</li>
                   6156: 
                   6157:      <li><code><a href="the-button-element.html#the-button-element">button</a></code> elements that are not <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a></li>
                   6158: 
                   6159:      <li><code><a href="the-input-element.html#the-input-element">input</a></code> elements that are not <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a></li>
                   6160: 
                   6161:      <li><code><a href="the-select-element.html#the-select-element">select</a></code> elements that are not <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a></li>
                   6162: 
                   6163:      <li><code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> elements that are not <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a></li>
                   6164: 
                   6165:      <li><code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code> elements that do not have a <code title="attr-optgroup-disabled"><a href="the-optgroup-element.html#attr-optgroup-disabled">disabled</a></code> attribute</li>
                   6166: 
                   6167:      <li><code><a href="the-option-element.html#the-option-element">option</a></code> elements that are not <a href="the-option-element.html#concept-option-disabled" title="concept-option-disabled">disabled</a></li>
                   6168: 
                   6169:      <li><code><a href="#the-command-element">command</a></code> elements that do not have a <code title="attr-command-disabled"><a href="#attr-command-disabled">disabled</a></code> attribute</li>
                   6170: 
                   6171:      <li><code><a href="the-li-element.html#the-li-element">li</a></code> elements that are children of
                   6172:      <code><a href="#the-menu-element">menu</a></code> elements, and that have a child element that
                   6173:      defines a <a href="#concept-command" title="concept-command">command</a>, if the
                   6174:      first such element's <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled State</a> facet
                   6175:      is false (not disabled)</li>
                   6176: 
                   6177:      <li><code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code> elements that do not have a <code title="attr-fieldset-disabled"><a href="the-fieldset-element.html#attr-fieldset-disabled">disabled</a></code> attribute</li>
                   6178: 
                   6179:     </ul></dd>
                   6180: 
                   6181: 
                   6182:    <dt><dfn id="selector-disabled" title="selector-disabled"><code>:disabled</code></dfn></dt>
                   6183: 
                   6184:    <dd>
                   6185: 
                   6186:     <p>The <code title="selector-disabled"><a href="#selector-disabled">:disabled</a></code>
                   6187:     pseudo-class must match any element falling into one of the
                   6188:     following categories:</p>
                   6189: 
                   6190:     <ul><li><code><a href="the-button-element.html#the-button-element">button</a></code> elements that are <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a></li>
                   6191: 
                   6192:      <li><code><a href="the-input-element.html#the-input-element">input</a></code> elements that are <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a></li>
                   6193: 
                   6194:      <li><code><a href="the-select-element.html#the-select-element">select</a></code> elements that are <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a></li>
                   6195: 
                   6196:      <li><code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> elements that are <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a></li>
                   6197: 
                   6198:      <li><code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code> elements that have a <code title="attr-optgroup-disabled"><a href="the-optgroup-element.html#attr-optgroup-disabled">disabled</a></code> attribute</li>
                   6199: 
                   6200:      <li><code><a href="the-option-element.html#the-option-element">option</a></code> elements that are <a href="the-option-element.html#concept-option-disabled" title="concept-option-disabled">disabled</a></li>
                   6201: 
                   6202:      <li><code><a href="#the-command-element">command</a></code> elements that have a <code title="attr-command-disabled"><a href="#attr-command-disabled">disabled</a></code> attribute</li>
                   6203: 
                   6204:      <li><code><a href="the-li-element.html#the-li-element">li</a></code> elements that are children of
                   6205:      <code><a href="#the-menu-element">menu</a></code> elements, and that have a child element that
                   6206:      defines a <a href="#concept-command" title="concept-command">command</a>, if the
                   6207:      first such element's <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled State</a> facet
                   6208:      is true (disabled)</li>
                   6209: 
                   6210:      <li><code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code> elements that have a <code title="attr-fieldset-disabled"><a href="the-fieldset-element.html#attr-fieldset-disabled">disabled</a></code> attribute</li>
                   6211: 
                   6212:     </ul></dd>
                   6213: 
                   6214: 
                   6215:    <dt><dfn id="selector-checked" title="selector-checked"><code>:checked</code></dfn></dt>
                   6216: 
                   6217:    <dd>
                   6218: 
                   6219:     <p>The <code title="selector-checked"><a href="#selector-checked">:checked</a></code> pseudo-class
                   6220:     must match any element falling into one of the following
                   6221:     categories:</p>
                   6222: 
                   6223:     <ul><li><code><a href="the-input-element.html#the-input-element">input</a></code> elements whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#checkbox-state-(type=checkbox)" title="attr-input-type-checkbox">Checkbox</a> state and whose
                   6224:      <a href="attributes-common-to-form-controls.html#concept-fe-checked" title="concept-fe-checked">checkedness</a> state is
                   6225:      true</li>
                   6226: 
                   6227:      <li><code><a href="the-input-element.html#the-input-element">input</a></code> elements whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#radio-button-state-(type=radio)" title="attr-input-type-radio">Radio Button</a> state and whose
                   6228:      <a href="attributes-common-to-form-controls.html#concept-fe-checked" title="concept-fe-checked">checkedness</a> state is
                   6229:      true</li>
                   6230: 
                   6231:      <li><code><a href="the-option-element.html#the-option-element">option</a></code> elements whose <a href="the-option-element.html#concept-option-selectedness" title="concept-option-selectedness">selectedness</a> is
                   6232:      true</li>
                   6233: 
                   6234:      <li><code><a href="#the-command-element">command</a></code> elements whose <code title="attr-command-type"><a href="#attr-command-type">type</a></code> attribute is in the <a href="#attr-command-type-state-checkbox" title="attr-command-type-state-checkbox">Checkbox</a> state
                   6235:      and that have a <code title="attr-command-checked"><a href="#attr-command-checked">checked</a></code>
                   6236:      attribute</li>
                   6237: 
                   6238:      <li><code><a href="#the-command-element">command</a></code> elements whose <code title="attr-command-type"><a href="#attr-command-type">type</a></code> attribute is in the <a href="#attr-command-type-state-radio" title="attr-command-type-state-radio">Radio</a> state and that
                   6239:      have a <code title="attr-command-checked"><a href="#attr-command-checked">checked</a></code>
                   6240:      attribute</li>
                   6241: 
                   6242:     </ul></dd>
                   6243: 
                   6244: 
                   6245:    <dt><dfn id="selector-indeterminate" title="selector-indeterminate"><code>:indeterminate</code></dfn></dt>
                   6246: 
                   6247:    <dd>
                   6248: 
                   6249:     <!-- does this pseudo-class even exist? -->
                   6250: 
                   6251:     <p>The <code title="selector-indeterminate"><a href="#selector-indeterminate">:indeterminate</a></code>
                   6252:     pseudo-class must match any element falling into one of the
                   6253:     following categories:</p>
                   6254: 
                   6255:     <ul><li><code><a href="the-input-element.html#the-input-element">input</a></code> elements whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#checkbox-state-(type=checkbox)" title="attr-input-type-checkbox">Checkbox</a> state and whose
                   6256:      <code title="dom-input-indeterminate"><a href="the-input-element.html#dom-input-indeterminate">indeterminate</a></code> IDL
                   6257:      attribute is set to true</li>
                   6258: 
                   6259:      <li><code><a href="the-progress-element.html#the-progress-element">progress</a></code> elements with no <code title="attr-progress-value"><a href="the-progress-element.html#attr-progress-value">value</a></code> content attribute</li>
                   6260: 
                   6261:     </ul></dd>
                   6262: 
                   6263: 
                   6264:    <dt><dfn id="selector-default" title="selector-default"><code>:default</code></dfn></dt>
                   6265: 
                   6266:    <dd>
                   6267: 
                   6268:     <p>The <code title="selector-default"><a href="#selector-default">:default</a></code> pseudo-class
                   6269:     must match any element falling into one of the following
                   6270:     categories:</p>
                   6271: 
                   6272:     <ul><li><code><a href="the-button-element.html#the-button-element">button</a></code> elements that are their form's
                   6273:      <a href="#default-button">default button</a></li>
                   6274: 
                   6275:      <li><code><a href="the-input-element.html#the-input-element">input</a></code> elements whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#submit-button-state-(type=submit)" title="attr-input-type-submit">Submit Button</a> or <a href="states-of-the-type-attribute.html#image-button-state-(type=image)" title="attr-input-type-image">Image Button</a> state, and that
                   6276:      are their form's <a href="#default-button">default button</a></li>
                   6277: 
                   6278:      <li><code><a href="the-input-element.html#the-input-element">input</a></code> elements to which the <code title="attr-input-checked"><a href="the-input-element.html#attr-input-checked">checked</a></code> attribute applies and
                   6279:      that have a <code title="attr-input-checked"><a href="the-input-element.html#attr-input-checked">checked</a></code>
                   6280:      attribute</li>
                   6281: 
                   6282:      <li><code><a href="the-option-element.html#the-option-element">option</a></code> elements that have a <code title="attr-option-selected"><a href="the-option-element.html#attr-option-selected">selected</a></code> attribute</li>
                   6283: <!--
                   6284:      <li><code>command</code> elements that have a <code
                   6285:      title="attr-command-default">default</code> attribute</li>
                   6286: -->
                   6287:     </ul></dd>
                   6288: 
                   6289: 
                   6290:    <dt><dfn id="selector-valid" title="selector-valid"><code>:valid</code></dfn></dt>
                   6291: 
                   6292:    <dd>
                   6293: 
                   6294:     <p>The <code title="selector-valid"><a href="#selector-valid">:valid</a></code> pseudo-class
                   6295:     must match any element falling into one of the following
                   6296:     categories:</p>
                   6297: 
                   6298:     <ul><li>elements that are <a href="#candidate-for-constraint-validation" title="candidate for constraint
                   6299:      validation">candidates for constraint validation</a> and that
                   6300:      <a href="#concept-fv-valid" title="concept-fv-valid">satisfy their
                   6301:      constraints</a></li>
                   6302: 
                   6303:      <li><code><a href="the-form-element.html#the-form-element">form</a></code> elements that are not the <a href="association-of-controls-and-forms.html#form-owner">form
                   6304:      owner</a> of any elements that themselves are <a href="#candidate-for-constraint-validation" title="candidate for constraint validation">candidates for
                   6305:      constraint validation</a> but do not <a href="#concept-fv-valid" title="concept-fv-valid">satisfy their constraints</a></li>
                   6306: 
                   6307:     </ul></dd>
                   6308: 
                   6309: 
                   6310:    <dt><dfn id="selector-invalid" title="selector-invalid"><code>:invalid</code></dfn></dt>
                   6311: 
                   6312:    <dd>
                   6313: 
                   6314:     <p>The <code title="selector-invalid"><a href="#selector-invalid">:invalid</a></code> pseudo-class
                   6315:     must match any element falling into one of the following
                   6316:     categories:</p>
                   6317: 
                   6318:     <ul><li>elements that are <a href="#candidate-for-constraint-validation" title="candidate for constraint
                   6319:      validation">candidates for constraint validation</a> but that
                   6320:      do not <a href="#concept-fv-valid" title="concept-fv-valid">satisfy their
                   6321:      constraints</a></li>
                   6322: 
                   6323:      <li><code><a href="the-form-element.html#the-form-element">form</a></code> elements that are the <a href="association-of-controls-and-forms.html#form-owner">form
                   6324:      owner</a> of one or more elements that themselves are <a href="#candidate-for-constraint-validation" title="candidate for constraint validation">candidates for
                   6325:      constraint validation</a> but do not <a href="#concept-fv-valid" title="concept-fv-valid">satisfy their constraints</a></li>
                   6326: 
                   6327:     </ul></dd>
                   6328: 
                   6329: 
                   6330:    <dt><dfn id="selector-in-range" title="selector-in-range"><code>:in-range</code></dfn></dt>
                   6331: 
                   6332:    <dd>
                   6333: 
                   6334:     <p>The <code title="selector-in-range"><a href="#selector-in-range">:in-range</a></code>
                   6335:     pseudo-class must match all elements that are <a href="#candidate-for-constraint-validation" title="candidate for constraint validation">candidates for
                   6336:     constraint validation</a>, <a href="common-input-element-attributes.html#have-range-limitations">have range limitations</a>,
                   6337:     and that are neither <a href="#suffering-from-an-underflow">suffering from an underflow</a> nor
                   6338:     <a href="#suffering-from-an-overflow">suffering from an overflow</a>.</p>
                   6339: 
                   6340:    </dd>
                   6341: 
                   6342: 
                   6343:    <dt><dfn id="selector-out-of-range" title="selector-out-of-range"><code>:out-of-range</code></dfn></dt>
                   6344: 
                   6345:    <dd>
                   6346: 
                   6347:     <p>The <code title="selector-out-of-range"><a href="#selector-out-of-range">:out-of-range</a></code>
                   6348:     pseudo-class must match all elements that are <a href="#candidate-for-constraint-validation" title="candidate for constraint validation">candidates for
                   6349:     constraint validation</a>, <a href="common-input-element-attributes.html#have-range-limitations">have range limitations</a>,
                   6350:     and that are either <a href="#suffering-from-an-underflow">suffering from an underflow</a> or
                   6351:     <a href="#suffering-from-an-overflow">suffering from an overflow</a>.</p>
                   6352: 
                   6353:    </dd>
                   6354: 
                   6355: 
                   6356:    <dt><dfn id="selector-required" title="selector-required"><code>:required</code></dfn></dt>
                   6357: 
                   6358:    <dd>
                   6359: 
                   6360:     <p>The <code title="selector-required"><a href="#selector-required">:required</a></code>
                   6361:     pseudo-class must match any element falling into one of the
                   6362:     following categories:</p>
                   6363: 
                   6364:     <ul><li><code><a href="the-input-element.html#the-input-element">input</a></code> elements that are <i title="concept-input-required"><a href="common-input-element-attributes.html#concept-input-required">required</a></i></li>
                   6365: 
                   6366:      <li><code><a href="the-select-element.html#the-select-element">select</a></code> elements that have a <code title="attr-select-required"><a href="the-select-element.html#attr-select-required">required</a></code>
                   6367:      attribute</li>
                   6368: 
                   6369:      <li><code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> elements that have a <code title="attr-textarea-required"><a href="the-textarea-element.html#attr-textarea-required">required</a></code>
                   6370:      attribute</li>
                   6371: 
                   6372:     </ul></dd>
                   6373: 
                   6374: 
                   6375:    <dt><dfn id="selector-optional" title="selector-optional"><code>:optional</code></dfn></dt>
                   6376: 
                   6377:    <dd>
                   6378: 
                   6379:     <p>The <code title="selector-optional"><a href="#selector-optional">:optional</a></code>
                   6380:     pseudo-class must match any element falling into one of the
                   6381:     following categories:</p>
                   6382: 
                   6383:     <ul><li><code><a href="the-input-element.html#the-input-element">input</a></code> elements to which the <code title="attr-input-required"><a href="common-input-element-attributes.html#attr-input-required">required</a></code> attribute applies
                   6384:      that are not <i title="concept-input-required"><a href="common-input-element-attributes.html#concept-input-required">required</a></i></li>
                   6385: 
                   6386:      <li><code><a href="the-select-element.html#the-select-element">select</a></code> elements that do not have a <code title="attr-select-required"><a href="the-select-element.html#attr-select-required">required</a></code> attribute</li>
                   6387: 
                   6388:      <li><code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> elements that do not have a <code title="attr-textarea-required"><a href="the-textarea-element.html#attr-textarea-required">required</a></code>
                   6389:      attribute</li>
                   6390: 
                   6391:     </ul></dd>
                   6392: 
                   6393: 
                   6394:    <dt><dfn id="selector-read-only" title="selector-read-only"><code>:read-only</code></dfn></dt>
                   6395:    <dt><dfn id="selector-read-write" title="selector-read-write"><code>:read-write</code></dfn></dt>
                   6396: 
                   6397:    <dd>
                   6398: 
                   6399:     <p>The <code title="selector-read-write"><a href="#selector-read-write">:read-write</a></code>
                   6400:     pseudo-class must match any element falling into one of the
                   6401:     following categories:</p>
                   6402: 
                   6403:     <ul><li><code><a href="the-input-element.html#the-input-element">input</a></code> elements to which the <code title="attr-input-readonly"><a href="common-input-element-attributes.html#attr-input-readonly">readonly</a></code> attribute applies,
                   6404:      but that are not <i title="concept-input-immutable"><a href="the-input-element.html#concept-input-immutable">immutable</a></i>
                   6405:      (i.e. that do not have the <code title="attr-input-readonly"><a href="common-input-element-attributes.html#attr-input-readonly">readonly</a></code> attribute specified
                   6406:      and that are not <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a>)</li>
                   6407: 
                   6408:      <li><code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> elements that do not have a <code title="attr-textarea-readonly"><a href="the-textarea-element.html#attr-textarea-readonly">readonly</a></code> attribute, and
                   6409:      that are not <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a></li>
                   6410: 
                   6411:      <li>elements that are <a href="#editing-host" title="editing host">editing
                   6412:      hosts</a> or <a href="#editable">editable</a> and are neither
                   6413:      <code><a href="the-input-element.html#the-input-element">input</a></code> elements nor <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>
                   6414:      elements</li>
                   6415: 
                   6416:     </ul><p>The <code title="selector-read-only"><a href="#selector-read-only">:read-only</a></code>
                   6417:     pseudo-class must match all other <a href="infrastructure.html#html-elements">HTML elements</a>.</p>
                   6418: 
                   6419:    </dd>
                   6420: 
                   6421: 
                   6422:    <dt><dfn id="selector-ltr" title="selector-ltr"><code>:dir(ltr)</code></dfn></dt>
                   6423: 
                   6424:    <dd>
                   6425: 
                   6426:     <p>The <code title="selector-ltr"><a href="#selector-ltr">:dir(ltr)</a></code> pseudo-class must
                   6427:     match all elements whose <a href="global-attributes.html#the-directionality" title="the
                   6428:     directionality">directionality</a> is '<a href="global-attributes.html#concept-ltr" title="concept-ltr">ltr</a>'.</p>
                   6429: 
                   6430:    </dd>
                   6431: 
                   6432:    <dt><dfn id="selector-rtl" title="selector-rtl"><code>:dir(rtl)</code></dfn></dt>
                   6433: 
                   6434:    <dd>
                   6435: 
                   6436:     <p>The <code title="selector-rtl"><a href="#selector-rtl">:dir(rtl)</a></code> pseudo-class must
                   6437:     match all elements whose <a href="global-attributes.html#the-directionality" title="the
                   6438:     directionality">directionality</a> is '<a href="global-attributes.html#concept-rtl" title="concept-rtl">rtl</a>'.</p>
                   6439: 
                   6440:    </dd>
                   6441: 
                   6442:   </dl><p class="note">Another section of this specification defines the
                   6443:   <i><a href="#target-element">target element</a></i> used with the <code title="selector-target">:target</code> pseudo-class.</p>
                   6444: 
                   6445:   <p class="note">This specification does not define when an element
                   6446:   matches the <code title="selector-focus">:focus</code> or <code title="selector-lang()">:lang()</code> dynamic pseudo-classes, as
                   6447:   those are all defined in sufficient detail in a language-agnostic
                   6448:   fashion in the Selectors specification. <a href="#refsSELECTORS">[SELECTORS]</a></p>
                   6449: 
                   6450:   </div>
                   6451: 
                   6452: <!--MD-->
                   6453: 
                   6454: 
                   6455:   <h2 id="browsers"><span class="secno">5 </span>Loading Web pages</h2>
                   6456: 
                   6457:   <div class="impl">
                   6458: 
                   6459:   <p>This section describes features that apply most directly to Web
                   6460:   browsers. Having said that, except where specified otherwise, the
                   6461:   requirements defined in this section <em>do</em> apply to all user
                   6462:   agents, whether they are Web browsers or not.</p>
                   6463: 
                   6464:   </div>
                   6465: 
                   6466: 
                   6467: 
                   6468:   <h3 id="windows"><span class="secno">5.1 </span>Browsing contexts</h3>
                   6469: 
                   6470:   <p>A <dfn id="browsing-context">browsing context</dfn> is an environment in which
                   6471:   <code><a href="dom.html#document">Document</a></code> objects are presented to the user.</p>
                   6472: 
                   6473:   <p class="note">A tab or window in a Web browser typically contains
                   6474:   a <a href="#browsing-context">browsing context</a>, as does an <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code><span class="impl"> or <code><a href="#frame">frame</a></code>s in a
                   6475:   <code><a href="#frameset">frameset</a></code></span>.</p>
                   6476: 
                   6477:   <p>Each <a href="#browsing-context">browsing context</a> has a corresponding
                   6478:   <code><a href="#windowproxy">WindowProxy</a></code> object.</p>
                   6479: 
                   6480:   <p>A <a href="#browsing-context">browsing context</a> has a <a href="#session-history">session
                   6481:   history</a>, which lists the <code><a href="dom.html#document">Document</a></code> objects that
                   6482:   that <a href="#browsing-context">browsing context</a> has presented, is presenting, or
                   6483:   will present. At any time, one <code><a href="dom.html#document">Document</a></code> in each
                   6484:   <a href="#browsing-context">browsing context</a> is designated the <dfn id="active-document">active
                   6485:   document</dfn>. A <code><a href="dom.html#document">Document</a></code>'s <a href="#browsing-context">browsing
                   6486:   context</a> is that <a href="#browsing-context">browsing context</a> whose
                   6487:   <a href="#session-history">session history</a> contains the <code><a href="dom.html#document">Document</a></code>, if
                   6488:   any. (A <code><a href="dom.html#document">Document</a></code> created using an API such as <code title="dom-DOMImplementation-createDocument"><a href="infrastructure.html#dom-domimplementation-createdocument">createDocument()</a></code>
                   6489:   has no <a href="#browsing-context">browsing context</a>.)</p>
                   6490: 
                   6491:   <p>Each <code><a href="dom.html#document">Document</a></code> is associated with a
                   6492:   <code><a href="#window">Window</a></code> object. A <a href="#browsing-context">browsing context</a>'s
                   6493:   <code><a href="#windowproxy">WindowProxy</a></code> object forwards everything to the
                   6494:   <a href="#browsing-context">browsing context</a>'s <a href="#active-document">active document</a>'s
                   6495:   <code><a href="#window">Window</a></code> object.</p>
                   6496: 
                   6497:   <p class="note">In general, there is a 1-to-1 mapping from the
                   6498:   <code><a href="#window">Window</a></code> object to the <code><a href="dom.html#document">Document</a></code> object.
                   6499:   There are two exceptions. First, a <code><a href="#window">Window</a></code> can be reused
                   6500:   for the presentation of a second <code><a href="dom.html#document">Document</a></code> in the same
                   6501:   <a href="#browsing-context">browsing context</a>, such that the mapping is then 1-to-2.
                   6502:   This occurs when a <a href="#browsing-context">browsing context</a> is <a href="#navigate" title="navigate">navigated</a> from the initial
                   6503:   <code><a href="urls.html#about:blank">about:blank</a></code> <code><a href="dom.html#document">Document</a></code> to another, with
                   6504:   <a href="#replacement-enabled">replacement enabled</a>. Second, a <code><a href="dom.html#document">Document</a></code>
                   6505:   can end up being reused for several <code><a href="#window">Window</a></code> objects when
                   6506:   the <code title="dom-document-open"><a href="dynamic-markup-insertion.html#dom-document-open">document.open()</a></code> method is
                   6507:   used, such that the mapping is then many-to-1.</p>
                   6508: 
                   6509:   <p class="note">A <code><a href="dom.html#document">Document</a></code> does not necessarily have a
                   6510:   <a href="#browsing-context">browsing context</a> associated with it. In particular,
                   6511:   data mining tools are likely to never instantiate browsing
                   6512:   contexts.</p>
                   6513: 
                   6514:   <hr><p>A <a href="#browsing-context">browsing context</a> can have a <dfn id="creator-browsing-context">creator browsing
                   6515:   context</dfn>, the <a href="#browsing-context">browsing context</a> that was
                   6516:   responsible for its creation. If a <a href="#browsing-context">browsing context</a> has
                   6517:   a <a href="#parent-browsing-context">parent browsing context</a>, then that is its
                   6518:   <a href="#creator-browsing-context">creator browsing context</a>. Otherwise, if the
                   6519:   <a href="#browsing-context">browsing context</a> has an <a href="#opener-browsing-context">opener browsing
                   6520:   context</a>, then <em>that</em> is its <a href="#creator-browsing-context">creator browsing
                   6521:   context</a>. Otherwise, the <a href="#browsing-context">browsing context</a> has no
                   6522:   <a href="#creator-browsing-context">creator browsing context</a>.</p>
                   6523: 
                   6524:   <p>If a <a href="#browsing-context">browsing context</a> <var title="">A</var> has a
                   6525:   <a href="#creator-browsing-context">creator browsing context</a>, then the
                   6526:   <code><a href="dom.html#document">Document</a></code> that was the <a href="#active-document">active document</a> of
                   6527:   that <a href="#creator-browsing-context">creator browsing context</a> at the time <var title="">A</var> was created is the <dfn id="creator-document">creator
                   6528:   <code>Document</code></dfn>.</p>
                   6529: 
                   6530:   <div class="impl">
                   6531: 
                   6532:   <p>When a <a href="#browsing-context">browsing context</a> is first created, it must be
                   6533:   created with a single <code><a href="dom.html#document">Document</a></code> in its session history,
                   6534:   whose <a href="dom.html#the-document's-address" title="the document's address">address</a> is
                   6535:   <code><a href="urls.html#about:blank">about:blank</a></code>, which is marked as being an <a href="infrastructure.html#html-documents" title="HTML documents">HTML document</a>, whose <a href="infrastructure.html#document's-character-encoding" title="document's character encoding">character encoding</a> is
                   6536:   UTF-8, and which is both <a href="#ready-for-post-load-tasks">ready for post-load tasks</a> and
                   6537:   <a href="#completely-loaded">completely loaded</a> immediately. The
                   6538:   <code><a href="dom.html#document">Document</a></code> must have a single child <code><a href="the-html-element.html#the-html-element">html</a></code>
                   6539:   node, which itself has a single child <code><a href="the-body-element.html#the-body-element">body</a></code> node.</p>
                   6540: 
                   6541:   <p class="note">If the <a href="#browsing-context">browsing context</a> is created
                   6542:   specifically to be immediately navigated, then that initial
                   6543:   navigation will have <a href="#replacement-enabled">replacement enabled</a>.</p>
                   6544: 
                   6545:   <p id="about-blank-origin">The <a href="#origin-0">origin</a> and
                   6546:   <a href="#effective-script-origin">effective script origin</a> of the <code><a href="urls.html#about:blank">about:blank</a></code>
                   6547:   <code><a href="dom.html#document">Document</a></code> are set when the <code><a href="dom.html#document">Document</a></code> is
                   6548:   created. If the new <a href="#browsing-context">browsing context</a> has a
                   6549:   <a href="#creator-browsing-context">creator browsing context</a>, then the <a href="#origin-0">origin</a>
                   6550:   of the <code><a href="urls.html#about:blank">about:blank</a></code> <code><a href="dom.html#document">Document</a></code> is an <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the <a href="#origin-0">origin</a>
                   6551:   of the <a href="#creator-document">creator <code>Document</code></a> and the
                   6552:   <a href="#effective-script-origin">effective script origin</a> of the <code><a href="urls.html#about:blank">about:blank</a></code>
                   6553:   <code><a href="dom.html#document">Document</a></code> is initially an <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the <a href="#effective-script-origin">effective
                   6554:   script origin</a> of the <a href="#creator-document">creator
                   6555:   <code>Document</code></a>. Otherwise, the <a href="#origin-0">origin</a> of
                   6556:   the <code><a href="urls.html#about:blank">about:blank</a></code> <code><a href="dom.html#document">Document</a></code> is a globally
                   6557:   unique identifier assigned when the new <a href="#browsing-context">browsing
                   6558:   context</a> is created and the <a href="#effective-script-origin">effective script
                   6559:   origin</a> of the <code><a href="urls.html#about:blank">about:blank</a></code> <code><a href="dom.html#document">Document</a></code>
                   6560:   is initially an <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to
                   6561:   its <a href="#origin-0">origin</a>.</p>
                   6562: 
                   6563:   </div>
                   6564: 
                   6565: 
                   6566:   <h4 id="nested-browsing-contexts"><span class="secno">5.1.1 </span>Nested browsing contexts</h4>
                   6567: 
                   6568:   <p>Certain elements (for example, <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> elements) can
                   6569:   instantiate further <a href="#browsing-context" title="browsing context">browsing
                   6570:   contexts</a>. These are called <dfn id="nested-browsing-context" title="nested browsing
                   6571:   context">nested browsing contexts</dfn>. If a browsing context <var title="">P</var> has a <code><a href="dom.html#document">Document</a></code> <var title="">D</var>
                   6572:   with an element <var title="">E</var> that nests another browsing
                   6573:   context <var title="">C</var> inside it, then <var title="">C</var>
                   6574:   is said to be <dfn id="browsing-context-nested-through" title="browsing context nested through">nested
                   6575:   through</dfn> <var title="">D</var>, and <var title="">E</var> is
                   6576:   said to be the <dfn id="browsing-context-container">browsing context container</dfn> of <var title="">C</var>. If the <a href="#browsing-context-container">browsing context container</a>
                   6577:   element <var title="">E</var> is <a href="infrastructure.html#in-a-document" title="in a
                   6578:   Document">in</a> the <code><a href="dom.html#document">Document</a></code> <var title="">D</var>,
                   6579:   then <var title="">P</var> is said to be the <dfn id="parent-browsing-context">parent browsing
                   6580:   context</dfn> of <var title="">C</var> and <var title="">C</var> is
                   6581:   said to be a <dfn id="child-browsing-context">child browsing context</dfn> of <var title="">P</var>. Otherwise, the <a href="#nested-browsing-context">nested browsing
                   6582:   context</a> <var title="">C</var> has no <a href="#parent-browsing-context">parent browsing
                   6583:   context</a>.</p>
                   6584: 
                   6585:   <p>A browsing context <var title="">A</var> is said to be an <dfn id="ancestor-browsing-context" title="ancestor browsing context">ancestor</dfn> of a browsing
                   6586:   context <var title="">B</var> if there exists a browsing context
                   6587:   <var title="">A'</var> that is a <a href="#child-browsing-context">child browsing context</a>
                   6588:   of <var title="">A</var> and that is itself an <a href="#ancestor-browsing-context" title="ancestor
                   6589:   browsing context">ancestor</a> of <var title="">B</var>, or if
                   6590:   there is a browsing context <var title="">P</var> that is a
                   6591:   <a href="#child-browsing-context">child browsing context</a> of <var title="">A</var> and
                   6592:   that is the <a href="#parent-browsing-context">parent browsing context</a> of <var title="">B</var>.</p>
                   6593: 
                   6594:   <p>A browsing context that is not a <a href="#nested-browsing-context">nested browsing
                   6595:   context</a> has no <a href="#parent-browsing-context">parent browsing context</a>, and is
                   6596:   the <dfn id="top-level-browsing-context">top-level browsing context</dfn> of all the browsing
                   6597:   contexts for which it is an <a href="#ancestor-browsing-context">ancestor browsing
                   6598:   context</a>.</p>
                   6599: 
                   6600:   <p>The transitive closure of <a href="#parent-browsing-context" title="parent browsing
                   6601:   context">parent browsing contexts</a> for a <a href="#nested-browsing-context">nested browsing
                   6602:   context</a> gives the list of <a href="#ancestor-browsing-context" title="ancestor browsing
                   6603:   context">ancestor browsing contexts</a>.</p>
                   6604: 
                   6605:   <p>The <dfn id="list-of-the-descendant-browsing-contexts">list of the descendant browsing contexts</dfn> of a
                   6606:   <code><a href="dom.html#document">Document</a></code> <var title="">d</var> is the (ordered) list
                   6607:   returned by the following algorithm:</p>
                   6608: 
                   6609:   <ol><li><p>Let <var title="">list</var> be an empty list.</p></li>
                   6610: 
                   6611:    <li>
                   6612: 
                   6613:     <p>For each <a href="#child-browsing-context">child browsing context</a> of <var title="">d</var> that is <a href="#browsing-context-nested-through" title="browsing context nested
                   6614:     through">nested through</a> an element that is <a href="infrastructure.html#in-a-document" title="in
                   6615:     a document">in the <code>Document</code></a> <var title="">d</var>, in the <a href="infrastructure.html#tree-order">tree order</a> of the elements
                   6616:     nesting those <a href="#browsing-context" title="browsing context">browsing
                   6617:     contexts</a>, run these substeps:</p>
                   6618: 
                   6619:     <ol><li><p>Append that <a href="#child-browsing-context">child browsing context</a> to the
                   6620:      list <var title="">list</var>.</p>
                   6621: 
                   6622:      </li><li><p>Append the <a href="#list-of-the-descendant-browsing-contexts">list of the descendant browsing
                   6623:      contexts</a> of the <a href="#active-document">active document</a> of that
                   6624:      <a href="#child-browsing-context">child browsing context</a> to the list <var title="">list</var>.</p></li>
                   6625: 
                   6626:     </ol></li>
                   6627: 
                   6628:    <li><p>Return the constructed <var title="">list</var>.</p></li>
                   6629: 
                   6630:   </ol><p>A <code><a href="dom.html#document">Document</a></code> is said to be <dfn id="fully-active">fully active</dfn>
                   6631:   when it is the <a href="#active-document">active document</a> of its <a href="#browsing-context">browsing
                   6632:   context</a>, and either its browsing context is a <a href="#top-level-browsing-context">top-level
                   6633:   browsing context</a>, or it has a <a href="#parent-browsing-context">parent browsing
                   6634:   context</a> and the <code><a href="dom.html#document">Document</a></code> <a href="#browsing-context-nested-through" title="browsing
                   6635:   context nested through">through which</a> it is <a href="#nested-browsing-context" title="nested browsing context">nested</a> is itself <a href="#fully-active">fully
                   6636:   active</a>.</p>
                   6637: 
                   6638:   <p>Because they are nested through an element, <a href="#child-browsing-context" title="child
                   6639:   browsing context">child browsing contexts</a> are always tied to
                   6640:   a specific <code><a href="dom.html#document">Document</a></code> in their <a href="#parent-browsing-context">parent browsing
                   6641:   context</a>. User agents must not allow the user to interact with
                   6642:   <a href="#child-browsing-context" title="child browsing context">child browsing contexts</a>
                   6643:   of elements that are in <code><a href="dom.html#document">Document</a></code>s that are not
                   6644:   themselves <a href="#fully-active">fully active</a>.</p>
                   6645: 
                   6646:   <p>A <a href="#nested-browsing-context">nested browsing context</a> can have a <a href="the-iframe-element.html#seamless-browsing-context-flag">seamless
                   6647:   browsing context flag</a> set, if it is embedded through an
                   6648:   <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> element with a <code title="attr-iframe-seamless"><a href="the-iframe-element.html#attr-iframe-seamless">seamless</a></code> attribute.</p>
                   6649: 
                   6650:   <p class="note">A <a href="#nested-browsing-context">nested browsing context</a> can in some
                   6651:   cases be taken out of its <a href="#parent-browsing-context">parent browsing context</a> (e.g.
                   6652:   if an <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> element is removed from its
                   6653:   <code><a href="dom.html#document">Document</a></code>). In such a situation, the <a href="#nested-browsing-context">nested
                   6654:   browsing context</a> has no <a href="#parent-browsing-context">parent browsing context</a>,
                   6655:   but it still has the same <a href="#browsing-context-container">browsing context container</a>
                   6656:   and is still <a href="#browsing-context-nested-through" title="browsing context nested through">nested
                   6657:   through</a> that element's <code><a href="dom.html#document">Document</a></code>. Such a
                   6658:   <a href="#nested-browsing-context">nested browsing context</a> is <em>not</em> a
                   6659:   <a href="#top-level-browsing-context">top-level browsing context</a>, and cannot contain
                   6660:   <code><a href="dom.html#document">Document</a></code>s that are <a href="#fully-active">fully active</a>.
                   6661:   Furthermore, if a <a href="#browsing-context-container">browsing context container</a> (such as
                   6662:   an <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>) is moved to another <code><a href="dom.html#document">Document</a></code>,
                   6663:   then the <a href="#parent-browsing-context">parent browsing context</a> of its <a href="#nested-browsing-context">nested
                   6664:   browsing context</a> will change.</p>
                   6665: 
                   6666:   <p>The <dfn id="document-family">document family</dfn> of a <a href="#browsing-context">browsing context</a>
                   6667:   consists of the union of all the <code><a href="dom.html#document">Document</a></code> objects in
                   6668:   that <a href="#browsing-context">browsing context</a>'s <a href="#session-history">session history</a>
                   6669:   and the <a href="#document-family" title="document family">document families</a> of
                   6670:   all those <code><a href="dom.html#document">Document</a></code> objects. The <a href="#document-family">document
                   6671:   family</a> of a <code><a href="dom.html#document">Document</a></code> object consists of the
                   6672:   union of all the <a href="#document-family" title="document family">document
                   6673:   families</a> of the <a href="#browsing-context" title="browsing context">browsing
                   6674:   contexts</a> that are <a href="#browsing-context-nested-through" title="browsing context nested
                   6675:   through">nested through</a> the <code><a href="dom.html#document">Document</a></code> object.</p>
                   6676: 
                   6677: 
                   6678:   <h5 id="navigating-nested-browsing-contexts-in-the-dom"><span class="secno">5.1.1.1 </span>Navigating nested browsing contexts in the DOM</h5>
                   6679: 
                   6680:   <dl class="domintro"><dt><var title="">window</var> . <code title="dom-top"><a href="#dom-top">top</a></code></dt>
                   6681: 
                   6682:    <dd>
                   6683: 
                   6684:     <p>Returns the <code><a href="#windowproxy">WindowProxy</a></code> for the <a href="#top-level-browsing-context">top-level browsing context</a>.</p>
                   6685: 
                   6686:    </dd>
                   6687: 
                   6688:    <dt><var title="">window</var> . <code title="dom-parent"><a href="#dom-parent">parent</a></code></dt>
                   6689: 
                   6690:    <dd>
                   6691: 
                   6692:     <p>Returns the <code><a href="#windowproxy">WindowProxy</a></code> for the <a href="#parent-browsing-context">parent browsing context</a>.</p>
                   6693: 
                   6694:    </dd>
                   6695: 
                   6696:    <dt><var title="">window</var> . <code title="dom-frameElement"><a href="#dom-frameelement">frameElement</a></code></dt>
                   6697: 
                   6698:    <dd>
                   6699: 
                   6700:     <p>Returns the <code><a href="infrastructure.html#element">Element</a></code> for the <a href="#browsing-context-container">browsing context container</a>.</p>
                   6701: 
                   6702:     <p>Returns null if there isn't one.</p>
                   6703: 
                   6704:     <p>Throws a <code><a href="infrastructure.html#securityerror">SecurityError</a></code> exception in cross-origin situations.</p>
                   6705: 
                   6706:    </dd>
                   6707: 
                   6708:   </dl><div class="impl">
                   6709: 
                   6710:   <p>The <dfn id="dom-top" title="dom-top"><code>top</code></dfn> IDL attribute on
                   6711:   the <code><a href="#window">Window</a></code> object of a <code><a href="dom.html#document">Document</a></code> in a
                   6712:   <a href="#browsing-context">browsing context</a> <var title="">b</var> must return the
                   6713:   <code><a href="#windowproxy">WindowProxy</a></code> object of its <a href="#top-level-browsing-context">top-level browsing
                   6714:   context</a> (which would be its own <code><a href="#windowproxy">WindowProxy</a></code>
                   6715:   object if it was a <a href="#top-level-browsing-context">top-level browsing context</a> itself),
                   6716:   if it has one, or its own <code><a href="#windowproxy">WindowProxy</a></code> object otherwise
                   6717:   (e.g. if it was a detached <a href="#nested-browsing-context">nested browsing
                   6718:   context</a>).</p>
                   6719: 
                   6720:   <p>The <dfn id="dom-parent" title="dom-parent"><code>parent</code></dfn> IDL
                   6721:   attribute on the <code><a href="#window">Window</a></code> object of a
                   6722:   <code><a href="dom.html#document">Document</a></code> in a <a href="#browsing-context">browsing context</a> <var title="">b</var> must return the <code><a href="#windowproxy">WindowProxy</a></code> object of
                   6723:   the <a href="#parent-browsing-context">parent browsing context</a>, if there is one (i.e. if
                   6724:   <var title="">b</var> is a <a href="#child-browsing-context">child browsing context</a>), or
                   6725:   the <code><a href="#windowproxy">WindowProxy</a></code> object of the <a href="#browsing-context">browsing
                   6726:   context</a> <var title="">b</var> itself, otherwise (i.e. if it
                   6727:   is a <a href="#top-level-browsing-context">top-level browsing context</a> or a detached
                   6728:   <a href="#nested-browsing-context">nested browsing context</a>).</p>
                   6729: 
                   6730:   <p>The <dfn id="dom-frameelement" title="dom-frameElement"><code>frameElement</code></dfn>
                   6731:   IDL attribute on the <code><a href="#window">Window</a></code> object of a
                   6732:   <code><a href="dom.html#document">Document</a></code> <var title="">d</var>, on getting, must run
                   6733:   the following algorithm:</p>
                   6734: 
                   6735:   <ol><li><p>If <var title="">d</var> is not a <code><a href="dom.html#document">Document</a></code> in a
                   6736:    <a href="#nested-browsing-context">nested browsing context</a>, return null and abort these
                   6737:    steps.</p></li>
                   6738: 
                   6739:    <li><p>If the <a href="#browsing-context-container">browsing context container</a>'s
                   6740:    <code><a href="dom.html#document">Document</a></code> does not have the <a href="#same-origin" title="same
                   6741:    origin">same</a> <a href="#effective-script-origin">effective script origin</a> as the
                   6742:    <a href="#entry-script">entry script</a>, then throw a <code><a href="infrastructure.html#securityerror">SecurityError</a></code>
                   6743:    exception.</p></li>
                   6744: 
                   6745:    <li><p>Otherwise, return the <a href="#browsing-context-container">browsing context
                   6746:    container</a> for <var title="">b</var>.</p></li>
                   6747: 
                   6748:   </ol></div>
                   6749: 
                   6750: 
                   6751: 
                   6752:   <h4 id="auxiliary-browsing-contexts"><span class="secno">5.1.2 </span>Auxiliary browsing contexts</h4>
                   6753: 
                   6754:   <p>It is possible to create new browsing contexts that are related
                   6755:   to a <a href="#top-level-browsing-context">top-level browsing context</a> without being nested
                   6756:   through an element. Such browsing contexts are called <dfn id="auxiliary-browsing-context" title="auxiliary browsing context">auxiliary browsing
                   6757:   contexts</dfn>. Auxiliary browsing contexts are always <a href="#top-level-browsing-context" title="top-level browsing context">top-level browsing
                   6758:   contexts</a>.</p>
                   6759: 
                   6760:   <p>An <a href="#auxiliary-browsing-context">auxiliary browsing context</a> has an <dfn id="opener-browsing-context">opener
                   6761:   browsing context</dfn>, which is the <a href="#browsing-context">browsing context</a>
                   6762:   from which the <a href="#auxiliary-browsing-context">auxiliary browsing context</a> was
                   6763:   created.</p>
                   6764: 
                   6765: 
                   6766:   <h5 id="navigating-auxiliary-browsing-contexts-in-the-dom"><span class="secno">5.1.2.1 </span>Navigating auxiliary browsing contexts in the DOM</h5>
                   6767: 
                   6768:   <p>The <dfn id="dom-opener" title="dom-opener"><code>opener</code></dfn> IDL
                   6769:   attribute on the <code><a href="#window">Window</a></code> object, on getting, must return
                   6770:   the <code><a href="#windowproxy">WindowProxy</a></code> object of the <a href="#browsing-context">browsing
                   6771:   context</a> from which the current <a href="#browsing-context">browsing context</a>
                   6772:   was created (its <a href="#opener-browsing-context">opener browsing context</a>), if there is
                   6773:   one, if it is still available, and if the current <a href="#browsing-context">browsing
                   6774:   context</a> has not <i><a href="#disowned-its-opener">disowned its opener</a></i>; otherwise, it
                   6775:   must return null. On setting, if the new value is null then the
                   6776:   current <a href="#browsing-context">browsing context</a> must <dfn id="disowned-its-opener" title="disowned its
                   6777:   opener">disown its opener</dfn>; if the new value is anything else
                   6778:   then the user agent must ignore the new value.</p>
                   6779: 
                   6780: 
                   6781: 
                   6782:   <h4 id="secondary-browsing-contexts"><span class="secno">5.1.3 </span>Secondary browsing contexts</h4>
                   6783: 
                   6784:   <!-- This section only exists for the purpose of defining
                   6785:   rel=sidebar, which was dropped due to wg decision in
                   6786:      http://www.w3.org/Bugs/Public/show_bug.cgi?id=11183
                   6787:   and then moved to the wiki -->
                   6788: 
                   6789:   <p>User agents may support <dfn id="secondary-browsing-context" title="secondary browsing
                   6790:   context">secondary browsing contexts</dfn>, which are <a href="#browsing-context" title="browsing context">browsing contexts</a> that form part of
                   6791:   the user agent's interface, apart from the main content area.</p>
                   6792: 
                   6793: 
                   6794: <!--ADD-TOPIC:Security-->
                   6795:   <div class="impl">
                   6796: 
                   6797:   <h4 id="security-nav"><span class="secno">5.1.4 </span>Security</h4>
                   6798: 
                   6799:   <p id="security-1">A <a href="#browsing-context">browsing context</a> <var title="">A</var> is <dfn id="allowed-to-navigate">allowed to navigate</dfn> a second
                   6800:   <a href="#browsing-context">browsing context</a> <var title="">B</var> if one of the
                   6801:   following conditions is true:</p>
                   6802: 
                   6803:   <ul><li>Either the <a href="#origin-0">origin</a> of the <a href="#active-document">active
                   6804:    document</a> of <var title="">A</var> is the <a href="#same-origin" title="same
                   6805:    origin">same</a> as the <a href="#origin-0">origin</a> of the <a href="#active-document">active
                   6806:    document</a> of <var title="">B</var>, or</li>
                   6807: 
                   6808:    <li>The browsing context <var title="">A</var> is a <a href="#nested-browsing-context">nested
                   6809:    browsing context</a> with a <a href="#top-level-browsing-context">top-level browsing
                   6810:    context</a>, and its <a href="#top-level-browsing-context">top-level browsing context</a> is
                   6811:    <var title="">B</var>, or</li>
                   6812: 
                   6813:    <li>The browsing context <var title="">B</var> is an
                   6814:    <a href="#auxiliary-browsing-context">auxiliary browsing context</a> and <var title="">A</var>
                   6815:    is <a href="#allowed-to-navigate">allowed to navigate</a> <var title="">B</var>'s
                   6816:    <a href="#opener-browsing-context">opener browsing context</a>, or</li>
                   6817: 
                   6818:    <li>The browsing context <var title="">B</var> is not a
                   6819:    <a href="#top-level-browsing-context">top-level browsing context</a>, but there exists an
                   6820:    <a href="#ancestor-browsing-context">ancestor browsing context</a> of <var title="">B</var>
                   6821:    whose <a href="#active-document">active document</a> has the <a href="#same-origin" title="same
                   6822:    origin">same</a> <a href="#origin-0">origin</a> as the <a href="#active-document">active
                   6823:    document</a> of <var title="">A</var> (possibly in fact being
                   6824:    <var title="">A</var> itself).</li>
                   6825: 
                   6826:   </ul><hr><p>An element has a <dfn id="browsing-context-scope-origin">browsing context scope origin</dfn> if its
                   6827:   <code><a href="dom.html#document">Document</a></code>'s <a href="#browsing-context">browsing context</a> is a
                   6828:   <a href="#top-level-browsing-context">top-level browsing context</a> or if all of its
                   6829:   <code><a href="dom.html#document">Document</a></code>'s <a href="#ancestor-browsing-context" title="ancestor browsing
                   6830:   context">ancestor browsing contexts</a> all have <a href="#active-document" title="active document">active documents</a> whose
                   6831:   <a href="#origin-0">origin</a> are the <a href="#same-origin">same origin</a> as the
                   6832:   element's <code><a href="dom.html#document">Document</a></code>'s <a href="#origin-0">origin</a>. If an element
                   6833:   has a <a href="#browsing-context-scope-origin">browsing context scope origin</a>, then its value is
                   6834:   the <a href="#origin-0">origin</a> of the element's <code><a href="dom.html#document">Document</a></code>.</p>
                   6835: 
                   6836:   </div>
                   6837: <!--REMOVE-TOPIC:Security-->
                   6838: 
                   6839: 
                   6840:   <div class="impl">
                   6841: 
                   6842:   <h4 id="groupings-of-browsing-contexts"><span class="secno">5.1.5 </span>Groupings of browsing contexts</h4>
                   6843: 
                   6844:   <p>Each <a href="#browsing-context">browsing context</a> is defined as having a list of
                   6845:   one or more <dfn id="directly-reachable-browsing-contexts">directly reachable browsing contexts</dfn>. These
                   6846:   are:</p>
                   6847: 
                   6848:   <ul><li>The <a href="#browsing-context">browsing context</a> itself.</li>
                   6849: 
                   6850:    <li>All the <a href="#browsing-context">browsing context</a>'s <a href="#child-browsing-context" title="child
                   6851:    browsing context">child browsing contexts</a>.</li>
                   6852: 
                   6853:    <li>The <a href="#browsing-context">browsing context</a>'s <a href="#parent-browsing-context">parent browsing
                   6854:    context</a>.</li>
                   6855: 
                   6856:    <li>All the <a href="#browsing-context" title="browsing context">browsing contexts</a>
                   6857:    that have the <a href="#browsing-context">browsing context</a> as their <a href="#opener-browsing-context">opener
                   6858:    browsing context</a>.</li>
                   6859: 
                   6860:    <li>The <a href="#browsing-context">browsing context</a>'s <a href="#opener-browsing-context">opener browsing
                   6861:    context</a>.</li>
                   6862: 
                   6863:   </ul><p>The transitive closure of all the <a href="#browsing-context" title="browsing
                   6864:   context">browsing contexts</a> that are <a href="#directly-reachable-browsing-contexts">directly reachable
                   6865:   browsing contexts</a> forms a <dfn id="unit-of-related-browsing-contexts">unit of related browsing
                   6866:   contexts</dfn>.</p>
                   6867: 
                   6868:   <p>Each <a href="#unit-of-related-browsing-contexts">unit of related browsing contexts</a> is then
                   6869:   further divided into the smallest number of groups such that every
                   6870:   member of each group has an <a href="#active-document">active document</a> with an
                   6871:   <a href="#effective-script-origin">effective script origin</a> that, through appropriate
                   6872:   manipulation of the <code title="dom-document-domain"><a href="#dom-document-domain">document.domain</a></code> attribute, could
                   6873:   be made to be the same as other members of the group, but could not
                   6874:   be made the same as members of any other group. Each such group is a
                   6875:   <dfn id="unit-of-related-similar-origin-browsing-contexts">unit of related similar-origin browsing contexts</dfn>.</p>
                   6876: 
                   6877:   <p>Each <a href="#unit-of-related-similar-origin-browsing-contexts">unit of related similar-origin browsing
                   6878:   contexts</a> can have an <dfn id="entry-script">entry script</dfn> which is used to
                   6879:   obtain, amongst other things, the <a href="#script's-base-url">script's base URL</a> to
                   6880:   <a href="urls.html#resolve-a-url" title="resolve a url">resolve</a> relative <a href="urls.html#url" title="URL">URLs</a> used in scripts running in that <a href="#unit-of-related-similar-origin-browsing-contexts">unit
                   6881:   of related similar-origin browsing contexts</a>. Initially, there
                   6882:   is no <a href="#entry-script">entry script</a>. It is changed by the <a href="#jump-to-a-code-entry-point">jump to
                   6883:   a code entry-point</a> algorithm.</p>
                   6884: 
                   6885:   <p>Each <a href="#unit-of-related-similar-origin-browsing-contexts">unit of related similar-origin browsing
                   6886:   contexts</a> also has a <dfn id="running-mutation-observers">running mutation observers</dfn>
                   6887:   flag, which must initially be false. It is used to prevent reentrant
                   6888:   invocation of the algorithm to <a href="infrastructure.html#concept-mo-invoke" title="concept-mo-invoke">invoke <code>MutationObserver</code>
                   6889:   objects</a>. For the purposes of <code><a href="infrastructure.html#mutationobserver">MutationObserver</a></code>
                   6890:   objects, each <a href="#unit-of-related-similar-origin-browsing-contexts">unit of related similar-origin browsing
                   6891:   contexts</a> is a distinct <var title="MutationObserver scripting
                   6892:   environment"><a href="infrastructure.html#mutationobserver-scripting-environment">scripting environment</a></var>.</p>
                   6893: 
                   6894:   <p class="note">There is also at most one <a href="#event-loop">event loop</a>
                   6895:   per <a href="#unit-of-related-similar-origin-browsing-contexts">unit of related similar-origin browsing contexts</a>
                   6896:   (though several <a href="#unit-of-related-similar-origin-browsing-contexts" title="unit of related similar-origin browsing
                   6897:   contexts">units of related similar-origin browsing contexts</a>
                   6898:   can have a shared <a href="#event-loop">event loop</a>).</p>
                   6899: 
                   6900:   </div>
                   6901: 
                   6902: 
                   6903: 
                   6904:   <h4 id="browsing-context-names"><span class="secno">5.1.6 </span>Browsing context names</h4>
                   6905: 
                   6906:   <p>Browsing contexts can have a <dfn id="browsing-context-name">browsing context name</dfn>. By
                   6907:   default, a browsing context has no name (its name is not set).</p>
                   6908: 
                   6909:   <p>A <dfn id="valid-browsing-context-name">valid browsing context name</dfn> is any string with at
                   6910:   least one character that does not start with a U+005F LOW LINE
                   6911:   character. (Names starting with an underscore are reserved for
                   6912:   special keywords.)</p>
                   6913: 
                   6914:   <p>A <dfn id="valid-browsing-context-name-or-keyword">valid browsing context name or keyword</dfn> is any string
                   6915:   that is either a <a href="#valid-browsing-context-name">valid browsing context name</a> or that is
                   6916:   an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for one of: <code title="">_blank</code>, <code title="">_self</code>, <code title="">_parent</code>, or <code title="">_top</code>.</p>
                   6917: 
                   6918:   <p>These values have different meanings based on whether the page is
                   6919:   sandboxed or not, as summarized in the following (non-normative)
                   6920:   table. In this table, "current" means the <a href="#browsing-context">browsing
                   6921:   context</a> that the link or script is in, "parent" means the
                   6922:   <a href="#parent-browsing-context">parent browsing context</a> of the one the link or script
                   6923:   is in, "master" means the nearest <a href="#ancestor-browsing-context">ancestor browsing
                   6924:   context</a> of the one the link or script is in that is not
                   6925:   itself in a <a href="the-iframe-element.html#attr-iframe-seamless" title="attr-iframe-seamless">seamless
                   6926:   iframe</a>, "top" means the <a href="#top-level-browsing-context">top-level browsing
                   6927:   context</a> of the one the link or script is in, "new" means a
                   6928:   new <a href="#top-level-browsing-context">top-level browsing context</a> or <a href="#auxiliary-browsing-context">auxiliary
                   6929:   browsing context</a> is to be created, subject to various user
                   6930:   preferences and user agent policies, "none" means that nothing will
                   6931:   happen, and "maybe new" means the same as "new" if the "<code title="attr-iframe-sandbox-allow-popups"><a href="#attr-iframe-sandbox-allow-popups">allow-popups</a></code>"
                   6932:   keyword is also specified on the <code title="attr-iframe-sandbox"><a href="the-iframe-element.html#attr-iframe-sandbox">sandbox</a></code> attribute (or if the user
                   6933:   overrode the sandboxing), and the same as "none" otherwise.</p>
                   6934: 
                   6935:   <table><thead><tr><th rowspan="2">Keyword
                   6936:      </th><th rowspan="2">Ordinary effect
                   6937:      </th><th colspan="5">Effect in an <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> with...
                   6938:     </th></tr><tr><!-- nothing --><th><code title="">seamless=""</code>
                   6939:      </th><th><code title="">sandbox=""</code>
                   6940:      </th><th><code title="">sandbox="" seamless=""</code>
                   6941:      </th><th><code title="">sandbox="allow-top-navigation"</code>
                   6942:      </th><th><code title="">sandbox="allow-top-navigation" seamless=""</code>
                   6943: 
                   6944:    </th></tr></thead><tbody><tr><td>none specified, for links and form submissions <!-- same as empty string -->
                   6945:      </td><td>current
                   6946:      </td><td>master
                   6947:      </td><td>current
                   6948:      </td><td>master
                   6949:      </td><td>current
                   6950:      </td><td>master
                   6951: 
                   6952:     </td></tr><tr><td>none specified, for <code title="dom-open"><a href="#dom-open">window.open()</a></code> <!-- same as _blank -->
                   6953:      </td><td>new
                   6954:      </td><td>new
                   6955:      </td><td>maybe new&#8224;
                   6956:      </td><td>maybe new&#8224;
                   6957:      </td><td>maybe new&#8224;
                   6958:      </td><td>maybe new&#8224;
                   6959: 
                   6960:     </td></tr><tr><td>empty string
                   6961:      </td><td>current
                   6962:      </td><td>master
                   6963:      </td><td>current
                   6964:      </td><td>master
                   6965:      </td><td>current
                   6966:      </td><td>master
                   6967: 
                   6968:     </td></tr><tr><td><code title="">_blank</code>
                   6969:      </td><td>new
                   6970:      </td><td>new
                   6971:      </td><td>maybe new
                   6972:      </td><td>maybe new
                   6973:      </td><td>maybe new
                   6974:      </td><td>maybe new
                   6975: 
                   6976:     </td></tr><tr><td><code title="">_self</code>
                   6977:      </td><td>current
                   6978:      </td><td>current
                   6979:      </td><td>current
                   6980:      </td><td>current
                   6981:      </td><td>current
                   6982:      </td><td>current
                   6983: 
                   6984:     </td></tr><tr><td><code title="">_parent</code> if there isn't a parent
                   6985:      </td><td>current
                   6986:      </td><td>current
                   6987:      </td><td>current
                   6988:      </td><td>current
                   6989:      </td><td>current
                   6990:      </td><td>current
                   6991: 
                   6992:     </td></tr><tr><td><code title="">_parent</code> if parent is also top
                   6993:      </td><td>parent/top
                   6994:      </td><td>parent/top
                   6995:      </td><td>none
                   6996:      </td><td>none
                   6997:      </td><td>parent/top
                   6998:      </td><td>parent/top
                   6999: 
                   7000:     </td></tr><tr><td><code title="">_parent</code> if there is one and it's not top
                   7001:      </td><td>parent
                   7002:      </td><td>parent
                   7003:      </td><td>none
                   7004:      </td><td>none
                   7005:      </td><td>none
                   7006:      </td><td>none
                   7007: 
                   7008:     </td></tr><tr><td><code title="">_top</code> if top is current
                   7009:      </td><td>current
                   7010:      </td><td>current
                   7011:      </td><td>current
                   7012:      </td><td>current
                   7013:      </td><td>current
                   7014:      </td><td>current
                   7015: 
                   7016:     </td></tr><tr><td><code title="">_top</code> if top is not current
                   7017:      </td><td>top
                   7018:      </td><td>top
                   7019:      </td><td>none
                   7020:      </td><td>none
                   7021:      </td><td>top
                   7022:      </td><td>top
                   7023: 
                   7024:     </td></tr><tr><td>name that doesn't exist
                   7025:      </td><td>new
                   7026:      </td><td>new
                   7027:      </td><td>maybe new
                   7028:      </td><td>maybe new
                   7029:      </td><td>maybe new
                   7030:      </td><td>maybe new
                   7031: 
                   7032:     </td></tr><tr><td>name that exists and is a descendant
                   7033:      </td><td>specified descendant
                   7034:      </td><td>specified descendant
                   7035:      </td><td>specified descendant
                   7036:      </td><td>specified descendant
                   7037:      </td><td>specified descendant
                   7038:      </td><td>specified descendant
                   7039: 
                   7040:     </td></tr><tr><td>name that exists and is current
                   7041:      </td><td>current
                   7042:      </td><td>current
                   7043:      </td><td>current
                   7044:      </td><td>current
                   7045:      </td><td>current
                   7046:      </td><td>current
                   7047: 
                   7048:     </td></tr><tr><td>name that exists and is an ancestor that is top
                   7049:      </td><td>specified ancestor
                   7050:      </td><td>specified ancestor
                   7051:      </td><td>none
                   7052:      </td><td>none
                   7053:      </td><td>specified ancestor/top
                   7054:      </td><td>specified ancestor/top
                   7055: 
                   7056:     </td></tr><tr><td>name that exists and is an ancestor that is not top
                   7057:      </td><td>specified ancestor
                   7058:      </td><td>specified ancestor
                   7059:      </td><td>none
                   7060:      </td><td>none
                   7061:      </td><td>none
                   7062:      </td><td>none
                   7063: 
                   7064:   </td></tr></tbody></table><p><small>&#8224; This case is only possible if the <code title="attr-iframe-sandbox"><a href="the-iframe-element.html#attr-iframe-sandbox">sandbox</a></code> attribute also allows
                   7065:   scripts.</small></p>
                   7066: 
                   7067:   <div class="impl">
                   7068: 
                   7069:   <hr><p>An algorithm is <dfn id="allowed-to-show-a-pop-up">allowed to show a pop-up</dfn> if, in the
                   7070:   <a href="#concept-task" title="concept-task">task</a> in which the algorithm is
                   7071:   running, either:</p>
                   7072: 
                   7073:   <ul class="brief"><li>an <a href="content-models.html#activation-behavior">activation behavior</a> is currently being
                   7074:    processed whose <code title="event-click"><a href="infrastructure.html#event-click">click</a></code> event was
                   7075:    <a href="infrastructure.html#concept-events-trusted" title="concept-events-trusted">trusted</a>, or</li>
                   7076: 
                   7077:    <li>the event listener for a <a href="infrastructure.html#concept-events-trusted" title="concept-events-trusted">trusted</a> <code title="event-click"><a href="infrastructure.html#event-click">click</a></code> event is being handled.</li>
                   7078: 
                   7079:   </ul><hr><p><dfn id="the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name">The rules for choosing a browsing context given a browsing
                   7080:   context name</dfn> are as follows. The rules assume that they are
                   7081:   being applied in the context of a <a href="#browsing-context">browsing context</a>.</p>
                   7082: 
                   7083:   <ol><li>
                   7084: 
                   7085:     <p>If the given browsing context name is the empty string or <code title="">_self</code>, then the chosen browsing context must be
                   7086:     the current one.</p>
                   7087: 
                   7088:     <p>If the given browsing context name is <code title="">_self</code>, then this is an <a href="#explicit-self-navigation-override">explicit
                   7089:     self-navigation override</a>, which overrides the behavior of
                   7090:     the <a href="the-iframe-element.html#seamless-browsing-context-flag">seamless browsing context flag</a> set by the <code title="attr-iframe-seamless"><a href="the-iframe-element.html#attr-iframe-seamless">seamless</a></code> attribute on
                   7091:     <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> elements.</p>
                   7092: 
                   7093:    </li>
                   7094: 
                   7095:    <li><p>If the given browsing context name is <code title="">_parent</code>, then the chosen browsing context must be
                   7096:    the <a href="#parent-browsing-context"><em>parent</em> browsing context</a> of the current
                   7097:    one, unless there isn't one, in which case the chosen browsing
                   7098:    context must be the current browsing context.</p></li>
                   7099: 
                   7100:    <li><p>If the given browsing context name is <code title="">_top</code>, then the chosen browsing context must be the
                   7101:    <a href="#top-level-browsing-context">top-level browsing context</a> of the current one, if
                   7102:    there is one, or else the current browsing context.</p></li>
                   7103: 
                   7104:    <li>
                   7105: 
                   7106:     <p>If the given browsing context name is not <code title="">_blank</code> and there exists a browsing context whose
                   7107:     <a href="#browsing-context-name" title="browsing context name">name</a> is the same as the
                   7108:     given browsing context name, and the current browsing context is
                   7109:     <a href="#allowed-to-navigate">allowed to navigate</a> that browsing context, and the
                   7110:     user agent determines that the two browsing contexts are related
                   7111:     enough that it is ok if they reach each other, then that browsing
                   7112:     context must be the chosen one. If there are multiple matching
                   7113:     browsing contexts, the user agent should select one in some
                   7114:     arbitrary consistent manner, such as the most recently opened,
                   7115:     most recently focused, or more closely related.</p>
                   7116: 
                   7117:     <p>If the browsing context is chosen by this step to be the
                   7118:     current browsing context, then this is also an <a href="#explicit-self-navigation-override">explicit
                   7119:     self-navigation override</a>.</p>
                   7120: 
                   7121:    </li>
                   7122: 
                   7123:    <li>
                   7124: 
                   7125:     <p>Otherwise, a new browsing context is being requested, and what
                   7126:     happens depends on the user agent's configuration and/or abilities
                   7127:     &#8212; it is determined by the rules given for the first
                   7128:     applicable option from the following list:</p>
                   7129: 
                   7130:     <dl class="switch"><dt id="sandboxWindowOpen">If the current browsing context's
                   7131:      <a href="#active-document">active document</a>'s <a href="#active-sandboxing-flag-set">active sandboxing flag
                   7132:      set</a> has the <a href="#sandboxed-auxiliary-navigation-browsing-context-flag">sandboxed auxiliary navigation browsing
                   7133:      context flag</a> set.</dt>
                   7134: 
                   7135:      <dd>
                   7136: 
                   7137:       <p>Typically, there is no chosen browsing context.</p>
                   7138: 
                   7139:       <p>The user agent may offer to create a new <a href="#top-level-browsing-context">top-level
                   7140:       browsing context</a> or reuse an existing <a href="#top-level-browsing-context">top-level
                   7141:       browsing context</a>. If the user picks one of those options,
                   7142:       then the designated browsing context must be the chosen one (the
                   7143:       browsing context's name isn't set to the given browsing context
                   7144:       name). The default behaviour (if the user agent doesn't offer
                   7145:       the option to the user, or if the user declines to allow a
                   7146:       browsing context to be used) must be that there must not be a
                   7147:       chosen browsing context.</p>
                   7148: 
                   7149:       <p class="warning">If this case occurs, it means that an author
                   7150:       has explicitly sandboxed the document that is trying to open a
                   7151:       link.</p>
                   7152: 
                   7153:      </dd>
                   7154: 
                   7155: 
                   7156:      <dt id="noopener">If the user agent has been configured such that
                   7157:      in this instance it will create a new browsing context, and the
                   7158:      browsing context is being requested as part of <a href="#following-hyperlinks-0" title="following hyperlinks">following a hyperlink</a> whose
                   7159:      <a href="#linkTypes">link types</a> include the <code title="rel-noreferrer"><a href="#link-type-noreferrer">noreferrer</a></code> keyword</dt>
                   7160: 
                   7161:      <dd><p>A new <a href="#top-level-browsing-context">top-level browsing context</a> must be
                   7162:      created. If the given browsing context name is not <code title="">_blank</code>, then the new top-level browsing context's
                   7163:      name must be the given browsing context name (otherwise, it has
                   7164:      no name). The chosen browsing context must be this new browsing
                   7165:      context.</p>
                   7166: 
                   7167:      <p class="note">If it is immediately <a href="#navigate" title="navigate">navigated</a>, then the navigation will be
                   7168:      done with <a href="#replacement-enabled">replacement enabled</a>.</p></dd>
                   7169: 
                   7170: 
                   7171:      <dt>If the user agent has been configured such that in this
                   7172:      instance it will create a new browsing context, and the <code title="rel-noreferrer"><a href="#link-type-noreferrer">noreferrer</a></code> keyword doesn't
                   7173:      apply</dt>
                   7174: 
                   7175:      <dd><p>A new <a href="#auxiliary-browsing-context">auxiliary browsing context</a> must be
                   7176:      created, with the <a href="#opener-browsing-context">opener browsing context</a> being the
                   7177:      current one. If the given browsing context name is not <code title="">_blank</code>, then the new auxiliary browsing context's
                   7178:      name must be the given browsing context name (otherwise, it has
                   7179:      no name). The chosen browsing context must be this new browsing
                   7180:      context.</p>
                   7181: 
                   7182:      <p class="note">If it is immediately <a href="#navigate" title="navigate">navigated</a>, then the navigation will be
                   7183:      done with <a href="#replacement-enabled">replacement enabled</a>.</p></dd>
                   7184: 
                   7185: 
                   7186:      <dt>If the user agent has been configured such that in this
                   7187:      instance it will reuse the current browsing context</dt>
                   7188: 
                   7189:      <dd><p>The chosen browsing context is the current browsing
                   7190:      context.</p></dd>
                   7191: 
                   7192: 
                   7193:      <dt>If the user agent has been configured such that in this
                   7194:      instance it will not find a browsing context</dt>
                   7195: 
                   7196:      <dd><p>There must not be a chosen browsing context.</p></dd>
                   7197: 
                   7198:     </dl><p>User agent implementors are encouraged to provide a way for
                   7199:     users to configure the user agent to always reuse the current
                   7200:     browsing context.</p>
                   7201: 
                   7202:     <p>If the current browsing context's <a href="#active-document">active
                   7203:     document</a>'s <a href="#active-sandboxing-flag-set">active sandboxing flag set</a> has the
                   7204:     <a href="#sandboxed-navigation-browsing-context-flag">sandboxed navigation browsing context flag</a> set and
                   7205:     chosen browsing context picked above, if any, is a new browsing
                   7206:     context (whether top-level or auxiliary), then all the flags that
                   7207:     are set in the current browsing context's <a href="#active-document">active
                   7208:     document</a>'s <a href="#active-sandboxing-flag-set">active sandboxing flag set</a> when the
                   7209:     new browsing context is created must be set in the new browsing
                   7210:     context's <a href="#popup-sandboxing-flag-set">popup sandboxing flag set</a>, and the current
                   7211:     browsing context must be set as the new browsing context's
                   7212:     <a href="#one-permitted-sandboxed-navigator">one permitted sandboxed navigator</a>.</p>
                   7213: 
                   7214:    </li>
                   7215: 
                   7216:   </ol></div>
                   7217: 
                   7218: 
                   7219: 
                   7220: <!--TOPIC:DOM APIs-->
                   7221:   <h3 id="the-window-object"><span class="secno">5.2 </span>The <code><a href="#window">Window</a></code> object</h3>
                   7222: 
                   7223:   <pre class="idl">[NamedPropertiesObject]
                   7224: interface <dfn id="window">Window</dfn> : <a href="infrastructure.html#eventtarget">EventTarget</a> {
                   7225:   // the current browsing context
                   7226:   [Unforgeable] readonly attribute <a href="#windowproxy">WindowProxy</a> <a href="#dom-window" title="dom-window">window</a>;
                   7227:   [Replaceable] readonly attribute <a href="#windowproxy">WindowProxy</a> <a href="#dom-self" title="dom-self">self</a>;
                   7228:   [Unforgeable] readonly attribute <a href="dom.html#document">Document</a> <a href="#dom-document-0" title="dom-document">document</a>;
                   7229:            attribute DOMString <a href="#dom-name" title="dom-name">name</a>; <!-- not [Replaceable] per WebKit and IE8 -->
                   7230:   [PutForwards=<a href="#dom-location-href" title="dom-location-href">href</a>, Unforgeable] readonly attribute <a href="#location">Location</a> <a href="#dom-location" title="dom-location">location</a>;
                   7231:   readonly attribute <a href="#history-1">History</a> <a href="#dom-history" title="dom-history">history</a>;
                   7232: <!--FIND-->
                   7233:   [Replaceable] readonly attribute <a href="#barprop">BarProp</a> <a href="#dom-window-locationbar" title="dom-window-locationbar">locationbar</a>;
                   7234:   [Replaceable] readonly attribute <a href="#barprop">BarProp</a> <a href="#dom-window-menubar" title="dom-window-menubar">menubar</a>;
                   7235:   [Replaceable] readonly attribute <a href="#barprop">BarProp</a> <a href="#dom-window-personalbar" title="dom-window-personalbar">personalbar</a>;
                   7236:   [Replaceable] readonly attribute <a href="#barprop">BarProp</a> <a href="#dom-window-scrollbars" title="dom-window-scrollbars">scrollbars</a>;
                   7237:   [Replaceable] readonly attribute <a href="#barprop">BarProp</a> <a href="#dom-window-statusbar" title="dom-window-statusbar">statusbar</a>;
                   7238:   [Replaceable] readonly attribute <a href="#barprop">BarProp</a> <a href="#dom-window-toolbar" title="dom-window-toolbar">toolbar</a>;<!--
                   7239:   [Replaceable] readonly attribute <span>BarProp</span> <span title="dom-window-directories">directories</span>; // legacy (Gecko-only) -->
                   7240:            attribute DOMString <a href="#dom-window-status" title="dom-window-status">status</a>;
                   7241:   void <a href="#dom-window-close" title="dom-window-close">close</a>();
                   7242:   void <a href="#dom-window-stop" title="dom-window-stop">stop</a>();
                   7243:   void <a href="#dom-window-focus" title="dom-window-focus">focus</a>();
                   7244:   void <a href="#dom-window-blur" title="dom-window-blur">blur</a>();
                   7245: 
                   7246:   // other browsing contexts
                   7247:   [Replaceable] readonly attribute <a href="#windowproxy">WindowProxy</a> <a href="#dom-frames" title="dom-frames">frames</a>;
                   7248:   [Replaceable] readonly attribute unsigned long <a href="#dom-length" title="dom-length">length</a>;
                   7249:   [Unforgeable] readonly attribute <a href="#windowproxy">WindowProxy</a> <a href="#dom-top" title="dom-top">top</a>;
                   7250:            attribute <a href="#windowproxy">WindowProxy</a>? <a href="#dom-opener" title="dom-opener">opener</a>;
                   7251:   readonly attribute <a href="#windowproxy">WindowProxy</a> <a href="#dom-parent" title="dom-parent">parent</a>;
                   7252:   readonly attribute <a href="infrastructure.html#element">Element</a>? <a href="#dom-frameelement" title="dom-frameElement">frameElement</a>;
                   7253:   <a href="#windowproxy">WindowProxy</a> <a href="#dom-open" title="dom-open">open</a>(optional DOMString url, optional DOMString target, optional DOMString features, optional boolean replace);
                   7254:   <a href="#dom-window-item" title="dom-window-item">getter</a> <a href="#windowproxy">WindowProxy</a> (unsigned long index);
                   7255:   <a href="#dom-window-nameditem" title="dom-window-namedItem">getter</a> object (DOMString name);
                   7256: 
                   7257:   // the user agent
                   7258:   readonly attribute <a href="#navigator">Navigator</a> <a href="#dom-navigator" title="dom-navigator">navigator</a>; <!-- IE also has window.clientInformation === window.navigator -->
                   7259:   readonly attribute <a href="#external">External</a> <a href="#dom-external" title="dom-external">external</a>;
                   7260:   readonly attribute <a href="#applicationcache">ApplicationCache</a> <a href="#dom-applicationcache" title="dom-applicationCache">applicationCache</a>;
                   7261: 
                   7262:   // user prompts
                   7263:   void <a href="#dom-alert" title="dom-alert">alert</a>(DOMString message);
                   7264:   boolean <a href="#dom-confirm" title="dom-confirm">confirm</a>(DOMString message);
                   7265:   DOMString? <a href="#dom-prompt" title="dom-prompt">prompt</a>(DOMString message, optional DOMString default);
                   7266:   void <a href="#dom-print" title="dom-print">print</a>();
                   7267:   any <a href="#dom-showmodaldialog" title="dom-showModalDialog">showModalDialog</a>(DOMString url, optional any argument<!--, optional DOMString features-->);
                   7268: 
                   7269: <!--POSTMSG-->
                   7270:   // <a href="#event-handler-idl-attributes">event handler IDL attributes</a>
                   7271:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onabort" title="handler-onabort">onabort</a>;
                   7272:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onafterprint" title="handler-window-onafterprint">onafterprint</a>;
                   7273:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onbeforeprint" title="handler-window-onbeforeprint">onbeforeprint</a>;
                   7274:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onbeforeunload" title="handler-window-onbeforeunload">onbeforeunload</a>;
                   7275:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onblur" title="handler-window-onblur">onblur</a>;
                   7276:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-oncancel" title="handler-oncancel">oncancel</a>;
                   7277:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-oncanplay" title="handler-oncanplay">oncanplay</a>;
                   7278:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-oncanplaythrough" title="handler-oncanplaythrough">oncanplaythrough</a>;
                   7279:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onchange" title="handler-onchange">onchange</a>;
                   7280:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onclick" title="handler-onclick">onclick</a>;
                   7281:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onclose" title="handler-onclose">onclose</a>;
                   7282:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-oncontextmenu" title="handler-oncontextmenu">oncontextmenu</a>;
                   7283:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-oncuechange" title="handler-oncuechange">oncuechange</a>;
                   7284:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-ondblclick" title="handler-ondblclick">ondblclick</a>;
                   7285:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-ondrag" title="handler-ondrag">ondrag</a>;
                   7286:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-ondragend" title="handler-ondragend">ondragend</a>;
                   7287:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-ondragenter" title="handler-ondragenter">ondragenter</a>;
                   7288:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-ondragleave" title="handler-ondragleave">ondragleave</a>;
                   7289:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-ondragover" title="handler-ondragover">ondragover</a>;
                   7290:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-ondragstart" title="handler-ondragstart">ondragstart</a>;
                   7291:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-ondrop" title="handler-ondrop">ondrop</a>;
                   7292:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-ondurationchange" title="handler-ondurationchange">ondurationchange</a>;
                   7293:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onemptied" title="handler-onemptied">onemptied</a>;
                   7294:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onended" title="handler-onended">onended</a>;
                   7295:            attribute <a href="#onerroreventhandler">OnErrorEventHandler</a> <a href="#handler-window-onerror" title="handler-window-onerror">onerror</a>;
                   7296:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onfocus" title="handler-window-onfocus">onfocus</a>;
                   7297:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onhashchange" title="handler-window-onhashchange">onhashchange</a>;
                   7298:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-oninput" title="handler-oninput">oninput</a>;
                   7299:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-oninvalid" title="handler-oninvalid">oninvalid</a>;
                   7300:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onkeydown" title="handler-onkeydown">onkeydown</a>;
                   7301:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onkeypress" title="handler-onkeypress">onkeypress</a>;
                   7302:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onkeyup" title="handler-onkeyup">onkeyup</a>;
                   7303:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onload" title="handler-window-onload">onload</a>;
                   7304:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onloadeddata" title="handler-onloadeddata">onloadeddata</a>;
                   7305:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onloadedmetadata" title="handler-onloadedmetadata">onloadedmetadata</a>;
                   7306:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onloadstart" title="handler-onloadstart">onloadstart</a>;
                   7307:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onmessage" title="handler-window-onmessage">onmessage</a>;
                   7308:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onmousedown" title="handler-onmousedown">onmousedown</a>;
                   7309:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onmousemove" title="handler-onmousemove">onmousemove</a>;
                   7310:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onmouseout" title="handler-onmouseout">onmouseout</a>;
                   7311:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onmouseover" title="handler-onmouseover">onmouseover</a>;
                   7312:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onmouseup" title="handler-onmouseup">onmouseup</a>;
                   7313:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onmousewheel" title="handler-onmousewheel">onmousewheel</a>;
                   7314:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onoffline" title="handler-window-onoffline">onoffline</a>;
                   7315:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-ononline" title="handler-window-ononline">ononline</a>;
                   7316:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onpause" title="handler-onpause">onpause</a>;
                   7317:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onplay" title="handler-onplay">onplay</a>;
                   7318:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onplaying" title="handler-onplaying">onplaying</a>;
                   7319:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onpagehide" title="handler-window-onpagehide">onpagehide</a>;
                   7320:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onpageshow" title="handler-window-onpageshow">onpageshow</a>;
                   7321:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onpopstate" title="handler-window-onpopstate">onpopstate</a>;
                   7322:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onprogress" title="handler-onprogress">onprogress</a>;
                   7323:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onratechange" title="handler-onratechange">onratechange</a>;
                   7324:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onreset" title="handler-onreset">onreset</a>;
                   7325:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onresize" title="handler-window-onresize">onresize</a>;
                   7326:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onscroll" title="handler-onscroll">onscroll</a>;
                   7327:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onseeked" title="handler-onseeked">onseeked</a>;
                   7328:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onseeking" title="handler-onseeking">onseeking</a>;
                   7329:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onselect" title="handler-onselect">onselect</a>;
                   7330:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onshow" title="handler-onshow">onshow</a>;
                   7331:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onstalled" title="handler-onstalled">onstalled</a>;
                   7332:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onstorage" title="handler-window-onstorage">onstorage</a>;
                   7333:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onsubmit" title="handler-onsubmit">onsubmit</a>;
                   7334:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onsuspend" title="handler-onsuspend">onsuspend</a>;
                   7335:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-ontimeupdate" title="handler-ontimeupdate">ontimeupdate</a>;
                   7336:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onunload" title="handler-window-onunload">onunload</a>;
                   7337:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onvolumechange" title="handler-onvolumechange">onvolumechange</a>;
                   7338:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-onwaiting" title="handler-onwaiting">onwaiting</a>;
                   7339: };</pre>
                   7340: 
                   7341: <!-- for more features to add here, look here:
                   7342:  http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/obj_window.asp
                   7343:  http://www.mozilla.org/docs/dom/domref/dom_window_ref.html
                   7344:  http://lxr.mozilla.org/mozilla/source/dom/public/idl/base/nsIDOMWindow.idl - scrollBy, etc
                   7345:  http://lxr.mozilla.org/mozilla/source/dom/public/idl/base/nsIDOMWindowInternal.idl - DOM level 0
                   7346: -->
                   7347: 
                   7348:   <dl class="domintro"><dt><var title="">window</var> . <code title="dom-window"><a href="#dom-window">window</a></code></dt>
                   7349:    <dt><var title="">window</var> . <code title="dom-frames"><a href="#dom-frames">frames</a></code></dt>
                   7350:    <dt><var title="">window</var> . <code title="dom-self"><a href="#dom-self">self</a></code></dt>
                   7351: 
                   7352:    <dd>
                   7353: 
                   7354:     <p>These attributes all return <var title="">window</var>.</p>
                   7355: 
                   7356:    </dd>
                   7357: 
                   7358: 
                   7359:    <dt><var title="">window</var> . <code title="dom-document"><a href="#dom-document-0">document</a></code></dt>
                   7360: 
                   7361:    <dd>
                   7362: 
                   7363:     <p>Returns the <a href="#active-document">active document</a>.</p>
                   7364: 
                   7365:    </dd>
                   7366: 
                   7367: 
                   7368:    <dt><var title="">document</var> . <code title="dom-document-defaultView"><a href="#dom-document-defaultview">defaultView</a></code></dt>
                   7369: 
                   7370:    <dd>
                   7371: 
                   7372:     <p>Returns the <code><a href="#window">Window</a></code> object of the <a href="#active-document">active document</a>.</p>
                   7373: 
                   7374:    </dd>
                   7375: 
                   7376:   </dl><div class="impl">
                   7377: 
                   7378:   <p>The <code><a href="#window">Window</a></code> interface must only be <a href="infrastructure.html#expose" title="expose">exposed</a> if the <a href="infrastructure.html#javascript-global-environment">JavaScript global
                   7379:   environment</a> is a <a href="#document-environment">document environment</a>.</p>
                   7380: 
                   7381:   <p>The <dfn id="dom-window" title="dom-window"><code>window</code></dfn>, <dfn id="dom-frames" title="dom-frames"><code>frames</code></dfn>, and <dfn id="dom-self" title="dom-self"><code>self</code></dfn> IDL attributes must all
                   7382:   return the <code><a href="#window">Window</a></code> object's <a href="#browsing-context">browsing
                   7383:   context</a>'s <code><a href="#windowproxy">WindowProxy</a></code> object.</p>
                   7384: 
                   7385:   <p>The <dfn id="dom-document-0" title="dom-document"><code>document</code></dfn> IDL
                   7386:   attribute must return the <code><a href="dom.html#document">Document</a></code> object of the
                   7387:   <code><a href="#window">Window</a></code> object's <code><a href="dom.html#document">Document</a></code>'s <a href="#browsing-context">browsing
                   7388:   context</a>'s <a href="#active-document">active document</a>.</p>
                   7389: 
                   7390:   <p>The <dfn id="dom-document-defaultview" title="dom-document-defaultView"><code>defaultView</code></dfn> IDL
                   7391:   attribute of the <code><a href="dom.html#document">Document</a></code> interface must return the
                   7392:   <code><a href="dom.html#document">Document</a></code>'s <a href="#browsing-context">browsing context</a>'s
                   7393:   <code><a href="#windowproxy">WindowProxy</a></code> object, if there is one, or null
                   7394:   otherwise.</p>
                   7395: 
                   7396:   <hr><p>For historical reasons, <code><a href="#window">Window</a></code> objects must also
                   7397:   have a writable, configurable, non-enumerable property named
                   7398:   <dfn id="htmldocument"><code>HTMLDocument</code></dfn> whose value is the
                   7399:   <code><a href="dom.html#document">Document</a></code> interface object.</p>
                   7400: 
                   7401:   </div>
                   7402: 
                   7403: 
                   7404: <!--ADD-TOPIC:Security-->
                   7405:   <div class="impl">
                   7406: 
                   7407:   <h4 id="security-window"><span class="secno">5.2.1 </span>Security</h4>
                   7408: 
                   7409:   <p id="security-2">User agents must throw a
                   7410:   <code><a href="infrastructure.html#securityerror">SecurityError</a></code> exception whenever any properties of a
                   7411:   <code><a href="#window">Window</a></code> object are accessed by scripts whose
                   7412:   <a href="#effective-script-origin">effective script origin</a> is not the same as the
                   7413:   <code><a href="#window">Window</a></code> object's <code><a href="dom.html#document">Document</a></code>'s <a href="#effective-script-origin">effective
                   7414:   script origin</a>, with the following exceptions:</p>
                   7415: 
                   7416:   <ul><li>The <code title="dom-location"><a href="#dom-location">location</a></code> attribute
                   7417: 
                   7418:    </li><li>The <code title="dom-window-postMessage">postMessage()</code> method
                   7419: 
                   7420:    </li><li>The <code title="dom-frames"><a href="#dom-frames">frames</a></code> attribute
                   7421: 
                   7422:    </li><li>The <a href="#dynamic-nested-browsing-context-properties">dynamic nested browsing context properties</a>
                   7423: 
                   7424:   </li></ul><p>When a script whose <a href="#effective-script-origin">effective script origin</a> is not
                   7425:   the same as the <code><a href="#window">Window</a></code> object's <code><a href="dom.html#document">Document</a></code>'s
                   7426:   <a href="#effective-script-origin">effective script origin</a> attempts to access that
                   7427:   <code><a href="#window">Window</a></code> object's methods or attributes, the user agent
                   7428:   must act as if any changes to the <code><a href="#window">Window</a></code> object's
                   7429:   properties, getters, setters, etc, were not present.</p>
                   7430: 
                   7431:   <p>For members that return objects (including function objects),
                   7432:   each distinct <a href="#effective-script-origin">effective script origin</a> that is not the
                   7433:   same as the <code><a href="#window">Window</a></code> object's <code><a href="dom.html#document">Document</a></code>'s
                   7434:   <a href="#effective-script-origin">effective script origin</a> must be provided with a
                   7435:   separate set of objects. These objects must have the prototype chain
                   7436:   appropriate for the script for which the objects are created (not
                   7437:   those that would be appropriate for scripts whose <a href="#script's-global-object">script's
                   7438:   global object</a> is the <code><a href="#window">Window</a></code> object in
                   7439:   question).</p>
                   7440: 
                   7441:   <div class="example">
                   7442: 
                   7443:    <p>For instance, if two frames containing <code><a href="dom.html#document">Document</a></code>s
                   7444:    from different <a href="#origin-0" title="origin">origins</a> access the same
                   7445:    <code><a href="#window">Window</a></code> object's <code title="dom-window-postMessage">postMessage()</code> method, they
                   7446:    will get distinct objects that are not equal.</p>
                   7447: 
                   7448:   </div>
                   7449: 
                   7450:   </div>
                   7451: <!--REMOVE-TOPIC:Security-->
                   7452: 
                   7453: 
                   7454: 
                   7455:   <h4 id="apis-for-creating-and-navigating-browsing-contexts-by-name"><span class="secno">5.2.2 </span>APIs for creating and navigating browsing contexts by name</h4>
                   7456: 
                   7457:   <dl class="domintro"><dt><var title="">window</var> = <var title="">window</var> . <code title="dom-open"><a href="#dom-open">open</a></code>( [ <var title="">url</var> [, <var title="">target</var> [, <var title="">features</var> [, <var title="">replace</var> ] ] ] ] )</dt>
                   7458: 
                   7459:    <dd>
                   7460: 
                   7461:     <p>Opens a window to show <var title="">url</var> (defaults to
                   7462:     <code><a href="urls.html#about:blank">about:blank</a></code>), and returns it. The <var title="">target</var> argument gives the name of the new
                   7463:     window. If a window exists with that name already, it is
                   7464:     reused. The <var title="">replace</var> attribute, if true, means
                   7465:     that whatever page is currently open in that window will be
                   7466:     removed from the window's session history. The <var title="">features</var> argument is ignored.</p>
                   7467: 
                   7468:    </dd>
                   7469: 
                   7470:    <dt><var title="">window</var> . <code title="dom-name"><a href="#dom-name">name</a></code> [ = <var title="">value</var> ]</dt>
                   7471: 
                   7472:    <dd>
                   7473: 
                   7474:     <p>Returns the name of the window.</p>
                   7475: 
                   7476:     <p>Can be set, to change the name.</p>
                   7477: 
                   7478:    </dd>
                   7479: 
                   7480:    <dt><var title="">window</var> . <code title="dom-window-close"><a href="#dom-window-close">close</a></code>()</dt>
                   7481: 
                   7482:    <dd>
                   7483: 
                   7484:     <p>Closes the window.</p>
                   7485: 
                   7486:    </dd>
                   7487: 
                   7488:    <dt><var title="">window</var> . <code title="dom-window-stop"><a href="#dom-window-stop">stop</a></code>()</dt>
                   7489: 
                   7490:    <dd>
                   7491: 
                   7492:     <p>Cancels the document load.</p>
                   7493: 
                   7494:    </dd>
                   7495: 
                   7496:   </dl><div class="impl">
                   7497: 
                   7498:   <!-- This whole section should be rewritten to use algorithmic style -->
                   7499: 
                   7500:   <p>The <dfn id="dom-open" title="dom-open"><code>open()</code></dfn> method on
                   7501:   <code><a href="#window">Window</a></code> objects provides a mechanism for <a href="#navigate" title="navigate">navigating</a> an existing <a href="#browsing-context">browsing
                   7502:   context</a> or opening and navigating an <a href="#auxiliary-browsing-context">auxiliary browsing
                   7503:   context</a>.</p>
                   7504: 
                   7505:   <p>The method has four arguments, though they are all optional.</p>
                   7506: 
                   7507:   <p>The first argument, <var title="">url</var>, must be a
                   7508:   <a href="urls.html#valid-non-empty-url">valid non-empty URL</a> for a page to load in the browsing
                   7509:   context. If no arguments are provided, or if the first argument is
                   7510:   the empty string, then the <var title="">url</var> argument defaults
                   7511:   to "<code><a href="urls.html#about:blank">about:blank</a></code>". The argument must be <a href="urls.html#resolve-a-url" title="resolve a url">resolved</a> to an <a href="urls.html#absolute-url">absolute
                   7512:   URL</a> (or an error), relative to the <a href="#entry-script">entry
                   7513:   script</a>'s <a href="#script's-base-url" title="script's base URL">base URL</a>,
                   7514:   when the method is invoked.</p>
                   7515: 
                   7516:   <p>The second argument, <var title="">target</var>, specifies the
                   7517:   <a href="#browsing-context-name" title="browsing context name">name</a> of the browsing
                   7518:   context that is to be navigated. It must be a <a href="#valid-browsing-context-name-or-keyword">valid browsing
                   7519:   context name or keyword</a>. If fewer than two arguments are
                   7520:   provided, then the <var title="">target</var> argument defaults to the
                   7521:   value "<code>_blank</code>".</p>
                   7522: 
                   7523:   <p>The third argument, <var title="">features</var>, has no defined
                   7524:   effect and is mentioned for historical reasons only. User agents may
                   7525:   interpret this argument as instructions to set the size and position
                   7526:   of the browsing context, but are encouraged to instead ignore the
                   7527:   argument entirely.</p>
                   7528: 
                   7529:   <p>The fourth argument, <var title="">replace</var>, specifies
                   7530:   whether or not the new page will <a href="#replacement-enabled" title="replacement
                   7531:   enabled">replace</a> the page currently loaded in the browsing
                   7532:   context, when <var title="">target</var> identifies an existing
                   7533:   browsing context (as opposed to leaving the current page in the
                   7534:   browsing context's <a href="#session-history">session history</a>). When three or
                   7535:   fewer arguments are provided, <var title="">replace</var> defaults
                   7536:   to false.</p>
                   7537: 
                   7538:   <p>When the method is invoked, the user agent must first select a
                   7539:   <a href="#browsing-context">browsing context</a> to navigate by applying <a href="#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name">the
                   7540:   rules for choosing a browsing context given a browsing context
                   7541:   name</a> using the <var title="">target</var> argument as the
                   7542:   name and the <a href="#browsing-context">browsing context</a> of the script as the
                   7543:   context in which the algorithm is executed, unless the user has
                   7544:   indicated a preference, in which case the browsing context to
                   7545:   navigate may instead be the one indicated by the user.</p>
                   7546: 
                   7547:   <p class="example">For example, suppose there is a user agent that
                   7548:   supports control-clicking a link to open it in a new tab. If a user
                   7549:   clicks in that user agent on an element whose <code title="handler-onclick"><a href="#handler-onclick">onclick</a></code> handler uses the <code title="dom-open"><a href="#dom-open">window.open()</a></code> API to open a page in an
                   7550:   iframe, but, while doing so, holds the control key down, the user
                   7551:   agent could override the selection of the target browsing context to
                   7552:   instead target a new tab.</p>
                   7553: 
                   7554:   <p>If the method is not <a href="#allowed-to-show-a-pop-up">allowed to show a pop-up</a> and
                   7555:   applying <a href="#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name">the rules for choosing a browsing context given a
                   7556:   browsing context name</a> using the <var title="">target</var>
                   7557:   argument, would result in there not being a chosen browsing context,
                   7558:   then throw an <code><a href="infrastructure.html#invalidaccesserror">InvalidAccessError</a></code> exception and abort
                   7559:   these steps.</p>
                   7560: 
                   7561:   <p>Otherwise, if <var title="">url</var> is not
                   7562:   "<code><a href="urls.html#about:blank">about:blank</a></code>", the user agent must
                   7563:   <a href="#navigate">navigate</a><!--DONAV window.open()--> the selected
                   7564:   <a href="#browsing-context">browsing context</a> to the <a href="urls.html#absolute-url">absolute URL</a>
                   7565:   obtained from <a href="urls.html#resolve-a-url" title="resolve a url">resolving</a> <var title="">url</var> earlier. If the <var title="">replace</var> is
                   7566:   true or if the <a href="#browsing-context">browsing context</a> was just created as
                   7567:   part of <a href="#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name">the rules for choosing a browsing context given a
                   7568:   browsing context name</a>, then <a href="#replacement-enabled" title="replacement
                   7569:   enabled">replacement must be enabled</a>. The navigation must be
                   7570:   done with the <a href="#script's-browsing-context" title="script's browsing context">browsing
                   7571:   context</a> of the <a href="#entry-script">entry script</a> as the <a href="#source-browsing-context">source
                   7572:   browsing context</a>. If the <a href="urls.html#resolve-a-url">resolve a URL</a> algorithm
                   7573:   failed, then the user agent may either instead <a href="#navigate">navigate</a>
                   7574:   to an inline error page, using the same replacement behavior and
                   7575:   source browsing context behavior as described earlier in this
                   7576:   paragraph; or treat the <var title="">url</var> as
                   7577:   "<code><a href="urls.html#about:blank">about:blank</a></code>", acting as described in the next
                   7578:   paragraph.</p>
                   7579: 
                   7580:   <p>If <var title="">url</var> <em>is</em>
                   7581:   "<code><a href="urls.html#about:blank">about:blank</a></code>", the user agent must instead <a href="#queue-a-task">queue
                   7582:   a task</a> to <a href="#fire-a-simple-event">fire a simple event</a> named <code title="event-load">load</code> at the selected <a href="#browsing-context">browsing
                   7583:   context</a>'s <code><a href="#window">Window</a></code> object, but with its <code title="dom-event-target"><a href="infrastructure.html#dom-event-target">target</a></code> set to the selected
                   7584:   <a href="#browsing-context">browsing context</a>'s <code><a href="#window">Window</a></code> object's
                   7585:   <code><a href="dom.html#document">Document</a></code> object (and the <code title="dom-event-currentTarget">currentTarget</code> set to the
                   7586:   <code><a href="#window">Window</a></code> object).</p>
                   7587: 
                   7588:   <p>The method must return the <code><a href="#windowproxy">WindowProxy</a></code> object of the
                   7589:   <a href="#browsing-context">browsing context</a> that was navigated, or null if no
                   7590:   browsing context was navigated.</p>
                   7591: 
                   7592:   <hr><p>The <dfn id="dom-name" title="dom-name"><code>name</code></dfn> attribute of
                   7593:   the <code><a href="#window">Window</a></code> object must, on getting, return the current
                   7594:   <a href="#browsing-context-name" title="browsing context name">name</a> of the
                   7595:   <a href="#browsing-context">browsing context</a>, and, on setting, set the <a href="#browsing-context-name" title="browsing context name">name</a> of the <a href="#browsing-context">browsing
                   7596:   context</a> to the new value.</p>
                   7597: 
                   7598:   <p class="note">The name <a href="#resetBCName">gets reset</a> when
                   7599:   the browsing context is navigated to another domain.</p>
                   7600: 
                   7601:   <hr><p>The <dfn id="dom-window-close" title="dom-window-close"><code>close()</code></dfn>
                   7602:   method on <code><a href="#window">Window</a></code> objects should, if the corresponding
                   7603:   <a href="#browsing-context">browsing context</a> <var title="">A</var> is
                   7604:   <a href="#script-closable">script-closable</a> and the <a href="#script's-browsing-context" title="script's
                   7605:   browsing context">browsing context</a> of the <a href="#concept-script" title="concept-script">script</a> that invokes the method is
                   7606:   <a href="#allowed-to-navigate">allowed to navigate</a> the <a href="#browsing-context">browsing context</a>
                   7607:   <var title="">A</var>, close the <a href="#browsing-context">browsing context</a> <var title="">A</var> (and may <a href="#a-browsing-context-is-discarded" title="a browsing context is
                   7608:   discarded">discard</a> it too).</p>
                   7609: 
                   7610:   <p>A <a href="#browsing-context">browsing context</a> is <dfn id="script-closable">script-closable</dfn> if
                   7611:   it is an <a href="#auxiliary-browsing-context">auxiliary browsing context</a> that was created by
                   7612:   a script (as opposed to by an action of the user), or if it is a
                   7613:   <a href="#browsing-context">browsing context</a> whose <a href="#session-history">session history</a>
                   7614:   contains only one <code><a href="dom.html#document">Document</a></code>.</p>
                   7615: 
                   7616:   <p>The <dfn id="dom-window-stop" title="dom-window-stop"><code>stop()</code></dfn> method
                   7617:   on <code><a href="#window">Window</a></code> objects should, if there is an existing
                   7618:   attempt to <a href="#navigate">navigate</a> the <a href="#browsing-context">browsing context</a>
                   7619:   and that attempt is not currently running the <a href="#unload-a-document">unload a
                   7620:   document</a> algorithm, cancel that <a href="#navigate" title="navigate">navigation</a>; then, it must <a href="#abort-a-document" title="abort
                   7621:   a document">abort</a> the <a href="#active-document">active document</a> of the
                   7622:   <a href="#browsing-context">browsing context</a> of the <code><a href="#window">Window</a></code> object on
                   7623:   which it was invoked.</p>
                   7624: 
                   7625:   </div>
                   7626: 
                   7627: 
                   7628:   <h4 id="accessing-other-browsing-contexts"><span class="secno">5.2.3 </span>Accessing other browsing contexts</h4>
                   7629: 
                   7630:   <dl class="domintro"><dt><var title="">window</var> . <code title="dom-length"><a href="#dom-length">length</a></code></dt>
                   7631: 
                   7632:    <dd>
                   7633: 
                   7634:     <p>Returns the number of <a href="#child-browsing-context" title="child browsing
                   7635:     context">child browsing contexts</a>.</p>
                   7636: 
                   7637:    </dd>
                   7638: 
                   7639:    <dt><var title="">window</var>[<var title="">index</var>]</dt>
                   7640: 
                   7641:    <dd>
                   7642: 
                   7643:     <p>Returns the indicated <a href="#child-browsing-context">child browsing context</a>.</p>
                   7644: 
                   7645:    </dd>
                   7646: 
                   7647:   </dl><div class="impl">
                   7648: 
                   7649:   <p>The <dfn id="dom-length" title="dom-length"><code>length</code></dfn> IDL
                   7650:   attribute on the <code><a href="#window">Window</a></code> interface must return the
                   7651:   number of <a href="#child-browsing-context" title="child browsing context">child browsing
                   7652:   contexts</a> that are <a href="#browsing-context-nested-through" title="browsing context nested
                   7653:   through">nested through</a> elements that are <a href="infrastructure.html#in-a-document" title="in a
                   7654:   document">in the <code>Document</code></a> that is the
                   7655:   <a href="#active-document">active document</a> of that <code><a href="#window">Window</a></code> object, if
                   7656:   that <code><a href="#window">Window</a></code>'s <a href="#browsing-context">browsing context</a> shares the
                   7657:   same <a href="#event-loop">event loop</a> as the <a href="#script's-browsing-context">script's browsing
                   7658:   context</a> of the <a href="#entry-script">entry script</a> accessing the IDL
                   7659:   attribute; otherwise, it must return zero.</p>
                   7660: 
                   7661:   <!-- in other words, frames are only accessible to same-thread processes -->
                   7662: 
                   7663:   <p>The <a href="infrastructure.html#supported-property-indices">supported property indices</a> on the
                   7664:   <code><a href="#window">Window</a></code> object at any instant are the numbers in the
                   7665:   range 0 .. <span title=""><var title="">n</var>-1</span>, where <var title="">n</var> is the number returned by the <code title="dom-length"><a href="#dom-length">length</a></code> IDL attribute. If <var title="">n</var> is zero then there are no <a href="infrastructure.html#supported-property-indices">supported property
                   7666:   indices</a>.</p>
                   7667: 
                   7668:   <p>To <dfn id="dom-window-item" title="dom-window-item">determine the value of an indexed
                   7669:   property</dfn> <var title="">index</var> of a <code><a href="#window">Window</a></code>
                   7670:   object, the user agent must return the <code><a href="#windowproxy">WindowProxy</a></code>
                   7671:   object of the <var title="">index</var>th <a href="#child-browsing-context">child browsing
                   7672:   context</a> of the <code><a href="dom.html#document">Document</a></code> that is nested through
                   7673:   an element that is <a href="infrastructure.html#in-a-document" title="in a document">in the
                   7674:   <code>Document</code></a>, sorted in the <a href="infrastructure.html#tree-order">tree order</a>
                   7675:   of the elements nesting those <a href="#browsing-context" title="browsing
                   7676:   context">browsing contexts</a>.</p>
                   7677: 
                   7678:   <p>These properties are the <dfn id="dynamic-nested-browsing-context-properties">dynamic nested browsing context
                   7679:   properties</dfn>.</p>
                   7680: 
                   7681:   </div>
                   7682: 
                   7683: 
                   7684: 
                   7685:   <h4 id="named-access-on-the-window-object"><span class="secno">5.2.4 </span>Named access on the <code><a href="#window">Window</a></code> object</h4>
                   7686: 
                   7687:   <dl class="domintro"><dt><var title="">window</var>[<var title="">name</var>]</dt>
                   7688: 
                   7689:    <dd>
                   7690: 
                   7691:     <p>Returns the indicated element or collection of elements.</p>
                   7692: 
                   7693:    </dd>
                   7694: 
                   7695:   </dl><div class="impl">
                   7696: 
                   7697:   <p>The <code><a href="#window">Window</a></code> interface <a href="infrastructure.html#support-named-properties" title="support named
                   7698:   properties">supports named properties</a>. The <a href="infrastructure.html#supported-property-names">supported
                   7699:   property names</a> at any moment consist of:</p>
                   7700: 
                   7701:   <ul><li>the <a href="#browsing-context-name">browsing context name</a> of any <a href="#child-browsing-context">child
                   7702:    browsing context</a> of the <a href="#active-document">active document</a> whose
                   7703:    name is not the empty string,</li>
                   7704: 
                   7705:    <li>the value of the <code title="">name</code> content attribute
                   7706:    for all <code><a href="the-a-element.html#the-a-element">a</a></code>, <code><a href="#the-applet-element">applet</a></code>, <code><a href="the-area-element.html#the-area-element">area</a></code>,
                   7707:    <code><a href="the-embed-element.html#the-embed-element">embed</a></code>, <code><a href="the-form-element.html#the-form-element">form</a></code>, <code><a href="#frameset">frameset</a></code>,
                   7708:    <code><a href="the-img-element.html#the-img-element">img</a></code>, and <code><a href="the-object-element.html#the-object-element">object</a></code> elements in the
                   7709:    <a href="#active-document">active document</a> that have a <code title="">name</code>
                   7710:    content attribute, and</li>
                   7711: 
                   7712:    <li>the value of the <code title="attr-id"><a href="global-attributes.html#the-id-attribute">id</a></code> content
                   7713:    attribute of any <a href="infrastructure.html#html-elements" title="HTML elements">HTML element</a> in
                   7714:    the <a href="#active-document">active document</a> with an <code title="attr-id"><a href="global-attributes.html#the-id-attribute">id</a></code> content attribute.</li>
                   7715: 
                   7716:   </ul><p>To <a href="infrastructure.html#determine-the-value-of-a-named-property">determine the value of a named property</a> <var title="">name</var> when <dfn id="dom-window-nameditem" title="dom-window-namedItem">the
                   7717:   <code>Window</code> object is indexed for property retrieval</dfn>,
                   7718:   the user agent must return the value obtained using the following
                   7719:   steps:</p>
                   7720: 
                   7721:   <ol><!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1716 --><li>
                   7722: 
                   7723:     <p>Let <var title="">objects</var> be the list of <a href="#dom-window-nameditem-filter" title="dom-window-namedItem-filter">named objects</a> with the
                   7724:     name <var title="">name</var> in the <a href="#active-document">active document</a>.
                   7725: 
                   7726:     </p><p class="note">There will be at least one such object, by
                   7727:     definition.<!-- (If there wasn't, then this algorithm wouldn't
                   7728:     have been invoked by Web IDL.) --></p>
                   7729: 
                   7730:    </li>
                   7731: 
                   7732:    <li>
                   7733: 
                   7734:     <p>If <var title="">objects</var> contains a <a href="#nested-browsing-context">nested browsing
                   7735:     context</a>, then return the <code><a href="#windowproxy">WindowProxy</a></code> object of
                   7736:     the <a href="#nested-browsing-context">nested browsing context</a> corresponding to the
                   7737:     first <a href="#browsing-context-container">browsing context container</a> in <a href="infrastructure.html#tree-order">tree
                   7738:     order</a> whose <a href="#browsing-context">browsing context</a> is in <var title="">objects</var>, and abort these steps.</p>
                   7739: 
                   7740:    </li>
                   7741: 
                   7742:    <li>
                   7743: 
                   7744:     <p>Otherwise, if <var title="">elements</var> has only one
                   7745:     element, return that element and abort these steps.</p>
                   7746: 
                   7747:    </li>
                   7748: 
                   7749:    <li>
                   7750: 
                   7751:     <p>Otherwise return an <code><a href="infrastructure.html#htmlcollection">HTMLCollection</a></code> rooted at the
                   7752:     <code><a href="dom.html#document">Document</a></code> node, whose filter matches only <a href="#dom-window-nameditem-filter" title="dom-window-namedItem-filter">named objects</a> with the
                   7753:     name <var title="">name</var>. (By definition, these will all be
                   7754:     elements.)</p> <!-- the same one each time is returned, because of
                   7755:     the rule under collections -->
                   7756: 
                   7757:    </li>
                   7758: 
                   7759:   </ol><p><dfn id="dom-window-nameditem-filter" title="dom-window-nameditem-filter">Named objects</dfn>
                   7760:   with the name <var title="">name</var>, for the purposes of the
                   7761:   above algorithm, are those that are either:</p>
                   7762: 
                   7763:   <ul><li><a href="#child-browsing-context" title="child browsing context">child browsing
                   7764:    contexts</a> of the <a href="#active-document">active document</a> whose name is
                   7765:    <var title="">name</var>,</li>
                   7766: 
                   7767:    <li><code><a href="the-a-element.html#the-a-element">a</a></code>, <code><a href="#the-applet-element">applet</a></code>, <code><a href="the-area-element.html#the-area-element">area</a></code>,
                   7768:    <code><a href="the-embed-element.html#the-embed-element">embed</a></code>, <code><a href="the-form-element.html#the-form-element">form</a></code>, <code><a href="#frameset">frameset</a></code>,
                   7769:    <code><a href="the-img-element.html#the-img-element">img</a></code>, or <code><a href="the-object-element.html#the-object-element">object</a></code> elements that have a <code title="attr-name">name</code> content attribute whose value is <var title="">name</var>, or</li>
                   7770: 
                   7771:    <li><a href="infrastructure.html#html-elements">HTML elements</a> that have an <code title="attr-id"><a href="global-attributes.html#the-id-attribute">id</a></code> content attribute whose value is <var title="">name</var>.</li>
                   7772: 
                   7773:   </ul></div>
                   7774: 
                   7775: 
                   7776:   <div class="impl">
                   7777: 
                   7778:   <h4 id="garbage-collection-and-browsing-contexts"><span class="secno">5.2.5 </span>Garbage collection and browsing contexts</h4>
                   7779: 
                   7780:   <p>A <a href="#browsing-context">browsing context</a> has a strong reference to each of
                   7781:   its <code><a href="dom.html#document">Document</a></code>s and its <code><a href="#windowproxy">WindowProxy</a></code> object,
                   7782:   and the user agent itself has a strong reference to its <a href="#top-level-browsing-context" title="top-level browsing context">top-level browsing
                   7783:   contexts</a>.</p>
                   7784: 
                   7785:   <p>A <code><a href="dom.html#document">Document</a></code> has a strong reference to its
                   7786:   <code><a href="#window">Window</a></code> object.</p>
                   7787: 
                   7788:   <p class="note">A <code><a href="#window">Window</a></code> object <a href="common-dom-interfaces.html#implied-strong-reference" title="implied
                   7789:   strong reference">has a strong reference</a> to its
                   7790:   <code><a href="dom.html#document">Document</a></code> object through its <code title="dom-document"><a href="#dom-document-0">document</a></code> attribute.  Thus, references
                   7791:   from other scripts to either of those objects will keep both
                   7792:   alive. Similarly, both <code><a href="dom.html#document">Document</a></code> and <code><a href="#window">Window</a></code>
                   7793:   objects have <a href="common-dom-interfaces.html#implied-strong-reference" title="implied strong reference">implied strong
                   7794:   references</a> to the <code><a href="#windowproxy">WindowProxy</a></code> object.</p>
                   7795: 
                   7796:   <p>Each <a href="#concept-script" title="concept-script">script</a> has a strong
                   7797:   reference to its <a href="#script's-browsing-context" title="script's browsing context">browsing
                   7798:   context</a> and its <a href="#script's-document" title="script's
                   7799:   document">document</a>.</p>
                   7800: 
                   7801:   <!-- discard a document -->
                   7802:   <p>When a <a href="#browsing-context">browsing context</a> is to <dfn id="discard-a-document">discard a
                   7803:   <code>Document</code></dfn>, the user agent must run the following
                   7804:   steps:</p>
                   7805: 
                   7806:   <ol><li><p>Set the <code><a href="dom.html#document">Document</a></code>'s <var title="concept-document-salvageable"><a href="#concept-document-salvageable">salvageable</a></var> state to
                   7807:    false.</p></li>
                   7808: 
                   7809:    <li><p>Run any <a href="#unloading-document-cleanup-steps">unloading document cleanup steps</a> for
                   7810:    the <code><a href="dom.html#document">Document</a></code> that are defined by this specification
                   7811:    and <a href="infrastructure.html#other-applicable-specifications">other applicable specifications</a>.</p></li>
                   7812: 
                   7813:    <li><p><a href="#abort-a-document" title="abort a document">Abort the
                   7814:    <code>Document</code></a>.</p></li>
                   7815: 
                   7816:    <li><p>Remove any <a href="#concept-task" title="concept-task">tasks</a>
                   7817:    associated with the <code><a href="dom.html#document">Document</a></code> in any <a href="#task-source">task
                   7818:    source</a>, without running those tasks.</p></li>
                   7819: 
                   7820:    <li><p><a href="#a-browsing-context-is-discarded" title="a browsing context is discarded">Discard</a>
                   7821:    all the <a href="#child-browsing-context" title="child browsing context">child browsing
                   7822:    contexts</a> of the <code><a href="dom.html#document">Document</a></code>.</p></li>
                   7823: 
                   7824:    <li><p>Lose the strong reference from the <code><a href="dom.html#document">Document</a></code>'s
                   7825:    <a href="#browsing-context">browsing context</a> to the
                   7826:    <code><a href="dom.html#document">Document</a></code>.</p></li>
                   7827: 
                   7828:   </ol><p class="note">Whenever a <code><a href="dom.html#document">Document</a></code> object is <a href="#discard-a-document" title="discard a Document">discarded</a>, it is also removed from
                   7829:   the list of <span>the worker's <code><a href="dom.html#document">Document</a></code>s</span> of each
                   7830:   worker whose list contains that <code><a href="dom.html#document">Document</a></code>.</p>
                   7831: 
                   7832:   <p>When <dfn id="a-browsing-context-is-discarded">a <em><span>browsing context</span></em> is
                   7833:   discarded</dfn>, the strong reference from the user agent itself to
                   7834:   the <a href="#browsing-context">browsing context</a> must be severed, and all the
                   7835:   <code><a href="dom.html#document">Document</a></code> objects for all the entries in the
                   7836:   <a href="#browsing-context">browsing context</a>'s session history must be <a href="#discard-a-document" title="discard a document">discarded</a> as well.</p>
                   7837: 
                   7838:   <p>User agents may <a href="#a-browsing-context-is-discarded" title="a browsing context is
                   7839:   discarded">discard</a> <a href="#top-level-browsing-context" title="top-level browsing
                   7840:   context">top-level browsing contexts</a> at any time (typically,
                   7841:   in response to user requests, e.g. when a user closes a window
                   7842:   containing one or more <a href="#top-level-browsing-context" title="top-level browsing
                   7843:   context">top-level browsing contexts</a>). Other <a href="#browsing-context" title="browsing context">browsing contexts</a> must be discarded
                   7844:   once their <code><a href="#windowproxy">WindowProxy</a></code> object is eligible for garbage
                   7845:   collection.</p>
                   7846: 
                   7847:   </div>
                   7848: 
                   7849: 
                   7850: 
                   7851:   <h4 id="browser-interface-elements"><span class="secno">5.2.6 </span>Browser interface elements</h4>
                   7852: 
                   7853:   <p>To allow Web pages to integrate with Web browsers, certain Web
                   7854:   browser interface elements are exposed in a limited way to scripts
                   7855:   in Web pages.</p>
                   7856: 
                   7857:   <p>Each interface element is represented by a <code><a href="#barprop">BarProp</a></code>
                   7858:   object:</p>
                   7859: 
                   7860:   <pre class="idl">interface <dfn id="barprop">BarProp</dfn> {
                   7861:            attribute boolean <a href="#dom-barprop-visible" title="dom-BarProp-visible">visible</a>;
                   7862: };</pre>
                   7863: 
                   7864:   <dl class="domintro"><dt><var title="">window</var> . <code title="dom-window-locationbar"><a href="#dom-window-locationbar">locationbar</a></code> . <code title="dom-BarProp-visible"><a href="#dom-barprop-visible">visible</a></code></dt>
                   7865:    <dd>
                   7866:     <p>Returns true if the location bar is visible; otherwise, returns false.</p>
                   7867:    </dd>
                   7868: 
                   7869:    <dt><var title="">window</var> . <code title="dom-window-menubar"><a href="#dom-window-menubar">menubar</a></code> . <code title="dom-BarProp-visible"><a href="#dom-barprop-visible">visible</a></code></dt>
                   7870:    <dd>
                   7871:     <p>Returns true if the menu bar is visible; otherwise, returns false.</p>
                   7872:    </dd>
                   7873: 
                   7874:    <dt><var title="">window</var> . <code title="dom-window-personalbar"><a href="#dom-window-personalbar">personalbar</a></code> . <code title="dom-BarProp-visible"><a href="#dom-barprop-visible">visible</a></code></dt>
                   7875:    <!--<dt><var title="">window</var> . <code title="dom-window-directories">directories</code> . <code title="dom-BarProp-visible">visible</code></dt>-->
                   7876:    <dd>
                   7877:     <p>Returns true if the personal bar is visible; otherwise, returns false.</p>
                   7878:    </dd>
                   7879: 
                   7880:    <dt><var title="">window</var> . <code title="dom-window-scrollbars"><a href="#dom-window-scrollbars">scrollbars</a></code> . <code title="dom-BarProp-visible"><a href="#dom-barprop-visible">visible</a></code></dt>
                   7881:    <dd>
                   7882:     <p>Returns true if the scroll bars are visible; otherwise, returns false.</p>
                   7883:    </dd>
                   7884: 
                   7885:    <dt><var title="">window</var> . <code title="dom-window-statusbar"><a href="#dom-window-statusbar">statusbar</a></code> . <code title="dom-BarProp-visible"><a href="#dom-barprop-visible">visible</a></code></dt>
                   7886:    <dd>
                   7887:     <p>Returns true if the status bar is visible; otherwise, returns false.</p>
                   7888:    </dd>
                   7889: 
                   7890:    <dt><var title="">window</var> . <code title="dom-window-toolbar"><a href="#dom-window-toolbar">toolbar</a></code> . <code title="dom-BarProp-visible"><a href="#dom-barprop-visible">visible</a></code></dt>
                   7891:    <dd>
                   7892:     <p>Returns true if the toolbar is visible; otherwise, returns false.</p>
                   7893:    </dd>
                   7894: 
                   7895:   </dl><div class="impl">
                   7896: 
                   7897:   <p>The <dfn id="dom-barprop-visible" title="dom-BarProp-visible">visible</dfn> attribute, on
                   7898:   getting, must return either true or a value determined by the user
                   7899:   agent to most accurately represent the visibility state of the user
                   7900:   interface element that the object represents, as described below. On
                   7901:   setting, the new value must be discarded.</p>
                   7902: 
                   7903:   <p>The following <code><a href="#barprop">BarProp</a></code> objects exist for each
                   7904:   <code><a href="dom.html#document">Document</a></code> object in a <a href="#browsing-context">browsing
                   7905:   context</a>. Some of the user interface elements represented by
                   7906:   these objects might have no equivalent in some user agents; for
                   7907:   those user agents, except when otherwise specified, the object must
                   7908:   act as if it was present and visible (i.e. its <code title="dom-BarProp-visible"><a href="#dom-barprop-visible">visible</a></code> attribute must return
                   7909:   true).</p>
                   7910: 
                   7911:   <dl><dt><dfn id="the-location-bar-barprop-object">The location bar <code>BarProp</code> object</dfn></dt>
                   7912: 
                   7913:    <dd>Represents the user interface element that contains a control
                   7914:    that displays the <a href="urls.html#url">URL</a> of the <a href="#active-document">active
                   7915:    document</a>, or some similar interface concept.</dd>
                   7916: 
                   7917:    <dt><dfn id="the-menu-bar-barprop-object">The menu bar <code>BarProp</code> object</dfn></dt>
                   7918: 
                   7919:    <dd>Represents the user interface element that contains a list of
                   7920:    commands in menu form, or some similar interface concept.</dd>
                   7921: 
                   7922:    <dt><dfn id="the-personal-bar-barprop-object">The personal bar <code>BarProp</code> object</dfn></dt>
                   7923: 
                   7924:    <dd>Represents the user interface element that contains links to
                   7925:    the user's favorite pages, or some similar interface concept.</dd>
                   7926: 
                   7927:    <dt><dfn id="the-scrollbar-barprop-object">The scrollbar <code>BarProp</code> object</dfn></dt>
                   7928: 
                   7929:    <dd>Represents the user interface element that contains a scrolling
                   7930:    mechanism, or some similar interface concept.</dd>
                   7931: 
                   7932:    <dt><dfn id="the-status-bar-barprop-object">The status bar <code>BarProp</code> object</dfn></dt>
                   7933: 
                   7934:    <dd>Represents a user interface element found immediately below or
                   7935:    after the document, as appropriate for the user's media. If the
                   7936:    user agent has no such user interface element, then the object may
                   7937:    act as if the corresponding user interface element was absent
                   7938:    (i.e. its <code title="dom-BarProp-visible"><a href="#dom-barprop-visible">visible</a></code>
                   7939:    attribute may return false).</dd>
                   7940: 
                   7941:    <dt><dfn id="the-toolbar-barprop-object">The toolbar <code>BarProp</code> object</dfn></dt>
                   7942: 
                   7943:    <dd>Represents the user interface element found immediately above
                   7944:    or before the document, as appropriate for the user's media. If the
                   7945:    user agent has no such user interface element, then the object may
                   7946:    act as if the corresponding user interface element was absent
                   7947:    (i.e. its <code title="dom-BarProp-visible"><a href="#dom-barprop-visible">visible</a></code>
                   7948:    attribute may return false).</dd>
                   7949: 
                   7950:   </dl><p>The <dfn id="dom-window-locationbar" title="dom-window-locationbar"><code>locationbar</code></dfn>
                   7951:   attribute must return <a href="#the-location-bar-barprop-object">the location bar <code>BarProp</code>
                   7952:   object</a>.</p>
                   7953: 
                   7954:   <p>The <dfn id="dom-window-menubar" title="dom-window-menubar"><code>menubar</code></dfn>
                   7955:   attribute must return <a href="#the-menu-bar-barprop-object">the menu bar <code>BarProp</code>
                   7956:   object</a>.</p>
                   7957: 
                   7958:   <p>The <dfn id="dom-window-personalbar" title="dom-window-personalbar"><code>personalbar</code></dfn>
                   7959:   attribute must return <a href="#the-personal-bar-barprop-object">the personal bar <code>BarProp</code>
                   7960:   object</a>.</p>
                   7961: 
                   7962:   <p>The <dfn id="dom-window-scrollbars" title="dom-window-scrollbars"><code>scrollbars</code></dfn>
                   7963:   attribute must return <a href="#the-scrollbar-barprop-object">the scrollbar <code>BarProp</code>
                   7964:   object</a>.</p>
                   7965: 
                   7966:   <p>The <dfn id="dom-window-statusbar" title="dom-window-statusbar"><code>statusbar</code></dfn> attribute
                   7967:   must return <a href="#the-status-bar-barprop-object">the status bar <code>BarProp</code>
                   7968:   object</a>.</p>
                   7969: 
                   7970:   <p>The <dfn id="dom-window-toolbar" title="dom-window-toolbar"><code>toolbar</code></dfn>
                   7971:   attribute must return <a href="#the-toolbar-barprop-object">the toolbar <code>BarProp</code>
                   7972:   object</a>.</p>
                   7973: 
                   7974: <!--
                   7975:   <p>For legacy reasons, the <dfn
                   7976:   title="dom-window-directories"><code>directories</code></dfn>
                   7977:   attribute must also return <span>the personal bar
                   7978:   <code>BarProp</code> object</span>.</p>
                   7979: -->
                   7980: 
                   7981:   <hr><p>For historical reasons, the <dfn id="dom-window-status" title="dom-window-status"><code>status</code></dfn> attribute on the
                   7982:   <code><a href="#window">Window</a></code> object must return an empty string on getting,
                   7983:   and do nothing on setting.</p>
                   7984: 
                   7985:   </div>
                   7986: 
                   7987: 
                   7988:   <div class="impl">
                   7989: 
                   7990:   <h4 id="the-windowproxy-object"><span class="secno">5.2.7 </span>The <code><a href="#windowproxy">WindowProxy</a></code> object</h4>
                   7991: 
                   7992: 
                   7993:   <p>As mentioned earlier, each <a href="#browsing-context">browsing context</a> has a
                   7994:   <dfn id="windowproxy"><code>WindowProxy</code></dfn> object. This object is unusual
                   7995:   in that all operations that would be performed on it must be
                   7996:   performed on the <code><a href="#window">Window</a></code> object of the <a href="#browsing-context">browsing
                   7997:   context</a>'s <a href="#active-document">active document</a> instead. It is thus
                   7998:   indistinguishable from that <code><a href="#window">Window</a></code> object in every way
                   7999:   until the <a href="#browsing-context">browsing context</a> is navigated.</p>
                   8000: 
                   8001:   <p>There is no <code><a href="#windowproxy">WindowProxy</a></code> interface object.</p>
                   8002: 
                   8003:   <p class="note">The <code><a href="#windowproxy">WindowProxy</a></code> object allows scripts
                   8004:   to act as if each <a href="#browsing-context">browsing context</a> had a single
                   8005:   <code><a href="#window">Window</a></code> object, while still keeping separate
                   8006:   <code><a href="#window">Window</a></code> objects for each <code><a href="dom.html#document">Document</a></code>.</p>
                   8007: 
                   8008:   <div class="example">
                   8009: 
                   8010:    <p>In the following example, the variable <var title="">x</var> is
                   8011:    set to the <code><a href="#windowproxy">WindowProxy</a></code> object returned by the <code title="dom-window"><a href="#dom-window">window</a></code> accessor on the global object. All
                   8012:    of the expressions following the assignment return true, because in
                   8013:    every respect, the <code><a href="#windowproxy">WindowProxy</a></code> object acts like the
                   8014:    underlying <code><a href="#window">Window</a></code> object.</p>
                   8015: 
                   8016:    <pre>var x = window;
                   8017: x instanceof Window; // true
                   8018: x === this; // true</pre>
                   8019: 
                   8020:   </div>
                   8021: 
                   8022:   </div>
                   8023: <!--TOPIC:HTML-->
                   8024: 
                   8025: 
                   8026: 
                   8027: <!--TOPIC:Security-->
                   8028:   <h3 id="origin"><span class="secno">5.3 </span>Origin</h3>
                   8029:   <!-- Hallowed are the Ori -->
                   8030: 
                   8031:   <p>The <dfn id="origin-0">origin</dfn> of a resource and the <dfn id="effective-script-origin">effective script
                   8032:   origin</dfn> of a resource are both either opaque identifiers or
                   8033:   tuples consisting of a scheme component, a host component, a port
                   8034:   component, and optionally extra data.</p>
                   8035: 
                   8036:   <p class="note">The extra data could include the certificate of the
                   8037:   site when using encrypted connections, to ensure that if the site's
                   8038:   secure certificate changes, the origin is considered to change as
                   8039:   well.</p>
                   8040: 
                   8041:   <div class="impl">
                   8042: 
                   8043:   <p>An <a href="#origin-0">origin</a> or <a href="#effective-script-origin">effective script origin</a>
                   8044:   can be defined as an <dfn id="concept-origin-alias" title="concept-origin-alias">alias</dfn>
                   8045:   to another <a href="#origin-0">origin</a> or <a href="#effective-script-origin">effective script
                   8046:   origin</a>. The value of the <a href="#origin-0">origin</a> or
                   8047:   <a href="#effective-script-origin">effective script origin</a> is then the value of the
                   8048:   <a href="#origin-0">origin</a> or <a href="#effective-script-origin">effective script origin</a> to which
                   8049:   it is an alias.</p>
                   8050: 
                   8051:   <p>These characteristics are defined as follows:</p>
                   8052: 
                   8053:   <dl><dt>For URLs</dt>
                   8054: 
                   8055:    <dd>
                   8056: 
                   8057:     <p>The <a href="#origin-0">origin</a> and <a href="#effective-script-origin">effective script
                   8058:     origin</a> of the <a href="urls.html#url">URL</a> are the origin defined in
                   8059:     <cite>The Web Origin Concept</cite>. <a href="#refsORIGIN">[ORIGIN]</a></p>
                   8060: 
                   8061:    </dd>
                   8062: 
                   8063: 
                   8064:    <dt>For <code><a href="dom.html#document">Document</a></code> objects</dt>
                   8065: 
                   8066:    <dd>
                   8067: 
                   8068:     <dl class="switch"><dt id="sandboxOrigin">If a <code><a href="dom.html#document">Document</a></code>'s <a href="#active-sandboxing-flag-set">active
                   8069:      sandboxing flag set</a> has its <a href="#sandboxed-origin-browsing-context-flag">sandboxed origin
                   8070:      browsing context flag</a> set</dt>
                   8071: 
                   8072:      <dd>
                   8073: 
                   8074:       <p>The <a href="#origin-0">origin</a> is a globally unique identifier
                   8075:       assigned when the <code><a href="dom.html#document">Document</a></code> is created.</p>
                   8076: 
                   8077:       <p>The <a href="#effective-script-origin">effective script origin</a> is initially an
                   8078:       <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8079:       <a href="#origin-0">origin</a> of the <code><a href="dom.html#document">Document</a></code>.</p>
                   8080: 
                   8081:      </dd>
                   8082: 
                   8083: 
                   8084:      <dt>If a <code><a href="dom.html#document">Document</a></code> was generated from a <a href="#javascript-protocol" title="javascript protocol"><code>javascript:</code>
                   8085:      URL</a></dt>
                   8086: 
                   8087:      <dd>
                   8088: 
                   8089:       <p>The <a href="#origin-0">origin</a> is an <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8090:       <a href="#origin-0">origin</a> of the script of that <a href="#javascript-protocol" title="javascript protocol"><code>javascript:</code>
                   8091:       URL</a>.</p>
                   8092: 
                   8093:       <p>The <a href="#effective-script-origin">effective script origin</a> is initially an
                   8094:       <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8095:       <a href="#origin-0">origin</a> of the <code><a href="dom.html#document">Document</a></code>.</p>
                   8096: 
                   8097:      </dd>
                   8098: 
                   8099: 
                   8100:      <dt>If a <code><a href="dom.html#document">Document</a></code> was served over the network and
                   8101:      has an address that uses a URL scheme with a server-based naming
                   8102:      authority</dt>
                   8103: 
                   8104:      <dd>
                   8105: 
                   8106:       <p>The <a href="#origin-0">origin</a> is an <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8107:       <a href="#origin-0">origin</a> of <a href="dom.html#the-document's-address">the <code>Document</code>'s
                   8108:       address</a>.</p>
                   8109: 
                   8110:       <p>The <a href="#effective-script-origin">effective script origin</a> is initially an
                   8111:       <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8112:       <a href="#origin-0">origin</a> of the <code><a href="dom.html#document">Document</a></code>.</p>
                   8113: 
                   8114:      </dd>
                   8115: 
                   8116: 
                   8117:      <dt>If a <code><a href="dom.html#document">Document</a></code> was generated from a <a href="infrastructure.html#data-protocol" title="data protocol"><code title="">data:</code> URL</a> that
                   8118:      was returned as the location of an HTTP redirect (<a href="urls.html#concept-http-equivalent-codes" title="concept-http-equivalent-codes">or equivalent</a> in
                   8119:      other protocols)</dt>
                   8120: 
                   8121:      <dd>
                   8122: 
                   8123:       <p>The <a href="#origin-0">origin</a> is an <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8124:       <a href="#origin-0">origin</a> of the <a href="urls.html#url">URL</a> that redirected to
                   8125:       the <a href="infrastructure.html#data-protocol" title="data protocol"><code title="">data:</code>
                   8126:       URL</a>.</p>
                   8127: 
                   8128:       <p>The <a href="#effective-script-origin">effective script origin</a> is initially an
                   8129:       <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8130:       <a href="#origin-0">origin</a> of the <code><a href="dom.html#document">Document</a></code>.</p>
                   8131: 
                   8132:      </dd>
                   8133: 
                   8134: 
                   8135:      <dt>If a <code><a href="dom.html#document">Document</a></code> was generated from a <a href="infrastructure.html#data-protocol" title="data protocol"><code title="">data:</code> URL</a>
                   8136:      found in another <code><a href="dom.html#document">Document</a></code> or in a script</dt>
                   8137: 
                   8138:      <dd>
                   8139: 
                   8140:       <p>The <a href="#origin-0">origin</a> is an <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8141:       <a href="#origin-0">origin</a> of the <code><a href="dom.html#document">Document</a></code> or script that
                   8142:       initiated the <a href="#navigate" title="navigate">navigation</a> to that
                   8143:       <a href="urls.html#url">URL</a>.</p>
                   8144: 
                   8145:       <p>The <a href="#effective-script-origin">effective script origin</a> is initially an
                   8146:       <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8147:       <a href="#effective-script-origin">effective script origin</a> of the
                   8148:       <code><a href="dom.html#document">Document</a></code> or script that initiated the <a href="#navigate" title="navigate">navigation</a> to that <a href="urls.html#url">URL</a>.</p>
                   8149: 
                   8150:      </dd>
                   8151: 
                   8152: 
                   8153:      <dt>If a <code><a href="dom.html#document">Document</a></code> has the <a href="dom.html#the-document's-address" title="the
                   8154:      document's address">address</a>
                   8155:      "<code><a href="urls.html#about:blank">about:blank</a></code>"</dt>
                   8156: 
                   8157:      <dd>
                   8158: 
                   8159:       <p>The <a href="#origin-0">origin</a> and <a href="#effective-script-origin">effective script
                   8160:       origin</a> of the <code><a href="dom.html#document">Document</a></code> are <a href="#about-blank-origin">those it was assigned when its
                   8161:       browsing context was created</a>.</p>
                   8162: 
                   8163:      </dd>
                   8164: 
                   8165: 
                   8166:      <dt>If a <code><a href="dom.html#document">Document</a></code> is <a href="the-iframe-element.html#an-iframe-srcdoc-document">an <code>iframe</code> <code title="attr-iframe-srcdoc">srcdoc</code> document</a></dt>
                   8167: 
                   8168:      <dd>
                   8169: 
                   8170:       <p>The <a href="#origin-0">origin</a> of the <code><a href="dom.html#document">Document</a></code> is an
                   8171:       <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8172:       <a href="#origin-0">origin</a> of the <code><a href="dom.html#document">Document</a></code>'s
                   8173:       <a href="#browsing-context">browsing context</a>'s <a href="#browsing-context-container">browsing context
                   8174:       container</a>'s <code><a href="dom.html#document">Document</a></code>.</p>
                   8175: 
                   8176:       <p>The <a href="#effective-script-origin">effective script origin</a> is initially an
                   8177:       <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8178:       <a href="#effective-script-origin">effective script origin</a> of the
                   8179:       <code><a href="dom.html#document">Document</a></code>'s <a href="#browsing-context">browsing context</a>'s
                   8180:       <a href="#browsing-context-container">browsing context container</a>'s
                   8181:       <code><a href="dom.html#document">Document</a></code>.</p>
                   8182: 
                   8183:      </dd>
                   8184: 
                   8185: 
                   8186:      <dt>If a <code><a href="dom.html#document">Document</a></code> was obtained in some other manner
                   8187:      (e.g. a <a href="infrastructure.html#data-protocol" title="data protocol"><code title="">data:</code>
                   8188:      URL</a> typed in by the user, a <code><a href="dom.html#document">Document</a></code> created
                   8189:      using the <code title="dom-DOMImplementation-createDocument"><a href="infrastructure.html#dom-domimplementation-createdocument">createDocument()</a></code>
                   8190:      API, etc)</dt>
                   8191: 
                   8192:      <dd>
                   8193: 
                   8194:       <p>The <a href="#origin-0">origin</a> is a globally unique identifier
                   8195:       assigned when the <code><a href="dom.html#document">Document</a></code> is created.</p>
                   8196: 
                   8197:       <p>The <a href="#effective-script-origin">effective script origin</a> is initially an
                   8198:       <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8199:       <a href="#origin-0">origin</a> of the <code><a href="dom.html#document">Document</a></code>.</p>
                   8200: 
                   8201:      </dd>
                   8202: 
                   8203:     </dl><p class="note">The <a href="#effective-script-origin">effective script origin</a> of a
                   8204:     <code><a href="dom.html#document">Document</a></code> can be manipulated using the <code title="dom-document-domain"><a href="#dom-document-domain">document.domain</a></code> IDL
                   8205:     attribute.</p>
                   8206: 
                   8207:    </dd>
                   8208: 
                   8209: 
                   8210:    <dt>For images</dt>
                   8211: 
                   8212:    <dd>
                   8213: 
                   8214:     <dl class="switch"><dt>If an image is the image of an <code><a href="the-img-element.html#the-img-element">img</a></code> element and
                   8215:      its image data is <a href="urls.html#cors-cross-origin">CORS-cross-origin</a></dt>
                   8216: 
                   8217:      <dd>The <a href="#origin-0">origin</a> is a globally unique identifier
                   8218:      assigned when the image is created.</dd>
                   8219: 
                   8220: 
                   8221:      <dt>If an image is the image of an <code><a href="the-img-element.html#the-img-element">img</a></code> element and
                   8222:      its image data is <a href="urls.html#cors-same-origin">CORS-same-origin</a></dt>
                   8223: 
                   8224:      <dd>The <a href="#origin-0">origin</a> is an <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8225:      <a href="#origin-0">origin</a> of the <code><a href="the-img-element.html#the-img-element">img</a></code> element's
                   8226:      <code><a href="dom.html#document">Document</a></code>.</dd>
                   8227: 
                   8228:      <!-- all image loads go through the "potentially CORS-enabled
                   8229:      fetch" algorithm so they're all either CORS-cross-origin or
                   8230:      CORS-same-origin if they succeed at all -->
                   8231: 
                   8232:     </dl><p>Images do not have an <a href="#effective-script-origin">effective script origin</a>.</p>
                   8233: 
                   8234:    </dd>
                   8235: 
                   8236: 
                   8237:    <dt>For <code><a href="the-audio-element.html#the-audio-element">audio</a></code> and <code><a href="the-video-element.html#the-video-element">video</a></code> elements</dt>
                   8238: 
                   8239:    <dd>
                   8240: 
                   8241:     <dl class="switch"><dt>If the <a href="media-elements.html#media-data">media data</a> is
                   8242:      <a href="urls.html#cors-cross-origin">CORS-cross-origin</a></dt>
                   8243: 
                   8244:      <dd>The <a href="#origin-0">origin</a> is a globally unique identifier
                   8245:      assigned when the image is created.</dd>
                   8246: 
                   8247: 
                   8248:      <dt>If the <a href="media-elements.html#media-data">media data</a> is
                   8249:      <a href="urls.html#cors-same-origin">CORS-same-origin</a></dt>
                   8250: 
                   8251:      <dd>The <a href="#origin-0">origin</a> is an <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8252:      <a href="#origin-0">origin</a> of the <a href="media-elements.html#media-element">media element</a>'s
                   8253:      <code><a href="dom.html#document">Document</a></code>.</dd>
                   8254: 
                   8255:     </dl><p><a href="media-elements.html#media-element" title="media element">Media elements</a> do not have
                   8256:     an <a href="#effective-script-origin">effective script origin</a>.</p>
                   8257: 
                   8258:    </dd>
                   8259: 
                   8260: 
                   8261:    <dt>For fonts</dt>
                   8262: 
                   8263:    <dd>
                   8264: 
                   8265:     <p>The <a href="#origin-0">origin</a> of a downloadable Web font is an <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8266:     <a href="#origin-0">origin</a> of the <a href="urls.html#absolute-url">absolute URL</a> used to
                   8267:     obtain the font (after any redirects). <a href="#refsCSSFONTS">[CSSFONTS]</a></p> <!-- this means you can
                   8268:     get data from a remote site if you can make it redirect to your
                   8269:     own site in some fashion controlled by the data you want to read
                   8270:     -->
                   8271: 
                   8272:     <p>The <a href="#origin-0">origin</a> of a locally installed system font is
                   8273:     an <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8274:     <a href="#origin-0">origin</a> of the <code><a href="dom.html#document">Document</a></code> in which that
                   8275:     font is being used.</p>
                   8276: 
                   8277:     <p>Fonts do not have an <a href="#effective-script-origin">effective script origin</a>.</p>
                   8278: 
                   8279:    </dd>
                   8280: 
                   8281: 
                   8282:    <dt>For scripts</dt>
                   8283: 
                   8284:    <dd>
                   8285: 
                   8286:     <p>The <a href="#origin-0">origin</a> and <a href="#effective-script-origin">effective script
                   8287:     origin</a> of a script are determined from another resource,
                   8288:     called the <i>owner</i>:</p>
                   8289: 
                   8290:     <dl class="switch"><dt>If a script is in a <code><a href="the-script-element.html#the-script-element">script</a></code> element</dt>
                   8291: 
                   8292:      <dd>The owner is the <code><a href="dom.html#document">Document</a></code> to which the
                   8293:      <code><a href="the-script-element.html#the-script-element">script</a></code> element belongs.</dd>
                   8294: 
                   8295: 
                   8296:      <dt>If a script is in an <a href="#event-handler-content-attributes" title="event handler content
                   8297:      attributes">event handler content attribute</a></dt>
                   8298: 
                   8299:      <dd>The owner is the <code><a href="dom.html#document">Document</a></code> to which the
                   8300:      attribute node belongs.</dd>
                   8301: 
                   8302: 
                   8303:      <dt>If a script is a function or other code reference created by
                   8304:      another script</dt>
                   8305: 
                   8306:      <dd>The owner is the script that created it.</dd>
                   8307: 
                   8308: 
                   8309:      <dt>If a script is a <a href="#javascript-protocol" title="javascript protocol"><code title="">javascript:</code> URL</a> that was returned as the
                   8310:      location of an HTTP redirect (<a href="urls.html#concept-http-equivalent-codes" title="concept-http-equivalent-codes">or equivalent</a> in
                   8311:      other protocols)</dt>
                   8312: 
                   8313:      <dd>The owner is the <a href="urls.html#url">URL</a> that redirected to the
                   8314:      <a href="#javascript-protocol" title="javascript protocol"><code title="">javascript:</code> URL</a>.</dd>
                   8315: 
                   8316: 
                   8317:      <dt>If a script is a <a href="#javascript-protocol" title="javascript protocol"><code title="">javascript:</code> URL</a> in an attribute</dt>
                   8318: 
                   8319:      <dd>The owner is the <code><a href="dom.html#document">Document</a></code> of the element on
                   8320:      which the attribute is found.</dd>
                   8321: 
                   8322: 
                   8323:      <dt>If a script is a <a href="#javascript-protocol" title="javascript protocol"><code title="">javascript:</code> URL</a> in a style sheet</dt>
                   8324: 
                   8325:      <dd>The owner is the <a href="urls.html#url">URL</a> of the style sheet.</dd>
                   8326: 
                   8327: 
                   8328:      <dt>If a script is a <a href="#javascript-protocol" title="javascript protocol"><code title="">javascript:</code> URL</a> to which a <a href="#browsing-context">browsing
                   8329:      context</a> is being <a href="#navigate" title="navigate">navigated</a>,
                   8330:      the URL having been provided by the user (e.g. by using a
                   8331:      <i>bookmarklet</i>)</dt>
                   8332: 
                   8333:      <dd>The owner is the <code><a href="dom.html#document">Document</a></code> of the <a href="#browsing-context">browsing
                   8334:      context</a>'s <a href="#active-document">active document</a>.</dd>
                   8335: 
                   8336: 
                   8337:      <dt>If a script is a <a href="#javascript-protocol" title="javascript protocol"><code title="">javascript:</code> URL</a> to which a <a href="#browsing-context">browsing
                   8338:      context</a> is being <a href="#navigate" title="navigate">navigated</a>,
                   8339:      the URL having been declared in markup</dt>
                   8340: 
                   8341:      <dd>The owner is the <code><a href="dom.html#document">Document</a></code> of the element
                   8342:      (e.g. an <code><a href="the-a-element.html#the-a-element">a</a></code> or <code><a href="the-area-element.html#the-area-element">area</a></code> element) that
                   8343:      declared the URL.</dd>
                   8344: 
                   8345: 
                   8346:      <dt>If a script is a <a href="#javascript-protocol" title="javascript protocol"><code title="">javascript:</code> URL</a> to which a <a href="#browsing-context">browsing
                   8347:      context</a> is being <a href="#navigate" title="navigate">navigated</a>,
                   8348:      the URL having been provided by script</dt>
                   8349: 
                   8350:      <dd>The owner is the script that provided the URL.</dd>
                   8351: 
                   8352:     </dl><p>The <a href="#origin-0">origin</a> of the script is then an <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the
                   8353:     <a href="#origin-0">origin</a> of the owner, and the <a href="#effective-script-origin">effective script
                   8354:     origin</a> of the script is an <a href="#concept-origin-alias" title="concept-origin-alias">alias</a> to the <a href="#effective-script-origin">effective
                   8355:     script origin</a> of the owner.</p>
                   8356: 
                   8357:    </dd>
                   8358: 
                   8359:   </dl><p>Other specifications can override the above definitions by
                   8360:   themselves specifying the origin of a particular <a href="urls.html#url">URL</a>,
                   8361:   <code><a href="dom.html#document">Document</a></code>, image, <a href="media-elements.html#media-element">media element</a>, font, or
                   8362:   <a href="#concept-script" title="concept-script">script</a>.</p>
                   8363: 
                   8364:   <!-- e.g.:
                   8365: 
                   8366:     <p>The <span>origin</span> of a <code>Document</code> object
                   8367:     returned by the <code>XMLHttpRequest</code> API is an <span
                   8368:     title="concept-origin-alias">alias</span> to the
                   8369:     <span>XMLHttpRequest origin</span> of the
                   8370:     <code>XMLHttpRequest</code> object.</p>
                   8371: 
                   8372:   -->
                   8373: 
                   8374:   <hr><p>The <dfn id="unicode-serialization-of-an-origin">Unicode serialization of an origin</dfn> is the string
                   8375:   obtained by applying the following algorithm to the given
                   8376:   <a href="#origin-0">origin</a>:</p>
                   8377: 
                   8378:   <ol><li><p>If the <a href="#origin-0">origin</a> in question is not a
                   8379:    scheme/host/port tuple, then return the literal string "<code title="">null</code>" and abort these steps.</p></li>
                   8380: 
                   8381:    <li><p>Otherwise, let <var title="">result</var> be the scheme part
                   8382:    of the <a href="#origin-0">origin</a> tuple.</p></li>
                   8383: 
                   8384:    <li><p>Append the string "<code title="">://</code>" to <var title="">result</var>.</p></li>
                   8385: 
                   8386:    <li><p>Apply the IDNA ToUnicode algorithm to each component of the
                   8387:    host part of the <a href="#origin-0">origin</a> tuple, and append the results
                   8388:    &#8212; each component, in the same order, separated by "." (U+002E) characters &#8212; to <var title="">result</var>. <a href="#refsRFC3490">[RFC3490]</a></p></li>
                   8389: 
                   8390:    <li><p>If the port part of the <a href="#origin-0">origin</a> tuple gives a port
                   8391:    that is different from the default port for the protocol given by
                   8392:    the scheme part of the <a href="#origin-0">origin</a> tuple, then append a
                   8393:    ":" (U+003A) character and the given port, in base ten, to
                   8394:    <var title="">result</var>.</p></li>
                   8395: 
                   8396:    <li><p>Return <var title="">result</var>.</p></li>
                   8397: 
                   8398:   </ol><p>The <dfn id="ascii-serialization-of-an-origin">ASCII serialization of an origin</dfn> is the string
                   8399:   obtained by applying the following algorithm to the given
                   8400:   <a href="#origin-0">origin</a>:</p>
                   8401: 
                   8402:   <ol><li><p>If the <a href="#origin-0">origin</a> in question is not a
                   8403:    scheme/host/port tuple, then return the literal string "<code title="">null</code>" and abort these steps.</p></li>
                   8404: 
                   8405:    <li><p>Otherwise, let <var title="">result</var> be the scheme part
                   8406:    of the <a href="#origin-0">origin</a> tuple.</p></li>
                   8407: 
                   8408:    <li><p>Append the string "<code title="">://</code>" to <var title="">result</var>.</p></li>
                   8409: 
                   8410:    <li>
                   8411: 
                   8412:     <p>Apply the IDNA ToASCII algorithm the host part of the
                   8413:     <a href="#origin-0">origin</a> tuple, with both the AllowUnassigned and
                   8414:     UseSTD3ASCIIRules flags set, and append the results <var title="">result</var>.</p>
                   8415: 
                   8416:     <p>If ToASCII fails to convert one of the components of the
                   8417:     string, e.g. because it is too long or because it contains invalid
                   8418:     characters, then return the empty string and abort these steps. <a href="#refsRFC3490">[RFC3490]</a></p>
                   8419: 
                   8420:    </li>
                   8421: 
                   8422:    <li><p>If the port part of the <a href="#origin-0">origin</a> tuple gives a port
                   8423:    that is different from the default port for the protocol given by
                   8424:    the scheme part of the <a href="#origin-0">origin</a> tuple, then append a
                   8425:    ":" (U+003A) character and the given port, in base ten, to
                   8426:    <var title="">result</var>.</p></li>
                   8427: 
                   8428:    <li><p>Return <var title="">result</var>.</p></li>
                   8429: 
                   8430:   </ol><p>Two <a href="#origin-0" title="origin">origins</a> are said to be the
                   8431:   <dfn id="same-origin">same origin</dfn> if the following algorithm returns true:</p>
                   8432: 
                   8433:   <ol><li><p>Let <var title="">A</var> be the first <a href="#origin-0">origin</a>
                   8434:    being compared, and <var title="">B</var> be the second
                   8435:    <a href="#origin-0">origin</a> being compared.</p></li>
                   8436: 
                   8437:    <li><p>If <var title="">A</var> and <var title="">B</var> are both
                   8438:    opaque identifiers, and their value is equal, then return
                   8439:    true.</p></li>
                   8440: 
                   8441:    <li><p>Otherwise, if either <var title="">A</var> or <var title="">B</var> or both are opaque identifiers, return
                   8442:    false.</p></li>
                   8443: 
                   8444:    <li><p>If <var title="">A</var> and <var title="">B</var> have
                   8445:    scheme components that are not identical, return false.</p></li>
                   8446: 
                   8447:    <li><p>If <var title="">A</var> and <var title="">B</var> have host
                   8448:    components that are not identical, return false.</p></li>
                   8449: 
                   8450:    <li><p>If <var title="">A</var> and <var title="">B</var> have port
                   8451:    components that are not identical, return false.</p></li>
                   8452: 
                   8453:    <li><p>If either <var title="">A</var> or <var title="">B</var>
                   8454:    have additional data, but that data is not identical for both,
                   8455:    return false.</p></li>
                   8456: 
                   8457:    <li><p>Return true.</p></li>
                   8458: 
                   8459:   </ol></div>
                   8460: 
                   8461: 
                   8462:   <h4 id="relaxing-the-same-origin-restriction"><span class="secno">5.3.1 </span>Relaxing the same-origin restriction</h4>
                   8463: 
                   8464:   <dl class="domintro"><dt><var title="">document</var> . <code title="dom-document-domain"><a href="#dom-document-domain">domain</a></code> [ = <var title="">domain</var> ]</dt>
                   8465: 
                   8466:    <dd>
                   8467: 
                   8468:     <p>Returns the current domain used for security checks.</p>
                   8469: 
                   8470:     <p>Can be set to a value that removes subdomains, to change the
                   8471:     <a href="#effective-script-origin">effective script origin</a> to allow pages on other
                   8472:     subdomains of the same domain (if they do the same thing) to
                   8473:     access each other.</p>
                   8474: 
                   8475:    </dd>
                   8476: 
                   8477:   </dl><div class="impl">
                   8478: 
                   8479:   <p>The <dfn id="dom-document-domain" title="dom-document-domain"><code>domain</code></dfn>
                   8480:   attribute on <code><a href="dom.html#document">Document</a></code> objects must be initialized to
                   8481:   <a href="#the-document's-domain">the document's domain</a>, if it has one, and the empty
                   8482:   string otherwise. If the value is an IPv6 address, then the square
                   8483:   brackets from the host portion of the <a href="urls.html#url-host" title="url-host">&lt;host&gt;</a> component must be omitted from
                   8484:   the attribute's value.</p>
                   8485: 
                   8486:   <p>On getting, the attribute must return its current value, unless
                   8487:   the <code><a href="dom.html#document">Document</a></code> has no <a href="#browsing-context">browsing context</a>, in
                   8488:   which case it must return the empty string.</p>
                   8489: 
                   8490:   <p>On setting, the user agent must run the following algorithm:</p>
                   8491: 
                   8492:   <ol><li>
                   8493: 
                   8494:     <p>If the <code><a href="dom.html#document">Document</a></code> has no <a href="#browsing-context">browsing
                   8495:     context</a>, throw a <code><a href="infrastructure.html#securityerror">SecurityError</a></code> exception and
                   8496:     abort these steps.</p>
                   8497: 
                   8498:    </li>
                   8499: 
                   8500:    <li>
                   8501: 
                   8502:     <p>If the new value is an IP address, let <var title="">new
                   8503:     value</var> be the new value. Otherwise, apply the IDNA ToASCII
                   8504:     algorithm to the new value, with both the AllowUnassigned and
                   8505:     UseSTD3ASCIIRules flags set, and let <var title="">new value</var>
                   8506:     be the result of the ToASCII algorithm.</p>
                   8507: 
                   8508:     <p>If ToASCII fails to convert one of the components of the
                   8509:     string, e.g. because it is too long or because it contains invalid
                   8510:     characters, then throw a <code><a href="infrastructure.html#securityerror">SecurityError</a></code> exception and abort
                   8511:     these steps. <a href="#refsRFC3490">[RFC3490]</a></p>
                   8512: 
                   8513:    </li>
                   8514: 
                   8515:    <li>
                   8516: 
                   8517:     <p>If <var title="">new value</var> is not exactly equal to the
                   8518:     current value of the <code title="dom-document-domain"><a href="#dom-document-domain">document.domain</a></code> attribute, then
                   8519:     run these substeps:</p>
                   8520: 
                   8521:     <ol><li>
                   8522: 
                   8523:       <p>If the current value is an IP address, throw a
                   8524:       <code><a href="infrastructure.html#securityerror">SecurityError</a></code> exception and abort these steps.</p>
                   8525: 
                   8526:      </li>
                   8527: 
                   8528:      <li>
                   8529: 
                   8530:       <p>If <var title="">new value</var>, prefixed by a "." (U+002E), does not exactly match the end of the current value,
                   8531:       throw a <code><a href="infrastructure.html#securityerror">SecurityError</a></code> exception and abort these
                   8532:       steps.</p>
                   8533: 
                   8534:       <!-- this is the step that prevents us from ever setting
                   8535:       document.domain if the >effective script origin< isn't a
                   8536:       scheme/host/port tuple -->
                   8537: 
                   8538:      </li>
                   8539: 
                   8540:      <li>
                   8541: 
                   8542:       <p>If <var title="">new value</var> matches a suffix in the
                   8543:       Public Suffix List, or, if <var title="">new value</var>,
                   8544:       prefixed by a "." (U+002E), matches the end of a
                   8545:       suffix in the Public Suffix List, then throw a
                   8546:       <code><a href="infrastructure.html#securityerror">SecurityError</a></code> exception and abort these steps. <a href="#refsPSL">[PSL]</a></p>
                   8547: 
                   8548:       <p>Suffixes must be compared after applying the IDNA ToASCII
                   8549:       algorithm to them, with both the AllowUnassigned and
                   8550:       UseSTD3ASCIIRules flags set, in an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   8551:       case-insensitive</a> manner. <a href="#refsRFC3490">[RFC3490]</a></p>
                   8552: 
                   8553:      </li>
                   8554: 
                   8555:     </ol></li>
                   8556: 
                   8557:    <li><p>Release the <a href="#storage-mutex">storage mutex</a>.</p></li>
                   8558: 
                   8559:    <li>
                   8560: 
                   8561:     <p>Set the attribute's value to <var title="">new value</var>.</p>
                   8562: 
                   8563:    </li>
                   8564: 
                   8565:    <li>
                   8566: 
                   8567:     <p>If the <a href="#effective-script-origin">effective script origin</a> of the
                   8568:     <code><a href="dom.html#document">Document</a></code> is an <a href="#concept-origin-alias" title="concept-origin-alias">alias</a>, set it to the value of
                   8569:     the <a href="#effective-script-origin">effective script origin</a> (essentially de-aliasing
                   8570:     the <a href="#effective-script-origin">effective script origin</a>).</p>
                   8571: 
                   8572:    </li>
                   8573: 
                   8574:    <li>
                   8575: 
                   8576:     <p>If <var title="">new value</var> is not the empty string, then
                   8577:     run these substeps:</p>
                   8578: 
                   8579:     <ol><li>
                   8580: 
                   8581:       <p>Set the host part of the <a href="#effective-script-origin">effective script origin</a>
                   8582:       tuple of the <code><a href="dom.html#document">Document</a></code> to <var title="">new
                   8583:       value</var>.</p>
                   8584: 
                   8585:      </li>
                   8586: 
                   8587:      <li>
                   8588: 
                   8589:       <p>Set the port part of the <a href="#effective-script-origin">effective script origin</a>
                   8590:       tuple of the <code><a href="dom.html#document">Document</a></code> to "manual override" (a value
                   8591:       that, for the purposes of <a href="#same-origin" title="same origin">comparing
                   8592:       origins</a>, is identical to "manual override" but not
                   8593:       identical to any other value).</p>
                   8594: 
                   8595:      </li>
                   8596: 
                   8597:     </ol></li>
                   8598: 
                   8599:   </ol><p>The <dfn id="the-document's-domain" title="the document's domain">domain</dfn> of a
                   8600:   <code><a href="dom.html#document">Document</a></code> is the host part of the document's
                   8601:   <a href="#origin-0">origin</a>, if the value of that <a href="#origin-0">origin</a> is a
                   8602:   scheme/host/port tuple. If it isn't, then the document does not have
                   8603:   a domain.</p>
                   8604: 
                   8605:   </div>
                   8606: 
                   8607:   <p class="note">The <code title="dom-document-domain"><a href="#dom-document-domain">domain</a></code>
                   8608:   attribute is used to enable pages on different hosts of a domain to
                   8609:   access each others' DOMs.</p>
                   8610: 
                   8611:   <p class="warning">Do not use the <code title="dom-document-domain"><a href="#dom-document-domain">document.domain</a></code> attribute when
                   8612:   using shared hosting. If an untrusted third party is able to host an
                   8613:   HTTP server at the same IP address but on a different port, then the
                   8614:   same-origin protection that normally protects two different sites on
                   8615:   the same host will fail, as the ports are ignored when comparing
                   8616:   origins after the <code title="dom-document-domain"><a href="#dom-document-domain">document.domain</a></code> attribute has
                   8617:   been used.</p>
                   8618: <!--TOPIC:HTML-->
                   8619: 
                   8620: 
                   8621: 
                   8622: 
                   8623:   <h3 id="sandboxing"><span class="secno">5.4 </span>Sandboxing</h3>
                   8624: 
                   8625:   <p>A <dfn id="sandboxing-flag-set">sandboxing flag set</dfn> is a set of zero or more of the
                   8626:   following flags, which are used to restrict the abilities that
                   8627:   potentially untrusted resources have:</p>
                   8628: 
                   8629:   <dl><dt>The <dfn id="sandboxed-navigation-browsing-context-flag">sandboxed navigation browsing context flag</dfn></dt>
                   8630: 
                   8631:    <dd>
                   8632: 
                   8633:     <p>This flag <a href="#sandboxLinks">prevents content from
                   8634:     navigating browsing contexts other than the sandboxed browsing
                   8635:     context itself</a> (or browsing contexts further nested inside
                   8636:     it), <a href="#auxiliary-browsing-context" title="auxiliary browsing context">auxiliary browsing
                   8637:     contexts</a> (which are protected by the <a href="#sandboxed-auxiliary-navigation-browsing-context-flag">sandboxed
                   8638:     auxiliary navigation browsing context flag</a> defined next),
                   8639:     and the <a href="#top-level-browsing-context">top-level browsing context</a> (which is
                   8640:     protected by the <a href="#sandboxed-top-level-navigation-browsing-context-flag">sandboxed top-level navigation browsing
                   8641:     context flag</a> defined below).</p>
                   8642: 
                   8643:     <p>If the <a href="#sandboxed-auxiliary-navigation-browsing-context-flag">sandboxed auxiliary navigation browsing context
                   8644:     flag</a> is not set, then in certain cases the restrictions
                   8645:     nonetheless allow popups (new <a href="#top-level-browsing-context" title="top-level browsing
                   8646:     context">top-level browsing contexts</a>) to be opened. These
                   8647:     <a href="#browsing-context" title="browsing context">browsing contexts</a> always
                   8648:     have <dfn id="one-permitted-sandboxed-navigator">one permitted sandboxed navigator</dfn>, set when the
                   8649:     browsing context is created, which allows the <a href="#browsing-context">browsing
                   8650:     context</a> that created them to actually navigate them.
                   8651:     (Otherwise, the <a href="#sandboxed-navigation-browsing-context-flag">sandboxed navigation browsing context
                   8652:     flag</a> would prevent them from being navigated even if they
                   8653:     were opened.)</p>
                   8654: 
                   8655:    </dd>
                   8656: 
                   8657: 
                   8658:    <dt>The <dfn id="sandboxed-auxiliary-navigation-browsing-context-flag">sandboxed auxiliary navigation browsing context flag</dfn></dt>
                   8659: 
                   8660:    <dd>
                   8661: 
                   8662:     <p>This flag <a href="#sandboxWindowOpen">prevents content from
                   8663:     creating new auxiliary browsing contexts</a>, e.g. using the <code title="attr-hyperlink-target"><a href="#attr-hyperlink-target">target</a></code> attribute, the <code title="dom-open"><a href="#dom-open">window.open()</a></code> method, or the <code title="dom-showModalDialog"><a href="#dom-showmodaldialog">showModalDialog()</a></code> method.</p>
                   8664: 
                   8665:    </dd>
                   8666: 
                   8667: 
                   8668:    <dt>The <dfn id="sandboxed-top-level-navigation-browsing-context-flag">sandboxed top-level navigation browsing context flag</dfn></dt>
                   8669: 
                   8670:    <dd>
                   8671: 
                   8672:     <p>This flag <a href="#sandboxLinks">prevents content from
                   8673:     navigating their <span>top-level browsing context</span></a>.</p>
                   8674: 
                   8675:     <p>When the <code title="attr-iframe-sandbox-allow-top-navigation"><a href="#attr-iframe-sandbox-allow-top-navigation">allow-top-navigation</a></code>
                   8676:     is set, content can navigate its <a href="#top-level-browsing-context">top-level browsing
                   8677:     context</a>, but other <a href="#browsing-context" title="browsing context">browsing
                   8678:     contexts</a> are still protected by the <a href="#sandboxed-navigation-browsing-context-flag">sandboxed
                   8679:     navigation browsing context flag</a> and possibly the
                   8680:     <a href="#sandboxed-auxiliary-navigation-browsing-context-flag">sandboxed auxiliary navigation browsing context
                   8681:     flag</a>.</p>
                   8682: 
                   8683:    </dd>
                   8684: 
                   8685: 
                   8686:    <dt>The <dfn id="sandboxed-plugins-browsing-context-flag">sandboxed plugins browsing context flag</dfn></dt>
                   8687: 
                   8688:    <dd>
                   8689: 
                   8690:     <p>This flag prevents content from instantiating <a href="infrastructure.html#plugin" title="plugin">plugins</a>, whether using <a href="the-embed-element.html#sandboxPluginEmbed">the <code>embed</code> element</a>, <a href="the-object-element.html#sandboxPluginObject">the <code>object</code> element</a>,
                   8691:     <a href="#sandboxPluginApplet">the <code>applet</code>
                   8692:     element</a>, or through <a href="#sandboxPluginNavigate">navigation</a> of a <a href="#nested-browsing-context">nested
                   8693:     browsing context</a>, unless those <a href="infrastructure.html#plugin" title="plugin">plugins</a> can be <a href="infrastructure.html#concept-plugin-secure" title="concept-plugin-secure">secured</a>.</p>
                   8694: 
                   8695:    </dd>
                   8696: 
                   8697: 
                   8698:    <dt>The <dfn id="sandboxed-seamless-iframes-flag">sandboxed seamless iframes flag</dfn></dt>
                   8699: 
                   8700:    <dd>
                   8701: 
                   8702:     <p>This flag prevents content from using the <code title="attr-iframe-seamless"><a href="the-iframe-element.html#attr-iframe-seamless">seamless</a></code> attribute on
                   8703:     descendant <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> elements.</p>
                   8704: 
                   8705:     <p class="note">This prevents a page inserted using the <code title="attr-iframe-sandbox-allow-same-origin"><a href="#attr-iframe-sandbox-allow-same-origin">allow-same-origin</a></code>
                   8706:     keyword from using a CSS-selector-based method of probing the DOM
                   8707:     of other pages on the same site (in particular, pages that contain
                   8708:     user-sensitive information).</p>
                   8709: 
                   8710:     <!-- http://lists.w3.org/Archives/Public/public-web-security/2009Dec/thread.html#msg51 -->
                   8711: 
                   8712:    </dd>
                   8713: 
                   8714: 
                   8715:    <dt>The <dfn id="sandboxed-origin-browsing-context-flag">sandboxed origin browsing context flag</dfn></dt>
                   8716: 
                   8717:    <dd>
                   8718: 
                   8719:     <p>This flag <a href="#sandboxOrigin">forces content into a unique
                   8720:     origin</a>, thus preventing it from accessing other content from
                   8721:     the same <a href="#origin-0">origin</a>.</p>
                   8722: 
                   8723:     <p>This flag also <a href="dom.html#sandboxCookies">prevents script from
                   8724:     reading from or writing to the <code title="dom-document-cookie">document.cookie</code> IDL
                   8725:     attribute</a>, and blocks access to <code title="dom-localStorage">localStorage</code>.
                   8726:         <a href="#refsWEBSTORAGE">[WEBSTORAGE]</a>
                   8727:         </p>
                   8728: 
                   8729:    </dd>
                   8730: 
                   8731: 
                   8732:    <dt>The <dfn id="sandboxed-forms-browsing-context-flag">sandboxed forms browsing context flag</dfn></dt>
                   8733: 
                   8734:    <dd>
                   8735: 
                   8736:     <p>This flag <a href="#sandboxSubmitBlocked">blocks form
                   8737:     submission</a>.</p>
                   8738: 
                   8739:    </dd>
                   8740: 
                   8741: 
                   8742:    <dt>The <dfn id="sandboxed-scripts-browsing-context-flag">sandboxed scripts browsing context flag</dfn></dt>
                   8743: 
                   8744:    <dd>
                   8745: 
                   8746:     <p>This flag <a href="#sandboxScriptBlocked">blocks script
                   8747:     execution</a>.</p>
                   8748: 
                   8749:    </dd>
                   8750: 
                   8751: 
                   8752:    <dt>The <dfn id="sandboxed-automatic-features-browsing-context-flag">sandboxed automatic features browsing context
                   8753:    flag</dfn></dt>
                   8754: 
                   8755:    <dd>
                   8756: 
                   8757:     <p>This flag blocks features that trigger automatically, such as
                   8758:     <a href="media-elements.html#attr-media-autoplay" title="attr-media-autoplay">automatically playing a
                   8759:     video</a> or <a href="attributes-common-to-form-controls.html#attr-fe-autofocus" title="attr-fe-autofocus">automatically
                   8760:     focusing a form control</a>.</p>
                   8761: 
                   8762:    </dd>
                   8763: 
                   8764:   </dl><p>When the user agent is to <dfn id="parse-a-sandboxing-directive">parse a sandboxing
                   8765:   directive</dfn>, given a string <var title="">input</var> and a
                   8766:   <a href="#sandboxing-flag-set">sandboxing flag set</a> <var title="">output</var>, it must
                   8767:   run the following steps:</p>
                   8768: 
                   8769:   <ol><li><p><a href="common-microsyntaxes.html#split-a-string-on-spaces" title="split a string on spaces">Split <var title="">input</var> on spaces</a>, to obtain <var title="">tokens</var>.</p></li>
                   8770: 
                   8771:    <li><p>Let <var title="">output</var> be empty.</p></li>
                   8772: 
                   8773:    <li>
                   8774: 
                   8775:     <p>Add the following flags to <var title="">output</var>:</p>
                   8776: 
                   8777:     <ul><li><p>The <a href="#sandboxed-navigation-browsing-context-flag">sandboxed navigation browsing context flag</a></p></li>
                   8778: 
                   8779:      <li><p>The <a href="#sandboxed-auxiliary-navigation-browsing-context-flag">sandboxed auxiliary navigation browsing context
                   8780:      flag</a>, unless <var title="">tokens</var> contains the <dfn id="attr-iframe-sandbox-allow-popups" title="attr-iframe-sandbox-allow-popups"><code>allow-popups</code></dfn>
                   8781:      keyword</p></li>
                   8782: 
                   8783:      <li><p>The <a href="#sandboxed-top-level-navigation-browsing-context-flag">sandboxed top-level navigation browsing context
                   8784:      flag</a>, unless <var title="">tokens</var> contains the <dfn id="attr-iframe-sandbox-allow-top-navigation" title="attr-iframe-sandbox-allow-top-navigation"><code>allow-top-navigation</code></dfn>
                   8785:      keyword</p></li>
                   8786: 
                   8787:      <li><p>The <a href="#sandboxed-plugins-browsing-context-flag">sandboxed plugins browsing context flag</a></p></li>
                   8788: 
                   8789:      <li><p>The <a href="#sandboxed-seamless-iframes-flag">sandboxed seamless iframes flag</a></p></li>
                   8790: 
                   8791:      <li>
                   8792: 
                   8793:       <p>The <a href="#sandboxed-origin-browsing-context-flag">sandboxed origin browsing context flag</a>,
                   8794:       unless the <var title="">tokens</var> contains the <dfn id="attr-iframe-sandbox-allow-same-origin" title="attr-iframe-sandbox-allow-same-origin"><code>allow-same-origin</code></dfn>
                   8795:       keyword</p>
                   8796: 
                   8797:       <div class="note">
                   8798: 
                   8799:        <p>The <code title="attr-iframe-sandbox-allow-same-origin"><a href="#attr-iframe-sandbox-allow-same-origin">allow-same-origin</a></code>
                   8800:        keyword is intended for two cases.</p>
                   8801: 
                   8802:        <p>First, it can be used to allow content from the same site to
                   8803:        be sandboxed to disable scripting, while still allowing access to
                   8804:        the DOM of the sandboxed content.</p>
                   8805: 
                   8806:        <p>Second, it can be used to embed content from a third-party
                   8807:        site, sandboxed to prevent that site from opening popup windows,
                   8808:        etc, without preventing the embedded page from communicating back
                   8809:        to its originating site, using the database APIs to store data,
                   8810:        etc.</p>
                   8811: 
                   8812:       </div>
                   8813: 
                   8814:      </li>
                   8815: 
                   8816:      <li><p>The <a href="#sandboxed-forms-browsing-context-flag">sandboxed forms browsing context flag</a>,
                   8817:      unless <var title="">tokens</var> contains the <dfn id="attr-iframe-sandbox-allow-forms" title="attr-iframe-sandbox-allow-forms"><code>allow-forms</code></dfn>
                   8818:      keyword</p></li>
                   8819: 
                   8820:      <li><p>The <a href="#sandboxed-scripts-browsing-context-flag">sandboxed scripts browsing context flag</a>,
                   8821:      unless <var title="">tokens</var> contains the <dfn id="attr-iframe-sandbox-allow-scripts" title="attr-iframe-sandbox-allow-scripts"><code>allow-scripts</code></dfn>
                   8822:      keyword</p></li>
                   8823: 
                   8824:      <li>
                   8825: 
                   8826:       <p>The <a href="#sandboxed-automatic-features-browsing-context-flag">sandboxed automatic features browsing context
                   8827:       flag</a>, unless <var title="">tokens</var> contains the
                   8828:       <code title="attr-iframe-sandbox-allow-scripts"><a href="#attr-iframe-sandbox-allow-scripts">allow-scripts</a></code>
                   8829:       keyword (defined above)</p>
                   8830: 
                   8831:       <p class="note">This flag is relaxed by the same keyword as
                   8832:       scripts, because when scripts are enabled these features are
                   8833:       trivially possible anyway, and it would be unfortunate to force
                   8834:       authors to use script to do them when sandboxed rather than
                   8835:       allowing them to use the declarative features.</p>
                   8836: 
                   8837:      </li>
                   8838: 
                   8839:     </ul></li>
                   8840: 
                   8841:   </ol><hr><p>Every <a href="#top-level-browsing-context">top-level browsing context</a> has a <dfn id="popup-sandboxing-flag-set">popup
                   8842:   sandboxing flag set</dfn>, which is a <a href="#sandboxing-flag-set">sandboxing flag
                   8843:   set</a>. When a <a href="#browsing-context">browsing context</a> is created, its
                   8844:   <a href="#popup-sandboxing-flag-set">popup sandboxing flag set</a> must be empty. It is
                   8845:   populated by <a href="#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name">the rules for choosing a browsing context given a
                   8846:   browsing context name</a>.</p>
                   8847: 
                   8848:   <p>Every <a href="#nested-browsing-context">nested browsing context</a> has an
                   8849:   <dfn id="iframe-sandboxing-flag-set"><code>iframe</code> sandboxing flag set</dfn>, which is a
                   8850:   <a href="#sandboxing-flag-set">sandboxing flag set</a>. Which flags in a <a href="#nested-browsing-context">nested
                   8851:   browsing context</a>'s <a href="#iframe-sandboxing-flag-set"><code>iframe</code> sandboxing flag
                   8852:   set</a> are set at any particular time is determined by the
                   8853:   <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> element's <code title="attr-iframe-sandbox"><a href="the-iframe-element.html#attr-iframe-sandbox">sandbox</a></code> attribute.</p>
                   8854: 
                   8855:   <p>Every <code><a href="dom.html#document">Document</a></code> has an <dfn id="active-sandboxing-flag-set">active sandboxing flag
                   8856:   set</dfn>, which is a <a href="#sandboxing-flag-set">sandboxing flag set</a>. When the
                   8857:   <code><a href="dom.html#document">Document</a></code> is created, its <a href="#active-sandboxing-flag-set">active sandboxing flag
                   8858:   set</a> must be empty. It is populated by the <a href="#navigate" title="navigate">navigation algorithm</a>.</p>
                   8859: 
                   8860: 
                   8861: 
                   8862:   <h3 id="history"><span class="secno">5.5 </span>Session history and navigation</h3>
                   8863: 
                   8864:   <h4 id="the-session-history-of-browsing-contexts"><span class="secno">5.5.1 </span>The session history of browsing contexts</h4>
                   8865: 
                   8866:   <p>The sequence of <code><a href="dom.html#document">Document</a></code>s in a <a href="#browsing-context">browsing
                   8867:   context</a> is its <dfn id="session-history">session history</dfn>.</p>
                   8868: 
                   8869:   <p><code><a href="#history-1">History</a></code> objects provide a representation of the
                   8870:   pages in the session history of <a href="#browsing-context" title="browsing
                   8871:   context">browsing contexts</a>. Each <a href="#browsing-context">browsing
                   8872:   context</a>, including <a href="#nested-browsing-context" title="nested browsing
                   8873:   context">nested browsing contexts</a>, has a distinct session
                   8874:   history.</p>
                   8875: 
                   8876:   <p>Each <code><a href="dom.html#document">Document</a></code> object in a <a href="#browsing-context">browsing
                   8877:   context</a>'s <a href="#session-history">session history</a> is associated with a
                   8878:   unique instance of the <code><a href="#history-1">History</a></code> object, although they
                   8879:   all must model the same underlying <a href="#session-history">session history</a>.</p>
                   8880: 
                   8881:   <div class="impl">
                   8882: 
                   8883:   <p>The <dfn id="dom-history" title="dom-history"><code>history</code></dfn> attribute
                   8884:   of the <code><a href="#window">Window</a></code> interface must return the object
                   8885:   implementing the <code><a href="#history-1">History</a></code> interface for that
                   8886:   <code><a href="#window">Window</a></code> object's <code><a href="dom.html#document">Document</a></code>.</p>
                   8887: 
                   8888:   </div>
                   8889: 
                   8890:   <p><code><a href="#history-1">History</a></code> objects represent their <a href="#browsing-context">browsing
                   8891:   context</a>'s session history as a flat list of <a href="#session-history-entry" title="session history entry">session history entries</a>. Each
                   8892:   <dfn id="session-history-entry">session history entry</dfn> consists of a <a href="urls.html#url">URL</a> and
                   8893:   optionally a <a href="#state-object">state object</a><span class="impl">, and may
                   8894:   in addition have a title, a <code><a href="dom.html#document">Document</a></code> object, form data,
                   8895:   a scroll position, and other information associated with
                   8896:   it</span>.</p>
                   8897: 
                   8898:   <div class="impl">
                   8899: 
                   8900:   <p class="note">This does not imply that the user interface need be
                   8901:   linear. See the <a href="#history-notes">notes below</a>.</p>
                   8902: 
                   8903:   </div>
                   8904: 
                   8905:   <p class="note">Titles associated with <a href="#session-history-entry" title="session history
                   8906:   entry">session history entries</a> need not have any relation
                   8907:   with the current <code><a href="the-title-element.html#the-title-element">title</a></code> of the
                   8908:   <code><a href="dom.html#document">Document</a></code>. The title of a <a href="#session-history-entry">session history
                   8909:   entry</a> is intended to explain the state of the document at
                   8910:   that point, so that the user can navigate the document's
                   8911:   history.</p>
                   8912: 
                   8913:   <p>URLs without associated <a href="#state-object" title="state object">state
                   8914:   objects</a> are added to the session history as the user (or
                   8915:   script) navigates from page to page.</p>
                   8916: 
                   8917:   <p>A <dfn id="state-object">state object</dfn> is an object representing a user
                   8918:   interface state.</p>
                   8919: 
                   8920:   <p>Pages can <a href="#dom-history-pushstate" title="dom-history-pushState">add</a> <a href="#state-object" title="state object">state objects</a> between their entry in the
                   8921:   session history and the next ("forward") entry. These are then <a href="#event-popstate" title="event-popstate">returned to the script</a> when the user
                   8922:   (or script) goes back in the history, thus enabling authors to use
                   8923:   the "navigation" metaphor even in one-page applications.</p>
                   8924: 
                   8925:   <div class="note">
                   8926: 
                   8927:    <p><a href="#state-object" title="state object">State objects</a> are intended to
                   8928:    be used for two main purposes: first, storing a preparsed
                   8929:    description of the state in the <a href="urls.html#url">URL</a> so that in the
                   8930:    simple case an author doesn't have to do the parsing (though one
                   8931:    would still need the parsing for handling <a href="urls.html#url" title="URL">URLs</a> passed around by users, so it's only a minor
                   8932:    optimization), and second, so that the author can store state that
                   8933:    one wouldn't store in the URL because it only applies to the current
                   8934:    <code><a href="dom.html#document">Document</a></code> instance and it would have to be reconstructed
                   8935:    if a new <code><a href="dom.html#document">Document</a></code> were opened.</p>
                   8936: 
                   8937:    <p>An example of the latter would be something like keeping track of
                   8938:    the precise coordinate from which a popup <code><a href="the-div-element.html#the-div-element">div</a></code> was made
                   8939:    to animate, so that if the user goes back, it can be made to animate
                   8940:    to the same location. Or alternatively, it could be used to keep a
                   8941:    pointer into a cache of data that would be fetched from the server
                   8942:    based on the information in the <a href="urls.html#url">URL</a>, so that when going
                   8943:    back and forward, the information doesn't have to be fetched
                   8944:    again.</p>
                   8945: 
                   8946:   </div>
                   8947: 
                   8948:   <hr><p>At any point, one of the entries in the session history is the
                   8949:   <dfn id="current-entry">current entry</dfn>. This is the entry representing the
                   8950:   <a href="#active-document">active document</a> of the <a href="#browsing-context">browsing context</a>.
                   8951:   Which entry is the <a href="#current-entry">current entry</a> is changed by the
                   8952:   algorithms defined in this specification, e.g. during <a href="#traverse-the-history" title="traverse the history">session history traversal</a>.</p>
                   8953: 
                   8954:   <p class="note">The <a href="#current-entry">current entry</a> is usually an entry
                   8955:   for the <a href="#dom-location-href" title="dom-location-href">location</a> of the
                   8956:   <code><a href="dom.html#document">Document</a></code>. However, it can also be one of the entries
                   8957:   for <a href="#state-object" title="state object">state objects</a> added to the
                   8958:   history by that document.</p>
                   8959: 
                   8960:   <p><dfn id="an-entry-with-persisted-user-state">An entry with persisted user state</dfn> is one that also
                   8961:   has user-agent defined state. This specification does not specify
                   8962:   what kind of state can be stored.</p>
                   8963:   
                   8964:   <p class="example">For example, some user agents might want to
                   8965:   persist the scroll position, or the values of form controls.</p>
                   8966: 
                   8967:   <p class="note">User agents that persist the value of form controls
                   8968:   are encouraged to also persist their directionality (the value of
                   8969:   the element's <code title="attr-dir"><a href="global-attributes.html#the-dir-attribute">dir</a></code> attribute). This
                   8970:   prevents values from being displayed incorrectly after a history
                   8971:   traversal when the user had originally entered the values with an
                   8972:   explicit, non-default directionality.</p>
                   8973: 
                   8974:   <p>Entries that consist of <a href="#state-object" title="state object">state
                   8975:   objects</a> share the same <code><a href="dom.html#document">Document</a></code> as the entry for
                   8976:   the page that was active when they were added.</p>
                   8977: 
                   8978:   <p>Contiguous entries that differ just by fragment identifier also
                   8979:   share the same <code><a href="dom.html#document">Document</a></code>.</p>
                   8980: 
                   8981:   <p class="note">All entries that share the same
                   8982:   <code><a href="dom.html#document">Document</a></code> (and that are therefore merely different
                   8983:   states of one particular document) are contiguous by definition.</p>
                   8984: 
                   8985:   <p>Each <code><a href="dom.html#document">Document</a></code> in a <a href="#browsing-context">browsing context</a> can
                   8986:   also have a <dfn id="latest-entry">latest entry</dfn>. This is the entry or that
                   8987:   <code><a href="dom.html#document">Document</a></code> that was most the recently traversed to. When
                   8988:   a <code><a href="dom.html#document">Document</a></code> is created, it initially has no <a href="#latest-entry">latest
                   8989:   entry</a>.</p>
                   8990: 
                   8991:   <div class="impl">
                   8992: 
                   8993:   <p>User agents may <a href="#discard-a-document" title="discard a Document">discard</a>
                   8994:   the <code><a href="dom.html#document">Document</a></code> objects of entries other than the
                   8995:   <a href="#current-entry">current entry</a> that are not referenced from any script,
                   8996:   reloading the pages afresh when the user or script navigates back to
                   8997:   such pages. This specification does not specify when user agents
                   8998:   should discard <code><a href="dom.html#document">Document</a></code> objects and when they should
                   8999:   cache them.</p>
                   9000: 
                   9001:   <p>Entries that have had their <code><a href="dom.html#document">Document</a></code> objects
                   9002:   discarded must, for the purposes of the algorithms given below, act
                   9003:   as if they had not. When the user or script navigates back or
                   9004:   forwards to a page which has no in-memory DOM objects, any other
                   9005:   entries that shared the same <code><a href="dom.html#document">Document</a></code> object with it
                   9006:   must share the new object as well.</p>
                   9007: 
                   9008:   </div>
                   9009: 
                   9010: 
                   9011: <!--TOPIC:DOM APIs-->
                   9012:   <h4 id="the-history-interface"><span class="secno">5.5.2 </span>The <code><a href="#history-1">History</a></code> interface</h4>
                   9013: 
                   9014:   <pre class="idl">interface <dfn id="history-1">History</dfn> {
                   9015:   readonly attribute long <a href="#dom-history-length" title="dom-history-length">length</a>;
                   9016:   readonly attribute any <a href="#dom-history-state" title="dom-history-state">state</a>;
                   9017:   void <a href="#dom-history-go" title="dom-history-go">go</a>(optional long delta);
                   9018:   void <a href="#dom-history-back" title="dom-history-back">back</a>();
                   9019:   void <a href="#dom-history-forward" title="dom-history-forward">forward</a>();
                   9020:   void <a href="#dom-history-pushstate" title="dom-history-pushState">pushState</a>(any data, DOMString title, optional DOMString? url);
                   9021:   void <a href="#dom-history-replacestate" title="dom-history-replaceState">replaceState</a>(any data, DOMString title, optional DOMString? url);
                   9022: };</pre>
                   9023: 
                   9024:   <dl class="domintro"><dt><var title="">window</var> . <code title="dom-history"><a href="#dom-history">history</a></code> . <code title="dom-history-length"><a href="#dom-history-length">length</a></code></dt>
                   9025: 
                   9026:    <dd>
                   9027: 
                   9028:     <p>Returns the number of entries in the <a href="#joint-session-history">joint session history</a>.</p>
                   9029: 
                   9030:    </dd>
                   9031: 
                   9032:    <dt><var title="">window</var> . <code title="dom-history"><a href="#dom-history">history</a></code> . <code title="dom-history-state"><a href="#dom-history-state">state</a></code></dt>
                   9033: 
                   9034:    <dd>
                   9035: 
                   9036:     <p>Returns the current <a href="#state-object">state object</a>.</p>
                   9037: 
                   9038:    </dd>
                   9039: 
                   9040:    <dt><var title="">window</var> . <code title="dom-history"><a href="#dom-history">history</a></code> . <code title="dom-history-go"><a href="#dom-history-go">go</a></code>( [ <var title="">delta</var> ] )</dt>
                   9041: 
                   9042:    <dd>
                   9043: 
                   9044:     <p>Goes back or forward the specified number of steps in the <a href="#joint-session-history">joint session history</a>.</p>
                   9045: 
                   9046:     <p>A zero delta will reload the current page.</p>
                   9047: 
                   9048:     <p>If the delta is out of range, does nothing.</p>
                   9049: 
                   9050:    </dd>
                   9051: 
                   9052:    <dt><var title="">window</var> . <code title="dom-history"><a href="#dom-history">history</a></code> . <code title="dom-history-back"><a href="#dom-history-back">back</a></code>()</dt>
                   9053: 
                   9054:    <dd>
                   9055: 
                   9056:     <p>Goes back one step in the <a href="#joint-session-history">joint session history</a>.</p>
                   9057: 
                   9058:     <p>If there is no previous page, does nothing.</p>
                   9059: 
                   9060:    </dd>
                   9061: 
                   9062:    <dt><var title="">window</var> . <code title="dom-history"><a href="#dom-history">history</a></code> . <code title="dom-history-forward"><a href="#dom-history-forward">forward</a></code>()</dt>
                   9063: 
                   9064:    <dd>
                   9065: 
                   9066:     <p>Goes forward one step in the <a href="#joint-session-history">joint session history</a>.</p>
                   9067: 
                   9068:     <p>If there is no next page, does nothing.</p>
                   9069: 
                   9070:    </dd>
                   9071: 
                   9072:    <dt><var title="">window</var> . <code title="dom-history"><a href="#dom-history">history</a></code> . <code title="dom-history-pushState"><a href="#dom-history-pushstate">pushState</a></code>(<var title="">data</var>, <var title="">title</var> [, <var title="">url</var> ] )</dt>
                   9073: 
                   9074:    <dd>
                   9075: 
                   9076:     <p>Pushes the given data onto the session history, with the given title, and, if provided, the given URL.</p>
                   9077: 
                   9078:    </dd>
                   9079: 
                   9080:    <dt><var title="">window</var> . <code title="dom-history"><a href="#dom-history">history</a></code> . <code title="dom-history-replaceState"><a href="#dom-history-replacestate">replaceState</a></code>(<var title="">data</var>, <var title="">title</var> [, <var title="">url</var> ] )</dt>
                   9081: 
                   9082:    <dd>
                   9083: 
                   9084:     <p>Updates the current entry in the session history to have the given data, title, and, if provided, URL.</p>
                   9085: 
                   9086:    </dd>
                   9087: 
                   9088:   </dl><!--TOPIC:HTML--><p>The <dfn id="joint-session-history">joint session history</dfn> of a <code><a href="#history-1">History</a></code>
                   9089:   object is the union of all the <a href="#session-history" title="session history">session
                   9090:   histories</a> of all <a href="#browsing-context" title="browsing context">browsing
                   9091:   contexts</a> of all the <a href="#fully-active">fully active</a>
                   9092:   <code><a href="dom.html#document">Document</a></code> objects that share the <code><a href="#history-1">History</a></code>
                   9093:   object's <a href="#top-level-browsing-context">top-level browsing context</a>, with all the
                   9094:   entries that are <a href="#current-entry" title="current entry">current entries</a>
                   9095:   in their respective <a href="#session-history" title="session history">session
                   9096:   histories</a> removed except for the <a href="#current-entry-of-the-joint-session-history">current entry of the
                   9097:   joint session history</a>.</p>
                   9098: 
                   9099:   <p>The <dfn id="current-entry-of-the-joint-session-history">current entry of the joint session history</dfn> is the
                   9100:   entry that most recently became a <a href="#current-entry">current entry</a> in its
                   9101:   <a href="#session-history">session history</a>.</p>
                   9102: 
                   9103:   <p>Entries in the <a href="#joint-session-history">joint session history</a> are ordered
                   9104:   chronologically by the time they were added to their respective
                   9105:   <a href="#session-history" title="session history">session histories</a>. (Since all
                   9106:   these <a href="#browsing-context" title="browsing context">browsing contexts</a> by
                   9107:   definition share an <a href="#event-loop">event loop</a>, there is always a
                   9108:   well-defined sequential order in which their <a href="#session-history" title="session
                   9109:   history">session histories</a> had their entries added.) Each
                   9110:   entry has an index; the earliest entry has index 0, and the
                   9111:   subsequent entries are numbered with consecutively increasing
                   9112:   integers (1, 2, 3, etc).</p>
                   9113: 
                   9114: <!--TOPIC:DOM APIs-->
                   9115:   <div class="impl">
                   9116: 
                   9117:   <p>The <dfn id="dom-history-length" title="dom-history-length"><code>length</code></dfn>
                   9118:   attribute of the <code><a href="#history-1">History</a></code> interface must return the
                   9119:   number of entries in the <a href="#joint-session-history">joint session history</a>.</p>
                   9120: 
                   9121:   <p>The actual entries are not accessible from script.</p>
                   9122: 
                   9123:   <p>The <dfn id="dom-history-state" title="dom-history-state"><code>state</code></dfn>
                   9124:   attribute of the <code><a href="#history-1">History</a></code> interface must return the last
                   9125:   value it was set to by the user agent. Initially, its value must be
                   9126:   null.</p>
                   9127: 
                   9128:   <p>When the <dfn id="dom-history-go" title="dom-history-go"><code>go(<var title="">delta</var>)</code></dfn> method is invoked, if the
                   9129:   argument to the method was omitted or has the value zero, the user
                   9130:   agent must act as if the <code title="dom-location-reload"><a href="#dom-location-reload">location.reload()</a></code> method was
                   9131:   called instead. Otherwise, the user agent must <a href="#traverse-the-history-by-a-delta">traverse the
                   9132:   history by a delta</a> whose value is the value of the method's
                   9133:   argument.</p>
                   9134: 
                   9135:   <p>When the <dfn id="dom-history-back" title="dom-history-back"><code>back()</code></dfn>
                   9136:   method is invoked, the user agent must <a href="#traverse-the-history-by-a-delta">traverse the history by
                   9137:   a delta</a> &#8722;1.</p>
                   9138: 
                   9139:   <p>When the <dfn id="dom-history-forward" title="dom-history-forward"><code>forward()</code></dfn>method is
                   9140:   invoked, the user agent must <a href="#traverse-the-history-by-a-delta">traverse the history by a
                   9141:   delta</a> +1.</p>
                   9142: <!--TOPIC:HTML-->
                   9143: 
                   9144:   <p>To <dfn id="traverse-the-history-by-a-delta">traverse the history by a delta</dfn> <var title="">delta</var>, the user agent must <a href="#queue-a-task">queue a task</a>
                   9145:   to run the following steps. The <a href="#task-source">task source</a> for the
                   9146:   queued task is the <a href="#history-traversal-task-source">history traversal task source</a>.</p>
                   9147: 
                   9148:   <ol><li><p>Let <var title="">delta</var> be the argument to the
                   9149:    method.</p></li>
                   9150: 
                   9151:    <li><p>If the index of the <a href="#current-entry-of-the-joint-session-history">current entry of the joint session
                   9152:    history</a> plus <var title="">delta</var> is less than zero or
                   9153:    greater than or equal to the number of items in the <a href="#joint-session-history">joint
                   9154:    session history</a>, then abort these steps.</p>
                   9155: 
                   9156:    </li><li><p>If the <code><a href="dom.html#document">Document</a></code>'s <a href="#unload-a-document">unload a
                   9157:    document</a> algorithm is currently running, abort these
                   9158:    steps.</p></li>
                   9159: 
                   9160:    <li><p>If there is an ongoing attempt to navigate the
                   9161:    <a href="#browsing-context">browsing context</a> that has not yet <a href="#concept-navigate-mature" title="concept-navigate-mature">matured</a> (i.e. it has not
                   9162:    passed the point of making its <code><a href="dom.html#document">Document</a></code> the
                   9163:    <a href="#active-document">active document</a>), then cancel that attempt to navigate
                   9164:    the <a href="#browsing-context">browsing context</a>.</p></li>
                   9165: 
                   9166:    <li><p>Let <var title="">specified entry</var> be the entry in the
                   9167:    <a href="#joint-session-history">joint session history</a> whose index is the sum of <var title="">delta</var> and the index of the <a href="#current-entry-of-the-joint-session-history">current entry of
                   9168:    the joint session history</a>.</p></li>
                   9169: 
                   9170:    <li><p>Let <var title="">specified browsing context</var> be the
                   9171:    <a href="#browsing-context">browsing context</a> of the <var title="">specified
                   9172:    entry</var>.</p></li>
                   9173: 
                   9174:    <li>
                   9175: 
                   9176:     <p>If the <var title="">specified browsing context</var>'s
                   9177:     <a href="#active-document">active document</a> is not the same <code><a href="dom.html#document">Document</a></code>
                   9178:     as the <code><a href="dom.html#document">Document</a></code> of the <var title="">specified
                   9179:     entry</var>, then run these substeps:</p>
                   9180: 
                   9181:     <ol><li><p><a href="#prompt-to-unload-a-document" title="prompt to unload a document">Prompt to
                   9182:      unload</a> the <a href="#active-document">active document</a> of the <var title="">specified browsing context</var>. If the user
                   9183:      <a href="#refused-to-allow-the-document-to-be-unloaded">refused to allow the document to be unloaded</a>, then
                   9184:      abort these steps.</p></li>
                   9185: 
                   9186:      <li><p><a href="#unload-a-document" title="unload a document">Unload</a> the
                   9187:      <a href="#active-document">active document</a> of the <var title="">specified
                   9188:      browsing context</var> with the <var title="">recycle</var>
                   9189:      parameter set to false.</p></li>
                   9190: 
                   9191:     </ol></li>
                   9192: 
                   9193:    <li><p><a href="#traverse-the-history">Traverse the history</a> of the <var title="">specified browsing context</var> to the <var title="">specified entry</var>.</p>
                   9194: 
                   9195:   </li></ol><p>When the user navigates through a <a href="#browsing-context">browsing context</a>,
                   9196:   e.g. using a browser's back and forward buttons, the user agent must
                   9197:   <a href="#traverse-the-history-by-a-delta">traverse the history by a delta</a> equivalent to the
                   9198:   action specified by the user.</p>
                   9199: 
                   9200:   <hr><!--TOPIC:DOM APIs--><p>The <dfn id="dom-history-pushstate" title="dom-history-pushState"><code>pushState(<var title="">data</var>, <var title="">title</var>, <var title="">url</var>)</code></dfn> method adds a state object entry to
                   9201:   the history.</p>
                   9202: 
                   9203:   <p>The <dfn id="dom-history-replacestate" title="dom-history-replaceState"><code>replaceState(<var title="">data</var>, <var title="">title</var>, <var title="">url</var>)</code></dfn> method updates the state object,
                   9204:   title, and optionally the <a href="urls.html#url">URL</a> of the <a href="#current-entry">current
                   9205:   entry</a> in the history.</p>
                   9206: 
                   9207:   <p>When either of these methods is invoked, the user agent must run
                   9208:   the following steps:</p>
                   9209: 
                   9210:   <ol><li><p>Let <var title="">cloned data</var> be a <a href="common-dom-interfaces.html#structured-clone">structured
                   9211:    clone</a> of the specified <var title="">data</var>. If this
                   9212:    throws an exception, then rethrow that exception and abort these
                   9213:    steps.</p></li>
                   9214: 
                   9215:    <li>
                   9216: 
                   9217:     <p>If a third argument is specified and is not null, run these substeps:</p>
                   9218: 
                   9219:     <ol><li><a href="urls.html#resolve-a-url" title="resolve a url">Resolve</a> the value of the
                   9220:      third argument, relative to the <a href="#entry-script">entry script</a>'s <a href="#script's-base-url" title="script's base URL">base URL</a>.</li>
                   9221: 
                   9222:      <li>If that fails, throw a <code><a href="infrastructure.html#securityerror">SecurityError</a></code> exception
                   9223:      and abort these steps.</li>
                   9224: 
                   9225:      <li>Compare the resulting <a href="urls.html#absolute-url">absolute URL</a> to <a href="dom.html#the-document's-address">the
                   9226:      document's address</a>. If any part of these two <a href="urls.html#url" title="URL">URLs</a> differ other than the <a href="urls.html#url-path" title="url-path">&lt;path&gt;</a>, <a href="urls.html#url-query" title="url-query">&lt;query&gt;</a>, and <a href="urls.html#url-fragment" title="url-fragment">&lt;fragment&gt;</a> components, then
                   9227:      throw a <code><a href="infrastructure.html#securityerror">SecurityError</a></code> exception and abort these
                   9228:      steps.</li>
                   9229: 
                   9230:      <li>If the <a href="#origin-0">origin</a> of the resulting <a href="urls.html#absolute-url">absolute
                   9231:      URL</a> is not the same as the <a href="#origin-0">origin</a> of the
                   9232:      <a href="#entry-script">entry script</a>'s <a href="#script's-document" title="script's
                   9233:      document">document</a>, and either the <a href="urls.html#url-path" title="url-path">&lt;path&gt;</a> or <a href="urls.html#url-query" title="url-query">&lt;query&gt;</a> components of the two
                   9234:      <a href="urls.html#url" title="URL">URLs</a> compared in the previous step
                   9235:      differ, throw a <code><a href="infrastructure.html#securityerror">SecurityError</a></code> exception and abort
                   9236:      these steps. (This prevents sandboxed content from spoofing other
                   9237:      pages on the same origin.)</li>
                   9238: 
                   9239:      <li><p>Let <var title="">new URL</var> be the resulting
                   9240:      <a href="urls.html#absolute-url">absolute URL</a>.</p></li>
                   9241: 
                   9242:     </ol><p>For the purposes of the comparisons in the above substeps, the
                   9243:     <a href="urls.html#url-path" title="url-path">&lt;path&gt;</a> and <a href="urls.html#url-query" title="url-query">&lt;query&gt;</a> components can only be the
                   9244:     same if the URLs are both <a href="urls.html#hierarchical-url" title="hierarchical
                   9245:     URL">hierarchical URLs</a>.</p>
                   9246: 
                   9247:    </li>
                   9248: 
                   9249:    <li>
                   9250: 
                   9251:     <p>If a third argument is <em>not</em> specified, or is null, then let <var title="">new URL</var> be the <a href="urls.html#url">URL</a> of the
                   9252:     <a href="#current-entry">current entry</a>.</p>
                   9253: 
                   9254:    </li><li>
                   9255: 
                   9256:     <p>If the method invoked was the <code title="dom-history-pushState"><a href="#dom-history-pushstate">pushState()</a></code> method:</p>
                   9257: 
                   9258:     <ol><li>
                   9259: 
                   9260:       <p>Remove all the entries in the <a href="#browsing-context">browsing context</a>'s
                   9261:       <a href="#session-history">session history</a> after the <a href="#current-entry">current
                   9262:       entry</a>. If the <a href="#current-entry">current entry</a> is the last
                   9263:       entry in the session history, then no entries are
                   9264:       removed.</p>
                   9265: 
                   9266:       <p class="note">This <a href="#history-notes">doesn't
                   9267:       necessarily have to affect</a> the user agent's user
                   9268:       interface.</p>
                   9269: 
                   9270:      </li>
                   9271: 
                   9272:      <li><p>Remove any <a href="#concept-task" title="concept-task">tasks</a> queued
                   9273:      by the <a href="#history-traversal-task-source">history traversal task source</a> that are
                   9274:      associated with any <code><a href="dom.html#document">Document</a></code> objects in the
                   9275:      <a href="#top-level-browsing-context">top-level browsing context</a>'s <a href="#document-family">document
                   9276:      family</a>.</p></li>
                   9277: 
                   9278:      <li><p>If appropriate, update the <a href="#current-entry">current entry</a> to
                   9279:      reflect any state that the user agent wishes to persist. The
                   9280:      entry is then said to be <a href="#an-entry-with-persisted-user-state">an entry with persisted user
                   9281:      state</a>.</p></li>
                   9282: 
                   9283:      <li><p>Add a <a href="#state-object">state object</a> entry to the session
                   9284:      history, after the <a href="#current-entry">current entry</a>, with <var title="">cloned data</var> as the <a href="#state-object">state object</a>, the
                   9285:      given <var title="">title</var> as the title, and <var title="">new URL</var> as the <a href="urls.html#url">URL</a> of the
                   9286:      entry.</p></li>
                   9287: 
                   9288:      <li><p>Update the <a href="#current-entry">current entry</a> to be this newly
                   9289:      added entry.</p></li>
                   9290: 
                   9291:     </ol><p>Otherwise, if the method invoked was the <code title="dom-history-replaceState"><a href="#dom-history-replacestate">replaceState()</a></code> method:</p>
                   9292: 
                   9293:     <ol><li><p>Update the <a href="#current-entry">current entry</a> in the session
                   9294:      history so that <var title="">cloned data</var> is the entry's
                   9295:      new state object, the given <var title="">title</var> is the new
                   9296:      title, and <var title="">new URL</var> is the entry's new
                   9297:      <a href="urls.html#url">URL</a>.</p></li>
                   9298: 
                   9299:     </ol></li>
                   9300: 
                   9301:    <li><p>If the <a href="#current-entry">current entry</a> in the session history
                   9302:    represents a non-GET request (e.g. it was the result of a POST
                   9303:    submission) then update it to instead represent a GET request
                   9304:    (<a href="urls.html#concept-http-equivalent-get" title="concept-http-equivalent-get">or
                   9305:    equivalent</a>).</p></li>
                   9306: 
                   9307:    <li>
                   9308: 
                   9309:     <p>Set <a href="dom.html#the-document's-address">the document's address</a> to <var title="">new
                   9310:     URL</var>.</p>
                   9311: 
                   9312:     <p class="note">Since this is neither a <a href="#navigate" title="navigate">navigation</a> of the <a href="#browsing-context">browsing
                   9313:     context</a> nor a <a href="#traverse-the-history" title="traverse the history">history
                   9314:     traversal</a>, it does not cause a <code title="event-hashchange"><a href="#event-hashchange">hashchange</a></code> event to be fired.</p>
                   9315: 
                   9316:    </li>
                   9317: 
                   9318:    <li>
                   9319: 
                   9320:     <p>Set <code title="dom-history-state"><a href="#dom-history-state">history.state</a></code> to a
                   9321:     <a href="common-dom-interfaces.html#structured-clone">structured clone</a> of <var title="">cloned
                   9322:     data</var>.</p> <!-- it's a clone of /cloned data/, not /data/, so
                   9323:     that there's no risk of running scripts again -->
                   9324: 
                   9325:    </li>
                   9326: 
                   9327:    <li>
                   9328: 
                   9329:     <p>Let the <a href="#latest-entry">latest entry</a> of the
                   9330:     <code><a href="dom.html#document">Document</a></code> of the <a href="#current-entry">current entry</a> be the
                   9331:     <a href="#current-entry">current entry</a>.</p>
                   9332: 
                   9333:    </li>
                   9334: 
                   9335:   </ol><p class="note">The <var title="">title</var> is purely
                   9336:   advisory. User agents might use the title in the user interface.</p>
                   9337: 
                   9338:   <p>User agents may limit the number of state objects added to the
                   9339:   session history per page. If a page hits the UA-defined limit, user
                   9340:   agents must remove the entry immediately after the first entry for
                   9341:   that <code><a href="dom.html#document">Document</a></code> object in the session history after
                   9342:   having added the new entry. (Thus the state history acts as a FIFO
                   9343:   buffer for eviction, but as a LIFO buffer for navigation.)</p>
                   9344: 
                   9345:   </div>
                   9346: 
                   9347:   <div class="example">
                   9348: 
                   9349:    <p>Consider a game where the user can navigate along a line, such
                   9350:    that the user is always at some coordinate, and such that the user
                   9351:    can bookmark the page corresponding to a particular coordinate, to
                   9352:    return to it later.</p>
                   9353: 
                   9354:    <p>A static page implementing the x=5 position in such a game could
                   9355:    look like the following:</p>
                   9356: 
                   9357:    <pre>&lt;!DOCTYPE HTML&gt;
                   9358: &lt;!-- this is http://example.com/line?x=5 --&gt;
                   9359: &lt;title&gt;Line Game - 5&lt;/title&gt;
                   9360: &lt;p&gt;You are at coordinate 5 on the line.&lt;/p&gt;
                   9361: &lt;p&gt;
                   9362:  &lt;a href="?x=6"&gt;Advance to 6&lt;/a&gt; or
                   9363:  &lt;a href="?x=4"&gt;retreat to 4&lt;/a&gt;?
                   9364: &lt;/p&gt;</pre>
                   9365: 
                   9366:    <p>The problem with such a system is that each time the user
                   9367:    clicks, the whole page has to be reloaded. Here instead is another
                   9368:    way of doing it, using script:</p>
                   9369: 
                   9370:    <pre>&lt;!DOCTYPE HTML&gt;
                   9371: &lt;!-- this starts off as http://example.com/line?x=5 --&gt;
                   9372: &lt;title&gt;Line Game - 5&lt;/title&gt;
                   9373: &lt;p&gt;You are at coordinate &lt;span id="coord"&gt;5&lt;/span&gt; on the line.&lt;/p&gt;
                   9374: &lt;p&gt;
                   9375:  &lt;a href="?x=6" onclick="go(1); return false;"&gt;Advance to 6&lt;/a&gt; or
                   9376:  &lt;a href="?x=4" onclick="go(-1); return false;"&gt;retreat to 4&lt;/a&gt;?
                   9377: &lt;/p&gt;
                   9378: &lt;script&gt;
                   9379:  var currentPage = 5; // prefilled by server
                   9380:  function go(d) {
                   9381:    setupPage(currentPage + d);
                   9382:    history.pushState(currentPage, document.title, '?x=' + currentPage);
                   9383:  }
                   9384:  onpopstate = function(event) {
                   9385:    setupPage(event.state);
                   9386:  }
                   9387:  function setupPage(page) {
                   9388:    currentPage = page;
                   9389:    document.title = 'Line Game - ' + currentPage;
                   9390:    document.getElementById('coord').textContent = currentPage;
                   9391:    document.links[0].href = '?x=' + (currentPage+1);
                   9392:    document.links[0].textContent = 'Advance to ' + (currentPage+1);
                   9393:    document.links[1].href = '?x=' + (currentPage-1);
                   9394:    document.links[1].textContent = 'retreat to ' + (currentPage-1);
                   9395:  }
                   9396: &lt;/script&gt;</pre>
                   9397: 
                   9398:    <p>In systems without script, this still works like the previous
                   9399:    example. However, users that <em>do</em> have script support can
                   9400:    now navigate much faster, since there is no network access for the
                   9401:    same experience. Furthermore, contrary to the experience the user
                   9402:    would have with just a na&#239;ve script-based approach,
                   9403:    bookmarking and navigating the session history still work.</p>
                   9404: 
                   9405:    <p>In the example above, the <var title="">data</var> argument to
                   9406:    the <code title="dom-history-pushState"><a href="#dom-history-pushstate">pushState()</a></code> method
                   9407:    is the same information as would be sent to the server, but in a
                   9408:    more convenient form, so that the script doesn't have to parse the
                   9409:    URL each time the user navigates.</p>
                   9410: 
                   9411:   </div>
                   9412: 
                   9413:   <div class="example">
                   9414: 
                   9415:    <p>Applications might not use the same title for a <a href="#session-history-entry">session
                   9416:    history entry</a> as the value of the document's
                   9417:    <code><a href="the-title-element.html#the-title-element">title</a></code> element at that time. For example, here is a
                   9418:    simple page that shows a block in the <code><a href="the-title-element.html#the-title-element">title</a></code> element.
                   9419:    Clearly, when navigating backwards to a previous state the user
                   9420:    does not go back in time, and therefore it would be inappropriate
                   9421:    to put the time in the session history title.</p>
                   9422: 
                   9423:    <pre>&lt;!DOCTYPE HTML&gt;
                   9424: &lt;TITLE&gt;Line&lt;/TITLE&gt;
                   9425: &lt;SCRIPT&gt;
                   9426:  setInterval(function () { document.title = 'Line - ' + new Date(); }, 1000);
                   9427:  var i = 1;
                   9428:  function inc() {
                   9429:    set(i+1);
                   9430:    history.pushState(i, 'Line - ' + i);
                   9431:  }
                   9432:  function set(newI) {
                   9433:    i = newI;
                   9434:    document.forms.F.I.value = newI;
                   9435:  }
                   9436: &lt;/SCRIPT&gt;
                   9437: &lt;BODY ONPOPSTATE="set(event.state)"&gt;
                   9438: &lt;FORM NAME=F&gt;
                   9439: State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BUTTON ONCLICK="inc()"&gt;
                   9440: &lt;/FORM&gt;</pre>
                   9441: 
                   9442:   </div>
                   9443: 
                   9444: 
                   9445: 
                   9446:   <h4 id="the-location-interface"><span class="secno">5.5.3 </span>The <code><a href="#location">Location</a></code> interface</h4>
                   9447: 
                   9448:   <p>Each <code><a href="dom.html#document">Document</a></code> object in a <a href="#browsing-context">browsing
                   9449:   context</a>'s session history is associated with a unique
                   9450:   instance of a <code><a href="#location">Location</a></code> object.</p>
                   9451: 
                   9452:   <dl class="domintro"><dt><var title="">document</var> . <code title="dom-document-location"><a href="#dom-document-location">location</a></code> [ = <var title="">value</var> ]</dt>
                   9453:    <dt><var title="">window</var> . <code title="dom-location"><a href="#dom-location">location</a></code> [ = <var title="">value</var> ]</dt>
                   9454: 
                   9455:    <dd>
                   9456: 
                   9457:     <p>Returns a <code><a href="#location">Location</a></code> object with the current page's location.</p>
                   9458: 
                   9459:     <p>Can be set, to navigate to another page.</p>
                   9460: 
                   9461:    </dd>
                   9462: 
                   9463:   </dl><div class="impl">
                   9464: 
                   9465:   <p>The <dfn id="dom-document-location" title="dom-document-location"><code>location</code></dfn> attribute
                   9466:   of the <code><a href="dom.html#document">Document</a></code> interface must return the
                   9467:   <code><a href="#location">Location</a></code> object for that <code><a href="dom.html#document">Document</a></code> object,
                   9468:   if it is in a <a href="#browsing-context">browsing context</a>, and null otherwise.</p>
                   9469: 
                   9470:   <p>The <dfn id="dom-location" title="dom-location"><code>location</code></dfn>
                   9471:   attribute of the <code><a href="#window">Window</a></code> interface must return the
                   9472:   <code><a href="#location">Location</a></code> object for that <code><a href="#window">Window</a></code> object's
                   9473:   <code><a href="dom.html#document">Document</a></code>.</p>
                   9474: 
                   9475:   </div>
                   9476: 
                   9477:   <p><code><a href="#location">Location</a></code> objects provide a representation of <a href="dom.html#the-document's-address" title="the document's address">their document's address</a>, and
                   9478:   allow the <a href="#current-entry">current entry</a> of the <a href="#browsing-context">browsing
                   9479:   context</a>'s session history to be changed, by adding or
                   9480:   replacing entries in the <code title="dom-history"><a href="#dom-history">history</a></code>
                   9481:   object.</p>
                   9482: 
                   9483:   <pre class="idl">interface <dfn id="location">Location</dfn> {
                   9484:   stringifier attribute DOMString <a href="#dom-location-href" title="dom-location-href">href</a>;
                   9485:   void <a href="#dom-location-assign" title="dom-location-assign">assign</a>(DOMString url);
                   9486:   void <a href="#dom-location-replace" title="dom-location-replace">replace</a>(DOMString url);
                   9487:   void <a href="#dom-location-reload" title="dom-location-reload">reload</a>();
                   9488: 
                   9489:   // <a href="urls.html#url-decomposition-idl-attributes">URL decomposition IDL attributes</a> <!-- blame brendan for these "innovative" names -->
                   9490:            attribute DOMString <a href="#dom-location-protocol" title="dom-location-protocol">protocol</a>;
                   9491:            attribute DOMString <a href="#dom-location-host" title="dom-location-host">host</a>;
                   9492:            attribute DOMString <a href="#dom-location-hostname" title="dom-location-hostname">hostname</a>;
                   9493:            attribute DOMString <a href="#dom-location-port" title="dom-location-port">port</a>;
                   9494:            attribute DOMString <a href="#dom-location-pathname" title="dom-location-pathname">pathname</a>;
                   9495:            attribute DOMString <a href="#dom-location-search" title="dom-location-search">search</a>;
                   9496:            attribute DOMString <a href="#dom-location-hash" title="dom-location-hash">hash</a>;
                   9497: };</pre>
                   9498: 
                   9499:   <dl class="domintro"><dt><var title="">location</var> . <code title="dom-location-href"><a href="#dom-location-href">href</a></code> [ = <var title="">value</var> ]</dt>
                   9500: 
                   9501:    <dd>
                   9502: 
                   9503:     <p>Returns the current page's location.</p>
                   9504: 
                   9505:     <p>Can be set, to navigate to another page.</p>
                   9506: 
                   9507:    </dd>
                   9508: 
                   9509:    <dt><var title="">location</var> . <code title="dom-location-assign"><a href="#dom-location-assign">assign</a></code>(<var title="">url</var>)</dt>
                   9510: 
                   9511:    <dd>
                   9512: 
                   9513:     <p>Navigates to the given page.</p>
                   9514: 
                   9515:    </dd>
                   9516: 
                   9517:    <dt><var title="">location</var> . <code title="dom-location-replace"><a href="#dom-location-replace">replace</a></code>(<var title="">url</var>)</dt>
                   9518: 
                   9519:    <dd>
                   9520: 
                   9521:     <p>Removes the current page from the session history and navigates to the given page.</p>
                   9522: 
                   9523:    </dd>
                   9524: 
                   9525:    <dt><var title="">location</var> . <code title="dom-location-reload"><a href="#dom-location-reload">reload</a></code>()</dt>
                   9526: 
                   9527:    <dd>
                   9528: 
                   9529:     <p>Reloads the current page.</p>
                   9530: 
                   9531:    </dd>
                   9532: 
                   9533:   </dl><div class="impl">
                   9534: 
                   9535:   <p>The <dfn id="dom-location-href" title="dom-location-href"><code>href</code></dfn>
                   9536:   attribute must return <a href="dom.html#the-document's-address" title="the document's address">the
                   9537:   address</a> of the associated <code><a href="dom.html#document">Document</a></code> object, as an
                   9538:   <a href="urls.html#absolute-url">absolute URL</a>.</p>
                   9539: 
                   9540:   <p>On setting, if the <code><a href="#location">Location</a></code> object's associated
                   9541:   <code><a href="dom.html#document">Document</a></code> object has <a href="#completely-loaded">completely loaded</a>,
                   9542:   then the user agent must act as if the <code title="dom-location-assign"><a href="#dom-location-assign">assign()</a></code> method had been called
                   9543:   with the new value as its argument. Otherwise, the user agent must
                   9544:   act as if the <code title="dom-location-replace"><a href="#dom-location-replace">replace()</a></code>
                   9545:   method had been called with the new value as its argument.</p>
                   9546:   <!--DONAV location.href, defined in terms of the paragraphs below-->
                   9547: 
                   9548:   <p>When the <dfn id="dom-location-assign" title="dom-location-assign"><code>assign(<var title="">url</var>)</code></dfn> method is invoked, the UA must
                   9549:   <a href="urls.html#resolve-a-url" title="resolve a url">resolve</a> the argument, relative to
                   9550:   the <a href="#entry-script">entry script</a>'s <a href="#script's-base-url" title="script's base URL">base
                   9551:   URL</a>, and if that is successful, must
                   9552:   <a href="#navigate">navigate</a><!--DONAV location.href/assign--> the
                   9553:   <a href="#browsing-context">browsing context</a> to the specified <var title="">url</var>. If the <a href="#browsing-context">browsing context</a>'s
                   9554:   <a href="#session-history">session history</a> contains only one
                   9555:   <code><a href="dom.html#document">Document</a></code>, and that was the <code><a href="urls.html#about:blank">about:blank</a></code>
                   9556:   <code><a href="dom.html#document">Document</a></code> created when the <a href="#browsing-context">browsing context</a>
                   9557:   was created, then the navigation must be done with <a href="#replacement-enabled">replacement
                   9558:   enabled</a>.</p> <!-- READ ME WHEN EDITING THIS: IE and Firefox
                   9559:   only seem to treat it that way if the DOM is still a virgin DOM;
                   9560:   Safari doesn't check that. Thus this might need changing if testing
                   9561:   shows the IE/Firefox behaviour is required here. -->
                   9562: 
                   9563:   <p>When the <dfn id="dom-location-replace" title="dom-location-replace"><code>replace(<var title="">url</var>)</code></dfn> method is invoked, the UA must
                   9564:   <a href="urls.html#resolve-a-url" title="resolve a url">resolve</a> the argument, relative to
                   9565:   the <a href="#entry-script">entry script</a>'s <a href="#script's-base-url" title="script's base URL">base
                   9566:   URL</a>, and if that is successful,
                   9567:   <a href="#navigate">navigate</a><!--DONAV location.href/replace--> the
                   9568:   <a href="#browsing-context">browsing context</a> to the specified <var title="">url</var> with <a href="#replacement-enabled">replacement enabled</a>.</p>
                   9569: 
                   9570:   <p>Navigation for the <code title="dom-location-assign"><a href="#dom-location-assign">assign()</a></code> and <code title="dom-location-replace"><a href="#dom-location-replace">replace()</a></code> methods must be done
                   9571:   with the <a href="#script's-browsing-context" title="script's browsing context">browsing
                   9572:   context</a> of the script that invoked the method as the
                   9573:   <a href="#source-browsing-context">source browsing context</a>.</p>
                   9574: 
                   9575:   <p>If the <a href="urls.html#resolve-a-url" title="resolve a url">resolving</a> step of the
                   9576:   <code title="dom-location-assign"><a href="#dom-location-assign">assign()</a></code> and <code title="dom-location-replace"><a href="#dom-location-replace">replace()</a></code> methods is not
                   9577:   successful, then the user agent must instead throw a
                   9578:   <code><a href="infrastructure.html#syntaxerror">SyntaxError</a></code> exception.</p>
                   9579: 
                   9580:   <p>When the <dfn id="dom-location-reload" title="dom-location-reload"><code>reload()</code></dfn> method is
                   9581:   invoked, the user agent must run the appropriate steps from the
                   9582:   following list:</p>
                   9583: 
                   9584:   <dl class="switch"><dt>If the currently executing <a href="#concept-task" title="concept-task">task</a> is the dispatch of a <code title="event-resize">resize</code> event in response to the user
                   9585:    resizing the <a href="#browsing-context">browsing context</a></dt>
                   9586: 
                   9587:    <dd><p>Repaint the <a href="#browsing-context">browsing context</a> and abort these
                   9588:    steps.</p></dd> <!-- this theoretically would have no effect but in
                   9589:    practice can be useful to work around rendering bugs. -->
                   9590: 
                   9591:    <dt>If the <a href="#browsing-context">browsing context</a>'s <a href="#active-document">active
                   9592:    document</a> is <a href="the-iframe-element.html#an-iframe-srcdoc-document">an <code>iframe</code> <code title="attr-iframe-srcdoc">srcdoc</code> document</a></dt>
                   9593: 
                   9594:    <dd><p><a href="the-iframe-element.html#process-the-iframe-attributes" title="process the iframe attributes">Reprocess the
                   9595:    <code>iframe</code> attributes</a> of the <a href="#browsing-context">browsing
                   9596:    context</a>'s <a href="#browsing-context-container">browsing context container</a>.</p></dd>
                   9597: 
                   9598:    <dt>If the <a href="#browsing-context">browsing context</a>'s <a href="#active-document">active
                   9599:    document</a> has its <a href="dom.html#reload-override-flag">reload override
                   9600:    flag</a> set</dt>
                   9601: 
                   9602:    <dd><p>Perform <a href="dom.html#an-overridden-reload">an overridden reload</a>.</p></dd>
                   9603: 
                   9604:    <dt>Otherwise</dt>
                   9605: 
                   9606:    <dd><p><a href="#navigate">Navigate</a><!--DONAV location.reload()--> the
                   9607:    <a href="#browsing-context">browsing context</a> to <a href="dom.html#the-document's-address">the document's
                   9608:    address</a> with <a href="#replacement-enabled">replacement enabled</a>. The
                   9609:    <a href="#source-browsing-context">source browsing context</a> must be the <a href="#browsing-context">browsing
                   9610:    context</a> being navigated.</p></dd> <!-- it appears that
                   9611:    document.reload() always uses GET and does not, e.g., re-POST. -->
                   9612: 
                   9613:    <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/141 -->
                   9614: 
                   9615:   </dl><p>When a user requests that the current page of a <a href="#browsing-context">browsing
                   9616:   context</a> be reloaded through a user interface element, the
                   9617:   user agent should <a href="#navigate">navigate</a><!--DONAV user reload--> the
                   9618:   <a href="#browsing-context">browsing context</a> to the same resource as
                   9619:   <code><a href="dom.html#document">Document</a></code>, with <a href="#replacement-enabled">replacement enabled</a>. In the
                   9620:   case of non-idempotent methods (e.g. HTTP POST), the user agent
                   9621:   should prompt the user to confirm the operation first, since
                   9622:   otherwise transactions (e.g. purchases or database modifications)
                   9623:   could be repeated. User agents may allow the user to explicitly
                   9624:   override any caches when reloading. If <a href="#browsing-context">browsing
                   9625:   context</a>'s <a href="#active-document">active document</a>'s <a href="dom.html#reload-override-flag">reload
                   9626:   override flag</a> is set, then the user agent may instead perform
                   9627:   <a href="dom.html#an-overridden-reload">an overridden reload</a> rather than the navigation
                   9628:   described in this paragraph.</p>
                   9629: 
                   9630:   </div>
                   9631: 
                   9632:   <p>The <code><a href="#location">Location</a></code> interface also has the complement of
                   9633:   <a href="urls.html#url-decomposition-idl-attributes">URL decomposition IDL attributes</a>, <dfn id="dom-location-protocol" title="dom-location-protocol"><code>protocol</code></dfn>, <dfn id="dom-location-host" title="dom-location-host"><code>host</code></dfn>, <dfn id="dom-location-port" title="dom-location-port"><code>port</code></dfn>, <dfn id="dom-location-hostname" title="dom-location-hostname"><code>hostname</code></dfn>, <dfn id="dom-location-pathname" title="dom-location-pathname"><code>pathname</code></dfn>, <dfn id="dom-location-search" title="dom-location-search"><code>search</code></dfn>, and <dfn id="dom-location-hash" title="dom-location-hash"><code>hash</code></dfn>. <span class="impl">These must follow the rules given for <a href="urls.html#url-decomposition-idl-attributes">URL
                   9634:   decomposition IDL attributes</a>, with the <a href="urls.html#concept-uda-input" title="concept-uda-input">input</a> being <a href="dom.html#the-document's-address" title="the
                   9635:   document's address">the address</a> of the associated
                   9636:   <code><a href="dom.html#document">Document</a></code> object, as an <a href="urls.html#absolute-url">absolute URL</a> (same
                   9637:   as the <code title="dom-location-href"><a href="#dom-location-href">href</a></code> attribute), and
                   9638:   the <a href="urls.html#concept-uda-setter" title="concept-uda-setter">common setter action</a>
                   9639:   being the same as setting the <code title="dom-location-href"><a href="#dom-location-href">href</a></code> attribute to the new output
                   9640:   value.</span></p> <!--TOPIC:HTML-->
                   9641: 
                   9642: 
                   9643: <!--ADD-TOPIC:Security-->
                   9644:   <div class="impl">
                   9645: 
                   9646:   <h5 id="security-location"><span class="secno">5.5.3.1 </span>Security</h5>
                   9647: 
                   9648:   <p id="security-3">User agents must throw a
                   9649:   <code><a href="infrastructure.html#securityerror">SecurityError</a></code> exception whenever any of the members of a
                   9650:   <code><a href="#location">Location</a></code> object are accessed by scripts whose
                   9651:   <a href="#effective-script-origin">effective script origin</a> is not the <a href="#same-origin" title="same
                   9652:   origin">same</a> as the <code><a href="#location">Location</a></code> object's associated
                   9653:   <code><a href="dom.html#document">Document</a></code>'s <a href="#effective-script-origin">effective script origin</a>, with
                   9654:   the following exceptions:</p>
                   9655: 
                   9656:   <ul><li>The <code title="dom-location-href"><a href="#dom-location-href">href</a></code> setter, if the
                   9657:    script is running in a <a href="#browsing-context">browsing context</a> that is
                   9658:    <a href="#allowed-to-navigate">allowed to navigate</a> the browsing context with which
                   9659:    the <code><a href="#location">Location</a></code> object is associated
                   9660: 
                   9661:    </li><li>The <code title="dom-location-replace"><a href="#dom-location-replace">replace()</a></code> method,
                   9662:    if the script is running in a <a href="#browsing-context">browsing context</a> that is
                   9663:    <a href="#allowed-to-navigate">allowed to navigate</a> the browsing context with which
                   9664:    the <code><a href="#location">Location</a></code> object is associated
                   9665: 
                   9666:   </li></ul></div>
                   9667: <!--REMOVE-TOPIC:Security-->
                   9668: 
                   9669: 
                   9670:   <div class="impl">
                   9671: 
                   9672:   <h4 id="history-notes"><span class="secno">5.5.4 </span>Implementation notes for session history</h4>
                   9673:   <!-- don't change the ID without updating multiple internal links -->
                   9674: 
                   9675:   <p><i>This section is non-normative.</i></p>
                   9676:   <p>The <code><a href="#history-1">History</a></code> interface is not meant to place
                   9677:   restrictions on how implementations represent the session history to
                   9678:   the user.</p>
                   9679: 
                   9680:   <p>For example, session history could be implemented in a tree-like
                   9681:   manner, with each page having multiple "forward" pages. This
                   9682:   specification doesn't define how the linear list of pages in the
                   9683:   <code title="dom-history"><a href="#dom-history">history</a></code> object are derived from the
                   9684:   actual session history as seen from the user's perspective.</p>
                   9685: 
                   9686:   <p>Similarly, a page containing two <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>s has a <code title="dom-history"><a href="#dom-history">history</a></code> object distinct from the
                   9687:   <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>s' <code title="dom-history"><a href="#dom-history">history</a></code>
                   9688:   objects, despite the fact that typical Web browsers present the user
                   9689:   with just one "Back" button, with a session history that interleaves
                   9690:   the navigation of the two inner frames and the outer page.</p>
                   9691: 
                   9692: <!--ADD-TOPIC:Security-->
                   9693:   <p><strong>Security</strong>: It is suggested that to avoid letting
                   9694:   a page "hijack" the history navigation facilities of a UA by abusing
                   9695:   <code title="dom-history-pushState"><a href="#dom-history-pushstate">pushState()</a></code>, the UA
                   9696:   provide the user with a way to jump back to the previous page
                   9697:   (rather than just going back to the previous state). For example,
                   9698:   the back button could have a drop down showing just the pages in the
                   9699:   session history, and not showing any of the states. Similarly, an
                   9700:   aural browser could have two "back" commands, one that goes back to
                   9701:   the previous state, and one that jumps straight back to the previous
                   9702:   page.</p>
                   9703: 
                   9704:   <p>In addition, a user agent could ignore calls to <code title="dom-history-pushState"><a href="#dom-history-pushstate">pushState()</a></code> that are invoked on
                   9705:   a timer, or from event listeners that are not triggered in response
                   9706:   to a clear user action, or that are invoked in rapid succession.</p>
                   9707: <!--REMOVE-TOPIC:Security-->
                   9708: 
                   9709:   </div>
                   9710: 
                   9711: 
                   9712:   <h3 id="browsing-the-web"><span class="secno">5.6 </span>Browsing the Web</h3>
                   9713: 
                   9714:   <div class="impl">
                   9715: 
                   9716:   <h4 id="navigating-across-documents"><span class="secno">5.6.1 </span>Navigating across documents</h4>
                   9717: 
                   9718:   <p>Certain actions cause the <a href="#browsing-context">browsing context</a> to
                   9719:   <i><a href="#navigate">navigate</a></i> to a new resource. Navigation always involves
                   9720:   <dfn id="source-browsing-context">source browsing context</dfn>, which is the browsing context
                   9721:   which was responsible for starting the navigation.</p>
                   9722: 
                   9723:   <p class="example">For example, <a href="#following-hyperlinks-0" title="following
                   9724:   hyperlinks">following a hyperlink</a>, <a href="#concept-form-submit" title="concept-form-submit">form submission</a>, and the <code title="dom-open"><a href="#dom-open">window.open()</a></code> and <code title="dom-location-assign"><a href="#dom-location-assign">location.assign()</a></code> methods can all
                   9725:   cause a browsing context to navigate.</p>
                   9726: 
                   9727:   <p>A user agent may provide various ways for the user to explicitly
                   9728:   cause a browsing context to navigate, in addition to those defined
                   9729:   in this specification.</p>
                   9730: 
                   9731:   <!-- NAVIGATE <dfn>navigate</dfn> -->
                   9732:   <!-- For places that _call_ this, as opposed to just referring to
                   9733:   it, search for "DONAV" -->
                   9734:   <p>When a browsing context is <dfn id="navigate" title="navigate">navigated</dfn>
                   9735:   to a new resource, the user agent must run the following steps:</p>
                   9736: 
                   9737:   <ol><li><p>Release the <a href="#storage-mutex">storage mutex</a>.</p></li>
                   9738: 
                   9739:    <li id="sandboxLinks">
                   9740: 
                   9741:     <p>If the <a href="#source-browsing-context">source browsing context</a> is not the same as
                   9742:     the <a href="#browsing-context">browsing context</a> being navigated, and the
                   9743:     <a href="#source-browsing-context">source browsing context</a> is not one of the <a href="#ancestor-browsing-context" title="ancestor browsing context">ancestor browsing
                   9744:     contexts</a> of the <a href="#browsing-context">browsing context</a> being
                   9745:     navigated, and the <a href="#browsing-context">browsing context</a> being navigated
                   9746:     is not a <a href="#top-level-browsing-context">top-level browsing context</a>, and the
                   9747:     <a href="#source-browsing-context">source browsing context</a>'s <a href="#active-document">active
                   9748:     document</a>'s <a href="#active-sandboxing-flag-set">active sandboxing flag set</a> has its
                   9749:     <a href="#sandboxed-navigation-browsing-context-flag">sandboxed navigation browsing context flag</a> set, then
                   9750:     abort these steps.</p>
                   9751: 
                   9752:     <p>Otherwise, if the <a href="#browsing-context">browsing context</a> being navigated
                   9753:     is a <a href="#top-level-browsing-context">top-level browsing context</a>, and is one of the
                   9754:     <a href="#ancestor-browsing-context" title="ancestor browsing context">ancestor browsing
                   9755:     contexts</a> of the <a href="#source-browsing-context">source browsing context</a>, and
                   9756:     the <a href="#source-browsing-context">source browsing context</a>'s <code><a href="dom.html#document">Document</a></code>'s
                   9757:     <a href="#active-sandboxing-flag-set">active sandboxing flag set</a> has its <a href="#sandboxed-top-level-navigation-browsing-context-flag">sandboxed
                   9758:     top-level navigation browsing context flag</a> set, then abort
                   9759:     these steps.</p>
                   9760: 
                   9761:     <p>Otherwise, if the <a href="#browsing-context">browsing context</a> being navigated
                   9762:     is a <a href="#top-level-browsing-context">top-level browsing context</a>, and is not one of
                   9763:     the <a href="#ancestor-browsing-context" title="ancestor browsing context">ancestor browsing
                   9764:     contexts</a> of the <a href="#source-browsing-context">source browsing context</a>, and
                   9765:     the <a href="#source-browsing-context">source browsing context</a>'s <code><a href="dom.html#document">Document</a></code>'s
                   9766:     <a href="#active-sandboxing-flag-set">active sandboxing flag set</a> has its <a href="#sandboxed-navigation-browsing-context-flag">sandboxed
                   9767:     navigation browsing context flag</a> set, and the <a href="#source-browsing-context">source
                   9768:     browsing context</a> is not the <a href="#one-permitted-sandboxed-navigator">one permitted sandboxed
                   9769:     navigator</a> of the <a href="#browsing-context">browsing context</a> being
                   9770:     navigated, then abort these steps.</p> <!-- we do not check the
                   9771:     /sandboxed auxiliary navigation browsing context flag/ here,
                   9772:     that's only for actually opening the new top-level browsing
                   9773:     context. -->
                   9774: 
                   9775:     <p>In all of these cases, the user agent may additionally offer to
                   9776:     open the new resource in a new <a href="#top-level-browsing-context">top-level browsing
                   9777:     context</a> or in the <a href="#top-level-browsing-context">top-level browsing context</a>
                   9778:     of the <a href="#source-browsing-context">source browsing context</a>, at the user's option,
                   9779:     in which case the user agent must <a href="#navigate">navigate</a><!--DONAV
                   9780:     sandbox manual load--> that designated <a href="#top-level-browsing-context">top-level browsing
                   9781:     context</a> to the new resource as if the user had requested it
                   9782:     independently.</p>
                   9783: 
                   9784:     <p class="note">Doing so, however, can be dangerous, as it means
                   9785:     that the user is overriding the author's explicit request to
                   9786:     sandbox the content.</p>
                   9787: 
                   9788:    </li>
                   9789: 
                   9790:    <li id="seamlessLinks"><p>If the <a href="#source-browsing-context">source browsing
                   9791:    context</a> is the same as the <a href="#browsing-context">browsing context</a>
                   9792:    being navigated, and this browsing context has its <a href="the-iframe-element.html#seamless-browsing-context-flag">seamless
                   9793:    browsing context flag</a> set, and the <a href="#browsing-context">browsing
                   9794:    context</a> being navigated was not chosen using an
                   9795:    <dfn id="explicit-self-navigation-override">explicit self-navigation override</dfn>, then find the
                   9796:    nearest <a href="#ancestor-browsing-context">ancestor browsing context</a> that does not have
                   9797:    its <a href="the-iframe-element.html#seamless-browsing-context-flag">seamless browsing context flag</a> set, and continue
                   9798:    these steps as if <em>that</em> <a href="#browsing-context">browsing context</a> was
                   9799:    the one that was going to be <a href="#navigate" title="navigate">navigated</a> instead.</p></li>
                   9800: 
                   9801:    <li><p>If there is a preexisting attempt to navigate the
                   9802:    <a href="#browsing-context">browsing context</a>, and the <a href="#source-browsing-context">source browsing
                   9803:    context</a> is the same as the <a href="#browsing-context">browsing context</a>
                   9804:    being navigated, and that attempt is currently
                   9805:    running the <a href="#unload-a-document">unload a document</a> algorithm, and the
                   9806:    <a href="#origin-0">origin</a> of the <a href="urls.html#url">URL</a> of the resource being
                   9807:    loaded in that navigation is not the <a href="#same-origin">same origin</a> as
                   9808:    the <a href="#origin-0">origin</a> of the <a href="urls.html#url">URL</a> of the resource
                   9809:    being loaded in <em>this</em> navigation, then abort these steps
                   9810:    without affecting the preexisting attempt to navigate the
                   9811:    <a href="#browsing-context">browsing context</a>.</p></li>
                   9812:    <!-- http://www.hixie.ch/tests/adhoc/html/navigation/unload/ -->
                   9813: 
                   9814:    <li><p>If a <a href="#concept-task" title="concept-task">task</a> queued by the
                   9815:    <a href="#traverse-the-history-by-a-delta">traverse the history by a delta</a> algorithm is running
                   9816:    the <a href="#unload-a-document">unload a document</a> algorithm for the <a href="#active-document">active
                   9817:    document</a> of the <a href="#browsing-context">browsing context</a> being
                   9818:    navigated, then abort these steps without affecting the
                   9819:    <a href="#unload-a-document">unload a document</a> algorithm or the aforementioned
                   9820:    history traversal task.</p></li> <!-- this stops pages from
                   9821:    hijacking the back/forward button -->
                   9822: 
                   9823:    <li id="navigate-fragid-step"><p><i>Fragment identifiers</i>: If
                   9824:    the <a href="urls.html#absolute-url">absolute URL</a> of the new resource is the same as
                   9825:    the <a href="dom.html#the-document's-address" title="the document's address">address</a> of the
                   9826:    <a href="#active-document">active document</a> of the <a href="#browsing-context">browsing context</a>
                   9827:    being navigated, ignoring any <a href="urls.html#url-fragment" title="url-fragment">&lt;fragment&gt;</a> components of those
                   9828:    <a href="urls.html#url" title="URL">URLs</a>, and the new resource is to be
                   9829:    fetched using HTTP GET <a href="urls.html#concept-http-equivalent-get" title="concept-http-equivalent-get">or
                   9830:    equivalent</a>, and the <a href="urls.html#absolute-url">absolute URL</a> of the new
                   9831:    resource has a <a href="urls.html#url-fragment" title="url-fragment">&lt;fragment&gt;</a>
                   9832:    component (even if it is empty), then <a href="#scroll-to-fragid" title="navigate-fragid">navigate to that fragment identifier</a>
                   9833:    and abort these steps.</p></li>
                   9834: 
                   9835:    <li><p>Cancel any preexisting attempt to navigate the
                   9836:    <a href="#browsing-context">browsing context</a>, including canceling any instances of
                   9837:    the <a href="urls.html#fetch">fetch</a> algorithm started by those attempts. If one
                   9838:    of those attempts has already <a href="#create-a-document-object" title="create a document
                   9839:    object">created a new <code>Document</code> object</a>, <a href="#abort-a-document" title="abort a document">abort</a> that <code><a href="dom.html#document">Document</a></code>
                   9840:    also. (Previous navigation attempts whose <a href="urls.html#fetch">fetch</a>
                   9841:    requests have <em>finished</em> are unaffected, however.)</p></li>
                   9842: 
                   9843:    <li><p>If the new resource is to be handled using a mechanism that
                   9844:    does not affect the browsing context, e.g. ignoring the navigation
                   9845:    request altogether because the specified scheme is not one of the
                   9846:    supported protocols, then abort these steps and proceed with that
                   9847:    mechanism instead.</p></li>
                   9848: 
                   9849:    <li><p><a href="#prompt-to-unload-a-document" title="prompt to unload a document">Prompt to
                   9850:    unload</a> the <code><a href="dom.html#document">Document</a></code> object. If the user
                   9851:    <a href="#refused-to-allow-the-document-to-be-unloaded">refused to allow the document to be unloaded</a>, then
                   9852:    abort these steps.</p></li>
                   9853: 
                   9854:    <li><p><a href="#abort-a-document" title="abort a document">Abort</a> the
                   9855:    <a href="#active-document">active document</a> of the <a href="#browsing-context">browsing
                   9856:    context</a>.</p></li>
                   9857: 
                   9858:    <li>
                   9859: 
                   9860:     <p>If the new resource is to be handled by displaying some sort of
                   9861:     inline content, e.g. an error message because the specified scheme
                   9862:     is not one of the supported protocols, or an inline prompt to
                   9863:     allow the user to select <a href="#dom-navigator-registerprotocolhandler" title="dom-navigator-registerProtocolHandler">a registered
                   9864:     handler</a> for the given scheme, then <a href="#read-ua-inline" title="navigate-ua-inline">display the inline content</a> and
                   9865:     abort these steps.</p>
                   9866: 
                   9867:     <p class="note">In the case of a registered handler being used,
                   9868:     the algorithm will be reinvoked with a new URL to handle the
                   9869:     request.</p>
                   9870: 
                   9871:    </li>
                   9872: 
                   9873:    <li>
                   9874: 
                   9875:     <p>If the resource has already been obtained (e.g. because it is
                   9876:     being used to populate an <code><a href="the-object-element.html#the-object-element">object</a></code> element's new
                   9877:     <a href="#child-browsing-context">child browsing context</a>), then skip this step.</p>
                   9878: 
                   9879:     <p>Otherwise:</p>
                   9880: 
                   9881:     <p>If the new resource is to be fetched using HTTP GET <a href="urls.html#concept-http-equivalent-get" title="concept-http-equivalent-get">or equivalent</a>, and
                   9882:     there are <a href="#relevant-application-cache" title="relevant application cache">relevant
                   9883:     application caches</a> that are identified by a URL with the
                   9884:     <a href="#same-origin">same origin</a> as the URL in question, and that have
                   9885:     this URL as one of their entries, excluding entries marked as
                   9886:     <a href="#concept-appcache-foreign" title="concept-appcache-foreign">foreign</a>, and whose
                   9887:     <a href="#concept-appcache-mode" title="concept-appcache-mode">mode</a> is <a href="#concept-appcache-mode-fast" title="concept-appcache-mode-fast">fast</a>, and the user agent
                   9888:     is not in a mode where it will avoid using <a href="#application-cache" title="application cache">application caches</a> then get the
                   9889:     resource from the <a href="#concept-appcache-selection" title="concept-appcache-selection">most
                   9890:     appropriate application cache</a> of those that match.</p>
                   9891: 
                   9892:     <p class="example">For example, imagine an HTML page with an
                   9893:     associated application cache displaying an image and a form, where
                   9894:     the image is also used by several other application caches. If the
                   9895:     user right-clicks on the image and chooses "View Image", then the
                   9896:     user agent could decide to show the image from any of those
                   9897:     caches, but it is likely that the most useful cache for the user
                   9898:     would be the one that was used for the aforementioned HTML
                   9899:     page. On the other hand, if the user submits the form, and the
                   9900:     form does a POST submission, then the user agent will not use an
                   9901:     application cache at all; the submission will be made to the
                   9902:     network.</p>
                   9903: 
1.191     sruby    9904:     <p>Otherwise, <a href="urls.html#fetch">fetch</a><!--FETCH--> the new resource,
                   9905:     with the <i>manual redirect flag</i> set.</p>
1.190     sruby    9906: 
                   9907:     <p>If the resource is being fetched using a method other than one
                   9908:     <a href="urls.html#concept-http-equivalent-get" title="concept-http-equivalent-get">equivalent to</a>
                   9909:     HTTP's GET<!-- or HEAD (but that can't happen) -->, or, if the
                   9910:     <a href="#navigate" title="navigate">navigation algorithm</a> was invoked as
                   9911:     a result of the <a href="#concept-form-submit" title="concept-form-submit">form submission
                   9912:     algorithm</a>, then the <a href="urls.html#fetch" title="fetch">fetching
                   9913:     algorithm</a> must be invoked from the <a href="#origin-0">origin</a> of
                   9914:     the <a href="#active-document">active document</a> of the <a href="#source-browsing-context">source browsing
                   9915:     context</a>, if any.</p> <!-- potentially http-origin privacy
                   9916:     sensitive -->
                   9917: 
                   9918:     <p>If the <a href="#browsing-context">browsing context</a> being navigated is a
                   9919:     <a href="#child-browsing-context">child browsing context</a> for an <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> or
                   9920:     <code><a href="the-object-element.html#the-object-element">object</a></code> element, then the <a href="urls.html#fetch" title="fetch">fetching
                   9921:     algorithm</a> must be invoked from the <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> or
                   9922:     <code><a href="the-object-element.html#the-object-element">object</a></code> element's <a href="#browsing-context-scope-origin">browsing context scope
                   9923:     origin</a>, if it has one.</p> <!-- potentially http-origin
                   9924:     privacy sensitive -->
                   9925: 
                   9926:     <p>The <a href="urls.html#fetch">fetch</a> algorithm must <a href="#delay-the-load-event">delay the load
                   9927:     event</a> of the <a href="#browsing-context">browsing context</a>.</p> <!-- this
                   9928:     is what makes <iframe> elements delay the load event of their
                   9929:     parent browsing context when their child browsing context is in
                   9930:     between this step and the step that starts the parser. -->
                   9931: 
                   9932:    </li>
                   9933: 
                   9934:    <li>
                   9935: 
                   9936:     <!-- ******************** ASYNC BOUNDARY ******************** -->
                   9937: 
                   9938:     <p>At this point, unless this step has already been reached once
                   9939:     before in the execution of this instance of the algorithm, the
                   9940:     user agents must return to whatever algorithm invoked the
                   9941:     navigation steps and must continue these steps asynchronously.</p>
                   9942: 
                   9943:    </li>
                   9944: 
                   9945:    <li>
                   9946: 
                   9947:     <p>If fetching the resource results in a redirect, and either the
                   9948:     <a href="urls.html#url">URL</a> of the target of the redirect has the <a href="#same-origin">same
                   9949:     origin</a> as the original resource, or the resource is being
                   9950:     obtained using the POST method or a safe method (in HTTP terms),
                   9951:     return to <a href="#navigate-fragid-step">the step labeled
                   9952:     "fragment identifiers"</a> with the new resource, except that if
                   9953:     the <a href="urls.html#url">URL</a> of the target of the redirect does not have a
                   9954:     fragment identifier and the <a href="urls.html#url">URL</a> of the resource that
                   9955:     led to the redirect does, then the fragment identifier of the
                   9956:     resource that led to the redirect must be propagated to the
                   9957:     <a href="urls.html#url">URL</a> of the target of the redirect.</p>
                   9958: 
                   9959:     <p class="example">So for instance, if the original URL was "<code title="">http://example.com/#!sample</code>" and "<code title="">http://example.com/</code>" is found to redirect to
                   9960:     "<code title="">https://example.com/</code>", the URL of the new
                   9961:     resource will be "<code title="">https://example.com/#!sample</code>".</p>
                   9962: 
                   9963:     <p>Otherwise, if fetching the resource results in a redirect but
                   9964:     the <a href="urls.html#url">URL</a> of the target of the redirect does not have
                   9965:     the <a href="#same-origin">same origin</a> as the original resource and the
                   9966:     resource is being obtained using a method that is neither the POST
                   9967:     method nor a safe method (in HTTP terms), then abort these
                   9968:     steps. The user agent may indicate to the user that the navigation
                   9969:     has been aborted for security reasons.</p>
                   9970: 
                   9971:    </li>
                   9972: 
                   9973:    <li><p>Wait for one or more bytes to be available or for the user
                   9974:    agent to establish that the resource in question is empty. During
                   9975:    this time, the user agent may allow the user to cancel this
                   9976:    navigation attempt or start other navigation attempts.</p></li>
                   9977: 
                   9978:    <li>
                   9979: 
                   9980:     <p>If the resource was not fetched from an <a href="#application-cache">application
                   9981:     cache</a>, and was to be fetched using HTTP GET <a href="urls.html#concept-http-equivalent-get" title="concept-http-equivalent-get">or equivalent</a>, and its
                   9982:     URL <a href="#concept-appcache-matches-fallback" title="concept-appcache-matches-fallback">matches the
                   9983:     fallback namespace</a> of one or more <a href="#relevant-application-cache" title="relevant
                   9984:     application cache">relevant application caches</a>, and the
                   9985:     <a href="#concept-appcache-selection" title="concept-appcache-selection">most appropriate
                   9986:     application cache</a> of those that match does not have an
                   9987:     entry in its <a href="#concept-appcache-onlinewhitelist" title="concept-appcache-onlinewhitelist">online
                   9988:     whitelist</a> that has the <a href="#same-origin">same origin</a> as the
                   9989:     resource's URL and that is a <a href="infrastructure.html#prefix-match">prefix match</a> for the
                   9990:     resource's URL, and the user didn't cancel the navigation attempt
                   9991:     during the previous step, and the navigation attempt failed (e.g.
                   9992:     the server returned a 4xx or 5xx status code <a href="urls.html#concept-http-equivalent-codes" title="concept-http-equivalent-codes">or equivalent</a>, or
                   9993:     there was a DNS error), then:</p> <!-- note that a redirect can
                   9994:     never reach this point as it is handled earlier, meaning that a
                   9995:     captive portal captures URLs in fallback namespaces and you can't
                   9996:     ever get to the fallback file of a resource if you have a captive
                   9997:     portal -->
                   9998: 
                   9999:     <p>Let <var title="">candidate</var> be the <a href="#concept-appcache-fallback" title="concept-appcache-fallback">fallback resource</a>
                   10000:     specified for the <a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">fallback namespace</a> in
                   10001:     question. If multiple application caches match, the user agent
                   10002:     must use the fallback of the <a href="#concept-appcache-selection" title="concept-appcache-selection">most appropriate application
                   10003:     cache</a> of those that match.</p>
                   10004: 
                   10005:     <p>If <var title="">candidate</var> is not marked as <a href="#concept-appcache-foreign" title="concept-appcache-foreign">foreign</a>, then the user
                   10006:     agent must discard the failed load and instead continue along
                   10007:     these steps using <var title="">candidate</var> as the
                   10008:     resource. <a href="dom.html#the-document's-address">The document's address</a>, if appropriate,
                   10009:     will still be the originally requested URL, not the fallback URL,
                   10010:     but the user agent may indicate to the user that the original page
                   10011:     load failed, that the page used was a fallback resource, and what
                   10012:     the URL of the fallback resource actually is.</p>
                   10013: 
                   10014:    </li>
                   10015: 
                   10016: <!--FORK--><!--APPCACHE-PREFER-ONLINE-->
                   10017: 
                   10018:    <li>
                   10019: 
                   10020:     <p><i>Resource handling</i>: If the resource's out-of-band
                   10021:     metadata (e.g. HTTP headers), not counting any <a href="urls.html#content-type" title="Content-Type">type information</a> (such as the
                   10022:     Content-Type HTTP header), requires some sort of processing that
                   10023:     will not affect the browsing context, then perform that processing
                   10024:     and abort these steps.</p>
                   10025: 
                   10026:     <div class="note">
                   10027:      <p>Such processing might be triggered by, amongst other things, the
                   10028:      following:</p>
                   10029:      <ul class="brief"><li>HTTP status codes (e.g. 204 No Content or 205 Reset Content)</li>
                   10030:       <li>Network errors (e.g. the network interface being unavailable)</li>
                   10031:       <li>Cryptographic protocol failures (e.g. an incorrect TLS certificate)</li>
                   10032:       <!-- Other schemes are handled earlier -->
                   10033:       <!-- Content-Disposition is handled below -->
                   10034:       <!-- Content-Type is handled in subsequent steps -->
                   10035:       <!-- ...and I can't think of any others. -->
                   10036:      </ul></div>
                   10037: 
                   10038: <!--DOWNLOAD-->
                   10039: 
                   10040:     <!-- theoretically, HTTP 205 processing would occur here,
                   10041:     resetting all forms with no other effect. However, it seems nobody
                   10042:     actually wants to use this ability, so requiring it here seems
                   10043:     like unnecessary work. -->
                   10044: 
                   10045:     <p>HTTP 401 responses that do not include a challenge recognized
                   10046:     by the user agent must be processed as if they had no challenge,
                   10047:     e.g. rendering the entity body as if the response had been 200
                   10048:     OK.</p>
                   10049: 
                   10050:     <p>User agents may show the entity body of an HTTP 401 response
                   10051:     even when the response does include a recognized challenge, with the
                   10052:     option to login being included in a non-modal fashion, to enable
                   10053:     the information provided by the server to be used by the user
                   10054:     before authenticating. Similarly, user agents should allow the
                   10055:     user to authenticate (in a non-modal fashion) against
                   10056:     authentication challenges included in other responses such as HTTP
                   10057:     200 OK responses, effectively allowing resources to present HTTP
                   10058:     login forms without requiring their use.</p>
                   10059: 
                   10060:    </li>
                   10061: 
                   10062:    <li><p>Let <var title="">type</var> be <a href="urls.html#content-type-sniffing-0" title="Content-Type
                   10063:    sniffing">the sniffed type of the resource</a>.</p></li>
                   10064: 
                   10065:    <li><p>If the user agent has been configured to process resources
                   10066:    of the given <var title="">type</var> using some mechanism other
                   10067:    than rendering the content in a <a href="#browsing-context">browsing context</a>, then
                   10068:    skip this step. Otherwise, if the <var title="">type</var> is one
                   10069:    of the following types, jump to the appropriate entry in the
                   10070:    following list, and process the resource as described there:</p>
                   10071: 
                   10072:     <dl class="switch"><!-- an <span>HTML MIME type</span> --><dt>"<code><a href="#text/html">text/html</a></code>"</dt>
                   10073:      <dd>Follow the steps given in the <a href="#read-html" title="navigate-html">HTML document</a> section, and abort
                   10074:      these steps.</dd>
                   10075: 
                   10076:      <!-- an <span>XML MIME type</span> -->
                   10077:      <dt>"<code>application/xml</code>"</dt>
                   10078:      <dt>"<code>text/xml</code>"</dt>
                   10079:      <dt>"<code>image/svg+xml</code>"</dt>
                   10080:      <dt>"<code><a href="#application/xhtml+xml">application/xhtml+xml</a></code>"</dt>
                   10081:      <dt>Any other type ending in "<code title="">+xml</code>" that is not an <a href="#explicitly-supported-xml-type">explicitly supported XML type</a></dt> <!-- no need to say that the _subtype_ ends in "+xml" so long as the "sniffed type" algorithm continues to drop parameters -->
                   10082:      <dd>Follow the steps given in the <a href="#read-xml" title="navigate-xml">XML
                   10083:      document</a> section. If that section determines that the
                   10084:      content is <em>not</em> to be displayed as a generic XML
                   10085:      document, then proceed to the next step in this overall set of
                   10086:      steps. Otherwise, abort these steps.</dd>
                   10087: 
                   10088:      <dt>"<code>text/plain</code>"</dt>
                   10089:      <dd>Follow the steps given in the <a href="#read-text" title="navigate-text">plain text file</a> section, and abort
                   10090:      these steps.</dd>
                   10091: 
                   10092:      <dt>"<code><a href="#multipart/x-mixed-replace">multipart/x-mixed-replace</a></code>"</dt>
                   10093:      <dd>Follow the steps given in the <a href="#read-multipart-x-mixed-replace" title="navigate-multipart-x-mixed-replace">multipart/x-mixed-replace</a>
                   10094:      section, and abort these steps.</dd>
                   10095: 
                   10096:      <dt>A supported image, video, or audio type</dt>
                   10097:      <dd>Follow the steps given in the <a href="#read-media" title="navigate-media">media</a> section, and abort these
                   10098:      steps.</dd>
                   10099: 
                   10100:      <dt>A type that will use an external application to render the
                   10101:      content in the <a href="#browsing-context">browsing context</a></dt>
                   10102:      <dd>Follow the steps given in the <a href="#read-plugin" title="navigate-plugin">plugin</a> section, and abort these
                   10103:      steps.</dd>
                   10104: 
                   10105:     </dl><p>An <dfn id="explicitly-supported-xml-type">explicitly supported XML type</dfn> is one for which
                   10106:     the user agent is configured to use an external application to
                   10107:     render the content (either a <a href="infrastructure.html#plugin">plugin</a> rendering
                   10108:     directly in the <a href="#browsing-context">browsing context</a>, or a separate
                   10109:     application), or one for which the user agent has dedicated
                   10110:     processing rules (e.g. a Web browser with a built-in Atom feed
                   10111:     viewer would be said to explicitly support the
                   10112:     <code>application/atom+xml</code> MIME type), or one for which the
                   10113:     user agent has a dedicated handler (e.g. one registered using
                   10114:     <code title="dom-navigator-registerContentHandler"><a href="#dom-navigator-registercontenthandler">registerContentHandler()</a></code>).</p>
                   10115: 
                   10116:     <p><dfn id="set-the-document's-address" title="set the document's address">Setting the document's
                   10117:     address</dfn>: If there is no <dfn id="override-url">override URL</dfn>, then any
                   10118:     <code><a href="dom.html#document">Document</a></code> created by these steps must have its <a href="dom.html#the-document's-address" title="the document's address">address</a> set to the
                   10119:     <a href="urls.html#url">URL</a> that was originally to be <a href="urls.html#fetch" title="fetch">fetched</a>, ignoring any other data that was
                   10120:     used to obtain the resource (e.g. the entity body in the case of a
                   10121:     POST submission is not part of <a href="dom.html#the-document's-address">the document's
                   10122:     address</a>, nor is the URL of the fallback resource in the
                   10123:     case of the original load having failed and that URL having been
                   10124:     found to match a <a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">fallback
                   10125:     namespace</a>). However, if there <em>is</em> an <a href="#override-url">override
                   10126:     URL</a>, then any <code><a href="dom.html#document">Document</a></code> created by these steps
                   10127:     must have its <a href="dom.html#the-document's-address" title="the document's address">address</a>
                   10128:     set to that <a href="urls.html#url">URL</a> instead.</p>
                   10129: 
                   10130:     <p class="note">An <a href="#override-url" title="override URL">override URL</a>
                   10131:     is set when <a href="#concept-js-deref" title="concept-js-deref">dereferencing a
                   10132:     <code>javascript:</code> URL</a>.</p>
                   10133: 
                   10134:     <p><dfn id="create-a-document-object" title="create a Document object">Creating a new
                   10135:     <code>Document</code> object</dfn>: when a <code><a href="dom.html#document">Document</a></code>
                   10136:     is created as part of the above steps, the user agent must
                   10137:     additionally run the following algorithm as part of creating the
                   10138:     new object:</p>
                   10139: 
                   10140:     <ol><li><p>Create a new <code><a href="#window">Window</a></code> object, and associate it
                   10141:      with the <code><a href="dom.html#document">Document</a></code>, with one exception: if the
                   10142:      <a href="#browsing-context">browsing context</a>'s only entry in its <a href="#session-history">session
                   10143:      history</a> is the <code><a href="urls.html#about:blank">about:blank</a></code>
                   10144:      <code><a href="dom.html#document">Document</a></code> that was added when the <a href="#browsing-context">browsing
                   10145:      context</a> was created, and navigation is occurring with
                   10146:      <a href="#replacement-enabled">replacement enabled</a>, and that <code><a href="dom.html#document">Document</a></code>
                   10147:      has the <a href="#same-origin">same origin</a> as the new
                   10148:      <code><a href="dom.html#document">Document</a></code>, then use the <code><a href="#window">Window</a></code> object of
                   10149:      that <code><a href="dom.html#document">Document</a></code> instead, and change the <code title="dom-document"><a href="#dom-document-0">document</a></code> attribute of the
                   10150:      <code><a href="#window">Window</a></code> object to point to the new
                   10151:      <code><a href="dom.html#document">Document</a></code>.</p>
                   10152: 
                   10153:      </li><li>
                   10154: 
                   10155:       <p>Populate <code><a href="dom.html#document">Document</a></code>'s <a href="#active-sandboxing-flag-set">active sandboxing flag
                   10156:       set</a> with the union of the flags that are present in the
                   10157:       following <a href="#sandboxing-flag-set" title="sandboxing flag set">sandboxing flag
                   10158:       sets</a> at the time the <code><a href="dom.html#document">Document</a></code> object is
                   10159:       created:</p>
                   10160: 
                   10161:       <ul><li><p>If the <code><a href="dom.html#document">Document</a></code>'s <a href="#browsing-context">browsing
                   10162:        context</a> is a <a href="#top-level-browsing-context">top-level browsing context</a>,
                   10163:        then: the flags set on the <a href="#browsing-context">browsing context</a>'s
                   10164:        <a href="#popup-sandboxing-flag-set">popup sandboxing flag set</a>.</p></li>
                   10165: 
                   10166:        <li><p>If the <code><a href="dom.html#document">Document</a></code>'s <a href="#browsing-context">browsing
                   10167:        context</a> is a <a href="#nested-browsing-context">nested browsing context</a>, then:
                   10168:        the flags set on the <a href="#browsing-context">browsing context</a>'s
                   10169:        <a href="#iframe-sandboxing-flag-set"><code>iframe</code> sandboxing flag set</a>.</p></li>
                   10170: 
                   10171:        <li><p>If the <code><a href="dom.html#document">Document</a></code>'s <a href="#browsing-context">browsing
                   10172:        context</a> is a <a href="#nested-browsing-context">nested browsing context</a>, then:
                   10173:        the flags set on the <a href="#browsing-context">browsing context</a>'s <a href="#parent-browsing-context">parent
                   10174:        browsing context</a>'s <a href="#active-document">active document</a>'s
                   10175:        <a href="#active-sandboxing-flag-set">active sandboxing flag set</a>.</p></li>
                   10176: 
                   10177:        <li><p>The flags set on the resource's <a href="#forced-sandboxing-flag-set">forced sandboxing
                   10178:        flag set</a>.</p></li>
                   10179: 
                   10180:       </ul><p>Each resource obtained by this <a href="#navigate" title="navigate">navigation algorithm</a> has a <dfn id="forced-sandboxing-flag-set">forced
                   10181:       sandboxing flag set</dfn>, which is a <a href="#sandboxing-flag-set">sandboxing flag
                   10182:       set</a>. A resource by default has no flags set in its
                   10183:       <a href="#forced-sandboxing-flag-set">forced sandboxing flag set</a>, but other
                   10184:       specifications can define that certain flags are set.</p>
                   10185: 
                   10186:       <p class="note">In particular, the <a href="#forced-sandboxing-flag-set">forced sandboxing flag
                   10187:       set</a> is used by the Content Security Policy specification.
                   10188:       <a href="#refsCSP">[CSP]</a></p>
                   10189: 
                   10190:      </li>
                   10191: 
                   10192:     </ol></li>
                   10193: 
                   10194:    <li id="navigate-non-Document">
                   10195: 
                   10196:     <p><i>Non-document content</i>: If, given <var title="">type</var>, the new resource is to be handled by
                   10197:     displaying some sort of inline content, e.g. a native rendering of
                   10198:     the content, an error message because the specified type is not
                   10199:     supported, or an inline prompt to allow the user to select <a href="#dom-navigator-registercontenthandler" title="dom-navigator-registerContentHandler">a registered
                   10200:     handler</a> for the given type, then <a href="#read-ua-inline" title="navigate-ua-inline">display the inline content</a> and
                   10201:     abort these steps.</p>
                   10202: 
                   10203:     <p class="note">In the case of a registered handler being used,
                   10204:     the algorithm will be reinvoked with a new URL to handle the
                   10205:     request.</p>
                   10206: 
                   10207:    </li>
                   10208: 
                   10209:    <li><p>Otherwise, the document's <var title="">type</var> is such
                   10210:    that the resource will not affect the browsing context, e.g.
                   10211:    because the resource is to be handed to an external application or
1.191     sruby    10212:    because it is an unknown type that will be processed <a href="#as-a-download">as a
                   10213:    download</a>. Process the resource appropriately.</p>
1.190     sruby    10214: 
                   10215:   </li></ol><hr><p>Some of the sections below, to which the above algorithm defers
                   10216:   in certain cases, require the user agent to <dfn id="update-the-session-history-with-the-new-page">update the session
                   10217:   history with the new page</dfn>. When a user agent is required to do
                   10218:   this, it must <a href="#queue-a-task">queue a task</a> (associated with the
                   10219:   <code><a href="dom.html#document">Document</a></code> object of the <a href="#current-entry">current entry</a>, not
                   10220:   the new one) to run the following steps:</p>
                   10221: 
                   10222:   <ol><li>
                   10223: 
                   10224:     <p><a href="#unload-a-document" title="unload a document">Unload</a> the
                   10225:     <code><a href="dom.html#document">Document</a></code> object of the <a href="#current-entry">current entry</a>,
                   10226:     with the <var title="">recycle</var> parameter set to false.</p>
                   10227: 
                   10228:     <p>If this instance of the <a href="#navigate" title="navigate">navigation</a> algorithm is canceled while
                   10229:     this step is running the <a href="#unload-a-document">unload a document</a> algorithm,
                   10230:     then the <a href="#unload-a-document">unload a document</a> algorithm must be allowed
                   10231:     to run to completion, but this instance of the <a href="#navigate" title="navigate">navigation</a> algorithm must not run beyond
                   10232:     this step. (In particular, for instance, the cancelation of this
                   10233:     algorithm does not abort any event dispatch or script execution
                   10234:     occurring as part of unloading the document or its
                   10235:     descendants.)</p>
                   10236: 
                   10237:    </li>
                   10238: 
                   10239:    <li>
                   10240: 
                   10241:     <dl><dt>If the navigation was initiated for <dfn id="entry-update">entry update</dfn> of
                   10242:      an entry</dt>
                   10243: 
                   10244:      <dd>
                   10245: 
                   10246:       <ol><li><p>Replace the <code><a href="dom.html#document">Document</a></code> of the entry being
                   10247:        updated, and any other entries that referenced the same
                   10248:        document as that entry, with the new
                   10249:        <code><a href="dom.html#document">Document</a></code>.</p></li>
                   10250: 
                   10251:        <li><p><a href="#traverse-the-history">Traverse the history</a> to the new
                   10252:        entry.</p></li>
                   10253: 
                   10254:       </ol><p class="note">This can only happen if the entry being updated
                   10255:       is no the <a href="#current-entry">current entry</a>, and can never happen with
                   10256:       <a href="#replacement-enabled">replacement enabled</a>. (It happens when the user
                   10257:       tried to traverse to a session history entry that no longer had
                   10258:       a <code><a href="dom.html#document">Document</a></code> object.)</p>
                   10259: 
                   10260:      </dd>
                   10261: 
                   10262: 
                   10263:      <dt>Otherwise</dt>
                   10264: 
                   10265:      <dd>
                   10266: 
                   10267:       <ol><li>
                   10268: 
                   10269:         <p>Remove all the entries in the <a href="#browsing-context">browsing
                   10270:         context</a>'s <a href="#session-history">session history</a> after the
                   10271:         <a href="#current-entry">current entry</a>. If the <a href="#current-entry">current entry</a>
                   10272:         is the last entry in the session history, then no entries are
                   10273:         removed.</p>
                   10274: 
                   10275:         <p class="note">This <a href="#history-notes">doesn't
                   10276:         necessarily have to affect</a> the user agent's user
                   10277:         interface.</p>
                   10278: 
                   10279:        </li>
                   10280: 
                   10281:        <li><p>Remove any <a href="#concept-task" title="concept-task">tasks</a>
                   10282:        queued by the <a href="#history-traversal-task-source">history traversal task source</a> that
                   10283:        are associated with any <code><a href="dom.html#document">Document</a></code> objects in the
                   10284:        <a href="#top-level-browsing-context">top-level browsing context</a>'s <a href="#document-family">document
                   10285:        family</a>.</p></li> <!-- so the network is racing
                   10286:        history.back(), in the case of setting location.href="" and
                   10287:        then calling history.back() -->
                   10288: 
                   10289:        <li><p>Append a new entry at the end of the <code><a href="#history-1">History</a></code>
                   10290:        object representing the new resource and its
                   10291:        <code><a href="dom.html#document">Document</a></code> object and related state.</p></li>
                   10292: 
                   10293:        <li><p><a href="#traverse-the-history">Traverse the history</a> to the new entry. If
                   10294:        the navigation was initiated with <a href="#replacement-enabled">replacement
                   10295:        enabled</a>, then the traversal must itself be initiated
                   10296:        with <a href="#replacement-enabled">replacement enabled</a>.</p>
                   10297: 
                   10298:        </li>
                   10299: 
                   10300:       </ol></dd>
                   10301: 
                   10302:     </dl></li>
                   10303: 
                   10304:    <li><p>The <a href="#navigate" title="navigate">navigation algorithm</a> has
                   10305:    now <dfn id="concept-navigate-mature" title="concept-navigate-mature">matured</dfn>.</p></li>
                   10306: 
                   10307:    <li><p><i>Fragment identifier loop</i>: <a href="#spin-the-event-loop">Spin the event
                   10308:    loop</a> for a user-agent-defined amount of time, as desired by
                   10309:    the user agent implementor. (This is intended to allow the user
                   10310:    agent to optimize the user experience in the face of performance
                   10311:    concerns.)</p></li>
                   10312: 
                   10313:    <li><p>If the <code><a href="dom.html#document">Document</a></code> object has no parser, or its
                   10314:    parser has <a href="#stop-parsing" title="stop parsing">stopped parsing</a>, or
                   10315:    the user agent has reason to believe the user is no longer
                   10316:    interested in scrolling to the fragment identifier, then abort
                   10317:    these steps.</p></li>
                   10318: 
                   10319:    <li><p><a href="#scroll-to-the-fragment-identifier">Scroll to the fragment identifier</a> given in
                   10320:    <a href="dom.html#the-document's-address">the document's address</a>. If this fails to find <a href="#the-indicated-part-of-the-document" title="the indicated part of the document">an indicated part of the
                   10321:    document</a>, then return to the <i>fragment identifier loop</i>
                   10322:    step.</p></li>
                   10323: 
                   10324:   </ol><p>The <a href="#task-source">task source</a> for this <a href="#concept-task" title="concept-task">task</a> is the <a href="#networking-task-source">networking task
                   10325:   source</a>.</p>
                   10326: 
                   10327: 
                   10328:   <h4 id="read-html"><span class="secno">5.6.2 </span><dfn title="navigate-html">Page load processing model for HTML files</dfn></h4>
                   10329: 
                   10330:   <p>When an HTML document is to be loaded in a <a href="#browsing-context">browsing
                   10331:   context</a>, the user agent must <a href="#queue-a-task">queue a task</a> to
                   10332:   <a href="#create-a-document-object">create a <code>Document</code> object</a>, mark it as being
                   10333:   an <a href="infrastructure.html#html-documents" title="HTML documents">HTML document</a>, set its <a href="infrastructure.html#concept-document-content-type" title="concept-document-content-type">content type</a> to "<code title="">text/html</code>", create an <a href="#html-parser">HTML parser</a>, and
                   10334:   associate it with the document. Each <a href="#concept-task" title="concept-task">task</a> that the <a href="#networking-task-source">networking task
                   10335:   source</a> places on the <a href="#task-queue">task queue</a> while the <a href="urls.html#fetch" title="fetch">fetching algorithm</a> runs must then fill the
                   10336:   parser's <a href="#the-input-byte-stream">input byte stream</a> with the fetched bytes and
                   10337:   cause the <a href="#html-parser">HTML parser</a> to perform the appropriate
                   10338:   processing of the input stream.</p>
                   10339: 
                   10340:   <p class="note">The <a href="#the-input-byte-stream">input byte stream</a> converts bytes
                   10341:   into characters for use in the <a href="#tokenization" title="tokenization">tokenizer</a>. This process relies, in part,
                   10342:   on character encoding information found in the real <a href="urls.html#content-type" title="Content-Type">Content-Type metadata</a> of the resource;
                   10343:   the "sniffed type" is not used for this purpose.</p>
                   10344: 
                   10345:   <!-- next two paragraphs are nearly identical to the navigate-text
                   10346:   section, keep them in sync -->
                   10347: 
                   10348:   <p>When no more bytes are available, the user agent must <a href="#queue-a-task">queue
                   10349:   a task</a> for the parser to process the implied EOF character,
                   10350:   which eventually causes a <code title="event-load">load</code> event
                   10351:   to be fired.</p>
                   10352: 
                   10353:   <p>After creating the <code><a href="dom.html#document">Document</a></code> object, but before any
                   10354:   script execution, certainly before the parser <a href="#stop-parsing" title="stop
                   10355:   parsing">stops</a>, the user agent must <a href="#update-the-session-history-with-the-new-page">update the session
                   10356:   history with the new page</a>.</p>
                   10357: 
                   10358:   <p class="note"><a href="#concept-appcache-init" title="concept-appcache-init">Application
                   10359:   cache selection</a> happens <a href="#parser-appcache">in the
                   10360:   HTML parser</a>.</p>
                   10361: 
                   10362:   <p>The <a href="#task-source">task source</a> for the two tasks mentioned in this
                   10363:   section must be the <a href="#networking-task-source">networking task source</a>.</p>
                   10364: 
                   10365: 
                   10366: 
                   10367:   <h4 id="read-xml"><span class="secno">5.6.3 </span><dfn title="navigate-xml">Page load processing model for XML files</dfn></h4>
                   10368: 
                   10369:   <p>When faced with displaying an XML file inline, user agents must
                   10370:   first <a href="#create-a-document-object">create a <code>Document</code> object</a>, following
                   10371:   the requirements of the XML and Namespaces in XML recommendations,
                   10372:   RFC 3023, DOM Core, and other relevant specifications. <a href="#refsXML">[XML]</a> <a href="#refsXMLNS">[XMLNS]</a> <a href="#refsRFC3023">[RFC3023]</a> <a href="#refsDOMCORE">[DOMCORE]</a></p>
                   10373: 
                   10374:   <p>The actual HTTP headers and other metadata, not the headers as
                   10375:   mutated or implied by the algorithms given in this specification,
                   10376:   are the ones that must be used when determining the character
                   10377:   encoding according to the rules given in the above
                   10378:   specifications. Once the character encoding is established, the
                   10379:   <a href="infrastructure.html#document's-character-encoding">document's character encoding</a> must be set to that
                   10380:   character encoding.</p>
                   10381: 
                   10382:   <p>If the root element, as parsed according to the XML
                   10383:   specifications cited above, is found to be an <code><a href="the-html-element.html#the-html-element">html</a></code>
                   10384:   element with an attribute <code title="attr-html-manifest"><a href="the-html-element.html#attr-html-manifest">manifest</a></code> whose value is not the
                   10385:   empty string, then, as soon as the element is <a href="infrastructure.html#insert-an-element-into-a-document" title="insert an
                   10386:   element into a document">inserted into the document</a>, the user
                   10387:   agent must <a href="urls.html#resolve-a-url" title="resolve a url">resolve</a> the value of
                   10388:   that attribute relative to that element, and if that is successful,
                   10389:   must run the <a href="#concept-appcache-init" title="concept-appcache-init">application cache
                   10390:   selection algorithm</a> with the resulting <a href="urls.html#absolute-url">absolute
                   10391:   URL</a> with any <a href="urls.html#url-fragment" title="url-fragment">&lt;fragment&gt;</a> component removed as
                   10392:   the manifest URL, and passing in the newly-created
                   10393:   <code><a href="dom.html#document">Document</a></code>. Otherwise, if the attribute is absent, its
                   10394:   value is the empty string, or resolving its value fails, then as
                   10395:   soon as the root element is <a href="infrastructure.html#insert-an-element-into-a-document" title="insert an element into a
                   10396:   document">inserted into the document</a>, the user agent must run
                   10397:   the <a href="#concept-appcache-init" title="concept-appcache-init">application cache selection
                   10398:   algorithm</a> with no manifest, and passing in the
                   10399:   <code><a href="dom.html#document">Document</a></code>.</p>
                   10400: 
                   10401:   <p class="note">Because the processing of the <code title="attr-html-manifest"><a href="the-html-element.html#attr-html-manifest">manifest</a></code> attribute happens
                   10402:   only once the root element is parsed, any URLs referenced by
                   10403:   processing instructions before the root element (such as <code title="">&lt;?xml-stylesheet?&gt;</code> and <code title="">&lt;?xbl?&gt;</code> PIs) will be fetched from the network and
                   10404:   cannot be cached.</p><!-- v2: fix this somehow -->
                   10405: 
                   10406:   <p>User agents may examine the namespace of the root
                   10407:   <code><a href="infrastructure.html#element">Element</a></code> node of this <code><a href="dom.html#document">Document</a></code> object to
                   10408:   perform namespace-based dispatch to alternative processing tools,
                   10409:   e.g. determining that the content is actually a syndication feed and
                   10410:   passing it to a feed handler. If such processing is to take place,
                   10411:   abort the steps in this section, and jump to <a href="#navigate-non-Document">the next step</a> (labeled
                   10412:   "non-document content") in the <a href="#navigate">navigate</a> steps
                   10413:   above.</p>
                   10414: 
                   10415:   <p>Otherwise, then, with the newly created <code><a href="dom.html#document">Document</a></code>,
                   10416:   the user agents must <a href="#update-the-session-history-with-the-new-page">update the session history with the new
                   10417:   page</a>. User agents may do this before the complete document
                   10418:   has been parsed (thus achieving <i>incremental rendering</i>), and
                   10419:   must do this before any scripts are to be executed. If the <code><a href="dom.html#document">Document</a></code>
                   10420:   contains any element in the <a href="namespaces.html#html-namespace-0">HTML namespace</a>, the <a href="namespaces.html#svg-namespace">SVG namespace</a>,
                   10421:   or in the <a href="namespaces.html#mathml-namespace">MathML namespace</a> then the user agent must render the
                   10422:   <code><a href="dom.html#document">Document</a></code> according to <a href="#rendering">the rendering section</a>.
                   10423:   If not, then a native representation of the Document, e.g. a tree view of the corresponding
                   10424:   source, may be produced. In that case, abort the steps in this section, and jump to <a href="#navigate-non-Document">the next step</a> in the <a href="#navigate">navigate</a> steps
                   10425:   above.</p>
                   10426: 
                   10427:   <p>Error messages from the parse process (e.g. XML namespace
                   10428:   well-formedness errors) may be reported inline by mutating the
                   10429:   <code><a href="dom.html#document">Document</a></code>.</p>
                   10430: 
                   10431: 
                   10432:   <h4 id="read-text"><span class="secno">5.6.4 </span><dfn title="navigate-text">Page load processing model for text files</dfn></h4>
                   10433: 
                   10434:   <p>When a plain text document is to be loaded in a <a href="#browsing-context">browsing
                   10435:   context</a>, the user agent must <a href="#queue-a-task">queue a task</a> to
                   10436:   <a href="#create-a-document-object">create a <code>Document</code> object</a>, mark it as being
                   10437:   an <a href="infrastructure.html#html-documents" title="HTML documents">HTML document</a>, set its <a href="infrastructure.html#concept-document-content-type" title="concept-document-content-type">content type</a> to "<code title="">text/plain</code>", create an <a href="#html-parser">HTML parser</a>,
                   10438:   associate it with the document, act as if the tokenizer had emitted
                   10439:   a start tag token with the tag name "pre" followed by a single
                   10440:   "LF" (U+000A) character<!-- to get eaten, so that a leading
                   10441:   LF in the text/plain stream doesn't get eaten itself-->, and switch
                   10442:   the <a href="#html-parser">HTML parser</a>'s tokenizer to the <a href="#plaintext-state">PLAINTEXT
                   10443:   state</a>. Each <a href="#concept-task" title="concept-task">task</a> that the
                   10444:   <a href="#networking-task-source">networking task source</a> places on the <a href="#task-queue">task
                   10445:   queue</a> while the <a href="urls.html#fetch" title="fetch">fetching algorithm</a>
                   10446:   runs must then fill the parser's <a href="#the-input-byte-stream">input byte stream</a> with
                   10447:   the fetched bytes and cause the <a href="#html-parser">HTML parser</a> to perform
                   10448:   the appropriate processing of the input stream.</p>
                   10449: 
                   10450:   <p>The rules for how to convert the bytes of the plain text document
                   10451:   into actual characters, and the rules for actually rendering the
                   10452:   text to the user, are defined in RFC 2046, RFC 3676, and subsequent
                   10453:   versions thereof. <a href="#refsRFC2046">[RFC2046]</a> <a href="#refsRFC3676">[RFC3676]</a></p>
                   10454: 
                   10455:   <p>The <a href="infrastructure.html#document's-character-encoding">document's character encoding</a> must be set to the
                   10456:   character encoding used to decode the document.</p>
                   10457: 
                   10458:   <p>Upon creation of the <code><a href="dom.html#document">Document</a></code> object, the user agent
                   10459:   must run the <a href="#concept-appcache-init" title="concept-appcache-init">application cache
                   10460:   selection algorithm</a> with no manifest, and passing in the
                   10461:   newly-created <code><a href="dom.html#document">Document</a></code>.</p>
                   10462: 
                   10463:   <!-- next two paragraphs are nearly identical to the navigate-html
                   10464:   section and similar to the "navigate-ua-inline" section, and the
                   10465:   next three are similar to the navigate-media and navigate-plugin
                   10466:   sections; keep them all in sync -->
                   10467: 
                   10468:   <p>When no more bytes are available, the user agent must <a href="#queue-a-task">queue
                   10469:   a task</a> for the parser to process the implied EOF character,
                   10470:   which eventually causes a <code title="event-load">load</code> event
                   10471:   to be fired.</p>
                   10472: 
                   10473:   <p>After creating the <code><a href="dom.html#document">Document</a></code> object, but potentially
                   10474:   before the page has finished parsing, the user agent must
                   10475:   <a href="#update-the-session-history-with-the-new-page">update the session history with the new page</a>.</p>
                   10476: 
                   10477:   <p>User agents may add content to the <code><a href="the-head-element.html#the-head-element">head</a></code> element of
                   10478:   the <code><a href="dom.html#document">Document</a></code>, e.g. linking to a style sheet or an XBL
                   10479:   binding, providing script, giving the document a <code><a href="the-title-element.html#the-title-element">title</a></code>,
                   10480:   etc.</p>
                   10481: 
                   10482:   <p class="note">In particular, if the user agent supports the <code title="">Format=Flowed</code> feature of RFC 3676 then the user
                   10483:   agent would need to apply extra styling to cause the text to wrap
                   10484:   correctly and to handle the quoting feature. This could be performed
                   10485:   using, e.g., an XBL binding or a CSS extension.</p>
                   10486: 
                   10487:   <p>The <a href="#task-source">task source</a> for the two tasks mentioned in this
                   10488:   section must be the <a href="#networking-task-source">networking task source</a>.</p>
                   10489: 
                   10490: 
                   10491:   <h4 id="read-multipart-x-mixed-replace"><span class="secno">5.6.5 </span><dfn title="navigate-multipart-x-mixed-replace">Page load processing model for <code>multipart/x-mixed-replace</code> resources</dfn></h4>
                   10492: 
                   10493:   <p>When a resource with the type
                   10494:   <code><a href="#multipart/x-mixed-replace">multipart/x-mixed-replace</a></code> is to be loaded in a
                   10495:   <a href="#browsing-context">browsing context</a>, the user agent must parse the
                   10496:   resource using the rules for multipart types. <a href="#refsRFC2046">[RFC2046]</a></p>
                   10497: 
                   10498:   <p>For each body part obtained from the resource, the user agent
                   10499:   must run a new instance of the <a href="#navigate">navigate</a> algorithm,
                   10500:   starting from the <i>resource handling</i> step, using the new body
                   10501:   part as the resource being navigated, with <a href="#replacement-enabled">replacement
                   10502:   enabled</a> if a previous body part from the same resource
                   10503:   resulted in a <code><a href="dom.html#document">Document</a></code> object being <a href="#create-a-document-object" title="create
                   10504:   a document object">created</a>, and otherwise using the same
                   10505:   setup as the <a href="#navigate">navigate</a> attempt that caused this section
                   10506:   to be invoked in the first place.</p>
                   10507: 
                   10508:   <p>For the purposes of algorithms processing these body parts as if
                   10509:   they were complete stand-alone resources, the user agent must act as
                   10510:   if there were no more bytes for those resources whenever the
                   10511:   boundary following the body part is reached.</p>
                   10512: 
                   10513:   <p class="note">Thus, <code title="event-load">load</code> events
                   10514:   (and for that matter <code title="event-unload">unload</code>
                   10515:   events) do fire for each body part loaded.</p>
                   10516: 
                   10517: 
                   10518:   <h4 id="read-media"><span class="secno">5.6.6 </span><dfn title="navigate-media">Page load processing model for media</dfn></h4>
                   10519: 
                   10520:   <p>When an image, video, or audio resource is to be loaded in a
                   10521:   <a href="#browsing-context">browsing context</a>, the user agent should <a href="#create-a-document-object">create a
                   10522:   <code>Document</code> object</a>, mark it as being an <a href="infrastructure.html#html-documents" title="HTML documents">HTML document</a>, set its <a href="infrastructure.html#concept-document-content-type" title="concept-document-content-type">content type</a> to the sniffed
                   10523:   MIME type of the resource (<var title="">type</var> in the
                   10524:   <a href="#navigate">navigate</a> algorithm), append an <code><a href="the-html-element.html#the-html-element">html</a></code>
                   10525:   element to the <code><a href="dom.html#document">Document</a></code>, append a <code><a href="the-head-element.html#the-head-element">head</a></code>
                   10526:   element and a <code><a href="the-body-element.html#the-body-element">body</a></code> element to the <code><a href="the-html-element.html#the-html-element">html</a></code>
                   10527:   element, append an element <var title="">host element</var> for the
                   10528:   media, as described below, to the <code><a href="the-body-element.html#the-body-element">body</a></code> element, and set
                   10529:   the appropriate attribute of the element <var title="">host
                   10530:   element</var>, as described below, to the address of the image,
                   10531:   video, or audio resource.</p>
                   10532: 
                   10533:   <p>The element <var title="">host element</var> to create for the
                   10534:   media is the element given in the table below in the second cell of
                   10535:   the row whose first cell describes the media. The appropriate
                   10536:   attribute to set is the one given by the third cell in that same
                   10537:   row.</p>
                   10538: 
                   10539:   <table><thead><tr><th> Type of media
                   10540:          </th><th> Element for the media
                   10541:          </th><th> Appropriate attribute
                   10542:     </th></tr><tr><td> Image
                   10543:          </td><td> <code><a href="the-img-element.html#the-img-element">img</a></code>
                   10544:          </td><td> <code title="attr-img-src"><a href="the-img-element.html#attr-img-src">src</a></code>
                   10545:     </td></tr><tr><td> Video
                   10546:          </td><td> <code><a href="the-video-element.html#the-video-element">video</a></code>
                   10547:          </td><td> <code title="attr-media-src"><a href="media-elements.html#attr-media-src">src</a></code>
                   10548:     </td></tr><tr><td> Audio
                   10549:          </td><td> <code><a href="the-audio-element.html#the-audio-element">audio</a></code>
                   10550:          </td><td> <code title="attr-media-src"><a href="media-elements.html#attr-media-src">src</a></code>
                   10551:   </td></tr></thead></table><!-- next three paragraphs are similar to the navigate-text section,
                   10552:   keep them in sync --><p>Then, the user agent must act as if it had <a href="#stop-parsing" title="stop
                   10553:   parsing">stopped parsing</a>.</p>
                   10554: 
                   10555:   <p>Upon creation of the <code><a href="dom.html#document">Document</a></code> object, the user agent
                   10556:   must run the <a href="#concept-appcache-init" title="concept-appcache-init">application cache
                   10557:   selection algorithm</a> with no manifest, and passing in the
                   10558:   newly-created <code><a href="dom.html#document">Document</a></code>.</p>
                   10559: 
                   10560:   <p>After creating the <code><a href="dom.html#document">Document</a></code> object, but potentially
                   10561:   before the page has finished fully loading, the user agent must
                   10562:   <a href="#update-the-session-history-with-the-new-page">update the session history with the new page</a>.</p>
                   10563: 
                   10564:   <p>User agents may add content to the <code><a href="the-head-element.html#the-head-element">head</a></code> element of
                   10565:   the <code><a href="dom.html#document">Document</a></code>, or attributes to the element <var title="">host element</var>, e.g. to link to a style sheet or an XBL
                   10566:   binding, to provide a script, to give the document a
                   10567:   <code><a href="the-title-element.html#the-title-element">title</a></code>, to make the media <a href="media-elements.html#attr-media-autoplay" title="attr-media-autoplay">autoplay</a>, etc.</p>
                   10568: 
                   10569: 
                   10570:   <h4 id="read-plugin"><span class="secno">5.6.7 </span><dfn title="navigate-plugin">Page load processing model for content that uses plugins</dfn></h4>
                   10571: 
                   10572:   <p>When a resource that requires an external resource to be rendered
                   10573:   is to be loaded in a <a href="#browsing-context">browsing context</a>, the user agent
                   10574:   should <a href="#create-a-document-object">create a <code>Document</code> object</a>, mark it
                   10575:   as being an <a href="infrastructure.html#html-documents" title="HTML documents">HTML document</a>, set
                   10576:   its <a href="infrastructure.html#concept-document-content-type" title="concept-document-content-type">content type</a> to
                   10577:   the sniffed MIME type of the resource (<var title="">type</var> in
                   10578:   the <a href="#navigate">navigate</a> algorithm), append an <code><a href="the-html-element.html#the-html-element">html</a></code>
                   10579:   element to the <code><a href="dom.html#document">Document</a></code>, append a <code><a href="the-head-element.html#the-head-element">head</a></code>
                   10580:   element and a <code><a href="the-body-element.html#the-body-element">body</a></code> element to the <code><a href="the-html-element.html#the-html-element">html</a></code>
                   10581:   element, append an <code><a href="the-embed-element.html#the-embed-element">embed</a></code> to the <code><a href="the-body-element.html#the-body-element">body</a></code>
                   10582:   element, and set the <code title="attr-embed-src"><a href="the-embed-element.html#attr-embed-src">src</a></code>
                   10583:   attribute of the <code><a href="the-embed-element.html#the-embed-element">embed</a></code> element to the address of the
                   10584:   resource.</p>
                   10585: 
                   10586:   <!-- next three paragraphs are similar to the navigate-text section,
                   10587:   keep them in sync -->
                   10588: 
                   10589:   <p>Then, the user agent must act as if it had <a href="#stop-parsing" title="stop
                   10590:   parsing">stopped parsing</a>.</p>
                   10591: 
                   10592:   <p>Upon creation of the <code><a href="dom.html#document">Document</a></code> object, the user agent
                   10593:   must run the <a href="#concept-appcache-init" title="concept-appcache-init">application cache
                   10594:   selection algorithm</a> with no manifest, and passing in the
                   10595:   newly-created <code><a href="dom.html#document">Document</a></code>.</p>
                   10596: 
                   10597:   <p>After creating the <code><a href="dom.html#document">Document</a></code> object, but potentially
                   10598:   before the page has finished fully loading, the user agent must
                   10599:   <a href="#update-the-session-history-with-the-new-page">update the session history with the new page</a>.</p>
                   10600: 
                   10601:   <p>User agents may add content to the <code><a href="the-head-element.html#the-head-element">head</a></code> element of
                   10602:   the <code><a href="dom.html#document">Document</a></code>, or attributes to the <code><a href="the-embed-element.html#the-embed-element">embed</a></code>
                   10603:   element, e.g. to link to a style sheet or an XBL binding, or to give
                   10604:   the document a <code><a href="the-title-element.html#the-title-element">title</a></code>.</p>
                   10605: 
                   10606:   <p class="note" id="sandboxPluginNavigate">If the
                   10607:   <code><a href="dom.html#document">Document</a></code>'s <a href="#active-sandboxing-flag-set">active sandboxing flag set</a> has
                   10608:   its <a href="#sandboxed-plugins-browsing-context-flag">sandboxed plugins browsing context flag</a> set, the
                   10609:   synthesized <code><a href="the-embed-element.html#the-embed-element">embed</a></code> element will <a href="the-embed-element.html#sandboxPluginEmbed">fail to render the content</a> if the
                   10610:   relevant <a href="infrastructure.html#plugin">plugin</a> cannot be <a href="infrastructure.html#concept-plugin-secure" title="concept-plugin-secure">secured</a>.</p>
                   10611: 
                   10612: 
                   10613:   <h4 id="read-ua-inline"><span class="secno">5.6.8 </span><dfn title="navigate-ua-inline">Page load processing model for inline content that doesn't have a DOM</dfn></h4>
                   10614: 
                   10615:   <p>When the user agent is to display a user agent page inline in a
                   10616:   <a href="#browsing-context">browsing context</a>, the user agent should <a href="#create-a-document-object">create a
                   10617:   <code>Document</code> object</a>, mark it as being an <a href="infrastructure.html#html-documents" title="HTML documents">HTML document</a>, set its <a href="infrastructure.html#concept-document-content-type" title="concept-document-content-type">content type</a> to "<code title="">text/html</code>", and then either associate that
                   10618:   <code><a href="dom.html#document">Document</a></code> with a custom rendering that is not rendered
                   10619:   using the normal <code><a href="dom.html#document">Document</a></code> rendering rules, or mutate
                   10620:   that <code><a href="dom.html#document">Document</a></code> until it represents the content the user
                   10621:   agent wants to render.</p>
                   10622: 
                   10623:   <!-- next two paragraphs are similar to the navigate-text section,
                   10624:   keep them in sync -->
                   10625: 
                   10626:   <p>Once the page has been set up, the user agent must act as if it
                   10627:   had <a href="#stop-parsing" title="stop parsing">stopped parsing</a>.</p>
                   10628: 
                   10629:   <p>Upon creation of the <code><a href="dom.html#document">Document</a></code> object, the user agent
                   10630:   must run the <a href="#concept-appcache-init" title="concept-appcache-init">application cache
                   10631:   selection algorithm</a> with no manifest, passing in the
                   10632:   newly-created <code><a href="dom.html#document">Document</a></code>.</p>
                   10633: 
                   10634:   <p>After creating the <code><a href="dom.html#document">Document</a></code> object, but potentially
                   10635:   before the page has been completely set up, the user agent must
                   10636:   <a href="#update-the-session-history-with-the-new-page">update the session history with the new page</a>.</p>
                   10637: 
                   10638: 
                   10639: 
                   10640:   <h4 id="scroll-to-fragid"><span class="secno">5.6.9 </span><dfn title="navigate-fragid">Navigating to a fragment identifier</dfn></h4>
                   10641: 
                   10642:   <p>When a user agent is supposed to navigate to a fragment
                   10643:   identifier, then the user agent must <a href="#queue-a-task">queue a task</a> to
                   10644:   run the following steps:</p>
                   10645: 
                   10646:   <ol><li>
                   10647: 
                   10648:     <p>Remove all the entries in the <a href="#browsing-context">browsing context</a>'s
                   10649:     <a href="#session-history">session history</a> after the <a href="#current-entry">current
                   10650:     entry</a>. If the <a href="#current-entry">current entry</a> is the last entry
                   10651:     in the session history, then no entries are removed.</p>
                   10652: 
                   10653:     <p class="note">This <a href="#history-notes">doesn't necessarily
                   10654:     have to affect</a> the user agent's user interface.</p>
                   10655: 
                   10656:    </li>
                   10657: 
                   10658:    <li><p>Remove any <a href="#concept-task" title="concept-task">tasks</a> queued by
                   10659:    the <a href="#history-traversal-task-source">history traversal task source</a> that are associated
                   10660:    with any <code><a href="dom.html#document">Document</a></code> objects in the <a href="#top-level-browsing-context">top-level
                   10661:    browsing context</a>'s <a href="#document-family">document family</a>.</p></li>
                   10662: 
                   10663:    <li><p>Append a new entry at the end of the <code><a href="#history-1">History</a></code>
                   10664:    object representing the new resource and its <code><a href="dom.html#document">Document</a></code>
                   10665:    object and related state. Its <a href="urls.html#url">URL</a> must be set to the
                   10666:    address to which the user agent was <a href="#navigate" title="navigate">navigating</a>. The title must be left
                   10667:    unset.</p></li>
                   10668: 
                   10669:    <li><p><a href="#traverse-the-history">Traverse the history</a> to the new entry. This
                   10670:    will <a href="#scroll-to-the-fragment-identifier">scroll to the fragment identifier</a> given in what
                   10671:    is now <a href="dom.html#the-document's-address">the document's address</a>.</p></li>
                   10672: 
                   10673:   </ol><p class="note">If the scrolling fails because the relevant <a href="infrastructure.html#concept-id" title="concept-id">ID</a> has not yet been parsed, then the
                   10674:   original <a href="#navigate" title="navigate">navigation</a> algorithm will
                   10675:   take care of the scrolling instead, as the last few steps of its
                   10676:   <a href="#update-the-session-history-with-the-new-page">update the session history with the new page</a>
                   10677:   algorithm.</p>
                   10678: 
                   10679:   <hr><p>When the user agent is required to <dfn id="scroll-to-the-fragment-identifier">scroll to the fragment
                   10680:   identifier</dfn>, it must either change the scrolling position of
                   10681:   the document using the <a href="infrastructure.html#scroll-an-element-into-view">scroll an element into view</a>
                   10682:   algorithm defined in the CSSOM View specification, with the <var title="">align to top flag</var> set, or perform some other action,
                   10683:   such that <a href="#the-indicated-part-of-the-document">the indicated part of the document</a> is brought
                   10684:   to the user's attention. If there is no indicated part, or if the
                   10685:   indicated part is not <a href="#being-rendered">being rendered</a>, then the user
                   10686:   agent must not scroll anywhere. <a href="#refsCSSOMVIEW">[CSSOMVIEW]</a></p>
                   10687: 
                   10688:   <p><dfn id="the-indicated-part-of-the-document">The indicated part of the document</dfn> is the one that the
                   10689:   fragment identifier, if any, identifies. The semantics of the
                   10690:   fragment identifier in terms of mapping it to a specific DOM Node is
                   10691:   defined by the specification that defines the <a href="infrastructure.html#mime-type">MIME type</a>
                   10692:   used by the <code><a href="dom.html#document">Document</a></code> (for example, the processing of
                   10693:   fragment identifiers for <a href="infrastructure.html#xml-mime-type" title="XML MIME type">XML MIME
                   10694:   types</a> is the responsibility of RFC3023). <a href="#refsRFC3023">[RFC3023]</a></p>
                   10695: 
                   10696:   <p>For HTML documents (and <a href="infrastructure.html#html-mime-type" title="HTML MIME type">HTML MIME
                   10697:   types</a>), the following processing model must be followed to
                   10698:   determine what <a href="#the-indicated-part-of-the-document">the indicated part of the document</a>
                   10699:   is.</p>
                   10700: 
                   10701:   <ol><li><p><a href="urls.html#parse-a-url" title="parse a url">Parse</a> the <a href="urls.html#url">URL</a>,
                   10702:    and let <var title="">fragid</var> be the <a href="urls.html#url-fragment" title="url-fragment">&lt;fragment&gt;</a> component of the
                   10703:    URL.</p></li><!-- parsing can't fail, since we checked earlier on
                   10704:    when navigating -->
                   10705: 
                   10706:    <li><p>If <var title="">fragid</var> is the empty string, then
                   10707:    <a href="#the-indicated-part-of-the-document">the indicated part of the document</a> is the top of the
                   10708:    document; stop the algorithm here.</p></li>
                   10709: 
                   10710:    <li><p>Let <var title="">decoded fragid</var> be the result of
                   10711:    expanding any sequences of percent-encoded octets in <var title="">fragid</var> that are valid UTF-8 sequences into Unicode
                   10712:    characters as defined by UTF-8. If any percent-encoded octets in
                   10713:    that string are not valid UTF-8 sequences (e.g. they expand to
                   10714:    surrogate code points), then skip this step and the next one.</p>
                   10715: 
                   10716:    </li><li><p>If this step was not skipped and there is an element in the
                   10717:    DOM that has an <a href="infrastructure.html#concept-id" title="concept-id">ID</a> exactly equal to
                   10718:    <var title="">decoded fragid</var>, then the first such element in
                   10719:    tree order is <a href="#the-indicated-part-of-the-document">the indicated part of the document</a>; stop
                   10720:    the algorithm here.</p></li>
                   10721: 
                   10722:    <li><p>If there is an <code><a href="the-a-element.html#the-a-element">a</a></code> element in the DOM that has a
                   10723:    <code title="attr-a-name"><a href="#attr-a-name">name</a></code> attribute whose value is
                   10724:    exactly equal to <var title="">fragid</var> (<em>not</em> <var title="">decoded fragid</var>), then the first such element in tree
                   10725:    order is <a href="#the-indicated-part-of-the-document">the indicated part of the document</a>; stop the
                   10726:    algorithm here.</p></li>
                   10727: 
                   10728:    <li><p>If <var title="">fragid</var> is an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   10729:    case-insensitive</a> match for the string <code title="">top</code>, then <a href="#the-indicated-part-of-the-document">the indicated part of the
                   10730:    document</a> is the top of the document; stop the algorithm
                   10731:    here.</p></li>
                   10732: 
                   10733:    <li><p>Otherwise, there is no <a href="#the-indicated-part-of-the-document" title="the indicated part of
                   10734:    the document">indicated part of the document</a>.</p></li>
                   10735: 
                   10736:   </ol><p>For the purposes of the interaction of HTML with Selectors' <code title="selector-target">:target</code> pseudo-class, the
                   10737:   <dfn id="target-element"><i>target element</i></dfn> is <a href="#the-indicated-part-of-the-document">the indicated part of the
                   10738:   document</a>, if that is an element; otherwise there is no
                   10739:   <i><a href="#target-element">target element</a></i>. <a href="#refsSELECTORS">[SELECTORS]</a></p>
                   10740: 
                   10741:   <p>The <a href="#task-source">task source</a> for the task mentioned in this
                   10742:   section must be the <a href="#dom-manipulation-task-source">DOM manipulation task source</a>.</p>
                   10743: 
                   10744:   </div>
                   10745: 
                   10746: 
                   10747: 
                   10748:   <h4 id="history-traversal"><span class="secno">5.6.10 </span>History traversal</h4> <!-- session history -->
                   10749: 
                   10750:   <div class="impl">
                   10751: 
                   10752:   <p>When a user agent is required to <dfn id="traverse-the-history">traverse the history</dfn>
                   10753:   to a <var title="">specified entry</var>, optionally with
                   10754:   <a href="#replacement-enabled">replacement enabled</a>, the user agent must act as
                   10755:   follows.</p>
                   10756: 
                   10757:   <p class="note">This algorithm is not just invoked when <a href="#traverse-the-history-by-a-delta" title="traverse the history by a delta">explicitly going back or
                   10758:   forwards in the session history</a> &#8212; it is also invoked in
                   10759:   other situations, for example when <a href="#navigate" title="navigate">navigating
                   10760:   a browsing context</a>, as part of <a href="#update-the-session-history-with-the-new-page" title="update the
                   10761:   session history with the new page">updating the session history with
                   10762:   the new page</a>.</p>
                   10763: 
                   10764:   <ol><li><p>If there is no longer a <code><a href="dom.html#document">Document</a></code> object for the
                   10765:    entry in question, <a href="#navigate">navigate</a><!--DONAV history traversal
                   10766:    after eviction--> the browsing context to the location for that
                   10767:    entry to perform an <a href="#entry-update">entry update</a> of that entry, and
                   10768:    abort these steps. The "<a href="#navigate">navigate</a>" algorithm reinvokes
                   10769:    this "traverse" algorithm to complete the traversal, at which point
                   10770:    there <em>is</em> a <code><a href="dom.html#document">Document</a></code> object and so this step
                   10771:    gets skipped. The navigation must be done using the same
                   10772:    <a href="#source-browsing-context">source browsing context</a> as was used the first time
                   10773:    this entry was created. (This can never happen with
                   10774:    <a href="#replacement-enabled">replacement enabled</a>.)</p></li>
                   10775: 
                   10776:    <li><p>If the <a href="#current-entry">current entry</a>'s title was not set by the
                   10777:    <code title="dom-history-pushState"><a href="#dom-history-pushstate">pushState()</a></code> or <code title="dom-history-replaceState"><a href="#dom-history-replacestate">replaceState()</a></code> methods,
                   10778:    then set its title to the value returned by the <code title="dom-document-title"><a href="dom.html#document.title">document.title</a></code> IDL
                   10779:    attribute.</p></li>
                   10780: 
                   10781:    <li><p>If appropriate, update the <a href="#current-entry">current entry</a> in the
                   10782:    <a href="#browsing-context">browsing context</a>'s <code><a href="dom.html#document">Document</a></code> object's
                   10783:    <code><a href="#history-1">History</a></code> object to reflect any state that the user
                   10784:    agent wishes to persist. The entry is then said to be <a href="#an-entry-with-persisted-user-state">an
                   10785:    entry with persisted user state</a>.</p></li>
                   10786: 
                   10787:    <li><p>If the <var title="">specified entry</var> has a different
                   10788:    <code><a href="dom.html#document">Document</a></code> object than the <a href="#current-entry">current entry</a>
                   10789:    then the following substeps:</p>
                   10790: 
                   10791:     <ol><li>
                   10792: 
                   10793:       <p>If the browsing context is a <a href="#top-level-browsing-context">top-level browsing
                   10794:       context</a>, but not an <a href="#auxiliary-browsing-context">auxiliary browsing
                   10795:       context</a>, and the <a href="#origin-0">origin</a> of the
                   10796:       <code><a href="dom.html#document">Document</a></code> of the <var title="">specified entry</var>
                   10797:       is not the <a href="#same-origin" title="same origin">same</a> as the
                   10798:       <a href="#origin-0">origin</a> of the <code><a href="dom.html#document">Document</a></code> of the
                   10799:       <a href="#current-entry">current entry</a>, then run the following
                   10800:       sub-sub-steps:</p>
                   10801: 
                   10802:       <ol><li><p>The current <a href="#browsing-context-name">browsing context name</a> must be
                   10803:        stored with all the entries in the history that are associated
                   10804:        with <code><a href="dom.html#document">Document</a></code> objects with the <a href="#same-origin">same
                   10805:        origin</a> as the <a href="#active-document">active document</a> <em>and</em>
                   10806:        that are contiguous with the <a href="#current-entry">current entry</a>.</p></li>
                   10807: 
                   10808:        <li id="resetBCName"><p>The browsing context's <a href="#browsing-context-name">browsing
                   10809:        context name</a> must be unset.</p></li>
                   10810: 
                   10811:       </ol></li>
                   10812: 
                   10813:      <li id="appcache-history-2"><p>Make the <var title="">specified
                   10814:      entry</var>'s <code><a href="dom.html#document">Document</a></code> object the <a href="#active-document">active
                   10815:      document</a> of the <a href="#browsing-context">browsing context</a>.</p></li>
                   10816: 
                   10817:      <li>
                   10818: 
                   10819:       <p>If the <var title="">specified entry</var> has a
                   10820:       <a href="#browsing-context-name">browsing context name</a> stored with it, then run the
                   10821:       following sub-sub-steps:</p>
                   10822: 
                   10823:       <ol><li><p>Set the browsing context's <a href="#browsing-context-name">browsing context
                   10824:        name</a> to the name stored with the specified
                   10825:        entry.</p></li>
                   10826: 
                   10827:        <li><p>Clear any <a href="#browsing-context-name" title="browsing context name">browsing
                   10828:        context names</a> stored with all entries in the history
                   10829:        that are associated with <code><a href="dom.html#document">Document</a></code> objects with the
                   10830:        <a href="#same-origin">same origin</a> as the new <a href="#active-document">active
                   10831:        document</a> and that are contiguous with the specified
                   10832:        entry.</p></li>
                   10833: 
                   10834:       </ol></li>
                   10835: 
                   10836:      <li id="history-autocomplete"><p>If the <var title="">specified
                   10837:      entry</var>'s <code><a href="dom.html#document">Document</a></code> has any <code><a href="the-input-element.html#the-input-element">input</a></code>
                   10838:      elements whose <a href="common-input-element-attributes.html#resulting-autocompletion-state">resulting autocompletion state</a> is <i title="">off</i>, invoke the <a href="#concept-form-reset-control" title="concept-form-reset-control">reset algorithm</a> of each
                   10839:      of those elements.</p></li>
                   10840: 
                   10841:      <li>
                   10842: 
                   10843:       <p>If the <a href="dom.html#current-document-readiness">current document readiness</a> of the <var title="">specified entry</var>'s <code><a href="dom.html#document">Document</a></code> is "<code title="">complete</code>", <a href="#queue-a-task">queue a task</a> to run the
                   10844:       following sub-sub-steps:</p>
                   10845: 
                   10846:       <ol><li><p>If the <code><a href="dom.html#document">Document</a></code>'s <a href="#page-showing">page showing</a>
                   10847:        flag is true, then abort this task (i.e. don't fire the event
                   10848:        below).</p></li>
                   10849: 
                   10850:        <li><p>Set the <code><a href="dom.html#document">Document</a></code>'s <a href="#page-showing">page
                   10851:        showing</a> flag to true.</p></li>
                   10852: 
                   10853:        <li><p>Fire a <code title="event-pageshow"><a href="#event-pageshow">pageshow</a></code>
                   10854:        event at the <code><a href="#window">Window</a></code> object of that
                   10855:        <code><a href="dom.html#document">Document</a></code>, but with its <code title="dom-event-target"><a href="infrastructure.html#dom-event-target">target</a></code> set to the
                   10856:        <code><a href="dom.html#document">Document</a></code> object (and the <code title="dom-event-currentTarget">currentTarget</code> set to the
                   10857:        <code><a href="#window">Window</a></code> object), using the
                   10858:        <code><a href="#pagetransitionevent">PageTransitionEvent</a></code> interface, with the <code title="dom-PageTransitionEvent-persisted"><a href="#dom-pagetransitionevent-persisted">persisted</a></code>
                   10859:        attribute initialized to true. This event must not bubble, must
                   10860:        not be cancelable, and has no default action.</p></li>
                   10861: 
                   10862:       </ol><!-- an interesting thing to test would be to traverse back
                   10863:       during onload, before the first pageshow has fired, and then to
                   10864:       traverse forward again, and see if we get _two_ pageshows. If
                   10865:       so, it indicates that browsers don't have a "page showing" flag
                   10866:       like this and that the history traversal task source has a
                   10867:       higher priority than the DOM manipulation task source. --></li>
                   10868: 
                   10869:     </ol></li>
                   10870: 
                   10871:    <li><p>Set <a href="dom.html#the-document's-address">the document's address</a> to the URL of the
                   10872:    <var title="">specified entry</var>.</p></li>
                   10873: 
                   10874:    <li><p>If the <var title="">specified entry</var> has a URL whose
                   10875:    fragment identifier differs from that of the <a href="#current-entry">current
                   10876:    entry</a>'s when compared in a <a href="infrastructure.html#case-sensitive">case-sensitive</a>
                   10877:    manner, and the two share the same <code><a href="dom.html#document">Document</a></code> object,
                   10878:    then let <var title="">hash changed</var> be true, and let <var title="">old URL</var> be the URL of the <a href="#current-entry">current entry</a>
                   10879:    and <var title="">new URL</var> be the URL of the <var title="">specified entry</var>. Otherwise, let <var title="">hash
                   10880:    changed</var> be false.</p></li>
                   10881: 
                   10882:    <li><p>If the traversal was initiated with <dfn id="replacement-enabled">replacement
                   10883:    enabled</dfn>, remove the entry immediately before the
                   10884:    <var title="">specified entry</var> in the session history.</p>
                   10885: 
                   10886:    </li><li><p>If the <var title="">specified entry</var> is not <a href="#an-entry-with-persisted-user-state">an
                   10887:    entry with persisted user state</a>, but its URL has a fragment
                   10888:    identifier, <a href="#scroll-to-the-fragment-identifier">scroll to the fragment
                   10889:    identifier</a>.</p></li>
                   10890: 
                   10891:    <li>
                   10892: 
                   10893:     <p>If the entry is <a href="#an-entry-with-persisted-user-state">an entry with persisted user
                   10894:     state</a>, the user agent may update aspects of the document
                   10895:     and its rendering, for instance the scroll position or values of
                   10896:     form fields, that it had previously recorded.</p>
                   10897: 
                   10898:     <!-- see similar paragraphs in the textarea and input sections -->
                   10899:     <p class="note">This can even include updating the <code title="attr-dir"><a href="global-attributes.html#the-dir-attribute">dir</a></code> attribute of <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>
                   10900:     elements or <code><a href="the-input-element.html#the-input-element">input</a></code> elements whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in either the
                   10901:     <a href="states-of-the-type-attribute.html#text-(type=text)-state-and-search-state-(type=search)" title="attr-input-type-text">Text</a> state or the <a href="states-of-the-type-attribute.html#text-(type=text)-state-and-search-state-(type=search)" title="attr-input-type-search">Search</a> state, if the
                   10902:     persisted state includes the directionality of user input in such
                   10903:     controls.</p>
                   10904: 
                   10905:    </li>
                   10906: 
                   10907:    <li><p>If the entry is a <a href="#state-object">state object</a> entry, let <var title="">state</var> be a <a href="common-dom-interfaces.html#structured-clone">structured clone</a> of that
                   10908:    state object. Otherwise, let <var title="">state</var> be
                   10909:    null.</p></li>
                   10910: 
                   10911:    <li><p>Set <code title="dom-history-state"><a href="#dom-history-state">history.state</a></code> to
                   10912:    <var title="">state</var>.</p></li>
                   10913: 
                   10914:    <li><p>Let <var title="">state changed</var> be true if the
                   10915:    <code><a href="dom.html#document">Document</a></code> of the <var title="">specified entry</var>
                   10916:    has a <a href="#latest-entry">latest entry</a>, and that entry is not the <var title="">specified entry</var>; otherwise let it be false.</p>
                   10917: 
                   10918:    </li><li><p>Let the <a href="#latest-entry">latest entry</a> of the
                   10919:    <code><a href="dom.html#document">Document</a></code> of the <var title="">specified entry</var> be
                   10920:    the <var title="">specified entry</var>.</p></li>
                   10921: 
                   10922:    <li><p>If <var title="">state changed</var> is true, fire a <code title="event-popstate"><a href="#event-popstate">popstate</a></code> event at the
                   10923:    <code><a href="#window">Window</a></code> object of the <code><a href="dom.html#document">Document</a></code>, using the
                   10924:    <code><a href="#popstateevent">PopStateEvent</a></code> interface, with the <code title="dom-PopStateEvent-state"><a href="#dom-popstateevent-state">state</a></code> attribute initialized
                   10925:    to the value of <var title="">state</var>. This event must bubble
                   10926:    but not be cancelable and has no default action.</p></li>
                   10927: 
                   10928:    <li><p>If <var title="">hash changed</var> is true, then fire a
                   10929:    <code title="event-hashchange"><a href="#event-hashchange">hashchange</a></code> event at the
                   10930:    <a href="#browsing-context">browsing context</a>'s <code><a href="#window">Window</a></code> object, using
                   10931:    the <code><a href="#hashchangeevent">HashChangeEvent</a></code> interface, with the <code title="dom-HashChangeEvent-oldURL"><a href="#dom-hashchangeevent-oldurl">oldURL</a></code> attribute
                   10932:    initialized to <var title="">old URL</var> and the <code title="dom-HashChangeEvent-newURL"><a href="#dom-hashchangeevent-newurl">newURL</a></code> attribute
                   10933:    initialized to <var title="">new URL</var>. This event must bubble
                   10934:    but not be cancelable and has no default action.</p></li>
                   10935: 
                   10936:    <li><p>The <a href="#current-entry">current entry</a> is now the <var title="">specified entry</var>.</p></li>
                   10937: 
                   10938:   </ol><p>The <a href="#task-source">task source</a> for the tasks mentioned above is the
                   10939:   <a href="#dom-manipulation-task-source">DOM manipulation task source</a>.</p>
                   10940: 
                   10941: 
                   10942:   <h5 id="event-definitions-0"><span class="secno">5.6.10.1 </span>Event definitions</h5>
                   10943: 
                   10944:   </div>
                   10945: 
                   10946:   <p>The <dfn id="event-popstate" title="event-popstate"><code>popstate</code></dfn> event
                   10947:   is fired in certain cases when navigating to a <a href="#session-history-entry">session history
                   10948:   entry</a>.</p>
                   10949: 
                   10950:   <pre class="idl">[Constructor(DOMString type, optional <a href="#popstateeventinit">PopStateEventInit</a> eventInitDict)]
                   10951: interface <dfn id="popstateevent">PopStateEvent</dfn> : <a href="infrastructure.html#event">Event</a> {
                   10952:   readonly attribute any <a href="#dom-popstateevent-state" title="dom-PopStateEvent-state">state</a>;
                   10953: };
                   10954: 
                   10955: dictionary <dfn id="popstateeventinit">PopStateEventInit</dfn> : <a href="infrastructure.html#eventinit">EventInit</a> {
                   10956:   any state;
                   10957: };</pre>
                   10958: 
                   10959:   <dl class="domintro"><dt><var title="">event</var> . <code title="dom-PopStateEvent-state"><a href="#dom-popstateevent-state">state</a></code></dt>
                   10960: 
                   10961:    <dd>
                   10962: 
                   10963:     <p>Returns a copy of the information that was provided to <code title="dom-history-pushState"><a href="#dom-history-pushstate">pushState()</a></code> or <code title="dom-history-replaceState"><a href="#dom-history-replacestate">replaceState()</a></code>.</p>
                   10964: 
                   10965:    </dd>
                   10966: 
                   10967:   </dl><div class="impl">
                   10968: 
                   10969:   <p>The <dfn id="dom-popstateevent-state" title="dom-PopStateEvent-state"><code>state</code></dfn>
                   10970:   attribute must return the value it was initialized to. When the
                   10971:   object is created, this attribute must be initialized to null. It
                   10972:   represents the context information for the event, or null, if the
                   10973:   state represented is the initial state of the
                   10974:   <code><a href="dom.html#document">Document</a></code>.</p>
                   10975: 
                   10976:   </div>
                   10977: 
                   10978:   <hr><p>The <dfn id="event-hashchange" title="event-hashchange"><code>hashchange</code></dfn>
                   10979:   event is fired when navigating to a <a href="#session-history-entry">session history
                   10980:   entry</a> whose <a href="urls.html#url">URL</a> differs from that of the
                   10981:   previous one only in the fragment identifier.</p>
                   10982: 
                   10983:   <pre class="idl">[Constructor(DOMString type, optional <a href="#hashchangeeventinit">HashChangeEventInit</a> eventInitDict)]
                   10984: interface <dfn id="hashchangeevent">HashChangeEvent</dfn> : <a href="infrastructure.html#event">Event</a> {
                   10985:   readonly attribute DOMString <a href="#dom-hashchangeevent-oldurl" title="dom-HashChangeEvent-oldURL">oldURL</a>;
                   10986:   readonly attribute DOMString <a href="#dom-hashchangeevent-newurl" title="dom-HashChangeEvent-newURL">newURL</a>;
                   10987: };
                   10988: 
                   10989: dictionary <dfn id="hashchangeeventinit">HashChangeEventInit</dfn> : <a href="infrastructure.html#eventinit">EventInit</a> {
                   10990:   DOMString oldURL;
                   10991:   DOMString newURL;
                   10992: };</pre>
                   10993: 
                   10994:   <dl class="domintro"><dt><var title="">event</var> . <code title="dom-HashChangeEvent-oldURL"><a href="#dom-hashchangeevent-oldurl">oldURL</a></code></dt>
                   10995: 
                   10996:    <dd>
                   10997: 
                   10998:     <p>Returns the <a href="urls.html#url">URL</a> of the <a href="#session-history-entry">session history
                   10999:     entry</a> that was previously current.</p>
                   11000: 
                   11001:    </dd>
                   11002: 
                   11003: 
                   11004:    <dt><var title="">event</var> . <code title="dom-HashChangeEvent-newURL"><a href="#dom-hashchangeevent-newurl">newURL</a></code></dt>
                   11005: 
                   11006:    <dd>
                   11007: 
                   11008:     <p>Returns the <a href="urls.html#url">URL</a> of the <a href="#session-history-entry">session history
                   11009:     entry</a> that is now current.</p>
                   11010: 
                   11011:    </dd>
                   11012: 
                   11013:   </dl><div class="impl">
                   11014: 
                   11015:   <p>The <dfn id="dom-hashchangeevent-oldurl" title="dom-HashChangeEvent-oldURL"><code>oldURL</code></dfn>
                   11016:   attribute must return the value it was initialized to. When the
                   11017:   object is created, this attribute must be initialized to null. It
                   11018:   represents context information for the event, specifically the URL
                   11019:   of the <a href="#session-history-entry">session history entry</a> that was traversed
                   11020:   from.</p>
                   11021: 
                   11022:   <p>The <dfn id="dom-hashchangeevent-newurl" title="dom-HashChangeEvent-newURL"><code>newURL</code></dfn>
                   11023:   attribute must return the value it was initialized to. When the
                   11024:   object is created, this attribute must be initialized to null. It
                   11025:   represents context information for the event, specifically the URL
                   11026:   of the <a href="#session-history-entry">session history entry</a> that was traversed to.</p>
                   11027: 
                   11028:   </div>
                   11029: 
                   11030:   <hr><p>The <dfn id="event-pageshow" title="event-pageshow"><code>pageshow</code></dfn> event
                   11031:   is fired when traversing <em>to</em> a <a href="#session-history-entry">session history
                   11032:   entry</a>. The <dfn id="event-pagehide" title="event-pagehide"><code>pagehide</code></dfn> event is fired
                   11033:   when traversing <em>from</em> a <a href="#session-history-entry">session history entry</a>.
                   11034:   The specification uses the <a href="#page-showing">page showing</a> flag to ensure
                   11035:   that scripts receive these events in a consistent manner (e.g. that
                   11036:   they never receive two <code title="event-pagehide"><a href="#event-pagehide">pagehide</a></code>
                   11037:   events in a row without an intervening <code title="event-pageshow"><a href="#event-pageshow">pageshow</a></code>, or vice versa).</p>
                   11038: 
                   11039:   <pre class="idl">[Constructor(DOMString type, optional <a href="#pagetransitioneventinit">PageTransitionEventInit</a> eventInitDict)]
                   11040: interface <dfn id="pagetransitionevent">PageTransitionEvent</dfn> : <a href="infrastructure.html#event">Event</a> {
                   11041:   readonly attribute boolean <a href="#dom-pagetransitionevent-persisted" title="dom-PageTransitionEvent-persisted">persisted</a>;
                   11042: };
                   11043: 
                   11044: dictionary <dfn id="pagetransitioneventinit">PageTransitionEventInit</dfn> : <a href="infrastructure.html#eventinit">EventInit</a> {
                   11045:   boolean persisted;
                   11046: };</pre>
                   11047: 
                   11048:   <dl class="domintro"><dt><var title="">event</var> . <code title="dom-PageTransitionEvent-persisted"><a href="#dom-pagetransitionevent-persisted">persisted</a></code></dt>
                   11049: 
                   11050:    <dd>
                   11051: 
                   11052:     <p>Returns false if the page is newly being loaded (and the <code title="event-load">load</code> event will fire). Otherwise, returns true.</p>
                   11053: 
                   11054:    </dd>
                   11055: 
                   11056:   </dl><div class="impl">
                   11057: 
                   11058:   <p>The <dfn id="dom-pagetransitionevent-persisted" title="dom-PageTransitionEvent-persisted"><code>persisted</code></dfn>
                   11059:   attribute must return the value it was initialized to. When the
                   11060:   object is created, this attribute must be initialized to false. It
                   11061:   represents the context information for the event.</p>
                   11062: 
                   11063:   </div>
                   11064: 
                   11065: 
                   11066: 
                   11067:   <h4 id="unloading-documents"><span class="secno">5.6.11 </span>Unloading documents</h4>
                   11068: 
                   11069:   <div class="impl">
                   11070: 
                   11071:   <p>A <code><a href="dom.html#document">Document</a></code> has a <dfn id="concept-document-salvageable" title="concept-document-salvageable"><var>salvageable</var></dfn>
                   11072:   state, which must initially be true, a <dfn id="fired-unload">fired unload</dfn> flag,
                   11073:   which must initially be false, and a <dfn id="page-showing">page showing</dfn> flag,
                   11074:   which must initially be false.</p>
                   11075: 
                   11076:   <p><a href="#event-loop" title="event loop">Event loops</a> have a
                   11077:   <dfn id="termination-nesting-level">termination nesting level</dfn> counter, which must initially
                   11078:   be zero.</p>
                   11079: 
                   11080:   <p>When a user agent is to <dfn id="prompt-to-unload-a-document">prompt to unload a document</dfn>,
                   11081:   it must run the following steps.</p>
                   11082: 
                   11083:   <ol><li><p>Increase the <a href="#event-loop">event loop</a>'s <a href="#termination-nesting-level">termination
                   11084:    nesting level</a> by one.</p></li>
                   11085: 
                   11086:    <li><p>Increase the <code><a href="dom.html#document">Document</a></code>'s
                   11087:    <a href="dynamic-markup-insertion.html#ignore-opens-during-unload-counter">ignore-opens-during-unload counter</a> by one.</p></li>
                   11088: 
                   11089:    <li><p>Let <var title="">event</var> be a new
                   11090:    <code><a href="#beforeunloadevent">BeforeUnloadEvent</a></code> event object with the name <code title="event-beforeunload">beforeunload</code>, which does not
                   11091:    bubble but is cancelable.</p></li>
                   11092: 
                   11093:    <li><p><i>Dispatch</i>: Dispatch <var title="">event</var> at the
                   11094:    <code><a href="dom.html#document">Document</a></code>'s <code><a href="#window">Window</a></code> object.</p></li>
                   11095: 
                   11096:    <li><p>Decrease the <a href="#event-loop">event loop</a>'s <a href="#termination-nesting-level">termination
                   11097:    nesting level</a> by one.</p></li>
                   11098: 
                   11099:    <li><p>Release the <a href="#storage-mutex">storage mutex</a>.</p></li>
                   11100: 
                   11101:    <li><p>If any event listeners were triggered by the earlier
                   11102:    <i>dispatch</i> step, then set the <code><a href="dom.html#document">Document</a></code>'s <var title="concept-document-salvageable"><a href="#concept-document-salvageable">salvageable</a></var> state to
                   11103:    false.</p></li>
                   11104: 
                   11105:    <li>
                   11106: 
                   11107:     <p>If the <code title="dom-BeforeUnloadEvent-returnValue"><a href="#dom-beforeunloadevent-returnvalue">returnValue</a></code>
                   11108:     attribute of the <var title="">event</var> object is not the empty
                   11109:     string, or if the event was canceled, then the user agent should
                   11110:     ask the user to confirm that they wish to unload the document.</p>
                   11111: 
                   11112:     <p>The prompt shown by the user agent may include the string of
                   11113:     the <code title="dom-BeforeUnloadEvent-returnValue"><a href="#dom-beforeunloadevent-returnvalue">returnValue</a></code>
                   11114:     attribute, or some leading subset thereof. (A user agent may want
                   11115:     to truncate the string to 1024 characters for display, for
                   11116:     instance.)</p>
                   11117: 
                   11118:     <p>The user agent must <a href="#pause">pause</a> while waiting for the
                   11119:     user's response.</p>
                   11120: 
                   11121:     <p>If the user did not confirm the page navigation, then the user
                   11122:     agent <dfn id="refused-to-allow-the-document-to-be-unloaded">refused to allow the document to be unloaded</dfn>.</p>
                   11123: 
                   11124:    </li>
                   11125: 
                   11126:    <li><p>If this algorithm was invoked by another instance of the
                   11127:    "prompt to unload a document" algorithm (i.e. through the steps
                   11128:    below that invoke this algorithm for all descendant browsing
                   11129:    contexts), then jump to the step labeled <i>end</i>.</p></li>
                   11130: 
                   11131:    <li><p>Let <var title="">descendants</var> be the <a href="#list-of-the-descendant-browsing-contexts">list of the
                   11132:    descendant browsing contexts</a> of the
                   11133:    <code><a href="dom.html#document">Document</a></code>.</p></li>
                   11134: 
                   11135:    <li>
                   11136: 
                   11137:     <p>If <var title="">descendants</var> is not an empty list, then
                   11138:     for each <a href="#browsing-context">browsing context</a> <var title="">b</var> in
                   11139:     <var title="">descendants</var> run the following substeps:</p>
                   11140: 
                   11141:     <ol><li><p><a href="#prompt-to-unload-a-document" title="prompt to unload a document">Prompt to
                   11142:      unload</a> the <a href="#active-document">active document</a> of the
                   11143:      <a href="#browsing-context">browsing context</a> <var title="">b</var>. If the user
                   11144:      <a href="#refused-to-allow-the-document-to-be-unloaded">refused to allow the document to be unloaded</a>, then
                   11145:      the user implicitly also <a href="#refused-to-allow-the-document-to-be-unloaded" title="refused to allow the
                   11146:      document to be unloaded">refused to allow <em>this</em> document
                   11147:      to be unloaded</a>; jump to the step labeled <i>end</i>.</p>
                   11148: 
                   11149:      </li><li><p>If <var title="concept-document-salvageable"><a href="#concept-document-salvageable">salvageable</a></var> state of
                   11150:      the <a href="#active-document">active document</a> of the <a href="#browsing-context">browsing
                   11151:      context</a> <var title="">b</var> is false, then set the <var title="concept-document-salvageable"><a href="#concept-document-salvageable">salvageable</a></var> state of
                   11152:      <em>this</em> document to false also.</p></li>
                   11153: 
                   11154:     </ol></li>
                   11155: 
                   11156:    <li><p><i>End</i>: Decrease the <code><a href="dom.html#document">Document</a></code>'s
                   11157:    <a href="dynamic-markup-insertion.html#ignore-opens-during-unload-counter">ignore-opens-during-unload counter</a> by one.</p></li>
                   11158: 
                   11159:   </ol><p>When a user agent is to <dfn id="unload-a-document">unload a document</dfn>, it must run
                   11160:   the following steps. These steps are passed an argument, <var title="">recycle</var>, which is either true or false, indicating
                   11161:   whether the <code><a href="dom.html#document">Document</a></code> object is going to be
                   11162:   re-used. (This is set by the <code title="dom-document-open"><a href="dynamic-markup-insertion.html#dom-document-open">document.open()</a></code> method.)</p>
                   11163: 
                   11164:   <ol><li><p>Increase the <a href="#event-loop">event loop</a>'s <a href="#termination-nesting-level">termination
                   11165:    nesting level</a> by one.</p></li>
                   11166: 
                   11167:    <li><p>Increase the <code><a href="dom.html#document">Document</a></code>'s
                   11168:    <a href="dynamic-markup-insertion.html#ignore-opens-during-unload-counter">ignore-opens-during-unload counter</a> by one.</p></li>
                   11169: 
                   11170:    <li><p>If the <code><a href="dom.html#document">Document</a></code>'s <a href="#page-showing">page showing</a>
                   11171:    flag is false, then jump to the step labled <i>unload event</i>
                   11172:    below (i.e. skip firing the <code title="event-pagehide"><a href="#event-pagehide">pagehide</a></code> even and don't rerun the
                   11173:    <a href="#unloading-document-visibility-change-steps">unloading document visibility change steps</a>).</p></li>
                   11174: 
                   11175:    <li><p>Set the <code><a href="dom.html#document">Document</a></code>'s <a href="#page-showing">page showing</a>
                   11176:    flag to false.</p></li>
                   11177: 
                   11178:    <li><p>Fire a <code title="event-pagehide"><a href="#event-pagehide">pagehide</a></code> event at
                   11179:    the <code><a href="#window">Window</a></code> object of the <code><a href="dom.html#document">Document</a></code>, but
                   11180:    with its <code title="dom-event-target"><a href="infrastructure.html#dom-event-target">target</a></code> set to the
                   11181:    <code><a href="dom.html#document">Document</a></code> object (and the <code title="dom-event-currentTarget">currentTarget</code> set to the
                   11182:    <code><a href="#window">Window</a></code> object), using the
                   11183:    <code><a href="#pagetransitionevent">PageTransitionEvent</a></code> interface, with the <code title="dom-PageTransitionEvent-persisted"><a href="#dom-pagetransitionevent-persisted">persisted</a></code>
                   11184:    attribute initialized to true. This event must not bubble, must not
                   11185:    be cancelable, and has no default action.</p></li>
                   11186: 
                   11187:    <li>
                   11188: 
                   11189:     <p>Run any <dfn id="unloading-document-visibility-change-steps">unloading document visibility change steps</dfn>
                   11190:     for <code><a href="dom.html#document">Document</a></code> that are defined by <a href="infrastructure.html#other-applicable-specifications">other
                   11191:     applicable specifications</a>.</p>
                   11192: 
                   11193:     <p class="note">This is specifically intended for use by the Page
                   11194:     Visibility specification. <a href="#refsPAGEVIS">[PAGEVIS]</a></p>
                   11195: 
                   11196:    </li>
                   11197: 
                   11198:    <li><p><i>Unload event</i>: If the <code><a href="dom.html#document">Document</a></code>'s
                   11199:    <a href="#fired-unload">fired unload</a> flag is false, <a href="#fire-a-simple-event">fire a simple
                   11200:    event</a> named <code title="event-unload">unload</code> at the
                   11201:    <code><a href="dom.html#document">Document</a></code>'s <code><a href="#window">Window</a></code> object.</p></li>
                   11202: 
                   11203:    <li><p>Decrease the <a href="#event-loop">event loop</a>'s <a href="#termination-nesting-level">termination
                   11204:    nesting level</a> by one.</p></li>
                   11205: 
                   11206:    <li><p>Release the <a href="#storage-mutex">storage mutex</a>.</p></li>
                   11207: 
                   11208:    <li><p>If any event listeners were triggered by the earlier
                   11209:    <i>unload event</i> step, then set the <code><a href="dom.html#document">Document</a></code>
                   11210:    object's <var title="concept-document-salvageable"><a href="#concept-document-salvageable">salvageable</a></var> state to
                   11211:    false and set the <code><a href="dom.html#document">Document</a></code>'s <a href="#fired-unload">fired unload</a>
                   11212:    flag to true.</p></li>
                   11213: 
                   11214:    <li><p>Run any <a href="#unloading-document-cleanup-steps">unloading document cleanup steps</a> for
                   11215:    <code><a href="dom.html#document">Document</a></code> that are defined by this specification and
                   11216:    <a href="infrastructure.html#other-applicable-specifications">other applicable specifications</a>.</p></li>
                   11217: 
                   11218:    <li><p>If this algorithm was invoked by another instance of the
                   11219:    "unload a document" algorithm (i.e. by the steps below that invoke
                   11220:    this algorithm for all descendant browsing contexts), then jump to
                   11221:    the step labeled <i>end</i>.</p></li>
                   11222: 
                   11223:    <li><p>Let <var title="">descendants</var> be the <a href="#list-of-the-descendant-browsing-contexts">list of the
                   11224:    descendant browsing contexts</a> of the
                   11225:    <code><a href="dom.html#document">Document</a></code>.</p></li>
                   11226: 
                   11227:    <li>
                   11228: 
                   11229:     <p>If <var title="">descendants</var> is not an empty list, then
                   11230:     for each <a href="#browsing-context">browsing context</a> <var title="">b</var> in
                   11231:     <var title="">descendants</var> run the following substeps:</p>
                   11232: 
                   11233:     <ol><li><p><a href="#unload-a-document" title="unload a document">Unload</a> the
                   11234:      <a href="#active-document">active document</a> of the <a href="#browsing-context">browsing context</a>
                   11235:      <var title="">b</var> with the <var title="">recycle</var>
                   11236:      parameter set to false.</p></li>
                   11237: 
                   11238:      <li><p>If <var title="concept-document-salvageable"><a href="#concept-document-salvageable">salvageable</a></var> state of
                   11239:      the <a href="#active-document">active document</a> of the <a href="#browsing-context">browsing
                   11240:      context</a> <var title="">b</var> is false, then set the <var title="concept-document-salvageable"><a href="#concept-document-salvageable">salvageable</a></var> state of
                   11241:      <em>this</em> document to false also.</p></li>
                   11242: 
                   11243:     </ol></li>
                   11244: 
                   11245:    <li><p>If <var title="concept-document-salvageable"><a href="#concept-document-salvageable">salvageable</a></var> and <var title="">recycle</var> are both false, then the
                   11246:    <code><a href="dom.html#document">Document</a></code>'s <a href="#browsing-context">browsing context</a> must <a href="#discard-a-document" title="discard a document">discard the
                   11247:    <code>Document</code></a>.</p></li>
                   11248: 
                   11249:    <li><p><i>End</i>: Decrease the <code><a href="dom.html#document">Document</a></code>'s
                   11250:    <a href="dynamic-markup-insertion.html#ignore-opens-during-unload-counter">ignore-opens-during-unload counter</a> by one.</p></li>
                   11251: 
                   11252:   </ol><p>This specification defines the following <dfn id="unloading-document-cleanup-steps">unloading document
                   11253:   cleanup steps</dfn>. Other specifications can define more.</p>
                   11254: 
                   11255:   <ol><li>
                   11256: 
                   11257:     <p><span>Make disappear</span> any <code>WebSocket</code> objects
                   11258:     that were created by the <code title="dom-WebSocket">WebSocket()</code> constructor whose global
                   11259:     object is the <code><a href="dom.html#document">Document</a></code>'s <code><a href="#window">Window</a></code> object.
                   11260: 
                   11261:     <a href="#refsWEBSOCKET">[WEBSOCKET]</a>
                   11262: 
                   11263:     </p>
                   11264: 
                   11265:     <p>If this affected any <code>WebSocket</code> objects, the set
                   11266:     <code><a href="dom.html#document">Document</a></code>'s <var title="concept-document-salvageable"><a href="#concept-document-salvageable">salvageable</a></var> state to
                   11267:     false.</p>
                   11268: 
                   11269:    </li>
                   11270: 
                   11271:    <li><p>If the <code><a href="dom.html#document">Document</a></code>'s <var title="concept-document-salvageable"><a href="#concept-document-salvageable">salvageable</a></var> state is
                   11272:    false, <span title="concept-EventSource-forcibly-close">forcibly
                   11273:    close</span> any <code>EventSource</code> objects that whose
                   11274:    constructor was invoked from the <code><a href="dom.html#document">Document</a></code>'s
                   11275:    <code><a href="#window">Window</a></code> object.</p></li>
                   11276: 
                   11277:    <li><p>If the <code><a href="dom.html#document">Document</a></code>'s <var title="concept-document-salvageable"><a href="#concept-document-salvageable">salvageable</a></var> state is
                   11278:    false, empty the <code><a href="dom.html#document">Document</a></code>'s <code><a href="#window">Window</a></code>'s
                   11279:    <a href="#list-of-active-timers">list of active timers</a>.</p></li>
                   11280: 
                   11281:   </ol><h5 id="event-definition"><span class="secno">5.6.11.1 </span>Event definition</h5>
                   11282: 
                   11283:   </div>
                   11284: 
                   11285:   <pre class="idl">interface <dfn id="beforeunloadevent">BeforeUnloadEvent</dfn> : <a href="infrastructure.html#event">Event</a> {
                   11286:            attribute DOMString <a href="#dom-beforeunloadevent-returnvalue" title="dom-BeforeUnloadEvent-returnValue">returnValue</a>;
                   11287: };</pre>
                   11288: 
                   11289:   <dl class="domintro"><dt><var title="">event</var> . <code title="dom-BeforeUnloadEvent-returnValue"><a href="#dom-beforeunloadevent-returnvalue">returnValue</a></code> [ = <var title="">value</var> ]</dt>
                   11290: 
                   11291:    <dd>
                   11292: 
                   11293:     <p>Returns the current return value of the event (the message to show the user).</p>
                   11294: 
                   11295:     <p>Can be set, to update the message.</p>
                   11296: 
                   11297:    </dd>
                   11298: 
                   11299:   </dl><p class="note">There are no <code><a href="#beforeunloadevent">BeforeUnloadEvent</a></code>-specific
                   11300:   initialization methods.</p>
                   11301: 
                   11302:   <div class="impl">
                   11303: 
                   11304:   <p>The <dfn id="dom-beforeunloadevent-returnvalue" title="dom-BeforeUnloadEvent-returnValue"><code>returnValue</code></dfn>
                   11305:   attribute represents the message to show the user. When the event is
                   11306:   created, the attribute must be set to the empty string. On getting,
                   11307:   it must return the last value it was set to. On setting, the
                   11308:   attribute must be set to the new value.</p>
                   11309: 
                   11310:   </div>
                   11311: 
                   11312: 
                   11313:   <div class="impl">
                   11314: 
                   11315:   <h4 id="aborting-a-document-load"><span class="secno">5.6.12 </span>Aborting a document load</h4>
                   11316: 
                   11317:   <p>If a <code><a href="dom.html#document">Document</a></code> is <dfn id="abort-a-document" title="abort a
                   11318:   document">aborted</dfn>, the user agent must run the following
                   11319:   steps:</p>
                   11320: 
                   11321:   <ol><li><p><a href="#abort-a-document" title="abort a document">Abort</a> the <a href="#active-document" title="active document">active documents</a> of every
                   11322:    <a href="#child-browsing-context">child browsing context</a>.</p></li>
                   11323: 
                   11324:    <li><p>Cancel any instances of the <a href="urls.html#fetch" title="fetch">fetch</a>
                   11325:    algorithm in the context of this <code><a href="dom.html#document">Document</a></code>, discarding
                   11326:    any <a href="#concept-task" title="concept-task">tasks</a> <a href="#queue-a-task" title="queue a
                   11327:    task">queued</a> for them, and discarding any further data
                   11328:    received from the network for them.</p></li>
                   11329: 
                   11330:    <li><p>If the <code><a href="dom.html#document">Document</a></code> has an <a href="dom.html#active-parser">active
                   11331:    parser</a>, then <a href="#abort-a-parser" title="abort a parser">abort that
                   11332:    parser</a>.</p></li>
                   11333: 
                   11334:    <li><p>Set the <code><a href="dom.html#document">Document</a></code>'s <var title="concept-document-salvageable"><a href="#concept-document-salvageable">salvageable</a></var> state to
                   11335:    false.</p></li>
                   11336: 
                   11337:    <!-- we could also stop all script, or stop animations -->
                   11338: 
                   11339:   </ol><p>User agents may allow users to explicitly invoke the <a href="#abort-a-document" title="abort a document">abort a document</a> algorithm for a
                   11340:   <code><a href="dom.html#document">Document</a></code>. If the user does so, then, if that
                   11341:   <code><a href="dom.html#document">Document</a></code> is an <a href="#active-document">active document</a>, the user
                   11342:   agent should <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire a simple
                   11343:   event</a> named <code title="event-abort">abort</code> at that
                   11344:   <code><a href="dom.html#document">Document</a></code>'s <code><a href="#window">Window</a></code> object before invoking
                   11345:   the <a href="#abort-a-document" title="abort a document">abort</a> algorithm.</p>
                   11346: 
                   11347:   <!-- I'd love to make this more precise, anyone have any suggestions
                   11348:   on what it should say? -->
                   11349: 
                   11350:   </div>
                   11351: 
                   11352: 
                   11353: <!--TOPIC:Offline Web Applications-->
                   11354:   <h3 id="offline"><span class="secno">5.7 </span>Offline Web applications</h3>
                   11355: 
                   11356:   <!-- v2 ideas for appcache:
                   11357: 
                   11358:      * A way to limit what gets download when the user agent is
                   11359:        updating the application cache and it turns out the server has
                   11360:        changed EVERY page because every page has a dynamic "site last
                   11361:        modified" date on it.
                   11362: 
                   11363:        http://groups.google.com/group/gears-users/browse_thread/thread/efbd808325df607a/c73adb34f9b63cf7?hl=en&q=whatwg#c73adb34f9b63cf7
                   11364: 
                   11365: 
                   11366:      * Multiuser appcaches.
                   11367: 
                   11368:        If the application code (HTML, JS, CSS) is all the same for two
                   11369:        users, then appcache works for multiple users by just having
                   11370:        the data for the users separate from the logic.
                   11371: 
                   11372:        This is the expected model for most apps. For example, your
                   11373:        typical blog has just one set of CSS for all users.
                   11374: 
                   11375:        For systems where the user affects what HTML, JS, and CSS is
                   11376:        served back, the spec as written pretty much requires that
                   11377:        there be one app per user, and one generic "login" app that
                   11378:        then redirects to one of those other apps - and where each app
                   11379:        has a different base URL, separate manifest, etc.
                   11380: 
                   11381:        An alternative that we could explore in a future version is to
                   11382:        have the manifest include a manifest name, and then have script
                   11383:        that allows you to "activate" a particular manifest name for a
                   11384:        given appcache.
                   11385: 
                   11386:        So each appcache group would be futher subdivided into named
                   11387:        subgroups, and for a given manifest URL with such a group of
                   11388:        subgroups, one subgroup would be the default one at a time. The
                   11389:        inactive ones would just lie dormant, but and the active ones
                   11390:        would act like now, but there'd be a scripted way to change the
                   11391:        default (and maybe query what available variants exist for the
                   11392:        current appcache), so that you could log back in as someone
                   11393:        else by just making the script pick the other user's variant,
                   11394:        and then reloading.
                   11395: 
                   11396: 
                   11397:      * Add and remove specific additional files from the cache (e.g.
                   11398:        precaching new master entries).
                   11399: 
                   11400:   -->
                   11401: 
                   11402:   <h4 id="introduction-4"><span class="secno">5.7.1 </span>Introduction</h4>
                   11403: 
                   11404:   <p><i>This section is non-normative.</i></p>
                   11405:   <p>In order to enable users to continue interacting with Web
                   11406:   applications and documents even when their network connection is
                   11407:   unavailable &#8212; for instance, because they are traveling outside
                   11408:   of their ISP's coverage area &#8212; authors can provide a manifest
                   11409:   which lists the files that are needed for the Web application to
                   11410:   work offline and which causes the user's browser to keep a copy of
                   11411:   the files for use offline.</p>
                   11412: 
                   11413:   <p>To illustrate this, consider a simple clock applet consisting of
                   11414:   an HTML page "<code title="">clock.html</code>", a CSS style sheet
                   11415:   "<code title="">clock.css</code>", and a JavaScript script "<code title="">clock.js</code>".</p>
                   11416: 
                   11417:   <p>Before adding the manifest, these three files might look like
                   11418:   this:</p>
                   11419: 
                   11420:   <pre>EXAMPLE offline/clock/clock1.html</pre>
                   11421:   <pre>EXAMPLE offline/clock/clock1.css</pre>
                   11422:   <pre>EXAMPLE offline/clock/clock1.js</pre>
                   11423: 
                   11424:   <p>If the user tries to open the "<code title="">clock.html</code>"
                   11425:   page while offline, though, the user agent (unless it happens to
                   11426:   have it still in the local cache) will fail with an error.</p>
                   11427: 
                   11428:   <p>The author can instead provide a manifest of the three files, say
                   11429:   "<code title="">clock.appcache</code>":</p>
                   11430: 
                   11431:   <pre>EXAMPLE offline/clock/clock2.appcache</pre>
                   11432: 
                   11433:   <p>With a small change to the HTML file, the manifest (served as
                   11434:   <code><a href="#text/cache-manifest">text/cache-manifest</a></code>) is linked to the application:</p>
                   11435: 
                   11436:   <pre>EXAMPLE offline/clock/clock2.html</pre>
                   11437: 
                   11438:   <p>Now, if the user goes to the page, the browser will cache the
                   11439:   files and make them available even when the user is offline.</p>
                   11440: 
                   11441:   <p class="note">Authors are encouraged to include the main page in
                   11442:   the manifest also, but in practice the page that referenced the
                   11443:   manifest is automatically cached even if it isn't explicitly
                   11444:   mentioned.</p>
                   11445: 
                   11446:   <p class="note">With the exception of "no-store" directive, HTTP
                   11447:   cache headers and restrictions on caching pages served over TLS
                   11448:   (encrypted, using <code title="">https:</code>) are overridden by
                   11449:   manifests. Thus, pages will not expire from an application cache
                   11450:   before the user agent has updated it, and even applications served
                   11451:   over TLS can be made to work offline.</p>
                   11452: 
                   11453: <!--(doesn't currently function)
                   11454:   <p><a href="http://www.whatwg.org/demos/offline/clock/clock2.html">View this example online</a>.</p>
                   11455: -->
                   11456: 
                   11457: 
                   11458: 
                   11459:   <h5 id="appcacheevents"><span class="secno">5.7.1.1 </span>Event summary</h5>
                   11460: 
                   11461:   <p><i>This section is non-normative.</i></p>
                   11462:   <p>When the user visits a page that declares a manifest, the browser
                   11463:   will try to update the cache. It does this by fetching a copy of the
                   11464:   manifest and, if the manifest has changed since the user agent last
                   11465:   saw it, redownloading all the resources it mentions and caching them
                   11466:   anew.</p>
                   11467: 
                   11468:   <p>As this is going on, a number of events get fired on the
                   11469:   <code><a href="#applicationcache">ApplicationCache</a></code> object to keep the script updated as
                   11470:   to the state of the cache update, so that the user can be notified
                   11471:   appropriately. The events are as follows:</p>
                   11472: 
                   11473:   <table><thead><tr><th> Event name
                   11474:      </th><th> Interface
                   11475:      </th><th> Fired when...
                   11476:      </th><th> Next events
                   11477:    </th></tr></thead><tbody><tr><td> <dfn id="event-appcache-checking" title="event-appcache-checking"><code>checking</code></dfn>
                   11478:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   11479:      </td><td> The user agent is checking for an update, or attempting to download the manifest for the first time. <strong>This is always the first event in the sequence.</strong>
                   11480:      </td><td> <code title="event-appcache-noupdate"><a href="#event-appcache-noupdate">noupdate</a></code>, <code title="event-appcache-downloading"><a href="#event-appcache-downloading">downloading</a></code>, <code title="event-appcache-obsolete"><a href="#event-appcache-obsolete">obsolete</a></code>, <code title="event-appcache-error"><a href="#event-appcache-error">error</a></code>
                   11481:     </td></tr><tr><td> <dfn id="event-appcache-noupdate" title="event-appcache-noupdate"><code>noupdate</code></dfn>
                   11482:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   11483:      </td><td> The manifest hadn't changed.
                   11484:      </td><td> Last event in sequence.
                   11485:     </td></tr><tr><td> <dfn id="event-appcache-downloading" title="event-appcache-downloading"><code>downloading</code></dfn>
                   11486:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   11487:      </td><td> The user agent has found an update and is fetching it, or is downloading the resources listed by the manifest for the first time.
                   11488:      </td><td> <code title="event-appcache-progress"><a href="#event-appcache-progress">progress</a></code>, <code title="event-appcache-error"><a href="#event-appcache-error">error</a></code>, <code title="event-appcache-cached"><a href="#event-appcache-cached">cached</a></code>, <code title="event-appcache-updateready"><a href="#event-appcache-updateready">updateready</a></code>
                   11489:     </td></tr><tr><td> <dfn id="event-appcache-progress" title="event-appcache-progress"><code>progress</code></dfn>
                   11490:      </td><td> <code>ProgressEvent</code>
                   11491:      </td><td> The user agent is downloading resources listed by the manifest.
                   11492:      </td><td> <code title="event-appcache-progress"><a href="#event-appcache-progress">progress</a></code>, <code title="event-appcache-error"><a href="#event-appcache-error">error</a></code>, <code title="event-appcache-cached"><a href="#event-appcache-cached">cached</a></code>, <code title="event-appcache-updateready"><a href="#event-appcache-updateready">updateready</a></code>
                   11493:     </td></tr><tr><td> <dfn id="event-appcache-cached" title="event-appcache-cached"><code>cached</code></dfn>
                   11494:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   11495:      </td><td> The resources listed in the manifest have been downloaded, and the application is now cached.
                   11496:      </td><td> Last event in sequence.
                   11497:     </td></tr><tr><td> <dfn id="event-appcache-updateready" title="event-appcache-updateready"><code>updateready</code></dfn>
                   11498:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   11499:      </td><td> The resources listed in the manifest have been newly redownloaded, and the script can use <code title="dom-appcache-swapCache"><a href="#dom-appcache-swapcache">swapCache()</a></code> to switch to the new cache.
                   11500:      </td><td> Last event in sequence.
                   11501:     </td></tr><tr><td> <dfn id="event-appcache-obsolete" title="event-appcache-obsolete"><code>obsolete</code></dfn>
                   11502:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   11503:      </td><td> The manifest was found to have become a 404 or 410 page, so the application cache is being deleted.
                   11504:      </td><td> Last event in sequence.
                   11505:     </td></tr><tr><td rowspan="4"> <dfn id="event-appcache-error" title="event-appcache-error"><code>error</code></dfn>
                   11506:      </td><td rowspan="4"> <code><a href="infrastructure.html#event">Event</a></code>
                   11507:      </td><td> The manifest was a 404 or 410 page, so the attempt to cache the application has been aborted.
                   11508:      </td><td rowspan="3"> Last event in sequence.
                   11509:     </td></tr><tr><td> The manifest hadn't changed, but the page referencing the manifest failed to download properly.
                   11510:     </td></tr><tr><td> A fatal error occurred while fetching the resources listed in the manifest.
                   11511:     </td></tr><tr><td> The manifest changed while the update was being run.
                   11512:      </td><td> The user agent will try fetching the files again momentarily.
                   11513:   </td></tr></tbody></table><div class="impl">
                   11514: 
                   11515:   <h4 id="appcache"><span class="secno">5.7.2 </span>Application caches</h4> <!--APPCACHE-->
                   11516: 
                   11517:   <p>An <dfn id="application-cache">application cache</dfn> is a set of cached resources
                   11518:   consisting of:</p>
                   11519: 
                   11520:   <ul><li>
                   11521: 
                   11522:     <p>One or more resources (including their out-of-band metadata,
                   11523:     such as HTTP headers, if any), identified by URLs, each falling
                   11524:     into one (or more) of the following categories:</p>
                   11525: 
                   11526:     <dl><dt><dfn id="concept-appcache-master" title="concept-appcache-master">Master entries</dfn>
                   11527: 
                   11528:      </dt><dd><p class="note">These are documents that were added to the
                   11529:      cache because a <a href="#browsing-context">browsing context</a> was <a href="#navigate" title="navigate">navigated</a> to that document and the
                   11530:      document indicated that this was its cache, using the <code title="attr-html-manifest"><a href="the-html-element.html#attr-html-manifest">manifest</a></code> attribute.</p>
                   11531: 
                   11532: 
                   11533:      </dd><dt><dfn id="concept-appcache-manifest" title="concept-appcache-manifest">The manifest</dfn>
                   11534: 
                   11535:      </dt><dd><p class="note">This is the resource corresponding to the URL
                   11536:      that was given in a master entry's <code><a href="the-html-element.html#the-html-element">html</a></code> element's
                   11537:      <code title="attr-html-manifest"><a href="the-html-element.html#attr-html-manifest">manifest</a></code> attribute. The
                   11538:      manifest is fetched and processed during the <a href="#application-cache-download-process">application
                   11539:      cache download process</a>. All the <a href="#concept-appcache-master" title="concept-appcache-master">master entries</a> have the
                   11540:      <a href="#same-origin" title="same origin">same origin</a> as the manifest.</p>
                   11541: 
                   11542: 
                   11543:      </dd><dt><dfn id="concept-appcache-explicit" title="concept-appcache-explicit">Explicit entries</dfn>
                   11544: 
                   11545:      </dt><dd><p class="note">These are the resources that were listed in
                   11546:      the cache's <a href="#concept-appcache-manifest" title="concept-appcache-manifest">manifest</a> in an <a href="#concept-appcache-manifest-explicit" title="concept-appcache-manifest-explicit">explicit
                   11547:      section</a>.</p>
                   11548: 
                   11549: 
                   11550:      </dd><dt><dfn id="concept-appcache-fallback" title="concept-appcache-fallback">Fallback entries</dfn>
                   11551: 
                   11552:      </dt><dd><p class="note">These are the resources that were listed in
                   11553:      the cache's <a href="#concept-appcache-manifest" title="concept-appcache-manifest">manifest</a> in a <a href="#concept-appcache-manifest-fallback" title="concept-appcache-manifest-fallback">fallback
                   11554:      section</a>.</p>
                   11555: 
                   11556: 
                   11557:     </dd></dl><p><a href="#concept-appcache-explicit" title="concept-appcache-explicit">Explicit entries</a>
                   11558:     and <a href="#concept-appcache-fallback" title="concept-appcache-fallback">Fallback
                   11559:     entries</a> can be marked as <dfn id="concept-appcache-foreign" title="concept-appcache-foreign">foreign</dfn>, which means that
                   11560:     they have a <code title="attr-html-manifest"><a href="the-html-element.html#attr-html-manifest">manifest</a></code>
                   11561:     attribute but that it doesn't point at this cache's <a href="#concept-appcache-manifest" title="concept-appcache-manifest">manifest</a>.</p>
                   11562: 
                   11563:     <p class="note">A URL in the list can be flagged with multiple
                   11564:     different types, and thus an entry can end up being categorized as
                   11565:     multiple entries. For example, an entry can be a manifest entry
                   11566:     and an explicit entry at the same time, if the manifest is listed
                   11567:     within the manifest.</p>
                   11568: 
                   11569:    </li>
                   11570: 
                   11571:    <li>
                   11572: 
                   11573:     <p>Zero or more <dfn id="concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">fallback
                   11574:     namespaces</dfn>, each of which is mapped to a <a href="#concept-appcache-fallback" title="concept-appcache-fallback">fallback entry</a>.</p>
                   11575: 
                   11576:     <p class="note">These are URLs used as <a href="#concept-appcache-matches-fallback" title="concept-appcache-matches-fallback">prefix match
                   11577:     patterns</a> for resources that are to be fetched from the
                   11578:     network if possible, or to be replaced by the corresponding <a href="#concept-appcache-fallback" title="concept-appcache-fallback">fallback entry</a> if not.
                   11579:     Each namespace URL has the <a href="#same-origin">same origin</a> as <a href="#concept-appcache-manifest" title="concept-appcache-manifest">the manifest</a>.</p>
                   11580: 
                   11581:    </li>
                   11582: 
                   11583:    <li>
                   11584: 
                   11585:     <p>Zero or more URLs that form the <dfn id="concept-appcache-onlinewhitelist" title="concept-appcache-onlinewhitelist">online whitelist
                   11586:     namespaces</dfn>.</p>
                   11587: 
                   11588:     <p class="note">These are used as prefix match patterns, and
                   11589:     declare URLs for which the user agent will ignore the application
                   11590:     cache, instead fetching them normally (i.e. from the network or
                   11591:     local HTTP cache as appropriate).</p>
                   11592: 
                   11593:    </li>
                   11594: 
                   11595:    <li>
                   11596: 
                   11597:     <p>An <dfn id="concept-appcache-onlinewhitelist-wildcard" title="concept-appcache-onlinewhitelist-wildcard">online whitelist
                   11598:     wildcard flag</dfn>, which is either <i title="">open</i> or <i title="">blocking</i>.</p>
                   11599: 
                   11600:     <p class="note">The <i title="">open</i> state indicates that any
                   11601:     URL not listed as cached is to be implicitly treated as being in
                   11602:     the <a href="#concept-appcache-onlinewhitelist" title="concept-appcache-onlinewhitelist">online
                   11603:     whitelist namespaces</a>; the <i title="">blocking</i> state
                   11604:     indicates that URLs not listed explicitly in the manifest are to
                   11605:     be treated as unavailable.</p>
                   11606: 
                   11607:    </li>
                   11608: 
                   11609:    <li>
                   11610: 
                   11611:     <p>A <dfn id="concept-appcache-mode" title="concept-appcache-mode">cache mode flag</dfn>,
                   11612:     which is 
                   11613: <!--FORK--><!--APPCACHE-PREFER-ONLINE-->
                   11614:     in the <dfn id="concept-appcache-mode-fast" title="concept-appcache-mode-fast"><i>fast</i></dfn>
                   11615: <!--FORK--><!--APPCACHE-PREFER-ONLINE-->
                   11616:     state.</p>
                   11617: 
                   11618:    </li>
                   11619: 
                   11620:   </ul><p>Each <a href="#application-cache">application cache</a> has a <dfn id="concept-appcache-completeness" title="concept-appcache-completeness">completeness flag</dfn>, which is
                   11621:   either <i>complete</i> or <i>incomplete</i>.</p>
                   11622: 
                   11623:   <hr><p>An <dfn id="application-cache-group">application cache group</dfn> is a group of <a href="#application-cache" title="application cache">application caches</a>, identified by
                   11624:   the <a href="urls.html#absolute-url">absolute URL</a> of a resource <a href="#concept-appcache-manifest" title="concept-appcache-manifest">manifest</a> which is used to
                   11625:   populate the caches in the group.</p>
                   11626: 
                   11627:   <p>An <a href="#application-cache">application cache</a> is <dfn id="concept-appcache-newer" title="concept-appcache-newer">newer</dfn> than another if it was
                   11628:   created after the other (in other words, <a href="#application-cache" title="application
                   11629:   cache">application caches</a> in an <a href="#application-cache-group">application cache
                   11630:   group</a> have a chronological order).</p>
                   11631: 
                   11632:   <p>Only the newest <a href="#application-cache">application cache</a> in an
                   11633:   <a href="#application-cache-group">application cache group</a> can have its <a href="#concept-appcache-completeness" title="concept-appcache-completeness">completeness flag</a> set to
                   11634:   <i>incomplete</i>; the others are always all <i>complete</i>.</p>
                   11635: 
                   11636:   <p>Each <a href="#application-cache-group">application cache group</a> has an <dfn id="concept-appcache-status" title="concept-appcache-status">update status</dfn>, which is one of
                   11637:   the following: <i>idle</i>, <i>checking</i>, <i>downloading</i>.</p>
                   11638: 
                   11639:   <p>A <dfn id="relevant-application-cache">relevant application cache</dfn> is an <a href="#application-cache">application
                   11640:   cache</a> that is the <a href="#concept-appcache-newer" title="concept-appcache-newer">newest</a> in its <a href="#application-cache-group" title="application cache group">group</a> to be
                   11641:   <i>complete</i>.</p>
                   11642: 
                   11643:   <p>Each <a href="#application-cache-group">application cache group</a> has a <dfn id="concept-appcache-pending-masters" title="concept-appcache-pending-masters">list of pending master
                   11644:   entries</dfn>. Each entry in this list consists of a resource and a
                   11645:   corresponding <code><a href="dom.html#document">Document</a></code> object. It is used during the
                   11646:   <a href="#application-cache-download-process">application cache download process</a> to ensure that new
                   11647:   master entries are cached even if the <a href="#application-cache-download-process">application cache
                   11648:   download process</a> was already running for their
                   11649:   <a href="#application-cache-group">application cache group</a> when they were loaded.</p>
                   11650: 
                   11651:   <p>An <a href="#application-cache-group">application cache group</a> can be marked as <dfn id="concept-appcache-obsolete" title="concept-appcache-obsolete">obsolete</dfn>, meaning that it
                   11652:   must be ignored when looking at what <a href="#application-cache-group" title="application cache
                   11653:   group">application cache groups</a> exist.</p>
                   11654: 
                   11655:   <hr><p>A <dfn id="cache-host">cache host</dfn> is a <code><a href="dom.html#document">Document</a></code> or a
                   11656:   <code>SharedWorkerGlobalScope</code> object. A <a href="#cache-host">cache
                   11657:   host</a> can be associated with an <a href="#application-cache">application
                   11658:   cache</a>.
                   11659:     <a href="#refsWEBWORKERS">[WEBWORKERS]</a>
                   11660:     </p>
                   11661: 
                   11662:   <p>A <code><a href="dom.html#document">Document</a></code> initially is not associated with an
                   11663:   <a href="#application-cache">application cache</a>, but can become associated with one
                   11664:   early during the page load process, when steps <a href="#parser-appcache">in the parser</a> and in the <a href="#navigate" title="navigate">navigation</a> sections cause <a href="#concept-appcache-init" title="concept-appcache-init">cache selection</a> to occur.</p>
                   11665: 
                   11666:   <p>A <code>SharedWorkerGlobalScope</code> can be associated with an
                   11667:   <a href="#application-cache">application cache</a> when it is created.
                   11668:     <a href="#refsWEBWORKERS">[WEBWORKERS]</a>
                   11669:     </p>
                   11670: 
                   11671:   <p>Each <a href="#cache-host">cache host</a> has an associated
                   11672:   <code><a href="#applicationcache">ApplicationCache</a></code> object.</p>
                   11673: 
                   11674:   <hr><p>Multiple <a href="#application-cache" title="application cache">application
                   11675:   caches</a> in different <a href="#application-cache-group" title="application cache
                   11676:   group">application cache groups</a> can contain the same
                   11677:   resource, e.g. if the manifests all reference that resource. If the
                   11678:   user agent is to <dfn id="concept-appcache-selection" title="concept-appcache-selection">select an
                   11679:   application cache</dfn> from a list of <a href="#relevant-application-cache" title="relevant
                   11680:   application cache">relevant application caches</a> that contain a
                   11681:   resource, the user agent must use the application cache that the
                   11682:   user most likely wants to see the resource from, taking into account
                   11683:   the following:</p>
                   11684: 
                   11685:   <ul><li>which application cache was most recently updated,
                   11686: 
                   11687:    </li><li>which application cache was being used to display the
                   11688:    resource from which the user decided to look at the new resource,
                   11689:    and
                   11690: 
                   11691:    </li><li>which application cache the user prefers.
                   11692: 
                   11693:   </li></ul><hr><p>A URL <dfn id="concept-appcache-matches-fallback" title="concept-appcache-matches-fallback">matches a
                   11694:   fallback namespace</dfn> if there exists a <a href="#relevant-application-cache">relevant
                   11695:   application cache</a> whose <a href="#concept-appcache-manifest" title="concept-appcache-manifest">manifest</a>'s URL has the
                   11696:   <a href="#same-origin">same origin</a> as the URL in question, and that has a
                   11697:   <a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">fallback namespace</a>
                   11698:   that is a <a href="infrastructure.html#prefix-match">prefix match</a> for the URL being examined. If
                   11699:   multiple fallback namespaces match the same URL, the longest one is
                   11700:   the one that matches. A URL looking for a fallback namespace can
                   11701:   match more than one application cache at a time, but only matches
                   11702:   one namespace in each cache.</p>
                   11703: 
                   11704:   <div class="example">
                   11705: 
                   11706:    <p>If a manifest <code title="">http://example.com/app1/manifest</code> declares that
                   11707:    <code title="">http://example.com/resources/images</code> is a
                   11708:    fallback namespace, and the user navigates to <code title="">HTTP://EXAMPLE.COM:80/resources/images/cat.png</code>,
                   11709:    then the user agent will decide that the application cache
                   11710:    identified by <code title="">http://example.com/app1/manifest</code> contains a
                   11711:    namespace with a match for that URL.</p>
                   11712: 
                   11713:    <!-- "resolve a url" canonicalises the case for the scheme and host
                   11714:    and removes the port if it is the default -->
                   11715: 
                   11716:   </div>
                   11717: 
                   11718:   </div>
                   11719: 
                   11720: 
                   11721: 
                   11722:   <h4 id="manifests"><span class="secno">5.7.3 </span>The cache manifest syntax</h4>
                   11723: 
                   11724: 
                   11725:   <h5 id="some-sample-manifests"><span class="secno">5.7.3.1 </span>Some sample manifests</h5>
                   11726: 
                   11727:   <p><i>This section is non-normative.</i></p>
                   11728:   <div class="example">
                   11729: 
                   11730:    <p>This example manifest requires two images and a style sheet to be
                   11731:    cached and whitelists a CGI script.</p>
                   11732: 
                   11733:    <pre>CACHE MANIFEST
                   11734: # the above line is required
                   11735: 
                   11736: # this is a comment
                   11737: # there can be as many of these anywhere in the file
                   11738: # they are all ignored
                   11739:   # comments can have spaces before them
                   11740:   # but must be alone on the line
                   11741: 
                   11742: # blank lines are ignored too
                   11743: 
                   11744: # these are files that need to be cached they can either be listed
                   11745: # first, or a "CACHE:" header could be put before them, as is done
                   11746: # lower down.
                   11747: images/sound-icon.png
                   11748: images/background.png
                   11749: # note that each file has to be put on its own line
                   11750: 
                   11751: # here is a file for the online whitelist -- it isn't cached, and
                   11752: # references to this file will bypass the cache, always hitting the
                   11753: # network (or trying to, if the user is offline).
                   11754: NETWORK:
                   11755: comm.cgi
                   11756: 
                   11757: # here is another set of files to cache, this time just the CSS file.
                   11758: CACHE:
                   11759: style/default.css</pre>
                   11760: 
                   11761:    <p>It could equally well be written as follows:</p>
                   11762: 
                   11763:    <pre>CACHE MANIFEST
                   11764: NETWORK:
                   11765: comm.cgi
                   11766: CACHE:
                   11767: style/default.css
                   11768: images/sound-icon.png
                   11769: images/background.png</pre>
                   11770: 
                   11771:   </div>
                   11772: 
                   11773:   <div class="example">
                   11774: 
                   11775:    <p>Offline application cache manifests can use absolute paths or
                   11776:    even absolute URLs:</p>
                   11777: 
                   11778:    <pre>CACHE MANIFEST
                   11779: 
                   11780: /main/home
                   11781: /main/app.js
                   11782: /settings/home
                   11783: /settings/app.js
                   11784: http://img.example.com/logo.png
                   11785: http://img.example.com/check.png
                   11786: http://img.example.com/cross.png</pre>
                   11787: 
                   11788:   </div>
                   11789: 
                   11790:   <div class="example">
                   11791: 
                   11792:    <p>The following manifest defines a catch-all error page that is
                   11793:    displayed for any page on the site while the user is offline. It
                   11794:    also specifies that the <a href="#concept-appcache-onlinewhitelist-wildcard" title="concept-appcache-onlinewhitelist-wildcard">online whitelist
                   11795:    wildcard flag</a> is <i title="">open</i>, meaning that accesses
                   11796:    to resources on other sites will not be blocked. (Resources on the
                   11797:    same site are already not blocked because of the catch-all fallback
                   11798:    namespace.)</p>
                   11799: 
                   11800:    <p>So long as all pages on the site reference this manifest, they
                   11801:    will get cached locally as they are fetched, so that subsequent hits
                   11802:    to the same page will load the page immediately from the
                   11803:    cache. Until the manifest is changed, those pages will not be
                   11804:    fetched from the server again. When the manifest changes, then all
                   11805:    the files will be redownloaded.</p>
                   11806: 
                   11807:    <p>Subresources, such as style sheets, images, etc, would only be
                   11808:    cached using the regular HTTP caching semantics, however.</p>
                   11809: 
                   11810:    <pre>CACHE MANIFEST
                   11811: FALLBACK:
                   11812: / /offline.html
                   11813: NETWORK:
                   11814: *</pre>
                   11815: 
                   11816:   </div>
                   11817: 
                   11818: 
                   11819: 
                   11820:   <h5 id="writing-cache-manifests"><span class="secno">5.7.3.2 </span>Writing cache manifests</h5>
                   11821: 
                   11822:   <p>Manifests must be served using the
                   11823:   <code><a href="#text/cache-manifest">text/cache-manifest</a></code> <a href="infrastructure.html#mime-type">MIME type</a>. All
                   11824:   resources served using the <code><a href="#text/cache-manifest">text/cache-manifest</a></code>
                   11825:   <a href="infrastructure.html#mime-type">MIME type</a> must follow the syntax of application cache
                   11826:   manifests, as described in this section.</p>
                   11827: 
                   11828:   <p>An application cache manifest is a text file, whose text is
                   11829:   encoded using UTF-8. Data in application cache manifests is
                   11830:   line-based. Newlines must be represented by "LF" (U+000A)
                   11831:   characters, "CR" (U+000D) characters, or "CR" (U+000D) "LF" (U+000A) pairs. <a href="#refsRFC3629">[RFC3629]</a></p>
                   11832: 
                   11833:   <p class="note">This is a <a href="introduction.html#willful-violation">willful violation</a> of RFC
                   11834:   2046, which requires all <code title="">text/*</code> types to only
                   11835:   allow CRLF line breaks. This requirement, however, is outdated; the
                   11836:   use of CR, LF, and CRLF line breaks is commonly supported and indeed
                   11837:   sometimes CRLF is <em>not</em> supported by text editors. <a href="#refsRFC2046">[RFC2046]</a></p>
                   11838: 
                   11839:   <p>The first line of an application cache manifest must consist of
                   11840:   the string "CACHE", a single U+0020 SPACE character, the string
                   11841:   "MANIFEST", and either a U+0020 SPACE character, a "tab" (U+0009) character, a "LF" (U+000A) character, or a
                   11842:   "CR" (U+000D) character. The first line may optionally
                   11843:   be preceded by a "BOM" (U+FEFF) character. If any
                   11844:   other text is found on the first line, it is ignored.</p>
                   11845: 
                   11846:   <p>Subsequent lines, if any, must all be one of the following:</p>
                   11847: 
                   11848:   <dl><dt>A blank line
                   11849:    </dt><dd>
                   11850:     <p>Blank lines must consist of zero or more U+0020 SPACE and
                   11851:     "tab" (U+0009) characters only.</p>
                   11852: 
                   11853:    </dd><dt>A comment
                   11854:    </dt><dd>
                   11855:     <p>Comment lines must consist of zero or more U+0020 SPACE and
                   11856:     "tab" (U+0009) characters, followed by a single
                   11857:     "#" (U+0023) character, followed by zero or more
                   11858:     characters other than "LF" (U+000A) and "CR" (U+000D) characters.</p>
                   11859: 
                   11860:     <p class="note">Comments must be on a line on their own. If they
                   11861:     were to be included on a line with a URL, the "#" would be
                   11862:     mistaken for part of a fragment identifier.</p>
                   11863: 
                   11864:    </dd><dt>A section header
                   11865:    </dt><dd>
                   11866: 
                   11867:     <p>Section headers change the current section. There are four
                   11868:     possible section headers:
                   11869: 
                   11870:     </p><dl><dt><code>CACHE:</code>
                   11871:      </dt><dd>Switches to the <dfn id="concept-appcache-manifest-explicit" title="concept-appcache-manifest-explicit">explicit section</dfn>.
                   11872: 
                   11873:      </dd><dt><code>FALLBACK:</code>
                   11874:      </dt><dd>Switches to the <dfn id="concept-appcache-manifest-fallback" title="concept-appcache-manifest-fallback">fallback section</dfn>.
                   11875: 
                   11876:      </dd><dt><code>NETWORK:</code>
                   11877:      </dt><dd>Switches to the <dfn id="concept-appcache-manifest-network" title="concept-appcache-manifest-network">online whitelist section</dfn>.
                   11878: 
                   11879: <!--FORK--><!--APPCACHE-PREFER-ONLINE-->
                   11880: 
                   11881:     </dd></dl><p>Section header lines must consist of zero or more U+0020 SPACE
                   11882:     and "tab" (U+0009) characters, followed by one
                   11883:     of the names above (including the ":)" (U+003A) character
                   11884:     followed by zero or more U+0020 SPACE and "tab" (U+0009) characters.</p>
                   11885: 
                   11886:     <p>Ironically, by default, the current section is the
                   11887:     <a href="#concept-appcache-manifest-explicit" title="concept-appcache-manifest-explicit">explicit section</a>.</p>
                   11888: 
                   11889:    </dd><dt>Data for the current section
                   11890:    </dt><dd>
                   11891:     <p>The format that data lines must take depends on the current
                   11892:     section.</p>
                   11893: 
                   11894:     <p>When the current section is the <a href="#concept-appcache-manifest-explicit" title="concept-appcache-manifest-explicit">explicit
                   11895:     section</a>, data lines must consist of zero or more U+0020
                   11896:     SPACE and "tab" (U+0009) characters, a
                   11897:     <a href="urls.html#valid-url">valid URL</a> identifying a resource other than the
                   11898:     manifest itself, and then zero or more U+0020 SPACE and "tab" (U+0009) characters.</p>
                   11899: 
                   11900:     <p>When the current section is the <a href="#concept-appcache-manifest-fallback" title="concept-appcache-manifest-fallback">fallback
                   11901:     section</a>, data lines must consist of zero or more U+0020
                   11902:     SPACE and "tab" (U+0009) characters, a
                   11903:     <a href="urls.html#valid-url">valid URL</a> identifying a resource other than the
                   11904:     manifest itself, one or more U+0020 SPACE and "tab" (U+0009) characters, another <a href="urls.html#valid-url">valid URL</a>
                   11905:     identifying a resource other than the manifest itself, and then
                   11906:     zero or more U+0020 SPACE and "tab" (U+0009)
                   11907:     characters.</p>
                   11908: 
                   11909:     <p>When the current section is the <a href="#concept-appcache-manifest-network" title="concept-appcache-manifest-network">online whitelist
                   11910:     section</a>, data lines must consist of zero or more U+0020
                   11911:     SPACE and "tab" (U+0009) characters, either a
                   11912:     single "*" (U+002A) character <!--
                   11913:     concept-appcache-onlinewhitelist-wildcard --> or a <a href="urls.html#valid-url">valid
                   11914:     URL</a> identifying a resource other than the manifest itself,
                   11915:     and then zero or more U+0020 SPACE and "tab" (U+0009) characters.</p>
                   11916: 
                   11917: <!--FORK--><!--APPCACHE-PREFER-ONLINE-->
                   11918: 
                   11919: <!--
                   11920:     <p class="note">The URLs in data lines can't be empty strings,
                   11921:     since those would be relative URLs to the manifest itself. Such
                   11922:     lines would be confused with blank or invalid lines, anyway.</p>
                   11923: -->
                   11924: 
                   11925:   </dd></dl><p>Manifests may contain sections more than once. Sections may be
                   11926:   empty.</p>
                   11927: 
                   11928:   <p>URLs that are to be fallback pages associated with <a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">fallback namespaces</a>, and
                   11929:   those namespaces themselves, must be given in <a href="#concept-appcache-manifest-fallback" title="concept-appcache-manifest-fallback">fallback sections</a>,
                   11930:   with the namespace being the first URL of the data line, and the
                   11931:   corresponding fallback page being the second URL. All the other
                   11932:   pages to be cached must be listed in <a href="#concept-appcache-manifest-explicit" title="concept-appcache-manifest-explicit">explicit
                   11933:   sections</a>.</p>
                   11934: 
                   11935:   <p><a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">Fallback
                   11936:   namespaces</a> and <a href="#concept-appcache-fallback" title="concept-appcache-fallback">fallback entries</a> must have
                   11937:   the <a href="#same-origin">same origin</a> as the manifest itself.</p>
                   11938: 
                   11939:   <p>A <a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">fallback
                   11940:   namespace</a> must not be listed more than once.</p>
                   11941: 
                   11942:   <p>Namespaces that the user agent is to put into the <a href="#concept-appcache-onlinewhitelist" title="concept-appcache-onlinewhitelist">online whitelist</a>
                   11943:   must all be specified in <a href="#concept-appcache-manifest-network" title="concept-appcache-manifest-network">online whitelist
                   11944:   sections</a>. (This is needed for any URL that the page is
                   11945:   intending to use to communicate back to the server.) To specify that
                   11946:   all URLs are automatically whitelisted in this way, a "*" (U+002A) character may be specified as one of the URLs. <!--
                   11947:   concept-appcache-onlinewhitelist-wildcard --></p>
                   11948: 
                   11949:   <p>Authors should not include namespaces in the <a href="#concept-appcache-onlinewhitelist" title="concept-appcache-onlinewhitelist">online whitelist</a> for
                   11950:   which another namespace in the <a href="#concept-appcache-onlinewhitelist" title="concept-appcache-onlinewhitelist">online whitelist</a> is
                   11951:   a <a href="infrastructure.html#prefix-match">prefix match</a>.</p>
                   11952: 
                   11953:   <p>Relative URLs must be given relative to the manifest's own
                   11954:   URL. All URLs in the manifest must have the same <a href="urls.html#url-scheme" title="url-scheme">&lt;scheme&gt;</a> as the manifest itself
                   11955:   (either explicitly or implicitly, through the use of relative
                   11956:   URLs).</p>
                   11957: 
                   11958:   <p>URLs in manifests must not have fragment identifiers (i.e. the
                   11959:   U+0023 NUMBER SIGN character isn't allowed in URLs in
                   11960:   manifests).</p>
                   11961: 
                   11962:   <p><a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">Fallback
                   11963:   namespaces</a> and namespaces in the <a href="#concept-appcache-onlinewhitelist" title="concept-appcache-onlinewhitelist">online whitelist</a> are
                   11964:   matched by <a href="infrastructure.html#prefix-match">prefix match</a>.</p>
                   11965: 
                   11966: 
                   11967:   <div class="impl">
                   11968: 
                   11969:   <h5 id="parsing-cache-manifests"><span class="secno">5.7.3.3 </span>Parsing cache manifests</h5>
                   11970: 
                   11971:   <p>When a user agent is to <dfn id="parse-a-manifest">parse a manifest</dfn>, it means
                   11972:   that the user agent must run the following steps:</p>
                   11973: 
                   11974:   <ol><li><p>The user agent must decode the byte stream corresponding
                   11975:    with the manifest to be parsed <a href="infrastructure.html#decoded-as-utf-8,-with-error-handling" title="decoded as UTF-8, with
                   11976:    error handling">as UTF-8, with error handling</a>. <!--All
                   11977:    U+0000 NULL characters must be replaced by U+FFFD REPLACEMENT
                   11978:    CHARACTERs. (this isn't black-box testable since neither U+0000 nor
                   11979:    U+FFFD are valid anywhere in the syntax and thus both will be
                   11980:    treated the same anyway)--></p></li>
                   11981: 
                   11982:    <li><p>Let <var title="">base URL</var> be the <a href="urls.html#absolute-url">absolute
                   11983:    URL</a> representing the manifest.</p></li>
                   11984: 
                   11985:    <li><p>Let <var title="">explicit URLs</var> be an initially empty
                   11986:    list of <a href="urls.html#absolute-url" title="absolute URL">absolute URLs</a> for <a href="#concept-appcache-explicit" title="concept-appcache-explicit">explicit entries</a>.</p></li>
                   11987: 
                   11988:    <li><p>Let <var title="">fallback URLs</var> be an initially empty
                   11989:    mapping of <a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">fallback
                   11990:    namespaces</a> to <a href="urls.html#absolute-url" title="absolute URL">absolute
                   11991:    URLs</a> for <a href="#concept-appcache-fallback" title="concept-appcache-fallback">fallback
                   11992:    entries</a>.</p></li>
                   11993: 
                   11994:    <li><p>Let <var title="">online whitelist namespaces</var> be an
                   11995:    initially empty list of <a href="urls.html#absolute-url" title="absolute URL">absolute
                   11996:    URLs</a> for an <a href="#concept-appcache-onlinewhitelist" title="concept-appcache-onlinewhitelist">online
                   11997:    whitelist</a>.</p></li>
                   11998: 
                   11999:    <li><p>Let <var title="">online whitelist wildcard flag</var> be <i title="">blocking</i>. <!--
                   12000:    concept-appcache-onlinewhitelist-wildcard --></p></li>
                   12001: 
                   12002:    <li><p>Let <var title="">cache mode flag</var> be <i title="">fast</i>. <!-- concept-appcache-mode-fast --></p></li>
                   12003: 
                   12004:    <li><p>Let <var title="">input</var> be the decoded text of the
                   12005:    manifest's byte stream.</p></li>
                   12006: 
                   12007:    <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the first
                   12008:    character.</p></li>
                   12009: 
                   12010:    <li><p>If <var title="">position</var> is pointing at a "BOM" (U+FEFF) character, then advance <var title="">position</var> to the next character.</p></li>
                   12011: 
                   12012:    <li><p>If the characters starting from <var title="">position</var>
                   12013:    are "CACHE", followed by a U+0020 SPACE character, followed by
                   12014:    "MANIFEST", then advance <var title="">position</var> to the next
                   12015:    character after those. Otherwise, this isn't a cache manifest;
                   12016:    abort this algorithm with a failure while checking for the magic
                   12017:    signature.</p></li>
                   12018: 
                   12019:    <li><p>If the character at <var title="">position</var> is neither
                   12020:    a U+0020 SPACE character, a "tab" (U+0009)
                   12021:    character, "LF" (U+000A) character, nor a "CR" (U+000D) character, then this isn't a cache manifest; abort this
                   12022:    algorithm with a failure while checking for the magic
                   12023:    signature.</p></li>
                   12024: 
                   12025:    <li><p>This is a cache manifest. The algorithm cannot fail beyond
                   12026:    this point (though bogus lines can get ignored).</p></li>
                   12027: 
                   12028:    <li><p><a href="common-microsyntaxes.html#collect-a-sequence-of-characters">Collect a sequence of characters</a> that are
                   12029:    <em>not</em> "LF" (U+000A) or "CR" (U+000D)
                   12030:    characters, and ignore those characters. (Extra text on the first
                   12031:    line, after the signature, is ignored.)</p></li>
                   12032: 
                   12033:    <li><p>Let <var title="">mode</var> be "explicit".</p></li>
                   12034: 
                   12035:    <li><p><i>Start of line</i>: If <var title="">position</var> is
                   12036:    past the end of <var title="">input</var>, then jump to the last
                   12037:    step. Otherwise, <a href="common-microsyntaxes.html#collect-a-sequence-of-characters">collect a sequence of characters</a> that
                   12038:    are "LF" (U+000A), "CR" (U+000D), U+0020
                   12039:    SPACE, or "tab" (U+0009) characters.</p></li>
                   12040:    <!-- strips leading spaces, ignores space-only lines, ignores blank lines -->
                   12041: 
                   12042:    <li><p>Now, <a href="common-microsyntaxes.html#collect-a-sequence-of-characters">collect a sequence of characters</a> that are
                   12043:    <em>not</em> "LF" (U+000A) or "CR" (U+000D)
                   12044:    characters, and let the result be <var title="">line</var>.</p></li>
                   12045: 
                   12046:    <li><p>Drop any trailing U+0020 SPACE and "tab" (U+0009) characters at the end of <var title="">line</var>.</p></li>
                   12047: 
                   12048:    <li><p>If <var title="">line</var> is the empty string, then jump
                   12049:    back to the step labeled "start of line".</p></li>
                   12050: 
                   12051:    <li><p>If the first character in <var title="">line</var> is a
                   12052:    "#" (U+0023) character, then jump back to the step
                   12053:    labeled "start of line".</p></li>
                   12054: 
                   12055:    <li><p>If <var title="">line</var> equals "CACHE:" (the word
                   12056:    "CACHE" followed by a ":)" (U+003A) character, then set <var title="">mode</var> to "explicit" and jump back to the step
                   12057:    labeled "start of line".</p></li>
                   12058: 
                   12059:    <li><p>If <var title="">line</var> equals "FALLBACK:" (the word
                   12060:    "FALLBACK" followed by a ":)" (U+003A) character, then set <var title="">mode</var> to "fallback" and jump back to the step
                   12061:    labeled "start of line".</p></li>
                   12062: 
                   12063:    <li><p>If <var title="">line</var> equals "NETWORK:" (the word
                   12064:    "NETWORK" followed by a ":)" (U+003A) character, then set <var title="">mode</var> to "online whitelist" and jump back to the step
                   12065:    labeled "start of line".</p></li>
                   12066: 
                   12067: <!--FORK--><!--APPCACHE-PREFER-ONLINE-->
                   12068: 
                   12069:    <li><p>If <var title="">line</var> ends with a ":" (U+003A) character, then set <var title="">mode</var> to "unknown" and
                   12070:    jump back to the step labeled "start of line".</p></li>
                   12071: 
                   12072:    <li><p>This is either a data line or it is syntactically
                   12073:    incorrect.</p></li>
                   12074: 
                   12075:    <li><p>Let <var title="">position</var> be a pointer into <var title="">line</var>, initially pointing at the start of the
                   12076:    string.</p></li>
                   12077: 
                   12078:    <li><p>Let <var title="">tokens</var> be a list of strings,
                   12079:    initially empty.</p></li>
                   12080: 
                   12081:    <li>
                   12082: 
                   12083:     <p>While <var title="">position</var> doesn't point past the end
                   12084:     of <var title="">line</var>:</p>
                   12085: 
                   12086:     <ol><li><p>Let <var title="">current token</var> be an empty
                   12087:      string.</p></li>
                   12088: 
                   12089:      <li><p>While <var title="">position</var> doesn't point past the
                   12090:      end of <var title="">line</var> and the character at <var title="">position</var> is neither a U+0020 SPACE nor a "tab" (U+0009) character, add the character at <var title="">position</var> to <var title="">current token</var> and
                   12091:      advance <var title="">position</var> to the next character in
                   12092:      <var title="">input</var>.</p></li>
                   12093: 
                   12094:      <li><p>Add <var title="">current token</var> to the <var title="">tokens</var> list.</p></li>
                   12095: 
                   12096:      <li><p>While <var title="">position</var> doesn't point past the
                   12097:      end of <var title="">line</var> and the character at <var title="">position</var> is either a U+0020 SPACE or a "tab" (U+0009) character, advance <var title="">position</var> to the next character in <var title="">input</var>.</p></li>
                   12098: 
                   12099:     </ol></li>
                   12100: 
                   12101:    <li>
                   12102: 
                   12103:     <p>Process <var title="">tokens</var> as follows:</p>
                   12104: 
                   12105:     <dl class="switch"><dt>If <var title="">mode</var> is "explicit"</dt>
                   12106: 
                   12107:      <dd>
                   12108: 
                   12109:       <p><a href="urls.html#resolve-a-url" title="resolve a url">Resolve</a> the first item in
                   12110:       <var title="">tokens</var>, relative to <var title="">base
                   12111:       URL</var>; ignore the rest.</p>
                   12112: 
                   12113:       <p>If this fails, then jump back to the step labeled "start of
                   12114:       line".</p>
                   12115: 
                   12116:       <p>If the resulting <a href="urls.html#absolute-url">absolute URL</a> has a different
                   12117:       <a href="urls.html#url-scheme" title="url-scheme">&lt;scheme&gt;</a> component than
                   12118:       the manifest's URL (compared in an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   12119:       case-insensitive</a> manner), then jump back to the step
                   12120:       labeled "start of line".</p>
                   12121: 
                   12122:       <p>Drop the <a href="urls.html#url-fragment" title="url-fragment">&lt;fragment&gt;</a>
                   12123:       component of the resulting <a href="urls.html#absolute-url">absolute URL</a>, if it has
                   12124:       one.</p>
                   12125: 
                   12126:       <p>Add the resulting <a href="urls.html#absolute-url">absolute URL</a> to the <var title="">explicit URLs</var>.</p>
                   12127: 
                   12128:      </dd>
                   12129: 
                   12130:      <dt>If <var title="">mode</var> is "fallback"</dt>
                   12131: 
                   12132:      <dd>
                   12133: 
                   12134:       <p>Let <var title="">part one</var> be the first token in <var title="">tokens</var>, and let <var title="">part two</var> be
                   12135:       the second token in <var title="">tokens</var>.</p>
                   12136: 
                   12137:       <p><a href="urls.html#resolve-a-url" title="resolve a url">Resolve</a> <var title="">part
                   12138:       one</var> and <var title="">part two</var>, relative to <var title="">base URL</var>.</p>
                   12139: 
                   12140:       <p>If either fails, then jump back to the step labeled "start of
                   12141:       line".</p>
                   12142: 
                   12143:       <p>If the <a href="urls.html#absolute-url">absolute URL</a> corresponding to either <var title="">part one</var> or <var title="">part two</var> does not
                   12144:       have the <a href="#same-origin">same origin</a> as the manifest's URL, then
                   12145:       jump back to the step labeled "start of line".</p> <!-- SECURITY
                   12146:       -->
                   12147: 
                   12148:       <p>Drop any <a href="urls.html#url-fragment" title="url-fragment">&lt;fragment&gt;</a>
                   12149:       components of the resulting <a href="urls.html#absolute-url" title="absolute URL">absolute
                   12150:       URLs</a>.</p>
                   12151: 
                   12152:       <p>If the <a href="urls.html#absolute-url">absolute URL</a> corresponding to <var title="">part one</var> is already in the <var title="">fallback
                   12153:       URLs</var> mapping as a <a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">fallback namespace</a>,
                   12154:       then jump back to the step labeled "start of line".</p>
                   12155: 
                   12156:       <p>Otherwise, add the <a href="urls.html#absolute-url">absolute URL</a> corresponding to
                   12157:       <var title="">part one</var> to the <var title="">fallback
                   12158:       URLs</var> mapping as a <a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">fallback namespace</a>,
                   12159:       mapped to the <a href="urls.html#absolute-url">absolute URL</a> corresponding to <var title="">part two</var> as the <a href="#concept-appcache-fallback" title="concept-appcache-fallback">fallback entry</a>.</p>
                   12160: 
                   12161:      </dd>
                   12162: 
                   12163:      <dt>If <var title="">mode</var> is "online whitelist"</dt>
                   12164: 
                   12165:      <dd>
                   12166: 
                   12167:       <p>If the first item in <var title="">tokens</var> is a "*" (U+002A) character, then set <var title="">online whitelist
                   12168:       wildcard flag</var> to <i title="">open</i> and jump back to the
                   12169:       step labeled "start of line".</p>
                   12170: 
                   12171:       <p>Otherwise, <a href="urls.html#resolve-a-url" title="resolve a url">resolve</a> the
                   12172:       first item in <var title="">tokens</var>, relative to <var title="">base URL</var>; ignore the rest.</p>
                   12173: 
                   12174:       <p>If this fails, then jump back to the step labeled "start of
                   12175:       line".</p>
                   12176: 
                   12177:       <p>If the resulting <a href="urls.html#absolute-url">absolute URL</a> has a different
                   12178:       <a href="urls.html#url-scheme" title="url-scheme">&lt;scheme&gt;</a> component than
                   12179:       the manifest's URL (compared in an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   12180:       case-insensitive</a> manner), then jump back to the step
                   12181:       labeled "start of line".</p>
                   12182: 
                   12183:       <p>Drop the <a href="urls.html#url-fragment" title="url-fragment">&lt;fragment&gt;</a>
                   12184:       component of the resulting <a href="urls.html#absolute-url">absolute URL</a>, if it has
                   12185:       one.</p>
                   12186: 
                   12187:       <p>Add the resulting <a href="urls.html#absolute-url">absolute URL</a> to the <var title="">online whitelist namespaces</var>.</p>
                   12188: 
                   12189:      </dd>
                   12190: 
                   12191: <!--FORK--><!--APPCACHE-PREFER-ONLINE-->
                   12192: 
                   12193:      <dt>If <var title="">mode</var> is "unknown"</dt>
                   12194: 
                   12195:      <dd>
                   12196: 
                   12197:       <p>Do nothing. The line is ignored.</p>
                   12198: 
                   12199:      </dd>
                   12200: 
                   12201:     </dl></li>
                   12202: 
                   12203:    <li><p>Jump back to the step labeled "start of line". (That step
                   12204:    jumps to the next, and last, step when the end of the file is
                   12205:    reached.)</p></li>
                   12206: 
                   12207:    <li><p>Return the <var title="">explicit URLs</var> list, the <var title="">fallback URLs</var> mapping, the <var title="">online
                   12208:    whitelist namespaces</var>, the <var title="">online whitelist
                   12209:    wildcard flag</var>, and the <var title="">cache mode
                   12210:    flag</var>.</p></li>
                   12211: 
                   12212:   </ol><div class="note">
                   12213: 
                   12214:    <p>The resource that declares the manifest (with the <code title="attr-html-manifest"><a href="the-html-element.html#attr-html-manifest">manifest</a></code> attribute) will always
                   12215:    get taken from the cache, whether it is listed in the cache or not,
                   12216:    even if it is listed in an <a href="#concept-appcache-onlinewhitelist" title="concept-appcache-onlinewhitelist">online whitelist
                   12217:    namespace</a>.</p>
                   12218: 
                   12219:    <p>If a resource is listed in the <a href="#concept-appcache-manifest-explicit" title="concept-appcache-manifest-explicit">explicit section</a>
                   12220:    or as a <a href="#concept-appcache-fallback" title="concept-appcache-fallback">fallback
                   12221:    entry</a> in the <a href="#concept-appcache-manifest-fallback" title="concept-appcache-manifest-fallback">fallback section</a>,
                   12222:    the resource will always be taken from the cache, regardless of any
                   12223:    other matching entries in the <a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">fallback namespaces</a> or
                   12224:    <a href="#concept-appcache-onlinewhitelist" title="concept-appcache-onlinewhitelist">online whitelist
                   12225:    namespaces</a>.</p>
                   12226: 
                   12227:    <p>When a <a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">fallback
                   12228:    namespace</a> and an <a href="#concept-appcache-onlinewhitelist" title="concept-appcache-onlinewhitelist">online whitelist
                   12229:    namespace</a> overlap, the <a href="#concept-appcache-onlinewhitelist" title="concept-appcache-onlinewhitelist">online whitelist
                   12230:    namespace</a> has priority.</p>
                   12231: 
                   12232:    <p>The <a href="#concept-appcache-onlinewhitelist-wildcard" title="concept-appcache-onlinewhitelist-wildcard">online whitelist
                   12233:    wildcard flag</a> is applied last, only for URLs that match
                   12234:    neither the <a href="#concept-appcache-onlinewhitelist" title="concept-appcache-onlinewhitelist">online
                   12235:    whitelist namespace</a> nor the <a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">fallback namespace</a> and
                   12236:    that are not listed in the <a href="#concept-appcache-manifest-explicit" title="concept-appcache-manifest-explicit">explicit
                   12237:    section</a>.</p>
                   12238: 
                   12239:   </div>
                   12240: 
                   12241: 
                   12242:   <h4 id="downloading-or-updating-an-application-cache"><span class="secno">5.7.4 </span>Downloading or updating an application cache</h4>
                   12243: 
                   12244:   <p>When the user agent is required (by other parts of this
                   12245:   specification) to start the <dfn id="application-cache-download-process">application cache download
                   12246:   process</dfn> for an <a href="urls.html#absolute-url">absolute URL</a> purported to identify
                   12247:   a <a href="#concept-appcache-manifest" title="concept-appcache-manifest">manifest</a>, or for an
                   12248:   <a href="#application-cache-group">application cache group</a>, potentially given a particular
                   12249:   <a href="#cache-host">cache host</a>, and potentially given a <a href="#concept-appcache-master" title="concept-appcache-master">master</a> resource, the user
                   12250:   agent must run the steps below. These steps are always run
                   12251:   asynchronously, in parallel with the <a href="#event-loop">event loop</a> <a href="#concept-task" title="concept-task">tasks</a>.</p>
                   12252: 
                   12253:   <p>Some of these steps have requirements that only apply if the user
                   12254:   agent <dfn id="shows-caching-progress">shows caching progress</dfn>. Support for this is
                   12255:   optional. Caching progress UI could consist of a progress bar or
                   12256:   message panel in the user agent's interface, or an overlay, or
                   12257:   something else. Certain events fired during the <a href="#application-cache-download-process">application
                   12258:   cache download process</a> allow the script to override the display
                   12259:   of such an interface. The goal of this is to allow Web applications
                   12260:   to provide more seamless update mechanisms, hiding from the user the
                   12261:   mechanics of the application cache mechanism. User agents may
                   12262:   display user interfaces independent of this, but are encouraged to
                   12263:   not show prominent update progress notifications for applications
                   12264:   that cancel the relevant events.</p>
                   12265: 
                   12266:   <p class="note">These events are delayed until after the <code title="event-load">load</code> event has fired.</p>
                   12267: 
                   12268:   <p>The <a href="#application-cache-download-process">application cache download process</a> steps are as
                   12269:   follows:
                   12270: 
                   12271:   </p><ol><li><p>Optionally, wait until the permission to start the
                   12272:    <a href="#application-cache-download-process">application cache download process</a> has been obtained
                   12273:    from the user and until the user agent is confident that the
                   12274:    network is available. This could include doing nothing until the
                   12275:    user explicitly opts-in to caching the site, or could involve
                   12276:    prompting the user for permission. The algorithm might never get
                   12277:    past this point. (This step is particularly intended to be used by
                   12278:    user agents running on severely space-constrained devices or in
                   12279:    highly privacy-sensitive environments).</p></li>
                   12280: 
                   12281:    <li>
                   12282: 
                   12283:     <p>Atomically, so as to avoid race conditions, perform the
                   12284:     following substeps:</p>
                   12285: 
                   12286:     <ol><li>
                   12287: 
                   12288:       <p>Pick the appropriate substeps:</p>
                   12289: 
                   12290:       <dl class="switch"><dt>If these steps were invoked with an <a href="urls.html#absolute-url">absolute
                   12291:        URL</a> purported to identify a <a href="#concept-appcache-manifest" title="concept-appcache-manifest">manifest</a></dt>
                   12292: 
                   12293:        <dd>
                   12294: 
                   12295:         <p>Let <var title="">manifest URL</var> be that <a href="urls.html#absolute-url">absolute
                   12296:         URL</a>.</p>
                   12297: 
                   12298:         <p>If there is no <a href="#application-cache-group">application cache group</a>
                   12299:         identified by <var title="">manifest URL</var>, then create a
                   12300:         new <a href="#application-cache-group">application cache group</a> identified by <var title="">manifest URL</var>. Initially, it has no <a href="#application-cache" title="application cache">application caches</a>. One will
                   12301:         be created later in this algorithm.</p>
                   12302: 
                   12303:        </dd>
                   12304: 
                   12305: 
                   12306:        <dt>If these steps were invoked with an <a href="#application-cache-group">application cache
                   12307:        group</a></dt>
                   12308: 
                   12309:        <dd>
                   12310: 
                   12311:         <p>Let <var title="">manifest URL</var> be the <a href="urls.html#absolute-url">absolute
                   12312:         URL</a> of the <a href="#concept-appcache-manifest" title="concept-appcache-manifest">manifest</a> used to
                   12313:         identify the <a href="#application-cache-group">application cache group</a> to be
                   12314:         updated.</p>
                   12315: 
                   12316:         <p>If that <a href="#application-cache-group">application cache group</a> is <a href="#concept-appcache-obsolete" title="concept-appcache-obsolete">obsolete</a>, then abort
                   12317:         this instance of the <a href="#application-cache-download-process">application cache download
                   12318:         process</a>. This can happen if another instance of this
                   12319:         algorithm found the manifest to be 404 or 410 while this
                   12320:         algorithm was waiting in the first step above.</p>
                   12321: 
                   12322:        </dd>
                   12323: 
                   12324:       </dl></li>
                   12325: 
                   12326:      <li><p>Let <var title="">cache group</var> be the
                   12327:      <a href="#application-cache-group">application cache group</a> identified by <var title="">manifest URL</var>.</p></li>
                   12328: 
                   12329:      <li><p>If these steps were invoked with a <a href="#concept-appcache-master" title="concept-appcache-master">master</a> resource, then add
                   12330:      the resource, along with the resource's <code><a href="dom.html#document">Document</a></code>, to
                   12331:      <var title="">cache group</var>'s <a href="#concept-appcache-pending-masters" title="concept-appcache-pending-masters">list of pending master
                   12332:      entries</a>.</p></li>
                   12333: 
                   12334:      <li><p>If these steps were invoked with a <a href="#cache-host">cache
                   12335:      host</a>, and the <a href="#concept-appcache-status" title="concept-appcache-status">status</a> of <var title="">cache group</var> is <i>checking</i> or
                   12336:      <i>downloading</i>, then <a href="#queue-a-post-load-task">queue a post-load task</a> to
                   12337:      <a href="#fire-a-simple-event">fire a simple event</a> named <code title="event-appcache-checking"><a href="#event-appcache-checking">checking</a></code> that is
                   12338:      cancelable at the <code><a href="#applicationcache">ApplicationCache</a></code> singleton of that
                   12339:      <a href="#cache-host">cache host</a>. The default action of this event must
                   12340:      be, if the user agent <a href="#shows-caching-progress">shows caching progress</a>, the
                   12341:      display of some sort of user interface indicating to the user
                   12342:      that the user agent is checking to see if it can download the
                   12343:      application.</p></li>
                   12344: 
                   12345:      <li><p>If these steps were invoked with a <a href="#cache-host">cache
                   12346:      host</a>, and the <a href="#concept-appcache-status" title="concept-appcache-status">status</a> of <var title="">cache group</var> is <i>downloading</i>, then also
                   12347:      <a href="#queue-a-post-load-task">queue a post-load task</a> to <a href="#fire-a-simple-event">fire a simple
                   12348:      event</a> named <code title="event-appcache-downloading"><a href="#event-appcache-downloading">downloading</a></code> that is
                   12349:      cancelable at the <code><a href="#applicationcache">ApplicationCache</a></code> singleton of that
                   12350:      <a href="#cache-host">cache host</a>. The default action of this event must
                   12351:      be, if the user agent <a href="#shows-caching-progress">shows caching progress</a>, the
                   12352:      display of some sort of user interface indicating to the user the
                   12353:      application is being downloaded.</p></li>
                   12354: 
                   12355:      <li><p>If the <a href="#concept-appcache-status" title="concept-appcache-status">status</a>
                   12356:      of the <var title="">cache group</var> is either <i>checking</i>
                   12357:      or <i>downloading</i>, then abort this instance of the
                   12358:      <a href="#application-cache-download-process">application cache download process</a>, as an update is
                   12359:      already in progress.</p></li>
                   12360: 
                   12361:      <li><p>Set the <a href="#concept-appcache-status" title="concept-appcache-status">status</a> of <var title="">cache group</var> to <i>checking</i>.</p>
                   12362: 
                   12363:      </li><li><p>For each <a href="#cache-host">cache host</a> associated with an
                   12364:      <a href="#application-cache">application cache</a> in <var title="">cache
                   12365:      group</var>, <a href="#queue-a-post-load-task">queue a post-load task</a> to <a href="#fire-a-simple-event">fire a
                   12366:      simple event</a> that is cancelable named <code title="event-appcache-checking"><a href="#event-appcache-checking">checking</a></code> at the
                   12367:      <code><a href="#applicationcache">ApplicationCache</a></code> singleton of the <a href="#cache-host">cache
                   12368:      host</a>. The default action of these events must be, if the
                   12369:      user agent <a href="#shows-caching-progress">shows caching progress</a>, the display of
                   12370:      some sort of user interface indicating to the user that the user
                   12371:      agent is checking for the availability of updates.</p></li>
                   12372: 
                   12373:     </ol><p class="note">The remainder of the steps run asynchronously.</p>
                   12374: 
                   12375:     <p>If <var title="">cache group</var> already has an
                   12376:     <a href="#application-cache">application cache</a> in it, then this is an <dfn id="concept-appcache-upgrade" title="concept-appcache-upgrade">upgrade attempt</dfn>. Otherwise,
                   12377:     this is a <dfn id="concept-appcache-cache" title="concept-appcache-cache">cache
                   12378:     attempt</dfn>.</p>
                   12379: 
                   12380:    </li>
                   12381: 
                   12382:    <li><p>If this is a <a href="#concept-appcache-cache" title="concept-appcache-cache">cache
                   12383:    attempt</a>, then this algorithm was invoked with a <a href="#cache-host">cache
                   12384:    host</a>; <a href="#queue-a-post-load-task">queue a post-load task</a> to <a href="#fire-a-simple-event">fire a
                   12385:    simple event</a> named <code title="event-appcache-checking"><a href="#event-appcache-checking">checking</a></code> that is cancelable
                   12386:    at the <code><a href="#applicationcache">ApplicationCache</a></code> singleton of that <a href="#cache-host">cache
                   12387:    host</a>. The default action of this event must be, if the user
                   12388:    agent <a href="#shows-caching-progress">shows caching progress</a>, the display of some sort
                   12389:    of user interface indicating to the user that the user agent is
                   12390:    checking for the availability of updates.</p></li>
                   12391: 
                   12392:    <li>
                   12393: 
1.191     sruby    12394:     <p><i>Fetching the manifest</i>: <a href="urls.html#fetch">Fetch</a><!--FETCH-->
                   12395:     the resource from <var title="">manifest URL</var> with the
                   12396:     <i>synchronous flag</i> set, and let <var title="">manifest</var>
                   12397:     be that resource. HTTP caching semantics should be honored for
                   12398:     this request.</p> <!-- http-origin privacy sensitive, though it
                   12399:     doesn't matter, since this can never be cross-origin -->
1.190     sruby    12400: 
                   12401:     <p>Parse <var title="">manifest</var> according to the <a href="#parse-a-manifest" title="parse a manifest">rules for parsing manifests</a>,
                   12402:     obtaining a list of <a href="#concept-appcache-explicit" title="concept-appcache-explicit">explicit entries</a>, <a href="#concept-appcache-fallback" title="concept-appcache-fallback">fallback entries</a> and the
                   12403:     <a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">fallback
                   12404:     namespaces</a> that map to them, entries for the <a href="#concept-appcache-onlinewhitelist" title="concept-appcache-onlinewhitelist">online whitelist</a>,
                   12405:     and values for the <a href="#concept-appcache-onlinewhitelist-wildcard" title="concept-appcache-onlinewhitelist-wildcard">online whitelist
                   12406:     wildcard flag</a> and the <a href="#concept-appcache-mode" title="concept-appcache-mode">cache mode flag</a>.</p>
                   12407: 
                   12408:     <p class="note">The <a href="infrastructure.html#mime-type">MIME type</a> of the resource is
                   12409:     ignored &#8212; it is assumed to be
                   12410:     <code><a href="#text/cache-manifest">text/cache-manifest</a></code>. In the future, if new manifest
                   12411:     formats are supported, the different types will probably be
                   12412:     distinguished on the basis of the file signatures (for the current
                   12413:     format, that is the "<code title="">CACHE&#160;MANIFEST</code>"
                   12414:     string at the top of the file).</p>
                   12415: 
                   12416:    </li>
                   12417: 
                   12418:    <li>
                   12419: 
                   12420:     <p>If <i>fetching the manifest</i> fails due to a 404 or 410
                   12421:     response <a href="urls.html#concept-http-equivalent-codes" title="concept-http-equivalent-codes">or
                   12422:     equivalent</a>, then run these substeps:</p>
                   12423: 
                   12424:     <ol><li><p>Mark <var title="">cache group</var> as <a href="#concept-appcache-obsolete" title="concept-appcache-obsolete">obsolete</a>. This <var title="">cache group</var> no longer exists for any purpose other
                   12425:      than the processing of <code><a href="dom.html#document">Document</a></code> objects already
                   12426:      associated with an <a href="#application-cache">application cache</a> in the <var title="">cache group</var>.</p></li>
                   12427: 
                   12428:      <li><p>Let <var title="">task list</var> be an empty list of
                   12429:      <a href="#concept-task" title="concept-task">tasks</a>.</p>
                   12430: 
                   12431:      </li><li><p>For each <a href="#cache-host">cache host</a> associated with an
                   12432:      <a href="#application-cache">application cache</a> in <var title="">cache
                   12433:      group</var>, create a <a href="#concept-task" title="concept-task">task</a> to
                   12434:      <a href="#fire-a-simple-event">fire a simple event</a> named <code title="event-appcache-obsolete"><a href="#event-appcache-obsolete">obsolete</a></code> that is
                   12435:      cancelable at the <code><a href="#applicationcache">ApplicationCache</a></code> singleton of the
                   12436:      <a href="#cache-host">cache host</a>, and append it to <var title="">task
                   12437:      list</var>. The default action of these events must be, if the
                   12438:      user agent <a href="#shows-caching-progress">shows caching progress</a>, the display of
                   12439:      some sort of user interface indicating to the user that the
                   12440:      application is no longer available for offline use.</p></li>
                   12441: 
                   12442:      <li><p>For each entry in <var title="">cache group</var>'s <a href="#concept-appcache-pending-masters" title="concept-appcache-pending-masters">list of pending master
                   12443:      entries</a>, create a <a href="#concept-task" title="concept-task">task</a>
                   12444:      to <a href="#fire-a-simple-event">fire a simple event</a> that is cancelable named
                   12445:      <code title="event-appcache-error"><a href="#event-appcache-error">error</a></code> (not <code title="event-appcache-obsolete"><a href="#event-appcache-obsolete">obsolete</a></code>!) at the
                   12446:      <code><a href="#applicationcache">ApplicationCache</a></code> singleton of the
                   12447:      <code><a href="dom.html#document">Document</a></code> for this entry, if there still is one, and
                   12448:      append it to <var title="">task list</var>. The default action of
                   12449:      this event must be, if the user agent <a href="#shows-caching-progress">shows caching
                   12450:      progress</a>, the display of some sort of user interface
                   12451:      indicating to the user that the user agent failed to save the
                   12452:      application for offline use.</p></li>
                   12453: 
                   12454:      <li><p>If <var title="">cache group</var> has an
                   12455:      <a href="#application-cache">application cache</a> whose <a href="#concept-appcache-completeness" title="concept-appcache-completeness">completeness flag</a> is
                   12456:      <i>incomplete</i>, then discard that <a href="#application-cache">application
                   12457:      cache</a>.</p>
                   12458: 
                   12459:      </li><li><p>If appropriate, remove any user interface indicating that
                   12460:      an update for this cache is in progress.</p></li>
                   12461: 
                   12462:      <li><p>Let the <a href="#concept-appcache-status" title="concept-appcache-status">status</a> of <var title="">cache group</var> be <i>idle</i>.</p></li>
                   12463: 
                   12464:      <li><p>For each <a href="#concept-task" title="concept-task">task</a> in <var title="">task list</var>, <a href="#queue-a-post-load-task" title="queue a post-load
                   12465:      task">queue that task as a post-load task</a>.</p></li>
                   12466: 
                   12467:      <li><p>Abort the <a href="#application-cache-download-process">application cache download
                   12468:      process</a>.</p></li>
                   12469: 
                   12470:     </ol></li>
                   12471: 
                   12472:    <li>
                   12473: 
                   12474:     <p>Otherwise, if <i>fetching the manifest</i> fails in some other
                   12475:     way (e.g. the server returns another 4xx or 5xx response <a href="urls.html#concept-http-equivalent-codes" title="concept-http-equivalent-codes">or equivalent</a>, or
                   12476:     there is a DNS error, or the connection times out, or the user
                   12477:     cancels the download, or the parser for manifests fails when
                   12478:     checking the magic signature), or if the server returned a
                   12479:     redirect, then run the <a href="#cache-failure-steps">cache failure steps</a>. <a href="#refsHTTP">[HTTP]</a></p>
                   12480: 
                   12481:    </li>
                   12482: 
                   12483:    <li>
                   12484: 
                   12485:     <p>If this is an <a href="#concept-appcache-upgrade" title="concept-appcache-upgrade">upgrade
                   12486:     attempt</a> and the newly downloaded <var title="">manifest</var> is byte-for-byte identical to the manifest
                   12487:     found in the <a href="#concept-appcache-newer" title="concept-appcache-newer">newest</a>
                   12488:     <a href="#application-cache">application cache</a> in <var title="">cache group</var>,
                   12489:     or the server reported it as "304 Not Modified" <a href="urls.html#concept-http-equivalent-codes" title="concept-http-equivalent-codes">or equivalent</a>, then
                   12490:     run these substeps:</p>
                   12491: 
                   12492:     <ol><li><p>Let <var title="">cache</var> be the <a href="#concept-appcache-newer" title="concept-appcache-newer">newest</a> <a href="#application-cache">application
                   12493:      cache</a> in <var title="">cache group</var>.</p></li>
                   12494: 
                   12495:      <li><p>Let <var title="">task list</var> be an empty list of
                   12496:      <a href="#concept-task" title="concept-task">tasks</a>.</p>
                   12497: 
                   12498:      </li><li>
                   12499: 
                   12500:       <p>For each entry in <var title="">cache group</var>'s <a href="#concept-appcache-pending-masters" title="concept-appcache-pending-masters">list of pending master
                   12501:       entries</a>, wait for the resource for this entry to have
                   12502:       either completely downloaded or failed.</p>
                   12503: 
                   12504:       <p>If the download failed (e.g. the server returns a 4xx or 5xx
                   12505:       response <a href="urls.html#concept-http-equivalent-codes" title="concept-http-equivalent-codes">or
                   12506:       equivalent</a>, or there is a DNS error, the connection times
                   12507:       out, or the user cancels the download), or if the resource is
                   12508:       labeled with the "no-store" cache directive, then create a <a href="#concept-task" title="concept-task">task</a> to <a href="#fire-a-simple-event">fire a simple
                   12509:       event</a> that is cancelable named <code title="event-appcache-error"><a href="#event-appcache-error">error</a></code> at the
                   12510:       <code><a href="#applicationcache">ApplicationCache</a></code> singleton of the
                   12511:       <code><a href="dom.html#document">Document</a></code> for this entry, if there still is one, and
                   12512:       append it to <var title="">task list</var>. The default action
                   12513:       of this event must be, if the user agent <a href="#shows-caching-progress">shows caching
                   12514:       progress</a>, the display of some sort of user interface
                   12515:       indicating to the user that the user agent failed to save the
                   12516:       application for offline use.</p>
                   12517: 
                   12518:       <p>Otherwise, associate the <code><a href="dom.html#document">Document</a></code> for this entry
                   12519:       with <var title="">cache</var>; store the resource for this
                   12520:       entry in <var title="">cache</var>, if it isn't already there,
                   12521:       and categorize its entry as a <a href="#concept-appcache-master" title="concept-appcache-master">master entry</a>. If the
                   12522:       resource's <a href="urls.html#url">URL</a> has a <a href="urls.html#url-fragment" title="url-fragment">&lt;fragment&gt;</a> component, it must
                   12523:       be removed from the entry in <var title="">cache</var>
                   12524:       (application caches never include fragment identifiers).</p>
                   12525: 
                   12526:      </li>
                   12527: 
                   12528:      <li><p>For each <a href="#cache-host">cache host</a> associated with an
                   12529:      <a href="#application-cache">application cache</a> in <var title="">cache
                   12530:      group</var>, create a <a href="#concept-task" title="concept-task">task</a> to
                   12531:      <a href="#fire-a-simple-event">fire a simple event</a> that is cancelable named <code title="event-appcache-noupdate"><a href="#event-appcache-noupdate">noupdate</a></code> at the
                   12532:      <code><a href="#applicationcache">ApplicationCache</a></code> singleton of the <a href="#cache-host">cache
                   12533:      host</a>, and append it to <var title="">task list</var>. The
                   12534:      default action of these events must be, if the user agent
                   12535:      <a href="#shows-caching-progress">shows caching progress</a>, the display of some sort of
                   12536:      user interface indicating to the user that the application is up
                   12537:      to date.</p></li>
                   12538: 
                   12539:      <li><p>Empty <var title="">cache group</var>'s <a href="#concept-appcache-pending-masters" title="concept-appcache-pending-masters">list of pending master
                   12540:      entries</a>.</p></li>
                   12541: 
                   12542:      <li><p>If appropriate, remove any user interface indicating that
                   12543:      an update for this cache is in progress.</p></li>
                   12544: 
                   12545:      <li><p>Let the <a href="#concept-appcache-status" title="concept-appcache-status">status</a> of <var title="">cache group</var> be <i>idle</i>.</p></li>
                   12546: 
                   12547:      <li><p>For each <a href="#concept-task" title="concept-task">task</a> in <var title="">task list</var>, <a href="#queue-a-post-load-task" title="queue a post-load
                   12548:      task">queue that task as a post-load task</a>.</p></li>
                   12549: 
                   12550:      <li><p>Abort the <a href="#application-cache-download-process">application cache download
                   12551:      process</a>.</p></li>
                   12552: 
                   12553:     </ol></li>
                   12554: 
                   12555:    <li><p>Let <var title="">new cache</var> be a newly created
                   12556:    <a href="#application-cache">application cache</a> in <var title="">cache
                   12557:    group</var>. Set its <a href="#concept-appcache-completeness" title="concept-appcache-completeness">completeness flag</a> to
                   12558:    <i>incomplete</i>.</p></li>
                   12559: 
                   12560:    <li><p>For each entry in <var title="">cache group</var>'s <a href="#concept-appcache-pending-masters" title="concept-appcache-pending-masters">list of pending master
                   12561:    entries</a>, associate the <code><a href="dom.html#document">Document</a></code> for this entry
                   12562:    with <var title="">new cache</var>.</p></li>
                   12563: 
                   12564:    <li><p>Set the <a href="#concept-appcache-status" title="concept-appcache-status">status</a>
                   12565:    of <var title="">cache group</var> to <i>downloading</i>.</p></li>
                   12566: 
                   12567:    <li><p>For each <a href="#cache-host">cache host</a> associated with an
                   12568:    <a href="#application-cache">application cache</a> in <var title="">cache group</var>,
                   12569:    <a href="#queue-a-post-load-task">queue a post-load task</a> to <a href="#fire-a-simple-event">fire a simple
                   12570:    event</a> that is cancelable named <code title="event-appcache-downloading"><a href="#event-appcache-downloading">downloading</a></code> at the
                   12571:    <code><a href="#applicationcache">ApplicationCache</a></code> singleton of the <a href="#cache-host">cache
                   12572:    host</a>. The default action of these events must be, if the
                   12573:    user agent <a href="#shows-caching-progress">shows caching progress</a>, the display of some
                   12574:    sort of user interface indicating to the user that a new version is
                   12575:    being downloaded.</p></li>
                   12576: 
                   12577:    <li><p>Let <var title="">file list</var> be an empty list of
                   12578:    URLs with flags.</p></li>
                   12579: 
                   12580:    <li><p>Add all the URLs in the list of <a href="#concept-appcache-explicit" title="concept-appcache-explicit">explicit entries</a> obtained
                   12581:    by parsing <var title="">manifest</var> to <var title="">file
                   12582:    list</var>, each flagged with "explicit entry".</p></li>
                   12583: 
                   12584:    <li><p>Add all the URLs in the list of <a href="#concept-appcache-fallback" title="concept-appcache-fallback">fallback entries</a> obtained
                   12585:    by parsing <var title="">manifest</var> to <var title="">file
                   12586:    list</var>, each flagged with "fallback entry".</p></li>
                   12587: 
                   12588:    <li><p>If this is an <a href="#concept-appcache-upgrade" title="concept-appcache-upgrade">upgrade
                   12589:    attempt</a>, then add all the URLs of <a href="#concept-appcache-master" title="concept-appcache-master">master entries</a> in the <a href="#concept-appcache-newer" title="concept-appcache-newer">newest</a> <a href="#application-cache">application
                   12590:    cache</a> in <var title="">cache group</var> whose <a href="#concept-appcache-completeness" title="concept-appcache-completeness">completeness flag</a> is
                   12591:    <i>complete</i> to <var title="">file list</var>, each flagged with
                   12592:    "master entry".</p></li>
                   12593: 
                   12594:    <li><p>If any URL is in <var title="">file list</var> more than
                   12595:    once, then merge the entries into one entry for that URL, that
                   12596:    entry having all the flags that the original entries had.</p></li>
                   12597: 
                   12598:    <li>
                   12599: 
                   12600:     <p>For each URL in <var title="">file list</var>, run the
                   12601:     following steps. These steps may be run in parallel for two or
                   12602:     more of the URLs at a time. If, while running these steps, the
                   12603:     <code><a href="#applicationcache">ApplicationCache</a></code> object's <code title="dom-appcache-abort"><a href="#dom-appcache-abort">abort()</a></code> method <a href="#send-a-signal" title="send
                   12604:     a signal">sends a signal</a> to this instance of the
                   12605:     <a href="#application-cache-download-process">application cache download process</a> algorithm, then
                   12606:     run the <a href="#cache-failure-steps">cache failure steps</a> instead.</p>
                   12607: 
                   12608:     <ol><li>
                   12609: 
                   12610:       <p>If the resource URL being processed was flagged as neither an
                   12611:       "explicit entry" nor or a "fallback entry", then the user agent
                   12612:       may skip this URL.</p>
                   12613: 
                   12614:       <p class="note">This is intended to allow user agents to expire
                   12615:       resources not listed in the manifest from the cache. Generally,
                   12616:       implementors are urged to use an approach that expires
                   12617:       lesser-used resources first.</p>
                   12618: 
                   12619:      </li>
                   12620: 
                   12621:      <li><p>For each <a href="#cache-host">cache host</a> associated with an
                   12622:      <a href="#application-cache">application cache</a> in <var title="">cache
                   12623:      group</var>, <a href="#queue-a-post-load-task">queue a post-load task</a> to fire an event
                   12624:      with the name <code title="event-appcache-progress"><a href="#event-appcache-progress">progress</a></code>, which does not
                   12625:      bubble, which is cancelable, and which uses the
                   12626:      <code>ProgressEvent</code> interface, at the
                   12627:      <code><a href="#applicationcache">ApplicationCache</a></code> singleton of the <a href="#cache-host">cache
                   12628:      host</a>. The <code title="dom-ProgressEvents-lengthComputable">lengthComputable</code>
                   12629:      attribute must be set to true, the <code title="dom-ProgressEvents-total">total</code> attribute must be
                   12630:      set to the number of files in <var title="">file list</var>, and
                   12631:      the <code title="dom-ProgressEvents-loaded">loaded</code>
                   12632:      attribute must be set to the number of files in <var title="">file list</var> that have been either downloaded or
                   12633:      skipped so far. The default action of these events must be, if
                   12634:      the user agent <a href="#shows-caching-progress">shows caching progress</a>, the display
                   12635:      of some sort of user interface indicating to the user that a file
                   12636:      is being downloaded in preparation for updating the application.
                   12637:      <a href="#refsPROGRESS">[PROGRESS]</a></p></li>
                   12638: 
                   12639:      <li>
                   12640: 
1.191     sruby    12641:       <p><a href="urls.html#fetch">Fetch</a><!--FETCH--> the resource, from the
                   12642:       <a href="#origin-0">origin</a> of the <a href="urls.html#url">URL</a> <var title="">manifest URL</var>, with the <i>synchronous flag</i>
                   12643:       set and the <i>manual redirect flag</i> set. If this is an <a href="#concept-appcache-upgrade" title="concept-appcache-upgrade">upgrade attempt</a>, then
1.190     sruby    12644:       use the <a href="#concept-appcache-newer" title="concept-appcache-newer">newest</a>
                   12645:       <a href="#application-cache">application cache</a> in <var title="">cache
                   12646:       group</var> as an HTTP cache, and honor HTTP caching semantics
                   12647:       (such as expiration, ETags, and so forth) with respect to that
                   12648:       cache. User agents may also have other caches in place that are
                   12649:       also honored.</p> <!-- not http-origin privacy sensitive -->
                   12650: 
                   12651:       <p class="note">If the resource in question is already being
                   12652:       downloaded for other reasons then the existing download process
                   12653:       can sometimes be used for the purposes of this step, as defined
                   12654:       by the <a href="urls.html#fetch" title="fetch">fetching</a> algorithm.</p>
                   12655: 
                   12656:       <p class="example">An example of a resource that might already
                   12657:       be being downloaded is a large image on a Web page that is being
                   12658:       seen for the first time. The image would get downloaded to
                   12659:       satisfy the <code><a href="the-img-element.html#the-img-element">img</a></code> element on the page, as well as
                   12660:       being listed in the cache manifest. According to the rules for
                   12661:       <a href="urls.html#fetch" title="fetch">fetching</a> that image only need be
                   12662:       downloaded once, and it can be used both for the cache and for
                   12663:       the rendered Web page.</p>
                   12664: 
                   12665:      </li>
                   12666: 
                   12667:      <li>
                   12668: 
                   12669:       <p>If the previous step fails (e.g. the server returns a 4xx or
                   12670:       5xx response <a href="urls.html#concept-http-equivalent-codes" title="concept-http-equivalent-codes">or
                   12671:       equivalent</a>, or there is a DNS error, or the connection
                   12672:       times out, or the user cancels the download), or if the server
                   12673:       returned a redirect, or if the resource is labeled with the
                   12674:       "no-store" cache directive, then run the first appropriate step
                   12675:       from the following list: <a href="#refsHTTP">[HTTP]</a></p>
                   12676: 
                   12677:       <dl class="switch"><dt>If the URL being processed was flagged as an "explicit
                   12678:        entry" or a "fallback entry"</dt>
                   12679: 
                   12680:        <dd>
                   12681: 
                   12682:         <p>If these steps are being run in parallel for any other URLs
                   12683:         in <var title="">file list</var>, then abort these steps for
                   12684:         those other URLs. Run the <a href="#cache-failure-steps">cache failure
                   12685:         steps</a>.</p>
                   12686: 
                   12687:         <p class="note">Redirects are fatal because they are either
                   12688:         indicative of a network problem (e.g. a captive portal); or
                   12689:         would allow resources to be added to the cache under URLs that
                   12690:         differ from any URL that the networking model will allow
                   12691:         access to, leaving orphan entries; or would allow resources to
                   12692:         be stored under URLs different than their true URLs. All of
                   12693:         these situations are bad.</p>
                   12694: 
                   12695:        </dd>
                   12696: 
                   12697:        <dt>If the error was a 404 or 410 HTTP response <a href="urls.html#concept-http-equivalent-codes" title="concept-http-equivalent-codes">or equivalent</a></dt>
                   12698: 
                   12699:        <dt>If the resource was labeled with the "no-store" cache
                   12700:        directive</dt>
                   12701: 
                   12702:        <dd>
                   12703: 
                   12704:         <p>Skip this resource. It is dropped from the cache.</p>
                   12705: 
                   12706:        </dd>
                   12707: 
                   12708:        <dt>Otherwise</dt>
                   12709: 
                   12710:        <dd>
                   12711: 
                   12712:         <p>Copy the resource and its metadata from the <a href="#concept-appcache-newer" title="concept-appcache-newer">newest</a> <a href="#application-cache">application
                   12713:         cache</a> in <var title="">cache group</var> whose <a href="#concept-appcache-completeness" title="concept-appcache-completeness">completeness flag</a>
                   12714:         is <i>complete</i>, and act as if that was the fetched
                   12715:         resource, ignoring the resource obtained from the network.</p>
                   12716: 
                   12717:        </dd>
                   12718: 
                   12719:       </dl><p>User agents may warn the user of these errors as an aid to
                   12720:       development.</p>
                   12721: 
                   12722:       <p class="note">These rules make errors for resources listed in
                   12723:       the manifest fatal, while making it possible for other resources
                   12724:       to be removed from caches when they are removed from the server,
                   12725:       without errors, and making non-manifest resources survive
                   12726:       server-side errors.</p>
                   12727: 
                   12728:       <p class="note">Except for the "no-store" directive, HTTP
                   12729:       caching rules that would cause a file to be expired or otherwise
                   12730:       not cached are ignored for the purposes of the <a href="#application-cache-download-process">application
                   12731:       cache download process</a>.</p>
                   12732: 
                   12733:      </li>
                   12734: 
                   12735:      <li>
                   12736: 
                   12737:       <p>Otherwise, the fetching succeeded. Store the resource in
                   12738:       the <var title="">new cache</var>.</p>
                   12739: 
                   12740:       <p>If the user agent is not able to store the resource (e.g.
                   12741:       because of quota restrictions), the user agent may prompt the
                   12742:       user or try to resolve the problem in some other manner (e.g.
                   12743:       automatically pruning content in other caches). If the problem
                   12744:       cannot be resolved, the user agent must run the <a href="#cache-failure-steps">cache
                   12745:       failure steps</a>.</p>
                   12746: 
                   12747:      </li>
                   12748: 
                   12749:      <li><p>If the URL being processed was flagged as an "explicit
                   12750:      entry" in <var title="">file list</var>, then categorize the
                   12751:      entry as an <a href="#concept-appcache-explicit" title="concept-appcache-explicit">explicit
                   12752:      entry</a>.</p></li>
                   12753: 
                   12754:      <li><p>If the URL being processed was flagged as a "fallback
                   12755:      entry" in <var title="">file list</var>, then categorize the
                   12756:      entry as a <a href="#concept-appcache-fallback" title="concept-appcache-fallback">fallback
                   12757:      entry</a>.</p></li>
                   12758: 
                   12759:      <li><p>If the URL being processed was flagged as an "master
                   12760:      entry" in <var title="">file list</var>, then categorize the
                   12761:      entry as a <a href="#concept-appcache-master" title="concept-appcache-master">master
                   12762:      entry</a>.</p></li>
                   12763: 
                   12764:      <li><p>As an optimization, if the resource is an HTML or XML file
                   12765:      whose root element is an <code><a href="the-html-element.html#the-html-element">html</a></code> element with a <code title="attr-html-manifest"><a href="the-html-element.html#attr-html-manifest">manifest</a></code> attribute whose value
                   12766:      doesn't match the manifest URL of the application cache being
                   12767:      processed, then the user agent should mark the entry as being
                   12768:      <a href="#concept-appcache-foreign" title="concept-appcache-foreign">foreign</a>.</p>
                   12769: 
                   12770:     </li></ol></li>
                   12771: 
                   12772:    <li><p>For each <a href="#cache-host">cache host</a> associated with an
                   12773:    <a href="#application-cache">application cache</a> in <var title="">cache group</var>,
                   12774:    <a href="#queue-a-post-load-task">queue a post-load task</a> to fire an event with the name
                   12775:    <code title="event-appcache-progress"><a href="#event-appcache-progress">progress</a></code>, which does
                   12776:    not bubble, which is cancelable, and which uses the
                   12777:    <code>ProgressEvent</code> interface, at the
                   12778:    <code><a href="#applicationcache">ApplicationCache</a></code> singleton of the <a href="#cache-host">cache
                   12779:    host</a>. The <code title="dom-ProgressEvents-lengthComputable">lengthComputable</code>
                   12780:    attribute must be set to true, the <code title="dom-ProgressEvents-total">total</code> and the <code title="dom-ProgressEvents-loaded">loaded</code> attributes must be
                   12781:    set to the number of files in <var title="">file list</var>. The
                   12782:    default action of these events must be, if the user agent
                   12783:    <a href="#shows-caching-progress">shows caching progress</a>, the display of some sort of
                   12784:    user interface indicating to the user that all the files have been
                   12785:    downloaded. <a href="#refsPROGRESS">[PROGRESS]</a></p></li>
                   12786: 
                   12787:    <li><p>Store the list of <a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">fallback namespaces</a>,
                   12788:    and the URLs of the <a href="#concept-appcache-fallback" title="concept-appcache-fallback">fallback entries</a> that they
                   12789:    map to, in <var title="">new cache</var>.</p></li>
                   12790: 
                   12791:    <li><p>Store the URLs that form the new <a href="#concept-appcache-onlinewhitelist" title="concept-appcache-onlinewhitelist">online whitelist</a> in
                   12792:    <var title="">new cache</var>.</p></li>
                   12793: 
                   12794:    <li><p>Store the value of the new <a href="#concept-appcache-onlinewhitelist-wildcard" title="concept-appcache-onlinewhitelist-wildcard">online whitelist
                   12795:    wildcard flag</a> in <var title="">new cache</var>.</p></li>
                   12796: 
                   12797:    <li><p>Store the value of the new <a href="#concept-appcache-mode" title="concept-appcache-mode">cache mode flag</a> in <var title="">new cache</var>.</p></li>
                   12798: 
                   12799:    <li>
                   12800: 
                   12801:     <p>For each entry in <var title="">cache group</var>'s <a href="#concept-appcache-pending-masters" title="concept-appcache-pending-masters">list of pending master
                   12802:     entries</a>, wait for the resource for this entry to have
                   12803:     either completely downloaded or failed.</p>
                   12804: 
                   12805:     <p>If the download failed (e.g. the server returns a 4xx or 5xx
                   12806:     response <a href="urls.html#concept-http-equivalent-codes" title="concept-http-equivalent-codes">or
                   12807:     equivalent</a>, or there is a DNS error, the connection times
                   12808:     out, or the user cancels the download), or if the resource is
                   12809:     labeled with the "no-store" cache directive, then run these
                   12810:     substeps:</p>
                   12811: 
                   12812:     <ol><li><p>Unassociate the <code><a href="dom.html#document">Document</a></code> for this entry from
                   12813:      <var title="">new cache</var>.</p></li>
                   12814: 
                   12815:      <li><p><a href="#queue-a-post-load-task">Queue a post-load task</a> to <a href="#fire-a-simple-event">fire a simple
                   12816:      event</a> that is cancelable named <code title="event-appcache-error"><a href="#event-appcache-error">error</a></code> at the
                   12817:      <code><a href="#applicationcache">ApplicationCache</a></code> singleton of the
                   12818:      <code><a href="dom.html#document">Document</a></code> for this entry, if there still is one. The
                   12819:      default action of this event must be, if the user agent
                   12820:      <a href="#shows-caching-progress">shows caching progress</a>, the display of some sort of
                   12821:      user interface indicating to the user that the user agent failed
                   12822:      to save the application for offline use.</p>
                   12823: 
                   12824:      </li><li>
                   12825: 
                   12826:       <p>If this is a <a href="#concept-appcache-cache" title="concept-appcache-cache">cache
                   12827:       attempt</a> and this entry is the last entry in <var title="">cache group</var>'s <a href="#concept-appcache-pending-masters" title="concept-appcache-pending-masters">list of pending master
                   12828:       entries</a>, then run these further substeps:</p>
                   12829: 
                   12830:       <ol><li><p>Discard <var title="">cache group</var> and its only
                   12831:        <a href="#application-cache">application cache</a>, <var title="">new
                   12832:        cache</var>.</p>
                   12833: 
                   12834:        </li><li><p>If appropriate, remove any user interface indicating
                   12835:        that an update for this cache is in progress.</p></li>
                   12836: 
                   12837:        <li><p>Abort the <a href="#application-cache-download-process">application cache download
                   12838:        process</a>.</p></li>
                   12839: 
                   12840:       </ol></li>
                   12841: 
                   12842:      <li><p>Otherwise, remove this entry from <var title="">cache
                   12843:      group</var>'s <a href="#concept-appcache-pending-masters" title="concept-appcache-pending-masters">list
                   12844:      of pending master entries</a>.</p></li>
                   12845: 
                   12846:     </ol><p>Otherwise, store the resource for this entry in <var title="">new cache</var>, if it isn't already there, and
                   12847:     categorize its entry as a <a href="#concept-appcache-master" title="concept-appcache-master">master entry</a>.</p>
                   12848: 
                   12849:    </li>
                   12850: 
                   12851:    <li>
                   12852: 
1.191     sruby    12853:     <p><a href="urls.html#fetch">Fetch</a><!--FETCH--> the resource from <var title="">manifest URL</var> again, with the <i>synchronous
                   12854:     flag</i> set, and let <var title="">second manifest</var> be that
                   12855:     resource. HTTP caching semantics should again be honored for this
                   12856:     request.</p> <!-- http-origin privacy sensitive, though it doesn't
                   12857:     matter, since this can never be cross-origin -->
1.190     sruby    12858: 
                   12859:     <p class="note">Since caching can be honored, authors are
                   12860:     encouraged to avoid setting the cache headers on the manifest in
                   12861:     such a way that the user agent would simply not contact the
                   12862:     network for this second request; otherwise, the user agent would
                   12863:     not notice if the cache had changed during the cache update
                   12864:     process.</p>
                   12865: 
                   12866:    </li>
                   12867: 
                   12868:    <li>
                   12869: 
                   12870:     <p>If the previous step failed for any reason, or if the fetching
                   12871:     attempt involved a redirect, or if <var title="">second
                   12872:     manifest</var> and <var title="">manifest</var> are not
                   12873:     byte-for-byte identical, then schedule a rerun of the entire
                   12874:     algorithm with the same parameters after a short delay, and run
                   12875:     the <a href="#cache-failure-steps">cache failure steps</a>.</p>
                   12876: 
                   12877:    </li>
                   12878: 
                   12879:    <li>
                   12880: 
                   12881:     <p>Otherwise, store <var title="">manifest</var> in <var title="">new cache</var>, if it's not there already, and
                   12882:     categorize its entry as <a href="#concept-appcache-manifest" title="concept-appcache-manifest">the manifest</a>.</p>
                   12883: 
                   12884:    </li>
                   12885: 
                   12886:    <li><p>Set the <a href="#concept-appcache-completeness" title="concept-appcache-completeness">completeness flag</a> of
                   12887:    <var title="">new cache</var> to <i>complete</i>.</p></li>
                   12888: 
                   12889:    <li><p>Let <var title="">task list</var> be an empty list of <a href="#concept-task" title="concept-task">tasks</a>.</p>
                   12890: 
                   12891:    </li><li>
                   12892: 
                   12893:     <p>If this is a <a href="#concept-appcache-cache" title="concept-appcache-cache">cache
                   12894:     attempt</a>, then for each <a href="#cache-host">cache host</a> associated
                   12895:     with an <a href="#application-cache">application cache</a> in <var title="">cache
                   12896:     group</var>, create a <a href="#concept-task" title="concept-task">task</a> to
                   12897:     <a href="#fire-a-simple-event">fire a simple event</a> that is cancelable named <code title="event-appcache-cached"><a href="#event-appcache-cached">cached</a></code> at the
                   12898:     <code><a href="#applicationcache">ApplicationCache</a></code> singleton of the <a href="#cache-host">cache
                   12899:     host</a>, and append it to <var title="">task list</var>. The
                   12900:     default action of these events must be, if the user agent
                   12901:     <a href="#shows-caching-progress">shows caching progress</a>, the display of some sort of
                   12902:     user interface indicating to the user that the application has
                   12903:     been cached and that they can now use it offline.</p>
                   12904: 
                   12905:     <p>Otherwise, it is an <a href="#concept-appcache-upgrade" title="concept-appcache-upgrade">upgrade attempt</a>. For each
                   12906:     <a href="#cache-host">cache host</a> associated with an <a href="#application-cache">application
                   12907:     cache</a> in <var title="">cache group</var>, create a <a href="#concept-task" title="concept-task">task</a> to <a href="#fire-a-simple-event">fire a simple
                   12908:     event</a> that is cancelable named <code title="event-appcache-updateready"><a href="#event-appcache-updateready">updateready</a></code> at the
                   12909:     <code><a href="#applicationcache">ApplicationCache</a></code> singleton of the <a href="#cache-host">cache
                   12910:     host</a>, and append it to <var title="">task list</var>. The
                   12911:     default action of these events must be, if the user agent
                   12912:     <a href="#shows-caching-progress">shows caching progress</a>, the display of some sort of
                   12913:     user interface indicating to the user that a new version is
                   12914:     available and that they can activate it by reloading the page.</p>
                   12915: 
                   12916:    </li>
                   12917: 
                   12918:    <li><p>If appropriate, remove any user interface indicating that
                   12919:    an update for this cache is in progress.</p></li>
                   12920: 
                   12921:    <li><p>Set the <a href="#concept-appcache-status" title="concept-appcache-status">update
                   12922:    status</a> of <var title="">cache group</var> to
                   12923:    <i>idle</i>.</p></li>
                   12924: 
                   12925:    <li><p>For each <a href="#concept-task" title="concept-task">task</a> in <var title="">task list</var>, <a href="#queue-a-post-load-task" title="queue a post-load
                   12926:    task">queue that task as a post-load task</a>.</p></li>
                   12927: 
                   12928:   </ol><p>The <dfn id="cache-failure-steps">cache failure steps</dfn> are as follows:</p>
                   12929: 
                   12930:   <ol><li><p>Let <var title="">task list</var> be an empty list of <a href="#concept-task" title="concept-task">tasks</a>.</p>
                   12931: 
                   12932:    </li><li>
                   12933: 
                   12934:     <p>For each entry in <var title="">cache group</var>'s <a href="#concept-appcache-pending-masters" title="concept-appcache-pending-masters">list of pending master
                   12935:     entries</a>, run the following further substeps. These steps
                   12936:     may be run in parallel for two or more entries at a time.</p>
                   12937: 
                   12938:     <ol><li><p>Wait for the resource for this entry to have either
                   12939:      completely downloaded or failed.</p>
                   12940: 
                   12941:      </li><li><p>Unassociate the <code><a href="dom.html#document">Document</a></code> for this entry from
                   12942:      its <a href="#application-cache">application cache</a>, if it has one.</p></li>
                   12943: 
                   12944:      <li><p>Create a <a href="#concept-task" title="concept-task">task</a> to
                   12945:      <a href="#fire-a-simple-event">fire a simple event</a> that is cancelable named <code title="event-appcache-error"><a href="#event-appcache-error">error</a></code> at the
                   12946:      <code><a href="#applicationcache">ApplicationCache</a></code> singleton of the
                   12947:      <code><a href="dom.html#document">Document</a></code> for this entry, if there still is one, and
                   12948:      append it to <var title="">task list</var>. The default action of
                   12949:      these events must be, if the user agent <a href="#shows-caching-progress">shows caching
                   12950:      progress</a>, the display of some sort of user interface
                   12951:      indicating to the user that the user agent failed to save the
                   12952:      application for offline use.</p>
                   12953: 
                   12954:     </li></ol></li>
                   12955: 
                   12956:    <li><p>For each <a href="#cache-host">cache host</a> still associated with an
                   12957:    <a href="#application-cache">application cache</a> in <var title="">cache group</var>,
                   12958:    create a <a href="#concept-task" title="concept-task">task</a> to <a href="#fire-a-simple-event">fire a
                   12959:    simple event</a> that is cancelable named <code title="event-appcache-error"><a href="#event-appcache-error">error</a></code> at the
                   12960:    <code><a href="#applicationcache">ApplicationCache</a></code> singleton of the <a href="#cache-host">cache
                   12961:    host</a>, and append it to <var title="">task list</var>. The
                   12962:    default action of these events must be, if the user agent
                   12963:    <a href="#shows-caching-progress">shows caching progress</a>, the display of some sort of
                   12964:    user interface indicating to the user that the user agent failed to
                   12965:    save the application for offline use.</p></li>
                   12966: 
                   12967:    <li><p>Empty <var title="">cache group</var>'s <a href="#concept-appcache-pending-masters" title="concept-appcache-pending-masters">list of pending master
                   12968:    entries</a>.</p></li>
                   12969: 
                   12970:    <li><p>If <var title="">cache group</var> has an <a href="#application-cache">application
                   12971:    cache</a> whose <a href="#concept-appcache-completeness" title="concept-appcache-completeness">completeness flag</a> is
                   12972:    <i>incomplete</i>, then discard that <a href="#application-cache">application
                   12973:    cache</a>.</p>
                   12974: 
                   12975:    </li><li><p>If appropriate, remove any user interface indicating that an
                   12976:    update for this cache is in progress.</p></li>
                   12977: 
                   12978:    <li><p>Let the <a href="#concept-appcache-status" title="concept-appcache-status">status</a>
                   12979:    of <var title="">cache group</var> be <i>idle</i>.</p></li>
                   12980: 
                   12981:    <li><p>If this was a <a href="#concept-appcache-cache" title="concept-appcache-cache">cache
                   12982:    attempt</a>, discard <var title="">cache group</var>
                   12983:    altogether.</p>
                   12984: 
                   12985:    </li><li><p>For each <a href="#concept-task" title="concept-task">task</a> in <var title="">task list</var>, <a href="#queue-a-post-load-task" title="queue a post-load
                   12986:    task">queue that task as a post-load task</a>.</p></li>
                   12987: 
                   12988:    <li><p>Abort the <a href="#application-cache-download-process">application cache download
                   12989:    process</a>.</p></li>
                   12990: 
                   12991:   </ol><p>Attempts to <a href="urls.html#fetch">fetch</a> resources as part of the
                   12992:   <a href="#application-cache-download-process">application cache download process</a> may be done with
                   12993:   cache-defeating semantics, to avoid problems with stale or
                   12994:   inconsistent intermediary caches.</p>
                   12995: 
                   12996:   <hr><p>User agents may invoke the <a href="#application-cache-download-process">application cache download
                   12997:   process</a>, in the background, for any <a href="#application-cache-group">application cache
                   12998:   group</a>, at any time (with no <a href="#cache-host">cache host</a>). This
                   12999:   allows user agents to keep caches primed and to update caches even
                   13000:   before the user visits a site.</p>
                   13001: 
                   13002:   <hr><p>Each <code><a href="dom.html#document">Document</a></code> has a list of <dfn id="pending-application-cache-download-process-tasks">pending application
                   13003:   cache download process tasks</dfn> that is used to delay events
                   13004:   fired by the algorithm above until the document's <code title="event-load">load</code> event has fired. When the
                   13005:   <code><a href="dom.html#document">Document</a></code> is created, the list must be empty.</p>
                   13006: 
                   13007:   <p>When the steps above say to <dfn id="queue-a-post-load-task">queue a post-load task</dfn>
                   13008:   <var title="">task</var>, where <var title="">task</var> is a <a href="#concept-task" title="concept-task">task</a> that dispatches an event on a
                   13009:   target <code><a href="#applicationcache">ApplicationCache</a></code> object <var title="">target</var>, the user agent must run the appropriate steps
                   13010:   from the following list:</p>
                   13011: 
                   13012:   <dl><dt>If <var title="">target</var>'s <code><a href="dom.html#document">Document</a></code> is
                   13013:    <a href="#ready-for-post-load-tasks">ready for post-load tasks</a></dt>
                   13014: 
                   13015:    <dd><p><a href="#queue-a-task" title="queue a task">Queue</a> the task <var title="">task</var>.</p></dd>
                   13016: 
                   13017:    <dt>Otherwise</dt>
                   13018: 
                   13019:    <dd><p>Add <var title="">task</var> to <var title="">target</var>'s
                   13020:    <code><a href="dom.html#document">Document</a></code>'s list of <a href="#pending-application-cache-download-process-tasks">pending application cache
                   13021:    download process tasks</a>.</p></dd>
                   13022: 
                   13023:   </dl><p>The <a href="#task-source">task source</a> for these <a href="#concept-task" title="concept-task">tasks</a> is the <a href="#networking-task-source">networking task
                   13024:   source</a>.</p>
                   13025: 
                   13026: 
                   13027: 
                   13028: 
                   13029:   <h4 id="the-application-cache-selection-algorithm"><span class="secno">5.7.5 </span>The application cache selection algorithm</h4>
                   13030: 
                   13031:   <p>When the <dfn id="concept-appcache-init" title="concept-appcache-init">application cache
                   13032:   selection algorithm</dfn> algorithm is invoked with a
                   13033:   <code><a href="dom.html#document">Document</a></code> <var title="">document</var> and optionally a
                   13034:   manifest <a href="urls.html#url">URL</a> <var title="">manifest URL</var>, the user
                   13035:   agent must run the first applicable set of steps from the following
                   13036:   list:</p>
                   13037: 
                   13038:   <dl class="switch"><dt>If there is a <var title="">manifest URL</var>, and <var title="">document</var> was loaded from an <a href="#application-cache">application
                   13039:    cache</a>, and the URL of the <a href="#concept-appcache-manifest" title="concept-appcache-manifest">manifest</a> of that cache's
                   13040:    <a href="#application-cache-group">application cache group</a> is <em>not</em> the same as
                   13041:    <var title="">manifest URL</var></dt>
                   13042: 
                   13043:    <dd>
                   13044: 
                   13045:     <p>Mark the entry for the resource from which <var title="">document</var> was taken in the <a href="#application-cache">application
                   13046:     cache</a> from which it was loaded as <a href="#concept-appcache-foreign" title="concept-appcache-foreign">foreign</a>.</p>
                   13047: 
                   13048:     <p>Restart the current navigation from the top of the <a href="#navigate" title="navigate">navigation algorithm</a>, undoing any changes
                   13049:     that were made as part of the initial load (changes can be avoided
                   13050:     by ensuring that the step to <a href="#update-the-session-history-with-the-new-page">update the session history with
                   13051:     the new page</a> is only ever completed <em>after</em> this
                   13052:     <a href="#concept-appcache-init" title="concept-appcache-init">application cache selection
                   13053:     algorithm</a> is run, though this is not required).</p>
                   13054: 
                   13055:     <p class="note">The navigation will not result in the same
                   13056:     resource being loaded, because "foreign" entries are never picked
                   13057:     during navigation.</p>
                   13058: 
                   13059:     <p>User agents may notify the user of the inconsistency between
                   13060:     the cache manifest and the document's own metadata, to aid in
                   13061:     application development.</p>
                   13062: 
                   13063:    </dd>
                   13064: 
                   13065: 
                   13066:    <dt>If <var title="">document</var> was loaded from an
                   13067:    <a href="#application-cache">application cache</a>, and that <a href="#application-cache">application
                   13068:    cache</a> still exists (it is not now <a href="#concept-appcache-obsolete" title="concept-appcache-obsolete">obsolete</a>)<!--[redundant],
                   13069:    and either there is no <var title="">manifest URL</var>, or the URL
                   13070:    of the <span title="concept-appcache-manifest">manifest</span> of
                   13071:    the cache's <span>application cache group</span> is the same as
                   13072:    <var title="">manifest URL</var>--></dt>
                   13073: 
                   13074:    <dd>
                   13075: 
                   13076:     <p>Associate <var title="">document</var> with the
                   13077:     <a href="#application-cache">application cache</a> from which it was loaded. Invoke,
                   13078:     in the background, the <a href="#application-cache-download-process">application cache download
                   13079:     process</a> for that <a href="#application-cache">application cache</a>'s
                   13080:     <a href="#application-cache-group">application cache group</a>, with <var title="">document</var> as the <a href="#cache-host">cache host</a>.</p>
                   13081: 
                   13082:    </dd>
                   13083: 
                   13084: 
                   13085:    <dt>If <var title="">document</var> <!--[redundant] was not loaded
                   13086:    from an <span>application cache</span>, but it--> was loaded using
                   13087:    HTTP GET <a href="urls.html#concept-http-equivalent-get" title="concept-http-equivalent-get">or
                   13088:    equivalent</a>, and, there is a <var title="">manifest
                   13089:    URL</var>, and <var title="">manifest URL</var> has the <a href="#same-origin">same
                   13090:    origin</a> as <var title="">document</var></dt>
                   13091: 
                   13092:    <dd>
                   13093: 
                   13094:     <p>Invoke, in the background, the <a href="#application-cache-download-process">application cache download
                   13095:     process</a> for <var title="">manifest URL</var>, with <var title="">document</var> as the <a href="#cache-host">cache host</a> and with
                   13096:     the resource from which <var title="">document</var> was parsed as
                   13097:     the <a href="#concept-appcache-master" title="concept-appcache-master">master</a>
                   13098:     resource.</p>
                   13099: 
                   13100:     <p>If there are <a href="#relevant-application-cache" title="relevant application cache">relevant
                   13101:     application caches</a> that are identified by a URL with the
                   13102:     <a href="#same-origin">same origin</a> as the URL of <var title="">document</var>, and that have this URL as one of their
                   13103:     entries, excluding entries marked as <a href="#concept-appcache-foreign" title="concept-appcache-foreign">foreign</a>, then the user
                   13104:     agent should use the <a href="#concept-appcache-selection" title="concept-appcache-selection">most
                   13105:     appropriate application cache</a> of those that match as an
                   13106:     HTTP cache for any subresource loads. User agents may also have
                   13107:     other caches in place that are also honored.</p>
                   13108: 
                   13109:    </dd>
                   13110: 
                   13111: 
                   13112:    <dt>Otherwise</dt> <!-- not from cache and either no <var
                   13113:    title="">manifest URL</var>, or non-GET, or wrong-origin manifest -->
                   13114: 
                   13115:    <dd>
                   13116: 
                   13117:     <p>The <code><a href="dom.html#document">Document</a></code> is not associated with any
                   13118:     <a href="#application-cache">application cache</a>.</p>
                   13119: 
                   13120:     <p>If there was a <var title="">manifest URL</var>, the user agent
                   13121:     may report to the user that it was ignored, to aid in application
                   13122:     development.</p>
                   13123: 
                   13124:    </dd>
                   13125: 
                   13126:   </dl><h4 id="changesToNetworkingModel"><span class="secno">5.7.6 </span>Changes to the networking model</h4>
                   13127: 
                   13128:   <p>When a <a href="#cache-host">cache host</a> is associated with an
                   13129:   <a href="#application-cache">application cache</a> whose <a href="#concept-appcache-completeness" title="concept-appcache-completeness">completeness flag</a> is
                   13130:   <i>complete</i>, any and all loads for resources related to that
                   13131:   <a href="#cache-host">cache host</a> other than those for <a href="#child-browsing-context" title="child
                   13132:   browsing context">child browsing contexts</a> must go through the
                   13133:   following steps instead of immediately invoking the mechanisms
                   13134:   appropriate to that resource's scheme:</p>
                   13135: 
1.191     sruby    13136:   <ol><!--FETCH--><li><p>If the resource is not to be fetched using the HTTP GET
1.190     sruby    13137:    mechanism <a href="urls.html#concept-http-equivalent-get" title="concept-http-equivalent-get">or
                   13138:    equivalent</a>, or if its <a href="urls.html#url">URL</a> has a different <a href="urls.html#url-scheme" title="url-scheme">&lt;scheme&gt;</a> component than the
                   13139:    <a href="#application-cache">application cache</a>'s <a href="#concept-appcache-manifest" title="concept-appcache-manifest">manifest</a>, then
                   13140:    <a href="urls.html#fetch">fetch</a> the resource normally and abort these
                   13141:    steps.</p></li>
                   13142: 
                   13143:    <li><p>If the resource's URL is <a href="#concept-appcache-master" title="concept-appcache-master">a master entry</a>, <a href="#concept-appcache-manifest" title="concept-appcache-manifest">the manifest</a>, <a href="#concept-appcache-explicit" title="concept-appcache-explicit">an explicit entry</a>, or
                   13144:    <a href="#concept-appcache-fallback" title="concept-appcache-fallback">a fallback entry</a> in
                   13145:    the <a href="#application-cache">application cache</a>, then get the resource from the
                   13146:    cache (instead of fetching it), and abort these steps.</p></li>
                   13147: 
                   13148:    <li><p>If there is an entry in the <a href="#application-cache">application cache</a>'s
                   13149:    <a href="#concept-appcache-onlinewhitelist" title="concept-appcache-onlinewhitelist">online
                   13150:    whitelist</a> that has the <a href="#same-origin">same origin</a> as the
                   13151:    resource's URL and that is a <a href="infrastructure.html#prefix-match">prefix match</a> for the
                   13152:    resource's URL, then <a href="urls.html#fetch">fetch</a> the resource normally and
                   13153:    abort these steps.</p></li>
                   13154: 
                   13155:    <li>
                   13156: 
                   13157:     <p>If the resource's URL has the <a href="#same-origin">same origin</a> as the
                   13158:     manifest's URL, and there is a <a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">fallback namespace</a>
                   13159:     <var title="">f</var> in the <a href="#application-cache">application cache</a> that
                   13160:     is a <a href="infrastructure.html#prefix-match">prefix match</a> for the resource's URL, then:</p>
                   13161: 
                   13162:     <p><a href="urls.html#fetch">Fetch</a> the resource normally. If this results in a
                   13163:     redirect to a resource with another <a href="#origin-0">origin</a>
                   13164:     (indicative of a captive portal), or a 4xx or 5xx status code
                   13165:     <a href="urls.html#concept-http-equivalent-codes" title="concept-http-equivalent-codes">or equivalent</a>,
                   13166:     or if there were network errors (but not if the user canceled the
                   13167:     download), then instead get, from the cache, the resource of the
                   13168:     <a href="#concept-appcache-fallback" title="concept-appcache-fallback">fallback entry</a>
                   13169:     corresponding to the <a href="#concept-appcache-fallback-ns" title="concept-appcache-fallback-ns">fallback namespace</a>
                   13170:     <var title="">f</var>. Abort these steps.</p>
                   13171: 
                   13172:    </li>
                   13173: 
                   13174:    <li><p>If the <a href="#application-cache">application cache</a>'s <a href="#concept-appcache-onlinewhitelist-wildcard" title="concept-appcache-onlinewhitelist-wildcard">online whitelist
                   13175:    wildcard flag</a> is <i title="">open</i>, then
                   13176:    <a href="urls.html#fetch">fetch</a> the resource normally and abort these
                   13177:    steps.</p></li>
                   13178: 
                   13179:    <li><p>Fail the resource load as if there had been a generic
                   13180:    network error.</p></li>
                   13181: 
                   13182:   </ol><p class="note">The above algorithm ensures that so long as the
                   13183:   <a href="#concept-appcache-onlinewhitelist-wildcard" title="concept-appcache-onlinewhitelist-wildcard">online
                   13184:   whitelist wildcard flag</a> is <i title="">blocking</i>,
                   13185:   resources that are not present in the <a href="#concept-appcache-manifest" title="concept-appcache-manifest">manifest</a> will always fail
                   13186:   to load (at least, after the <a href="#application-cache">application cache</a> has been
                   13187:   primed the first time), making the testing of offline applications
                   13188:   simpler.</p>
                   13189: 
                   13190:   </div>
                   13191: 
                   13192: 
                   13193:   <div class="impl">
                   13194: 
                   13195:   <h4 id="expiring-application-caches"><span class="secno">5.7.7 </span>Expiring application caches</h4>
                   13196: 
                   13197:   <p>As a general rule, user agents should not expire application
                   13198:   caches, except on request from the user, or after having been left
                   13199:   unused for an extended period of time.</p>
                   13200: 
                   13201:   <p>Application caches and cookies have similar implications with
                   13202:   respect to privacy (e.g. if the site can identify the user when
                   13203:   providing the cache, it can store data in the cache that can be used
                   13204:   for cookie resurrection). Implementors are therefore encouraged to
                   13205:   expose application caches in a manner related to HTTP cookies,
                   13206:   allowing caches to be expunged together with cookies and other
                   13207:   origin-specific data.</p>
                   13208: 
                   13209:   <p class="example">For example, a user agent could have a "delete
                   13210:   site-specific data" feature that clears all cookies, application
                   13211:   caches, local storage, databases, etc, from an origin all at
                   13212:   once.</p>
                   13213: 
                   13214:   </div>
                   13215: 
                   13216: 
                   13217:   <div class="impl">
                   13218: 
                   13219:   <h4 id="disk-space"><span class="secno">5.7.8 </span>Disk space</h4>
                   13220: 
                   13221:   <p>User agents should consider applying constraints on disk usage of
                   13222:   <a href="#application-cache" title="application cache">application caches</a>, and care
                   13223:   should be taken to ensure that the restrictions cannot be easily
                   13224:   worked around using subdomains.</p>
                   13225: 
                   13226:   <p>User agents should allow users to see how much space each domain
                   13227:   is using, and may offer the user the ability to delete specific
                   13228:   <a href="#application-cache" title="application cache">application caches</a>.</p>
                   13229: 
                   13230:   <p class="note">How quotas are presented to the user is not defined
                   13231:   by this specification. User agents are encouraged to provide
                   13232:   features such as allowing a user to indicate that certain sites are
                   13233:   trusted to use more than the default quota, e.g. by asynchronously
                   13234:   presenting a user interface while a cache is being updated, or by
                   13235:   having an explicit whitelist in the user agent's configuration
                   13236:   interface.</p>
                   13237: 
                   13238:   </div>
                   13239: 
                   13240: 
                   13241: 
                   13242:   <h4 id="application-cache-api"><span class="secno">5.7.9 </span>Application cache API</h4>
                   13243: 
                   13244:   <pre class="idl">interface <dfn id="applicationcache">ApplicationCache</dfn> : <a href="infrastructure.html#eventtarget">EventTarget</a> {
                   13245: 
                   13246:   // <a href="#concept-appcache-status" title="concept-appcache-status">update status</a>
                   13247:   const unsigned short <a href="#dom-appcache-uncached" title="dom-appcache-UNCACHED">UNCACHED</a> = 0;
                   13248:   const unsigned short <a href="#dom-appcache-idle" title="dom-appcache-IDLE">IDLE</a> = 1;
                   13249:   const unsigned short <a href="#dom-appcache-checking" title="dom-appcache-CHECKING">CHECKING</a> = 2;
                   13250:   const unsigned short <a href="#dom-appcache-downloading" title="dom-appcache-DOWNLOADING">DOWNLOADING</a> = 3;
                   13251:   const unsigned short <a href="#dom-appcache-updateready" title="dom-appcache-UPDATEREADY">UPDATEREADY</a> = 4;
                   13252:   const unsigned short <a href="#dom-appcache-obsolete" title="dom-appcache-OBSOLETE">OBSOLETE</a> = 5;
                   13253:   readonly attribute unsigned short <a href="#dom-appcache-status" title="dom-appcache-status">status</a>;
                   13254: 
                   13255:   // updates
                   13256:   void <a href="#dom-appcache-update" title="dom-appcache-update">update</a>();
                   13257:   void <a href="#dom-appcache-abort" title="dom-appcache-abort">abort</a>();
                   13258:   void <a href="#dom-appcache-swapcache" title="dom-appcache-swapCache">swapCache</a>();
                   13259: 
                   13260:   // events
                   13261:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-appcache-onchecking" title="handler-appcache-onchecking">onchecking</a>;
                   13262:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-appcache-onerror" title="handler-appcache-onerror">onerror</a>;
                   13263:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-appcache-onnoupdate" title="handler-appcache-onnoupdate">onnoupdate</a>;
                   13264:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-appcache-ondownloading" title="handler-appcache-ondownloading">ondownloading</a>;
                   13265:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-appcache-onprogress" title="handler-appcache-onprogress">onprogress</a>;
                   13266:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-appcache-onupdateready" title="handler-appcache-onupdateready">onupdateready</a>;
                   13267:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-appcache-oncached" title="handler-appcache-oncached">oncached</a>;
                   13268:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-appcache-onobsolete" title="handler-appcache-onobsolete">onobsolete</a>;
                   13269: };</pre>
                   13270: 
                   13271:   <dl class="domintro"><dt><var title="">cache</var> = <var title="">window</var> . <code title="dom-applicationCache"><a href="#dom-applicationcache">applicationCache</a></code></dt>
                   13272:    <dd>
                   13273: 
                   13274:     <p>(In a window.) Returns the <code><a href="#applicationcache">ApplicationCache</a></code> object that applies to the <a href="#active-document">active document</a> of that <code><a href="#window">Window</a></code>.</p>
                   13275: 
                   13276:    </dd>
                   13277: 
                   13278:    <dt><var title="">cache</var> = <var title="">self</var> . <code title="dom-applicationCache"><a href="#dom-applicationcache">applicationCache</a></code></dt>
                   13279:    <dd>
                   13280: 
                   13281:     <p>(In a shared worker.) Returns the <code><a href="#applicationcache">ApplicationCache</a></code> object that applies to the current shared worker.
                   13282:         <a href="#refsWEBWORKERS">[WEBWORKERS]</a>
                   13283:         </p>
                   13284: 
                   13285:    </dd>
                   13286: 
                   13287:    <dt><var title="">cache</var> . <code title="dom-appcache-status"><a href="#dom-appcache-status">status</a></code></dt>
                   13288:    <dd>
                   13289: 
                   13290:     <p>Returns the current status of the application cache, as given by the constants defined below.</p>
                   13291: 
                   13292:    </dd>
                   13293: 
                   13294:    <dt><var title="">cache</var> . <code title="dom-appcache-update"><a href="#dom-appcache-update">update</a></code>()</dt>
                   13295:    <dd>
                   13296: 
                   13297:     <p>Invokes the <a href="#application-cache-download-process">application cache download process</a>.</p>
                   13298: 
                   13299:     <p>Throws an <code><a href="infrastructure.html#invalidstateerror">InvalidStateError</a></code> exception if there is no application cache to update.</p>
                   13300: 
                   13301:     <p>Calling this method is not usually necessary, as user agents
                   13302:     will generally take care of updating <a href="#application-cache" title="application
                   13303:     cache">application caches</a> automatically.</p>
                   13304: 
                   13305:     <p>The method can be useful in situations such as long-lived
                   13306:     applications. For example, a Web mail application might stay open
                   13307:     in a browser tab for weeks at a time. Such an application could
                   13308:     want to test for updates each day.</p>
                   13309: 
                   13310:    </dd>
                   13311: 
                   13312:    <dt><var title="">cache</var> . <code title="dom-appcache-abort"><a href="#dom-appcache-abort">abort</a></code>()</dt>
                   13313:    <dd>
                   13314: 
                   13315:     <p>Cancels the <a href="#application-cache-download-process">application cache download process</a>.</p>
                   13316: 
                   13317:     <p>This method is intended to be used by Web application showing
                   13318:     their own caching progress UI, in case the user wants to stop the
                   13319:     update (e.g. because bandwidth is limited).</p>
                   13320: 
                   13321:    </dd>
                   13322: 
                   13323:    <dt><var title="">cache</var> . <code title="dom-appcache-swapCache"><a href="#dom-appcache-swapcache">swapCache</a></code>()</dt>
                   13324:    <dd>
                   13325: 
                   13326:     <p>Switches to the most recent application cache, if there is a
                   13327:     newer one. If there isn't, throws an
                   13328:     <code><a href="infrastructure.html#invalidstateerror">InvalidStateError</a></code> exception.</p>
                   13329: 
                   13330:     <p>This does not cause previously-loaded resources to be reloaded;
                   13331:     for example, images do not suddenly get reloaded and style sheets
                   13332:     and scripts do not get reparsed or reevaluated. The only change is
                   13333:     that subsequent requests for cached resources will obtain the
                   13334:     newer copies.</p>
                   13335: 
                   13336:     <p>The <code title="event-appcache-updateready"><a href="#event-appcache-updateready">updateready</a></code>
                   13337:     event will fire before this method can be called. Once it fires,
                   13338:     the Web application can, at its leisure, call this method to
                   13339:     switch the underlying cache to the one with the more recent
                   13340:     updates. To make proper use of this, applications have to be able
                   13341:     to bring the new features into play; for example, reloading
                   13342:     scripts to enable new features.</p>
                   13343: 
                   13344:     <p>An easier alternative to <code title="dom-appcache-swapCache"><a href="#dom-appcache-swapcache">swapCache()</a></code> is just to
                   13345:     reload the entire page at a time suitable for the user, using
                   13346:     <code title="dom-location-reload"><a href="#dom-location-reload">location.reload()</a></code>.</p>
                   13347: 
                   13348:    </dd>
                   13349: 
                   13350:   </dl><div class="impl">
                   13351: 
                   13352:   <p>There is a one-to-one mapping from <a href="#cache-host" title="cache host">cache
                   13353:   hosts</a> to <code><a href="#applicationcache">ApplicationCache</a></code> objects. The <dfn id="dom-applicationcache" title="dom-applicationCache"><code>applicationCache</code></dfn>
                   13354:   attribute on <code><a href="#window">Window</a></code> objects must return the
                   13355:   <code><a href="#applicationcache">ApplicationCache</a></code> object associated with the
                   13356:   <code><a href="#window">Window</a></code> object's <a href="#active-document">active document</a>. The <dfn id="dom-sharedworkerglobalscope-applicationcache" title="dom-SharedWorkerGlobalScope-applicationCache"><code>applicationCache</code></dfn>
                   13357:   attribute on <code>SharedWorkerGlobalScope</code> objects must
                   13358:   return the <code><a href="#applicationcache">ApplicationCache</a></code> object associated with the
                   13359:   worker.
                   13360:     <a href="#refsWEBWORKERS">[WEBWORKERS]</a>
                   13361:     </p>
                   13362: 
                   13363:   <p class="note">A <code><a href="#window">Window</a></code> or
                   13364:   <code>SharedWorkerGlobalScope</code> object has an associated
                   13365:   <code><a href="#applicationcache">ApplicationCache</a></code> object even if that <a href="#cache-host">cache
                   13366:   host</a> has no actual <a href="#application-cache">application cache</a>.</p>
                   13367: 
                   13368:   <hr><p>The <dfn id="dom-appcache-status" title="dom-appcache-status"><code>status</code></dfn>
                   13369:   attribute, on getting, must return the current state of the
                   13370:   <a href="#application-cache">application cache</a> that the
                   13371:   <code><a href="#applicationcache">ApplicationCache</a></code> object's <a href="#cache-host">cache host</a> is
                   13372:   associated with, if any. This must be the appropriate value from the
                   13373:   following list:</p>
                   13374: 
                   13375:   </div>
                   13376: 
                   13377:   <dl><dt><dfn id="dom-appcache-uncached" title="dom-appcache-UNCACHED"><code>UNCACHED</code></dfn>
                   13378:    (numeric value 0)</dt>
                   13379: 
                   13380:    <dd><p>The <code><a href="#applicationcache">ApplicationCache</a></code> object's <a href="#cache-host">cache
                   13381:    host</a> is not associated with an <a href="#application-cache">application
                   13382:    cache</a> at this time.</p></dd>
                   13383: 
                   13384:    <dt><dfn id="dom-appcache-idle" title="dom-appcache-IDLE"><code>IDLE</code></dfn>
                   13385:    (numeric value 1)</dt>
                   13386: 
                   13387:    <dd><p>The <code><a href="#applicationcache">ApplicationCache</a></code> object's <a href="#cache-host">cache
                   13388:    host</a> is associated with an <a href="#application-cache">application cache</a>
                   13389:    whose <a href="#application-cache-group">application cache group</a>'s <a href="#concept-appcache-status" title="concept-appcache-status">update status</a> is
                   13390:    <i>idle</i>, and that <a href="#application-cache">application cache</a> is the <a href="#concept-appcache-newer" title="concept-appcache-newer">newest</a> cache in its
                   13391:    <a href="#application-cache-group">application cache group</a>, and the <a href="#application-cache-group">application
                   13392:    cache group</a> is not marked as <a href="#concept-appcache-obsolete" title="concept-appcache-obsolete">obsolete</a>.</p></dd>
                   13393: 
                   13394:    <dt><dfn id="dom-appcache-checking" title="dom-appcache-CHECKING"><code>CHECKING</code></dfn>
                   13395:    (numeric value 2)</dt>
                   13396: 
                   13397:    <dd><p>The <code><a href="#applicationcache">ApplicationCache</a></code> object's <a href="#cache-host">cache
                   13398:    host</a> is associated with an <a href="#application-cache">application cache</a>
                   13399:    whose <a href="#application-cache-group">application cache group</a>'s <a href="#concept-appcache-status" title="concept-appcache-status">update status</a> is
                   13400:    <i>checking</i>.</p></dd>
                   13401: 
                   13402:    <dt><dfn id="dom-appcache-downloading" title="dom-appcache-DOWNLOADING"><code>DOWNLOADING</code></dfn>
                   13403:    (numeric value 3)</dt>
                   13404: 
                   13405:    <dd><p>The <code><a href="#applicationcache">ApplicationCache</a></code> object's <a href="#cache-host">cache
                   13406:    host</a> is associated with an <a href="#application-cache">application cache</a>
                   13407:    whose <a href="#application-cache-group">application cache group</a>'s <a href="#concept-appcache-status" title="concept-appcache-status">update status</a> is
                   13408:    <i>downloading</i>.</p></dd>
                   13409: 
                   13410:    <dt><dfn id="dom-appcache-updateready" title="dom-appcache-UPDATEREADY"><code>UPDATEREADY</code></dfn>
                   13411:    (numeric value 4)</dt>
                   13412: 
                   13413:    <dd><p>The <code><a href="#applicationcache">ApplicationCache</a></code> object's <a href="#cache-host">cache
                   13414:    host</a> is associated with an <a href="#application-cache">application cache</a>
                   13415:    whose <a href="#application-cache-group">application cache group</a>'s <a href="#concept-appcache-status" title="concept-appcache-status">update status</a> is
                   13416:    <i>idle</i>, and whose <a href="#application-cache-group">application cache group</a> is not
                   13417:    marked as <a href="#concept-appcache-obsolete" title="concept-appcache-obsolete">obsolete</a>,
                   13418:    but that <a href="#application-cache">application cache</a> is <em>not</em> the <a href="#concept-appcache-newer" title="concept-appcache-newer">newest</a> cache in its
                   13419:    group.</p></dd>
                   13420: 
                   13421:    <dt><dfn id="dom-appcache-obsolete" title="dom-appcache-OBSOLETE"><code>OBSOLETE</code></dfn>
                   13422:    (numeric value 5)</dt>
                   13423: 
                   13424:    <dd><p>The <code><a href="#applicationcache">ApplicationCache</a></code> object's <a href="#cache-host">cache
                   13425:    host</a> is associated with an <a href="#application-cache">application cache</a>
                   13426:    whose <a href="#application-cache-group">application cache group</a> is marked as <a href="#concept-appcache-obsolete" title="concept-appcache-obsolete">obsolete</a>.</p></dd>
                   13427: 
                   13428:   </dl><div class="impl">
                   13429: 
                   13430:   <hr><p>If the <dfn id="dom-appcache-update" title="dom-appcache-update"><code>update()</code></dfn> method is
                   13431:   invoked, the user agent must invoke the <a href="#application-cache-download-process">application cache
                   13432:   download process</a>, in the background, for the
                   13433:   <a href="#application-cache-group">application cache group</a> of the <a href="#application-cache">application
                   13434:   cache</a> with which the <code><a href="#applicationcache">ApplicationCache</a></code> object's
                   13435:   <a href="#cache-host">cache host</a> is associated, but without giving that
                   13436:   <a href="#cache-host">cache host</a> to the algorithm. If there is no such
                   13437:   <a href="#application-cache">application cache</a>, or if its <a href="#application-cache-group">application cache
                   13438:   group</a> is marked as <a href="#concept-appcache-obsolete" title="concept-appcache-obsolete">obsolete</a>, then the method
                   13439:   must throw an <code><a href="infrastructure.html#invalidstateerror">InvalidStateError</a></code> exception instead.</p>
                   13440: 
                   13441:   <p>If the <dfn id="dom-appcache-abort" title="dom-appcache-abort"><code>abort()</code></dfn>
                   13442:   method is invoked, the user agent must <dfn id="send-a-signal">send a signal</dfn> to
                   13443:   the current <a href="#application-cache-download-process">application cache download process</a> for the
                   13444:   <a href="#application-cache-group">application cache group</a> of the <a href="#application-cache">application
                   13445:   cache</a> with which the <code><a href="#applicationcache">ApplicationCache</a></code> object's
                   13446:   <a href="#cache-host">cache host</a> is associated, if any. If there is no such
                   13447:   <a href="#application-cache">application cache</a>, or it does not have a current
                   13448:   <a href="#application-cache-download-process">application cache download process</a>, then do
                   13449:   nothing.</p>
                   13450: 
                   13451:   <p>If the <dfn id="dom-appcache-swapcache" title="dom-appcache-swapCache"><code>swapCache()</code></dfn> method
                   13452:   is invoked, the user agent must run the following steps:
                   13453: 
                   13454:   </p><ol><li><p>Check that <code><a href="#applicationcache">ApplicationCache</a></code> object's
                   13455:    <a href="#cache-host">cache host</a> is associated with an <a href="#application-cache">application
                   13456:    cache</a>. If it is not, then throw an
                   13457:    <code><a href="infrastructure.html#invalidstateerror">InvalidStateError</a></code> exception and abort these
                   13458:    steps.</p></li>
                   13459: 
                   13460:    <li><p>Let <var title="">cache</var> be the <a href="#application-cache">application
                   13461:    cache</a> with which the <code><a href="#applicationcache">ApplicationCache</a></code> object's
                   13462:    <a href="#cache-host">cache host</a> is associated. (By definition, this is the
                   13463:    same as the one that was found in the previous step.)</p></li>
                   13464: 
                   13465:    <li><p>If <var title="">cache</var>'s <a href="#application-cache-group">application cache
                   13466:    group</a> is marked as <a href="#concept-appcache-obsolete" title="concept-appcache-obsolete">obsolete</a>, then unassociate
                   13467:    the <code><a href="#applicationcache">ApplicationCache</a></code> object's <a href="#cache-host">cache host</a>
                   13468:    from <var title="">cache</var> and abort these steps. (Resources
                   13469:    will now load from the network instead of the cache.)</p></li>
                   13470: 
                   13471:    <li><p>Check that there is an application cache in the same
                   13472:    <a href="#application-cache-group">application cache group</a> as <var title="">cache</var>
                   13473:    whose <a href="#concept-appcache-completeness" title="concept-appcache-completeness">completeness
                   13474:    flag</a> is <i>complete</i> and that is <a href="#concept-appcache-newer" title="concept-appcache-newer">newer</a> than <var title="">cache</var>. If there is not, then throw an
                   13475:    <code><a href="infrastructure.html#invalidstateerror">InvalidStateError</a></code> exception and abort these
                   13476:    steps.</p></li>
                   13477: 
                   13478:    <li><p>Let <var title="">new cache</var> be the <a href="#concept-appcache-newer" title="concept-appcache-newer">newest</a> <a href="#application-cache">application
                   13479:    cache</a> in the same <a href="#application-cache-group">application cache group</a> as
                   13480:    <var title="">cache</var> whose <a href="#concept-appcache-completeness" title="concept-appcache-completeness">completeness flag</a> is
                   13481:    <i>complete</i>.</p></li>
                   13482: 
                   13483:    <li><p>Unassociate the <code><a href="#applicationcache">ApplicationCache</a></code> object's
                   13484:    <a href="#cache-host">cache host</a> from <var title="">cache</var> and instead
                   13485:    associate it with <var title="">new cache</var>.</p></li>
                   13486: 
                   13487:   </ol><p>The following are the <a href="#event-handlers">event handlers</a> (and their
                   13488:   corresponding <a href="#event-handler-event-type" title="event handler event type">event handler
                   13489:   event types</a>) that must be supported, as IDL attributes, by
                   13490:   all objects implementing the <code><a href="#applicationcache">ApplicationCache</a></code>
                   13491:   interface:</p>
                   13492: 
                   13493:   <table><thead><tr><th><a href="#event-handlers" title="event handlers">Event handler</a> </th><th><a href="#event-handler-event-type">Event handler event type</a>
                   13494:    </th></tr></thead><tbody><tr><td><dfn id="handler-appcache-onchecking" title="handler-appcache-onchecking"><code>onchecking</code></dfn> </td><td> <code title="event-appcache-checking"><a href="#event-appcache-checking">checking</a></code>
                   13495:     </td></tr><tr><td><dfn id="handler-appcache-onerror" title="handler-appcache-onerror"><code>onerror</code></dfn> </td><td> <code title="event-appcache-error"><a href="#event-appcache-error">error</a></code>
                   13496:     </td></tr><tr><td><dfn id="handler-appcache-onnoupdate" title="handler-appcache-onnoupdate"><code>onnoupdate</code></dfn> </td><td> <code title="event-appcache-noupdate"><a href="#event-appcache-noupdate">noupdate</a></code>
                   13497:     </td></tr><tr><td><dfn id="handler-appcache-ondownloading" title="handler-appcache-ondownloading"><code>ondownloading</code></dfn> </td><td> <code title="event-appcache-downloading"><a href="#event-appcache-downloading">downloading</a></code>
                   13498:     </td></tr><tr><td><dfn id="handler-appcache-onprogress" title="handler-appcache-onprogress"><code>onprogress</code></dfn> </td><td> <code title="event-appcache-progress"><a href="#event-appcache-progress">progress</a></code>
                   13499:     </td></tr><tr><td><dfn id="handler-appcache-onupdateready" title="handler-appcache-onupdateready"><code>onupdateready</code></dfn> </td><td> <code title="event-appcache-updateready"><a href="#event-appcache-updateready">updateready</a></code>
                   13500:     </td></tr><tr><td><dfn id="handler-appcache-oncached" title="handler-appcache-oncached"><code>oncached</code></dfn> </td><td> <code title="event-appcache-cached"><a href="#event-appcache-cached">cached</a></code>
                   13501:     </td></tr><tr><td><dfn id="handler-appcache-onobsolete" title="handler-appcache-onobsolete"><code>onobsolete</code></dfn> </td><td> <code title="event-appcache-obsolete"><a href="#event-appcache-obsolete">obsolete</a></code>
                   13502:   </td></tr></tbody></table></div>
                   13503: 
                   13504: 
                   13505:   <h4 id="browser-state"><span class="secno">5.7.10 </span>Browser state</h4>
                   13506: 
                   13507:   <pre class="idl">[NoInterfaceObject]
                   13508: interface <dfn id="navigatoronline">NavigatorOnLine</dfn> {
                   13509:   readonly attribute boolean <a href="#dom-navigator-online" title="dom-navigator-onLine">onLine</a>;
                   13510: };</pre>
                   13511: 
                   13512:   <dl class="domintro"><dt><var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-onLine"><a href="#dom-navigator-online">onLine</a></code></dt>
                   13513: 
                   13514:    <dd>
                   13515: 
                   13516:     <p>Returns false if the user agent is definitely offline
                   13517:     (disconnected from the network). Returns true if the user agent
                   13518:     might be online.</p>
                   13519: 
                   13520:     <p>The events <code title="event-online"><a href="#event-online">online</a></code> and <code title="event-offline"><a href="#event-offline">offline</a></code> are fired when the value of
                   13521:     this attribute changes.</p>
                   13522: 
                   13523:    </dd>
                   13524: 
                   13525:   </dl><div class="impl">
                   13526: 
                   13527:   <p>The <dfn id="dom-navigator-online" title="dom-navigator-onLine"><code>navigator.onLine</code></dfn>
                   13528:   attribute must return false if the user agent will not contact the
                   13529:   network when the user follows links or when a script requests a
                   13530:   remote page (or knows that such an attempt would fail), and must
                   13531:   return true otherwise.</p>
                   13532: 
                   13533:   <p>When the value that would be returned by the <code title="dom-navigator-onLine"><a href="#dom-navigator-online">navigator.onLine</a></code> attribute of a
                   13534:   <code><a href="#window">Window</a></code> or <code>WorkerGlobalScope</code> changes from
                   13535:   true to false, the user agent must <a href="#queue-a-task">queue a task</a> to
                   13536:   <a href="#fire-a-simple-event">fire a simple event</a> named <dfn id="event-offline" title="event-offline"><code>offline</code></dfn> at the
                   13537:   <code><a href="#window">Window</a></code> or <code>WorkerGlobalScope</code> object.</p>
                   13538: 
                   13539:   <p>On the other hand, when the value that would be returned by the
                   13540:   <code title="dom-navigator-onLine"><a href="#dom-navigator-online">navigator.onLine</a></code> attribute
                   13541:   of a <code><a href="#window">Window</a></code> or <code>WorkerGlobalScope</code> changes
                   13542:   from false to true, the user agent must <a href="#queue-a-task">queue a task</a> to
                   13543:   <a href="#fire-a-simple-event">fire a simple event</a> named <dfn id="event-online" title="event-online"><code>online</code></dfn> at the
                   13544:   <code><a href="#window">Window</a></code> or <code>WorkerGlobalScope</code> object.</p>
                   13545: 
                   13546:   <p>The <a href="#task-source">task source</a> for these <a href="#concept-task" title="concept-task">tasks</a> is the <a href="#networking-task-source">networking task
                   13547:   source</a>.</p>
                   13548: 
                   13549:   </div>
                   13550: 
                   13551:   <p class="note">This attribute is inherently unreliable. A computer
                   13552:   can be connected to a network without having Internet access.</p>
                   13553: 
                   13554:   <div class="example">
                   13555: 
                   13556:    <p>In this example, an indicator is updated as the browser goes
                   13557:    online and offline.</p>
                   13558: 
                   13559:    <pre>&lt;!DOCTYPE HTML&gt;
                   13560: &lt;html&gt;
                   13561:  &lt;head&gt;
                   13562:   &lt;title&gt;Online status&lt;/title&gt;
                   13563:   &lt;script&gt;
                   13564:    function updateIndicator() {
                   13565:      document.getElementById('indicator').textContent = navigator.onLine ? 'online' : 'offline';
                   13566:    }
                   13567:   &lt;/script&gt;
                   13568:  &lt;/head&gt;
                   13569:  &lt;body onload="updateIndicator()" ononline="updateIndicator()" onoffline="updateIndicator()"&gt;
                   13570:   &lt;p&gt;The network is: &lt;span id="indicator"&gt;(state unknown)&lt;/span&gt;
                   13571:  &lt;/body&gt;
                   13572: &lt;/html&gt;</pre>
                   13573: 
                   13574:   </div>
                   13575: 
                   13576: <!--TOPIC:HTML-->
                   13577: 
                   13578:   <h2 id="webappapis"><span class="secno">6 </span>Web application APIs</h2>
                   13579: 
                   13580:   <h3 id="scripting"><span class="secno">6.1 </span>Scripting</h3>
                   13581: 
                   13582:   <h4 id="introduction-5"><span class="secno">6.1.1 </span>Introduction</h4>
                   13583: 
                   13584:   <p>Various mechanisms can cause author-provided executable code to
                   13585:   run in the context of a document. These mechanisms include, but are
                   13586:   probably not limited to:</p>
                   13587: 
                   13588:   <ul><li>Processing of <code><a href="the-script-element.html#the-script-element">script</a></code> elements.</li>
                   13589: 
                   13590:    <li>Processing of inline <code title="javascript
                   13591:    protocol"><a href="#javascript-protocol">javascript:</a></code> URLs (e.g. the <code title="attr-img-src"><a href="the-img-element.html#attr-img-src">src</a></code> attribute of <code><a href="the-img-element.html#the-img-element">img</a></code>
                   13592:    elements, or an <code title="">@import</code> rule in a CSS
                   13593:    <code><a href="the-style-element.html#the-style-element">style</a></code> element block).</li>
                   13594: 
                   13595:    <li>Event handlers, whether registered through the DOM using <code title="">addEventListener()</code>, by explicit <a href="#event-handler-content-attributes">event handler
                   13596:    content attributes</a>, by <a href="#event-handler-idl-attributes">event handler IDL
                   13597:    attributes</a>, or otherwise.</li>
                   13598: 
                   13599:    <li>Processing of technologies like XBL or SVG that have their own
                   13600:    scripting features.</li>
                   13601: 
                   13602:   </ul><div class="impl">
                   13603: 
                   13604:   <h4 id="enabling-and-disabling-scripting"><span class="secno">6.1.2 </span>Enabling and disabling scripting</h4>
                   13605: 
                   13606:   <p><dfn id="concept-bc-script" title="concept-bc-script">Scripting is enabled</dfn> in a
                   13607:   <em><a href="#browsing-context"><span>browsing context</span></a></em> when all of the
                   13608:   following conditions are true:</p>
                   13609: 
                   13610:   <ul><li>The user agent supports scripting.</li>
                   13611: 
                   13612:    <li>The user has not disabled scripting for this <a href="#browsing-context">browsing
                   13613:    context</a> at this time. (User agents may provide users with
                   13614:    the option to disable scripting globally, or in a finer-grained
                   13615:    manner, e.g. on a per-origin basis.)
                   13616:    <!--INSERT FINGERPRINT-->
                   13617:    </li>
                   13618: 
                   13619:    <li id="sandboxScriptBlocked">The <a href="#browsing-context">browsing context</a>'s
                   13620:    <a href="#active-document">active document</a>'s <a href="#active-sandboxing-flag-set">active sandboxing flag
                   13621:    set</a> does not have its <a href="#sandboxed-scripts-browsing-context-flag">sandboxed scripts browsing
                   13622:    context flag</a> set.</li>
                   13623: 
                   13624:   </ul><p><dfn id="concept-bc-noscript" title="concept-bc-noscript">Scripting is disabled</dfn> in a
                   13625:   <a href="#browsing-context">browsing context</a> when any of the above conditions are
                   13626:   false (i.e. when scripting is not <a href="#concept-bc-script" title="concept-bc-script">enabled</a>).</p>
                   13627: 
                   13628:   <hr><p><dfn id="concept-n-script" title="concept-n-script">Scripting is enabled</dfn> for a
                   13629:   <em><a href="infrastructure.html#node">node</a></em> if the <code><a href="dom.html#document">Document</a></code> object of the node (the
                   13630:   node itself, if it is itself a <code><a href="dom.html#document">Document</a></code> object) has an
                   13631:   associated <a href="#browsing-context">browsing context</a>, and <a href="#concept-bc-script" title="concept-bc-script">scripting is enabled</a> in that
                   13632:   <a href="#browsing-context">browsing context</a>.</p>
                   13633: 
                   13634:   <p><dfn id="concept-n-noscript" title="concept-n-noscript">Scripting is disabled</dfn> for a
                   13635:   node if there is no such <a href="#browsing-context">browsing context</a>, or if <a href="#concept-bc-noscript" title="concept-bc-noscript">scripting is disabled</a> in that
                   13636:   <a href="#browsing-context">browsing context</a>.</p>
                   13637: 
                   13638:   </div>
                   13639: 
                   13640: 
                   13641:   <div class="impl">
                   13642: 
                   13643:   <!-- SCRIPT EXEC (marks areas related to creation of scripts) -->
1.191     sruby    13644:   <h4 id="processing-model-2"><span class="secno">6.1.3 </span>Processing model</h4>
1.190     sruby    13645: 
                   13646:   <h5 id="definitions-0"><span class="secno">6.1.3.1 </span>Definitions</h5>
                   13647: 
                   13648:   <p>This specification describes three kinds of <a href="infrastructure.html#javascript-global-environment" title="JavaScript global environment">JavaScript global
                   13649:   environments</a>: the <dfn id="document-environment">document environment</dfn>, the
                   13650:   <dfn id="dedicated-worker-environment">dedicated worker environment</dfn>, and the <dfn id="shared-worker-environment">shared worker
                   13651:   environment</dfn>. The <a href="#dedicated-worker-environment">dedicated worker environment</a> and
                   13652:   the <a href="#shared-worker-environment">shared worker environment</a> are both types of <dfn id="worker-environment" title="worker environment">worker environments</dfn>.</p>
                   13653: 
                   13654:   <p>Except where otherwise specified, a <a href="infrastructure.html#javascript-global-environment">JavaScript global
                   13655:   environment</a> is a <a href="#document-environment">document environment</a>.</p> <!--
                   13656:   note that we never actually say where one of these is created... -->
                   13657: 
                   13658:   <hr><p>A <dfn id="concept-script" title="concept-script">script</dfn> has:</p>
                   13659: 
                   13660:   <dl><dt>A <dfn id="script-execution-environment">script execution environment</dfn></dt>
                   13661: 
                   13662:    <dd>
                   13663: 
                   13664:     <p>The characteristics of the script execution environment depend
                   13665:     on the language, and are not defined by this specification.</p>
                   13666: 
                   13667:     <p class="example">In JavaScript, the script execution environment
                   13668:     consists of the interpreter, the stack of <i>execution
                   13669:     contexts</i>, the <i>global code</i> and <i>function code</i> and
                   13670:     the <code>Function</code> objects resulting, and so forth.</p>
                   13671: 
                   13672:    </dd>
                   13673: 
                   13674:    <dt>A <dfn id="list-of-code-entry-points">list of code entry-points</dfn></dt>
                   13675: 
                   13676:    <dd>
                   13677: 
                   13678:     <p>Each code entry-point represents a block of executable code
                   13679:     that the script exposes to other scripts and to the user
                   13680:     agent.</p>
                   13681: 
                   13682:     <p class="example">Each <code>Function</code> object in a
                   13683:     JavaScript <a href="#script-execution-environment">script execution environment</a> has a
                   13684:     corresponding code entry-point, for instance.</p>
                   13685: 
                   13686:     <p>The main program code of the script, if any, is the
                   13687:     <dfn id="initial-code-entry-point"><i>initial code entry-point</i></dfn>. Typically, the code
                   13688:     corresponding to this entry-point is executed immediately after
                   13689:     the script is parsed.</p>
                   13690: 
                   13691:     <p class="example">In JavaScript, this corresponds to the
                   13692:     execution context of the global code.</p>
                   13693: 
                   13694:    </dd>
                   13695: 
                   13696:    <dt>A relationship with the <dfn id="script's-global-object">script's global object</dfn></dt>
                   13697: 
                   13698:    <dd>
                   13699: 
                   13700:     <p>An object that provides the APIs that the code can use.</p>
                   13701: 
                   13702:     <p class="example">This is typically a <code><a href="#window">Window</a></code>
                   13703:     object. In JavaScript, this corresponds to the <i>global
                   13704:     object</i>.</p>
                   13705: 
                   13706:     <p class="note">When a <a href="#script's-global-object">script's global object</a> is an
                   13707:     empty object, it can't do anything that interacts with the
                   13708:     environment.</p>
                   13709: 
                   13710:     <p>If the <a href="#script's-global-object">script's global object</a> is a
                   13711:     <code><a href="#window">Window</a></code> object, then in JavaScript, the ThisBinding of
                   13712:     the global execution context for this script must be the
                   13713:     <code><a href="#window">Window</a></code> object's <code><a href="#windowproxy">WindowProxy</a></code> object,
                   13714:     rather than the global object. <a href="#refsECMA262">[ECMA262]</a></p>
                   13715: 
                   13716:     <p class="note">This is a <a href="introduction.html#willful-violation">willful violation</a> of the
                   13717:     JavaScript specification current at the time of writing
                   13718:     (ECMAScript edition 5, as defined in section 10.4.1.1 Initial
                   13719:     Global Execution Context, step 3). The JavaScript specification
                   13720:     requires that the <code title="">this</code> keyword in the global
                   13721:     scope return the global object, but this is not compatible with
                   13722:     the security design prevalent in implementations as specified
                   13723:     herein. <a href="#refsECMA262">[ECMA262]</a></p>
                   13724: 
                   13725:    </dd>
                   13726: 
                   13727:    <dt>A relationship with the <dfn id="script's-browsing-context">script's browsing context</dfn></dt>
                   13728: 
                   13729:    <dd>
                   13730: 
                   13731:     <p>A <a href="#browsing-context">browsing context</a> that is assigned responsibility
                   13732:     for actions taken by the script.</p>
                   13733: 
                   13734:     <p class="example">When a script creates and <a href="#navigate" title="navigate">navigates</a> a new <a href="#top-level-browsing-context">top-level browsing
                   13735:     context</a>, the <code title="dom-opener"><a href="#dom-opener">opener</a></code>
                   13736:     attribute of the new <a href="#browsing-context">browsing context</a>'s
                   13737:     <code><a href="#window">Window</a></code> object will be set to the <a href="#script's-browsing-context">script's
                   13738:     browsing context</a>'s <code><a href="#windowproxy">WindowProxy</a></code> object.</p>
                   13739: 
                   13740:    </dd>
                   13741: 
                   13742:    <dt>A relationship with the <dfn id="script's-document">script's document</dfn></dt>
                   13743: 
                   13744:    <dd>
                   13745: 
                   13746:     <p>A <code><a href="dom.html#document">Document</a></code> that is assigned responsibility for
                   13747:     actions taken by the script.</p>
                   13748: 
1.191     sruby    13749:     <p class="example">For example, the <a href="dom.html#the-document's-address" title="the document's
                   13750:     address">address</a> of the <a href="#script's-document">script's document</a> is
                   13751:     used to set the <a href="dom.html#the-document's-address" title="the document's
                   13752:     address">address</a> of any <code><a href="dom.html#document">Document</a></code> elements
                   13753:     created using <code title="dom-DOMImplementation-createDocument"><a href="infrastructure.html#dom-domimplementation-createdocument">createDocument()</a></code>.</p>
                   13754: 
                   13755:    </dd>
                   13756: 
                   13757:    <dt>The <dfn id="script's-referrer-source">script's referrer source</dfn></dt>
                   13758: 
                   13759:    <dd>
                   13760: 
                   13761:     <p>Either a <code><a href="dom.html#document">Document</a></code> (specifically, the
                   13762:     <a href="#script's-document">script's document</a>), or a <a href="urls.html#url">URL</a>, which is
                   13763:     used by some APIs to determine what value to use for the <code title="http-referer">Referer</code> (sic) header in calls to the
                   13764:     <a href="urls.html#fetch" title="fetch">fetching</a> algorithm.</p>
1.190     sruby    13765: 
                   13766:    </dd>
                   13767: 
                   13768:    <dt>A <dfn id="script's-url-character-encoding" title="script's URL character encoding">URL character encoding</dfn></dt>
                   13769: 
                   13770:    <dd>
                   13771: 
                   13772:     <p>A character encoding, set when the script is created, used to
                   13773:     encode URLs. <span id="sce-not-copy" title="">If the character
                   13774:     encoding is set from another source, e.g. a <a href="infrastructure.html#document's-character-encoding">document's
                   13775:     character encoding</a>, then the <a href="#script's-url-character-encoding">script's URL character
                   13776:     encoding</a> must follow the source, so that if the source's
                   13777:     changes, so does the script's.</span></p>
                   13778: 
                   13779:    </dd>
                   13780: 
                   13781:    <dt>A <dfn id="script's-base-url" title="script's base URL">base URL</dfn></dt>
                   13782: 
                   13783:    <dd>
                   13784: 
                   13785:     <p>A <a href="urls.html#url">URL</a>, set when the script is created, used to
                   13786:     resolve relative URLs. <span id="sbu-not-copy" title="">If the
                   13787:     base URL is set from another source, e.g. a <a href="urls.html#document-base-url">document base
                   13788:     URL</a>, then the <a href="#script's-base-url">script's base URL</a> must follow
                   13789:     the source, so that if the source's changes, so does the
                   13790:     script's.</span></p>
                   13791: 
                   13792:    </dd>
                   13793: 
                   13794:   </dl></div>
                   13795: 
                   13796: 
                   13797:   <div class="impl">
                   13798: 
                   13799:   <h5 id="calling-scripts"><span class="secno">6.1.3.2 </span>Calling scripts</h5>
                   13800: 
                   13801:   <p>When a user agent is to <dfn id="jump-to-a-code-entry-point">jump to a code entry-point</dfn> for
                   13802:   a <a href="#concept-script" title="concept-script">script</a>, for example to invoke
                   13803:   an event listener defined in that <a href="#concept-script" title="concept-script">script</a>, the user agent must run the
                   13804:   following steps:</p>
                   13805: 
                   13806:   <ol><li><p>If the <a href="#script's-global-object">script's global object</a> is a
                   13807:    <code><a href="#window">Window</a></code> object whose <code><a href="dom.html#document">Document</a></code> object is
                   13808:    not <a href="#fully-active">fully active</a>, then abort these steps without doing
                   13809:    anything. The callback is not run.</p>
                   13810: 
                   13811:    </li><li><p>Set the <a href="#entry-script">entry script</a> to be the <a href="#concept-script" title="concept-script">script</a> being invoked.</p></li>
                   13812: 
                   13813:    <li><p>Make the <a href="#script-execution-environment" title="script execution environment">script
                   13814:    execution environment</a> for the <a href="#concept-script" title="concept-script">script</a> execute the code for the given
                   13815:    code entry-point.</p></li>
                   13816: 
                   13817:    <li><p>Set the <a href="#entry-script">entry script</a> back to whatever it was
                   13818:    when this algorithm started.</p></li>
                   13819: 
                   13820:    <li><p><a href="#perform-a-microtask-checkpoint">Perform a microtask checkpoint</a>.</p></li>
                   13821: 
                   13822:   </ol><p>This algorithm is not invoked by one script calling another.</p>
                   13823: 
                   13824:   </div>
                   13825: 
                   13826: 
                   13827:   <div class="impl">
                   13828: 
                   13829:   <h5 id="creating-scripts"><span class="secno">6.1.3.3 </span>Creating scripts</h5>
                   13830: 
                   13831:   <p>When the specification says that a <a href="#concept-script" title="concept-script">script</a> is to be <dfn id="create-a-script" title="create a
                   13832:   script">created</dfn>, given some script source, a script source
                   13833:   URL, its scripting language, a global object, a browsing context, a
1.191     sruby    13834:   document, a referrer source, a URL character encoding, and a base
                   13835:   URL, the user agent must run the following steps:</p>
1.190     sruby    13836: 
                   13837:   <ol><li><p>If <a href="#concept-bc-noscript" title="concept-bc-noscript">scripting is
                   13838:    disabled</a> for <a href="#browsing-context">browsing context</a> passed to this
                   13839:    algorithm, then abort these steps, as if the script did nothing but
                   13840:    return void.</p>
                   13841: 
                   13842:    </li><li><p>Set up a <a href="#script-execution-environment">script execution environment</a> as
                   13843:    appropriate for the scripting language.</p></li>
                   13844: 
                   13845:    <li><p>Parse/compile/initialize the source of the script using the
                   13846:    <a href="#script-execution-environment">script execution environment</a>, as appropriate for the
                   13847:    scripting language, and thus obtain the <a href="#list-of-code-entry-points">list of code
                   13848:    entry-points</a> for the script. If the semantics of the
                   13849:    scripting language and the given source code are such that there is
                   13850:    executable code to be immediately run, then the <i><a href="#initial-code-entry-point">initial code
                   13851:    entry-point</a></i> is the entry-point for that code.</p></li>
                   13852: 
                   13853:    <li><p>Set up the <a href="#script's-global-object">script's global object</a>, the
                   13854:    <a href="#script's-browsing-context">script's browsing context</a>, the <a href="#script's-document">script's
1.191     sruby    13855:    document</a>, the <a href="#script's-referrer-source">script's referrer source</a>, the
                   13856:    <a href="#script's-url-character-encoding">script's URL character encoding</a>, and the
                   13857:    <a href="#script's-base-url">script's base URL</a> from the settings passed to this
                   13858:    algorithm.</p></li>
1.190     sruby    13859: 
                   13860:    <li>
                   13861:  
                   13862:     <p>If all the steps above succeeded (in particular, if the script
                   13863:     was compiled successfully), <a href="#jump-to-a-code-entry-point" title="jump to a code
                   13864:     entry-point">Jump</a> to the <a href="#concept-script" title="concept-script">script</a>'s <i><a href="#initial-code-entry-point">initial code
                   13865:     entry-point</a></i>.</p>
                   13866: 
                   13867:     <p>Otherwise, <a href="#report-the-error">report the error</a> at the script source
                   13868:     URL, with the problematic position (line number and column
                   13869:     number), in the script's <a href="#origin-0">origin</a>, using the <code title="handler-window-onerror"><a href="#handler-window-onerror">onerror</a></code> <a href="#event-handlers" title="event
                   13870:     handlers">event handler</a> of the <a href="#script's-global-object">script's global
                   13871:     object</a>. If the error is still <i title="concept-error-nothandled"><a href="#concept-error-nothandled">not handled</a></i> after this, then
                   13872:     the error may be reported to the user.</p>
                   13873: 
                   13874:    </li>
                   13875: 
                   13876:   </ol><hr><p>When the user agent is to <dfn id="create-an-impotent-script">create an impotent script</dfn>,
                   13877:   given some script source and URL, its scripting language, and a
                   13878:   browsing context, the user agent must <a href="#create-a-script">create a script</a>,
                   13879:   using the given script source, URL, and scripting language, using a
                   13880:   new empty object as the global object, and using the given browsing
1.191     sruby    13881:   context as the browsing context. The referrer source, URL character
                   13882:   encoding, and base URL for the resulting <a href="#concept-script" title="concept-script">script</a> are not important as no APIs
                   13883:   are exposed to the script.</p>
1.190     sruby    13884: 
                   13885:   <hr><p>When the specification says that a <a href="#concept-script" title="concept-script">script</a> is to be <dfn id="create-a-script-from-a-node" title="create a
                   13886:   script from a node">created from a node</dfn> <var title="">node</var>, given some script source, its URL, and its
                   13887:   scripting language, the user agent must <a href="#create-a-script">create a
                   13888:   script</a>, using the given script source, URL, and scripting
                   13889:   language, and using <a href="#the-script-settings-determined-from-the-node">the script settings determined from the
                   13890:   node</a> <var title="">node</var>.</p>
                   13891: 
                   13892:   <p><dfn id="the-script-settings-determined-from-the-node">The script settings determined from the node</dfn> <var title="">node</var> are computed as follows:</p>
                   13893: 
                   13894:   <ol><li><p>Let <var title="">document</var> be the
                   13895:    <code><a href="dom.html#document">Document</a></code> of <var title="">node</var> (or <var title="">node</var> itself if it is a
                   13896:    <code><a href="dom.html#document">Document</a></code>).</p></li>
                   13897: 
1.191     sruby    13898:    <li><p>The global object is the <code><a href="#window">Window</a></code> object of <var title="">document</var>.</p></li>
                   13899: 
1.190     sruby    13900:    <li><p>The browsing context is the <a href="#browsing-context">browsing context</a> of
                   13901:    <var title="">document</var>.</p>
                   13902: 
1.191     sruby    13903:    </li><li><p>The document is <var title="">document</var>.</p>
1.190     sruby    13904: 
1.191     sruby    13905:    </li><li><p>The referrer source is <var title="">document</var>.</p>
                   13906: 
                   13907:    </li><li><p>The URL character encoding is the <a href="infrastructure.html#document's-character-encoding" title="document's
1.190     sruby    13908:    character encoding">character encoding</a> of <var title="">document</var>. (<a href="#sce-not-copy">This is a
                   13909:    reference, not a copy</a>.)</p></li>
                   13910: 
                   13911:    <li><p>The base URL is the <a href="urls.html#document-base-url" title="document base URL">base
                   13912:    URL</a> of <var title="">document</var>. (<a href="#sbu-not-copy">This is a reference, not a copy</a>.)</p></li>
                   13913: 
                   13914:   </ol></div>
                   13915: 
                   13916: 
                   13917:   <div class="impl">
                   13918: 
                   13919:   <h5 id="killing-scripts"><span class="secno">6.1.3.4 </span>Killing scripts</h5>
                   13920: 
                   13921:   <p>User agents may impose resource limitations on scripts, for
                   13922:   example CPU quotas, memory limits, total execution time limits, or
                   13923:   bandwidth limitations. When a script exceeds a limit, the user agent
                   13924:   may either throw a <code><a href="infrastructure.html#quotaexceedederror">QuotaExceededError</a></code> exception, abort
                   13925:   the script without an exception, prompt the user, or throttle script
                   13926:   execution.</p>
                   13927: 
                   13928:   <div class="example">
                   13929: 
                   13930:    <p>For example, the following script never terminates. A user agent
                   13931:    could, after waiting for a few seconds, prompt the user to either
                   13932:    terminate the script or let it continue.</p>
                   13933: 
                   13934:    <pre>&lt;script&gt;
                   13935:  while (true) { /* loop */ }
                   13936: &lt;/script&gt;</pre>
                   13937: 
                   13938:   </div>
                   13939: 
                   13940:   <p>User agents are encouraged to allow users to disable scripting
                   13941:   whenever the user is prompted either by a script (e.g. using the
                   13942:   <code title="dom-alert"><a href="#dom-alert">window.alert()</a></code> API) or because of a
                   13943:   script's actions (e.g. because it has exceeded a time limit).</p>
                   13944: 
                   13945:   <p>If scripting is disabled while a script is executing, the script
                   13946:   should be terminated immediately.</p>
                   13947: 
                   13948:   <p>User agents may allow users to specifically disable scripts just
                   13949:   for the purposes of closing a <a href="#browsing-context">browsing context</a>.</p>
                   13950: 
                   13951:   <p class="example">For example, the prompt mentioned in the example
                   13952:   above could also offer the user with a mechanism to just close the
                   13953:   page entirely, without running any <code title="event-unload">unload</code> event handlers.</p>
                   13954: 
                   13955:   </div>
                   13956: 
                   13957: 
                   13958:   <div class="impl">
                   13959: 
                   13960:   <h5 id="runtime-script-errors"><span class="secno">6.1.3.5 </span>Runtime script errors</h5>
                   13961: 
                   13962:   <p>When the user agent is required to <dfn id="report-the-error" title="report the
                   13963:   error">report an error</dfn> at a particular <a href="urls.html#url">URL</a> <var title="">location</var> with a particular position <var title="">line</var>:<var title="">col</var> in a particular origin <var title="">origin</var>, using the <a href="#event-handlers" title="event handlers">event
                   13964:   handler</a> <var title="">onerror</var>, it must run these steps,
                   13965:   after which the error is either <dfn id="concept-error-handled" title="concept-error-handled"><i>handled</i></dfn> or <dfn id="concept-error-nothandled" title="concept-error-nothandled"><i>not handled</i></dfn>:</p>
                   13966: 
                   13967:   <dl class="switch"><dt>If the value of <var title="">onerror</var> is an
                   13968:    <code><a href="#onerroreventhandler">OnErrorEventHandler</a></code></dt>
                   13969: 
                   13970:    <dd>
                   13971: 
                   13972:     <ol><li><p>Let <var title="">message</var> be a user-agent-defined
                   13973:      string describing the error in a helpful manner.</p></li>
                   13974: 
                   13975:      <li><p>If the <var title="">location</var> <a href="urls.html#url">URL</a> does
                   13976:      not have a <a href="#same-origin" title="same origin">same</a>
                   13977:      <a href="#origin-0">origin</a> as the <var title="">origin</var>, then set
                   13978:      <var title="">message</var> to "<code title="">Script
                   13979:      error.</code>", set <var title="">location</var> to the empty
                   13980:      string, and set <var title="">line</var> and <var title="">col</var> to 0.</p></li>
                   13981: 
                   13982:      <li>
                   13983: 
                   13984:       <p>The callback must be invoked with four arguments: <var title="">message</var>, <var title="">location</var>, <var title="">line</var>, and <var title="">col</var>.</p>
                   13985: 
                   13986:       <p>If the callback returns true, then the error is <i title="concept-error-handled"><a href="#concept-error-handled">handled</a></i>. Otherwise, the error
                   13987:       is <i title="concept-error-nothandled"><a href="#concept-error-nothandled">not handled</a></i>.</p>
                   13988: 
                   13989:       <p>Any uncaught exceptions thrown or errors caused by this
                   13990:       function may be reported to the user immediately after the error
                   13991:       that the function was called for; the <a href="#report-the-error" title="report the
                   13992:       error">report an error</a> algorithm must not be used to handle
                   13993:       exceptions thrown or errors caused by this function.</p>
                   13994: 
                   13995:      </li>
                   13996: 
                   13997:     </ol></dd>
                   13998: 
                   13999:    <dt>Otherwise</dt>
                   14000: 
                   14001:    <dd>
                   14002: 
                   14003:     <p>The error is <i title="concept-error-nothandled"><a href="#concept-error-nothandled">not handled</a></i>.</p>
                   14004: 
                   14005:    </dd>
                   14006: 
                   14007:   </dl><h6 id="runtime-script-errors-in-documents"><span class="secno">6.1.3.5.1 </span>Runtime script errors in documents</h6>
                   14008: 
                   14009:   <p>Whenever an uncaught runtime script error occurs in one of the
                   14010:   scripts associated with a <code><a href="dom.html#document">Document</a></code>, the user agent must
                   14011:   <a href="#report-the-error">report the error</a> at the URL of the resource containing
                   14012:   the script (as established when the <a href="#concept-script" title="concept-script">script</a> was <a href="#create-a-script" title="create a
                   14013:   script">created</a>), with the problematic position (line number
                   14014:   and column number) in that resource, in the script's
                   14015:   <a href="#origin-0">origin</a>, using the <code title="handler-window-onerror"><a href="#handler-window-onerror">onerror</a></code> <a href="#event-handlers" title="event
                   14016:   handlers">event handler</a> of the <a href="#script's-global-object">script's global
                   14017:   object</a>. If the error is still <i title="concept-error-nothandled"><a href="#concept-error-nothandled">not handled</a></i> after this, then
                   14018:   the error may be reported to the user.</p>
                   14019: 
                   14020:   <p>The resource containing the script will typically be the file
                   14021:   from which the <code><a href="dom.html#document">Document</a></code> was parsed, e.g. for inline
                   14022:   <code><a href="the-script-element.html#the-script-element">script</a></code> elements or <a href="#event-handler-content-attributes">event handler content
                   14023:   attributes</a>; or the JavaScript file that the script was in,
                   14024:   for external scripts. Even for dynamically-generated scripts, user
                   14025:   agents are strongly encouraged to attempt to keep track of the
                   14026:   original source of a script. For example, if an external script uses
                   14027:   the <code title="dom-document-write"><a href="dynamic-markup-insertion.html#dom-document-write">document.write()</a></code> API to
                   14028:   insert an inline <code><a href="the-script-element.html#the-script-element">script</a></code> element during parsing, the URL
                   14029:   of the resource containing the script would ideally be reported as
                   14030:   being the external script, and the line number might ideally be
                   14031:   reported as the line with the <code title="dom-document-write"><a href="dynamic-markup-insertion.html#dom-document-write">document.write()</a></code> call or where the
                   14032:   string passed to that call was first constructed. Naturally,
                   14033:   implementing this can be somewhat non-trivial.</p>
                   14034: 
                   14035:   <p>User agents are similarly encouraged to keep careful track of the
                   14036:   original line numbers, even in the face of <code title="dom-document-write"><a href="dynamic-markup-insertion.html#dom-document-write">document.write()</a></code> calls mutating
                   14037:   the document as it is parsed, or <a href="#event-handler-content-attributes">event handler content
                   14038:   attributes</a> spanning multiple lines.</p>
                   14039: 
                   14040:   </div>
                   14041: 
                   14042: 
                   14043:   <div class="impl">
                   14044: 
                   14045:   <h4 id="event-loops"><span class="secno">6.1.4 </span>Event loops</h4>
                   14046: 
                   14047:   <h5 id="definitions-1"><span class="secno">6.1.4.1 </span>Definitions</h5>
                   14048: 
                   14049:   <p>To coordinate events, user interaction, scripts, rendering,
                   14050:   networking, and so forth, user agents must use <dfn id="event-loop" title="event
                   14051:   loop">event loops</dfn> as described in this section.</p>
                   14052: 
                   14053:   <p>There must be at least one <a href="#event-loop">event loop</a> per user
                   14054:   agent, and at most one <a href="#event-loop">event loop</a> per <a href="#unit-of-related-similar-origin-browsing-contexts">unit of
                   14055:   related similar-origin browsing contexts</a>.</p>
                   14056: 
                   14057:   <p class="note">When there is more than one <a href="#event-loop">event loop</a>
                   14058:   for a <a href="#unit-of-related-browsing-contexts">unit of related browsing contexts</a>, complications
                   14059:   arise when a <a href="#browsing-context">browsing context</a> in that group is <a href="#navigate" title="navigate">navigated</a> such that it switches from one
                   14060:   <a href="#unit-of-related-similar-origin-browsing-contexts">unit of related similar-origin browsing contexts</a> to
                   14061:   another. This specification does not currently describe how to
                   14062:   handle these complications.</p>
                   14063: 
                   14064:   <p>An <a href="#event-loop">event loop</a> always has at least one <a href="#browsing-context">browsing
                   14065:   context</a>. If an <a href="#event-loop">event loop</a>'s <a href="#browsing-context" title="browsing context">browsing contexts</a> all go away, then
                   14066:   the <a href="#event-loop">event loop</a> goes away as well. A <a href="#browsing-context">browsing
                   14067:   context</a> always has an <a href="#event-loop">event loop</a> coordinating
                   14068:   its activities.</p>
                   14069: 
                   14070:     <p class="note">Other specifications can define new kinds of event
                   14071:   loops that aren't associated with browsing contexts; in particular,
                   14072:   the Web Workers specification does so.</p>
                   14073:   
                   14074:   <p>An <a href="#event-loop">event loop</a> has one or more <dfn id="task-queue" title="task
                   14075:   queue">task queues</dfn>. A <a href="#task-queue">task queue</a> is an ordered
                   14076:   list of <dfn id="concept-task" title="concept-task">tasks</dfn>, which can be:</p>
                   14077: 
                   14078:   <dl><dt>Events</dt>
                   14079: 
                   14080:    <dd>
                   14081: 
                   14082:     <p>Asynchronously dispatching an <code><a href="infrastructure.html#event">Event</a></code> object at a
                   14083:     particular <code><a href="infrastructure.html#eventtarget">EventTarget</a></code> object is a task.</p>
                   14084: 
                   14085:     <p class="note">Not all events are dispatched using the <a href="#task-queue">task
                   14086:     queue</a>, many are dispatched synchronously during other
                   14087:     tasks.</p>
                   14088: 
                   14089:    </dd>
                   14090: 
                   14091: 
                   14092:    <dt>Parsing</dt>
                   14093: 
                   14094:    <dd><p>The <a href="#html-parser">HTML parser</a> tokenizing one or more bytes,
                   14095:    and then processing any resulting tokens, is typically a
                   14096:    task.</p></dd>
                   14097: 
                   14098: 
                   14099:    <dt>Callbacks</dt>
                   14100: 
                   14101:    <dd><p>Calling a callback asynchronously is a task.</p></dd>
                   14102: 
                   14103: 
                   14104:    <dt>Using a resource</dt>
                   14105: 
                   14106:    <dd><p>When an algorithm <a href="urls.html#fetch" title="fetch">fetches</a> a
                   14107:    resource, if the fetching occurs asynchronously then the processing
                   14108:    of the resource once some or all of the resource is available is a
                   14109:    task.</p></dd>
                   14110: 
                   14111: 
                   14112:    <dt>Reacting to DOM manipulation</dt>
                   14113: 
                   14114:    <dd><p>Some elements have tasks that trigger in response to DOM
                   14115:    manipulation, e.g. when that element is <a href="infrastructure.html#insert-an-element-into-a-document" title="insert an
                   14116:    element into a document">inserted into the document</a>.</p>
                   14117: 
                   14118:   </dd></dl><p>When a user agent is to <dfn id="queue-a-task">queue a task</dfn>, it must add the
                   14119:   given task to one of the <a href="#task-queue" title="task queue">task queues</a>
                   14120:   of the relevant <a href="#event-loop">event loop</a>. All the tasks from one
                   14121:   particular <dfn id="task-source">task source</dfn> (e.g. the callbacks generated by
                   14122:   timers, the events fired for mouse movements, the tasks queued for
                   14123:   the parser) must always be added to the same <a href="#task-queue">task
                   14124:   queue</a>, but tasks from different <a href="#task-source" title="task
                   14125:   source">task sources</a> may be placed in different <a href="#task-queue" title="task queue">task queues</a>.</p>
                   14126: 
                   14127:   <p class="example">For example, a user agent could have one
                   14128:   <a href="#task-queue">task queue</a> for mouse and key events (the <a href="#user-interaction-task-source">user
                   14129:   interaction task source</a>), and another for everything
                   14130:   else. The user agent could then give keyboard and mouse events
                   14131:   preference over other tasks three quarters of the time, keeping the
                   14132:   interface responsive but not starving other task queues, and never
                   14133:   processing events from any one <a href="#task-source">task source</a> out of
                   14134:   order.</p>
                   14135: 
                   14136:   <p>Each <a href="#concept-task" title="concept-task">task</a> that is <a href="#queue-a-task" title="queue a task">queued</a> onto a <a href="#task-queue">task queue</a> of
                   14137:   an <a href="#event-loop">event loop</a> defined by this specification is
                   14138:   associated with a <code><a href="dom.html#document">Document</a></code>; if the task was queued in
                   14139:   the context of an element, then it is the element's
                   14140:   <code><a href="dom.html#document">Document</a></code>; if the task was queued in the context of a
                   14141:   <a href="#browsing-context">browsing context</a>, then it is the <a href="#browsing-context">browsing
                   14142:   context</a>'s <a href="#active-document">active document</a> at the time the task
                   14143:   was queued; if the task was queued by or for a <a href="#concept-script" title="concept-script">script</a> then the document is the
                   14144:   <a href="#script's-document">script's document</a>.</p>
                   14145: 
                   14146:   <p>A user agent may have one <dfn id="storage-mutex">storage mutex</dfn>. This mutex is
                   14147:   used to control access to shared state like cookies. At any one
                   14148:   point, the <a href="#storage-mutex">storage mutex</a> is either free, or owned by a
                   14149:   particular <a href="#event-loop">event loop</a> or instance of the <a href="urls.html#fetch" title="fetch">fetching</a> algorithm.</p>
                   14150: 
                   14151:   <p>If a user agent does not implement a <a href="#storage-mutex">storage mutex</a>,
                   14152:   it is exempt from implementing the requirements that require it to
                   14153:   acquire or release it.</p>
                   14154: 
                   14155:   <p class="note">User agent implementors have to make a choice
                   14156:   between two evils. On the one hand, not implementing the storage
                   14157:   mutex means that there is a risk of data corruption: a site could,
                   14158:   for instance, try to read a cookie, increment its value, then write
                   14159:   it back out, using the new value of the cookie as a unique
                   14160:   identifier for the session; if the site does this twice in two
                   14161:   different browser windows at the same time, it might end up using
                   14162:   the same "unique" identifier for both sessions, with potentially
                   14163:   disastrous effects. On the other hand, implementing the storage
                   14164:   mutex has potentially serious performance implications: whenever a
                   14165:   site uses Web Storage or cookies, all other sites that try to use
                   14166:   Web Storage or cookies are blocked until the first site finishes.</p>
                   14167: 
                   14168:   <p>Whenever a <a href="#concept-script" title="concept-script">script</a> calls into
                   14169:   a <a href="infrastructure.html#plugin">plugin</a>, and whenever a <a href="infrastructure.html#plugin">plugin</a> calls into
                   14170:   a <a href="#concept-script" title="concept-script">script</a>, the user agent must
                   14171:   release the <a href="#storage-mutex">storage mutex</a>.</p>
                   14172: 
                   14173: 
1.191     sruby    14174:   <h5 id="processing-model-3"><span class="secno">6.1.4.2 </span>Processing model</h5>
1.190     sruby    14175: 
                   14176:   <p>An <a href="#event-loop">event loop</a> must continually run through the
                   14177:   following steps for as long as it exists:</p>
                   14178: 
                   14179:   <ol><li><p>Run the oldest <a href="#concept-task" title="concept-task">task</a> on one
                   14180:    of the <a href="#event-loop">event loop</a>'s <a href="#task-queue" title="task queue">task
                   14181:    queues</a>, ignoring tasks whose associated
                   14182:    <code><a href="dom.html#document">Document</a></code>s are not <a href="#fully-active">fully active</a>. The user
                   14183:    agent may pick any <a href="#task-queue">task queue</a>.</p></li>
                   14184: 
                   14185:    <!-- warning! if you renumber these steps, make sure to update the
                   14186:    "spin the event loop" algorithm below! -->
                   14187: 
                   14188:    <li><p>If the <a href="#storage-mutex">storage mutex</a> is now owned by the
                   14189:    <a href="#event-loop">event loop</a>, release it so that it is once again
                   14190:    free.</p></li>
                   14191: 
                   14192:    <li><p>Remove that task from its <a href="#task-queue">task queue</a>.</p></li>
                   14193: 
                   14194:    <li><p><a href="#perform-a-microtask-checkpoint">Perform a microtask checkpoint</a>.</p></li>
                   14195: 
                   14196:    <li><p><a href="#provide-a-stable-state">Provide a stable state</a>.</p></li>
                   14197: 
                   14198:    <li><p>If necessary, update the rendering or user interface of any
                   14199:    <code><a href="dom.html#document">Document</a></code> or <a href="#browsing-context">browsing context</a> to reflect
                   14200:    the current state.</p></li>
                   14201: 
                   14202:    <li><p>Return to the first step of the <a href="#event-loop">event
                   14203:    loop</a>.</p></li>
                   14204: 
                   14205:   </ol><hr><p>When a user agent is to <dfn id="perform-a-microtask-checkpoint">perform a microtask
                   14206:   checkpoint</dfn>, if the <a href="#running-mutation-observers">running mutation observers</a>
                   14207:   flag is false, then the user agent must run the following steps:</p>
                   14208: 
                   14209:   <ol><li><p>Let the <a href="#running-mutation-observers">running mutation observers</a> flag be
                   14210:    true.</p></li>
                   14211: 
                   14212:    <li>
                   14213: 
                   14214:     <p><a href="infrastructure.html#concept-mo-invoke" title="concept-mo-invoke">Invoke
                   14215:     <code>MutationObserver</code> objects</a> for the <a href="#unit-of-related-similar-origin-browsing-contexts">unit
                   14216:     of related similar-origin browsing contexts</a> to which the
                   14217:     <a href="#script's-browsing-context">script's browsing context</a> belongs.</p>
                   14218: 
                   14219:     <p class="note">This will typically fire scripted callbacks, which
                   14220:     calls the <a href="#jump-to-a-code-entry-point">jump to a code entry-point</a> algorithm, which
                   14221:     calls this <a href="#perform-a-microtask-checkpoint">perform a microtask checkpoint</a> algorithm
                   14222:     again, which is why we use the <a href="#running-mutation-observers">running mutation
                   14223:     observers</a> flag to avoid reentrancy.</p>
                   14224: 
                   14225:    </li>
                   14226: 
                   14227:    <li><p>Let the <a href="#running-mutation-observers">running mutation observers</a> flag be
                   14228:    false.</p></li>
                   14229: 
                   14230:   </ol><hr><p>When the user agent is to <dfn id="provide-a-stable-state">provide a stable state</dfn>, if
                   14231:   any asynchronously-running algorithms are <dfn id="await-a-stable-state" title="await a stable
                   14232:   state">awaiting a stable state</dfn>, then the user agent must run
                   14233:   their <dfn id="synchronous-section">synchronous section</dfn> and then resume running their
                   14234:   asynchronous algorithm (if appropriate).</p>
                   14235: 
                   14236:   <p class="note">A <a href="#synchronous-section">synchronous section</a> never mutates
                   14237:   the DOM, runs any script, or has any other side-effects.</p>
                   14238: 
                   14239:   <p class="note">Steps in <a href="#synchronous-section" title="synchronous
                   14240:   section">synchronous sections</a> are marked with &#8987;.</p>
                   14241: 
                   14242:   <hr><p>When an algorithm says to <dfn id="spin-the-event-loop">spin the event loop</dfn> until
                   14243:   a condition <var title="">goal</var> is met, the user agent must run
                   14244:   the following steps:</p>
                   14245: 
                   14246:   <ol><li><p>Let <var title="">task source</var> be the <a href="#task-source">task
                   14247:    source</a> of the currently running <a href="#concept-task" title="concept-task">task</a>.</p></li>
                   14248: 
                   14249:    <li>
                   14250: 
                   14251:     <p>Stop the currently running <a href="#concept-task" title="concept-task">task</a>, allowing the <a href="#event-loop">event
                   14252:     loop</a> to resume, but continue these steps
                   14253:     asynchronously.</p>
                   14254: 
                   14255:     <p class="note">This causes the <a href="#event-loop">event loop</a> to move on
                   14256:     to the second step of its processing model (defined above).</p>
                   14257: 
                   14258:    </li>
                   14259: 
                   14260:    <li><p>Wait until the condition <var title="">goal</var> is
                   14261:    met.</p></li>
                   14262: 
                   14263:    <li><p><a href="#queue-a-task">Queue a task</a> to continue running these steps,
                   14264:    using the <a href="#task-source">task source</a> <var title="">task
                   14265:    source</var>. Wait until this task runs before continuing these
                   14266:    steps.</p></li>
                   14267: 
                   14268:    <li><p>Return to the caller.</p></li>
                   14269: 
                   14270:   </ol><hr><p>Some of the algorithms in this specification, for historical
                   14271:   reasons, require the user agent to <dfn id="pause">pause</dfn> while running a
                   14272:   <a href="#concept-task" title="concept-task">task</a> until a condition <var title="">goal</var> is met. This means running the following
                   14273:   steps:</p>
                   14274: 
                   14275:   <ol><li><p>If any asynchronously-running algorithms are <a href="#await-a-stable-state" title="await a stable state">awaiting a stable state</a>, then
                   14276:    run their <a href="#synchronous-section">synchronous section</a> and then resume running
                   14277:    their asynchronous algorithm. (See the <a href="#event-loop">event loop</a>
                   14278:    processing model definition above for details.)</p>
                   14279: 
                   14280:    </li><li><p>If necessary, update the rendering or user interface of any
                   14281:    <code><a href="dom.html#document">Document</a></code> or <a href="#browsing-context">browsing context</a> to reflect
                   14282:    the current state.</p></li>
                   14283: 
                   14284:    <li><p>Wait until the condition <var title="">goal</var> is met.
                   14285:    While a user agent has a paused <a href="#concept-task" title="concept-task">task</a>, the corresponding <a href="#event-loop">event
                   14286:    loop</a> must not run further <a href="#concept-task" title="concept-task">tasks</a>, and any script in the currently
                   14287:    running <a href="#concept-task" title="concept-task">task</a> must block. User
                   14288:    agents should remain responsive to user input while paused,
                   14289:    however, albeit in a reduced capacity since the <a href="#event-loop">event
                   14290:    loop</a> will not be doing anything.</p></li>
                   14291: 
                   14292:   </ol><hr><p>When a user agent is to <dfn id="obtain-the-storage-mutex">obtain the storage mutex</dfn> as
                   14293:   part of running a <a href="#concept-task" title="concept-task">task</a>, it must
                   14294:   run through the following steps:</p>
                   14295: 
                   14296:   <ol><li><p>If the <a href="#storage-mutex">storage mutex</a> is already owned by this
                   14297:    <a href="#concept-task" title="concept-task">task</a>'s <a href="#event-loop">event loop</a>,
                   14298:    then abort these steps.</p></li>
                   14299: 
                   14300:    <li><p>Otherwise, <a href="#pause">pause</a> until the <a href="#storage-mutex">storage
                   14301:    mutex</a> can be taken by the <a href="#event-loop">event loop</a>.</p></li>
                   14302: 
                   14303:    <li><p>Take ownership of the <a href="#storage-mutex">storage mutex</a>.</p></li>
                   14304: 
                   14305:   </ol></div>
                   14306: 
                   14307: 
                   14308:   <div class="impl">
                   14309: 
                   14310:   <h5 id="generic-task-sources"><span class="secno">6.1.4.3 </span>Generic task sources</h5>
                   14311: 
                   14312:   <p>The following <a href="#task-source" title="task source">task sources</a> are
                   14313:   used by a number of mostly unrelated features in this and other
                   14314:   specifications.</p>
                   14315: 
                   14316:   <dl><dt>The <dfn id="dom-manipulation-task-source">DOM manipulation task source</dfn></dt>
                   14317: 
                   14318:    <dd>
                   14319: 
                   14320:     <p>This <a href="#task-source">task source</a> is used for features that react
                   14321:     to DOM manipulations, such as things that happen asynchronously
                   14322:     when an element is <a href="infrastructure.html#insert-an-element-into-a-document" title="insert an element into a
                   14323:     document">inserted into the document</a>.</p>
                   14324: 
                   14325:    </dd>
                   14326: 
                   14327:    <dt>The <dfn id="user-interaction-task-source">user interaction task source</dfn></dt>
                   14328: 
                   14329:    <dd>
                   14330: 
                   14331:     <p>This <a href="#task-source">task source</a> is used for features that react
                   14332:     to user interaction, for example keyboard or mouse input.</p>
                   14333: 
                   14334:     <p>Asynchronous events sent in response to user input (e.g. <code title="event-click"><a href="infrastructure.html#event-click">click</a></code> events) must be fired using
                   14335:     <a href="#concept-task" title="concept-task">tasks</a> <a href="#queue-a-task" title="queue a
                   14336:     task">queued</a> with the <a href="#user-interaction-task-source">user interaction task
                   14337:     source</a>. <a href="#refsDOMEVENTS">[DOMEVENTS]</a></p>
                   14338: 
                   14339:    </dd>
                   14340: 
                   14341:    <dt>The <dfn id="networking-task-source">networking task source</dfn></dt>
                   14342: 
                   14343:    <dd>
                   14344: 
                   14345:     <p>This <a href="#task-source">task source</a> is used for features that trigger
                   14346:     in response to network activity.</p>
                   14347: 
                   14348:     <!-- XHR should use this -->
                   14349: 
                   14350:    </dd>
                   14351: 
                   14352:    <dt>The <dfn id="history-traversal-task-source">history traversal task source</dfn></dt>
                   14353: 
                   14354:    <dd>
                   14355: 
                   14356:     <p>This <a href="#task-source">task source</a> is used to queue calls to <code title="dom-history-back"><a href="#dom-history-back">history.back()</a></code> and similar
                   14357:     APIs.</p>
                   14358: 
                   14359:    </dd>
                   14360: 
                   14361:   </dl></div>
                   14362: 
                   14363: 
                   14364: 
                   14365:   <div class="impl">
                   14366: 
                   14367:   <!-- SCRIPT EXEC -->
                   14368:   <h4 id="javascript-protocol"><span class="secno">6.1.5 </span><dfn title="javascript protocol">The <code title="">javascript:</code> URL scheme</dfn></h4>
                   14369: 
                   14370:   <p>When a <a href="urls.html#url">URL</a> using the <code title="">javascript:</code> scheme is <dfn id="concept-js-deref" title="concept-js-deref">dereferenced</dfn>, the user agent must run
                   14371:   the following steps:</p>
                   14372: 
                   14373:   <ol><li><p>Let the script source be the string obtained using the
                   14374:    content retrieval operation defined for <code title="">javascript:</code> URLs. <a href="#refsJSURL">[JSURL]</a></p></li>
                   14375: 
                   14376:    <li>
                   14377: 
                   14378:     <p>Use the appropriate step from the following list:</p>
                   14379: 
                   14380:     <dl><dt>If a <a href="#browsing-context">browsing context</a> is being <a href="#navigate" title="navigate">navigated</a> to a <code>javascript:</code>
                   14381:      URL, and the <a href="#source-browsing-context">source browsing context</a> for that
                   14382:      navigation, if any, has <a href="#concept-bc-noscript" title="concept-bc-noscript">scripting disabled</a></dt>
                   14383: 
                   14384:      <dd>
                   14385: 
                   14386:       <p>Let <var title="">result</var> be void.</p>
                   14387: 
                   14388:      </dd>
                   14389: 
                   14390:      <dt>If a <a href="#browsing-context">browsing context</a> is being <a href="#navigate" title="navigate">navigated</a> to a <code>javascript:</code>
                   14391:      URL, and the <a href="#active-document">active document</a> of that browsing
                   14392:      context has the <a href="#same-origin">same origin</a> as the script given by
                   14393:      that URL</dt>
                   14394: 
                   14395:      <dd>
                   14396: 
                   14397:       <!-- http://www.hixie.ch/tests/adhoc/html/navigation/javascript-url/ -->
                   14398: 
                   14399:       <p>Let <var title="">address</var> be the <a href="dom.html#the-document's-address" title="the
                   14400:       document's address">address</a> of the <a href="#active-document">active
                   14401:       document</a> of the <a href="#browsing-context">browsing context</a> being
                   14402:       navigated.</p>
                   14403: 
                   14404:       <p>If <var title="">address</var> is <code><a href="urls.html#about:blank">about:blank</a></code>,
                   14405:       and the <a href="#browsing-context">browsing context</a> being navigated has a
                   14406:       <a href="#creator-browsing-context">creator browsing context</a>, then let <var title="">address</var> be the <a href="dom.html#the-document's-address" title="the document's
                   14407:       address">address</a> of the <a href="#creator-document">creator
                   14408:       <code>Document</code></a> instead.</p>
                   14409: 
                   14410:       <p><a href="#create-a-script-from-a-node" title="create a script from a node">Create a
                   14411:       script</a> from the <code><a href="dom.html#document">Document</a></code> node of the
                   14412:       <a href="#active-document">active document</a>, using the aforementioned script
                   14413:       source, the <a href="urls.html#url">URL</a> of the resource where the
                   14414:       <code>javascript:</code> URL, was found, and assuming the
                   14415:       scripting language is JavaScript.</p>
                   14416: 
                   14417:       <p>Let <var title="">result</var> be the return value of the
                   14418:       <i><a href="#initial-code-entry-point">initial code entry-point</a></i> of this <a href="#concept-script" title="concept-script">script</a>. If an exception was
                   14419:       thrown, let <var title="">result</var> be void instead. (The
                   14420:       result will be void also if <a href="#concept-bc-noscript" title="concept-bc-noscript">scripting is disabled</a>.)</p>
                   14421: 
                   14422:       <p>When it comes time to <a href="#set-the-document's-address">set the document's address</a>
                   14423:       in the <a href="#navigate" title="navigate">navigation algorithm</a>, use
                   14424:       <var title="">address</var> as the <a href="#override-url">override
                   14425:       URL</a>.</p>
                   14426: 
                   14427:      </dd>
                   14428: 
                   14429: <!--(turns out only Firefox does this, and only for <img src=""> and a
                   14430:      few others, so it's commented out for now pending someone having
                   14431:      a convincing use case)
                   14432: 
                   14433:      <dt>If the <code>Document</code> object of the element,
                   14434:      attribute, or style sheet from which the <code>javascript:</code>
                   14435:      URL was reached has an associated <span>browsing
                   14436:      context</span></dt>
                   14437: 
                   14438:      <dd>
                   14439: 
                   14440:       <p><span>Create an impotent script</span> using the
                   14441:       aforementioned script source, with the scripting language set to
                   14442:       JavaScript, and with the <code>Document</code>'s object's
                   14443:       <span>browsing context</span> as the browsing context.</p>
                   14444: 
                   14445:       <p>Let <var title="">result</var> be the return value of the
                   14446:       <i>initial code entry-point</i> of this <span
                   14447:       title="concept-script">script</span>. If an exception was
                   14448:       thrown, let <var title="">result</var> be void instead. (The
                   14449:       result will be void also if <span
                   14450:       title="concept-bc-noscript">scripting is disabled</span>.)</p>
                   14451: 
                   14452:      </dd>
                   14453: -->
                   14454: 
                   14455:      <dt>Otherwise</dt>
                   14456: 
                   14457:      <dd>
                   14458: 
                   14459:       <p>Let <var title="">result</var> be void.</p>
                   14460: 
                   14461:      </dd>
                   14462: 
                   14463:     </dl></li>
                   14464: 
                   14465:    <li>
                   14466: 
                   14467:     <p>If the result of executing the script is void (there is no
                   14468:     return value), then the URL must be treated in a manner equivalent
                   14469:     to an HTTP resource with an HTTP 204 No Content response.</p>
                   14470: 
                   14471:     <p>Otherwise, the URL must be treated in a manner equivalent to an
                   14472:     HTTP resource with a 200 OK response whose <a href="urls.html#content-type" title="Content-Type">Content-Type metadata</a> is
                   14473:     <code><a href="#text/html">text/html</a></code> and whose response body is the return value
                   14474:     converted to a string value.</p>
                   14475: 
                   14476:     <p class="note">Certain contexts, in particular <code><a href="the-img-element.html#the-img-element">img</a></code>
                   14477:     elements, ignore the <a href="urls.html#content-type" title="Content-Type">Content-Type
                   14478:     metadata</a>.</p>
                   14479: 
                   14480:    </li>
                   14481: 
                   14482:   </ol><div class="example">
                   14483: 
                   14484:    <p>So for example a <code title="">javascript:</code> URL for a
                   14485:    <code title="attr-img-src"><a href="the-img-element.html#attr-img-src">src</a></code> attribute of an
                   14486:    <code><a href="the-img-element.html#the-img-element">img</a></code> element would be evaluated in the context of an
                   14487:    empty object as soon as the attribute is set; it would then be
                   14488:    sniffed to determine the image type and decoded as an image.</p>
                   14489: 
                   14490:    <p>A <code title="">javascript:</code> URL in an <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute of an <code><a href="the-a-element.html#the-a-element">a</a></code>
                   14491:    element would only be evaluated when the link was <a href="#following-hyperlinks-0" title="following hyperlinks">followed</a>.</p>
                   14492: 
                   14493:    <p>The <code title="attr-iframe-src"><a href="the-iframe-element.html#attr-iframe-src">src</a></code> attribute of an
                   14494:    <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> element would be evaluated in the context of
                   14495:    the <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>'s own <a href="#browsing-context">browsing context</a>; once
                   14496:    evaluated, its return value (if it was not void) would replace that
                   14497:    <a href="#browsing-context">browsing context</a>'s document, thus changing the
                   14498:    variables visible in that <a href="#browsing-context">browsing context</a>.</p>
                   14499: 
                   14500:   </div>
                   14501: 
                   14502:   </div>
                   14503: 
                   14504: 
                   14505: 
                   14506:   <h4 id="events"><span class="secno">6.1.6 </span>Events</h4>
                   14507: 
                   14508:   <div class="impl">
                   14509: 
                   14510:   <h5 id="event-handler-attributes"><span class="secno">6.1.6.1 </span>Event handlers</h5>
                   14511: 
                   14512:   </div>
                   14513: 
                   14514:   <!--test: <a href="http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A...%3Cscript%3E%0Aw(a%3Ddocument.implementation.createDocument(null%2C%20null%2C%20null))%3B%0Aw(a.appendChild(a.createElementNS('https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttp%2Fwww.w3.org%2F1999%2Fxhtml'%2C%20'html')))%3B%0Aw(b%3Da.firstChild.appendChild(a.createElementNS('https%3A%2F%2F2.zoppoz.workers.dev%3A443%2Fhttp%2Fwww.w3.org%2F1999%2Fxhtml'%2C%20'body')))%3B%0Aw(b.test%20%3D%20w)%3B%0Aw(b.setAttribute('onclick'%2C%20'test(%22fire%3A%20%22%20%2B%20event)'))%3B%0Aw(b.onclick)%3B%0Aw(e%3Da.createEvent('Event'))%3B%0Aw(e.initEvent('click'%2C%20false%2C%20false))%3B%0Aw(b.dispatchEvent(e))%3B%0A%3C%2Fscript%3E">test</a>-->
                   14515: 
                   14516:   <p>Many objects can have <dfn id="event-handlers">event handlers</dfn> specified. These
                   14517:   act as non-capture event listeners for the object on which they are
                   14518:   specified. <a href="#refsDOMCORE">[DOMCORE]</a></p>
                   14519: 
                   14520:   <p>An <a href="#event-handlers" title="event handlers">event handler</a> can either
                   14521:   have the value null or be set to a callback object. This is defined
                   14522:   using the <code><a href="#eventhandler">EventHandler</a></code> callback interface type. <span class="impl">Initially, event handlers must be set to
                   14523:   null.</span></p>
                   14524: 
                   14525:   <p>Event handlers are exposed in one of two ways.</p>
                   14526: 
                   14527:   <p>The first way, common to all event handlers, is as an <a href="#event-handler-idl-attributes" title="event handler IDL attributes">event handler IDL
                   14528:   attribute</a>.</p>
                   14529: 
                   14530:   <p>The second way is as an <a href="#event-handler-content-attributes" title="event handler content
                   14531:   attributes">event handler content attribute</a>. Event handlers
                   14532:   on <a href="infrastructure.html#html-elements">HTML elements</a> and some of the event handlers on
                   14533:   <code><a href="#window">Window</a></code> objects are exposed in this way.</p>
                   14534: 
                   14535:   <div class="impl">
                   14536: 
                   14537:   <hr><p><dfn id="event-handler-idl-attributes">Event handler IDL attributes</dfn>, on setting, must set the
                   14538:   corresponding event handler to their new value, and on
                   14539:   getting, must return whatever the current value of the corresponding
                   14540:   event handler is (possibly null).</p>
                   14541: 
                   14542:   <p>If an <a href="#event-handler-idl-attributes" title="event handler IDL attributes">event handler
                   14543:   IDL attribute</a> exposes an <a href="#event-handlers" title="event handlers">event
                   14544:   handler</a> of an object that doesn't exist, it must always
                   14545:   return null on getting and must do nothing on setting.</p>
                   14546: 
                   14547:   <p class="note">This can happen in particular for <a href="#event-handler-idl-attributes" title="event
                   14548:   handler IDL attributes">event handler IDL attribute</a> on
                   14549:   <code><a href="the-body-element.html#the-body-element">body</a></code> elements that do not have corresponding
                   14550:   <code><a href="#window">Window</a></code> objects.</p>
                   14551: 
                   14552:   <p class="note">Certain event handler IDL attributes have additional
                   14553:   requirements, in particular the <code title="handler-MessagePort-onmessage">onmessage</code> attribute of
                   14554:   <code>MessagePort</code> objects.</p>
                   14555: 
                   14556:   <p>On getting, <a href="#event-handler-idl-attributes">event handler IDL attributes</a> must return
                   14557:   the value of their corresponding event handlers, except when the
                   14558:   value is an <a href="#concept-handler-error" title="concept-handler-error">internal error
                   14559:   value</a>, in which case the user agent must set the corresponding
                   14560:   event handler to null, and then throw an exception corresponding to
                   14561:   the error condition.</p>
                   14562: 
                   14563:   <hr></div>
                   14564: 
                   14565:   <p><dfn id="event-handler-content-attributes">Event handler content attributes</dfn>, when specified, must
                   14566:   contain valid JavaScript code which, when parsed, would match the
                   14567:   <code title="">FunctionBody</code> production after automatic
                   14568:   semicolon insertion. <a href="#refsECMA262">[ECMA262]</a></p>
                   14569: 
                   14570:   <div class="impl">
                   14571: 
                   14572:   <!-- SCRIPT EXEC -->
                   14573:   <p>When an <a href="#event-handler-content-attributes" title="event handler content attributes">event
                   14574:   handler content attribute</a> is set, if the element is owned by
                   14575:   a <code><a href="dom.html#document">Document</a></code> that is in a <a href="#browsing-context">browsing context</a>,
                   14576:   and <a href="#concept-bc-script" title="concept-bc-script">scripting is enabled</a> for
                   14577:   that <a href="#browsing-context">browsing context</a>, the user agent must run the
                   14578:   following steps to create a <a href="#concept-script" title="concept-script">script</a> after setting the content
                   14579:   attribute to its new value:</p>
                   14580: 
                   14581:   <ol><li><p>Set the corresponding <a href="#event-handlers" title="event handlers">event
                   14582:    handler</a> to null.</p></li>
                   14583: 
                   14584:    <li><p>Set up a <a href="#script-execution-environment">script execution environment</a> for
                   14585:    JavaScript.</p></li>
                   14586: 
                   14587:    <li><p>Let <var title="">body</var> be the <a href="#event-handler-content-attributes" title="event
                   14588:    handler content attributes">event handler content
                   14589:    attribute</a>'s new value.</p></li>
                   14590: 
                   14591:    <li>
                   14592: 
                   14593:     <p>If <var title="">body</var> is not parsable as
                   14594:     <i>FunctionBody</i> or if parsing detects an <i>early error</i>
                   14595:     then <a href="#set-the-event-handler-content-attribute-to-an-error">set the event handler content attribute to an
                   14596:     error</a> as defined below, and abort these steps.</p>
                   14597: 
                   14598:     <p class="note"><i>FunctionBody</i> is defined in ECMAScript
                   14599:     edition 5 section 13 Function Definition. <i>Early error</i> is
                   14600:     defined in ECMAScript edition 5 section 16 Errors. <a href="#refsECMA262">[ECMA262]</a></p>
                   14601: 
                   14602:    </li>
                   14603: 
                   14604:    <li>
                   14605: 
                   14606:     <p>If <var title="">body</var> begins with a Directive Prologue
                   14607:     that contains a Use Strict Directive then let <var title="">strict</var> be true, otherwise let <var title="">strict</var> be false.</p> <!-- we can't defer to 10.1.1
                   14608:     since we're not using a Function constructor but doing it
                   14609:     ourselves. -->
                   14610: 
                   14611:     <p class="note">The terms "Directive Prologue" and "Use Strict
                   14612:     Directive" are defined in ECMAScript edition 5 section 14.1
                   14613:     Directive Prologues and the Use Strict Directive. <a href="#refsECMA262">[ECMA262]</a></p>
                   14614: 
                   14615:    </li>
                   14616: 
                   14617: <!--
                   14618: currently this is unnecessary: http://www.w3.org/Bugs/Public/show_bug.cgi?id=11977#c4
                   14619:    <li>
                   14620: 
                   14621:     <p>If <var title="">strict</var> is true, and anything in <var
                   14622:     title="">body</var> is a <code>SyntaxError</code> according to the
                   14623:     Strict Mode Restrictions, then <span>set the event handler content
                   14624:     attribute to an error</span> as defined below, and abort these
                   14625:     steps.</p>
                   14626: 
                   14627:     <p class="note">The Strict Mode Restrictions are those listed in
                   14628:     ECMAScript edition 5 section 13.1 Strict Mode Restrictions. <a
                   14629:     href="#refsECMA262">[ECMA262]</a></p>
                   14630: 
                   14631:    </li>
                   14632: -->
                   14633: 
                   14634:    <li>
                   14635: 
                   14636:     <p>Using the script execution environment created above, create a
                   14637:     function object (as defined in ECMAScript edition 5 section 13.2
                   14638:     Creating Function Objects), with:</p>
                   14639: 
                   14640:     <dl><dt>Parameter list <var title="">FormalParameterList</var></dt>
                   14641: 
                   14642:      <dd>
                   14643: 
                   14644:       <dl class="switch"><dt>If the attribute is the <code title="handler-window-onerror"><a href="#handler-window-onerror">onerror</a></code> attribute of the
                   14645:        <code><a href="#window">Window</a></code> object</dt>
                   14646: 
                   14647:        <dd>Let the function have four arguments, named <code title="">event</code>, <code title="">source</code>, <code title="">lineno</code>, and <code title="">column</code>.</dd>
                   14648:        <!-- /column/ is new as of 2012; see https://www.w3.org/Bugs/Public/show_bug.cgi?id=13319 -->
                   14649: 
                   14650:        <dt>Otherwise</dt>
                   14651: 
                   14652:        <dd>Let the function have a single argument called <code title="">event</code>.</dd>
                   14653: 
                   14654:       </dl></dd>
                   14655: 
                   14656:      <dt>Function body <var title="">FunctionBody</var></dt>
                   14657: 
                   14658:      <dd>The result of parsing <var title="">body</var> above.</dd>
                   14659: 
                   14660:      <dt>Lexical Environment <var title="">Scope</var></dt>
                   14661: 
                   14662:      <dd>
                   14663: 
                   14664:       <ol><li>Let <var title="">Scope</var> be the result of
                   14665:        NewObjectEnvironment(the element's <code><a href="dom.html#document">Document</a></code>, the
                   14666:        <var title="">global environment</var>).</li>
                   14667: 
                   14668:        <li>If the element has a <a href="association-of-controls-and-forms.html#form-owner">form owner</a>, let <var title="">Scope</var> be the result of NewObjectEnvironment(the
                   14669:        element's <a href="association-of-controls-and-forms.html#form-owner">form owner</a>, <var title="">Scope</var>).</li>
                   14670: 
                   14671:        <li>Let <var title="">Scope</var> be the result of
                   14672:        NewObjectEnvironment(the element's object, <var title="">Scope</var>).</li>
                   14673: 
                   14674:       </ol><p class="note">NewObjectEnvironment() is defined in ECMAScript
                   14675:       edition 5 section 10.2.2.3 NewObjectEnvironment (O, E). <a href="#refsECMA262">[ECMA262]</a></p>
                   14676: 
                   14677:      </dd>
                   14678: 
                   14679:      <dt>Boolean flag <var title="">Strict</var></dt>
                   14680: 
                   14681:      <dd>The value of <var title="">strict</var>.</dd>
                   14682: 
                   14683:     </dl><p>Let this new function be the only entry in the script's
                   14684:     <a href="#list-of-code-entry-points">list of code entry-points</a>.</p>
                   14685: 
                   14686:    </li>
                   14687: 
                   14688:    <li><p>Set up the <a href="#script's-global-object">script's global object</a>, the
                   14689:    <a href="#script's-browsing-context">script's browsing context</a>, the <a href="#script's-document">script's
1.191     sruby    14690:    document</a>, the <a href="#script's-referrer-source">script's referrer source</a>, the
                   14691:    <a href="#script's-url-character-encoding">script's URL character encoding</a>, and the
                   14692:    <a href="#script's-base-url">script's base URL</a> from <a href="#the-script-settings-determined-from-the-node">the script settings
                   14693:    determined from the node</a> on which the attribute is being
                   14694:    set.</p></li>
1.190     sruby    14695: 
                   14696:    <li><p>Set the corresponding <a href="#event-handlers" title="event handlers">event
                   14697:    handler</a> to the aforementioned function.</p></li>
                   14698: 
                   14699:   </ol><p>When a user agent is required, by the steps above, to <dfn id="set-the-event-handler-content-attribute-to-an-error">set
                   14700:   the event handler content attribute to an error</dfn>, the user
                   14701:   agent must set the corresponding <a href="#event-handlers" title="event handlers">event
                   14702:   handler</a> to an <dfn id="concept-handler-error" title="concept-handler-error">internal
                   14703:   error value</dfn> representing the error condition, keeping track of
                   14704:   the <a href="urls.html#url">URL</a> of the resource where the <a href="#event-handler-content-attributes" title="event
                   14705:   handler content attributes">event handler content attribute</a>
                   14706:   was set, and the relevant line number inside that resource where the
                   14707:   error occurred.</p>
                   14708: 
                   14709:   <p>When an event handler content attribute is removed, the user
                   14710:   agent must set the corresponding <a href="#event-handlers" title="event handlers">event
                   14711:   handler</a> to null.</p>
                   14712:   <!--
                   14713:   http://software.hixie.ch/utilities/js/live-dom-viewer/saved/245 onload
                   14714:   http://software.hixie.ch/utilities/js/live-dom-viewer/saved/247 onclick
                   14715:   see http://www.w3.org/Bugs/Public/show_bug.cgi?id=7626#c5 for reasoning
                   14716:   -->
                   14717: 
                   14718:   </div>
                   14719: 
                   14720:   <p class="note">When an <a href="#event-handler-content-attributes" title="event handler content
                   14721:   attributes">event handler content attribute</a> is set on an
                   14722:   element owned by a <code><a href="dom.html#document">Document</a></code> that is not in a
                   14723:   <a href="#browsing-context">browsing context</a>, the corresponding event handler is
                   14724:   not changed.</p>
                   14725: 
                   14726:   <!-- v2: we should probably support HTML4's Content-Script-Type header here. -->
                   14727: 
                   14728:   <div class="impl">
                   14729: 
                   14730:   <hr><p>When an <a href="#event-handlers" title="event handlers">event handler</a> <var title="">H</var> of an element or object <var title="">T</var>
                   14731:   implementing the <code><a href="infrastructure.html#eventtarget">EventTarget</a></code> interface is first set to
                   14732:   a non-null value, the user agent must append an <a href="infrastructure.html#concept-event-listener" title="concept-event-listener">event listener</a> to the list of
                   14733:   <a href="infrastructure.html#concept-event-listener" title="concept-event-listener">event listeners</a>
                   14734:   associated with <var title="">T</var> with <i>type</i> set to the
                   14735:   <dfn id="event-handler-event-type">event handler event type</dfn> corresponding to <var title="">H</var>, <i>capture</i> set to false, and <i>listener</i>
                   14736:   set to <a href="#the-event-handler-processing-algorithm">the event handler processing algorithm</a> defined
                   14737:   below. <a href="#refsDOMCORE">[DOMCORE]</a></p>
                   14738: 
                   14739:   <p class="note">The <i>listener</i> is emphatically <em>not</em> the
                   14740:   <a href="#event-handlers" title="event handlers">event handler</a> itself. Every
                   14741:   event handler ends up registering the same <i>listener</i>, the
                   14742:   algorithm defined below, which takes care of invoking the right
                   14743:   callback, and processing the callback's return value.</p>
                   14744: 
                   14745:   <p class="note">This only happens the first time the <a href="#event-handlers" title="event handlers">event handler</a>'s value is set. Since
                   14746:   listeners are called in the order they were registered, the order of
                   14747:   event listeners for a particular event type will always be first the
                   14748:   event listeners registered with <code title="dom-EventTarget-addEventListener">addEventListener()</code>
                   14749:   before the first time the <a href="#event-handlers" title="event handlers">event
                   14750:   handler</a> was set to a non-null value, then the callback to
                   14751:   which it is currently set, if any, and finally the event listeners
                   14752:   registered with <code title="dom-EventTarget-addEventListener">addEventListener()</code>
                   14753:   <em>after</em> the first time the <a href="#event-handlers" title="event handlers">event
                   14754:   handler</a> was set to a non-null value.</p>
                   14755: 
                   14756:   </div>
                   14757: 
                   14758:   <div class="example">
                   14759: 
                   14760:    <p>This example demonstrates the order in which event listeners are
                   14761:    invoked. If the button in this example is clicked by the user, the
                   14762:    page will show four alerts, with the text "ONE", "TWO", "THREE",
                   14763:    and "FOUR" respectively.</p>
                   14764: 
                   14765:    <pre>&lt;button id="test"&gt;Start Demo&lt;/button&gt;
                   14766: &lt;script&gt;
                   14767:  var button = document.getElementById('test');
                   14768:  button.addEventListener('click', function () { alert('ONE') }, false);
                   14769:  button.setAttribute('onclick', "alert('NOT CALLED')"); // event handler listener is registered here
                   14770:  button.addEventListener('click', function () { alert('THREE') }, false);
                   14771:  button.onclick = function () { alert('TWO'); };
                   14772:  button.addEventListener('click', function () { alert('FOUR') }, false);
                   14773: &lt;/script&gt;</pre>
                   14774: 
                   14775:   </div>
                   14776: 
                   14777:   <div class="impl">
                   14778: 
                   14779:   <p class="note">The interfaces implemented by the event object do
                   14780:   not influence whether an <a href="#event-handlers" title="event handlers">event
                   14781:   handler</a> is triggered or not.</p>
                   14782: 
                   14783:   <p><dfn id="the-event-handler-processing-algorithm">The event handler processing algorithm</dfn> for an
                   14784:   <a href="#event-handlers" title="event handlers">event handler</a> <var title="">H</var> and an <code><a href="infrastructure.html#event">Event</a></code> object <var title="">E</var> is as follows:</p>
                   14785: 
                   14786:   <ol><li><p>If <var title="">H</var>'s value is null, then abort these
                   14787:    steps.</p></li>
                   14788: 
                   14789:    <li><p>If <var title="">H</var>'s value is an <a href="#concept-handler-error" title="concept-handler-error">internal error value</a>, then set
                   14790:    the <a href="#event-handlers" title="event handlers">event handler</a> to null and
                   14791:    then <a href="#report-the-error">report the error</a> at the appropriate URL and with
                   14792:    the appropriate position (line number and column number), as
                   14793:    established when the error was detected, in the <a href="#origin-0">origin</a>
                   14794:    of the <code><a href="dom.html#document">Document</a></code> of the node of the <a href="#event-handler-content-attributes" title="event
                   14795:    handler content attributes">event handler content attribute</a>,
                   14796:    using the <code title="handler-window-onerror"><a href="#handler-window-onerror">onerror</a></code> <a href="#event-handlers" title="event handlers">event handler</a> of the
                   14797:    <code><a href="#window">Window</a></code> object of that <code><a href="dom.html#document">Document</a></code>, and abort
                   14798:    these steps.</p></li>
                   14799: 
                   14800:    <li><p>Let <var title="">callback</var> be <var title="">H</var>'s
                   14801:    value, the callback that the <a href="#event-handlers" title="event handlers">event
                   14802:    handler</a> was last set to.</p></li>
                   14803: 
                   14804:    <li><p>Invoke <var title="">callback</var> with one
                   14805:    argument, the value of which is the <code><a href="infrastructure.html#event">Event</a></code> object <var title="">E</var>, with the <i title="dfn-callback-this-value">callback this value</i> set to
                   14806:    <var title="">E</var>'s <code title="dom-Event-currentTarget">currentTarget</code>. Let the
                   14807:    return value be <var title="">return value</var>. <a href="#refsWEBIDL">[WEBIDL]</a></p></li>
                   14808: 
                   14809:    <li>
                   14810: 
                   14811:     <p>Process <var title="">return value</var> as follows:</p>
                   14812: 
                   14813:     <dl class="switch"><dt>If the event type is <code class="event-mouseover">mouseover</code></dt>
                   14814: 
                   14815:      <dd><p>If <var title="">return value</var> is a boolean with the
                   14816:      value true, then cancel the event.</p></dd>
                   14817: 
                   14818:      <dt>If the <code><a href="infrastructure.html#event">Event</a></code> object <var title="">E</var> is a
                   14819:      <code><a href="#beforeunloadevent">BeforeUnloadEvent</a></code> object</dt>
                   14820: 
                   14821:      <dd><p>If <var title="">return value</var> is a string, and the
                   14822:      <code><a href="infrastructure.html#event">Event</a></code> object <var title="">E</var>'s <code title="dom-BeforeUnloadEvent-returnValue"><a href="#dom-beforeunloadevent-returnvalue">returnValue</a></code>
                   14823:      attribute's value is the empty string, then set the <code title="dom-BeforeUnloadEvent-returnValue"><a href="#dom-beforeunloadevent-returnvalue">returnValue</a></code>
                   14824:      attribute's value to <var title="">return value</var>.</p></dd>
                   14825: 
                   14826:      <dt>Otherwise</dt>
                   14827: 
                   14828:      <dd><p>If <var title="">return value</var> is a boolean with the
                   14829:      value false, then cancel the event.</p></dd>
                   14830: 
                   14831:      <!-- IE actually uncancels the event if the function returns true -->
                   14832: 
                   14833:     </dl></li>
                   14834: 
                   14835:   </ol></div>
                   14836: 
                   14837:   <hr><p>The <code><a href="#eventhandler">EventHandler</a></code> interface represents a callback
                   14838:   used for event handlers. It is represented in Web IDL as
                   14839:   follows:</p>
                   14840: 
                   14841:   <pre class="idl">[TreatNonCallableAsNull]
                   14842: callback <dfn id="eventhandlernonnull">EventHandlerNonNull</dfn> = any (<a href="infrastructure.html#event">Event</a> event);
                   14843: typedef <a href="#eventhandlernonnull">EventHandlerNonNull</a>? <dfn id="eventhandler">EventHandler</dfn>;</pre>
                   14844: 
                   14845:   <p class="note">In JavaScript, any <code>Function</code> object
                   14846:   implements this interface.</p>
                   14847: 
                   14848:   <div class="example">
                   14849: 
                   14850:    <p>For example, the following document fragment:</p>
                   14851: 
                   14852:    <pre>&lt;body onload="alert(this)" onclick="alert(this)"&gt;</pre>
                   14853: 
                   14854:    <p>...leads to an alert saying "<code title="">[object&#160;Window]</code>" when the document is loaded,
                   14855:    and an alert saying "<code title="">[object&#160;HTMLBodyElement]</code>" whenever the user
                   14856:    clicks something in the page.</p>
                   14857: 
                   14858:   </div>
                   14859: 
                   14860:   <p class="note">The return value of the function affects whether the
                   14861:   event is canceled or not: <span class="impl">as described
                   14862:   above,</span> if the return value is false, the event is canceled
                   14863:   (except for <code class="event-mouseover">mouseover</code> events,
                   14864:   where the return value has to be true to cancel the event). With
                   14865:   <code title="event-beforeunload">beforeunload</code> events, the
                   14866:   value is instead used to determine the message to show the user.</p>
                   14867: 
                   14868:   <p>For historical reasons, the <code title="handler-onerror"><a href="#handler-onerror">onerror</a></code> handler has different
                   14869:   arguments:</p>
                   14870: 
                   14871:   <pre class="idl">[TreatNonCallableAsNull]
                   14872: callback <dfn id="onerroreventhandlernonnull">OnErrorEventHandlerNonNull</dfn> = any ((<a href="infrastructure.html#event">Event</a> or DOMString) event, DOMString source, unsigned long lineno, unsigned long column);
                   14873: typedef <a href="#onerroreventhandlernonnull">OnErrorEventHandlerNonNull</a>? <dfn id="onerroreventhandler">OnErrorEventHandler</dfn>;</pre>
                   14874: 
                   14875:   <!-- onreadystatechange is also defined specially, using [LenientThis]; see IDL -->
                   14876: 
                   14877: 
                   14878:   <h5 id="event-handlers-on-elements,-document-objects,-and-window-objects"><span class="secno">6.1.6.2 </span>Event handlers on elements, <code><a href="dom.html#document">Document</a></code> objects, and <code><a href="#window">Window</a></code> objects</h5>
                   14879: 
                   14880:   <p>The following are the <a href="#event-handlers">event handlers</a> (and their
                   14881:   corresponding <a href="#event-handler-event-type" title="event handler event type">event handler
                   14882:   event types</a>) <span class="impl">that must be</span> supported
                   14883:   by all <a href="infrastructure.html#html-elements">HTML elements</a>, as both content attributes and
                   14884:   IDL attributes, and on <code><a href="dom.html#document">Document</a></code> and <code><a href="#window">Window</a></code>
                   14885:   objects, as IDL attributes.</p>
                   14886: 
                   14887:   <table><thead><tr><th><a href="#event-handlers" title="event handlers">Event handler</a> </th><th><a href="#event-handler-event-type">Event handler event type</a>
                   14888:    </th></tr></thead><tbody><tr><td><dfn id="handler-onabort" title="handler-onabort"><code>onabort</code></dfn> </td><td> <code title="event-abort">abort</code>
                   14889:     </td></tr><tr><td><dfn id="handler-oncancel" title="handler-oncancel"><code>oncancel</code></dfn> </td><td> <code title="event-media-cancel">cancel</code>
                   14890:     </td></tr><tr><td><dfn id="handler-oncanplay" title="handler-oncanplay"><code>oncanplay</code></dfn> </td><td> <code title="event-media-canplay"><a href="media-elements.html#event-media-canplay">canplay</a></code>
                   14891:     </td></tr><tr><td><dfn id="handler-oncanplaythrough" title="handler-oncanplaythrough"><code>oncanplaythrough</code></dfn> </td><td> <code title="event-media-canplaythrough"><a href="media-elements.html#event-media-canplaythrough">canplaythrough</a></code>
                   14892:     </td></tr><tr><td><dfn id="handler-onchange" title="handler-onchange"><code>onchange</code></dfn> </td><td> <code title="event-change">change</code> <!-- widely used -->
                   14893:     </td></tr><tr><td><dfn id="handler-onclick" title="handler-onclick"><code>onclick</code></dfn> </td><td> <code title="event-click"><a href="infrastructure.html#event-click">click</a></code> <!-- widely used -->
                   14894:     </td></tr><tr><td><dfn id="handler-onclose" title="handler-onclose"><code>onclose</code></dfn> </td><td> <code title="event-close">close</code> <!-- new for <dialog> -->
                   14895:     </td></tr><tr><td><dfn id="handler-oncontextmenu" title="handler-oncontextmenu"><code>oncontextmenu</code></dfn> </td><td> <code title="event-contextmenu">contextmenu</code> <!-- widely used -->
                   14896:     </td></tr><tr><td><dfn id="handler-oncuechange" title="handler-oncuechange"><code>oncuechange</code></dfn> </td><td> <code title="event-cuechange">cuechange</code>
                   14897:     </td></tr><tr><td><dfn id="handler-ondblclick" title="handler-ondblclick"><code>ondblclick</code></dfn> </td><td> <code title="event-dblclick">dblclick</code> <!-- widely used -->
                   14898:     </td></tr><tr><td><dfn id="handler-ondrag" title="handler-ondrag"><code>ondrag</code></dfn> </td><td> <code title="event-drag"><a href="#event-drag">drag</a></code>
                   14899:     </td></tr><tr><td><dfn id="handler-ondragend" title="handler-ondragend"><code>ondragend</code></dfn> </td><td> <code title="event-dragend"><a href="#event-dragend">dragend</a></code>
                   14900:     </td></tr><tr><td><dfn id="handler-ondragenter" title="handler-ondragenter"><code>ondragenter</code></dfn> </td><td> <code title="event-dragenter"><a href="#event-dragenter">dragenter</a></code>
                   14901:     </td></tr><tr><td><dfn id="handler-ondragleave" title="handler-ondragleave"><code>ondragleave</code></dfn> </td><td> <code title="event-dragleave"><a href="#event-dragleave">dragleave</a></code>
                   14902:     </td></tr><tr><td><dfn id="handler-ondragover" title="handler-ondragover"><code>ondragover</code></dfn> </td><td> <code title="event-dragover"><a href="#event-dragover">dragover</a></code>
                   14903:     </td></tr><tr><td><dfn id="handler-ondragstart" title="handler-ondragstart"><code>ondragstart</code></dfn> </td><td> <code title="event-dragstart"><a href="#event-dragstart">dragstart</a></code> <!-- widely used -->
                   14904:     </td></tr><tr><td><dfn id="handler-ondrop" title="handler-ondrop"><code>ondrop</code></dfn> </td><td> <code title="event-drop"><a href="#event-drop">drop</a></code>
                   14905:     </td></tr><tr><td><dfn id="handler-ondurationchange" title="handler-ondurationchange"><code>ondurationchange</code></dfn> </td><td> <code title="event-media-durationchange"><a href="media-elements.html#event-media-durationchange">durationchange</a></code>
                   14906:     </td></tr><tr><td><dfn id="handler-onemptied" title="handler-onemptied"><code>onemptied</code></dfn> </td><td> <code title="event-media-emptied"><a href="media-elements.html#event-media-emptied">emptied</a></code>
                   14907:     </td></tr><tr><td><dfn id="handler-onended" title="handler-onended"><code>onended</code></dfn> </td><td> <code title="event-media-ended"><a href="media-elements.html#event-media-ended">ended</a></code>
                   14908:     </td></tr><tr><td><dfn id="handler-oninput" title="handler-oninput"><code>oninput</code></dfn> </td><td> <code title="event-input">input</code>
                   14909:     </td></tr><tr><td><dfn id="handler-oninvalid" title="handler-oninvalid"><code>oninvalid</code></dfn> </td><td> <code title="event-invalid">invalid</code>
                   14910:     </td></tr><tr><td><dfn id="handler-onkeydown" title="handler-onkeydown"><code>onkeydown</code></dfn> </td><td> <code title="event-keydown">keydown</code> <!-- widely used -->
                   14911:     </td></tr><tr><td><dfn id="handler-onkeypress" title="handler-onkeypress"><code>onkeypress</code></dfn> </td><td> <code title="event-keypress">keypress</code> <!-- widely used -->
                   14912:     </td></tr><tr><td><dfn id="handler-onkeyup" title="handler-onkeyup"><code>onkeyup</code></dfn> </td><td> <code title="event-keyup">keyup</code> <!-- widely used -->
                   14913:     </td></tr><tr><td><dfn id="handler-onloadeddata" title="handler-onloadeddata"><code>onloadeddata</code></dfn> </td><td> <code title="event-media-loadeddata"><a href="media-elements.html#event-media-loadeddata">loadeddata</a></code>
                   14914:     </td></tr><tr><td><dfn id="handler-onloadedmetadata" title="handler-onloadedmetadata"><code>onloadedmetadata</code></dfn> </td><td> <code title="event-media-loadedmetadata"><a href="media-elements.html#event-media-loadedmetadata">loadedmetadata</a></code>
                   14915:     </td></tr><tr><td><dfn id="handler-onloadstart" title="handler-onloadstart"><code>onloadstart</code></dfn> </td><td> <code title="event-media-loadstart"><a href="media-elements.html#event-media-loadstart">loadstart</a></code>
                   14916:     </td></tr><tr><td><dfn id="handler-onmousedown" title="handler-onmousedown"><code>onmousedown</code></dfn> </td><td> <code title="event-mousedown">mousedown</code> <!-- widely used -->
                   14917:     </td></tr><tr><td><dfn id="handler-onmousemove" title="handler-onmousemove"><code>onmousemove</code></dfn> </td><td> <code title="event-mousemove">mousemove</code> <!-- widely used -->
                   14918:     </td></tr><tr><td><dfn id="handler-onmouseout" title="handler-onmouseout"><code>onmouseout</code></dfn> </td><td> <code title="event-mouseout">mouseout</code> <!-- widely used -->
                   14919:     </td></tr><tr><td><dfn id="handler-onmouseover" title="handler-onmouseover"><code>onmouseover</code></dfn> </td><td> <code title="event-mouseover">mouseover</code> <!-- widely used -->
                   14920:     </td></tr><tr><td><dfn id="handler-onmouseup" title="handler-onmouseup"><code>onmouseup</code></dfn> </td><td> <code title="event-mouseup">mouseup</code> <!-- widely used -->
                   14921:     </td></tr><tr><td><dfn id="handler-onmousewheel" title="handler-onmousewheel"><code>onmousewheel</code></dfn> </td><td> <code title="event-mousewheel">mousewheel</code> <!-- widely used -->
                   14922:     </td></tr><tr><td><dfn id="handler-onpause" title="handler-onpause"><code>onpause</code></dfn> </td><td> <code title="event-media-pause"><a href="media-elements.html#event-media-pause">pause</a></code>
                   14923:     </td></tr><tr><td><dfn id="handler-onplay" title="handler-onplay"><code>onplay</code></dfn> </td><td> <code title="event-media-play"><a href="media-elements.html#event-media-play">play</a></code>
                   14924:     </td></tr><tr><td><dfn id="handler-onplaying" title="handler-onplaying"><code>onplaying</code></dfn> </td><td> <code title="event-media-playing"><a href="media-elements.html#event-media-playing">playing</a></code>
                   14925:     </td></tr><tr><td><dfn id="handler-onprogress" title="handler-onprogress"><code>onprogress</code></dfn> </td><td> <code title="event-media-progress"><a href="media-elements.html#event-media-progress">progress</a></code>
                   14926:     </td></tr><tr><td><dfn id="handler-onratechange" title="handler-onratechange"><code>onratechange</code></dfn> </td><td> <code title="event-media-ratechange"><a href="media-elements.html#event-media-ratechange">ratechange</a></code>
                   14927:     </td></tr><tr><td><dfn id="handler-onreset" title="handler-onreset"><code>onreset</code></dfn> </td><td> <code title="event-reset">reset</code>
                   14928:     </td></tr><tr><td><dfn id="handler-onseeked" title="handler-onseeked"><code>onseeked</code></dfn> </td><td> <code title="event-media-seeked"><a href="media-elements.html#event-media-seeked">seeked</a></code>
                   14929:     </td></tr><tr><td><dfn id="handler-onseeking" title="handler-onseeking"><code>onseeking</code></dfn> </td><td> <code title="event-media-seeking"><a href="media-elements.html#event-media-seeking">seeking</a></code>
                   14930:     </td></tr><tr><td><dfn id="handler-onselect" title="handler-onselect"><code>onselect</code></dfn> </td><td> <code title="event-select">select</code> <!-- widely used --> <!-- [CSSOM] -->
                   14931:     </td></tr><tr><td><dfn id="handler-onshow" title="handler-onshow"><code>onshow</code></dfn> </td><td> <code title="event-show">show</code>
                   14932:     </td></tr><tr><td><dfn id="handler-onstalled" title="handler-onstalled"><code>onstalled</code></dfn> </td><td> <code title="event-media-stalled"><a href="media-elements.html#event-media-stalled">stalled</a></code>
                   14933:     </td></tr><tr><td><dfn id="handler-onsubmit" title="handler-onsubmit"><code>onsubmit</code></dfn> </td><td> <code title="event-submit">submit</code> <!-- widely used -->
                   14934:     </td></tr><tr><td><dfn id="handler-onsuspend" title="handler-onsuspend"><code>onsuspend</code></dfn> </td><td> <code title="event-media-suspend"><a href="media-elements.html#event-media-suspend">suspend</a></code>
                   14935:     </td></tr><tr><td><dfn id="handler-ontimeupdate" title="handler-ontimeupdate"><code>ontimeupdate</code></dfn> </td><td> <code title="event-media-timeupdate"><a href="media-elements.html#event-media-timeupdate">timeupdate</a></code>
                   14936:     </td></tr><tr><td><dfn id="handler-onvolumechange" title="handler-onvolumechange"><code>onvolumechange</code></dfn> </td><td> <code title="event-media-volumechange"><a href="media-elements.html#event-media-volumechange">volumechange</a></code>
                   14937:     </td></tr><tr><td><dfn id="handler-onwaiting" title="handler-onwaiting"><code>onwaiting</code></dfn> </td><td> <code title="event-media-waiting"><a href="media-elements.html#event-media-waiting">waiting</a></code>
                   14938: 
                   14939: <!-- not supported, use dnd: -->
                   14940: <!--<tr><td><dfn title="handler-onbeforecopy"><code>onbeforecopy</code></dfn> <td> <code title="event-beforecopy">beforecopy</code>--> <!-- widely used -->
                   14941: <!--<tr><td><dfn title="handler-oncopy"><code>oncopy</code></dfn> <td> <code title="event-copy">copy</code>--> <!-- widely used -->
                   14942: <!--<tr><td><dfn title="handler-onpaste"><code>onpaste</code></dfn> <td> <code title="event-paste">paste</code>--> <!-- widely used -->
                   14943: <!-- not supported yet (v2?): -->
                   14944: <!--<tr><td><dfn title="handler-onselectstart"><code>onselectstart</code></dfn> <td> <code title="event-selectstart">selectstart</code>--> <!-- widely used -->
                   14945:   </td></tr></tbody></table><hr><p>The following are the <a href="#event-handlers">event handlers</a> (and their
                   14946:   corresponding <a href="#event-handler-event-type" title="event handler event type">event handler
                   14947:   event types</a>) <span class="impl">that must be</span> supported
                   14948:   by all <a href="infrastructure.html#html-elements">HTML elements</a> other than <code><a href="the-body-element.html#the-body-element">body</a></code> and
                   14949:   <code><a href="#frameset">frameset</a></code>, as both content attributes and IDL
                   14950:   attributes, and on <code><a href="dom.html#document">Document</a></code> objects, as IDL
                   14951:   attributes:</p>
                   14952: 
                   14953:   <table><thead><tr><th><a href="#event-handlers" title="event handlers">Event handler</a> </th><th><a href="#event-handler-event-type">Event handler event type</a>
                   14954:    </th></tr></thead><tbody><tr><td><dfn id="handler-onblur" title="handler-onblur"><code>onblur</code></dfn> </td><td> <code title="event-blur">blur</code> <!-- widely used -->
                   14955:     </td></tr><tr><td><dfn id="handler-onerror" title="handler-onerror"><code>onerror</code></dfn> </td><td> <code title="event-error">error</code>
                   14956:     </td></tr><tr><td><dfn id="handler-onfocus" title="handler-onfocus"><code>onfocus</code></dfn> </td><td> <code title="event-focus">focus</code> <!-- widely used -->
                   14957:     </td></tr><tr><td><dfn id="handler-onload" title="handler-onload"><code>onload</code></dfn> </td><td> <code title="event-load">load</code>
                   14958:     </td></tr><tr><td><dfn id="handler-onscroll" title="handler-onscroll"><code>onscroll</code></dfn> </td><td> <code title="event-scroll">scroll</code>
                   14959:   </td></tr></tbody></table><hr><p>The following are the <a href="#event-handlers">event handlers</a> (and their
                   14960:   corresponding <a href="#event-handler-event-type" title="event handler event type">event handler
                   14961:   event types</a>) <span class="impl">that must be</span> supported
                   14962:   by <code><a href="#window">Window</a></code> objects, as IDL attributes on the
                   14963:   <code><a href="#window">Window</a></code> object, and with corresponding content
                   14964:   attributes and IDL attributes exposed on the <code><a href="the-body-element.html#the-body-element">body</a></code> and
                   14965:   <code><a href="#frameset">frameset</a></code> elements:</p>
                   14966: 
                   14967:   <table><thead><tr><th><a href="#event-handlers" title="event handlers">Event handler</a> </th><th><a href="#event-handler-event-type">Event handler event type</a>
                   14968:    </th></tr></thead><tbody><tr><td><dfn id="handler-window-onafterprint" title="handler-window-onafterprint"><code>onafterprint</code></dfn> </td><td> <code title="event-afterprint">afterprint</code>
                   14969:     </td></tr><tr><td><dfn id="handler-window-onbeforeprint" title="handler-window-onbeforeprint"><code>onbeforeprint</code></dfn> </td><td> <code title="event-beforeprint">beforeprint</code>
                   14970:     </td></tr><tr><td><dfn id="handler-window-onbeforeunload" title="handler-window-onbeforeunload"><code>onbeforeunload</code></dfn> </td><td> <code title="event-beforeunload">beforeunload</code>
                   14971:     </td></tr><tr><td><dfn id="handler-window-onblur" title="handler-window-onblur"><code>onblur</code></dfn> </td><td> <code title="event-blur">blur</code>
                   14972:     </td></tr><tr><td><dfn id="handler-window-onerror" title="handler-window-onerror"><code>onerror</code></dfn> </td><td> <code title="event-error">error</code>
                   14973:     </td></tr><tr><td><dfn id="handler-window-onfocus" title="handler-window-onfocus"><code>onfocus</code></dfn> </td><td> <code title="event-focus">focus</code>
                   14974:     </td></tr><tr><td><dfn id="handler-window-onhashchange" title="handler-window-onhashchange"><code>onhashchange</code></dfn> </td><td> <code title="event-hashchange"><a href="#event-hashchange">hashchange</a></code> <!-- new -->
                   14975:     </td></tr><tr><td><dfn id="handler-window-onload" title="handler-window-onload"><code>onload</code></dfn> </td><td> <code title="event-load">load</code> <!-- widely used -->
                   14976:     </td></tr><tr><td><dfn id="handler-window-onmessage" title="handler-window-onmessage"><code>onmessage</code></dfn> </td><td> <code title="event-message">message</code> <!-- new for postMessage -->
                   14977:     </td></tr><tr><td><dfn id="handler-window-onoffline" title="handler-window-onoffline"><code>onoffline</code></dfn> </td><td> <code title="event-offline"><a href="#event-offline">offline</a></code> <!-- new -->
                   14978:     </td></tr><tr><td><dfn id="handler-window-ononline" title="handler-window-ononline"><code>ononline</code></dfn> </td><td> <code title="event-online"><a href="#event-online">online</a></code> <!-- new -->
                   14979:     </td></tr><tr><td><dfn id="handler-window-onpagehide" title="handler-window-onpagehide"><code>onpagehide</code></dfn> </td><td> <code title="event-pagehide"><a href="#event-pagehide">pagehide</a></code> <!-- new -->
                   14980:     </td></tr><tr><td><dfn id="handler-window-onpageshow" title="handler-window-onpageshow"><code>onpageshow</code></dfn> </td><td> <code title="event-pageshow"><a href="#event-pageshow">pageshow</a></code> <!-- new -->
                   14981:     </td></tr><tr><td><dfn id="handler-window-onpopstate" title="handler-window-onpopstate"><code>onpopstate</code></dfn> </td><td> <code title="event-popstate"><a href="#event-popstate">popstate</a></code> <!-- new -->
                   14982:     </td></tr><tr><td><dfn id="handler-window-onresize" title="handler-window-onresize"><code>onresize</code></dfn> </td><td> <code title="event-resize">resize</code> <!-- widely used --> <!-- [CSSOM] -->
                   14983:     </td></tr><tr><td><dfn id="handler-window-onscroll" title="handler-window-onscroll"><code>onscroll</code></dfn> </td><td> <code title="event-scroll">scroll</code>
                   14984:     </td></tr><tr><td><dfn id="handler-window-onstorage" title="handler-window-onstorage"><code>onstorage</code></dfn> </td><td> <code title="event-storage">storage</code> <!-- new -->
                   14985:     </td></tr><tr><td><dfn id="handler-window-onunload" title="handler-window-onunload"><code>onunload</code></dfn> </td><td> <code title="event-unload">unload</code> <!-- widely used -->
                   14986:   </td></tr></tbody></table><p class="note">The <code title="handler-window-onerror"><a href="#handler-window-onerror">onerror</a></code>
                   14987:   handler is also used for <a href="#runtime-script-errors">reporting script errors</a>.</p>
                   14988: 
                   14989:   <hr><!-- this guy is only on Document and not on HTMLElement because
                   14990:   otherwise HTMLScriptElement would have it and that causes
                   14991:   compatibility issues since IE fires readystatechange events on
                   14992:   <script>, not load events, and we can't fire both, and some sites
                   14993:   try to decide which to look for based on the presence of
                   14994:   script.onreadystatechange on HTMLScriptElement.
                   14995:      http://www.w3.org/Bugs/Public/show_bug.cgi?id=13965
                   14996:      http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-September/033136.html
                   14997:   --><p>The following are the <a href="#event-handlers">event handlers</a> (and their
                   14998:   corresponding <a href="#event-handler-event-type" title="event handler event type">event handler
                   14999:   event types</a>) <span class="impl">that must be</span> supported
                   15000:   on <code><a href="dom.html#document">Document</a></code> objects as IDL attributes:</p>
                   15001: 
                   15002:   <table><thead><tr><th><a href="#event-handlers" title="event handlers">Event handler</a> </th><th><a href="#event-handler-event-type">Event handler event type</a>
                   15003:    </th></tr></thead><tbody><tr><td><dfn id="handler-onreadystatechange" title="handler-onreadystatechange"><code>onreadystatechange</code></dfn> </td><td> <code title="event-readystatechange"><a href="dom.html#event-readystatechange">readystatechange</a></code>
                   15004:   </td></tr></tbody></table><div class="impl">
                   15005: 
                   15006:   <h5 id="event-firing"><span class="secno">6.1.6.3 </span>Event firing</h5>
                   15007: 
                   15008:   <p>Certain operations and methods are defined as firing events on
                   15009:   elements. For example, the <code title="dom-click"><a href="#dom-click">click()</a></code>
                   15010:   method on the <code><a href="elements.html#htmlelement">HTMLElement</a></code> interface is defined as
                   15011:   firing a <code title="event-click"><a href="infrastructure.html#event-click">click</a></code> event on the
                   15012:   element. <a href="#refsDOMEVENTS">[DOMEVENTS]</a></p>
                   15013: 
                   15014:   <p><dfn id="fire-a-simple-event" title="fire a simple event">Firing a simple event named <var title="">e</var></dfn> means that an event with the name <var title="">e</var>, which does not bubble (except where otherwise
                   15015:   stated) and is not cancelable (except where otherwise stated), and
                   15016:   which uses the <code><a href="infrastructure.html#event">Event</a></code> interface, must be created and
                   15017:   dispatched at the given target.</p>
                   15018: 
                   15019:   <p><dfn id="fire-a-synthetic-mouse-event" title="fire a synthetic mouse event">Firing a synthetic
                   15020:   mouse event named <var title="">e</var></dfn> means that an event
                   15021:   with the name <var title="">e</var>, which does not bubble (except
                   15022:   where otherwise stated) and is not cancelable (except where
                   15023:   otherwise stated), and which uses the <code><a href="infrastructure.html#mouseevent-10">MouseEvent</a></code>
                   15024:   interface, must be created and dispatched at the given target. The
                   15025:   event object must have its <code title="">screenX</code>, <code title="">screenY</code>, <code title="">clientX</code>, <code title="">clientY</code>, and <code title="">button</code> attributes
                   15026:   initialized to 0, its <code title="">ctrlKey</code>, <code title="">shiftKey</code>, <code title="">altKey</code>, and <code title="">metaKey</code> attributes initialized according to the
                   15027:   current state of the key input device, if any (false for any keys
                   15028:   that are not available), its <code title="">detail</code> attribute
                   15029:   initialized to 1, and its <code title="">relatedTarget</code>
                   15030:   attribute initialized to null. The <code title="">getModifierState()</code> method on the object must return
                   15031:   values appropriately describing the state of the key input device at
                   15032:   the time the event is created.</p>
                   15033: 
                   15034:   <p><dfn id="fire-a-click-event" title="fire a click event">Firing a <code title="event-click">click</code> event</dfn> means <a href="#fire-a-synthetic-mouse-event" title="fire
                   15035:   a synthetic mouse event">firing a synthetic mouse event named <code title="event-click">click</code></a>, which bubbles and is
                   15036:   cancelable.</p>
                   15037: 
                   15038:   <p>The default action of these events is to do nothing except where
                   15039:   otherwise stated.</p>
                   15040: 
                   15041:   </div>
                   15042: 
                   15043: 
                   15044:   <div class="impl">
                   15045: 
                   15046:   <h5 id="events-and-the-window-object"><span class="secno">6.1.6.4 </span>Events and the <code><a href="#window">Window</a></code> object</h5>
                   15047: 
                   15048:   <p>When an event is dispatched at a DOM node in a
                   15049:   <code><a href="dom.html#document">Document</a></code> in a <a href="#browsing-context">browsing context</a>, if the
                   15050:   event is not a <code title="event-load">load</code> event, the user
                   15051:   agent must act as if, for the purposes of <a href="infrastructure.html#concept-event-dispatch" title="concept-event-dispatch">event dispatching</a>, the
                   15052:   <code><a href="#window">Window</a></code> object is the parent of the
                   15053:   <code><a href="dom.html#document">Document</a></code> object. <a href="#refsDOMCORE">[DOMCORE]</a></p>
                   15054: 
                   15055:   </div>
                   15056: 
                   15057: 
                   15058:   <h3 id="atob"><span class="secno">6.2 </span>Base64 utility methods</h3>
                   15059: 
                   15060:   <p>The <code title="dom-windowbase64-atob"><a href="#dom-windowbase64-atob">atob()</a></code> and <code title="dom-windowbase64-btoa"><a href="#dom-windowbase64-btoa">btoa()</a></code> methods allow authors to
                   15061:   transform content to and from the base64 encoding.</p>
                   15062: 
                   15063:   <!-- v2: actual binary support -->
                   15064: 
                   15065:   <pre class="idl">[NoInterfaceObject]
                   15066: interface <dfn id="windowbase64">WindowBase64</dfn> {
                   15067:   DOMString <a href="#dom-windowbase64-btoa" title="dom-windowbase64-btoa">btoa</a>(DOMString btoa);
                   15068:   DOMString <a href="#dom-windowbase64-atob" title="dom-windowbase64-atob">atob</a>(DOMString atob);
                   15069: };
                   15070: <a href="#window">Window</a> implements <a href="#windowbase64">WindowBase64</a>;</pre>
                   15071: 
                   15072:   <p class="note">In these APIs, for mnemonic purposes, the "b" can be
                   15073:   considered to stand for "binary", and the "a" for "ASCII". In
                   15074:   practice, though, for primarily historical reasons, both the input
                   15075:   and output of these functions are Unicode strings.</p>
                   15076: 
                   15077:   <dl class="domintro"><dt><var title="">result</var> = <var title="">window</var> . <code title="dom-windowbase64-btoa"><a href="#dom-windowbase64-btoa">btoa</a></code>( <var title="">data</var> )</dt>
                   15078: 
                   15079:    <dd>
                   15080: 
                   15081:     <p>Takes the input data, in the form of a Unicode string
                   15082:     containing only characters in the range U+0000 to U+00FF, each
                   15083:     representing a binary byte with values 0x00 to 0xFF respectively,
                   15084:     and converts it to its base64 representation, which it returns.</p>
                   15085: 
                   15086:     <p>Throws an <code><a href="infrastructure.html#invalidcharactererror">InvalidCharacterError</a></code> exception if the
                   15087:     input string contains any out-of-range characters.</p>
                   15088: 
                   15089:    </dd>
                   15090: 
                   15091:    <dt><var title="">result</var> = <var title="">window</var> . <code title="dom-windowbase64-atob"><a href="#dom-windowbase64-atob">atob</a></code>( <var title="">data</var> )</dt>
                   15092: 
                   15093:    <dd>
                   15094: 
                   15095:     <p>Takes the input data, in the form of a Unicode string
                   15096:     containing base64-encoded binary data, decodes it, and returns a
                   15097:     string consisting of characters in the range U+0000 to U+00FF,
                   15098:     each representing a binary byte with values 0x00 to 0xFF
                   15099:     respectively, corresponding to that binary data.</p>
                   15100: 
                   15101:     <p>Throws an <code><a href="infrastructure.html#invalidcharactererror">InvalidCharacterError</a></code> exception if the
                   15102:     input string is not valid base64 data.</p>
                   15103: 
                   15104:    </dd>
                   15105: 
                   15106:   </dl><div class="impl">
                   15107: 
                   15108:   <p class="note">The <code><a href="#windowbase64">WindowBase64</a></code> interface adds to the
                   15109:   <code><a href="#window">Window</a></code> interface and the <code>WorkerUtils</code>
                   15110:   interface (part of Web Workers).</p>
                   15111: 
                   15112:   <p>The <dfn id="dom-windowbase64-btoa" title="dom-windowbase64-btoa"><code>btoa()</code></dfn>
                   15113:   method must throw an <code><a href="infrastructure.html#invalidcharactererror">InvalidCharacterError</a></code> exception if
                   15114:   the method's first argument contains any character whose code point
                   15115:   is greater than U+00FF. Otherwise, the user agent must convert that
                   15116:   argument to a sequence of octets whose <var title="">n</var>th octet
                   15117:   is the eight-bit representation of the code point of the <var title="">n</var>th character of the argument, and then must apply
                   15118:   the base64 algorithm to that sequence of octets, and return the
                   15119:   result. <a href="#refsRFC4648">[RFC4648]</a><!--base64--></p>
                   15120:   <!-- Aryeh says: This seems to be what all browsers do as of January
                   15121:   2011 (except IE, which doesn't support these functions at all). -->
                   15122: 
                   15123: 
                   15124:   <p>The <dfn id="dom-windowbase64-atob" title="dom-windowbase64-atob"><code>atob()</code></dfn>
                   15125:   method must run the following steps to parse the string passed in
                   15126:   the method's first argument:</p>
                   15127: 
                   15128:   <ol><!-- Aryeh says: Copies Firefox behavior as of January 2011
                   15129:    (4.0b8). WebKit is somewhat laxer, and Opera throws no exceptions
                   15130:    at all. gsnedders reports Opera's behavior causes site-compat
                   15131:    problems, and I figure most sites depend on Firefox if on anything,
                   15132:    so go with that. --><!-- Since updated to drop whitespace, based on the arguments here:
                   15133:       http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2011-May/031613.html
                   15134:    --><li><p>Let <var title="">input</var> be the string being
                   15135:    parsed.</p></li>
                   15136: 
                   15137:    <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
                   15138:    string.</p></li>
                   15139: 
                   15140:    <li><p>Remove all <a href="common-microsyntaxes.html#space-character" title="space character">space
                   15141:    characters</a> from <var title="">input</var>.</p></li>
                   15142: 
                   15143:    <li><p>If the length of <var title="">input</var> divides by 4
                   15144:    leaving no remainder, then: if <var title="">input</var> ends with
                   15145:    one or two "=" (U+003D) characters, remove them from <var title="">input</var>.</p></li>
                   15146: 
                   15147:    <li><p>If the length of <var title="">input</var> divides by 4
                   15148:    leaving a remainder of 1, throw an
                   15149:    <code><a href="infrastructure.html#invalidcharactererror">InvalidCharacterError</a></code> exception and abort these
                   15150:    steps.</p>
                   15151: 
                   15152:    </li><li>
                   15153: 
                   15154:     <p>If <var title="">input</var> contains a character that is not
                   15155:     in the following list of characters and character ranges, throw an
                   15156:     <code><a href="infrastructure.html#invalidcharactererror">InvalidCharacterError</a></code> exception and abort these
                   15157:     steps:</p>
                   15158: 
                   15159:     <ul class="brief"><li>"+" (U+002B)
                   15160:      </li><li>"/" (U+002F)
                   15161:      </li><li><a href="common-microsyntaxes.html#ascii-digits">ASCII digits</a>
                   15162:      </li><li><a href="common-microsyntaxes.html#uppercase-ascii-letters">uppercase ASCII letters</a>
                   15163:      </li><li><a href="common-microsyntaxes.html#lowercase-ascii-letters">lowercase ASCII letters</a>
                   15164:     </li></ul></li>
                   15165: 
                   15166:    <li><p>Let <var title="">output</var> be a string, initially
                   15167:    empty.</p></li>
                   15168: 
                   15169:    <li><p>Let <var title="">buffer</var> be a buffer that can have
                   15170:    bits appended to it, initially empty.</p></li>
                   15171: 
                   15172:    <li>
                   15173: 
                   15174:     <p>While <var title="">position</var> does not point past the end
                   15175:     of <var title="">input</var>, run these substeps:</p>
                   15176: 
                   15177:     <ol><li>
                   15178: 
                   15179:       <p>Find the character pointed to by <var title="">position</var>
                   15180:       in the first column of the following table. Let <var title="">n</var> be the number given in the second cell of the
                   15181:       same row.</p>
                   15182: 
                   15183:       <div id="base64-table">
                   15184:        <table><thead><tr><th>Character
                   15185:           </th><th>Number
                   15186:         </th></tr></thead><tbody><tr><td>A</td><td>0
                   15187:          </td></tr><tr><td>B</td><td>1
                   15188:          </td></tr><tr><td>C</td><td>2
                   15189:          </td></tr><tr><td>D</td><td>3
                   15190:          </td></tr><tr><td>E</td><td>4
                   15191:          </td></tr><tr><td>F</td><td>5
                   15192:          </td></tr><tr><td>G</td><td>6
                   15193:          </td></tr><tr><td>H</td><td>7
                   15194:          </td></tr><tr><td>I</td><td>8
                   15195:          </td></tr><tr><td>J</td><td>9
                   15196:          </td></tr><tr><td>K</td><td>10
                   15197:          </td></tr><tr><td>L</td><td>11
                   15198:          </td></tr><tr><td>M</td><td>12
                   15199:          </td></tr><tr><td>N</td><td>13
                   15200:          </td></tr><tr><td>O</td><td>14
                   15201:          </td></tr><tr><td>P</td><td>15
                   15202:          </td></tr><tr><td>Q</td><td>16
                   15203:          </td></tr><tr><td>R</td><td>17
                   15204:          </td></tr><tr><td>S</td><td>18
                   15205:          </td></tr><tr><td>T</td><td>19
                   15206:          </td></tr><tr><td>U</td><td>20
                   15207:          </td></tr><tr><td>V</td><td>21
                   15208:          </td></tr><tr><td>W</td><td>22
                   15209:          </td></tr><tr><td>X</td><td>23
                   15210:          </td></tr><tr><td>Y</td><td>24
                   15211:          </td></tr><tr><td>Z</td><td>25
                   15212:          </td></tr><tr><td>a</td><td>26
                   15213:          </td></tr><tr><td>b</td><td>27
                   15214:          </td></tr><tr><td>c</td><td>28
                   15215:          </td></tr><tr><td>d</td><td>29
                   15216:          </td></tr><tr><td>e</td><td>30
                   15217:          </td></tr><tr><td>f</td><td>31
                   15218:          </td></tr><tr><td>g</td><td>32
                   15219:          </td></tr><tr><td>h</td><td>33
                   15220:          </td></tr><tr><td>i</td><td>34
                   15221:          </td></tr><tr><td>j</td><td>35
                   15222:          </td></tr><tr><td>k</td><td>36
                   15223:          </td></tr><tr><td>l</td><td>37
                   15224:          </td></tr><tr><td>m</td><td>38
                   15225:          </td></tr><tr><td>n</td><td>39
                   15226:          </td></tr><tr><td>o</td><td>40
                   15227:          </td></tr><tr><td>p</td><td>41
                   15228:          </td></tr><tr><td>q</td><td>42
                   15229:          </td></tr><tr><td>r</td><td>43
                   15230:          </td></tr><tr><td>s</td><td>44
                   15231:          </td></tr><tr><td>t</td><td>45
                   15232:          </td></tr><tr><td>u</td><td>46
                   15233:          </td></tr><tr><td>v</td><td>47
                   15234:          </td></tr><tr><td>w</td><td>48
                   15235:          </td></tr><tr><td>x</td><td>49
                   15236:          </td></tr><tr><td>y</td><td>50
                   15237:          </td></tr><tr><td>z</td><td>51
                   15238:          </td></tr><tr><td>0</td><td>52
                   15239:          </td></tr><tr><td>1</td><td>53
                   15240:          </td></tr><tr><td>2</td><td>54
                   15241:          </td></tr><tr><td>3</td><td>55
                   15242:          </td></tr><tr><td>4</td><td>56
                   15243:          </td></tr><tr><td>5</td><td>57
                   15244:          </td></tr><tr><td>6</td><td>58
                   15245:          </td></tr><tr><td>7</td><td>59
                   15246:          </td></tr><tr><td>8</td><td>60
                   15247:          </td></tr><tr><td>9</td><td>61
                   15248:          </td></tr><tr><td>+</td><td>62
                   15249:          </td></tr><tr><td>/</td><td>63
                   15250:        </td></tr></tbody></table></div>
                   15251: 
                   15252:      </li>
                   15253: 
                   15254:      <li><p>Append to <var title="">buffer</var> the six bits
                   15255:      corresponding to <var title="">number</var>, most significant bit
                   15256:      first.</p></li>
                   15257: 
                   15258:      <li><p>If <var title="">buffer</var> has accumulated 24 bits,
                   15259:      interpret them as three 8-bit big-endian numbers. Append the
                   15260:      three characters with code points equal to those numbers to <var title="">output</var>, in the same order, and then empty <var title="">buffer</var>.</p></li>
                   15261: 
                   15262:      <li><p>Advance <var title="">position</var> by one
                   15263:      character.</p></li>
                   15264: 
                   15265:     </ol></li>
                   15266: 
                   15267:    <li>
                   15268: 
                   15269:     <p>If <var title="">buffer</var> is not empty, it contains either
                   15270:     12 or 18 bits. If it contains 12 bits, discard the last four and
                   15271:     interpret the remaining eight as an 8-bit big-endian number. If it
                   15272:     contains 18 bits, discard the last two and interpret the remaining
                   15273:     16 as two 8-bit big-endian numbers. Append the one or two
                   15274:     characters with code points equal to those one or two numbers to
                   15275:     <var title="">output</var>, in the same order.</p>
                   15276: 
                   15277:     <p class="note">The discarded bits mean that, for instance, <code title="">atob("YQ")</code> and <code title="">atob("YR")</code>
                   15278:     both return "<code title="">a</code>".</p>
                   15279: 
                   15280:    </li>
                   15281: 
                   15282:    <li><p>Return <var title="">output</var>.</p></li>
                   15283: 
                   15284:   </ol><!-- Note: this function is defined explicitly here because RFC4648
                   15285:   does not specify how to handle erroneous input, and no preexisting
                   15286:   browser implementation simply throws an exception on all erroneous
                   15287:   input. --></div>
                   15288: 
                   15289:   <p class="note">Some base64 encoders add newlines or other
                   15290:   whitespace to their output. The <code title="dom-windowbase64-atob"><a href="#dom-windowbase64-atob">atob()</a></code> method throws an
                   15291:   exception if its input contains characters other than those
                   15292:   described by the regular expression bracket expression <code title="">[+/=0-9A-Za-z]</code>, so other characters need to be
                   15293:   removed before <code title="dom-windowbase64-atob"><a href="#dom-windowbase64-atob">atob()</a></code> is
                   15294:   used for decoding.</p>
                   15295: 
                   15296: 
                   15297: 
                   15298:   <h3 id="timers"><span class="secno">6.3 </span>Timers</h3>
                   15299: 
                   15300:   <p>The <code title="dom-windowtimers-setTimeout"><a href="#dom-windowtimers-settimeout">setTimeout()</a></code>
                   15301:   and <code title="dom-windowtimers-setInterval"><a href="#dom-windowtimers-setinterval">setInterval()</a></code>
                   15302:   methods allow authors to schedule timer-based callbacks.</p>
                   15303: 
                   15304:   <pre class="idl">[NoInterfaceObject]
                   15305: interface <dfn id="windowtimers">WindowTimers</dfn> {
                   15306:   long <a href="#dom-windowtimers-settimeout" title="dom-windowtimers-setTimeout">setTimeout</a>(<span>Function</span> handler, optional long timeout, any... arguments);
                   15307:   long <a href="#dom-windowtimers-settimeout" title="dom-windowtimers-setTimeout">setTimeout</a>(DOMString handler, optional long timeout, any... arguments);
                   15308:   void <a href="#dom-windowtimers-cleartimeout" title="dom-windowtimers-clearTimeout">clearTimeout</a>(long handle);
                   15309:   long <a href="#dom-windowtimers-setinterval" title="dom-windowtimers-setInterval">setInterval</a>(<span>Function</span> handler, optional long timeout, any... arguments);
                   15310:   long <a href="#dom-windowtimers-setinterval" title="dom-windowtimers-setInterval">setInterval</a>(DOMString handler, optional long timeout, any... arguments);
                   15311:   void <a href="#dom-windowtimers-clearinterval" title="dom-windowtimers-clearInterval">clearInterval</a>(long handle);
                   15312: };
                   15313: <a href="#window">Window</a> implements <a href="#windowtimers">WindowTimers</a>;</pre>
                   15314: 
                   15315:   <!-- Demonstrating the need for wrapping of the timeout argument value treated as long rather than clamping or treating as double:
                   15316:           http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1228
                   15317:        Demonstrating the need for the timeout argument to be signed rather than unsigned:
                   15318:           http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1229
                   15319:   -->
                   15320: 
                   15321:   <dl class="domintro"><dt><var title="">handle</var> = <var title="">window</var> . <code title="dom-windowtimers-setTimeout"><a href="#dom-windowtimers-settimeout">setTimeout</a></code>( <var title="">handler</var> [, <var title="">timeout</var> [, <var title="">arguments</var>... ] ] )</dt>
                   15322: 
                   15323:    <dd>
                   15324: 
                   15325:     <p>Schedules a timeout to run <var title="">handler</var> after
                   15326:     <var title="">timeout</var> milliseconds. Any <var title="">arguments</var> are passed straight through to the <var title="">handler</var>.</p>
                   15327: 
                   15328:    </dd>
                   15329: 
                   15330:    <dt><var title="">handle</var> = <var title="">window</var> . <code title="dom-windowtimers-setTimeout"><a href="#dom-windowtimers-settimeout">setTimeout</a></code>( <var title="">code</var> [, <var title="">timeout</var> ] )</dt>
                   15331: 
                   15332:    <dd>
                   15333: 
                   15334:     <p>Schedules a timeout to compile and run <var title="">code</var>
                   15335:     after <var title="">timeout</var> milliseconds.</p>
                   15336: 
                   15337:    </dd>
                   15338: 
                   15339:    <dt><var title="">window</var> . <code title="dom-windowtimers-clearTimeout"><a href="#dom-windowtimers-cleartimeout">clearTimeout</a></code>( <var title="">handle</var> )</dt>
                   15340: 
                   15341:    <dd>
                   15342: 
                   15343:     <p>Cancels the timeout set with <code title="dom-windowtimers-setTimeout"><a href="#dom-windowtimers-settimeout">setTimeout()</a></code> identified by <var title="">handle</var>.</p>
                   15344: 
                   15345:    </dd>
                   15346: 
                   15347:    <dt><var title="">handle</var> = <var title="">window</var> . <code title="dom-windowtimers-setInterval"><a href="#dom-windowtimers-setinterval">setInterval</a></code>( <var title="">handler</var> [, <var title="">timeout</var> [, <var title="">arguments</var>... ] ] )</dt>
                   15348: 
                   15349:    <dd>
                   15350: 
                   15351:     <p>Schedules a timeout to run <var title="">handler</var> every
                   15352:     <var title="">timeout</var> milliseconds. Any <var title="">arguments</var> are passed straight through to the <var title="">handler</var>.</p>
                   15353: 
                   15354:    </dd>
                   15355: 
                   15356:    <dt><var title="">handle</var> = <var title="">window</var> . <code title="dom-windowtimers-setInterval"><a href="#dom-windowtimers-setinterval">setInterval</a></code>( <var title="">code</var> [, <var title="">timeout</var> ] )</dt>
                   15357: 
                   15358:    <dd>
                   15359: 
                   15360:     <p>Schedules a timeout to compile and run <var title="">code</var>
                   15361:     every <var title="">timeout</var> milliseconds.</p>
                   15362: 
                   15363:    </dd>
                   15364: 
                   15365:    <dt><var title="">window</var> . <code title="dom-windowtimers-clearInterval"><a href="#dom-windowtimers-clearinterval">clearInterval</a></code>( <var title="">handle</var> )</dt>
                   15366: 
                   15367:    <dd>
                   15368: 
                   15369:     <p>Cancels the timeout set with <code title="dom-windowtimers-setInterval"><a href="#dom-windowtimers-setinterval">setInterval()</a></code> identified by <var title="">handle</var>.</p>
                   15370: 
                   15371:    </dd>
                   15372: 
                   15373:   </dl><p class="note">This API does not guarantee that timers will run
                   15374:   exactly on schedule. Delays due to CPU load, other tasks, etc, are
                   15375:   to be expected.</p>
                   15376: 
                   15377:   <div class="impl">
                   15378: 
                   15379:   <p class="note">The <code><a href="#windowtimers">WindowTimers</a></code> interface adds to the
                   15380:   <code><a href="#window">Window</a></code> interface and the <code>WorkerUtils</code>
                   15381:   interface (part of Web Workers).
                   15382:     <a href="#refsWEBWORKERS">[WEBWORKERS]</a>
                   15383:     </p>
                   15384: 
                   15385:   <p>Each object that implements the <code><a href="#windowtimers">WindowTimers</a></code>
                   15386:   interface has a <dfn id="list-of-active-timers">list of active timers</dfn>. Each entry in this
                   15387:   lists is identified by a number, which must be unique within the
                   15388:   list for the lifetime of the object that implements the
                   15389:   <code><a href="#windowtimers">WindowTimers</a></code> interface.</p>
                   15390: 
                   15391:   <hr><p>The <dfn id="dom-windowtimers-settimeout" title="dom-windowtimers-setTimeout"><code>setTimeout()</code></dfn>
                   15392:   method must run the following steps:
                   15393: 
                   15394:   </p><ol><li><p>Let <var title="">handle</var> be a user-agent-defined
                   15395:    integer that is greater than zero that will identify the timeout to
                   15396:    be set by this call in the <a href="#list-of-active-timers">list of active
                   15397:    timers</a>.</p></li>
                   15398: 
                   15399:    <li><p>Add an entry to the <a href="#list-of-active-timers">list of active timers</a> for
                   15400:    <var title="">handle</var>.</p></li>
                   15401: 
                   15402:    <li><p><a href="#get-the-timed-task">Get the timed task</a> <var title="">handle</var>
                   15403:    in the <a href="#list-of-active-timers">list of active timers</a>, and let <var title="">task</var> be the result. This algorithm uses the first
                   15404:    argument to the method (<var title="">handler</var>) and, if there
                   15405:    are any, the third and subsequent arguments to the method (<var title="">arguments</var>), to establish precisely what <var title="">task</var> does.</p></li>
                   15406: 
                   15407:    <li><p>Let <var title="">timeout</var> be the second argument to
                   15408:    the method, or zero if the argument was omitted.</p></li>
                   15409: 
                   15410:    <li><p>If the currently running <a href="#concept-task" title="concept-task">task</a> is a task that was created by the
                   15411:    <code title="dom-windowtimers-setTimeout"><a href="#dom-windowtimers-settimeout">setTimeout()</a></code>
                   15412:    method, and <var title="">timeout</var> is less than 4, then
                   15413:    increase <var title="">timeout</var> to 4.</p></li>
                   15414: 
                   15415:    <li><p>Return <var title="">handle</var>, and then continue running
                   15416:    this algorithm asynchronously.</p></li>
                   15417: 
                   15418:    <li>
                   15419: 
                   15420:     <p>If the <a href="#method-context">method context</a> is a <code><a href="#window">Window</a></code>
                   15421:     object, wait until the <code><a href="dom.html#document">Document</a></code> associated with the
                   15422:     <a href="#method-context">method context</a> has been <a href="#fully-active">fully active</a> for
                   15423:     a further <var title="">timeout</var> milliseconds (not
                   15424:     necessarily consecutively).</p>
                   15425: 
                   15426:     <p>Otherwise, if the <a href="#method-context">method context</a> is a
                   15427:     <code>WorkerUtils</code> object, wait until <var title="">timeout</var> milliseconds have passed with the worker
                   15428:     not suspended (not necessarily consecutively).</p>
                   15429: 
                   15430:     <p>Otherwise, act as described in the specification that defines
                   15431:     that the <code><a href="#windowtimers">WindowTimers</a></code> interface is implemented by
                   15432:     some other object.</p>
                   15433: 
                   15434:    </li>
                   15435: 
                   15436:    <li>
                   15437: 
                   15438:     <p>Wait until any invocations of this algorithm that had the same
                   15439:     <a href="#method-context">method context</a>, that started before this one, and
                   15440:     whose <var title="">timeout</var> is equal to or less than this
                   15441:     one's, have completed.</p>
                   15442: 
                   15443:     <p class="note">Argument conversion as defined by Web IDL (for
                   15444:     example, invoking <code title="">toString()</code> methods on
                   15445:     objects passed as the first argument) happens in the algorithms
                   15446:     defined in Web IDL, before this algorithm is invoked.</p>
                   15447: 
                   15448:     <div class="example">
                   15449: 
                   15450:      <p>So for example, the following rather silly code will result in
                   15451:      the log containing "<code title="">ONE&#160;TWO&#160;</code>":</p>
                   15452: 
                   15453:      <pre>var log = '';
                   15454: function logger(s) { log += s + ' '; }
                   15455: 
                   15456: setTimeout({ toString: function () {
                   15457:   setTimeout("logger('ONE')", 100);
                   15458:   return "logger('TWO')";
                   15459: } }, 100);</pre>
                   15460: 
                   15461:     </div>
                   15462: 
                   15463:    </li>
                   15464: 
                   15465:    <li>
                   15466: 
                   15467:     <p>Optionally, wait a further user-agent defined length of
                   15468:     time.</p>
                   15469: 
                   15470:     <p class="note">This is intended to allow user agents to pad
                   15471:     timeouts as needed to optimise the power usage of the device. For
                   15472:     example, some processors have a low-power mode where the
                   15473:     granularity of timers is reduced; on such platforms, user agents
                   15474:     can slow timers down to fit this schedule instead of requiring the
                   15475:     processor to use the more accurate mode with its associated higher
                   15476:     power usage.</p>
                   15477: 
                   15478:    </li>
                   15479: 
                   15480:    <li>
                   15481: 
                   15482:     <p><a href="#queue-a-task" title="queue a task">Queue</a> the <a href="#concept-task" title="concept-task">task</a> <var title="">task</var>.</p>
                   15483: 
                   15484:     <p class="note">Once the task has been processed, it is safe to
                   15485:     remove the entry for <var title="">handle</var> from the
                   15486:     <a href="#list-of-active-timers">list of active timers</a> (there is no way for the
                   15487:     entry's existence to be detected past this point, so it does not
                   15488:     technically matter one way or the other).</p>
                   15489: 
                   15490:    </li>
                   15491: 
                   15492:   </ol><hr><p>The <dfn id="dom-windowtimers-setinterval" title="dom-windowtimers-setInterval"><code>setInterval()</code></dfn>
                   15493:   method must run the following steps:
                   15494: 
                   15495:   </p><ol><li><p>Let <var title="">handle</var> be a user-agent-defined
                   15496:    integer that is greater than zero that will identify the timeout to
                   15497:    be set by this call in the <a href="#list-of-active-timers">list of active
                   15498:    timers</a>.</p></li>
                   15499: 
                   15500:    <li><p>Add an entry to the <a href="#list-of-active-timers">list of active timers</a> for
                   15501:    <var title="">handle</var>.</p></li>
                   15502: 
                   15503:    <li><p><a href="#get-the-timed-task">Get the timed task</a> <var title="">handle</var>
                   15504:    in the <a href="#list-of-active-timers">list of active timers</a>, and let <var title="">task</var> be the result. This algorithm uses the first
                   15505:    argument to the method (<var title="">handler</var>) and, if there
                   15506:    are any, the third and subsequent arguments to the method (<var title="">arguments</var>), to establish precisely what <var title="">task</var> does.</p></li>
                   15507: 
                   15508:    <li><p>Let <var title="">timeout</var> be the second argument to
                   15509:    the method, or zero if the argument was omitted.</p></li>
                   15510: 
                   15511:    <li><p>If <var title="">timeout</var> is less than 4, then
                   15512:    increase <var title="">timeout</var> to 4.</p></li> <!-- (but see
                   15513:    note below about IE) -->
                   15514: 
                   15515:    <li><p>Return <var title="">handle</var>, and then continue running
                   15516:    this algorithm asynchronously.</p></li>
                   15517: 
                   15518:    <!-- Note: IE doesn't actually run intervals with duration zero, it
                   15519:    aborts roughly here in the algorithm for them. -->
                   15520: 
                   15521:    <li>
                   15522: 
                   15523:     <p><i title="">Wait</i>: If the <a href="#method-context">method context</a> is a
                   15524:     <code><a href="#window">Window</a></code> object, wait until the <code><a href="dom.html#document">Document</a></code>
                   15525:     associated with the <a href="#method-context">method context</a> has been <a href="#fully-active">fully
                   15526:     active</a> for a further <var title="">interval</var>
                   15527:     milliseconds (not necessarily consecutively).</p>
                   15528: 
                   15529:     <p>Otherwise, if the <a href="#method-context">method context</a> is a
                   15530:     <code>WorkerUtils</code> object, wait until <var title="">interval</var> milliseconds have passed with the worker
                   15531:     not suspended (not necessarily consecutively).</p>
                   15532: 
                   15533:     <p>Otherwise, act as described in the specification that defines
                   15534:     that the <code><a href="#windowtimers">WindowTimers</a></code> interface is implemented by
                   15535:     some other object.</p>
                   15536: 
                   15537:    </li>
                   15538: 
                   15539:    <li>
                   15540: 
                   15541:     <p>Optionally, wait a further user-agent defined length of
                   15542:     time.</p>
                   15543: 
                   15544:     <p class="note">This is intended to allow user agents to pad
                   15545:     timeouts as needed to optimise the power usage of the device. For
                   15546:     example, some processors have a low-power mode where the
                   15547:     granularity of timers is reduced; on such platforms, user agents
                   15548:     can slow timers down to fit this schedule instead of requiring the
                   15549:     processor to use the more accurate mode with its associated higher
                   15550:     power usage.</p>
                   15551: 
                   15552:    </li>
                   15553: 
                   15554:    <li><p><a href="#queue-a-task" title="queue a task">Queue</a> the <var title="">task</var> <a href="#concept-task" title="concept-task">task</a>.</p></li>
                   15555: 
                   15556:    <li><p>Return to the step labeled <i>wait</i>.</p></li>
                   15557: 
                   15558:   </ol><hr><p>The <dfn id="dom-windowtimers-cleartimeout" title="dom-windowtimers-clearTimeout"><code>clearTimeout()</code></dfn>
                   15559:   and <dfn id="dom-windowtimers-clearinterval" title="dom-windowtimers-clearInterval"><code>clearInterval()</code></dfn>
                   15560:   methods must clear the entry identified as <var title="">handle</var> from the <a href="#list-of-active-timers">list of active timers</a> of
                   15561:   the <code><a href="#windowtimers">WindowTimers</a></code> object on which the method was
                   15562:   invoked, where <var title="">handle</var> is the argument passed to
                   15563:   the method, if any. (If <var title="">handle</var> does not identify
                   15564:   an entry in the <a href="#list-of-active-timers">list of active timers</a> of the
                   15565:   <code><a href="#windowtimers">WindowTimers</a></code> object on which the method was invoked,
                   15566:   the method does nothing.)</p>
                   15567: 
                   15568:   <hr><p>The <dfn id="method-context">method context</dfn>, when referenced by the algorithms
                   15569:   in this section, is the object on which the method for which the
                   15570:   algorithm is running is implemented (a <code><a href="#window">Window</a></code> or
                   15571:   <code>WorkerUtils</code> object).</p>
                   15572: 
                   15573:   <p>When the above methods are invoked and try to <dfn id="get-the-timed-task">get the timed
                   15574:   task</dfn> <var title="">handle</var> in list <var title="">list</var>,
                   15575:   they must run the following steps:</p>
                   15576: 
                   15577:   <ol><li>
                   15578: 
                   15579:     <p>If the first argument to the invoked method is a
                   15580:     <code>Function</code>, then return a <a href="#concept-task" title="concept-task">task</a> that checks if the entry for <var title="">handle</var> in <var title="">list</var> has been
                   15581:     cleared, and if it has not, calls the <code>Function</code> with
                   15582:     as its arguments the third and subsequent arguments to the invoked
                   15583:     method (if any) and with an undefined <var title="">thisArg</var>,
                   15584:     and abort these steps. <a href="#refsECMA262">[ECMA262]</a></p>
                   15585: 
                   15586:     <p class="note">Setting <var title="">thisArg</var> to undefined
                   15587:     means that the function code will be executed with the <code title="">this</code> keyword bound to the <code><a href="#windowproxy">WindowProxy</a></code>
                   15588:     or the <code>WorkerGlobalScope</code> object, as if the code was
                   15589:     running in the global scope.</p>
                   15590: 
                   15591:     <p>Otherwise, continue with the remaining steps.</p>
                   15592: 
                   15593:    </li>
                   15594: 
                   15595:    <li><p>Let <var title="">script source</var> be the first argument
                   15596:    to the method.</p></li>
                   15597: 
                   15598:    <li><p>Let <var title="">script language</var> be
                   15599:    JavaScript.</p></li>
                   15600: 
                   15601:    <li>
                   15602: 
                   15603:     <p>If the <a href="#method-context">method context</a> is a <code><a href="#window">Window</a></code>
                   15604:     object, let <var title="">global object</var> be the <a href="#method-context">method
                   15605:     context</a>, let <var title="">browsing context</var> be the
                   15606:     <a href="#browsing-context">browsing context</a> with which <var title="">global
1.191     sruby    15607:     object</var> is associated, let <var title="">document</var> and
                   15608:     <var title="">referrer source</var> be the <code><a href="dom.html#document">Document</a></code>
                   15609:     associated with <var title="">global object</var>, let <var title="">character encoding</var> be the <a href="infrastructure.html#document's-character-encoding" title="document's
                   15610:     character encoding">character encoding</a> of the
                   15611:     <code><a href="dom.html#document">Document</a></code> associated with <var title="">global
                   15612:     object</var> (<a href="#sce-not-copy">this is a reference, not a
                   15613:     copy</a>), and let <var title="">base URL</var> be the <a href="urls.html#document-base-url" title="document base URL">base URL</a> of the
                   15614:     <code><a href="dom.html#document">Document</a></code> associated with <var title="">global
                   15615:     object</var> (<a href="#sbu-not-copy">this is a reference, not a
                   15616:     copy</a>).</p>
1.190     sruby    15617: 
                   15618:     <p>Otherwise, if the <a href="#method-context">method context</a> is a
                   15619:     <code>WorkerUtils</code> object, let <var title="">global
1.191     sruby    15620:     object</var>, <var title="">browsing context</var>, <var title="">document</var>, <var title="">referrer source</var>, <var title="">character encoding</var>, and <var title="">base
                   15621:     URL</var> be the <a href="#script's-global-object">script's global object</a>,
                   15622:     <a href="#script's-browsing-context">script's browsing context</a>, <a href="#script's-document">script's
                   15623:     document</a>, <a href="#script's-referrer-source">script's referrer source</a>,
                   15624:     <a href="#script's-url-character-encoding">script's URL character encoding</a>, and <a href="#script's-base-url">script's
                   15625:     base URL</a> (respectively) of the <a href="#concept-script" title="concept-script">script</a> that the <span>run a
                   15626:     worker</span> algorithm created when it created the <a href="#method-context">method
                   15627:     context</a>.</p>
1.190     sruby    15628: 
                   15629:     <p>Otherwise, act as described in the specification that defines
                   15630:     that the <code><a href="#windowtimers">WindowTimers</a></code> interface is implemented by
                   15631:     some other object.</p>
                   15632: 
                   15633:    </li>
                   15634: 
                   15635:    <li><p>Return a <a href="#concept-task" title="concept-task">task</a> that checks
                   15636:    if the entry for <var title="">handle</var> in <var title="">list</var> has been cleared, and if it has not, <a href="#create-a-script" title="create a script">creates a script</a> using <var title="">script source</var> as the script source, the
                   15637:    <a href="urls.html#url">URL</a> where <var title="">script source</var> can be
                   15638:    found, <var title="">scripting language</var> as the scripting
                   15639:    language, <var title="">global object</var> as the global object,
1.191     sruby    15640:    <var title="">browsing context</var> as the browsing context, <var title="">document</var> as the document, <var title="">referrer
                   15641:    source</var> as the referrer source, <var title="">character
1.190     sruby    15642:    encoding</var> as the URL character encoding, and <var title="">base URL</var> as the base URL.</p></li>
                   15643: 
                   15644:   </ol><hr><p>The <a href="#task-source">task source</a> for these <a href="#concept-task" title="concept-task">tasks</a> is the <dfn id="timer-task-source">timer task
                   15645:   source</dfn>.</p>
                   15646: 
                   15647:   </div>
                   15648: 
                   15649: 
                   15650: 
                   15651:   <h3 id="user-prompts"><span class="secno">6.4 </span>User prompts</h3>
                   15652: 
                   15653:   <!--
                   15654:    v2 ideas:
                   15655:     * in-window modal dialogs
                   15656:        - escape/enter handling
                   15657:        - dragging the window out of the tab
                   15658:     * in-window non-modal palettes
                   15659:        - with a solution for the mobile space
                   15660:   -->
                   15661: 
                   15662:   <h4 id="simple-dialogs"><span class="secno">6.4.1 </span>Simple dialogs</h4>
                   15663: 
                   15664:   <dl class="domintro"><dt><var title="">window</var> . <code title="dom-alert"><a href="#dom-alert">alert</a></code>(<var title="">message</var>)</dt>
                   15665:    <dd>
                   15666: 
                   15667:     <p>Displays a modal alert with the given message, and waits for the user to dismiss it.</p>
                   15668: 
                   15669:     <p>A call to the <code title="dom-navigator-yieldForStorageUpdates"><a href="#dom-navigator-yieldforstorageupdates">navigator.yieldForStorageUpdates()</a></code>
                   15670:     method is implied when this method is invoked.</p>
                   15671: 
                   15672:    </dd>
                   15673: 
                   15674:    <dt><var title="">result</var> = <var title="">window</var> . <code title="dom-confirm"><a href="#dom-confirm">confirm</a></code>(<var title="">message</var>)</dt>
                   15675:    <dd>
                   15676: 
                   15677:     <p>Displays a modal OK/Cancel prompt with the given message, waits
                   15678:     for the user to dismiss it, and returns true if the user clicks OK
                   15679:     and false if the user clicks Cancel.</p>
                   15680: 
                   15681:     <p>A call to the <code title="dom-navigator-yieldForStorageUpdates"><a href="#dom-navigator-yieldforstorageupdates">navigator.yieldForStorageUpdates()</a></code>
                   15682:     method is implied when this method is invoked.</p>
                   15683: 
                   15684:    </dd>
                   15685: 
                   15686:    <dt><var title="">result</var> = <var title="">window</var> . <code title="dom-prompt"><a href="#dom-prompt">prompt</a></code>(<var title="">message</var> [, <var title="">default</var>] )</dt>
                   15687:    <dd>
                   15688: 
                   15689:     <p>Displays a modal text field prompt with the given message,
                   15690:     waits for the user to dismiss it, and returns the value that the
                   15691:     user entered. If the user cancels the prompt, then returns null
                   15692:     instead. If the second argument is present, then the given value
                   15693:     is used as a default.</p>
                   15694: 
                   15695:     <p>A call to the <code title="dom-navigator-yieldForStorageUpdates"><a href="#dom-navigator-yieldforstorageupdates">navigator.yieldForStorageUpdates()</a></code>
                   15696:     method is implied when this method is invoked.</p>
                   15697: 
                   15698:    </dd>
                   15699: 
                   15700:   </dl><div class="impl">
                   15701: 
                   15702:   <p>The <dfn id="dom-alert" title="dom-alert"><code>alert(<var title="">message</var>)</code></dfn> method, when invoked, must run
                   15703:   the following steps:</p>
                   15704: 
                   15705:   <ol><li><p>If the <a href="#event-loop">event loop</a>'s <a href="#termination-nesting-level">termination nesting
                   15706:    level</a> is non-zero, optionally abort these steps.</p></li>
                   15707: 
                   15708:    <li><p>Release the <a href="#storage-mutex">storage mutex</a>.</p></li>
                   15709: 
                   15710:    <li><p>Show the given <var title="">message</var> to the
                   15711:    user.</p></li>
                   15712: 
                   15713:    <li><p>Optionally, <a href="#pause">pause</a> while waiting for for the
                   15714:    user to acknowledge the message.</p></li>
                   15715: 
                   15716:   </ol><p>The <dfn id="dom-confirm" title="dom-confirm"><code>confirm(<var title="">message</var>)</code></dfn> method, when invoked, must run
                   15717:   the following steps:</p>
                   15718: 
                   15719:   <ol><li><p>If the <a href="#event-loop">event loop</a>'s <a href="#termination-nesting-level">termination nesting
                   15720:    level</a> is non-zero, optionally abort these steps, returning
                   15721:    false.</p></li>
                   15722: 
                   15723:    <li><p>Release the <a href="#storage-mutex">storage mutex</a>.</p></li>
                   15724: 
                   15725:    <li><p>Show the given <var title="">message</var> to the user, and
                   15726:    ask the user to respond with a positive or negative
                   15727:    response.</p></li>
                   15728: 
                   15729:    <li><p><a href="#pause">Pause</a> until the user responds either positively
                   15730:    or negatively.</p></li>
                   15731: 
                   15732:    <li><p>If the user responded positively, return true; otherwise,
                   15733:    the user responded negatively: return false.</p></li>
                   15734: 
                   15735:   </ol><p>The <dfn id="dom-prompt" title="dom-prompt"><code>prompt(<var title="">message</var>, <var title="">default</var>)</code></dfn>
                   15736:   method, when invoked, must run the following steps:</p>
                   15737: 
                   15738:   <ol><li><p>If the <a href="#event-loop">event loop</a>'s <a href="#termination-nesting-level">termination nesting
                   15739:    level</a> is non-zero, optionally abort these steps, returning
                   15740:    null.</p></li>
                   15741: 
                   15742:    <li><p>Release the <a href="#storage-mutex">storage mutex</a>.</p></li>
                   15743: 
                   15744:    <li><p>Show the given <var title="">message</var> to the user, and
                   15745:    ask the user to either respond with a string value or abort. The
                   15746:    second argument is optional. If the second argument (<var title="">default</var>) is present, then the response must be
                   15747:    defaulted to the value given by <var title="">default</var>.</p></li>
                   15748: 
                   15749:    <li><p><a href="#pause">Pause</a> while waiting for the user's
                   15750:    response.</p></li>
                   15751: 
                   15752:    <li><p>If the user aborts, then return null; otherwise, return the
                   15753:    string that the user responded with.</p></li>
                   15754: 
                   15755:   </ol></div>
                   15756: 
                   15757: 
                   15758:   <h4 id="printing"><span class="secno">6.4.2 </span>Printing</h4>
                   15759: 
                   15760: <!--TOPIC:DOM APIs-->
                   15761:   <dl class="domintro"><dt><var title="">window</var> . <code title="dom-print"><a href="#dom-print">print</a></code>()</dt>
                   15762: 
                   15763:    <dd>
                   15764: 
                   15765:     <p>Prompts the user to print the page.</p>
                   15766: 
                   15767:     <p>A call to the <code title="dom-navigator-yieldForStorageUpdates"><a href="#dom-navigator-yieldforstorageupdates">navigator.yieldForStorageUpdates()</a></code>
                   15768:     method is implied when this method is invoked.</p>
                   15769: 
                   15770:    </dd>
                   15771: 
                   15772:   </dl><div class="impl">
                   15773: 
                   15774:   <p>When the <dfn id="dom-print" title="dom-print"><code>print()</code></dfn> method
                   15775:   is invoked, if the <code><a href="dom.html#document">Document</a></code> is <a href="#ready-for-post-load-tasks">ready for
                   15776:   post-load tasks</a>, then the user agent must synchronously run
                   15777:   the <a href="#printing-steps">printing steps</a>. Otherwise, the user agent must only
                   15778:   set the <dfn id="print-when-loaded">print when loaded</dfn> flag on the
                   15779:   <code><a href="dom.html#document">Document</a></code>.</p>
                   15780: <!--TOPIC:HTML-->
                   15781: 
                   15782:   <p>User agents should also run the <a href="#printing-steps">printing steps</a>
                   15783:   whenever the user asks for the opportunity to <a href="#obtain-a-physical-form">obtain a
                   15784:   physical form</a> (e.g. printed copy), or the representation of a
                   15785:   physical form (e.g. PDF copy), of a document.</p>
                   15786: 
                   15787:   <p>The <dfn id="printing-steps">printing steps</dfn> are as follows:</p>
                   15788: 
                   15789:   <ol><li>
                   15790: 
                   15791:     <p>The user agent may display a message to the user and/or may
                   15792:     abort these steps.</p>
                   15793: 
                   15794:     <p class="example">For instance, a kiosk browser could silently
                   15795:     ignore any invocations of the <code title="dom-print"><a href="#dom-print">print()</a></code> method.</p>
                   15796: 
                   15797:     <p class="example">For instance, a browser on a mobile device
                   15798:     could detect that there are no printers in the vicinity and
                   15799:     display a message saying so before continuing to offer a "save to
                   15800:     PDF" option.</p>
                   15801: 
                   15802:    </li>
                   15803: 
                   15804:    <li>
                   15805: 
                   15806:     <p>The user agent must <a href="#fire-a-simple-event">fire a simple event</a> named
                   15807:     <code title="event-beforeprint">beforeprint</code> at the
                   15808:     <code><a href="#window">Window</a></code> object of the <code><a href="dom.html#document">Document</a></code> that is
                   15809:       being printed, as well as any <a href="#nested-browsing-context" title="nested browsing
                   15810:     context">nested browsing contexts</a> in it.</p>
                   15811: 
                   15812:     <p class="example">The <code title="event-beforeprint">beforeprint</code> event can be used
                   15813:     to annotate the printed copy, for instance adding the time at
                   15814:     which the document was printed.</p>
                   15815: 
                   15816:    </li>
                   15817: 
                   15818:    <li>
                   15819: 
                   15820:     <p>The user agent must release the <a href="#storage-mutex">storage mutex</a>.</p>
                   15821: 
                   15822:    </li>
                   15823: 
                   15824:    <li>
                   15825: 
                   15826:     <p>The user agent should offer the user the opportunity to
                   15827:     <a href="#obtain-a-physical-form">obtain a physical form</a> (or the representation of a
                   15828:     physical form) of the document. The user agent may wait for the
                   15829:     user to either accept or decline before returning; if so, the user
                   15830:     agent must <a href="#pause">pause</a> while the method is waiting. Even if
                   15831:     the user agent doesn't wait at this point, the user agent must use
                   15832:     the state of the relevant documents as they are at this point in
                   15833:     the algorithm if and when it eventually creates the alternate
                   15834:     form.</p>
                   15835: 
                   15836:    </li>
                   15837: 
                   15838:    <li>
                   15839: 
                   15840:     <p>The user agent must <a href="#fire-a-simple-event">fire a simple event</a> named
                   15841:     <code title="event-afterprint">afterprint</code> at the
                   15842:     <code><a href="#window">Window</a></code> object of the <code><a href="dom.html#document">Document</a></code> that is
                   15843:     being printed, as well as any <a href="#nested-browsing-context" title="nested browsing
                   15844:     context">nested browsing contexts</a> in it.</p>
                   15845: 
                   15846:     <p class="example">The <code title="event-afterprint">afterprint</code> event can be used
                   15847:     to revert annotations added in the earlier event, as well as
                   15848:     showing post-printing UI. For instance, if a page is walking the
                   15849:     user through the steps of applying for a home loan, the script
                   15850:     could automatically advance to the next step after having printed
                   15851:     a form or other.</p>
                   15852: 
                   15853:    </li>
                   15854: 
                   15855:   </ol></div>
                   15856: 
                   15857: 
                   15858: <!--TOPIC:DOM APIs-->
                   15859:   <h4 id="dialogs-implemented-using-separate-documents"><span class="secno">6.4.3 </span>Dialogs implemented using separate documents</h4>
                   15860: 
                   15861:   <dl class="domintro"><dt><var title="">result</var> = <var title="">window</var> . <code title="dom-showModalDialog"><a href="#dom-showmodaldialog">showModalDialog</a></code>(<var title="">url</var> [, <var title="">argument</var>] )</dt>
                   15862: 
                   15863:    <dd>
                   15864: 
                   15865:     <p>Prompts the user with the given page, waits for that page to
                   15866:     close, and returns the return value.</p>
                   15867: 
                   15868:     <p>A call to the <code title="dom-navigator-yieldForStorageUpdates"><a href="#dom-navigator-yieldforstorageupdates">navigator.yieldForStorageUpdates()</a></code>
                   15869:     method is implied when this method is invoked.</p>
                   15870: 
                   15871:    </dd>
                   15872: 
                   15873:   </dl><div class="impl">
                   15874: 
                   15875:   <p>The <dfn id="dom-showmodaldialog" title="dom-showModalDialog"><code>showModalDialog(<var title="">url</var>, <var title="">argument</var><!--, <var
                   15876:   title="">features</var>-->)</code></dfn> method, when invoked, must
                   15877:   cause the user agent to run the following steps:</p>
                   15878: 
                   15879:   <ol><li>
                   15880: 
                   15881:     <p><a href="urls.html#resolve-a-url" title="resolve a url">Resolve</a> <var title="">url</var> relative to the <a href="#entry-script">entry script</a>'s
                   15882:     <a href="#script's-base-url" title="script's base URL">base URL</a>.</p>
                   15883: 
                   15884:     <p>If this fails, then throw a <code><a href="infrastructure.html#syntaxerror">SyntaxError</a></code> exception
                   15885:     and abort these steps.</p>
                   15886: 
                   15887:    </li>
                   15888: 
                   15889:    <li><p>If the <a href="#event-loop">event loop</a>'s <a href="#termination-nesting-level">termination nesting
                   15890:    level</a> is non-zero, optionally abort these steps, returning
                   15891:    the empty string.</p></li>
                   15892: 
                   15893:    <li>
                   15894: 
                   15895:     <p>Release the <a href="#storage-mutex">storage mutex</a>.</p>
                   15896: 
                   15897:    </li>
                   15898: 
                   15899:    <li>
                   15900: 
                   15901:     <p>If the user agent is configured such that this invocation of
                   15902:     <code title="dom-showModalDialog"><a href="#dom-showmodaldialog">showModalDialog()</a></code> is
                   15903:     somehow disabled, then return the empty string and abort these
                   15904:     steps.</p>
                   15905: 
                   15906:     <p class="note">User agents are expected to disable this method in
                   15907:     certain cases to avoid user annoyance (e.g. as part of their popup
                   15908:     blocker feature). For instance, a user agent could require that a
                   15909:     site be white-listed before enabling this method, or the user
                   15910:     agent could be configured to only allow one modal dialog at a
                   15911:     time.</p>
                   15912: 
                   15913:    </li>
                   15914: 
                   15915:    <li>
                   15916: 
                   15917:     <p>If the <a href="#active-sandboxing-flag-set">active sandboxing flag set</a>
                   15918:     of the <a href="#active-document">active document</a>
                   15919:     of the <a href="#script's-browsing-context" title="script's browsing context">browsing context</a>
                   15920:     of the <a href="#concept-script" title="concept-script">script</a> that invoked the method
                   15921:     has its
                   15922:     <a href="#sandboxed-auxiliary-navigation-browsing-context-flag">sandboxed auxiliary navigation browsing context flag</a>
                   15923:     set, then return the empty string and abort these steps.</p>
                   15924: 
                   15925:    </li>
                   15926: 
                   15927:    <li>
                   15928: 
                   15929:     <p>Let <var title="">the list of background browsing
                   15930:     contexts</var> be a list of all the browsing contexts that:</p>
                   15931: 
                   15932:     <ul><li>are part of the same <a href="#unit-of-related-browsing-contexts">unit of related browsing
                   15933:      contexts</a> as the browsing context of the
                   15934:      <code><a href="#window">Window</a></code> object on which the <code title="dom-showModalDialog"><a href="#dom-showmodaldialog">showModalDialog()</a></code> method was
                   15935:      called, and that</li>
                   15936: 
                   15937:      <li>have an <a href="#active-document">active document</a> whose
                   15938:      <a href="#origin-0">origin</a> is the <a href="#same-origin" title="same origin">same</a>
                   15939:      as the <a href="#origin-0">origin</a> of the <a href="#concept-script" title="concept-script">script</a> that called the <code title="dom-showModalDialog"><a href="#dom-showmodaldialog">showModalDialog()</a></code> method at
                   15940:      the time the method was called,</li> <!-- Note that changing
                   15941:      document.domain to talk to another domain doesn't make you able
                   15942:      to block that domain -->
                   15943: 
                   15944:     </ul><p>...as well as any browsing contexts that are nested inside any
                   15945:     of the browsing contexts matching those conditions.</p>
                   15946: 
                   15947:    </li>
                   15948: 
                   15949:    <li>
                   15950: 
                   15951:     <p>Disable the user interface for all the browsing contexts in
                   15952:     <var title="">the list of background browsing contexts</var>. This
                   15953:     should prevent the user from navigating those browsing contexts,
                   15954:     causing events to be sent to those browsing context, or editing
                   15955:     any content in those browsing contexts. However, it does not
                   15956:     prevent those browsing contexts from receiving events from sources
                   15957:     other than the user, from running scripts, from running
                   15958:     animations, and so forth.</p>
                   15959: 
                   15960:    </li>
                   15961: 
                   15962:    <li>
                   15963: 
                   15964:     <p>Create a new <a href="#auxiliary-browsing-context">auxiliary browsing context</a>, with the
                   15965:     <a href="#opener-browsing-context">opener browsing context</a> being the browsing context of
                   15966:     the <code><a href="#window">Window</a></code> object on which the <code title="dom-showModalDialog"><a href="#dom-showmodaldialog">showModalDialog()</a></code> method was
                   15967:     called. The new auxiliary browsing context has no name.</p>
                   15968: 
                   15969:     <p class="note">This <a href="#browsing-context">browsing context</a>'s
                   15970:     <code><a href="dom.html#document">Document</a></code>s' <code><a href="#window">Window</a></code> objects all implement
                   15971:     the <code><a href="#windowmodal">WindowModal</a></code> interface.</p>
                   15972: 
                   15973:    </li>
                   15974: 
                   15975:    <li>
                   15976: 
                   15977:     <p>Set all the flags
                   15978:     in the new browsing context's <a href="#popup-sandboxing-flag-set">popup sandboxing flag set</a>
                   15979:     that are set in the
                   15980:     <a href="#active-sandboxing-flag-set">active sandboxing flag set</a>
                   15981:     of the <a href="#active-document">active document</a>
                   15982:     of the <a href="#script's-browsing-context" title="script's browsing context">browsing context</a>
                   15983:     of the <a href="#concept-script" title="concept-script">script</a> that invoked the method.
                   15984:     The <a href="#script's-browsing-context" title="script's browsing context">browsing context</a>
                   15985:     of the <a href="#concept-script" title="concept-script">script</a> that invoked the method
                   15986:     must be set as the new browsing context's
                   15987:     <a href="#one-permitted-sandboxed-navigator">one permitted sandboxed navigator</a>.</p>
                   15988: 
                   15989:    </li>
                   15990: 
                   15991:    <li>
                   15992: 
                   15993:     <p>Let the <a href="#dialog-arguments">dialog arguments</a> of the new browsing
                   15994:     context be set to the value of <var title="">argument</var>, or
                   15995:     the 'undefined' value if the argument was omitted.</p>
                   15996: 
                   15997:    </li>
                   15998: 
                   15999:    <li>
                   16000: 
                   16001:     <p>Let the <a href="#dialog-arguments'-origin">dialog arguments' origin</a> be the
                   16002:     <a href="#origin-0">origin</a> of the <a href="#concept-script" title="concept-script">script</a> that called the <code title="dom-showModalDialog"><a href="#dom-showmodaldialog">showModalDialog()</a></code> method.</p>
                   16003: 
                   16004:    </li>
                   16005: 
                   16006:    <li>
                   16007: 
                   16008:     <p><a href="#navigate">Navigate</a><!--DONAV showModalDialog--> the new
                   16009:     <a href="#browsing-context">browsing context</a> to the <a href="urls.html#absolute-url">absolute URL</a>
                   16010:     that resulted from <a href="urls.html#resolve-a-url" title="resolve a url">resolving</a>
                   16011:     <var title="">url</var> earlier, with <a href="#replacement-enabled">replacement
                   16012:     enabled</a>, and with the <a href="#script's-browsing-context" title="script's browsing
                   16013:     context">browsing context</a> of the <a href="#concept-script" title="concept-script">script</a> that invoked the method as
                   16014:     the <a href="#source-browsing-context">source browsing context</a>.</p>
                   16015: 
                   16016:    </li>
                   16017: 
                   16018:    <li>
                   16019: 
                   16020:     <p><a href="#spin-the-event-loop">Spin the event loop</a> until the new <a href="#browsing-context">browsing
                   16021:     context</a> is closed. (The user agent must allow the user to
                   16022:     indicate that the <a href="#browsing-context">browsing context</a> is to be
                   16023:     closed.)</p>
                   16024: 
                   16025:    </li>
                   16026: 
                   16027:    <li>
                   16028: 
                   16029:     <p>Reenable the user interface for all the browsing contexts in
                   16030:     <var title="">the list of background browsing contexts</var>.</p>
                   16031: 
                   16032:    </li>
                   16033: 
                   16034:    <li>
                   16035: 
                   16036:     <p>Return the <a href="#auxiliary-browsing-context">auxiliary browsing context</a>'s
                   16037:     <a href="#return-value">return value</a>.</p>
                   16038: 
                   16039:    </li>
                   16040: 
                   16041:   </ol><p>The <code><a href="#window">Window</a></code> objects of <code><a href="dom.html#document">Document</a></code>s hosted
                   16042:   by <a href="#browsing-context" title="browsing context">browsing contexts</a> created
                   16043:   by the above algorithm must also implement the
                   16044:   <code><a href="#windowmodal">WindowModal</a></code> interface.</p>
                   16045: 
                   16046:   <p class="note">When this happens, the members of the
                   16047:   <code><a href="#windowmodal">WindowModal</a></code> interface, in JavaScript environments,
                   16048:   appear to actually be part of the <code><a href="#window">Window</a></code> interface
                   16049:   (e.g. they are on the same prototype chain as the <code title="dom-alert"><a href="#dom-alert">window.alert()</a></code> method).</p>
                   16050: 
                   16051:   </div>
                   16052: 
                   16053:   <pre class="idl">[NoInterfaceObject] interface <dfn id="windowmodal">WindowModal</dfn> {
                   16054:   readonly attribute any <a href="#dom-windowmodal-dialogarguments" title="dom-WindowModal-dialogArguments">dialogArguments</a>;
                   16055:            attribute DOMString <a href="#dom-windowmodal-returnvalue" title="dom-WindowModal-returnValue">returnValue</a>;
                   16056: };</pre>
                   16057: 
                   16058:   <dl class="domintro"><dt><var title="">window</var> . <code title="dom-WindowModal-dialogArguments"><a href="#dom-windowmodal-dialogarguments">dialogArguments</a></code></dt>
                   16059: 
                   16060:    <dd>
                   16061: 
                   16062:     <p>Returns the <var title="">argument</var> argument that was
                   16063:     passed to the <code title="dom-showModalDialog"><a href="#dom-showmodaldialog">showModalDialog()</a></code> method.</p>
                   16064: 
                   16065:    </dd>
                   16066: 
                   16067:    <dt><var title="">window</var> . <code title="dom-WindowModal-returnValue"><a href="#dom-windowmodal-returnvalue">returnValue</a></code> [ = <var title="">value</var> ]</dt>
                   16068: 
                   16069:    <dd>
                   16070: 
                   16071:     <p>Returns the current return value for the window.</p>
                   16072: 
                   16073:     <p>Can be set, to change the value that will be returned by the
                   16074:     <code title="dom-showModalDialog"><a href="#dom-showmodaldialog">showModalDialog()</a></code>
                   16075:     method.</p>
                   16076: 
                   16077:    </dd>
                   16078: 
                   16079:   </dl><div class="impl">
                   16080: 
                   16081:   <p>Such browsing contexts have associated <dfn id="dialog-arguments">dialog
                   16082:   arguments</dfn>, which are stored along with the <dfn id="dialog-arguments'-origin">dialog
                   16083:   arguments' origin</dfn>. These values are set by the <code title="dom-showModalDialog"><a href="#dom-showmodaldialog">showModalDialog()</a></code> method in the
                   16084:   algorithm above, when the browsing context is created, based on the
                   16085:   arguments provided to the method.</p>
                   16086: 
                   16087:   <p>The <dfn id="dom-windowmodal-dialogarguments" title="dom-WindowModal-dialogArguments"><code>dialogArguments</code></dfn>
                   16088:   IDL attribute, on getting, must check whether its browsing context's
                   16089:   <a href="#active-document">active document</a>'s <a href="#origin-0">origin</a> is the <a href="#same-origin" title="same origin">same</a> as the <a href="#dialog-arguments'-origin">dialog arguments'
                   16090:   origin</a>. If it is, then the browsing context's <a href="#dialog-arguments">dialog
                   16091:   arguments</a> must be returned unchanged. Otherwise, if the
                   16092:   <a href="#dialog-arguments">dialog arguments</a> are an object, then the empty string
                   16093:   must be returned, and if the <a href="#dialog-arguments">dialog arguments</a> are not
                   16094:   an object, then the stringification of the <a href="#dialog-arguments">dialog
                   16095:   arguments</a> must be returned.
                   16096: 
                   16097:   </p><p>These browsing contexts also have an associated <dfn id="return-value">return
                   16098:   value</dfn>. The <a href="#return-value">return value</a> of a browsing context
                   16099:   must be initialized to the empty string when the browsing context is
                   16100:   created.</p>
                   16101: 
                   16102:   <p>The <dfn id="dom-windowmodal-returnvalue" title="dom-WindowModal-returnValue"><code>returnValue</code></dfn>
                   16103:   IDL attribute, on getting, must return the <a href="#return-value">return value</a>
                   16104:   of its browsing context, and on setting, must set the <a href="#return-value">return
                   16105:   value</a> to the given new value.</p>
                   16106: 
                   16107:   </div>
                   16108: 
                   16109:   <p class="note">The <code title="dom-window-close"><a href="#dom-window-close">window.close()</a></code> method can be used to
                   16110:   close the browsing context.</p>
                   16111: <!--TOPIC:HTML-->
                   16112: 
                   16113: 
                   16114: <!--TOPIC:DOM APIs-->
                   16115:   <h3 id="system-state-and-capabilities"><span class="secno">6.5 </span>System state and capabilities</h3>
                   16116: 
                   16117:   <h4 id="the-navigator-object"><span class="secno">6.5.1 </span>The <code><a href="#navigator">Navigator</a></code> object</h4>
                   16118: 
                   16119:   <div class="impl">
                   16120: 
                   16121:   <p>The <dfn id="dom-navigator" title="dom-navigator"><code>navigator</code></dfn>
                   16122:   attribute of the <code><a href="#window">Window</a></code> interface must return an
                   16123:   instance of the <code><a href="#navigator">Navigator</a></code> interface, which represents
                   16124:   the identity and state of the user agent (the client), and allows
                   16125:   Web pages to register themselves as potential protocol and content
                   16126:   handlers:</p>
                   16127: 
                   16128:   </div>
                   16129: 
                   16130:   <pre class="idl">interface <dfn id="navigator">Navigator</dfn> {
                   16131:   // objects implementing this interface also implement the interfaces given below
                   16132: };
                   16133: <a href="#navigator">Navigator</a> implements <a href="#navigatorid">NavigatorID</a>;
                   16134: <a href="#navigator">Navigator</a> implements <a href="#navigatoronline">NavigatorOnLine</a>;
                   16135: <a href="#navigator">Navigator</a> implements <a href="#navigatorcontentutils">NavigatorContentUtils</a>;
                   16136: <a href="#navigator">Navigator</a> implements <a href="#navigatorstorageutils">NavigatorStorageUtils</a>;</pre>
                   16137: 
                   16138: <!-- v2:
                   16139:   cookieEnabled geolocator javaEnabled mozIsLocallyAvailable preference
                   16140:   readonly attribute <span>MimeTypeArray</span> <span title="dom-navigator-mimeTypes">mimeTypes</span>;
                   16141:   readonly attribute <span>PluginArray</span> <span title="dom-navigator-plugins">plugins</span>;
                   16142:   (the latter is used in a <video> element demo now, so we might need to pull this forward from v2!)
                   16143: -->
                   16144: 
                   16145:   <div class="impl">
                   16146: 
                   16147:   <p>These interfaces are defined separately so that other
                   16148:   specifications can re-use parts of the <code><a href="#navigator">Navigator</a></code>
                   16149:   interface.</p>
                   16150: 
                   16151:    <!-- v2: also, could expose languages:
                   16152:    <dt><dfn title="dom-navigator-browserLanguage"><code>browserLanguage</code></dfn></dt> <!- - Opera and IE only - ->
                   16153:    <dd><p>Must return either null or a language tag representing the language the browser uses in its interface.</p></dd>
                   16154:    <dt><dfn title="dom-navigator-userLanguage"><code>userLanguage</code></dfn></dt> <!- - Opera and IE only - ->
                   16155:    <dt><dfn title="dom-navigator-language"><code>language</code></dfn></dt> <!- - Opera, Safari, and Mozilla only - ->
                   16156:    <dd><p>Must return either null or a language tag representing the user's preferred language.</p></dd>
                   16157:    -->
                   16158: 
                   16159:   </div>
                   16160: 
                   16161: 
                   16162:   <h5 id="client-identification"><span class="secno">6.5.1.1 </span>Client identification</h5>
                   16163: 
                   16164:   <pre class="idl">[NoInterfaceObject]
                   16165: interface <dfn id="navigatorid">NavigatorID</dfn> {<!--
                   16166:   readonly attribute DOMString <span title="dom-navigator-appCodeName">appCodeName</span>;-->
                   16167:   readonly attribute DOMString <a href="#dom-navigator-appname" title="dom-navigator-appName">appName</a>;
                   16168:   readonly attribute DOMString <a href="#dom-navigator-appversion" title="dom-navigator-appVersion">appVersion</a>;
                   16169:   readonly attribute DOMString <a href="#dom-navigator-platform" title="dom-navigator-platform">platform</a>;
                   16170:   readonly attribute DOMString <a href="#dom-navigator-useragent" title="dom-navigator-userAgent">userAgent</a>;
                   16171: };</pre>
                   16172: 
                   16173:   <p>In certain cases, despite the best efforts of the entire
                   16174:   industry, Web browsers have bugs and limitations that Web authors
                   16175:   are forced to work around.</p>
                   16176: 
                   16177:   <p>This section defines a collection of attributes that can be used
                   16178:   to determine, from script, the kind of user agent in use, in order
                   16179:   to work around these issues.</p>
                   16180: 
                   16181:   <p>Client detection should always be limited to detecting known
                   16182:   current versions; future versions and unknown versions should always
                   16183:   be assumed to be fully compliant.</p>
                   16184: 
                   16185:   <dl class="domintro"><dt><var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-appName"><a href="#dom-navigator-appname">appName</a></code></dt>
                   16186:    <dd>
                   16187:     <p>Returns the name of the browser.</p>
                   16188:    </dd>
                   16189: 
                   16190:    <dt><var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-appVersion"><a href="#dom-navigator-appversion">appVersion</a></code></dt>
                   16191:    <dd>
                   16192:     <p>Returns the version of the browser.</p>
                   16193:    </dd>
                   16194: 
                   16195:    <dt><var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-platform"><a href="#dom-navigator-platform">platform</a></code></dt>
                   16196:    <dd>
                   16197:     <p>Returns the name of the platform.</p>
                   16198:    </dd>
                   16199: 
                   16200:    <dt><var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-userAgent"><a href="#dom-navigator-useragent">userAgent</a></code></dt>
                   16201:    <dd>
                   16202:     <p>Returns the complete User-Agent header.</p>
                   16203:    </dd>
                   16204: 
                   16205:   </dl><div class="impl">
                   16206: 
                   16207:   <dl><!-- redundant
                   16208:    <dt><dfn title="dom-navigator-appCodeName"><code>appCodeName</code></dfn></dt>
                   16209:    <dd><p>Must return the string "<code title="">Mozilla</code>".</p></dd>
                   16210:    --><!-- appMinorVersion: IE only. In IE8b1, returns " Beta" (with the space) --><dt><dfn id="dom-navigator-appname" title="dom-navigator-appName"><code>appName</code></dfn></dt>
                   16211:    <dd><p>Must return either the string "<code title="">Netscape</code>" or the full name of the browser, e.g. "<code title="">Mellblom Browsernator</code>".</p></dd>
                   16212: 
                   16213:    <dt><dfn id="dom-navigator-appversion" title="dom-navigator-appVersion"><code>appVersion</code></dfn></dt>
                   16214:    <dd><p>Must return either the string "<code title="">4.0</code>" or a string representing the version of the browser in detail, e.g. "<code title="">1.0 (VMS; en-US) Mellblomenator/9000</code>".</p></dd>
                   16215: 
                   16216:    <!-- buildID: Mozilla only -->
                   16217: 
                   16218:    <!-- oscpu: Mozilla only -->
                   16219: 
                   16220:    <dt><dfn id="dom-navigator-platform" title="dom-navigator-platform"><code>platform</code></dfn></dt>
                   16221:    <dd><p>Must return either the empty string or a string representing the platform on which the browser is executing, e.g. "<code title="">MacIntel</code>", "<code title="">Win32</code>", "<code title="">FreeBSD i386</code>", "<code title="">WebTV OS</code>".</p></dd>
                   16222: 
                   16223:    <!-- product: Mozilla and Safari only; always returns "Gecko" -->
                   16224: 
                   16225:    <!-- productSub: Mozilla and Safari only; returns same as buildID in Mozilla, and returns the fixed string "20030107" in Safari -->
                   16226: 
                   16227:    <!-- securityPolicy: Mozilla only; always returns "" -->
                   16228: 
                   16229:    <!-- taintEnabled(): Opera, IE and Mozilla have this function as one that always returns false -->
                   16230: 
                   16231:    <dt><dfn id="dom-navigator-useragent" title="dom-navigator-userAgent"><code>userAgent</code></dfn></dt>
                   16232:    <dd><p>Must return the string used for the value of the "<code title="">User-Agent</code>" header in HTTP requests, or the empty string if no such header is ever sent.</p></dd>
                   16233: 
                   16234:    <!-- vendor: Mozilla and Safari only; always returns "" in Mozilla, and returns the fixed string "Apple Computer, Inc." in Safari -->
                   16235: 
                   16236:    <!-- vendorSub: Mozilla and Safari only; always returns "" -->
                   16237: 
                   16238:   </dl><p class="warning">Any information in this API that varies from user
                   16239:   to user can be used to profile the user. In fact, if enough such
                   16240:   information is available, a user can actually be uniquely
                   16241:   identified. For this reason, user agent implementors are strongly
                   16242:   urged to include as little information in this API as possible.
                   16243:   <!--INSERT FINGERPRINT-->
                   16244:   </p>
                   16245: 
                   16246:   </div>
                   16247: 
                   16248: 
                   16249:   <h5 id="custom-handlers"><span class="secno">6.5.1.2 </span>Custom scheme and content handlers</h5>
                   16250: 
                   16251:   <pre class="idl">[NoInterfaceObject]
                   16252: interface <dfn id="navigatorcontentutils">NavigatorContentUtils</dfn> {
                   16253:   // content handler registration
                   16254:   void <a href="#dom-navigator-registerprotocolhandler" title="dom-navigator-registerProtocolHandler">registerProtocolHandler</a>(DOMString scheme, DOMString url, DOMString title);
                   16255:   void <a href="#dom-navigator-registercontenthandler" title="dom-navigator-registerContentHandler">registerContentHandler</a>(DOMString mimeType, DOMString url, DOMString title);
                   16256:   DOMString <a href="#dom-navigator-isprotocolhandlerregistered" title="dom-navigator-isProtocolHandlerRegistered">isProtocolHandlerRegistered</a>(DOMString scheme, DOMString url);
                   16257:   DOMString <a href="#dom-navigator-iscontenthandlerregistered" title="dom-navigator-isContentHandlerRegistered">isContentHandlerRegistered</a>(DOMString mimeType, DOMString url);
                   16258:   void <a href="#dom-navigator-unregisterprotocolhandler" title="dom-navigator-unregisterProtocolHandler">unregisterProtocolHandler</a>(DOMString scheme, DOMString url);
                   16259:   void <a href="#dom-navigator-unregistercontenthandler" title="dom-navigator-unregisterContentHandler">unregisterContentHandler</a>(DOMString mimeType, DOMString url);
                   16260: };</pre>
                   16261: 
                   16262:   <p>The <dfn id="dom-navigator-registerprotocolhandler" title="dom-navigator-registerProtocolHandler"><code>registerProtocolHandler()</code></dfn>
                   16263:   method allows Web sites to register themselves as possible handlers
                   16264:   for particular schemes. For example, an online telephone messaging
                   16265:   service could register itself as a handler of the <code>sms:</code>
                   16266:   scheme, so that if the user clicks on such a link, he is given the
                   16267:   opportunity to use that Web site. Analogously, the <dfn id="dom-navigator-registercontenthandler" title="dom-navigator-registerContentHandler"><code>registerContentHandler()</code></dfn>
                   16268:   method allows Web sites to register themselves as possible handlers
                   16269:   for content in a particular <a href="infrastructure.html#mime-type">MIME type</a>. For example, the
                   16270:   same online telephone messaging service could register itself as a
                   16271:   handler for <code>text/vcard</code> files, so that if the user has
                   16272:   no native application capable of handling vCards, his Web browser
                   16273:   can instead suggest he use that site to view contact information
                   16274:   stored on vCards that he opens. <a href="#refsRFC5724">[RFC5724]</a>
                   16275:   <a href="#refsRFC6350">RFC6350</a></p>
                   16276: 
                   16277:   <dl class="domintro"><dt><var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-registerProtocolHandler"><a href="#dom-navigator-registerprotocolhandler">registerProtocolHandler</a></code>(<var title="">scheme</var>, <var title="">url</var>, <var title="">title</var>)</dt>
                   16278:    <dt><var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-registerContentHandler"><a href="#dom-navigator-registercontenthandler">registerContentHandler</a></code>(<var title="">mimeType</var>, <var title="">url</var>, <var title="">title</var>)</dt>
                   16279: 
                   16280:    <dd>
                   16281: 
                   16282:     <p>Registers a handler for the given scheme or content type, at
                   16283:     the given URL, with the given title.</p>
                   16284: 
                   16285:     <p>The string "<code title="">%s</code>" in the URL is used as a
                   16286:     placeholder for where to put the URL of the content to be
                   16287:     handled.</p>
                   16288: 
                   16289:     <p>Throws a <code><a href="infrastructure.html#securityerror">SecurityError</a></code> exception if the user agent
                   16290:     blocks the registration (this might happen if trying to register
                   16291:     as a handler for "http", for instance).</p>
                   16292: 
                   16293:     <p>Throws a <code><a href="infrastructure.html#syntaxerror">SyntaxError</a></code> if the "<code title="">%s</code>" string is missing in the URL.</p>
                   16294: 
                   16295:    </dd>
                   16296: 
                   16297:   </dl><div class="impl">
                   16298: 
                   16299:   <p>User agents may, within the constraints described in this
                   16300:   section, do whatever they like when the methods are called. A UA
                   16301:   could, for instance, prompt the user and offer the user the
                   16302:   opportunity to add the site to a shortlist of handlers, or make the
                   16303:   handlers his default, or cancel the request. UAs could provide such
                   16304:   a UI through modal UI or through a non-modal transient notification
                   16305:   interface. UAs could also simply silently collect the information,
                   16306:   providing it only when relevant to the user.</p>
                   16307: 
                   16308:   <p>User agents should keep track of which sites have registered
                   16309:   handlers (even if the user has declined such registrations) so that
                   16310:   the user is not repeatedly prompted with the same request.</p>
                   16311: 
                   16312:   <p>The arguments to the methods have the following meanings and
                   16313:   corresponding implementation requirements. The requirements that
                   16314:   involve throwing exceptions must be processed in the order given
                   16315:   below, stopping at the first exception thrown. (So the exceptions
                   16316:   for the first argument take precedence over the exceptions for the
                   16317:   second argument.)</p>
                   16318: 
                   16319:   <dl><dt><var title="">scheme</var> (<code title="dom-navigator-registerProtocolHandler"><a href="#dom-navigator-registerprotocolhandler">registerProtocolHandler()</a></code> only)</dt>
                   16320: 
                   16321:    <dd>
                   16322: 
                   16323:     <p>A scheme, such as <code>mailto</code> or <code>web+auth</code>.
                   16324:     The scheme must be compared in an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   16325:     case-insensitive</a> manner by user agents for the purposes of
                   16326:     comparing with the scheme part of URLs that they consider against
                   16327:     the list of registered handlers.</p>
                   16328: 
                   16329:     <p>The <var title="">scheme</var> value, if it contains a colon
                   16330:     (as in "<code>mailto:</code>"), will never match anything, since
                   16331:     schemes don't contain colons.</p>
                   16332: 
                   16333:     <p>If the <code title="dom-navigator-registerProtocolHandler"><a href="#dom-navigator-registerprotocolhandler">registerProtocolHandler()</a></code>
                   16334:     method is invoked with a scheme that is neither a
                   16335:     <a href="#whitelisted-scheme">whitelisted scheme</a> nor a scheme whose value starts
                   16336:     with the substring "<code title="">web+</code>" and otherwise
                   16337:     contains only characters in the range <a href="common-microsyntaxes.html#lowercase-ascii-letters">lowercase ASCII letters</a>, the user agent must throw a
                   16338:     <code><a href="infrastructure.html#securityerror">SecurityError</a></code> exception.</p>
                   16339: 
                   16340:     <p>The following schemes are the <dfn id="whitelisted-scheme" title="whitelisted
                   16341:     scheme">whitelisted schemes</dfn>:</p>
                   16342: 
                   16343:     <ul class="brief"><li><code title="">irc</code></li>
                   16344:      <li><code title="">mailto</code></li>
                   16345:      <li><code title="">magnet</code></li>
                   16346:      <li><code title="">mms</code></li>
                   16347:      <li><code title="">news</code></li>
                   16348:      <li><code title="">nntp</code></li>
                   16349:      <li><code title="">sip</code></li>
                   16350:      <li><code title="">sms</code></li>
                   16351:      <li><code title="">smsto</code></li>
                   16352:      <li><code title="">ssh</code></li>
                   16353:      <li><code title="">tel</code></li>
                   16354:      <li><code title="">urn</code></li>
                   16355:      <li><code title="">webcal</code></li>
                   16356:      <li><code title="">xmpp</code></li>
                   16357:     </ul><p class="note">This list can be changed. If there are schemes
                   16358:     that should be added, please send feedback.</p>
                   16359: 
                   16360:     <p class="note">This list excludes any schemes that could
                   16361:     reasonably be expected to be supported inline, e.g. in an
                   16362:     <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>, such as <code title="">http</code> or (more
                   16363:     theoretically) <code title="">gopher</code>. If those were
                   16364:     supported, they could potentially be used in man-in-the-middle
                   16365:     attacks, by replacing pages that have frames with such content
                   16366:     with content under the control of the protocol handler. If the
                   16367:     user agent has native support for the schemes, this could further
                   16368:     be used for cookie-theft attacks.</p>
                   16369: 
                   16370:    </dd>
                   16371: 
                   16372:    <dt><var title="">mimeType</var> (<code title="dom-navigator-registerContentHandler"><a href="#dom-navigator-registercontenthandler">registerContentHandler()</a></code> only)</dt>
                   16373: 
                   16374:    <dd>
                   16375: 
                   16376:     <p>A <a href="infrastructure.html#mime-type">MIME type</a>, such as
                   16377:     <code>model/vnd.flatland.3dml</code> or
                   16378:     <code>application/vnd.google-earth.kml+xml</code>. The <a href="infrastructure.html#mime-type">MIME
                   16379:     type</a> must be compared in an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   16380:     case-insensitive</a> manner by user agents for the purposes of
                   16381:     comparing with MIME types of documents that they consider against
                   16382:     the list of registered handlers.</p>
                   16383: 
                   16384:     <p>User agents must compare the given values only to the MIME
                   16385:     type/subtype parts of content types, not to the complete type
                   16386:     including parameters. Thus, if <var title="">mimeType</var> values
                   16387:     passed to this method include characters such as commas or
                   16388:     whitespace, or include MIME parameters, then the handler being
                   16389:     registered will never be used.</p>
                   16390: 
                   16391:     <p class="note">The type is compared to the <a href="infrastructure.html#mime-type">MIME type</a>
                   16392:     used by the user agent <em>after</em> the sniffing algorithms have
                   16393:     been applied.</p>
                   16394: 
                   16395:     <p>If the <code title="dom-navigator-registerContentHandler"><a href="#dom-navigator-registercontenthandler">registerContentHandler()</a></code>
                   16396:     method is invoked with a <a href="infrastructure.html#mime-type">MIME type</a> that is in the
                   16397:     <a href="#type-blacklist">type blacklist</a> or that the user agent has deemed a
                   16398:     privileged type, the user agent must throw a
                   16399:     <code><a href="infrastructure.html#securityerror">SecurityError</a></code> exception.</p>
                   16400: 
                   16401:     <p>The following <a href="infrastructure.html#mime-type" title="MIME type">MIME types</a> are in
                   16402:     the <dfn id="type-blacklist">type blacklist</dfn>:</p>
                   16403: 
                   16404:     <ul class="brief"><li><code><a href="#application/x-www-form-urlencoded">application/x-www-form-urlencoded</a></code></li>
                   16405:      <li><code><a href="#application/xhtml+xml">application/xhtml+xml</a></code></li>
                   16406:      <li><code>application/xml</code></li>
                   16407:      <li><code>image/gif</code></li>
                   16408:      <li><code>image/jpeg</code></li>
                   16409:      <li><code>image/png</code></li>
                   16410:      <li><code>image/svg+xml</code></li>
                   16411:      <li><code><a href="#multipart/x-mixed-replace">multipart/x-mixed-replace</a></code></li>
                   16412:      <li><code><a href="#text/cache-manifest">text/cache-manifest</a></code></li>
                   16413:      <li><code>text/css</code></li>
                   16414:      <li><code><a href="#text/html">text/html</a></code></li>
                   16415:      <li><code>text/ping</code></li>
                   16416:      <li><code>text/plain</code></li>
                   16417:      <li><code>text/xml</code></li>
                   16418:      <li>All types that the user agent supports displaying natively in a <a href="#browsing-context">browsing context</a> during <a href="#navigate" title="navigate">navigation</a>, except for <code>application/rss+xml</code> and <code>application/atom+xml</code></li>
                   16419: 
                   16420:     </ul><p class="note">This list can be changed. If there are schemes
                   16421:     that should be added, please send feedback.</p>
                   16422: 
                   16423:    </dd>
                   16424: 
                   16425: 
                   16426:    <dt><var title="">url</var></dt>
                   16427: 
                   16428:    <dd>
                   16429: 
                   16430:     <p>A string used to build the <a href="urls.html#url">URL</a> of the page that
                   16431:     will handle the requests.</p>
                   16432: 
                   16433:     <p>User agents must throw a <code><a href="infrastructure.html#syntaxerror">SyntaxError</a></code> exception if
                   16434:     the <var title="">url</var> argument passed to one of these
                   16435:     methods does not contain the exact literal string
                   16436:     "<code><a href="the-s-element.html#the-s-element">%s</a></code>".</p>
                   16437: 
                   16438:     <p>User agents must throw a <code><a href="infrastructure.html#syntaxerror">SyntaxError</a></code> if <a href="urls.html#resolve-a-url" title="resolve a url">resolving</a> the <var title="">url</var>
                   16439:     argument relative to the <a href="#entry-script">entry script</a>'s <a href="#script's-base-url" title="script's base URL">base URL</a>, is not successful.</p>
                   16440: 
                   16441:     <p class="note">The resulting <a href="urls.html#absolute-url">absolute URL</a> would by
                   16442:     definition not be a <a href="urls.html#valid-url">valid URL</a> as it would include the
                   16443:     string "<code title="">%s</code>" which is not a valid component
                   16444:     in a URL.</p>
                   16445: 
                   16446:     <p>User agents must throw a <code><a href="infrastructure.html#securityerror">SecurityError</a></code> exception if
                   16447:     the resulting <a href="urls.html#absolute-url">absolute URL</a> has an <a href="#origin-0">origin</a>
                   16448:     that differs from the <a href="#origin-0">origin</a> of the <a href="#entry-script">entry
                   16449:     script</a>.</p>
                   16450: 
                   16451:     <p class="note">This is forcibly the case if the <code title="">%s</code> placeholder is in the scheme, host, or port
                   16452:     parts of the URL.</p>
                   16453: 
                   16454:     <p>The resulting <a href="urls.html#absolute-url">absolute URL</a> is the
                   16455:     <dfn id="proto-url">proto-URL</dfn>. It identifies the handler for the purposes
                   16456:     of the methods described below.</p>
                   16457: 
                   16458:     <p>When the user agent uses this handler, it must replace the
                   16459:     first occurrence of the exact literal string "<code title="">%s</code>" in the <var title="">url</var> argument with
                   16460:     an escaped version of the <a href="urls.html#absolute-url">absolute URL</a> of the content
                   16461:     in question (as defined below), then <a href="urls.html#resolve-a-url" title="resolve a
                   16462:     url">resolve</a> the resulting URL, relative to the <a href="#script's-base-url" title="script's base URL">base URL</a> of the <a href="#entry-script">entry
                   16463:     script</a> at the time the <code title="dom-navigator-registerContentHandler"><a href="#dom-navigator-registercontenthandler">registerContentHandler()</a></code>
                   16464:     or <code title="dom-navigator-registerProtocolHandler"><a href="#dom-navigator-registerprotocolhandler">registerProtocolHandler()</a></code>
                   16465:     methods were invoked, and then <a href="#navigate">navigate</a><!--DONAV
                   16466:     user--> an appropriate <a href="#browsing-context">browsing context</a> to the
                   16467:     resulting URL using the GET method (<a href="urls.html#concept-http-equivalent-get" title="concept-http-equivalent-get">or equivalent</a> for
                   16468:     non-HTTP URLs).</p>
                   16469: 
                   16470:     <p>To get the escaped version of the <a href="urls.html#absolute-url">absolute URL</a> of
                   16471:     the content in question, the user agent must replace every
                   16472:     character in that <a href="urls.html#absolute-url">absolute URL</a> that doesn't match the
                   16473:     &lt;query&gt; production defined in RFC 3986 by the
                   16474:     percent-encoded form of that character. <a href="#refsRFC3986">[RFC3986]</a></p>
                   16475: 
                   16476:     <div class="example">
                   16477: 
                   16478:      <p>If the user had visited a site at <code title="">http://example.com/</code> that made the following
                   16479:      call:</p>
                   16480: 
                   16481:      <pre>navigator.registerContentHandler('application/x-soup', 'soup?url=%s', 'SoupWeb&#8482;')</pre>
                   16482: 
                   16483:      <p>...and then, much later, while visiting <code title="">http://www.example.net/</code>, clicked on a link such
                   16484:      as:</p>
                   16485: 
                   16486:      <pre>&lt;a href="chickenk&#239;wi.soup"&gt;Download our Chicken K&#239;wi soup!&lt;/a&gt;</pre>
                   16487: 
                   16488:      <p>...then, assuming this <code>chickenk&#239;wi.soup</code> file
                   16489:      was served with the <a href="infrastructure.html#mime-type">MIME type</a>
                   16490:      <code>application/x-soup</code>, the UA might navigate to the
                   16491:      following URL:</p>
                   16492: 
                   16493:      <pre>http://example.com/soup?url=http://www.example.net/chickenk%C3%AFwi.soup</pre>
                   16494: 
                   16495:      <p>This site could then fetch the <code>chickenk&#239;wi.soup</code>
                   16496:      file and do whatever it is that it does with soup (synthesize it
                   16497:      and ship it to the user, or whatever).</p>
                   16498: 
                   16499:     </div>
                   16500: 
                   16501:    </dd>
                   16502: 
                   16503:    <dt><var title="">title</var></dt>
                   16504: 
                   16505:    <dd>
                   16506: 
                   16507:     <p>A descriptive title of the handler, which the UA might use to
                   16508:     remind the user what the site in question is.</p>
                   16509: 
                   16510:    </dd>
                   16511: 
                   16512:   </dl><p>This section does not define how the pages registered by these
                   16513:   methods are used, beyond the requirements on how to process the <var title="">url</var> value (see above). To some extent, the <a href="#navigate" title="navigate">processing model for navigating across
                   16514:   documents</a> defines some cases where these methods are
                   16515:   relevant, but in general UAs may use this information wherever they
                   16516:   would otherwise consider handing content to native plugins or helper
                   16517:   applications.</p>
                   16518: 
                   16519:   <p>UAs must not use registered content handlers to handle content
                   16520:   that was returned as part of a non-GET transaction (or rather, as
                   16521:   part of any non-idempotent transaction), as the remote site would
                   16522:   not be able to fetch the same data.</p>
                   16523: 
                   16524:   <hr></div>
                   16525: 
                   16526:   <p>In addition to the registration methods, there are also methods
                   16527:   for determining if particular handlers have been registered, and for
                   16528:   unregistering handlers.</p>
                   16529: 
                   16530:   <dl class="domintro"><dt><var title="">state</var> = <var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-isProtocolHandlerRegistered"><a href="#dom-navigator-isprotocolhandlerregistered">isProtocolHandlerRegistered</a></code>(<var title="">scheme</var>, <var title="">url</var>)</dt>
                   16531:    <dt><var title="">state</var> = <var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-isContentHandlerRegistered"><a href="#dom-navigator-iscontenthandlerregistered">isContentHandlerRegistered</a></code>(<var title="">mimeType</var>, <var title="">url</var>)</dt>
                   16532: 
                   16533:    <dd>
                   16534: 
                   16535:     <p>Returns one of the following strings describing the state of
                   16536:     the handler given by the arguments:</p>
                   16537: 
                   16538:     <dl><dt><code title="">new</code>
                   16539:      </dt><dd>Indicates that no attempt has been made to register the given
                   16540:      handler (or that the handler has been unregistered). It would be
                   16541:      appropriate to promote the availability of the handler or to just
                   16542:      automatically register the handler.
                   16543: 
                   16544:      </dd><dt><code title="">registered</code>
                   16545:      </dt><dd>Indicates that the given handler has been registered or that
                   16546:      the site is blocked from registering the handler. Trying to
                   16547:      register the handler again would have no effect.
                   16548: 
                   16549:      </dd><dt><code title="">declined</code>
                   16550:      </dt><dd>Indicates that the given handler has been offered but was
                   16551:      rejected. Trying to register the handler again may prompt the
                   16552:      user again.
                   16553: 
                   16554:     </dd></dl></dd>
                   16555: 
                   16556:    <dt><var title="">state</var> = <var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-unregisterProtocolHandler"><a href="#dom-navigator-unregisterprotocolhandler">unregisterProtocolHandler</a></code>(<var title="">scheme</var>, <var title="">url</var>)</dt>
                   16557:    <dt><var title="">state</var> = <var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-unregisterContentHandler"><a href="#dom-navigator-unregistercontenthandler">unregisterContentHandler</a></code>(<var title="">mimeType</var>, <var title="">url</var>)</dt>
                   16558: 
                   16559:    <dd>
                   16560: 
                   16561:     <p>Unregisters the handler given by the arguments.</p>
                   16562: 
                   16563:    </dd>
                   16564: 
                   16565:   </dl><div class="impl">
                   16566: 
                   16567:   <p>The <dfn id="dom-navigator-isprotocolhandlerregistered" title="dom-navigator-isProtocolHandlerRegistered"><code>isProtocolHandlerRegistered()</code></dfn>
                   16568:   method must return the <a href="#handler-state-string">handler state string</a> that most
                   16569:   closely describes the current state of the handler described by the
                   16570:   two arguments to the method, where the first argument gives the
                   16571:   scheme and the second gives the string used to build the
                   16572:   <a href="urls.html#url">URL</a> of the page that will handle the requests.
                   16573:   <!--INSERT FINGERPRINT-->
                   16574:   </p>
                   16575: 
                   16576:   <p>The first argument must be compared to the schemes for which
                   16577:   custom protocol handlers are registered in an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   16578:   case-insensitive</a> manner to find the relevant handlers.</p>
                   16579: 
                   16580:   <p>The second argument must be preprocessed as described below, and
                   16581:   if that is successful, must then be matched against the <a href="#proto-url" title="proto-URL">proto-URLs</a> of the relevant handlers to find
                   16582:   the described handler.</p>
                   16583: 
                   16584:   <hr><p>The <dfn id="dom-navigator-iscontenthandlerregistered" title="dom-navigator-isContentHandlerRegistered"><code>isContentHandlerRegistered()</code></dfn>
                   16585:   method must return the <a href="#handler-state-string">handler state string</a> that most
                   16586:   closely describes the current state of the handler described by the
                   16587:   two arguments to the method, where the first argument gives the
                   16588:   <a href="infrastructure.html#mime-type">MIME type</a> and the second gives the string used to build
                   16589:   the <a href="urls.html#url">URL</a> of the page that will handle the requests.
                   16590:   <!--INSERT FINGERPRINT-->
                   16591:   </p>
                   16592: 
                   16593:   <p>The first argument must be compared to the <a href="infrastructure.html#mime-type" title="MIME
                   16594:   type">MIME types</a> for which custom content handlers are
                   16595:   registered in an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> manner to find
                   16596:   the relevant handlers.</p>
                   16597: 
                   16598:   <p>The second argument must be preprocessed as described below, and
                   16599:   if that is successful, must then be matched against the
                   16600:   <a href="#proto-url" title="proto-URL">proto-URLs</a> of the relevant handlers to
                   16601:   find the described handler.</p>
                   16602: 
                   16603:   <hr><p>The <dfn id="handler-state-string" title="handler state string">handler state strings</dfn>
                   16604:   are the following strings. Each string describes several situations,
                   16605:   as given by the following list.</p>
                   16606: 
                   16607:   <dl><dt><code title="">new</code>
                   16608: 
                   16609:    </dt><dd>The described handler has never been registered for the given
                   16610:    scheme or type.
                   16611: 
1.196     sruby    16612:    </dd><dd>The described handler was once registered for the given scheme
1.190     sruby    16613:    or type, but the site has since unregistered it. If the handler
                   16614:    were to be reregistered, the user would be notified accordingly.
                   16615: 
1.196     sruby    16616:    </dd><dd>The described handler was once registered for the given scheme
1.190     sruby    16617:    or type, but the site has since unregistered it, but the user has
                   16618:    indicated that the site is to be blocked from registering the type
                   16619:    again, so the user agent would ignore further registration attempts.
                   16620: 
                   16621: 
1.196     sruby    16622:    </dd><dt><code title="">registered</code>
1.190     sruby    16623: 
                   16624:    </dt><dd>An attempt was made to register the described handler for the
                   16625:    given scheme or type, but the user has not yet been notified, and
                   16626:    the user agent would ignore further registration attempts. (Maybe
                   16627:    the user agent batches registration requests to display them when
                   16628:    the user requests to be notified about them, and the user has not
                   16629:    yet requested that the user agent notify it of the previous
                   16630:    registration attempt.)
                   16631: 
1.196     sruby    16632:    </dd><dd>The described handler is registered for the given scheme or
1.190     sruby    16633:    type (maybe, or maybe not, as the default handler).
                   16634: 
1.196     sruby    16635:    </dd><dd>The described handler is permanently blocked from being
1.190     sruby    16636:    (re)registered. (Maybe the user marked the registration attempt as
                   16637:    spam, or blocked the site for other reasons.)
                   16638: 
                   16639: 
1.196     sruby    16640:    </dd><dt><code title="">declined</code>
1.190     sruby    16641: 
                   16642:    </dt><dd>An attempt was made to register the described handler for the
                   16643:    given scheme or type, but the user has not yet been notified;
                   16644:    however, the user might be notified if another registration attempt
                   16645:    were to be made. (Maybe the last registration attempt was made
                   16646:    while the page was in the background and the user closed the page
                   16647:    without looking at it, and the user agent requires confirmation for
                   16648:    this registration attempt.)
                   16649: 
1.196     sruby    16650:    </dd><dd>An attempt was made to register the described handler for the
1.190     sruby    16651:    given scheme or type, but the user has not yet responded.
                   16652: 
1.196     sruby    16653:    </dd><dd>An attempt was made to register the described handler for the
1.190     sruby    16654:    given scheme or type, but the user declined the offer. The user has
                   16655:    not indicated that the handler is to be permanently blocked,
                   16656:    however, so another attempt to register the described handler might
                   16657:    result in the user being prompted again.
                   16658: 
1.196     sruby    16659:    </dd><dd>The described handler was once registered for the given scheme
1.190     sruby    16660:    or type, but the user has since removed it. The user has not
                   16661:    indicated that the handler is to be permanently blocked, however,
                   16662:    so another attempt to register the described handler might result
                   16663:    in the user being prompted again.
                   16664: 
1.196     sruby    16665:   </dd></dl><hr><p>The <dfn id="dom-navigator-unregisterprotocolhandler" title="dom-navigator-unregisterProtocolHandler"><code>unregisterProtocolHandler()</code></dfn>
1.190     sruby    16666:   method must unregister the handler described by the two arguments to
                   16667:   the method, where the first argument gives the scheme and the second
                   16668:   gives the string used to build the <a href="urls.html#url">URL</a> of the page that
                   16669:   will handle the requests.</p>
                   16670: 
                   16671:   <p>The first argument must be compared to the schemes for which
                   16672:   custom protocol handlers are registered in an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   16673:   case-insensitive</a> manner to find the relevant handlers.</p>
                   16674: 
                   16675:   <p>The second argument must be preprocessed as described below, and
                   16676:   if that is successful, must then be matched against the <a href="#proto-url" title="proto-URL">proto-URLs</a> of the relevant handlers to find
                   16677:   the described handler.</p>
                   16678: 
                   16679:   <hr><p>The <dfn id="dom-navigator-unregistercontenthandler" title="dom-navigator-unregisterContentHandler"><code>unregisterContentHandler()</code></dfn>
                   16680:   method must unregister the handler described by the two arguments to
                   16681:   the method, where the first argument gives the <a href="infrastructure.html#mime-type">MIME
                   16682:   type</a> and the second gives the string used to build the
                   16683:   <a href="urls.html#url">URL</a> of the page that will handle the requests.</p>
                   16684: 
                   16685:   <p>The first argument must be compared to the <a href="infrastructure.html#mime-type" title="MIME
                   16686:   type">MIME types</a> for which custom content handlers are
                   16687:   registered in an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> manner to find
                   16688:   the relevant handlers.</p>
                   16689: 
                   16690:   <p>The second argument must be preprocessed as described below, and
                   16691:   if that is successful, must then be matched against the
                   16692:   <a href="#proto-url" title="proto-URL">proto-URLs</a> of the relevant handlers to
                   16693:   find the described handler.</p>
                   16694: 
                   16695:   <hr><p>The second argument of the four methods described above must be
                   16696:   preprocessed as follows:</p>
                   16697: 
                   16698:   <ol><li><p>If the string does not contain the substring "<code title="">%s</code>", abort these steps. There's no matching
                   16699:    handler.</p></li>
                   16700: 
                   16701:    <li><p><a href="urls.html#resolve-a-url" title="resolve a URL">Resolve</a> the string
                   16702:    relative to the <a href="#script's-base-url" title="script's base URL">base URL</a> of
                   16703:    the <a href="#entry-script">entry script</a>.</p></li>
                   16704: 
                   16705:    <li><p>If this fails, then throw a <code><a href="infrastructure.html#syntaxerror">SyntaxError</a></code>
                   16706:    exception, aborting the method.</p></li>
                   16707: 
                   16708:    <li><p>If the resoluting <a href="urls.html#absolute-url">absolute URL</a>'s
                   16709:    <a href="#origin-0">origin</a> is not the <a href="#same-origin">same origin</a> as that of
                   16710:    the <a href="#entry-script">entry script</a> throw a <a href="infrastructure.html#securityerror">SecurityError</a>
                   16711:    exception, aborting the method.</p></li>
                   16712: 
                   16713:    <li><p>Return the resulting <a href="urls.html#absolute-url">absolute URL</a> as the result
                   16714:    of preprocessing the argument.</p></li>
                   16715: 
                   16716:   </ol></div>
                   16717: 
                   16718: 
                   16719: 
                   16720: <!--ADD-TOPIC:Security-->
                   16721:   <div class="impl">
                   16722: 
                   16723:   <h5 id="security-and-privacy"><span class="secno">6.5.1.3 </span>Security and privacy</h5>
                   16724: 
                   16725:   <p>These mechanisms can introduce a number of concerns, in
                   16726:   particular privacy concerns.</p>
                   16727: 
                   16728:   <p><strong>Hijacking all Web usage.</strong> User agents should not
                   16729:   allow schemes that are key to its normal operation, such as
                   16730:   <code>http</code> or <code>https</code>, to be rerouted through
                   16731:   third-party sites. This would allow a user's activities to be
                   16732:   trivially tracked, and would allow user information, even in secure
                   16733:   connections, to be collected.</p>
                   16734: 
                   16735:   <p><strong>Hijacking defaults.</strong> It is strongly recommended
                   16736:   that user agents do not automatically change any defaults, as this
                   16737:   could lead the user to send data to remote hosts that the user is
                   16738:   not expecting. New handlers registering themselves should never
                   16739:   automatically cause those sites to be used.</p>
                   16740: 
                   16741:   <p><strong>Registration spamming.</strong> User agents should
                   16742:   consider the possibility that a site will attempt to register a
                   16743:   large number of handlers, possibly from multiple domains (e.g. by
                   16744:   redirecting through a series of pages each on a different domain,
                   16745:   and each registering a handler for <code>video/mpeg</code> &#8212;
                   16746:   analogous practices abusing other Web browser features have been
                   16747:   used by pornography Web sites for many years). User agents should
                   16748:   gracefully handle such hostile attempts, protecting the user.</p>
                   16749: 
                   16750:   <p><strong>Misleading titles.</strong> User agents should not rely
                   16751:   wholly on the <var title="">title</var> argument to the methods when
                   16752:   presenting the registered handlers to the user, since sites could
                   16753:   easily lie. For example, a site <code>hostile.example.net</code>
                   16754:   could claim that it was registering the "Cuddly Bear Happy Content
                   16755:   Handler". User agents should therefore use the handler's domain in
                   16756:   any UI along with any title.</p>
                   16757: 
                   16758:   <p><strong>Hostile handler metadata.</strong> User agents should
                   16759:   protect against typical attacks against strings embedded in their
                   16760:   interface, for example ensuring that markup or escape characters in
                   16761:   such strings are not executed, that null bytes are properly handled,
                   16762:   that over-long strings do not cause crashes or buffer overruns, and
                   16763:   so forth.</p>
                   16764: 
                   16765:   <p><strong>Leaking Intranet URLs.</strong> The mechanism described
                   16766:   in this section can result in secret Intranet URLs being leaked, in
                   16767:   the following manner:</p>
                   16768: 
                   16769:   <ol><li>The user registers a third-party content handler as the default
                   16770:    handler for a content type.</li>
                   16771: 
                   16772:    <li>The user then browses his corporate Intranet site and accesses
                   16773:    a document that uses that content type.</li>
                   16774: 
                   16775:    <li>The user agent contacts the third party and hands the third
                   16776:    party the URL to the Intranet content.</li>
                   16777: 
                   16778:   </ol><p>No actual confidential file data is leaked in this manner, but
                   16779:   the URLs themselves could contain confidential information. For
                   16780:   example, the URL could be
                   16781:   <code>http://www.corp.example.com/upcoming-aquisitions/the-sample-company.egf</code>,
                   16782:   which might tell the third party that Example Corporation is
                   16783:   intending to merge with The Sample Company. Implementors might wish
                   16784:   to consider allowing administrators to disable this feature for
                   16785:   certain subdomains, content types, or schemes.</p>
                   16786: 
                   16787:   <p><strong>Leaking secure URLs.</strong> User agents should not send
                   16788:   HTTPS URLs to third-party sites registered as content handlers
                   16789:   without the user's informed consent, for the same reason that user
                   16790:   agents sometimes avoid sending <code title="http-referer">Referer</code> (sic) HTTP headers from secure
                   16791:   sites to third-party sites.</p>
                   16792: 
                   16793:   <p><strong>Leaking credentials.</strong> User agents must never send
                   16794:   username or password information in the URLs that are escaped and
                   16795:   included sent to the handler sites. User agents may even avoid
                   16796:   attempting to pass to Web-based handlers the URLs of resources
                   16797:   that are known to require authentication to access, as such sites
                   16798:   would be unable to access the resources in question without
                   16799:   prompting the user for credentials themselves (a practice that would
                   16800:   require the user to know whether to trust the third-party handler, a
                   16801:   decision many users are unable to make or even understand).</p>
                   16802: 
                   16803:   </div>
                   16804: <!--REMOVE-TOPIC:Security-->
                   16805: 
                   16806: 
                   16807:   <div class="impl">
                   16808: 
                   16809:   <h5 id="sample-handler-impl"><span class="secno">6.5.1.4 </span>Sample user interface</h5>
                   16810: 
                   16811:   <p><i>This section is non-normative.</i></p>
                   16812:   <p>A simple implementation of this feature for a desktop Web browser
                   16813:   might work as follows.</p>
                   16814: 
                   16815:   <p>The <code title="dom-navigator-registerContentHandler"><a href="#dom-navigator-registercontenthandler">registerContentHandler()</a></code>
                   16816:   method could display a modal dialog box:</p>
                   16817: 
                   16818:   <p><img alt="The modal dialog box could have the title 'Content Handler Registration', and could say 'This Web page: Kittens at work http://kittens.example.org/ ...would like permission to handle files of type: application/x-meowmeow using the following Web-based application: Kittens-at-work displayer http://kittens.example.org/?show=%s Do you trust the administrators of the &quot;kittens.example.org&quot; domain?' with two buttons, 'Trust kittens.example.org' and 'Cancel'." height="374" src="images/sample-content-handler-registration.png" width="534"></p>
                   16819: 
                   16820:   <p>In this dialog box, "Kittens at work" is the title of the page
                   16821:   that invoked the method, "http://kittens.example.org/" is the URL of
                   16822:   that page, "application/x-meowmeow" is the string that was passed to
                   16823:   the <code title="dom-navigator-registerContentHandler"><a href="#dom-navigator-registercontenthandler">registerContentHandler()</a></code>
                   16824:   method as its first argument (<var title="">mimeType</var>),
                   16825:   "http://kittens.example.org/?show=%s" was the second argument (<var title="">url</var>), and "Kittens-at-work displayer" was the third
                   16826:   argument (<var title="">title</var>).</p>
                   16827: 
                   16828:   <p>If the user clicks the Cancel button, then nothing further
                   16829:   happens. If the user clicks the "Trust" button, then the handler is
                   16830:   remembered.</p>
                   16831: 
                   16832:   <p>When the user then attempts to fetch a URL that uses the
                   16833:   "application/x-meowmeow" <a href="infrastructure.html#mime-type">MIME type</a>, then it might
                   16834:   display a dialog as follows:</p>
                   16835: 
                   16836:   <p><img alt="The dialog box could have the title 'Unknown File Type' and could say 'You have attempted to access:' followed by a URL, followed by a prompt such as 'How would you like FerretBrowser to handle this resource?' with three radio buttons, one saying 'Contact the FerretBrowser plugin registry to see if there is an official way to handle this resource.', one saying 'Pass this URL to a local application' with an application selector, and one saying 'Pass this URL to the &quot;Kittens-at-work displayer&quot; application at &quot;kittens.example.org&quot;', with a checkbox labeled 'Always do this for resources using the &quot;application/x-meowmeow&quot; type in future.', and with two buttons, 'Ok' and 'Cancel'." height="428" src="images/sample-content-handler.png" width="577"></p>
                   16837: 
                   16838:   <p>In this dialog, the third option is the one that was primed by
                   16839:   the site registering itself earlier.</p>
                   16840: 
                   16841:   <p>If the user does select that option, then the browser, in
                   16842:   accordance with the requirements described in the previous two
                   16843:   sections, will redirect the user to
                   16844:   "http://kittens.example.org/?show=data%3Aapplication/x-meowmeow;base64,S2l0dGVucyBhcmUgdGhlIGN1dGVzdCE%253D".</p>
                   16845: 
                   16846:   <p>The <code title="dom-navigator-registerProtocolHandler"><a href="#dom-navigator-registerprotocolhandler">registerProtocolHandler()</a></code>
                   16847:   method would work equivalently, but for schemes instead of unknown
                   16848:   content types.</p>
                   16849: 
                   16850:   </div>
                   16851: 
                   16852: 
                   16853: 
                   16854:   <h5 id="manually-releasing-the-storage-mutex"><span class="secno">6.5.1.5 </span>Manually releasing the storage mutex</h5>
                   16855: 
                   16856:   <pre class="idl">[NoInterfaceObject]
                   16857: interface <dfn id="navigatorstorageutils">NavigatorStorageUtils</dfn> {
                   16858:   void <a href="#dom-navigator-yieldforstorageupdates" title="dom-navigator-yieldForStorageUpdates">yieldForStorageUpdates</a>();
                   16859: };</pre>
                   16860: 
                   16861:   <dl class="domintro"><dt><var title="">window</var> . <code title="dom-navigator"><a href="#dom-navigator">navigator</a></code> . <code title="dom-navigator-yieldForStorageUpdates"><a href="#dom-navigator-yieldforstorageupdates">yieldForStorageUpdates</a></code>()</dt>
                   16862: 
                   16863:    <dd>
                   16864: 
                   16865:     <p>If a script uses the <code title="dom-document-cookie"><a href="dom.html#dom-document-cookie">document.cookie</a></code> API, or the
                   16866:     <code title="dom-localStorage">localStorage</code> API, the
                   16867:     browser will block other scripts from accessing cookies or storage
                   16868:     until the first script finishes.
                   16869:         <a href="#refsWEBSTORAGE">[WEBSTORAGE]</a>
                   16870:         </p>
                   16871: 
                   16872:     <p>Calling the <code title="dom-navigator-yieldForStorageUpdates"><a href="#dom-navigator-yieldforstorageupdates">navigator.yieldForStorageUpdates()</a></code>
                   16873:     method tells the user agent to unblock any other scripts that may
                   16874:     be blocked, even though the script hasn't returned.</p>
                   16875: 
                   16876:     <p>Values of cookies and items in the <code>Storage</code> objects
                   16877:     of <code title="dom-localStorage">localStorage</code> attributes
                   16878:     can change after calling this method, whence its name.
                   16879:         <a href="#refsWEBSTORAGE">[WEBSTORAGE]</a>
                   16880:         </p>
                   16881: 
                   16882:    </dd>
                   16883: 
                   16884:   </dl><div class="impl">
                   16885: 
                   16886:    <p>The <dfn id="dom-navigator-yieldforstorageupdates" title="dom-navigator-yieldForStorageUpdates"><code>yieldForStorageUpdates()</code></dfn>
                   16887:    method, when invoked, must, if the <a href="#storage-mutex">storage mutex</a> is
                   16888:    owned by the <a href="#event-loop">event loop</a> of the <a href="#concept-task" title="concept-task">task</a> that resulted in the method being
                   16889:    called, release the <a href="#storage-mutex">storage mutex</a> so that it is once
                   16890:    again free. Otherwise, it must do nothing.</p>
                   16891: 
                   16892:   </div>
                   16893: 
                   16894: 
                   16895:   <h4 id="the-external-interface"><span class="secno">6.5.2 </span>The <code><a href="#external">External</a></code> interface</h4>
                   16896: 
                   16897:   <div class="impl">
                   16898: 
                   16899:   <p>The <dfn id="dom-external" title="dom-external"><code>external</code></dfn>
                   16900:   attribute of the <code><a href="#window">Window</a></code> interface must return an
                   16901:   instance of the <code><a href="#external">External</a></code> interface. The same object
                   16902:   must be returned each time.</p>
                   16903: 
                   16904:   </div>
                   16905: 
                   16906:   <pre class="idl">interface <dfn id="external">External</dfn> {
                   16907:   void <a href="#dom-external-addsearchprovider" title="dom-external-AddSearchProvider">AddSearchProvider</a>(DOMString engineURL);
                   16908:   unsigned long <a href="#dom-external-issearchproviderinstalled" title="dom-external-IsSearchProviderInstalled">IsSearchProviderInstalled</a>(DOMString engineURL);
                   16909: };</pre>
                   16910: 
                   16911:   <dl class="domintro"><dt><var title="">window</var> . <code title="dom-external"><a href="#dom-external">external</a></code> . <code title="dom-external-AddSearchProvider"><a href="#dom-external-addsearchprovider">AddSearchProvider</a></code>( <var title="">url</var> )</dt>
                   16912:    <dd>
                   16913: 
                   16914:     <p>Adds the search engine described by the OpenSearch description
                   16915:     document at <var title="">url</var>. <a href="#refsOPENSEARCH">[OPENSEARCH]</a></p>
                   16916: 
                   16917:     <p>The OpenSearch description document has to be on the same
                   16918:     server as the script that calls this method.</p>
                   16919: 
                   16920:    </dd>
                   16921: 
                   16922:    <dt><var title="">installed</var> = <var title="">window</var> . <code title="dom-external"><a href="#dom-external">external</a></code> . <code title="dom-external-IsSearchProviderInstalled"><a href="#dom-external-issearchproviderinstalled">IsSearchProviderInstalled</a></code>( <var title="">url</var> )</dt>
                   16923:    <dd>
                   16924: 
                   16925:     <p>Returns a value based on comparing <var title="">url</var> to
                   16926:     the URLs of the results pages of the installed search engines.</p>
                   16927: 
                   16928:     <dl><dt>0 </dt><dd>None of the installed search engines match <var title="">url</var>.
                   16929:      </dd><dt>1 </dt><dd>One or more installed search engines match <var title="">url</var>, but none are the user's default search engine.
                   16930:      </dd><dt>2 </dt><dd>The user's default search engine matches <var title="">url</var>.
                   16931:     </dd></dl><p>The <var title="">url</var> is compared to the URLs of the
                   16932:     results pages of the installed search engines using a prefix
                   16933:     match. Only results pages on the same domain as the script that
                   16934:     calls this method are checked.</p>
                   16935: 
                   16936:    </dd>
                   16937: 
                   16938:   </dl><p class="note">Another way of exposing search engines using
                   16939:   OpenSearch description documents is using a <code><a href="the-link-element.html#the-link-element">link</a></code>
                   16940:   element with the <code title="rel-search"><a href="#link-type-search">search</a></code> link
                   16941:   type.</p>
                   16942: 
                   16943:   <div class="impl">
                   16944: 
                   16945:    <p>The <dfn id="dom-external-addsearchprovider" title="dom-external-AddSearchProvider"><code>AddSearchProvider()</code></dfn>
                   16946:    method, when invoked, must run the following steps:</p>
                   16947: 
                   16948:    <ol><li><p>Optionally, abort these steps. User agents may implement
                   16949:     the method as a stub method that never does anything, or may
                   16950:     arbitrarily ignore invocations with particular arguments for
                   16951:     security, privacy, or usability reasons.</p></li>
                   16952: 
                   16953:     <li><p><a href="urls.html#resolve-a-url" title="resolve a url">Resolve</a> the value of the
                   16954:     method's first argument relative to the <a href="#entry-script">entry
                   16955:     script</a>'s <a href="#script's-base-url" title="script's base URL">base
                   16956:     URL</a>.</p></li>
                   16957: 
                   16958:     <li><p>If this fails, abort these steps.</p></li>
                   16959: 
                   16960:     <li><p>Process the resulting <a href="urls.html#absolute-url">absolute URL</a> as the
                   16961:     <a href="urls.html#url">URL</a> to an OpenSearch description document. <a href="#refsOPENSEARCH">[OPENSEARCH]</a></p></li>
                   16962: 
                   16963:    </ol><p>The <dfn id="dom-external-issearchproviderinstalled" title="dom-external-IsSearchProviderInstalled"><code>IsSearchProviderInstalled()</code></dfn>
                   16964:    method, when invoked, must run the following steps:
                   16965:    <!--INSERT FINGERPRINT-->
                   16966:    </p>
                   16967: 
                   16968:    <ol><li><p>Optionally, return 0 and abort these steps. User agents may
                   16969:     implement the method as a stub method that never returns a
                   16970:     non-zero value, or may arbitrarily ignore invocations with
                   16971:     particular arguments for security, privacy, or usability
                   16972:     reasons.</p></li>
                   16973: 
                   16974:     <li><p>If the <a href="#origin-0">origin</a> of the <a href="#entry-script">entry script</a>
                   16975:     is an opaque identifier (i.e. it has no host component), then
                   16976:     return 0 and abort these steps.</p></li>
                   16977: 
                   16978:     <li><p>Let <var title="">host1</var> be the host component of the
                   16979:     <a href="#origin-0">origin</a> of the <a href="#entry-script">entry script</a>.</p></li>
                   16980: 
                   16981:     <li><p><a href="urls.html#resolve-a-url" title="resolve a url">Resolve</a> the <var title="">scriptURL</var> argument relative to the <a href="#entry-script">entry
                   16982:     script</a>'s <a href="#script's-base-url" title="script's base URL">base
                   16983:     URL</a>.</p></li>
                   16984: 
                   16985:     <li><p>If this fails, return 0 and abort these steps.</p></li>
                   16986: 
                   16987:     <li><p>Let <var title="">host2</var> be be the <a href="urls.html#url-host" title="url-host">&lt;host&gt;</a> component of the resulting
                   16988:     <a href="urls.html#absolute-url">absolute URL</a>.</p></li>
                   16989: 
                   16990:     <li>
                   16991: 
                   16992:      <p>If the longest suffix in the Public Suffix List that matches
                   16993:      the end of <var title="">host1</var> is different than the
                   16994:      longest suffix in the Public Suffix List that matches the end of
                   16995:      <var title="">host2</var>, then return 0 and abort these steps.
                   16996:      <a href="#refsPSL">[PSL]</a></p>
                   16997: 
                   16998:      <p>If the next domain component of <var title="">host1</var> and
                   16999:      <var title="">host2</var> after their common suffix are not the
                   17000:      same, then return 0 and abort these steps.</p>
                   17001: 
                   17002:      <p>Domain labels must be compared after applying the IDNA ToASCII
                   17003:      algorithm to them, with both the AllowUnassigned and
                   17004:      UseSTD3ASCIIRules flags set, in an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   17005:      case-insensitive</a> manner. <a href="#refsRFC3490">[RFC3490]</a></p>
                   17006: 
                   17007:     </li>
                   17008: 
                   17009:     <li><p>Let <var title="">search engines</var> be the list of
                   17010:     search engines known by the user agent and made available to the
                   17011:     user by the user agent for which the resulting <a href="urls.html#absolute-url">absolute
                   17012:     URL</a> is a <a href="infrastructure.html#prefix-match">prefix match</a> of the search engine's
                   17013:     <a href="urls.html#url">URL</a>, if any. For search engines registered using
                   17014:     OpenSearch description documents, the <a href="urls.html#url">URL</a> of the
                   17015:     search engine corresponds to the URL given in a <code title="">Url</code> element whose <code title="">rel</code>
                   17016:     attribute is "<code title="">results</code>" (the default). <a href="#refsOPENSEARCH">[OPENSEARCH]</a></p></li>
                   17017: 
                   17018:     <li><p>If <var title="">search engines</var> is empty, return 0
                   17019:     and abort these steps.</p></li>
                   17020: 
                   17021:     <li><p>If the user's default search engine (as determined by the
                   17022:     user agent) is one of the search engines in <var title="">search
                   17023:     engines</var>, then return 2 and abort these steps.</p></li>
                   17024: 
                   17025:     <li><p>Return 1.</p></li>
                   17026: 
                   17027:    </ol></div>
                   17028: <!--TOPIC:HTML-->
                   17029: 
                   17030: 
                   17031: 
                   17032:   <h2 id="editing"><span class="secno">7 </span><dfn>User interaction</dfn></h2>
                   17033: 
                   17034: 
                   17035:   <h3 id="the-hidden-attribute"><span class="secno">7.1 </span>The <dfn title="attr-hidden"><code>hidden</code></dfn> attribute</h3>
                   17036: 
                   17037:   <p>All <a href="infrastructure.html#html-elements">HTML elements</a> may have the <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> content attribute set. The <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> attribute is a <a href="common-microsyntaxes.html#boolean-attribute">boolean
                   17038:   attribute</a>. When specified on an element, it indicates that
                   17039:   the element is not yet, or is no longer, directly relevant to the
                   17040:   page's current state, or that it is being used to declare content to
                   17041:   be reused by other parts of the page as opposed to being directly
                   17042:   accessed by the user. <span class="impl">User agents should not
                   17043:   render elements that have the <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> attribute specified.</span></p>
                   17044: 
                   17045:   <div class="example">
                   17046: 
                   17047:    <p>In the following skeletal example, the attribute is used to hide
                   17048:    the Web game's main screen until the user logs in:</p>
                   17049: 
                   17050:    <pre>  &lt;h1&gt;The Example Game&lt;/h1&gt;
                   17051:   &lt;section id="login"&gt;
                   17052:    &lt;h2&gt;Login&lt;/h2&gt;
                   17053:    &lt;form&gt;
                   17054:     ...
                   17055:     &lt;!-- calls login() once the user's credentials have been checked --&gt;
                   17056:    &lt;/form&gt;
                   17057:    &lt;script&gt;
                   17058:     function login() {
                   17059:       // switch screens
                   17060:       document.getElementById('login').hidden = true;
                   17061:       document.getElementById('game').hidden = false;
                   17062:     }
                   17063:    &lt;/script&gt;
                   17064:   &lt;/section&gt;
                   17065:   &lt;section id="game" hidden&gt;
                   17066:    ...
                   17067:   &lt;/section&gt;</pre>
                   17068: 
                   17069:   </div>
                   17070: 
                   17071:   <p>The <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> attribute must not be
                   17072:   used to hide content that could legitimately be shown in another
                   17073:   presentation. For example, it is incorrect to use <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> to hide panels in a tabbed dialog,
                   17074:   because the tabbed interface is merely a kind of overflow
                   17075:   presentation &#8212; one could equally well just show all the form
                   17076:   controls in one big page with a scrollbar. It is similarly incorrect
                   17077:   to use this attribute to hide content just from one presentation
                   17078:   &#8212; if something is marked <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code>, it is hidden from all
1.200   ! sruby    17079:   presentations, including, for instance, printers.</p><!--bug
        !          17080:   19406-->
1.190     sruby    17081: 
                   17082:   <!-- for example, "<a hidden href=#content>Skip to content</a>" would be inappropriate. -->
                   17083:   <!-- (but only add that example if you first add some more good valid examples -->
                   17084: 
                   17085:   <p>Elements that are not themselves <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> must not <a href="#hyperlink">hyperlink</a> to
                   17086:   elements that are <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code>. The <code title="">for</code> attributes of <code><a href="the-label-element.html#the-label-element">label</a></code> and
                   17087:   <code><a href="the-output-element.html#the-output-element">output</a></code> elements that are not themselves <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> must similarly not refer to
                   17088:   elements that are <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code>. In both
                   17089:   cases, such references would cause user confusion.</p>
                   17090: 
                   17091:   <p>Elements and scripts may, however, refer to elements that are
                   17092:   <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> in other contexts.</p>
                   17093: 
                   17094:   <div class="example">
                   17095: 
                   17096:    <p>For example, it would be incorrect to use the <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute to link to a
                   17097:    section marked with the <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code>
                   17098:    attribute. If the content is not applicable or relevant, then there
                   17099:    is no reason to link to it.</p>
                   17100: 
                   17101:    <p>It would be fine, however, to use the ARIA <code title="attr-aria-describedby">aria-describedby</code> attribute to
                   17102:    refer to descriptions that are themselves <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code>. While hiding the descriptions
                   17103:    implies that they are not useful alone, they could be written in
                   17104:    such a way that they are useful in the specific context of being
                   17105:    referenced from the images that they describe.</p>
                   17106: 
                   17107:    <p>Similarly, a <code><a href="the-canvas-element.html#the-canvas-element">canvas</a></code> element with the <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> attribute could be used by a
                   17108:    scripted graphics engine as an off-screen buffer, and a form
                   17109:    control could refer to a hidden <code><a href="the-form-element.html#the-form-element">form</a></code> element using its
                   17110:    <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">form</a></code> attribute.</p>
                   17111: 
                   17112:   </div>
                   17113: 
                   17114:   <p>Accessibility APIs are encouraged to provide a way to expose
                   17115:   structured content while marking it as hidden in the default view.
                   17116:   Such content should not be perceivable to users in the normal document
                   17117:   flow in any modality, whether using Assistive Technology (AT) or
                   17118:   mainstream User Agents.</p>
                   17119: 
                   17120:   <p>When such features are available, User Agents may use them to
                   17121:   expose the full semantics of <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code>
                   17122:   elements to AT when appropriate, if such content is referenced
                   17123:   indirectly by an <a href="infrastructure.html#concept-id" title="concept-id">ID reference</a> or
                   17124:   <a href="common-microsyntaxes.html#valid-hash-name-reference">valid hash-name reference</a>. This allows ATs to access the
                   17125:   structure of these <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> elements
                   17126:   upon user request, while keeping the content hidden in all
                   17127:   presentations of the normal document flow. Authors who wish to prevent
                   17128:   user-initiated viewing of a <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code>
                   17129:   element should not reference the element with such a mechanism.</p>
                   17130: 
                   17131:   <p>Because some User Agents have flattened hidden content when
                   17132:   exposing such content to AT, authors should not reference <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> content which would lose essential
                   17133:   meaning when flattened.</p>
                   17134: 
                   17135:   <p>For example, it would be appropriate for the structure of <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> table headers referenced from a
                   17136:   <code title="attr-tdth-headers"><a href="attributes-common-to-td-and-th-elements.html#attr-tdth-headers">headers</a></code> attribute to be exposed
                   17137:   to users of AT with such an API.</p>
                   17138: 
                   17139:   <p>Cases where it would be inappropriate for the structure of <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> elements to be exposed to users of
                   17140:   AT with such an API include:</p>
                   17141: 
                   17142:   <ul><li>a <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> element referenced by
                   17143:    an <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute within the
                   17144:    same document</li>
                   17145: 
                   17146:    <li>a <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> form element referenced
                   17147:    by a <code><a href="the-label-element.html#the-label-element">label</a></code> element's <code title="attr-label-for"><a href="the-label-element.html#attr-label-for">for</a></code> attribute (because the sorts of
                   17148:    elements referenced from a <code><a href="the-label-element.html#the-label-element">label</a></code> element's <code title="attr-label-for"><a href="the-label-element.html#attr-label-for">for</a></code> attribute lose meaning when
                   17149:    flattened)</li>
                   17150: 
                   17151:   </ul><p>Specifications which define elements and attributes which may be
                   17152:   included in <a href="infrastructure.html#conforming-documents" title="Conforming documents">conforming HTML5
                   17153:   documents</a> (such as SVG, MathML, and WAI-ARIA) may define how or
                   17154:   whether this applies to their elements and attributes. <a href="#refsARIA">[ARIA]</a> <a href="#refsMATHML">[MATHML]</a> <a href="#refsSVG">[SVG]</a></p>
                   17155: 
                   17156:   <p>Elements in a section hidden by the <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> attribute are still active,
                   17157:   e.g. scripts and form controls in such sections still execute
                   17158:   and submit respectively. Only their presentation to the user
                   17159:   changes.</p>
                   17160: 
                   17161:   <div class="impl">
                   17162: 
                   17163:   <p>The <dfn id="dom-hidden" title="dom-hidden"><code>hidden</code></dfn> IDL
                   17164:   attribute must <a href="common-dom-interfaces.html#reflect">reflect</a> the content attribute of the
                   17165:   same name.</p>
                   17166: 
                   17167:   </div>
                   17168: 
                   17169:   <h3 id="inert-subtrees"><span class="secno">7.2 </span>Inert subtrees</h3>
                   17170: 
                   17171:   <p>A subtree of a <code><a href="dom.html#document">Document</a></code> can be marked as
                   17172:   <dfn id="inert">inert</dfn>. When a node or one of its ancestors is
                   17173:   <a href="#inert">inert</a>, then the user agent must act as if the element
                   17174:   was absent for the purposes of targetting user interaction events,
                   17175:   may ignore the node for the purposes of text search user interfaces
                   17176:   (commonly known as "find in page"), and may prevent the user from
                   17177:   selecting text in that node. User agents should allow the user to
                   17178:   override the restrictions on search and text selection, however.</p>
                   17179: 
                   17180:   <p class="example">For example, consider a page that consists of
                   17181:   just a single <a href="#inert">inert</a> paragraph positioned in the middle
                   17182:   of a <code><a href="the-body-element.html#the-body-element">body</a></code>. If a user moves their pointing device from
                   17183:   the <code><a href="the-body-element.html#the-body-element">body</a></code> over to the <a href="#inert">inert</a> paragraph and
                   17184:   clicks on the paragraph, no <code title="event-mouseover">mouseover</code> event would be fired, and
                   17185:   the <code title="event-mousemove">mousemove</code> and <code title="event-click"><a href="infrastructure.html#event-click">click</a></code> events would be fired on the
                   17186:   <code><a href="the-body-element.html#the-body-element">body</a></code> element rather than the paragraph.</p>
                   17187: 
                   17188:   <p class="note">When a node or one of its ancestors is inert, it
                   17189:   also can't be focused (see the <a href="#focusing-steps">focusing steps</a>), and it
                   17190:   is disabled if it is a <a href="#concept-command" title="concept-command">command</a>.</p>
                   17191: 
                   17192:   <p>An entire <code><a href="dom.html#document">Document</a></code> can be marked as <dfn id="blocked-by-a-modal-dialog">blocked by
                   17193:   a modal dialog</dfn> <var title="">dialog</var>. While a
                   17194:   <code><a href="dom.html#document">Document</a></code> is so marked, every node that is <a href="infrastructure.html#in-a-document" title="in a Document">in the <code>Document</code></a>, with the
                   17195:   exception of the <var title="">dialog</var> element, its ancestors,
                   17196:   and its descendants, must be marked <a href="#inert">inert</a>. (The
                   17197:   elements excepted by this paragraph can additionally be marked
                   17198:   <a href="#inert">inert</a> through other means; being part of a modal dialog
                   17199:   does not "protect" a node from being marked <a href="#inert">inert</a>.)</p>
                   17200: 
                   17201:   <p>Only one element at a time can mark a <code><a href="dom.html#document">Document</a></code> as
                   17202:   being <a href="#blocked-by-a-modal-dialog">blocked by a modal dialog</a>. When a new
                   17203:   <code><a href="#the-dialog-element">dialog</a></code> is made to <a href="#blocked-by-a-modal-dialog" title="blocked by a modal
                   17204:   dialog">block</a> a <code><a href="dom.html#document">Document</a></code>, the previous element,
                   17205:   if any, stops blocking the <code><a href="dom.html#document">Document</a></code>.</p>
                   17206: 
                   17207:   <p class="note">The <code><a href="#the-dialog-element">dialog</a></code> element's <code title="dom-dialog-showModal"><a href="#dom-dialog-showmodal">showModal()</a></code> method makes use of
                   17208:   this mechanism.</p>
                   17209: 
                   17210: 
                   17211: <!--INERT-->
                   17212: 
                   17213: 
                   17214: <!--TOPIC:DOM APIs-->
                   17215:   <h3 id="activation"><span class="secno">7.3 </span>Activation</h3>
                   17216: 
                   17217:   <!-- v2 idea: HTMLImageElement.click(x, y); or clickPoint(), if
                   17218:        click() can't be done in IE; can this be emulated in IE by
                   17219:        posting a synthetic mouse click event with those X and Y
                   17220:        coords? (ack Csaba Gabor)
                   17221:   -->
                   17222: 
                   17223:   <dl class="domintro"><dt><var title="">element</var> . <code title="dom-click"><a href="#dom-click">click</a></code>()</dt>
                   17224: 
                   17225:    <dd>
                   17226: 
                   17227:     <p>Acts as if the element was clicked.</p>
                   17228: 
                   17229:    </dd>
                   17230: 
                   17231:   </dl><div class="impl">
                   17232: 
                   17233:   <p>The <dfn id="dom-click" title="dom-click"><code>click()</code></dfn> method must
                   17234:   <a href="content-models.html#run-synthetic-click-activation-steps">run synthetic click activation steps</a> on the
                   17235:   element.</p>
                   17236: 
                   17237:   </div>
                   17238: <!--TOPIC:HTML-->
                   17239: 
                   17240: 
                   17241:   <h3 id="focus"><span class="secno">7.4 </span>Focus</h3>
                   17242: 
                   17243:   <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%20%0A...%3Cform%3E%3Cinput%20name%3Da%20onfocus%3D%22value%2B%3D1%3Bd.name%3D%27a%27%3Bname%3D%27d%27%3Bb.focus()%22%3E%0A%3Cinput%20name%3Db%20onfocus%3D%22value%2B%3D1%3Bc.focus()%22%3E%0A%3Cinput%20name%3Dc%20onfocus%3D%22value%2B%3D1%3Bd.focus()%22%3E%0A%3Cinput%20name%3Dd%20onfocus%3D%22value%2B%3D1%3Ba.focus()%22%3E -->
                   17244: 
                   17245:   <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A...%3Cform%3E%0A%3Ctextarea%20name%3Dt%20cols%3D100%20rows%3D3%3E%3C%2Ftextarea%3E%3Cp%3E%0A%3Cinput%20name%3Da%20onfocus%3D%22t.value%2B%3D%27af1%20%27%3Bb.focus()%3Balert(document.activeElement.name)%3Bt.value%2B%3D%27af2%20%27%3B%22%20onblur%3D%22t.value%2B%3D%27ab%20%27%3B%22%3E%0A%3Cinput%20name%3Db%20onfocus%3D%22t.value%2B%3D%27bf1%20%27%3Bc.focus()%3Bt.value%2B%3D%27bf2%20%27%3B%22%20onblur%3D%22t.value%2B%3D%27bb%20%27%3B%22%3E%0A%3Cinput%20name%3Dc%20onfocus%3D%22t.value%2B%3D%27cf1%20%27%3Bc.focus()%3Bt.value%2B%3D%27cf2%20%27%3B%22%20onblur%3D%22t.value%2B%3D%27cb%20%27%3B%22%3E%0A -->
                   17246: 
                   17247:   <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%3Cbody%20onload%3D%22document.forms%5B0%5D.a.focus()%22%3E%0A...%3Cform%3E%0A%3Ctextarea%20name%3Dt%20cols%3D100%20rows%3D3%3E%3C%2Ftextarea%3E%3Cp%3E%0A%3Cinput%20name%3Da%20onblur%3D%22t.value%2B%3D'ab%20'%3B%20b.focus()%3B%22%3E%0A%3Cinput%20name%3Db%20onfocus%3D%22t.value%2B%3D'bf1%20'%3Ba.focus()%3Bt.value%2B%3D'bf2%20'%3B%22%20onblur%3D%22t.value%2B%3D'bb%20'%3B%22%3E -->
                   17248: 
                   17249:   <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%3Cbody%3E...%3Cform%3E%0A%3Ctextarea%20name%3Dt%20cols%3D100%20rows%3D3%3E%3C%2Ftextarea%3E%3Cp%3E%0A%3Cinput%20name%3Da%20onfocus%3D%22t.value%2B%3D%27af%20%27%3B%22%20onblur%3D%22t.value%2B%3D%27ab1%20%27%3Bb.focus()%3Bt.value%2B%3D%27ab2%20%27%3B%22%3E%0A%3Cinput%20name%3Db%20onfocus%3D%22t.value%2B%3D%27bf1%20%27%3Ba.focus()%3Bt.value%2B%3D%27bf2%20%27%3B%22%20onblur%3D%22t.value%2B%3D%27bb%20%27%3B%22%3E -->
                   17250: 
                   17251:   <!-- v2: more things to define, if no other specs define them:
                   17252:    - define onfocus/onblur behaviour for Window
                   17253:    - Other things to look at are IE's focus APIs (HTMLElement.setActive(),
                   17254:      onBeforeActivate, onActivate, onBeforeDeactivate, onDeactivate):
                   17255:        https://bugzilla.mozilla.org/show_bug.cgi?id=296471
                   17256:        https://bugzilla.mozilla.org/show_bug.cgi?id=296469
                   17257:        http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/setactive.asp
                   17258:        http://msdn.microsoft.com/workshop/author/dhtml/reference/events/onbeforeactivate.asp
                   17259:   -->
                   17260: 
                   17261:   <div class="impl">
                   17262: 
                   17263:   <p>When an element is <i>focused</i>, key events received by the
                   17264:   document must be targeted at that element. There may be no element
                   17265:   focused; when no element is focused, key events received by the
                   17266:   document must be targeted at <a href="dom.html#the-body-element-0">the body element</a>, if there
                   17267:   is one, or else at the <code><a href="dom.html#document">Document</a></code>'s root element, if
                   17268:   there is one. If there is no root element, key events must not be
                   17269:   fired.</p>
                   17270: 
                   17271:   <p>User agents may track focus for each <a href="#browsing-context">browsing
                   17272:   context</a> or <code><a href="dom.html#document">Document</a></code> individually, or may support
                   17273:   only one focused element per <a href="#top-level-browsing-context">top-level browsing context</a>
                   17274:   &#8212; user agents should follow platform conventions in this
                   17275:   regard.</p>
                   17276: 
                   17277:   <p>Which elements within a <a href="#top-level-browsing-context">top-level browsing context</a>
                   17278:   currently have focus must be independent of whether or not the
                   17279:   <a href="#top-level-browsing-context">top-level browsing context</a> itself has the <i>system
                   17280:   focus</i>.</p>
                   17281: 
                   17282:   <p id="bc-focus-ergo-bcc-focus">When a <a href="#child-browsing-context">child browsing
                   17283:   context</a> is focused, its <a href="#browsing-context-container">browsing context
                   17284:   container</a> must also have focus.</p>
                   17285: 
                   17286:   <p class="note">When an element is focused, the element matches the
                   17287:   CSS <code>:focus</code> pseudo-class.</p>
                   17288: 
                   17289:   </div>
                   17290: 
                   17291: 
                   17292:   <h4 id="sequential-focus-navigation-and-the-tabindex-attribute"><span class="secno">7.4.1 </span>Sequential focus navigation and the <code title="attr-tabindex"><a href="#attr-tabindex">tabindex</a></code> attribute</h4>
                   17293: 
                   17294:   <p>The <dfn id="attr-tabindex" title="attr-tabindex"><code>tabindex</code></dfn>
                   17295:   content attribute allows authors to control whether an element is
                   17296:   supposed to be focusable, whether it is supposed to be reachable
                   17297:   using sequential focus navigation, and what is to be the relative
                   17298:   order of the element for the purposes of sequential focus
                   17299:   navigation. The name "tab index" comes from the common use of the
                   17300:   "tab" key to navigate through the focusable elements. The term
                   17301:   "tabbing" refers to moving forward through the focusable elements
                   17302:   that can be reached using sequential focus navigation.</p>
                   17303: 
                   17304:   <p>The <code title="attr-tabindex"><a href="#attr-tabindex">tabindex</a></code> attribute, if
                   17305:   specified, must have a value that is a <a href="common-microsyntaxes.html#valid-integer">valid
                   17306:   integer</a>.</p>
                   17307: 
                   17308:   <div class="impl">
                   17309: 
                   17310:   <p>Each element has a <dfn id="specially-focusable">tabindex focus
                   17311:   flag</dfn>. This flag is a factor that contributes towards
                   17312:   determining whether an element is <a href="#focusable">focusable</a>, as
                   17313:   described in the next section.</p>
                   17314: 
                   17315:   <p>If the attribute is specified, it must be parsed using the
                   17316:   <a href="common-microsyntaxes.html#rules-for-parsing-integers">rules for parsing integers</a>. The attribute's values have
                   17317:   the following meanings:</p>
                   17318: 
                   17319:   <dl><dt>If the attribute is omitted or parsing the value returns an
                   17320:    error</dt>
                   17321: 
                   17322:    <dd>
                   17323: 
                   17324:     <p>The user agent should follow platform conventions to determine
                   17325:     if the element's <a href="#specially-focusable">tabindex focus flag</a> is set and, if
                   17326:     so, whether the element can be reached using sequential focus
                   17327:     navigation, and if so, what its relative order should be.</p>
                   17328: 
                   17329:     <p class="note">One valid reason to ignore the platform
                   17330:     conventions and always allow an element to be focused (by setting
                   17331:     its <a href="#specially-focusable">tabindex focus flag</a>) would be if the user's only
                   17332:     mechanism for activating an element is through a keyboard action
                   17333:     that triggers the focused element.</p>
                   17334: 
                   17335:    </dd>
                   17336: 
                   17337:    <dt id="negative-tabindex">If the value is a negative integer</dt>
                   17338: 
                   17339:    <dd>
                   17340: 
                   17341:     <p>The user agent must set the element's <a href="#specially-focusable">tabindex focus
                   17342:     flag</a>, but should not allow the element to be reached using
                   17343:     sequential focus navigation.</p>
                   17344: 
                   17345:     <p class="note">One valid reason to ignore the requirement that
                   17346:     sequential focus navigation not allow the author to lead to the
                   17347:     element would be if the user's only mechanism for moving the focus
                   17348:     is sequential focus navigation. For instance, a keyboard-only user
                   17349:     would be unable to click on a text field with a negative <code title="attr-tabindex"><a href="#attr-tabindex">tabindex</a></code>, so that user's user agent
                   17350:     would be well justified in allowing the user to tab to the control
                   17351:     regardless.</p>
                   17352: 
                   17353:    </dd>
                   17354: 
                   17355:    <dt>If the value is a zero</dt>
                   17356: 
                   17357:    <dd>
                   17358: 
                   17359:     <p>The user agent must set the element's <a href="#specially-focusable">tabindex focus
                   17360:     flag</a>, should allow the element to be reached using
                   17361:     sequential focus navigation, and should follow platform
                   17362:     conventions to determine the element's relative order.</p>
                   17363: 
                   17364:    </dd>
                   17365: 
                   17366:    <dt>If the value is greater than zero</dt>
                   17367: 
                   17368:    <dd>
                   17369: 
                   17370:     <p>The user agent must set the element's <a href="#specially-focusable">tabindex focus
                   17371:     flag</a>, should allow the element to be reached using
                   17372:     sequential focus navigation, and should place the element in the
                   17373:     sequential focus navigation order so that it is:</p>
                   17374: 
                   17375:     <ul><li>before any <a href="#focusable">focusable</a> element whose <code title="attr-tabindex"><a href="#attr-tabindex">tabindex</a></code> attribute has been omitted
                   17376:      or whose value, when parsed, returns an error,</li>
                   17377: 
                   17378:      <li>before any <a href="#focusable">focusable</a> element whose <code title="attr-tabindex"><a href="#attr-tabindex">tabindex</a></code> attribute has a value equal
                   17379:      to or less than zero,</li>
                   17380: 
                   17381:      <li>after any element whose <code title="attr-tabindex"><a href="#attr-tabindex">tabindex</a></code> attribute has a value
                   17382:      greater than zero but less than the value of the <code title="attr-tabindex"><a href="#attr-tabindex">tabindex</a></code> attribute on the
                   17383:      element,</li>
                   17384: 
                   17385:      <li>after any element whose <code title="attr-tabindex"><a href="#attr-tabindex">tabindex</a></code> attribute has a value equal
                   17386:      to the value of the <code title="attr-tabindex"><a href="#attr-tabindex">tabindex</a></code>
                   17387:      attribute on the element but that is earlier in the document in
                   17388:      <a href="infrastructure.html#tree-order">tree order</a> than the element,</li>
                   17389: 
                   17390:      <li>before any element whose <code title="attr-tabindex"><a href="#attr-tabindex">tabindex</a></code> attribute has a value equal
                   17391:      to the value of the <code title="attr-tabindex"><a href="#attr-tabindex">tabindex</a></code>
                   17392:      attribute on the element but that is later in the document in
                   17393:      <a href="infrastructure.html#tree-order">tree order</a> than the element, and</li>
                   17394: 
                   17395:      <li>before any element whose <code title="attr-tabindex"><a href="#attr-tabindex">tabindex</a></code> attribute has a value
                   17396:      greater than the value of the <code title="attr-tabindex"><a href="#attr-tabindex">tabindex</a></code> attribute on the
                   17397:      element.</li>
                   17398: 
                   17399:     </ul></dd>
                   17400: 
                   17401:   </dl><p>An element that has its <a href="#specially-focusable">tabindex focus flag</a> set but
                   17402:   does not otherwise have an <a href="content-models.html#activation-behavior">activation behavior</a> defined
                   17403:   has an <a href="content-models.html#activation-behavior">activation behavior</a> that does nothing.</p>
                   17404: 
                   17405:   <p class="note">This means that an element that is only focusable
                   17406:   because of its <code title="attr-tabindex"><a href="#attr-tabindex">tabindex</a></code> attribute
                   17407:   will fire a <code title="event-click"><a href="infrastructure.html#event-click">click</a></code> event in response
                   17408:   to a non-mouse activation (e.g. hitting the "enter" key while the
                   17409:   element is focused).</p>
                   17410: 
                   17411:   <p>The <dfn id="dom-tabindex" title="dom-tabIndex"><code>tabIndex</code></dfn> IDL
                   17412:   attribute must <a href="common-dom-interfaces.html#reflect">reflect</a> the value of the <code title="attr-tabindex"><a href="#attr-tabindex">tabindex</a></code> content attribute. Its default
                   17413:   value is 0 for elements that are focusable and &#8722;1 for
                   17414:   elements that are not focusable.</p>
                   17415: 
                   17416:   </div>
                   17417: 
                   17418: 
                   17419: 
                   17420:   <div class="impl">
                   17421: 
                   17422:   <h4 id="focus-management"><span class="secno">7.4.2 </span>Focus management</h4>
                   17423: 
                   17424:   <p>An element is <dfn id="focusable">focusable</dfn> if the user agent's default
                   17425:   behavior allows it to be focusable or if the element has its
                   17426:   <a href="#specially-focusable">tabindex focus flag</a> set, but only if the element is
                   17427:   either <a href="#being-rendered">being rendered</a> or <!-- CANVAS-FOCUS-FALLBACK -->
                   17428:   is a descendant of a <code><a href="the-canvas-element.html#the-canvas-element">canvas</a></code> element that
                   17429:   <a href="#represents">represents</a> <a href="content-models.html#embedded-content-2">embedded content</a>.</p>
                   17430: 
                   17431:   <p>User agents should make the following elements
                   17432:   <a href="#focusable">focusable</a> as part of their default behavior, unless
                   17433:   platform conventions dictate otherwise:</p>
                   17434: 
                   17435:   <ul><li><code><a href="the-a-element.html#the-a-element">a</a></code> elements that have an <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute</li>
                   17436: 
                   17437:    <li><code><a href="the-link-element.html#the-link-element">link</a></code> elements that have an <code title="attr-link-href"><a href="the-link-element.html#attr-link-href">href</a></code> attribute</li>
                   17438: 
                   17439:    <li><code><a href="the-button-element.html#the-button-element">button</a></code> elements that are not <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a></li>
                   17440: 
                   17441:    <li><code><a href="the-input-element.html#the-input-element">input</a></code> elements whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute are not in the
                   17442:    <a href="states-of-the-type-attribute.html#hidden-state-(type=hidden)" title="attr-input-type-hidden">Hidden</a> state and that
                   17443:    are not <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a></li>
                   17444: 
                   17445:    <li><code><a href="the-select-element.html#the-select-element">select</a></code> elements that are not <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a></li>
                   17446: 
                   17447:    <li><code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> elements that are not <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a></li>
                   17448: 
                   17449:    <li><code><a href="#the-command-element">command</a></code> elements that do not have a <code title="attr-command-disabled"><a href="#attr-command-disabled">disabled</a></code> attribute</li>
                   17450: 
                   17451:    <li>Elements with a <code title="attr-draggable"><a href="#the-draggable-attribute">draggable</a></code>
                   17452:    attribute set, if that would enable the user agent to allow the
                   17453:    user to begin a drag operations for those elements without the use
                   17454:    of a pointing device</li>
                   17455: 
                   17456:    <li><a href="#editing-host" title="editing host">Editing hosts</a></li>
                   17457: 
                   17458:    <li><a href="#browsing-context-container" title="browsing context container">Browsing context
                   17459:    containers</a></li> <!-- like <iframe>s -->
                   17460: 
                   17461:   </ul><p>In addition, each shape that is generated for an
                   17462:   <code><a href="the-area-element.html#the-area-element">area</a></code> element should be <a href="#focusable">focusable</a>, unless
                   17463:   platform conventions dictate otherwise. (A single <code><a href="the-area-element.html#the-area-element">area</a></code>
                   17464:   element can correspond to multiple shapes, since image maps can be
                   17465:   reused with multiple images on a page.)</p>
                   17466: 
                   17467:   <p>The user agent may also make part of a <code><a href="#the-details-element">details</a></code>
                   17468:   element's rendering <a href="#focusable">focusable</a>, to enable the element to
                   17469:   be opened or closed using keyboard input. However, this is distinct
                   17470:   from the <code><a href="#the-details-element">details</a></code> or <code><a href="#the-summary-element">summary</a></code> element being
                   17471:   focusable.</p>
                   17472: 
                   17473:   <hr><p>The <dfn id="focusing-steps">focusing steps</dfn> for an element are as follows:</p>
                   17474: 
                   17475:   <ol><li><p>If the element is not <a href="infrastructure.html#in-a-document" title="in a Document">in a
                   17476:    <code>Document</code></a>, or if the element's
                   17477:    <code><a href="dom.html#document">Document</a></code> has no <a href="#browsing-context">browsing context</a>, or if
                   17478:    the element's <code><a href="dom.html#document">Document</a></code>'s <a href="#browsing-context">browsing context</a>
                   17479:    has no <a href="#top-level-browsing-context">top-level browsing context</a>, or if the element
                   17480:    is not <a href="#focusable">focusable</a>, or if the element is already
                   17481:    focused, then abort these steps.</p>
                   17482: 
                   17483:    </li><li><p>If focusing the element will remove the focus from another
                   17484:    element, then run the <a href="#unfocusing-steps">unfocusing steps</a> for that
                   17485:    element.</p></li>
                   17486: 
                   17487:    <li>
                   17488: 
                   17489:     <p>Make the element the currently focused element in its
                   17490:     <a href="#top-level-browsing-context">top-level browsing context</a>.</p>
                   17491: 
                   17492:     <p>Some elements, most notably <code><a href="the-area-element.html#the-area-element">area</a></code>, can correspond
                   17493:     to more than one distinct focusable area. If a particular area was
                   17494:     indicated when the element was focused, then that is the area that
                   17495:     must get focus; otherwise, e.g. when using the <code title="dom-focus"><a href="#dom-focus">focus()</a></code> method, the first such region in
                   17496:     tree order is the one that must be focused.</p>
                   17497: 
                   17498:    </li>
                   17499: 
                   17500:    <li>
                   17501: 
                   17502:     <p>The user agent may apply relevant platform-specific conventions
                   17503:     for focusing widgets.</p>
                   17504: 
                   17505:     <p class="note">For example, some platforms select the contents of
                   17506:     a text field when that field is focused.</p>
                   17507: 
                   17508:    </li>
                   17509: 
                   17510:    <li><p><a href="#fire-a-simple-event">Fire a simple event</a> named <code title="event-focus">focus</code> at the element.</p></li>
                   17511:    <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/723 -->
                   17512: 
                   17513:   </ol><p>User agents must synchronously run the <a href="#focusing-steps">focusing
                   17514:   steps</a> for an element whenever the user moves the focus to a
                   17515:   <a href="#focusable">focusable</a> element.</p>
                   17516: 
                   17517:   <p>The <dfn id="unfocusing-steps">unfocusing steps</dfn> for an element are as
                   17518:   follows:</p>
                   17519: 
                   17520:   <ol><li><p>If the element is an <code><a href="the-input-element.html#the-input-element">input</a></code> element, and the
                   17521:    <code title="event-input-change"><a href="common-input-element-apis.html#event-input-change">change</a></code> event applies to the
                   17522:    element, and the element does not have a defined <a href="content-models.html#activation-behavior">activation
                   17523:    behavior</a>, and the user has changed the element's <a href="attributes-common-to-form-controls.html#concept-fe-value" title="concept-fe-value">value</a> or its list of <a href="states-of-the-type-attribute.html#concept-input-type-file-selected" title="concept-input-type-file-selected">selected files</a>
                   17524:    while the control was focused without committing that change, then
                   17525:    <a href="#fire-a-simple-event">fire a simple event</a> that bubbles named <code title="event-change">change</code> at the element.</p>
                   17526: 
                   17527:    </li><li><p>Unfocus the element.</p></li>
                   17528: 
                   17529:    <li><p><a href="#fire-a-simple-event">Fire a simple event</a> named <code title="event-blur">blur</code> at the element.</p></li>
                   17530:    <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/723 -->
                   17531: 
                   17532:   </ol><p>When an element that is focused stops being a
                   17533:   <a href="#focusable">focusable</a> element, or stops being focused without
                   17534:   another element being explicitly focused in its stead, the user
                   17535:   agent should synchronously run the <a href="#unfocusing-steps">unfocusing steps</a> for
                   17536:   the affected element only.</p>
                   17537: 
                   17538:   <p class="example">For example, this might happen because the
                   17539:   element is removed from its <code><a href="dom.html#document">Document</a></code>, or has a <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> attribute added. It would also
                   17540:   happen to an <code><a href="the-input-element.html#the-input-element">input</a></code> element when the element gets <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a>.</p>
                   17541: 
                   17542:   </div>
                   17543: 
                   17544: 
                   17545: <!--TOPIC:DOM APIs-->
                   17546:   <h4 id="document-level-focus-apis"><span class="secno">7.4.3 </span>Document-level focus APIs</h4>
                   17547: 
                   17548:   <dl class="domintro"><dt><var title="">document</var> . <code title="dom-document-activeElement"><a href="#dom-document-activeelement">activeElement</a></code></dt>
                   17549: 
                   17550:    <dd>
                   17551: 
                   17552:     <p>Returns the currently focused element.</p>
                   17553: 
                   17554:    </dd>
                   17555: 
                   17556:    <dt><var title="">document</var> . <code title="dom-document-hasFocus"><a href="#dom-document-hasfocus">hasFocus</a></code>()</dt>
                   17557: 
                   17558:    <dd>
                   17559: 
                   17560:     <p>Returns true if the document has focus; otherwise, returns false.</p>
                   17561: 
                   17562:    </dd>
                   17563: 
                   17564:    <dt><var title="">window</var> . <code title="dom-window-focus"><a href="#dom-window-focus">focus</a></code>()</dt>
                   17565: 
                   17566:    <dd>
                   17567: 
                   17568:     <p>Focuses the window. Use of this method is discouraged. Allow the user to control window focus instead.</p>
                   17569: 
                   17570:    </dd>
                   17571: 
                   17572:    <dt><var title="">window</var> . <code title="dom-window-blur"><a href="#dom-window-blur">blur</a></code>()</dt>
                   17573: 
                   17574:    <dd>
                   17575: 
                   17576:     <p>Unfocuses the window. Use of this method is discouraged. Allow the user to control window focus instead.</p>
                   17577: 
                   17578:    </dd>
                   17579: 
                   17580:   </dl><div class="impl">
                   17581: 
                   17582:   <p>The <dfn id="dom-document-activeelement" title="dom-document-activeElement"><code>activeElement</code></dfn>
                   17583:   attribute on <code><a href="dom.html#document">Document</a></code> objects must return the
                   17584:   element in the document that is focused. If no element in the
                   17585:   <code><a href="dom.html#document">Document</a></code> is focused, this must return <a href="dom.html#the-body-element-0">the body
                   17586:   element</a>.</p>
                   17587: 
                   17588:   <p class="note">When a <a href="#child-browsing-context">child browsing context</a> is
                   17589:   focused, its <a href="#browsing-context-container">browsing context container</a> is also
                   17590:   focused, <a href="#bc-focus-ergo-bcc-focus">by definition</a>. For
                   17591:   example, if the user moves the focus to a text field in an
                   17592:   <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>, the <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> is the element with
                   17593:   focus in the <a href="#parent-browsing-context">parent browsing context</a>.</p>
                   17594: 
                   17595:   <p>The <dfn id="dom-document-hasfocus" title="dom-document-hasFocus"><code>hasFocus()</code></dfn> method
                   17596:   on <code><a href="dom.html#document">Document</a></code> objects must return true if the
                   17597:   <code><a href="dom.html#document">Document</a></code>'s <a href="#browsing-context">browsing context</a> is focused,
                   17598:   and all its <a href="#ancestor-browsing-context" title="ancestor browsing context">ancestor
                   17599:   browsing contexts</a> are also focused, and the <a href="#top-level-browsing-context">top-level
                   17600:   browsing context</a> has the <i>system focus</i>. If the
                   17601:   <code><a href="dom.html#document">Document</a></code> has no <a href="#browsing-context">browsing context</a> or if its
                   17602:   <a href="#browsing-context">browsing context</a> has no <a href="#top-level-browsing-context">top-level browsing
                   17603:   context</a>, then the method will always return false.</p>
                   17604: 
                   17605:   <p>The <dfn id="dom-window-focus" title="dom-window-focus"><code>focus()</code></dfn>
                   17606:   method on the <code><a href="#window">Window</a></code> object, when invoked, provides a
                   17607:   hint to the user agent that the script believes the user might be
                   17608:   interested in the contents of the <a href="#browsing-context">browsing context</a> of
                   17609:   the <code><a href="#window">Window</a></code> object on which the method was invoked.</p>
                   17610: 
                   17611:   <p>User agents are encouraged to have this <code title="dom-window-focus"><a href="#dom-window-focus">focus()</a></code> method trigger some kind of
                   17612:   notification.</p>
                   17613: 
                   17614:   <p>The <dfn id="dom-window-blur" title="dom-window-blur"><code>blur()</code></dfn> method
                   17615:   on the <code><a href="#window">Window</a></code> object, when invoked, provides a hint to
                   17616:   the user agent that the script believes the user probably is not
                   17617:   currently interested in the contents of the <a href="#browsing-context">browsing
                   17618:   context</a> of the <code><a href="#window">Window</a></code> object on which the method
                   17619:   was invoked, but that the contents might become interesting again in
                   17620:   the future.</p>
                   17621: 
                   17622:   <p>User agents are encouraged to ignore calls to this <code title="dom-window-blur"><a href="#dom-window-blur">blur()</a></code> method entirely.</p>
                   17623: 
                   17624:   <p class="note">Historically the <code title="dom-window-blur"><a href="#dom-window-blur">focus()</a></code> and <code title="dom-window-blur"><a href="#dom-window-blur">blur()</a></code> methods actually affected the
                   17625:   system focus, but hostile sites widely abuse this behavior to the
                   17626:   user's detriment.</p>
                   17627: 
                   17628:   </div>
                   17629: 
                   17630: 
                   17631:   <h4 id="element-level-focus-apis"><span class="secno">7.4.4 </span>Element-level focus APIs</h4>
                   17632: 
                   17633:   <dl class="domintro"><dt><var title="">element</var> . <code title="dom-focus"><a href="#dom-focus">focus</a></code>()</dt>
                   17634: 
                   17635:    <dd>
                   17636: 
                   17637:     <p>Focuses the element.</p>
                   17638: 
                   17639:    </dd>
                   17640: 
                   17641:    <dt><var title="">element</var> . <code title="dom-blur"><a href="#dom-blur">blur</a></code>()</dt>
                   17642: 
                   17643:    <dd>
                   17644: 
                   17645:     <p>Unfocuses the element. Use of this method is discouraged. Focus
                   17646:     another element instead.</p>
                   17647: 
                   17648: <!--FORK-->
                   17649:     <p>Do not use this method to hide the focus ring. Do not use any
                   17650:     other method that hides the focus ring from keyboard users,in
                   17651:     particluar do not use a CSS rule to override the 'outline'
                   17652:     property. Removal of the focus ring leads to serious accessibility
                   17653:     issues for users who navigate and interact with interactive
                   17654:     content using the keyboard.</p>
                   17655: <!--FORK-->
                   17656: 
                   17657:    </dd>
                   17658: 
                   17659:   </dl><div class="impl">
                   17660: 
                   17661:   <p>The <dfn id="dom-focus" title="dom-focus"><code>focus()</code></dfn> method,
                   17662:   when invoked, must run the following algorithm:</p>
                   17663: 
                   17664:   <ol><li><p>If the element is marked as <i><a href="#locked-for-focus">locked for focus</a></i>, then abort
                   17665:    these steps.</p></li>
                   17666: 
                   17667:    <li><p>Mark the element as <dfn id="locked-for-focus">locked for focus</dfn>.</p></li>
                   17668: 
                   17669:    <li><p>Run the <a href="#focusing-steps">focusing steps</a> for the
                   17670:    element.</p></li>
                   17671: 
                   17672:    <li><p>Unmark the element as <i><a href="#locked-for-focus">locked for focus</a></i>.</p></li>
                   17673: 
                   17674:   </ol><p>The <dfn id="dom-blur" title="dom-blur"><code>blur()</code></dfn> method, when
                   17675:   invoked, should run the <a href="#unfocusing-steps">unfocusing steps</a> for the
                   17676:   element on which the method was called instead. User agents may
                   17677:   selectively or uniformly ignore calls to this method for usability
                   17678:   reasons.</p>
                   17679: 
                   17680:   <p class="example">For example, if the <code title="dom-blur"><a href="#dom-blur">blur()</a></code> method is unwisely being used to
                   17681:   remove the focus ring for aesthetics reasons, the page would become
                   17682:   unusable by keyboard users. Ignoring calls to this method would thus
                   17683:   allow keyboard users to interact with the page.</p>
                   17684: 
                   17685:   </div>
                   17686: <!--TOPIC:HTML-->
                   17687: 
                   17688: 
                   17689: 
                   17690:   <h3 id="assigning-keyboard-shortcuts"><span class="secno">7.5 </span>Assigning keyboard shortcuts</h3>
                   17691: 
                   17692:   <h4 id="introduction-6"><span class="secno">7.5.1 </span>Introduction</h4>
                   17693: 
                   17694:   <p><i>This section is non-normative.</i></p>
                   17695:   <p>Each element that can be activated or focused can be assigned a
                   17696:   single key combination to activate it, using the <code title="attr-accesskey"><a href="#the-accesskey-attribute">accesskey</a></code> attribute.</p>
                   17697: 
                   17698:   <p>The exact shortcut is determined by the user agent, based on
                   17699:   information about the user's keyboard, what keyboard shortcuts
                   17700:   already exist on the platform, and what other shortcuts have been
                   17701:   specified on the page, using the information provided in the <code title="attr-accesskey"><a href="#the-accesskey-attribute">accesskey</a></code> attribute as a guide.</p>
                   17702: 
                   17703:   <p>In order to ensure that a relevant keyboard shortcut is available
                   17704:   on a wide variety of input devices, the author can provide a number
                   17705:   of alternatives in the <code title="attr-accesskey"><a href="#the-accesskey-attribute">accesskey</a></code>
                   17706:   attribute.</p>
                   17707: 
                   17708:   <p>Each alternative consists of a single character, such as a letter
                   17709:   or digit.</p>
                   17710: 
                   17711:   <p>User agents can provide users with a list of the keyboard
                   17712:   shortcuts, but authors are encouraged to do so also. The <code title="dom-accessKeyLabel"><a href="#dom-accesskeylabel">accessKeyLabel</a></code> IDL attribute
                   17713:   returns a string representing the actual key combination assigned by
                   17714:   the user agent.</p>
                   17715: 
                   17716:   <div class="example">
                   17717: 
                   17718:    <p>In this example, an author has provided a button that can be
                   17719:    invoked using a shortcut key. To support full keyboards, the author
                   17720:    has provided "C" as a possible key. To support devices equipped
                   17721:    only with numeric keypads, the author has provided "1" as another
                   17722:    possibly key.</p>
                   17723: 
                   17724:    <pre>&lt;input type=button value=Collect onclick="collect()"
                   17725:        <strong>accesskey="C 1"</strong> id=c&gt;</pre>
                   17726: 
                   17727:   </div>
                   17728: 
                   17729:   <div class="example">
                   17730: 
                   17731:    <p>To tell the user what the shortcut key is, the author has 
                   17732:    this script here opted to explicitly add the key combination to the
                   17733:    button's label:</p>
                   17734: 
                   17735:    <pre>function addShortcutKeyLabel(button) {
                   17736: <strong>  if (button.accessKeyLabel != '')
                   17737:     button.value += ' (' + button.accessKeyLabel + ')';</strong>
                   17738: }
                   17739: addShortcutKeyLabel(document.getElementById('c'));</pre>
                   17740: 
                   17741:    <p>Browsers on different platforms will show different labels, even
                   17742:    for the same key combination, based on the convention prevalent on
                   17743:    that platform. For example, if the key combination is the Control
                   17744:    key, the Shift key, and the letter C, a Windows browser might
                   17745:    display "<samp>Ctrl+Shift+C</samp>", whereas a Mac browser might
                   17746:    display "<samp>^&#8679;C</samp>", while an Emacs browser might
                   17747:    just display "<samp>C-C</samp>". Similarly, if the key combination
                   17748:    is the Alt key and the Escape key, Windows might use
                   17749:    "<samp>Alt+Esc</samp>", Mac might use
                   17750:    "<samp>&#8997;&#9099;</samp>", and an Emacs browser might use
                   17751:    "<samp>M-ESC</samp>" or "<samp>ESC ESC</samp>".</p>
                   17752: 
                   17753:    <p>In general, therefore, it is unwise to attempt to parse the
                   17754:    value returned from the <code title="dom-accessKeyLabel"><a href="#dom-accesskeylabel">accessKeyLabel</a></code> IDL attribute.</p>
                   17755: 
                   17756:   </div>
                   17757: 
                   17758: 
                   17759:   <h4 id="the-accesskey-attribute"><span class="secno">7.5.2 </span>The <dfn title="attr-accesskey"><code>accesskey</code></dfn> attribute</h4>
                   17760: 
                   17761:   <p>All <a href="infrastructure.html#html-elements">HTML elements</a> may have the <code title="attr-accesskey"><a href="#the-accesskey-attribute">accesskey</a></code> content attribute set. The
                   17762:   <code title="attr-accesskey"><a href="#the-accesskey-attribute">accesskey</a></code> attribute's value is
                   17763:   used by the user agent as a guide for creating a keyboard shortcut
                   17764:   that activates or focuses the element.</p>
                   17765: 
                   17766:   <p>If specified, the value must be an <a href="common-microsyntaxes.html#ordered-set-of-unique-space-separated-tokens">ordered set of unique
                   17767:   space-separated tokens</a> that are <a href="infrastructure.html#case-sensitive">case-sensitive</a>,
                   17768:   each of which must be exactly one Unicode code point in length.</p>
                   17769: 
                   17770:   <div class="example">
                   17771: 
                   17772:    <p>In the following example, a variety of links are given with
                   17773:    access keys so that keyboard users familiar with the site can
                   17774:    more quickly navigate to the relevant pages:</p>
                   17775: 
                   17776:    <pre>&lt;nav&gt;
                   17777:  &lt;p&gt;
                   17778:   &lt;a title="Consortium Activities" accesskey="A" href="/Consortium/activities"&gt;Activities&lt;/a&gt; |
                   17779:   &lt;a title="Technical Reports and Recommendations" accesskey="T" href="/TR/"&gt;Technical Reports&lt;/a&gt; |
                   17780:   &lt;a title="Alphabetical Site Index" accesskey="S" href="/Consortium/siteindex"&gt;Site Index&lt;/a&gt; |
                   17781:   &lt;a title="About This Site" accesskey="B" href="/Consortium/"&gt;About Consortium&lt;/a&gt; |
                   17782:   &lt;a title="Contact Consortium" accesskey="C" href="/Consortium/contact"&gt;Contact&lt;/a&gt;
                   17783:  &lt;/p&gt;
                   17784: &lt;/nav&gt;</pre>
                   17785: 
                   17786:   </div>
                   17787: 
                   17788:   <div class="example">
                   17789: 
                   17790:    <p>In the following example, the search field is given two possible
                   17791:    access keys, "s" and "0" (in that order). A user agent on a device
                   17792:    with a full keyboard might pick
                   17793:    <kbd><kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd><a href="the-s-element.html#the-s-element">S</a></kbd></kbd> as the
                   17794:    shortcut key, while a user agent on a small device with just a
                   17795:    numeric keypad might pick just the plain unadorned key
                   17796:    <kbd><kbd>0</kbd></kbd>:</p>
                   17797: 
                   17798:    <pre>&lt;form action="/search"&gt;
                   17799:  &lt;label&gt;Search: &lt;input type="search" name="q" accesskey="s 0"&gt;&lt;/label&gt;
                   17800:  &lt;input type="submit"&gt;
                   17801: &lt;/form&gt;</pre>
                   17802: 
                   17803:   </div>
                   17804: 
                   17805:   <div class="example">
                   17806: 
                   17807:    <p>In the following example, a button has possible access keys
                   17808:    described. A script then tries to update the button's label to
                   17809:    advertise the key combination the user agent selected.</p>
                   17810: 
                   17811:    <pre>&lt;input type=submit accesskey="N @ 1" value="Compose"&gt;
                   17812: ...
                   17813: &lt;script&gt;
                   17814:  function labelButton(button) {
                   17815:    if (button.accessKeyLabel)
                   17816:      button.value += ' (' + button.accessKeyLabel + ')';
                   17817:  }
                   17818:  var inputs = document.getElementsByTagName('input');
                   17819:  for (var i = 0; i &lt; inputs.length; i += 1) {
                   17820:    if (inputs[i].type == "submit")
                   17821:      labelButton(inputs[i]);
                   17822:  }
                   17823: &lt;/script&gt;</pre>
                   17824: 
                   17825:    <p>On one user agent, the button's label might become
                   17826:    "<samp>Compose (&#8984;N)</samp>". On another, it might become
                   17827:    "<samp>Compose (Alt+&#8679;+1)</samp>". If the user agent doesn't
                   17828:    assign a key, it will be just "<samp>Compose</samp>". The exact
                   17829:    string depends on what the <a href="#assigned-access-key">assigned access key</a> is, and
                   17830:    on how the user agent represents that key combination.</p>
                   17831: 
                   17832:   </div>
                   17833: 
                   17834: 
                   17835:   <div class="impl">
                   17836: 
1.191     sruby    17837:   <h4 id="processing-model-4"><span class="secno">7.5.3 </span>Processing model</h4>
1.190     sruby    17838: 
                   17839:   <p>An element's <dfn id="assigned-access-key">assigned access key</dfn> is a key combination
                   17840:   derived from the element's <code title="attr-accesskey"><a href="#the-accesskey-attribute">accesskey</a></code> content attribute.
                   17841:   Initially, an element must not have an <a href="#assigned-access-key">assigned access
                   17842:   key</a>.</p>
                   17843: 
                   17844:   <p>Whenever an element's <code title="attr-accesskey"><a href="#the-accesskey-attribute">accesskey</a></code> attribute is set, changed,
                   17845:   or removed, the user agent must update the element's <a href="#assigned-access-key">assigned
                   17846:   access key</a> by running the following steps:</p>
                   17847: 
                   17848:   <ol><li><p>If the element has no <code title="attr-accesskey"><a href="#the-accesskey-attribute">accesskey</a></code> attribute, then skip to the
                   17849:    <i>fallback</i> step below.</p></li>
                   17850: 
                   17851:    <li><p>Otherwise, <a href="common-microsyntaxes.html#split-a-string-on-spaces" title="split a string on spaces">split the
                   17852:    attribute's value on spaces</a>, and let <var title="">keys</var> be the resulting tokens.</p></li>
                   17853: 
                   17854:    <li>
                   17855: 
                   17856:     <p>For each value in <var title="">keys</var> in turn, in the
                   17857:     order the tokens appeared in the attribute's value, run the
                   17858:     following substeps:</p>
                   17859: 
                   17860:     <ol><li><p>If the value is not a string exactly one Unicode code
                   17861:      point in length, then skip the remainder of these steps for this
                   17862:      value.</p></li>
                   17863: 
                   17864:      <li><p>If the value does not correspond to a key on the system's
                   17865:      keyboard, then skip the remainder of these steps for this
                   17866:      value.</p></li>
                   17867: 
                   17868:      <li><p>If the user agent can find a mix of zero or more modifier
                   17869:      keys that, combined with the key that corresponds to the value
                   17870:      given in the attribute, can be used as the access key, then the
                   17871:      user agent may assign that combination of keys as the element's
                   17872:      <a href="#assigned-access-key">assigned access key</a> and abort these steps.</p></li>
                   17873: 
                   17874:     </ol></li>
                   17875: 
                   17876:    <li><p><i>Fallback</i>: Optionally, the user agent may assign a key
                   17877:    combination of its choosing as the element's <a href="#assigned-access-key">assigned access
                   17878:    key</a> and then abort these steps.</p></li>
                   17879: 
                   17880:    <li><p>If this step is reached, the element has no <a href="#assigned-access-key">assigned
                   17881:    access key</a>.</p></li>
                   17882: 
                   17883:   </ol><p>Once a user agent has selected and assigned an access key for an
                   17884:   element, the user agent should not change the element's
                   17885:   <a href="#assigned-access-key">assigned access key</a> unless the <code title="attr-accesskey"><a href="#the-accesskey-attribute">accesskey</a></code> content attribute is changed
                   17886:   or the element is moved to another <code><a href="dom.html#document">Document</a></code>.</p>
                   17887: 
                   17888:   <p>When the user presses the key combination corresponding to the
                   17889:   <a href="#assigned-access-key">assigned access key</a> for an element, if the element
                   17890:   <a href="#concept-command" title="concept-command">defines a command</a>, the
                   17891:   command's <a href="#command-facet-hiddenstate" title="command-facet-HiddenState">Hidden
                   17892:   State</a> facet is false (visible), the command's <a href="#command-facet-disabledstate" title="command-facet-DisabledState">Disabled State</a> facet is
                   17893:   also false (enabled), and the element is <a href="infrastructure.html#in-a-document">in a
                   17894:   <code>Document</code></a>, then the user agent must trigger the
                   17895:   <a href="#command-facet-action" title="command-facet-Action">Action</a> of the command.</p>
                   17896: 
                   17897:   <p class="note">User agents might expose elements that have an <code title="attr-accesskey"><a href="#the-accesskey-attribute">accesskey</a></code> attribute in other ways as
                   17898:   well, e.g. in a menu displayed in response to a specific key
                   17899:   combination.</p> <!-- the actual conformance criteria for this is in
                   17900:   the section that defines commands -->
                   17901: 
                   17902:   <hr><p>The <dfn id="dom-accesskey" title="dom-accessKey"><code>accessKey</code></dfn> IDL
                   17903:   attribute must <a href="common-dom-interfaces.html#reflect">reflect</a> the <code title="attr-accesskey"><a href="#the-accesskey-attribute">accesskey</a></code> content attribute.</p>
                   17904: 
                   17905:   <p>The <dfn id="dom-accesskeylabel" title="dom-accessKeyLabel"><code>accessKeyLabel</code></dfn> IDL
                   17906:   attribute must return a string that represents the element's
                   17907:   <a href="#assigned-access-key">assigned access key</a>, if any. If the element does not
                   17908:   have one, then the IDL attribute must return the empty string.</p>
                   17909: 
                   17910:   </div>
                   17911: 
                   17912: 
                   17913: 
                   17914:   <h3 id="editing-0"><span class="secno">7.6 </span>Editing</h3>
                   17915: 
                   17916:   <h4 id="contenteditable"><span class="secno">7.6.1 </span>Making document regions editable: The <code title="attr-contenteditable"><a href="#attr-contenteditable">contenteditable</a></code> content
                   17917:   attribute</h4>
                   17918: 
                   17919:   <p>The <dfn id="attr-contenteditable" title="attr-contenteditable"><code>contenteditable</code></dfn>
                   17920:   attribute is an <a href="common-microsyntaxes.html#enumerated-attribute">enumerated attribute</a> whose keywords are
                   17921:   the empty string, <code title="">true</code>, and <code title="">false</code>. The empty string and the <code title="">true</code> keyword map to the <i>true</i> state. The <code title="">false</code> keyword maps to the <i>false</i> state. In
                   17922:   addition, there is a third state, the <i>inherit</i> state, which is
                   17923:   the <i>missing value default</i> (and the <i>invalid value
                   17924:   default</i>).</p>
                   17925: 
                   17926:   <p>The <i>true</i> state indicates that the element is editable. The
                   17927:   <i>inherit</i> state indicates that the element is editable if its
                   17928:   parent is. The <i>false</i> state indicates that the element is not
                   17929:   editable.</p>
                   17930: 
                   17931:   <dl class="domintro"><dt><var title="">element</var> . <code title="dom-contentEditable"><a href="#dom-contenteditable">contentEditable</a></code> [ = <var title="">value</var> ]</dt>
                   17932: 
                   17933:    <dd>
                   17934: 
                   17935:     <p>Returns "<code title="">true</code>", "<code title="">false</code>", or "<code title="">inherit</code>", based
                   17936:     on the state of the <code title="attr-contenteditable"><a href="#attr-contenteditable">contenteditable</a></code> attribute.</p>
                   17937: 
                   17938:     <p>Can be set, to change that state.</p>
                   17939: 
                   17940:     <p>Throws a <code><a href="infrastructure.html#syntaxerror">SyntaxError</a></code> exception if the new value
                   17941:     isn't one of those strings.</p>
                   17942: 
                   17943:    </dd>
                   17944: 
                   17945:    <dt><var title="">element</var> . <code title="dom-isContentEditable"><a href="#dom-iscontenteditable">isContentEditable</a></code></dt>
                   17946: 
                   17947:    <dd>
                   17948: 
                   17949:     <p>Returns true if the element is editable; otherwise, returns false.</p>
                   17950: 
                   17951:    </dd>
                   17952: 
                   17953:   </dl><div class="impl">
                   17954: 
                   17955:   <p>The <dfn id="dom-contenteditable" title="dom-contentEditable"><code>contentEditable</code></dfn> IDL
                   17956:   attribute, on getting, must return the string "<code title="">true</code>" if the content attribute is set to the true
                   17957:   state, "<code title="">false</code>" if the content attribute is set
                   17958:   to the false state, and "<code title="">inherit</code>"
                   17959:   otherwise. On setting, if the new value is an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   17960:   case-insensitive</a> match for the string "<code title="">inherit</code>" then the content attribute must be removed,
                   17961:   if the new value is an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for
                   17962:   the string "<code title="">true</code>" then the content attribute
                   17963:   must be set to the string "<code title="">true</code>", if the new
                   17964:   value is an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string
                   17965:   "<code title="">false</code>" then the content attribute must be set
                   17966:   to the string "<code title="">false</code>", and otherwise the
                   17967:   attribute setter must throw a <code><a href="infrastructure.html#syntaxerror">SyntaxError</a></code> exception.</p>
                   17968: 
                   17969:   <p>The <dfn id="dom-iscontenteditable" title="dom-isContentEditable"><code>isContentEditable</code></dfn>
                   17970:   IDL attribute, on getting, must return true if the element is either
                   17971:   an <a href="#editing-host">editing host</a> or <a href="#editable">editable</a>, and false
                   17972:   otherwise.</p>
                   17973: 
                   17974:   </div>
                   17975: 
                   17976: 
                   17977:   <h4 id="making-entire-documents-editable:-the-designmode-idl-attribute"><span class="secno">7.6.2 </span>Making entire documents editable: The <code title="dom-document-designMode"><a href="#designMode">designMode</a></code> IDL attribute</h4>
                   17978: 
                   17979:   <div class="impl">
                   17980: 
                   17981:   <p>Documents have a <dfn id="designMode" title="dom-document-designMode"><code>designMode</code></dfn>, which
                   17982:   can be either enabled or disabled.</p>
                   17983: 
                   17984:   </div>
                   17985: 
                   17986:   <dl class="domintro"><dt><var title="">document</var> . <code title="dom-document-designMode"><a href="#designMode">designMode</a></code> [ = <var title="">value</var> ]</dt>
                   17987: 
                   17988:    <dd>
                   17989: 
                   17990:     <p>Returns "<code title="">on</code>" if the document is editable,
                   17991:     and "<code title="">off</code>" if it isn't.</p>
                   17992: 
                   17993:     <p>Can be set, to change the document's current state.</p>
                   17994: 
                   17995:    </dd>
                   17996: 
                   17997:   </dl><div class="impl">
                   17998: 
                   17999:   <p>The <code title="dom-document-designMode"><a href="#designMode">designMode</a></code> IDL
                   18000:   attribute on the <code><a href="dom.html#document">Document</a></code> object takes two values,
                   18001:   "<code title="">on</code>" and "<code title="">off</code>". When it
                   18002:   is set, the new value must be compared in an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   18003:   case-insensitive</a> manner to these two values. If it matches
                   18004:   the "<code title="">on</code>" value, then <code title="dom-document-designMode"><a href="#designMode">designMode</a></code> must be enabled,
                   18005:   and if it matches the "<code title="">off</code>" value, then <code title="dom-document-designMode"><a href="#designMode">designMode</a></code> must be
                   18006:   disabled. Other values must be ignored.</p>
                   18007: 
                   18008:   <p>When <code title="dom-document-designMode"><a href="#designMode">designMode</a></code> is
                   18009:   enabled, the IDL attribute must return the value "<code title="">on</code>", and when it is disabled, it must return the
                   18010:   value "<code title="">off</code>".</p>
                   18011: 
                   18012:   <p>The last state set must persist until the document is destroyed
                   18013:   or the state is changed. Initially, documents must have their <code title="dom-document-designMode"><a href="#designMode">designMode</a></code> disabled.</p>
                   18014: 
                   18015:   </div>
                   18016: 
                   18017: 
                   18018:   <h4 id="best-practices-for-in-page-editors"><span class="secno">7.6.3 </span>Best practices for in-page editors</h4>
                   18019: 
                   18020:   <p>Authors are encouraged to set the 'white-space' property on <a href="#editing-host" title="editing host">editing hosts</a> and on markup that was
                   18021:   originally created through these editing mechanisms to the value
                   18022:   'pre-wrap'. Default HTML whitespace handling is not well suited to
                   18023:   WYSIWYG editing, and line wrapping will not work correctly in some
                   18024:   corner cases if 'white-space' is left at its default value.</p>
                   18025: 
                   18026:   <div class="example">
                   18027: 
                   18028:    <p>As an example of problems that occur if the default 'normal'
                   18029:    value is used instead, consider the case of the user typing
                   18030:    "<kbd>yellow&#9251;&#9251;ball</kbd>", with two spaces (here
                   18031:    represented by "&#9251;") between the words. With the editing
                   18032:    rules in place for the default value of 'white-space' ('normal'),
                   18033:    the resulting markup will either consist of
                   18034:    "<samp>yellow&amp;nbsp;&#160;ball</samp>" or
                   18035:    "<samp>yellow&#160;&amp;nbsp;ball</samp>"; i.e., there will be a
                   18036:    non-breaking space between the two words in addition to the regular
                   18037:    space. This is necessary because the 'normal' value for
                   18038:    'white-space' requires adjacent regular spaces to be collapsed
                   18039:    together.</p>
                   18040: 
                   18041:    <p>In the former case, "<samp>yellow&#9085;</samp>" might wrap to
                   18042:    the next line ("&#9085;" being used here to represent a
                   18043:    non-breaking space) even though "<samp>yellow</samp>" alone might
                   18044:    fit at the end of the line; in the latter case,
                   18045:    "<samp>&#9085;ball</samp>", if wrapped to the start of the line,
                   18046:    would have visible indentation from the non-breaking space.</p>
                   18047: 
                   18048:    <p>When 'white-space' is set to 'pre-wrap', however, the editing
                   18049:    rules will instead simply put two regular spaces between the words,
                   18050:    and should the two words be split at the end of a line, the spaces
                   18051:    would be neatly removed from the rendering.</p>
                   18052: 
                   18053:   </div>
                   18054: 
                   18055: 
                   18056: 
                   18057:   <h4 id="editing-apis"><span class="secno">7.6.4 </span>Editing APIs</h4>
                   18058: 
                   18059:   <p>The definition of the terms <dfn id="active-range">active range</dfn>, <dfn id="editing-host">editing
                   18060:   host</dfn>, and <dfn id="editable">editable</dfn>, the user interface requirements
                   18061:   of elements that are <a href="#editing-host" title="editing host">editing hosts</a>
                   18062:   or <a href="#editable">editable</a>, the
                   18063: 
                   18064:   <dfn id="execCommand" title="dom-document-execCommand"><code>execCommand()</code></dfn>,
                   18065:   <dfn id="dom-document-querycommandenabled" title="dom-document-queryCommandEnabled"><code>queryCommandEnabled()</code></dfn>,
                   18066:   <dfn id="dom-document-querycommandindeterm" title="dom-document-queryCommandIndeterm"><code>queryCommandIndeterm()</code></dfn>,
                   18067:   <dfn id="dom-document-querycommandstate" title="dom-document-queryCommandState"><code>queryCommandState()</code></dfn>,
                   18068:   <dfn id="dom-document-querycommandsupported" title="dom-document-queryCommandSupported"><code>queryCommandSupported()</code></dfn>, and
                   18069:   <dfn id="dom-document-querycommandvalue" title="dom-document-queryCommandValue"><code>queryCommandValue()</code></dfn>
                   18070: 
                   18071:   methods, text selections, and the <dfn id="delete-the-selection">delete the selection</dfn>
                   18072:   algorithm are defined in the HTML Editing APIs specification. The
                   18073:   interaction of editing and the undo/redo features in user agents is
                   18074:   defined by the UndoManager and DOM Transaction specification. <a href="#refsEDITING">[EDITING]</a> <a href="#refsUNDO">[UNDO]</a></p>
                   18075: 
                   18076:   <!-- those might get merged in here eventually -->
                   18077: 
                   18078: 
                   18079: 
                   18080:   <h4 id="spelling-and-grammar-checking"><span class="secno">7.6.5 </span>Spelling and grammar checking</h4>
                   18081: 
                   18082:   <div class="impl">
                   18083: 
                   18084:   <p>User agents can support the checking of spelling and grammar of
                   18085:   editable text, either in form controls (such as the value of
                   18086:   <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> elements), or in elements in an <a href="#editing-host">editing
                   18087:   host</a> (e.g. using <code title="attr-contenteditable"><a href="#attr-contenteditable">contenteditable</a></code>).</p>
                   18088: 
                   18089:   <p>For each element, user agents must establish a <dfn id="concept-spellcheck-default" title="concept-spellcheck-default">default behavior</dfn>, either
                   18090:   through defaults or through preferences expressed by the user. There
                   18091:   are three possible default behaviors for each element:</p>
                   18092: 
                   18093:   <dl><dt><dfn id="concept-spellcheck-default-true" title="concept-spellcheck-default-true">true-by-default</dfn>
                   18094: 
                   18095:    </dt><dd>The element will be checked for spelling and grammar if its
                   18096:    contents are editable.
                   18097: 
                   18098:    </dd><dt><dfn id="concept-spellcheck-default-false" title="concept-spellcheck-default-false">false-by-default</dfn>
                   18099: 
                   18100:    </dt><dd>The element will never be checked for spelling and grammar.
                   18101: 
                   18102:    </dd><dt><dfn id="concept-spellcheck-default-inherit" title="concept-spellcheck-default-inherit">inherit-by-default</dfn>
                   18103: 
                   18104:    </dt><dd>The element's default behavior is the same as its parent
                   18105:    element's. Elements that have no parent element cannot have this as
                   18106:    their default behavior.
                   18107: 
                   18108:   </dd></dl><hr></div>
                   18109: 
                   18110:   <p>The <dfn id="attr-spellcheck" title="attr-spellcheck"><code>spellcheck</code></dfn>
                   18111:   attribute is an <a href="common-microsyntaxes.html#enumerated-attribute">enumerated attribute</a> whose keywords are
                   18112:   the empty string, <code title="">true</code> and <code title="">false</code>. The empty string and the <code title="">true</code> keyword map to the <i>true</i> state. The <code title="">false</code> keyword maps to the <i>false</i> state. In
                   18113:   addition, there is a third state, the <i>default</i> state, which is
                   18114:   the <i>missing value default</i> (and the <i>invalid value
                   18115:   default</i>).</p>
                   18116: 
                   18117:   <p class="note">The <i>true</i> state indicates that the element is
                   18118:   to have its spelling and grammar checked. The <i>default</i> state
                   18119:   indicates that the element is to act according to a default
                   18120:   behavior, possibly based on the parent element's own <code title="attr-spellcheck"><a href="#attr-spellcheck">spellcheck</a></code> state, as defined below.
                   18121:   The <i>false</i> state indicates that the element is not to be
                   18122:   checked.</p>
                   18123: 
                   18124:   <div class="impl">
                   18125: 
                   18126:   <hr></div>
                   18127: 
                   18128:   <dl class="domintro"><dt><var title="">element</var> . <code title="dom-spellcheck"><a href="#dom-spellcheck">spellcheck</a></code> [ = <var title="">value</var> ]</dt>
                   18129: 
                   18130:    <dd>
                   18131: 
                   18132:     <p>Returns true if the element is to have its spelling and grammar
                   18133:     checked; otherwise, returns false.</p>
                   18134: 
                   18135:     <p>Can be set, to override the default and set the <code title="attr-spellcheck"><a href="#attr-spellcheck">spellcheck</a></code> content attribute.</p>
                   18136: 
                   18137:    </dd>
                   18138: 
                   18139:   </dl><div class="impl">
                   18140: 
                   18141:   <p>The <dfn id="dom-spellcheck" title="dom-spellcheck"><code>spellcheck</code></dfn> IDL
                   18142:   attribute, on getting, must return true if the element's <code title="attr-spellcheck"><a href="#attr-spellcheck">spellcheck</a></code> content attribute is in
                   18143:   the <i>true</i> state, or if the element's <code title="attr-spellcheck"><a href="#attr-spellcheck">spellcheck</a></code> content attribute is in
                   18144:   the <i>default</i> state and the element's <a href="#concept-spellcheck-default" title="concept-spellcheck-default">default behavior</a> is <a href="#concept-spellcheck-default-true" title="concept-spellcheck-default-true">true-by-default</a>, or
                   18145:   if the element's <code title="attr-spellcheck"><a href="#attr-spellcheck">spellcheck</a></code>
                   18146:   content attribute is in the <i>default</i> state and the element's
                   18147:   <a href="#concept-spellcheck-default" title="concept-spellcheck-default">default behavior</a> is
                   18148:   <a href="#concept-spellcheck-default-inherit" title="concept-spellcheck-default-inherit">inherit-by-default</a>
                   18149:   and the element's parent element's <code title="dom-spellcheck"><a href="#dom-spellcheck">spellcheck</a></code> IDL attribute would return
                   18150:   true; otherwise, if none of those conditions applies, then the
                   18151:   attribute must instead return false.</p>
                   18152: 
                   18153:   <p class="note">The <code title="dom-spellcheck"><a href="#dom-spellcheck">spellcheck</a></code>
                   18154:   IDL attribute is not affected by user preferences that override the
                   18155:   <code title="attr-spellcheck"><a href="#attr-spellcheck">spellcheck</a></code> content attribute,
                   18156:   and therefore might not reflect the actual spellchecking state.</p>
                   18157: 
                   18158:   <p>On setting, if the new value is true, then the element's <code title="attr-spellcheck"><a href="#attr-spellcheck">spellcheck</a></code> content attribute must be
                   18159:   set to the literal string "<code title="">true</code>", otherwise it
                   18160:   must be set to the literal string "<code title="">false</code>".
                   18161: 
                   18162:   </p><hr><p>User agents must only consider the following pieces of text as
                   18163:   checkable for the purposes of this feature:</p>
                   18164: 
                   18165:   <ul><li>The value of <code><a href="the-input-element.html#the-input-element">input</a></code> elements to which the <code title="attr-input-readonly"><a href="common-input-element-attributes.html#attr-input-readonly">readonly</a></code> attribute applies,
                   18166:    whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attributes are not
                   18167:    in the <a href="states-of-the-type-attribute.html#password-state-(type=password)" title="attr-input-type-password">Password</a>
                   18168:    state, and that are not <i title="concept-input-immutable"><a href="the-input-element.html#concept-input-immutable">immutable</a></i> (i.e. that do not
                   18169:    have the <code title="attr-input-readonly"><a href="common-input-element-attributes.html#attr-input-readonly">readonly</a></code>
                   18170:    attribute specified and that are not <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a>).</li>
                   18171: 
                   18172:    <li>The value of <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> elements that do not have a
                   18173:    <code title="attr-textarea-readonly"><a href="the-textarea-element.html#attr-textarea-readonly">readonly</a></code> attribute and
                   18174:    that are not <a href="attributes-common-to-form-controls.html#concept-fe-disabled" title="concept-fe-disabled">disabled</a>.</li>
                   18175: 
                   18176:    <li>Text in <code><a href="infrastructure.html#text-0">Text</a></code> nodes that are
                   18177:    children of <a href="#editing-host" title="editing host">editing hosts</a> or
                   18178:    <a href="#editable">editable</a> elements.</li>
                   18179: 
                   18180:    <li>Text in attributes of <a href="#editable">editable</a> elements.</li>
                   18181: 
                   18182:   </ul><p>For text that is part of a <code><a href="infrastructure.html#text-0">Text</a></code> node, the element
                   18183:   with which the text is associated is the element that is the
                   18184:   immediate parent of the first character of the word, sentence, or
                   18185:   other piece of text. For text in attributes, it is the attribute's
                   18186:   element. For the values of <code><a href="the-input-element.html#the-input-element">input</a></code> and
                   18187:   <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> elements, it is the element itself.</p>
                   18188: 
                   18189:   <p>To determine if a word, sentence, or other piece of text in an
                   18190:   applicable element (as defined above) is to have spelling- and/or
                   18191:   grammar-checking enabled, the UA must use the following
                   18192:   algorithm:</p>
                   18193: 
                   18194:   <ol><!-- user override --><li>If the user has disabled the checking for this text, then the
                   18195:    checking is disabled.</li>
                   18196: 
                   18197:    <li>Otherwise, if the user has forced the checking for this text to
                   18198:    always be enabled, then the checking is enabled.</li>
                   18199: 
                   18200:    <!-- content attribute: on, off -->
                   18201: 
                   18202:    <li>Otherwise, if the element with which the text is associated has
                   18203:    a <code title="attr-spellcheck"><a href="#attr-spellcheck">spellcheck</a></code> content
                   18204:    attribute, then: if that attribute is in the <i>true</i> state,
                   18205:    then checking is enabled; otherwise, if that attribute is in the
                   18206:    <i>false</i> state, then checking is disabled.</li>
                   18207: 
                   18208:    <!-- inherit, if there is one to inherit from -->
                   18209: 
                   18210:    <li>Otherwise, if there is an ancestor element with a <code title="attr-spellcheck"><a href="#attr-spellcheck">spellcheck</a></code> content attribute that is
                   18211:    not in the <i>default</i> state, then: if the nearest such
                   18212:    ancestor's <code title="attr-spellcheck"><a href="#attr-spellcheck">spellcheck</a></code> content
                   18213:    attribute is in the <i>true</i> state, then checking is enabled;
                   18214:    otherwise, checking is disabled.</li>
                   18215: 
                   18216:    <!-- default -->
                   18217: 
                   18218:    <li>Otherwise, if the element's <a href="#concept-spellcheck-default" title="concept-spellcheck-default">default behavior</a> is <a href="#concept-spellcheck-default-true" title="concept-spellcheck-default-true">true-by-default</a>,
                   18219:    then checking is enabled.</li>
                   18220: 
                   18221:    <li>Otherwise, if the element's <a href="#concept-spellcheck-default" title="concept-spellcheck-default">default behavior</a> is <a href="#concept-spellcheck-default-false" title="concept-spellcheck-default-false">false-by-default</a>,
                   18222:    then checking is disabled.</li>
                   18223: 
                   18224:    <!-- default inheritance -->
                   18225: 
                   18226:    <li>Otherwise, if the element's parent element has <em>its</em>
                   18227:    checking enabled, then checking is enabled.</li>
                   18228: 
                   18229:    <li>Otherwise, checking is disabled.</li>
                   18230: 
                   18231:   </ol><p>If the checking is enabled for a word/sentence/text, the user
                   18232:   agent should indicate spelling and/or grammar errors in that
                   18233:   text. User agents should take into account the other semantics given
                   18234:   in the document when suggesting spelling and grammar
                   18235:   corrections. User agents may use the language of the element to
                   18236:   determine what spelling and grammar rules to use, or may use the
                   18237:   user's preferred language settings. UAs should use
                   18238:   <code><a href="the-input-element.html#the-input-element">input</a></code> element attributes such as <code title="attr-input-pattern"><a href="common-input-element-attributes.html#attr-input-pattern">pattern</a></code> to ensure that the
                   18239:   resulting value is valid, where possible.</p>
                   18240: 
                   18241:   <p>If checking is disabled, the user agent should not indicate
                   18242:   spelling or grammar errors for that text.</p>
                   18243: 
                   18244:   <div class="example">
                   18245: 
                   18246:    <p>The element with ID "a" in the following example would be the
                   18247:    one used to determine if the word "Hello" is checked for spelling
                   18248:    errors. In this example, it would not be.</p>
                   18249: 
                   18250:    <pre>&lt;div contenteditable="true"&gt;
                   18251:  &lt;span spellcheck="false" id="a"&gt;Hell&lt;/span&gt;&lt;em&gt;o!&lt;/em&gt;
                   18252: &lt;/div&gt;</pre>
                   18253: 
                   18254:    <p>The element with ID "b" in the following example would have
                   18255:    checking enabled (the leading space character in the attribute's
                   18256:    value on the <code><a href="the-input-element.html#the-input-element">input</a></code> element causes the attribute to be
                   18257:    ignored, so the ancestor's value is used instead, regardless of the
                   18258:    default).</p>
                   18259: 
                   18260:    <pre>&lt;p spellcheck="true"&gt;
                   18261:  &lt;label&gt;Name: &lt;input spellcheck=" false" id="b"&gt;&lt;/label&gt;
                   18262: &lt;/p&gt;</pre>
                   18263: 
                   18264:   </div>
                   18265: 
                   18266:   </div>
                   18267: 
                   18268:   <p class="note">This specification does not define the user
                   18269:   interface for spelling and grammar checkers. A user agent could
                   18270:   offer on-demand checking, could perform continuous checking while
                   18271:   the checking is enabled, or could use other interfaces.</p>
                   18272: 
                   18273: 
                   18274:   <h3 id="dnd"><span class="secno">7.7 </span><dfn>Drag and drop</dfn></h3>
                   18275: 
                   18276: <!-- v2: ideas for drag and drop:
                   18277: 
                   18278:      * being able to animate a drop target:
                   18279: 
                   18280:        > To implement this with simple interface I've proposed, events
                   18281:        > should be handled either by existing elements (like list
                   18282:        > items that compare their size and position of dragged element
                   18283:        > to decide whether element should be dropped before or after)
                   18284:        > or handled by container that would probably need to calculate
                   18285:        > positions of it's children and create new element to show
                   18286:        > drop target. Smooth Mac-like drag'n'drop can be implemented
                   18287:        > by animating drop target's padding/margin. So that's quite a
                   18288:        > bit of code that's going to be reinvented each time someone
                   18289:        > implements reordering.
                   18290: 
                   18291:        <hyatt> :droptarget
                   18292:        <hyatt> or something
                   18293:        <hyatt> we don't support a pseudo-class for the drop target but that's a great idea
                   18294:        <Hixie_> yeah, thinking about that too
                   18295:        <Hixie_> :drop-target, :drop-target(above), :drop-target(below) and having ondragover be able to say "not on me, but next to me maybe"
                   18296: 
                   18297:        - some way to be able to match an element that is being dragged over.
                   18298: 
                   18299:        - some way to be able to animate an element as it goes into and out of   
                   18300:          this state (CSS transitions?), e.g. to be able to animate something
                   18301:          "getting out of the way" to let you drop an item between others.
                   18302: 
                   18303:        - as an extension to the previous feature, a way to distinguish being    
                   18304:          dragged above or to the left of the drag target vs below or to the
                   18305:          right of the drag target.
                   18306: 
                   18307:      * We should let drop targets communicate back to drag sources if
                   18308:        they want to communicate. (e.g. expose Window, and thus
                   18309:        postMessage(), on the dataTransfer object on drop.)
                   18310:        Or maybe just use a MessagePort!
                   18311: 
                   18312:        We should let drag sources provide a set of options via a
                   18313:        context menu when the drop happens. (So that, e.g., the source
                   18314:        can know whether a capabilities URI that it is passing along is
                   18315:        supposed to be read-write access or read-only access to the
                   18316:        object being dragged.)
                   18317: 
                   18318:        We should let potential drop targets see the types (but not the
                   18319:        contents!) of dragged data so they can establish if they care
                   18320:        or not. (dataTransfer.hasType())
                   18321: 
                   18322:        Ack: Ben Laurie (@g)
                   18323: 
                   18324:      * Interop with native apps. In particular, we probably want to
                   18325:        whitelist the list of types that a Web page can see, since
                   18326:        otherwise we'll end up exposing things like the username (if a
                   18327:        user drags a file from their desktop, the path is exposed on
                   18328:        some OSes).
                   18329: 
                   18330:      Other things listed below:
                   18331:       DND-v2: more native support: text/html from selections, etc
                   18332:       DND-v3: add Blob support
                   18333:       DND-v4: add structured clone support
                   18334:       DND-v5: add promises (should be able to say "if you accept this
                   18335:               drop, then I can provide the File object that
                   18336:               corresponds to it eventually")
                   18337: 
                   18338:          DataTransferPromise.type = 'string' or 'file' or 'blob' or 'data'
                   18339:                             .onneeddata - can wait until this fires to provide data
                   18340:                             .setData() - call this once you have data, must be the right type
                   18341: 
                   18342: -->
                   18343: 
                   18344:   <p>This section defines an event-based drag-and-drop mechanism.</p>
                   18345: 
                   18346:   <p>This specification does not define exactly what a
                   18347:   <em>drag-and-drop operation</em> actually is.</p>
                   18348: 
                   18349:   <p>On a visual medium with a pointing device, a drag operation could
                   18350:   be the default action of a <code title="event-mousedown">mousedown</code> event that is followed by a
                   18351:   series of <code title="event-mousemove">mousemove</code> events, and
                   18352:   the drop could be triggered by the mouse being released.</p>
                   18353: 
                   18354:   <p>When using an input modality other than a pointing device, users
                   18355:   would probably have to explicitly indicate their intention to
                   18356:   perform a drag-and-drop operation, stating what they wish to drag
                   18357:   and where they wish to drop it, respectively.</p>
                   18358: 
                   18359:   <div class="impl">
                   18360: 
                   18361:   <p>However it is implemented, drag-and-drop operations must have a
                   18362:   starting point (e.g. where the mouse was clicked, or the start of
                   18363:   the selection or element that was selected for the drag), may have
                   18364:   any number of intermediate steps (elements that the mouse moves over
                   18365:   during a drag, or elements that the user picks as possible drop
                   18366:   points as he cycles through possibilities), and must either have an
                   18367:   end point (the element above which the mouse button was released, or
                   18368:   the element that was finally selected), or be canceled. The end
                   18369:   point must be the last element selected as a possible drop point
                   18370:   before the drop occurs (so if the operation is not canceled, there
                   18371:   must be at least one element in the middle step).</p>
                   18372: 
                   18373:   </div>
                   18374: 
                   18375: 
                   18376:   <h4 id="introduction-7"><span class="secno">7.7.1 </span>Introduction</h4>
                   18377: 
                   18378:   <p><i>This section is non-normative.</i></p>
                   18379:   <p>To make an element draggable is simple: give the element a <code title="attr-draggable"><a href="#the-draggable-attribute">draggable</a></code> attribute, and set an event
                   18380:   listener for <code title="event-dragstart"><a href="#event-dragstart">dragstart</a></code> that
                   18381:   stores the data being dragged.</p>
                   18382: 
                   18383:   <p>The event handler typically needs to check that it's not a text
                   18384:   selection that is being dragged, and then needs to store data into
                   18385:   the <code><a href="#datatransfer">DataTransfer</a></code> object and set the allowed effects
                   18386:   (copy, move, link, or some combination).</p>
                   18387: 
                   18388:   <p>For example:</p>
                   18389: 
                   18390:   <pre>&lt;p&gt;What fruits do you like?&lt;/p&gt;
                   18391: &lt;ol ondragstart="dragStartHandler(event)"&gt;
                   18392:  &lt;li draggable="true" data-value="fruit-apple"&gt;Apples&lt;/li&gt;
                   18393:  &lt;li draggable="true" data-value="fruit-orange"&gt;Oranges&lt;/li&gt;
                   18394:  &lt;li draggable="true" data-value="fruit-pear"&gt;Pears&lt;/li&gt;
                   18395: &lt;/ol&gt;
                   18396: &lt;script&gt;
                   18397:   var internalDNDType = 'text/x-example'; // set this to something specific to your site
                   18398:   function dragStartHandler(event) {
                   18399:     if (event.target instanceof HTMLLIElement) {
                   18400:       // use the element's data-value="" attribute as the value to be moving:
                   18401:       event.dataTransfer.setData(internalDNDType, event.target.dataset.value);
                   18402:       event.dataTransfer.effectAllowed = 'move'; // only allow moves
                   18403:     } else {
                   18404:       event.preventDefault(); // don't allow selection to be dragged
                   18405:     }
                   18406:   }
                   18407: &lt;/script&gt;</pre>
                   18408: 
                   18409:   <hr><p>To accept a drop, the drop target has to have a <code title="attr-dropzone"><a href="#the-dropzone-attribute">dropzone</a></code> attribute and listen to the
                   18410:   <code title="drop-event">drop</code> event.</p>
                   18411: 
                   18412:   <p>The value of the <code title="attr-dropzone"><a href="#the-dropzone-attribute">dropzone</a></code>
                   18413:   attribute specifies what kind of data to accept (e.g. "<code title="">string:text/plain</code>" to accept any text strings, or
                   18414:   "<code>file:image/png</code>" to accept a PNG image file) and what
                   18415:   kind of feedback to give (e.g. "<code>move</code>" to indicate that
                   18416:   the data will be moved).</p>
                   18417: 
                   18418:   <p class="note">Instead of using the <code title="attr-dropzone"><a href="#the-dropzone-attribute">dropzone</a></code> attribute, a drop target can
                   18419:   handle the <code title="event-dragenter"><a href="#event-dragenter">dragenter</a></code> event (to
                   18420:   report whether or not the drop target is to accept the drop) and the
                   18421:   <code title="event-dragover"><a href="#event-dragover">dragover</a></code> event (to specify what
                   18422:   feedback is to be shown to the user).</p>
                   18423: 
                   18424:   <p>The <code title="event-drop"><a href="#event-drop">drop</a></code> event allows the actual
                   18425:   drop to be performed. This event needs to be canceled, so that the
                   18426:   <code title="dom-DataTransfer-DropEffect"><a href="#dom-datatransfer-dropeffect">dropEffect</a></code>
                   18427:   attribute's value can be used by the source (otherwise it's
                   18428:   reset).</p>
                   18429: 
                   18430:   <p>For example:</p>
                   18431: 
                   18432:   <pre>&lt;p&gt;Drop your favorite fruits below:&lt;/p&gt;
                   18433: &lt;ol dropzone="move string:text/x-example" ondrop="dropHandler(event)"&gt;
                   18434:  &lt;!-- don't forget to change the "text/x-example" type to something
                   18435:  specific to your site --&gt;
                   18436: &lt;/ol&gt;
                   18437: &lt;script&gt;
                   18438:   var internalDNDType = 'text/x-example'; // set this to something specific to your site
                   18439:   function dropHandler(event) {
                   18440:     var li = document.createElement('li');
                   18441:     var data = event.dataTransfer.getData(internalDNDType);
                   18442:     if (data == 'fruit-apple') {
                   18443:       li.textContent = 'Apples';
                   18444:     } else if (data == 'fruit-orange') {
                   18445:       li.textContent = 'Oranges';
                   18446:     } else if (data == 'fruit-pear') {
                   18447:       li.textContent = 'Pears';
                   18448:     } else {
                   18449:       li.textContent = 'Unknown Fruit';
                   18450:     }
                   18451:     event.target.appendChild(li);
                   18452:   }
                   18453: &lt;/script&gt;</pre>
                   18454: 
                   18455:   <hr><p>To remove the original element (the one that was dragged) from
                   18456:   the display, the <code title="event-dragend"><a href="#event-dragend">dragend</a></code> event
                   18457:   can be used.</p>
                   18458: 
                   18459:   <p>For our example here, that means updating the original markup to
                   18460:   handle that event:</p>
                   18461: 
                   18462:   <pre>&lt;p&gt;What fruits do you like?&lt;/p&gt;
                   18463: &lt;ol ondragstart="dragStartHandler(event)" ondragend="dragEndHandler(event)"&gt;
                   18464:  <em>...as before...</em>
                   18465: &lt;/ol&gt;
                   18466: &lt;script&gt;
                   18467:   function dragStartHandler(event) {
                   18468:     // <em>...as before...</em>
                   18469:   }
                   18470:   function dragEndHandler(event) {
                   18471:     // remove the dragged element
                   18472:     event.target.parentNode.removeChild(event.target);
                   18473:   }
                   18474: &lt;/script&gt;</pre>
                   18475: 
                   18476: 
                   18477: 
                   18478:   <h4 id="the-drag-data-store"><span class="secno">7.7.2 </span>The drag data store</h4>
                   18479: 
                   18480:   <p>The data that underlies a drag-and-drop operation, known as the
                   18481:   <dfn id="drag-data-store">drag data store</dfn>, consists of the following information:</p>
                   18482: 
                   18483:   <ul><li><p>A <dfn id="drag-data-store-item-list">drag data store item list</dfn>, which is a list of
                   18484:    items representing the dragged data, each consisting of the
                   18485:    following information:</p>
                   18486: 
                   18487:     <dl><dt><dfn id="the-drag-data-item-kind">The drag data item kind</dfn></dt>
                   18488: 
                   18489:      <dd>
                   18490: 
                   18491:       <p>The kind of data:</p>
                   18492: 
                   18493:       <dl><dt><i>Plain Unicode string</i></dt>
                   18494:        <dd>
                   18495:         <p>Text.</p>
                   18496:        </dd>
                   18497: 
                   18498: <!-- DND-v3:
                   18499:        <dt><i title="">Blob</i></dt>
                   18500:        <dd>
                   18501:         <p>Binary data.</p>
                   18502:        </dd>
                   18503: -->
                   18504: 
                   18505:        <dt><i title="">File</i></dt>
                   18506:        <dd>
                   18507:         <p>Binary data with a file name.</p>
                   18508:        </dd>
                   18509: 
                   18510: <!-- DND-v4:
                   18511:        <dt><i>Structured object</i></dt>
                   18512:        <dd>
                   18513:         <p>An object that will be cloned using the <span>structured clone</span> algorithm.</p>
                   18514:        </dd>
                   18515: -->
                   18516: 
                   18517:       </dl></dd>
                   18518: 
                   18519:      <dt><dfn id="the-drag-data-item-type-string">The drag data item type string</dfn></dt>
                   18520: 
                   18521:      <dd>
                   18522: 
                   18523:       <p>A Unicode string giving the type or format of the data,
                   18524:       generally given by a <a href="infrastructure.html#mime-type">MIME type</a>. Some values that
                   18525:       are not <a href="infrastructure.html#mime-type" title="MIME type">MIME types</a> are
                   18526:       special-cased for legacy reasons. The API does not enforce the
                   18527:       use of <a href="infrastructure.html#mime-type" title="MIME type">MIME types</a>; other values
                   18528:       can be used as well. In all cases, however, the values are all
                   18529:       <a href="infrastructure.html#converted-to-ascii-lowercase">converted to ASCII lowercase</a> by the API.</p>
                   18530: 
                   18531:       <p class="note">Strings that contain <a href="common-microsyntaxes.html#space-character" title="space
                   18532:       character">space characters</a> cannot be used with the <code title="attr-dropzone"><a href="#the-dropzone-attribute">dropzone</a></code> attribute, so authors are
                   18533:       encouraged to use only <a href="infrastructure.html#mime-type" title="MIME type">MIME types</a>
                   18534:       or custom strings (without spaces).</p>
                   18535: 
                   18536:       <p>There is a limit of one <i>Plain Unicode string</i> item per
                   18537:       <a href="#the-drag-data-item-type-string" title="The drag data item type string">item type
                   18538:       string</a>.</p> <!-- DND-v4: consider limiting the structured
                   18539:       objects too -->
                   18540: 
                   18541:      </dd>
                   18542: 
                   18543:      <dt>The actual data</dt>
                   18544: 
                   18545:      <dd><p>A Unicode or binary string, in some cases with a file name
                   18546:      (itself a Unicode string), <!-- (DND-v4:) or an object, --> as
                   18547:      per <a href="#the-drag-data-item-kind">the drag data item kind</a>.</p></dd>
                   18548: 
                   18549:     </dl><p>The <a href="#drag-data-store-item-list">drag data store item list</a> is ordered in the
                   18550:     order that the items were added to the list; most recently added
                   18551:     last.</p>
                   18552: 
                   18553:    </li>
                   18554: 
                   18555:    <li>
                   18556: 
                   18557:     <p>The following information, used to generate the UI feedback
                   18558:     during the drag:</p>
                   18559: 
                   18560:     <ul><li>User-agent-defined default feedback information, known as the
                   18561:      <dfn id="drag-data-store-default-feedback">drag data store default feedback</dfn>.</li>
                   18562: 
                   18563:      <li>Optionally, a bitmap image and the coordinate of a point
                   18564:      within that image, known as the <dfn id="drag-data-store-bitmap">drag data store bitmap</dfn>
                   18565:      and <dfn id="drag-data-store-hot-spot-coordinate">drag data store hot spot coordinate</dfn>.</li>
                   18566: 
                   18567:     </ul></li>
                   18568: 
                   18569:    <li>
                   18570: 
                   18571:     <p>A <dfn id="drag-data-store-mode">drag data store mode</dfn>, which is one of the
                   18572:     following:</p>
                   18573: 
                   18574:     <dl><dt><dfn id="concept-dnd-rw" title="concept-dnd-rw">Read/write mode</dfn></dt>
                   18575:      <dd>
                   18576: 
                   18577:       <p>For the <code title="event-dragstart"><a href="#event-dragstart">dragstart</a></code> event.
                   18578:       New data can be added to the <a href="#drag-data-store">drag data store</a>.</p>
                   18579: 
                   18580:      </dd>
                   18581: 
                   18582:      <dt><dfn id="concept-dnd-ro" title="concept-dnd-ro">Read-only mode</dfn></dt>
                   18583:      <dd>
                   18584: 
                   18585:       <p>For the <code title="event-drop"><a href="#event-drop">drop</a></code> event. The list of
                   18586:       items representing dragged data can be read, including the data.
                   18587:       No new data can be added.</p>
                   18588: 
                   18589:      </dd>
                   18590: 
                   18591:      <dt><dfn id="concept-dnd-p" title="concept-dnd-p">Protected mode</dfn></dt>
                   18592:      <dd>
                   18593: 
                   18594:       <p>For all other events. The formats and kinds in the <a href="#drag-data-store">drag
                   18595:       data store</a> list of items representing dragged data can be
                   18596:       enumerated, but the data itself is unavailable and no new data can
                   18597:       be added.</p>
                   18598: 
                   18599:      </dd>
                   18600: 
                   18601:     </dl></li>
                   18602: 
                   18603:    <li>
                   18604: 
                   18605:     <p>A <dfn id="drag-data-store-allowed-effects-state">drag data store allowed effects state</dfn>, which is a
                   18606:     string.</p>
                   18607: 
                   18608:    </li>
                   18609: 
                   18610:   </ul><p>When a <a href="#drag-data-store">drag data store</a> is <dfn id="create-a-drag-data-store" title="create a drag
                   18611:   data store">created</dfn>, it must be initialized such that its
                   18612:   <a href="#drag-data-store-item-list">drag data store item list</a> is empty, it has no
                   18613:   <a href="#drag-data-store-default-feedback">drag data store default feedback</a>, it has no <a href="#drag-data-store-bitmap">drag
                   18614:   data store bitmap</a> and <a href="#drag-data-store-hot-spot-coordinate">drag data store hot spot
                   18615:   coordinate</a>, its <a href="#drag-data-store-mode">drag data store mode</a> is <a href="#concept-dnd-p" title="concept-dnd-p">protected mode</a>, and its <a href="#drag-data-store-allowed-effects-state">drag data
                   18616:   store allowed effects state</a> is the string "<code title="">uninitialized</code>".</p>
                   18617: 
                   18618: 
                   18619:   <h4 id="the-datatransfer-interface"><span class="secno">7.7.3 </span>The <code><a href="#datatransfer">DataTransfer</a></code> interface</h4>
                   18620: 
                   18621:   <p><code><a href="#datatransfer">DataTransfer</a></code> objects are used to expose the
                   18622:   <a href="#drag-data-store">drag data store</a> that underlies a drag-and-drop
                   18623:   operation.</p>
                   18624: 
                   18625:   <pre class="idl">interface <dfn id="datatransfer">DataTransfer</dfn> {
                   18626:            attribute DOMString <a href="#dom-datatransfer-dropeffect" title="dom-DataTransfer-dropEffect">dropEffect</a>;
                   18627:            attribute DOMString <a href="#dom-datatransfer-effectallowed" title="dom-DataTransfer-effectAllowed">effectAllowed</a>;
                   18628: 
                   18629:   readonly attribute <a href="#datatransferitemlist">DataTransferItemList</a> <a href="#dom-datatransfer-items" title="dom-DataTransfer-items">items</a>;
                   18630: 
                   18631:   void <a href="#dom-datatransfer-setdragimage" title="dom-DataTransfer-setDragImage">setDragImage</a>(Element image, long x, long y);
                   18632: 
                   18633:   /* old interface */
                   18634:   readonly attribute <span>DOMString</span>[] <a href="#dom-datatransfer-types" title="dom-DataTransfer-types">types</a>;
                   18635:   DOMString <a href="#dom-datatransfer-getdata" title="dom-DataTransfer-getData">getData</a>(DOMString format);
                   18636:   void <a href="#dom-datatransfer-setdata" title="dom-DataTransfer-setData">setData</a>(DOMString format, DOMString data);
                   18637:   void <a href="#dom-datatransfer-cleardata" title="dom-DataTransfer-clearData">clearData</a>(optional DOMString format);
                   18638:   readonly attribute <a href="infrastructure.html#filelist">FileList</a> <a href="#dom-datatransfer-files" title="dom-DataTransfer-files">files</a>;
                   18639: };</pre>
                   18640: 
                   18641:   <dl class="domintro"><dt><var title="">dataTransfer</var> . <code title="dom-DataTransfer-dropEffect"><a href="#dom-datatransfer-dropeffect">dropEffect</a></code> [ = <var title="">value</var> ]</dt>
                   18642: 
                   18643:    <dd>
                   18644: 
                   18645:     <p>Returns the kind of operation that is currently selected. If
                   18646:     the kind of operation isn't one of those that is allowed by the
                   18647:     <code title="dom-DataTransfer-effectAllowed"><a href="#dom-datatransfer-effectallowed">effectAllowed</a></code>
                   18648:     attribute, then the operation will fail.</p>
                   18649: 
                   18650:     <p>Can be set, to change the selected operation.</p>
                   18651: 
                   18652:     <p>The possible values are "<code title="">none</code>", "<code title="">copy</code>", "<code title="">link</code>", and "<code title="">move</code>".</p>
                   18653: 
                   18654:    </dd>
                   18655: 
                   18656: 
                   18657:    <dt><var title="">dataTransfer</var> . <code title="dom-DataTransfer-effectAllowed"><a href="#dom-datatransfer-effectallowed">effectAllowed</a></code> [ = <var title="">value</var> ]</dt>
                   18658: 
                   18659:    <dd>
                   18660: 
                   18661:     <p>Returns the kinds of operations that are to be allowed.</p>
                   18662: 
                   18663:     <p>Can be set (during the <code title="event-dragstart"><a href="#event-dragstart">dragstart</a></code> event), to change the
                   18664:     allowed operations.</p>
                   18665: 
                   18666:     <p>The possible values are "<code title="">none</code>", "<code title="">copy</code>", "<code title="">copyLink</code>", "<code title="">copyMove</code>", "<code title="">link</code>", "<code title="">linkMove</code>", "<code title="">move</code>", "<code title="">all</code>", and "<code title="">uninitialized</code>",</p>
                   18667: 
                   18668:    </dd>
                   18669: 
                   18670: 
                   18671:    <dt><var title="">dataTransfer</var> . <code title="dom-DataTransfer-items"><a href="#dom-datatransfer-items">items</a></code></dt>
                   18672: 
                   18673:    <dd>
                   18674: 
                   18675:     <p>Returns a <code><a href="#datatransferitemlist">DataTransferItemList</a></code> object, with the drag data.</p>
                   18676: 
                   18677:    </dd>
                   18678: 
                   18679: 
                   18680:    <dt><var title="">dataTransfer</var> . <code title="dom-DataTransfer-setDragImage"><a href="#dom-datatransfer-setdragimage">setDragImage</a></code>(<var title="">element</var>, <var title="">x</var>, <var title="">y</var>)</dt>
                   18681: 
                   18682:    <dd>
                   18683: 
                   18684:     <p>Uses the given element to update the drag feedback, replacing any previously specified feedback.</p>
                   18685: 
                   18686:    </dd>
                   18687:    
                   18688: 
                   18689:    <dt><var title="">dataTransfer</var> . <code title="dom-DataTransfer-types"><a href="#dom-datatransfer-types">types</a></code></dt>
                   18690: 
                   18691:    <dd>
                   18692: 
                   18693:     <p>Returns an array listing the formats that were set in the <code title="event-dragstart"><a href="#event-dragstart">dragstart</a></code> event. In addition, if
                   18694:     any files are being dragged, then one of the types will be the
                   18695:     string "<code title="">Files</code>".</p>
                   18696: 
                   18697:    </dd>
                   18698: 
                   18699: 
                   18700:    <dt><var title="">data</var> = <var title="">dataTransfer</var> . <code title="dom-DataTransfer-getData"><a href="#dom-datatransfer-getdata">getData</a></code>(<var title="">format</var>)</dt>
                   18701: 
                   18702:    <dd>
                   18703: 
                   18704:     <p>Returns the specified data. If there is no such data, returns the empty string.</p>
                   18705: 
                   18706:    </dd>
                   18707: 
                   18708: 
                   18709:    <dt><var title="">dataTransfer</var> . <code title="dom-DataTransfer-setData"><a href="#dom-datatransfer-setdata">setData</a></code>(<var title="">format</var>, <var title="">data</var>)</dt>
                   18710: 
                   18711:    <dd>
                   18712: 
                   18713:     <p>Adds the specified data.</p>
                   18714: 
                   18715:    </dd>
                   18716: 
                   18717: 
                   18718:    <dt><var title="">dataTransfer</var> . <code title="dom-DataTransfer-clearData"><a href="#dom-datatransfer-cleardata">clearData</a></code>( [ <var title="">format</var> ] )</dt>
                   18719: 
                   18720:    <dd>
                   18721: 
                   18722:     <p>Removes the data of the specified formats. Removes all data if
                   18723:     the argument is omitted.</p>
                   18724: 
                   18725:    </dd>
                   18726: 
                   18727: 
                   18728:    <dt><var title="">dataTransfer</var> . <code title="dom-DataTransfer-files"><a href="#dom-datatransfer-files">files</a></code></dt>
                   18729: 
                   18730:    <dd>
                   18731: 
                   18732:     <p>Returns a <code><a href="infrastructure.html#filelist">FileList</a></code> of the files being dragged, if any.</p>
                   18733: 
                   18734:    </dd>
                   18735: 
                   18736:   </dl><p><code><a href="#datatransfer">DataTransfer</a></code> objects are used during the <a href="#dndevents">drag-and-drop events</a>, and are only valid while
                   18737:   those events are being fired.</p>
                   18738: 
                   18739:   <div class="impl">
                   18740: 
                   18741:   <p>A <code><a href="#datatransfer">DataTransfer</a></code> object is associated with a
                   18742:   <a href="#drag-data-store">drag data store</a> while it is valid.</p>
                   18743: 
                   18744:   <p>The <dfn id="dom-datatransfer-dropeffect" title="dom-DataTransfer-dropEffect"><code>dropEffect</code></dfn>
                   18745:   attribute controls the drag-and-drop feedback that the user is given
                   18746:   during a drag-and-drop operation. When the <code><a href="#datatransfer">DataTransfer</a></code>
                   18747:   object is created, the <code title="dom-DataTransfer-dropEffect"><a href="#dom-datatransfer-dropeffect">dropEffect</a></code> attribute is
                   18748:   set to a string value. On getting, it must return its current value.
                   18749:   On setting, if the new value is one of "<code title="">none</code>",
                   18750:   "<code title="">copy</code>", "<code title="">link</code>", or
                   18751:   "<code title="">move</code>", then the attribute's current value
                   18752:   must be set to the new value. Other values must be ignored.</p>
                   18753: 
                   18754:   <p>The <dfn id="dom-datatransfer-effectallowed" title="dom-DataTransfer-effectAllowed"><code>effectAllowed</code></dfn>
                   18755:   attribute is used in the drag-and-drop processing model to
                   18756:   initialize the <code title="dom-DataTransfer-dropEffect"><a href="#dom-datatransfer-dropeffect">dropEffect</a></code> attribute
                   18757:   during the <code title="event-dragenter"><a href="#event-dragenter">dragenter</a></code> and <code title="event-dragover"><a href="#event-dragover">dragover</a></code> events. When the
                   18758:   <code><a href="#datatransfer">DataTransfer</a></code> object is created, the <code title="dom-DataTransfer-effectAllowed"><a href="#dom-datatransfer-effectallowed">effectAllowed</a></code>
                   18759:   attribute is set to a string value. On getting, it must return its
                   18760:   current value. On setting, if <a href="#drag-data-store">drag data store</a>'s <a href="#drag-data-store-mode" title="drag data store mode">mode</a> is the <a href="#concept-dnd-rw" title="concept-dnd-rw">read/write mode</a> and the new value is
                   18761:   one of "<code title="">none</code>", "<code title="">copy</code>",
                   18762:   "<code title="">copyLink</code>", "<code title="">copyMove</code>",
                   18763:   "<code title="">link</code>", "<code title="">linkMove</code>",
                   18764:   "<code title="">move</code>", "<code title="">all</code>", or "<code title="">uninitialized</code>", then the attribute's current value
                   18765:   must be set to the new value. Otherwise it must be left
                   18766:   unchanged.</p>
                   18767: 
                   18768:   <p>The <dfn id="dom-datatransfer-items" title="dom-DataTransfer-items"><code>items</code></dfn>
                   18769:   attribute must return a <code><a href="#datatransferitemlist">DataTransferItemList</a></code> object
                   18770:   associated with the <code><a href="#datatransfer">DataTransfer</a></code> object. The same
                   18771:   object must be returned each time.</p>
                   18772: 
                   18773:   <p>The <dfn id="dom-datatransfer-setdragimage" title="dom-DataTransfer-setDragImage"><code>setDragImage(<var title="">element</var>, <var title="">x</var>, <var title="">y</var>)</code></dfn> method must run the following
                   18774:   steps:</p>
                   18775: 
                   18776:   <ol><li><p>If the <code><a href="#datatransfer">DataTransfer</a></code> object is no longer
                   18777:    associated with a <a href="#drag-data-store">drag data store</a>, abort these steps.
                   18778:    Nothing happens.</p></li>
                   18779: 
                   18780:    <li><p>If the <a href="#drag-data-store">drag data store</a>'s <a href="#drag-data-store-mode" title="drag data
                   18781:    store mode">mode</a> is not the <a href="#concept-dnd-rw" title="concept-dnd-rw">read/write mode</a>, abort these steps.
                   18782:    Nothing happens.</p></li>
                   18783: 
                   18784:    <li><p>If the <var title="">element</var> argument is an
                   18785:    <code><a href="the-img-element.html#the-img-element">img</a></code> element, then set the <a href="#drag-data-store-bitmap">drag data store
                   18786:    bitmap</a> to the element's image (at its intrinsic size);
                   18787:    otherwise, set the <a href="#drag-data-store-bitmap">drag data store bitmap</a> to an image
                   18788:    generated from the given element (the exact mechanism for doing so
                   18789:    is not currently specified).</p></li>
                   18790: 
                   18791:    <li><p>Set the <a href="#drag-data-store-hot-spot-coordinate">drag data store hot spot coordinate</a> to
                   18792:    the given <var title="">x</var>, <var title="">y</var>
                   18793:    coordinate.</p></li>
                   18794: 
                   18795:   </ol><p>The <dfn id="dom-datatransfer-types" title="dom-DataTransfer-types"><code>types</code></dfn>
                   18796:   attribute must return a <a href="infrastructure.html#live">live</a> <a href="infrastructure.html#dfn-read-only-array" title="dfn-read-only-array">read only</a> array giving the
                   18797:   strings that the following steps would produce. The same object must
                   18798:   be returned each time.</p>
                   18799: 
                   18800:   <ol><li><p>Start with an empty list <var title="">L</var>.</p></li>
                   18801: 
                   18802:    <li><p>If the <code><a href="#datatransfer">DataTransfer</a></code> object is no longer
                   18803:    associated with a <a href="#drag-data-store">drag data store</a>, the array is empty.
                   18804:    Abort these steps; return the empty list <var title="">L</var>.</p></li>
                   18805: 
                   18806:    <li><p>For each item in the <a href="#drag-data-store-item-list">drag data store item list</a>
                   18807:    <!-- in some order...? --> whose <a href="#the-drag-data-item-kind" title="the drag data item
                   18808:    kind">kind</a> is <i>Plain Unicode string</i>, add an entry to
                   18809:    the list <var title="">L</var> consisting of the item's <a href="#the-drag-data-item-type-string" title="the drag data item type string">type string</a>.</p></li>
                   18810: 
                   18811:    <li><p>If there are any items in the <a href="#drag-data-store-item-list">drag data store item
                   18812:    list</a> whose <a href="#the-drag-data-item-kind" title="the drag data item kind">kind</a>
                   18813:    is <i><a href="infrastructure.html#file">File</a></i>, then add an entry to the list <var title="">L</var>
                   18814:    consisting of the string "<code title="">Files</code>". (This value
                   18815:    can be distinguished from the other values because it is not
                   18816:    lowercase.)</p></li>
                   18817: 
                   18818:    <!-- <li><p>Sort the list...?</p></li> -->
                   18819: 
                   18820:    <li><p>The strings produced by these steps are those in the list
                   18821:    <var title="">L</var>.</p></li>
                   18822: 
                   18823:   </ol><p>The <dfn id="dom-datatransfer-getdata" title="dom-DataTransfer-getData"><code>getData(<var title="">format</var>)</code></dfn> method
                   18824:   must run the following steps:</p>
                   18825: 
                   18826:   <ol><li><p>If the <code><a href="#datatransfer">DataTransfer</a></code> object is no longer
                   18827:    associated with a <a href="#drag-data-store">drag data store</a>, return the empty
                   18828:    string and abort these steps.</p></li>
                   18829: 
                   18830:    <li><p>If the <a href="#drag-data-store">drag data store</a>'s <a href="#drag-data-store-mode" title="drag data
                   18831:    store mode">mode</a> is the <a href="#concept-dnd-p" title="concept-dnd-p">protected mode</a>, return the empty
                   18832:    string and abort these steps.</p></li>
                   18833: 
                   18834:    <li><p>Let <var title="">format</var> be the first argument,
                   18835:    <a href="infrastructure.html#converted-to-ascii-lowercase">converted to ASCII lowercase</a>.</p></li>
                   18836: 
                   18837:    <li><p>Let <var title="">convert-to-URL</var> be false.</p></li>
                   18838: 
                   18839:    <li><p>If <var title="">format</var> equals "<code title="">text</code>", change it to "<code title="">text/plain</code>".</p></li>
                   18840: 
                   18841:    <li><p>If <var title="">format</var> equals "<code title="">url</code>", change it to "<code title="">text/uri-list</code>" and set <var title="">convert-to-URL</var> to true.</p></li>
                   18842: 
                   18843:    <li><p>If there is no item in the <a href="#drag-data-store-item-list">drag data store item
                   18844:    list</a> whose <a href="#the-drag-data-item-kind" title="the drag data item kind">kind</a>
                   18845:    is <i>Plain Unicode string</i> and whose <a href="#the-drag-data-item-type-string" title="the drag data
                   18846:    item type string">type string</a> is equal to <var title="">format</var>, return the empty string and abort these
                   18847:    steps.</p></li>
                   18848: 
                   18849:    <li><p>Let <var title="">result</var> be the data of the item
                   18850:    in the <a href="#drag-data-store-item-list">drag data store item list</a> whose <a href="#the-drag-data-item-kind" title="the drag data item kind">kind</a> is <i>Plain Unicode
                   18851:    string</i> and whose <a href="#the-drag-data-item-type-string" title="the drag data item type
                   18852:    string">type string</a> is equal to <var title="">format</var>.</p></li>
                   18853: 
                   18854:    <li><p>If <var title="">convert-to-URL</var> is true, then parse
                   18855:    <var title="">result</var> as appropriate for <code title="">text/uri-list</code> data, and then set <var title="">result</var> to the first URL from the list, if any, or
                   18856:    the empty string otherwise. <a href="#refsRFC2483">[RFC2483]</a></p></li>
                   18857: 
                   18858:    <li><p>Return <var title="">result</var>.</p></li>
                   18859: 
                   18860:   </ol><p>The <dfn id="dom-datatransfer-setdata" title="dom-DataTransfer-setData"><code>setData(<var title="">format</var>, <var title="">data</var>)</code></dfn> method
                   18861:   must run the following steps:</p>
                   18862: 
                   18863:   <ol><li><p>If the <code><a href="#datatransfer">DataTransfer</a></code> object is no longer
                   18864:    associated with a <a href="#drag-data-store">drag data store</a>, abort these steps.
                   18865:    Nothing happens.</p></li>
                   18866: 
                   18867:    <li><p>If the <a href="#drag-data-store">drag data store</a>'s <a href="#drag-data-store-mode" title="drag data
                   18868:    store mode">mode</a> is not the <a href="#concept-dnd-rw" title="concept-dnd-rw">read/write mode</a>, abort these steps.
                   18869:    Nothing happens.</p></li>
                   18870: 
                   18871:    <li><p>Let <var title="">format</var> be the first argument,
                   18872:    <a href="infrastructure.html#converted-to-ascii-lowercase">converted to ASCII lowercase</a>.</p></li>
                   18873: 
                   18874:    <li>
                   18875: 
                   18876:     <p>If <var title="">format</var> equals "<code title="">text</code>", change it to "<code title="">text/plain</code>".</p>
                   18877: 
                   18878:     <p>If <var title="">format</var> equals "<code title="">url</code>", change it to "<code title="">text/uri-list</code>".</p>
                   18879: 
                   18880:    </li>
                   18881: 
                   18882:    <li><p>Remove the item in the <a href="#drag-data-store-item-list">drag data store item
                   18883:    list</a> whose <a href="#the-drag-data-item-kind" title="the drag data item kind">kind</a>
                   18884:    is <i>Plain Unicode string</i> and whose <a href="#the-drag-data-item-type-string" title="the drag data
                   18885:    item type string">type string</a> is equal to <var title="">format</var>, if there is one.</p></li>
                   18886: 
                   18887:    <li><p>Add an item to the <a href="#drag-data-store-item-list">drag data store item list</a>
                   18888:    whose <a href="#the-drag-data-item-kind" title="the drag data item kind">kind</a> is <i>Plain
                   18889:    Unicode string</i>, whose <a href="#the-drag-data-item-type-string" title="the drag data item type
                   18890:    string">type string</a> is equal to <var title="">format</var>,
                   18891:    and whose data is the string given by the method's second
                   18892:    argument.</p></li>
                   18893: 
                   18894:   </ol><p>The <dfn id="dom-datatransfer-cleardata" title="dom-DataTransfer-clearData"><code>clearData()</code></dfn>
                   18895:   method must run the following steps:</p>
                   18896: 
                   18897:   <ol><li><p>If the <code><a href="#datatransfer">DataTransfer</a></code> object is no longer
                   18898:    associated with a <a href="#drag-data-store">drag data store</a>, abort these steps.
                   18899:    Nothing happens.</p></li>
                   18900: 
                   18901:    <li><p>If the <a href="#drag-data-store">drag data store</a>'s <a href="#drag-data-store-mode" title="drag data
                   18902:    store mode">mode</a> is not the <a href="#concept-dnd-rw" title="concept-dnd-rw">read/write mode</a>, abort these steps.
                   18903:    Nothing happens.</p></li>
                   18904: 
                   18905:    <li><p>If the method was called with no arguments, remove each item
                   18906:    in the <a href="#drag-data-store-item-list">drag data store item list</a> whose <a href="#the-drag-data-item-kind" title="the drag data item kind">kind</a> is <i>Plain Unicode
                   18907:    string</i>, and abort these steps.</p></li>
                   18908: 
                   18909:    <li><p>Let <var title="">format</var> be the first argument,
                   18910:    <a href="infrastructure.html#converted-to-ascii-lowercase">converted to ASCII lowercase</a>.</p></li>
                   18911: 
                   18912:    <li>
                   18913: 
                   18914:     <p>If <var title="">format</var> equals "<code title="">text</code>", change it to "<code title="">text/plain</code>".</p>
                   18915: 
                   18916:     <p>If <var title="">format</var> equals "<code title="">url</code>", change it to "<code title="">text/uri-list</code>".</p>
                   18917: 
                   18918:    </li>
                   18919: 
                   18920:    <li><p>Remove the item in the <a href="#drag-data-store-item-list">drag data store item
                   18921:    list</a> whose <a href="#the-drag-data-item-kind" title="the drag data item kind">kind</a>
                   18922:    is <i>Plain Unicode string</i> and whose <a href="#the-drag-data-item-type-string" title="the drag data
                   18923:    item type string">type string</a> is equal to <var title="">format</var>, if there is one.</p></li>
                   18924: 
                   18925:   </ol><p class="note">The <code title="dom-DataTransfer-clearData"><a href="#dom-datatransfer-cleardata">clearData()</a></code> method does
                   18926:   not affect whether any files were included in the drag, so the <code title="dom-DataTransfer-types"><a href="#dom-datatransfer-types">types</a></code> attribute's list might
                   18927:   still not be empty after calling <code title="dom-DataTransfer-clearData"><a href="#dom-datatransfer-cleardata">clearData()</a></code> (it would
                   18928:   still contain the "<code title="">Files</code>" string if any files
                   18929:   were included in the drag).</p>
                   18930: 
                   18931:   <p>The <dfn id="dom-datatransfer-files" title="dom-DataTransfer-files"><code>files</code></dfn>
                   18932:   attribute must return a <a href="infrastructure.html#live">live</a> <code><a href="infrastructure.html#filelist">FileList</a></code>
                   18933:   sequence consisting of <code><a href="infrastructure.html#file">File</a></code> objects representing the
                   18934:   files found by the following steps. The same object must be returned
                   18935:   each time. Furthermore, for a given <code><a href="infrastructure.html#filelist">FileList</a></code> object and
                   18936:   a given underlying file, the same <code><a href="infrastructure.html#file">File</a></code> object must be
                   18937:   used each time.</p>
                   18938: 
                   18939:   <ol><li><p>Start with an empty list <var title="">L</var>.</p></li>
                   18940: 
                   18941:    <li><p>If the <code><a href="#datatransfer">DataTransfer</a></code> object is no longer
                   18942:    associated with a <a href="#drag-data-store">drag data store</a>, the
                   18943:    <code><a href="infrastructure.html#filelist">FileList</a></code> is empty. Abort these steps; return the
                   18944:    empty list <var title="">L</var>.</p></li>
                   18945: 
                   18946:    <li><p>If the <a href="#drag-data-store">drag data store</a>'s <a href="#drag-data-store-mode" title="drag data
                   18947:    store mode">mode</a> is the <a href="#concept-dnd-p" title="concept-dnd-p">protected mode</a>, abort these steps;
                   18948:    return the empty list <var title="">L</var>.</p></li>
                   18949: 
                   18950:    <li><p>For each item in the <a href="#drag-data-store-item-list">drag data store item list</a>
                   18951:    <!-- in some order...? --> whose <a href="#the-drag-data-item-kind" title="the drag data item
                   18952:    kind">kind</a> is <i><a href="infrastructure.html#file">File</a></i> <!-- DND-v3: (not <i>Blob</i>) -->,
                   18953:    add the item's data (the file, in particular its name and contents,
                   18954:    as well as its <a href="#the-drag-data-item-type-string" title="the drag data item type
                   18955:    string">type</a>) to the list <var title="">L</var>.</p></li>
                   18956: 
                   18957:    <!-- <li><p>Sort the list...?</p></li> -->
                   18958: 
                   18959:    <li><p>The files found by these steps are those in the list <var title="">L</var>.</p></li>
                   18960: 
                   18961:   </ol><p class="note">This version of the API does not expose the types of
                   18962:   the files during the drag.</p>
                   18963: 
                   18964:   </div>
                   18965: 
                   18966: 
                   18967:   <h5 id="the-datatransferitemlist-interface"><span class="secno">7.7.3.1 </span>The <code><a href="#datatransferitemlist">DataTransferItemList</a></code> interface</h5>
                   18968: 
                   18969:   <p>Each <code><a href="#datatransfer">DataTransfer</a></code> object is associated with a
                   18970:   <code><a href="#datatransferitemlist">DataTransferItemList</a></code> object.</p>
                   18971: 
                   18972:   <pre class="idl">interface <dfn id="datatransferitemlist">DataTransferItemList</dfn> {
                   18973:   readonly attribute unsigned long <a href="#dom-datatransferitemlist-length" title="dom-DataTransferItemList-length">length</a>;
                   18974:   <a href="#dom-datatransferitemlist-item" title="dom-DataTransferItemList-item">getter</a> <a href="#datatransferitem">DataTransferItem</a> (unsigned long index);
                   18975:   <a href="#dom-datatransferitemlist-removeitem" title="dom-DataTransferItemList-removeItem">deleter</a> void (unsigned long index);
                   18976:   void <a href="#dom-datatransferitemlist-clear" title="dom-DataTransferItemList-clear">clear</a>();
                   18977: 
                   18978:   <a href="#datatransferitem">DataTransferItem</a>? <a href="#dom-datatransferitemlist-add" title="dom-DataTransferItemList-add">add</a>(DOMString data, DOMString type);<!--
                   18979: DND-v3:  <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(<span>Blob</span> data);-->
                   18980:   <a href="#datatransferitem">DataTransferItem</a>? <a href="#dom-datatransferitemlist-add" title="dom-DataTransferItemList-add">add</a>(<a href="infrastructure.html#file">File</a> data);<!--
                   18981: DND-v4:  <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(any data, DOMString type);--><!--
                   18982: DND-v5:  <span>DataTransferItem</span>? <span title="dom-DataTransferItemList-add">add</span>(<span>DataTransferPromise</span> data);-->
                   18983: };</pre>
                   18984: 
                   18985:   <dl class="domintro"><dt><var title="">items</var> . <code title="dom-DataTransferItemList-length"><a href="#dom-datatransferitemlist-length">length</a></code></dt>
                   18986: 
                   18987:    <dd><p>Returns the number of items in the <a href="#drag-data-store">drag data store</a>.</p></dd>
                   18988: 
                   18989: 
                   18990:    <dt><var title="">items</var>[<var title="">index</var>]</dt>
                   18991: 
                   18992:    <dd>
                   18993: 
                   18994:     <p>Returns the <code><a href="#datatransferitem">DataTransferItem</a></code> object representing the <var title="">index</var>th entry in the <a href="#drag-data-store">drag data store</a>.</p>
                   18995: 
                   18996:    </dd>
                   18997: 
                   18998: 
                   18999:    <dt><code title="">delete</code> <var title="">items</var>[<var title="">index</var>]</dt>
                   19000: 
                   19001:    <dd>
                   19002: 
                   19003:     <p>Removes the <var title="">index</var>th entry in the <a href="#drag-data-store">drag data store</a>.</p>
                   19004: 
                   19005:    </dd>
                   19006: 
                   19007: 
                   19008:    <dt><var title="">items</var> . <code title="dom-DataTransferItemList-clear"><a href="#dom-datatransferitemlist-clear">clear</a></code>()</dt>
                   19009: 
                   19010:    <dd>
                   19011: 
                   19012:     <p>Removes all the entries in the <a href="#drag-data-store">drag data store</a>.</p>
                   19013: 
                   19014:    </dd>
                   19015: 
                   19016: 
                   19017:    <dt><var title="">items</var> . <code title="dom-DataTransferItemList-add"><a href="#dom-datatransferitemlist-add">add</a></code>(<var title="">data</var>)</dt>
                   19018:    <dt><var title="">items</var> . <code title="dom-DataTransferItemList-add"><a href="#dom-datatransferitemlist-add">add</a></code>(<var title="">data</var>, <var title="">type</var>)</dt>
                   19019: 
                   19020:    <dd>
                   19021: 
                   19022:     <p>Adds a new entry for the given data to the <a href="#drag-data-store">drag data
                   19023:     store</a>. If the data is plain text <!-- DND-v4: or an object -->
                   19024:     then a <var title="">type</var> string has to be provided
                   19025:     also.</p>
                   19026: 
                   19027:    </dd>
                   19028: 
                   19029:   </dl><div class="impl">
                   19030: 
                   19031:   <p>While the <code><a href="#datatransferitemlist">DataTransferItemList</a></code> object's
                   19032:   <code><a href="#datatransfer">DataTransfer</a></code> object is associated with a <a href="#drag-data-store">drag
                   19033:   data store</a>, the <code><a href="#datatransferitemlist">DataTransferItemList</a></code> object's
                   19034:   <i>mode</i> is the same as the <a href="#drag-data-store-mode">drag data store mode</a>.
                   19035:   When the <code><a href="#datatransferitemlist">DataTransferItemList</a></code> object's
                   19036:   <code><a href="#datatransfer">DataTransfer</a></code> object is <em>not</em> associated with a
                   19037:   <a href="#drag-data-store">drag data store</a>, the <code><a href="#datatransferitemlist">DataTransferItemList</a></code>
                   19038:   object's <i>mode</i> is the <i>disabled mode</i>. The <a href="#drag-data-store">drag
                   19039:   data store</a> referenced in this section (which is used only
                   19040:   when the <code><a href="#datatransferitemlist">DataTransferItemList</a></code> object is not in the
                   19041:   <i>disabled mode</i>) is the <a href="#drag-data-store">drag data store</a> with which
                   19042:   the <code><a href="#datatransferitemlist">DataTransferItemList</a></code> object's
                   19043:   <code><a href="#datatransfer">DataTransfer</a></code> object is associated.</p>
                   19044: 
                   19045:   <p>The <dfn id="dom-datatransferitemlist-length" title="dom-DataTransferItemList-length"><code>length</code></dfn>
                   19046:   attribute must return zero if the object is in the <i>disabled
                   19047:   mode</i>; otherwise it must return the number of items in the
                   19048:   <a href="#drag-data-store-item-list">drag data store item list</a>.</p>
                   19049: 
                   19050:   <p>When a <code><a href="#datatransferitemlist">DataTransferItemList</a></code> object is not in the
                   19051:   <i>disabled mode</i>, its <a href="infrastructure.html#supported-property-indices">supported property indices</a>
                   19052:   are the numbers in the range
                   19053: 
                   19054:     <span title="">0 .. <var title="">n</var>-1</span>,
                   19055: 
                   19056:   where <var title="">n</var> is the number of items in the <a href="#drag-data-store-item-list">drag
                   19057:   data store item list</a>.</p>
                   19058: 
                   19059:   <p>To <dfn id="dom-datatransferitemlist-item" title="dom-DataTransferItemList-item">determine the value of
                   19060:   an indexed property</dfn> <var title="">i</var> of a
                   19061:   <code><a href="#datatransferitemlist">DataTransferItemList</a></code> object, the user agent must return a
                   19062:   <code><a href="#datatransferitem">DataTransferItem</a></code> object representing the <var title="">i</var>th item in the <a href="#drag-data-store">drag data store</a>. The
                   19063:   same object must be returned each time a particular item is obtained
                   19064:   from this <code><a href="#datatransferitemlist">DataTransferItemList</a></code> object. The
                   19065:   <code><a href="#datatransferitem">DataTransferItem</a></code> object must be associated with the
                   19066:   same <code><a href="#datatransfer">DataTransfer</a></code> object as the
                   19067:   <code><a href="#datatransferitemlist">DataTransferItemList</a></code> object when it is first created.</p>
                   19068: 
                   19069:   <p>To <dfn id="dom-datatransferitemlist-removeitem" title="dom-DataTransferItemList-removeItem">delete an
                   19070:   existing indexed property</dfn> <var title="">i</var> of a
                   19071:   <code><a href="#datatransferitemlist">DataTransferItemList</a></code> object, the user agent must run these
                   19072:   steps:</p>
                   19073: 
                   19074:   <ol><li><p>If the <code><a href="#datatransferitemlist">DataTransferItemList</a></code> object is not in the
                   19075:    <i title="concept-dnd-rw"><a href="#concept-dnd-rw">read/write mode</a></i>, throw an
                   19076:    <code><a href="infrastructure.html#invalidstateerror">InvalidStateError</a></code> exception and abort these
                   19077:    steps.</p></li>
                   19078: 
                   19079:    <li><p>Remove the <var title="">i</var>th item from the <a href="#drag-data-store">drag
                   19080:    data store</a>.</p></li>
                   19081: 
                   19082:   </ol><p>The <dfn id="dom-datatransferitemlist-clear" title="dom-DataTransferItemList-clear"><code>clear</code></dfn> method,
                   19083:   if the <code><a href="#datatransferitemlist">DataTransferItemList</a></code> object is in the <i title="concept-dnd-rw"><a href="#concept-dnd-rw">read/write mode</a></i>, must remove all the
                   19084:   items from the <a href="#drag-data-store">drag data store</a>. Otherwise, it must do
                   19085:   nothing.</p>
                   19086: 
                   19087:   <p>The <dfn id="dom-datatransferitemlist-add" title="dom-DataTransferItemList-add"><code>add()</code></dfn> method
                   19088:   must run the following steps:</p>
                   19089: 
                   19090:   <ol><li><p>If the <code><a href="#datatransferitemlist">DataTransferItemList</a></code> object is not in the
                   19091:    <i title="concept-dnd-rw"><a href="#concept-dnd-rw">read/write mode</a></i>, return null and
                   19092:    abort these steps.</p></li>
                   19093: 
                   19094:    <li>
                   19095: 
                   19096:     <p>Jump to the appropriate set of steps from the following list:</p>
                   19097: 
                   19098:     <dl class="switch"><dt>If the first argument to the method is a string</dt>
                   19099: 
                   19100:      <dd>
                   19101: 
                   19102:       <p>If there is already an item in the <a href="#drag-data-store-item-list">drag data store item
                   19103:       list</a> whose <a href="#the-drag-data-item-kind" title="the drag data item
                   19104:       kind">kind</a> is <i>Plain Unicode string</i> and whose <a href="#the-drag-data-item-type-string" title="the drag data item type string">type string</a> is
                   19105:       equal to the value of the method's second argument,
                   19106:       <a href="infrastructure.html#converted-to-ascii-lowercase">converted to ASCII lowercase</a>, then throw a
                   19107:       <code><a href="infrastructure.html#notsupportederror">NotSupportedError</a></code> exception and abort these
                   19108:       steps.</p>
                   19109: 
                   19110:       <p>Otherwise, add an item to the <a href="#drag-data-store-item-list">drag data store item
                   19111:       list</a> whose <a href="#the-drag-data-item-kind" title="the drag data item
                   19112:       kind">kind</a> is <i>Plain Unicode string</i>, whose <a href="#the-drag-data-item-type-string" title="the drag data item type string">type string</a> is
                   19113:       equal to the value of the method's second argument,
                   19114:       <a href="infrastructure.html#converted-to-ascii-lowercase">converted to ASCII lowercase</a>, and whose data is the
                   19115:       string given by the method's first argument.</p>
                   19116: 
                   19117:      </dd>
                   19118: 
                   19119: <!--DND-v3:
                   19120:      <dt>If the first argument to the method is a <code>Blob</code></dt>
                   19121: 
                   19122:      <dd>
                   19123: 
                   19124:       <p>Add an item to the <span>drag data store item list</span>
                   19125:       whose <span title="the drag data item kind">kind</span> is
                   19126:       <i>Blob</i>, whose <span title="the drag data item type
                   19127:       string">type string</span> is the <code
                   19128:       title="dom-Blob-type">type</code> of the <code>Blob</code>,
                   19129:       <span>converted to ASCII lowercase</span>, and whose data is the
                   19130:       same as the <code>Blob</code>'s data.</p>
                   19131: 
                   19132:      </dd>
                   19133: -->
                   19134: 
                   19135:      <dt>If the first argument to the method is a <code><a href="infrastructure.html#file">File</a></code></dt>
                   19136: 
                   19137:      <dd>
                   19138: 
                   19139:       <p>Add an item to the <a href="#drag-data-store-item-list">drag data store item list</a>
                   19140:       whose <a href="#the-drag-data-item-kind" title="the drag data item kind">kind</a> is
                   19141:       <i><a href="infrastructure.html#file">File</a></i>, whose <a href="#the-drag-data-item-type-string" title="the drag data item type
                   19142:       string">type string</a> is the <code title="dom-Blob-type">type</code> of the <code><a href="infrastructure.html#file">File</a></code>,
                   19143:       <a href="infrastructure.html#converted-to-ascii-lowercase">converted to ASCII lowercase</a>, and whose data is the
                   19144:       same as the <code><a href="infrastructure.html#file">File</a></code>'s data.</p>
                   19145: 
                   19146:      </dd>
                   19147: 
                   19148: <!--DND-v4: (might want to prevent duplicates like for strings; see above)
                   19149: [make sure that the cloning happens before any side-effects can happen]
                   19150:      <dt>Otherwise
                   19151: 
                   19152:      <dd>
                   19153: 
                   19154:       <p>Add an item to the <span>drag data store item list</span>
                   19155:       whose <span title="the drag data item kind">kind</span> is
                   19156:       <i>Object</i>, whose <span title="the drag data item type
                   19157:       string">type string</span> is equal to the value of the method's
                   19158:       second argument, <span>converted to ASCII lowercase</span>, and
                   19159:       whose data is a <span>structured clone</span> of the method's
                   19160:       first argument. If creating the clone throws an exception, then
                   19161:       throw that exception and abort these steps.</p>
                   19162: 
                   19163:      </dd>
                   19164: -->
                   19165: 
                   19166:     </dl></li>
                   19167: 
                   19168:    <li><p><a href="#dom-datatransferitemlist-item" title="dom-DataTransferItemList-item">Determine the value
                   19169:    of the indexed property</a> corresponding to the newly added
                   19170:    item, and return that value (a newly created
                   19171:    <code><a href="#datatransferitem">DataTransferItem</a></code> object).</p></li>
                   19172: 
                   19173:   </ol></div>
                   19174: 
                   19175: 
                   19176:   <h5 id="the-datatransferitem-interface"><span class="secno">7.7.3.2 </span>The <code><a href="#datatransferitem">DataTransferItem</a></code> interface</h5>
                   19177: 
                   19178:   <p>Each <code><a href="#datatransferitem">DataTransferItem</a></code> object is associated with a
                   19179:   <code><a href="#datatransfer">DataTransfer</a></code> object.</p>
                   19180: 
                   19181:   <pre class="idl">interface <dfn id="datatransferitem">DataTransferItem</dfn> {
                   19182:   readonly attribute DOMString <a href="#dom-datatransferitem-kind" title="dom-DataTransferItem-kind">kind</a>;
                   19183:   readonly attribute DOMString <a href="#dom-datatransferitem-type" title="dom-DataTransferItem-type">type</a>;
                   19184:   void <a href="#dom-datatransferitem-getasstring" title="dom-DataTransferItem-getAsString">getAsString</a>(<a href="#functionstringcallback">FunctionStringCallback</a>? _callback);<!--
                   19185: DND-v3:  <span>Blob</span> <span title="dom-DataTransferItem-getAsBlob">getAsBlob</span>();-->
                   19186:   <a href="infrastructure.html#file">File</a>? <a href="#dom-datatransferitem-getasfile" title="dom-DataTransferItem-getAsFile">getAsFile</a>();<!--
                   19187: DND-v4:  void <span title="dom-DataTransferItem-getAsObject">getAsObject</span>(<span>FunctionObjectCallback</span> _callback);-->
                   19188: };
                   19189: 
                   19190: [Callback, NoInterfaceObject]
                   19191: interface <dfn id="functionstringcallback">FunctionStringCallback</dfn> {
                   19192:   void <span title="dom-FunctionStringCallback-handleEvent">handleEvent</span>(DOMString data);
                   19193: };<!--
                   19194: 
                   19195: // DND-v4:
                   19196: [Callback, NoInterfaceObject]
                   19197: interface <dfn>FunctionObjectCallback</dfn> {
                   19198:   void <span title="dom-FunctionObjectCallback-handleEvent">handleEvent</span>(any data);
                   19199: };--></pre>
                   19200: 
                   19201:   <dl class="domintro"><dt><var title="">item</var> . <code title="dom-DataTransferItem-kind"><a href="#dom-datatransferitem-kind">kind</a></code></dt>
                   19202:    <dd>
                   19203: 
                   19204:     <p>Returns <a href="#the-drag-data-item-kind">the drag data item kind</a>, one of: "string",
                   19205:     <!-- DND-v3: "blob", --> "file"<!-- DND-v4: , "object" -->.</p>
                   19206: 
                   19207:    </dd>
                   19208: 
                   19209:    <dt><var title="">item</var> . <code title="dom-DataTransferItem-type"><a href="#dom-datatransferitem-type">type</a></code></dt>
                   19210:    <dd>
                   19211: 
                   19212:     <p>Returns <a href="#the-drag-data-item-type-string">the drag data item type string</a>.</p>
                   19213: 
                   19214:    </dd>
                   19215: 
                   19216:    <dt><var title="">item</var> . <code title="dom-DataTransferItem-getAsString"><a href="#dom-datatransferitem-getasstring">getAsString</a></code>(<var title="">callback</var>)</dt>
                   19217:    <dd>
                   19218: 
                   19219:     <p>Invokes the callback with the string data as the argument, if <a href="#the-drag-data-item-kind">the drag data item kind</a> is <i>Plain Unicode string</i>.</p>
                   19220: 
                   19221:    </dd>
                   19222: 
                   19223: <!-- DND-v3:
                   19224:    <dt><var title="">file</var> = <var title="">item</var> . <code title="dom-DataTransferItem-getAsBlob">getAsBlob</code>()</dt>
                   19225:    <dd>
                   19226: 
                   19227:     <p>Returns a <code>Blob</code> object, if <span>the drag data item kind</span> is <i>Blob</i> or <i>File</i>.</p>
                   19228: 
                   19229:    </dd>
                   19230: -->
                   19231: 
                   19232:    <dt><var title="">file</var> = <var title="">item</var> . <code title="dom-DataTransferItem-getAsFile"><a href="#dom-datatransferitem-getasfile">getAsFile</a></code>()</dt>
                   19233:    <dd>
                   19234: 
                   19235:     <p>Returns a <code><a href="infrastructure.html#file">File</a></code> object, if <a href="#the-drag-data-item-kind">the drag data item kind</a> is <i><a href="infrastructure.html#file">File</a></i>.</p>
                   19236: 
                   19237:    </dd>
                   19238: 
                   19239: <!-- DND-v4:
                   19240:    <dt><var title="">file</var> = <var title="">item</var> . <code title="dom-DataTransferItem-getAsObject">getAsObject</code>()</dt>
                   19241:    <dd>
                   19242: 
                   19243:     <p>Invokes the callback with the cloned object data as the argument, if <span>the drag data item kind</span> is <i>Plain Unicode string</i> or <i>Object</i>.</p>
                   19244: 
                   19245:    </dd>
                   19246: -->
                   19247: 
                   19248:   </dl><div class="impl">
                   19249: 
                   19250:   <p>While the <code><a href="#datatransferitem">DataTransferItem</a></code> object's
                   19251:   <code><a href="#datatransfer">DataTransfer</a></code> object is associated with a <a href="#drag-data-store">drag
                   19252:   data store</a> and that <a href="#drag-data-store">drag data store</a>'s <a href="#drag-data-store-item-list">drag
                   19253:   data store item list</a> still contains the item that the
                   19254:   <code><a href="#datatransferitem">DataTransferItem</a></code> object represents, the
                   19255:   <code><a href="#datatransferitem">DataTransferItem</a></code> object's <i>mode</i> is the same as
                   19256:   the <a href="#drag-data-store-mode">drag data store mode</a>. When the
                   19257:   <code><a href="#datatransferitem">DataTransferItem</a></code> object's <code><a href="#datatransfer">DataTransfer</a></code>
                   19258:   object is <em>not</em> associated with a <a href="#drag-data-store">drag data
                   19259:   store</a>, or if the item that the <code><a href="#datatransferitem">DataTransferItem</a></code>
                   19260:   object represents has been removed from the relevant <a href="#drag-data-store-item-list">drag data
                   19261:   store item list</a>, the <code><a href="#datatransferitem">DataTransferItem</a></code> object's
                   19262:   <i>mode</i> is the <i>disabled mode</i>. The <a href="#drag-data-store">drag data
                   19263:   store</a> referenced in this section (which is used only when the
                   19264:   <code><a href="#datatransferitem">DataTransferItem</a></code> object is not in the <i>disabled
                   19265:   mode</i>) is the <a href="#drag-data-store">drag data store</a> with which the
                   19266:   <code><a href="#datatransferitem">DataTransferItem</a></code> object's <code><a href="#datatransfer">DataTransfer</a></code>
                   19267:   object is associated.</p>
                   19268: 
                   19269:   <p>The <dfn id="dom-datatransferitem-kind" title="dom-DataTransferItem-kind"><code>kind</code></dfn> attribute
                   19270:   must return the empty string if the <code><a href="#datatransferitem">DataTransferItem</a></code>
                   19271:   object is in the <i>disabled mode</i>; otherwise it must return the
                   19272:   string given in the cell from the second column of the following
                   19273:   table from the row whose cell in the first column contains <a href="#the-drag-data-item-kind">the
                   19274:   drag data item kind</a> of the item represented by the
                   19275:   <code><a href="#datatransferitem">DataTransferItem</a></code> object:</p>
                   19276: 
                   19277:   <table><thead><tr><th> Kind </th><th> String
                   19278:    </th></tr></thead><tbody><tr><td> <i>Plain Unicode string</i> </td><td> "<code title="">string</code>"
                   19279: <!-- DND-v3:    <tr> <td> <i>Blob</i> <td> "<code title="">blob</code>"-->
                   19280:     </td></tr><tr><td> <i><a href="infrastructure.html#file">File</a></i> </td><td> "<code title="">file</code>"
                   19281: <!-- DND-v4:    <tr> <td> <i>Object</i> <td> "<code title="">object</code>"-->
                   19282:   </td></tr></tbody></table><p>The <dfn id="dom-datatransferitem-type" title="dom-DataTransferItem-type"><code>type</code></dfn> attribute
                   19283:   must return the empty string if the <code><a href="#datatransferitem">DataTransferItem</a></code>
                   19284:   object is in the <i>disabled mode</i>; otherwise it must return
                   19285:   <a href="#the-drag-data-item-type-string">the drag data item type string</a> of the item represented
                   19286:   by the <code><a href="#datatransferitem">DataTransferItem</a></code> object.</p>
                   19287: 
                   19288:   <p>The <dfn id="dom-datatransferitem-getasstring" title="dom-DataTransferItem-getAsString"><code>getAsString(<var title="">callback</var>)</code></dfn> method must run the following
                   19289:   steps:</p>
                   19290: 
                   19291:   <ol><li><p>If the <var title="">callback</var> is null, abort these
                   19292:    steps.</p></li>
                   19293: 
                   19294:    <li><p>If the <code><a href="#datatransferitem">DataTransferItem</a></code> object is not in the <i title="concept-dnd-rw"><a href="#concept-dnd-rw">read/write mode</a></i> or the <i title="concept-dnd-ro"><a href="#concept-dnd-ro">read-only mode</a></i>, abort these steps. The
                   19295:    callback is never invoked.</p></li>
                   19296: 
                   19297:    <li><p>If <a href="#the-drag-data-item-kind">the drag data item kind</a> is not <i>Plain
                   19298:    Unicode string</i>, abort these steps. The callback is never
                   19299:    invoked.</p></li>
                   19300: 
                   19301:    <li><p>Otherwise, <a href="#queue-a-task">queue a task</a> to invoke <var title="">callback</var>, passing the actual data of the item
                   19302:    represented by the <code><a href="#datatransferitem">DataTransferItem</a></code> object as the
                   19303:    argument.</p></li>
                   19304: 
                   19305:   </ol><!--DND-v3:
                   19306:   <p>The <dfn
                   19307:   title="dom-DataTransferItem-getAsBlob"><code>getAsBlob()</code></dfn>
                   19308:   method must run the following steps:</p>
                   19309: 
                   19310:   <ol>
                   19311: 
                   19312:    <li><p>If the <code>DataTransferItem</code> object is not in the <i
                   19313:    title="concept-dnd-rw">read/write mode</i> or the <i
                   19314:    title="concept-dnd-ro">read-only mode</i>, return null and abort
                   19315:    these steps.</p></li>
                   19316: 
                   19317:    <li>
                   19318: 
                   19319: --><!--DND-v4:
                   19320:     <p>If <span>the drag data item kind</span> is <i>Object</i>,
                   19321:     return null.</p></li>
                   19322: --><!--DND-v3:
                   19323: 
                   19324:     <p>If <span>the drag data item kind</span> is <i>File</i>, then
                   19325:     return a new <code>File</code> object representing the actual data
                   19326:     of the item represented by the <code>DataTransferItem</code>
                   19327:     object.</p>
                   19328: 
                   19329:     <p>If <span>the drag data item kind</span> is <i>Unicode Data
                   19330:     string</i>, then return a new <code>Blob</code> object
                   19331:     representing the actual data of the item represented by the
                   19332:     <code>DataTransferItem</code> object, with the <code
                   19333:     title="dom-Blob-type">type</code> of the <code>Blob</code> being
                   19334:     <span>the drag data item type string</span> and with the binary
                   19335:     data of the <code>Blob</code> object being the Unicode string
                   19336:     encoded as UTF-8. <a href="#refsRFC3629">[RFC3629]</a></p>
                   19337: 
                   19338:     <p>Otherwise, <span>the drag data item kind</span> is <i>Blob</i>;
                   19339:     return a new <code>Blob</code> object representing the actual data
                   19340:     of the item represented by the <code>DataTransferItem</code>
                   19341:     object.</p>
                   19342: 
                   19343:    </li>
                   19344: 
                   19345:   </ol>
                   19346: --><p>The <dfn id="dom-datatransferitem-getasfile" title="dom-DataTransferItem-getAsFile"><code>getAsFile()</code></dfn>
                   19347:   method must run the following steps:</p>
                   19348: 
                   19349:   <ol><li><p>If the <code><a href="#datatransferitem">DataTransferItem</a></code> object is not in the <i title="concept-dnd-rw"><a href="#concept-dnd-rw">read/write mode</a></i> or the <i title="concept-dnd-ro"><a href="#concept-dnd-ro">read-only mode</a></i>, return null and abort
                   19350:    these steps.</p></li>
                   19351: 
                   19352:    <li><p>If <a href="#the-drag-data-item-kind">the drag data item kind</a> is not <i><a href="infrastructure.html#file">File</a></i>,
                   19353:    then return null and abort these steps.</p></li>
                   19354: 
                   19355:    <li><p>Return a new <code><a href="infrastructure.html#file">File</a></code> object representing the
                   19356:    actual data of the item represented by the
                   19357:    <code><a href="#datatransferitem">DataTransferItem</a></code> object.</p>
                   19358: 
                   19359:   </li></ol><!--DND-v4:
                   19360:   <p>The <dfn
                   19361:   title="dom-DataTransferItem-getAsObject"><code>getAsObject(<var
                   19362:   title="">callback</var>)</code></dfn> method must run the following
                   19363:   steps:</p>
                   19364: 
                   19365:   <ol>
                   19366: 
                   19367:    <li><p>If the <code>DataTransferItem</code> object is not in the <i
                   19368:    title="concept-dnd-rw">read/write mode</i> or the <i
                   19369:    title="concept-dnd-ro">read-only mode</i>, return null and abort
                   19370:    these steps.</p></li>
                   19371: 
                   19372:    <li>
                   19373: 
                   19374:     <p>Let <var title="">data</var> be the actual data of the item
                   19375:     represented by the <code>DataTransferItem</code> object.</p>
                   19376: 
                   19377:     <p>If <span>the drag data item kind</span> is <i>Unicode Data
                   19378:     string</i>, then <var title="">data</var> is a <code
                   19379:     title="">DOMString</code> containing the actual data.</p>
                   19380: 
                   19381:     <p>If <span>the drag data item kind</span> is <i>Blob</i>, then
                   19382:     <var title="">data</var> is a <code>Blob</code> representing the
                   19383:     actual data.</p>
                   19384: 
                   19385:     <p>If <span>the drag data item kind</span> is <i>File</i>, then
                   19386:     <var title="">data</var> is a <code>File</code> representing the
                   19387:     actual data.</p>
                   19388: 
                   19389:     <p>If <span>the drag data item kind</span> is <i>Object</i>, then
                   19390:     <var title="">data</var> is the object that is the actual
                   19391:     data.</p>
                   19392: 
                   19393:    </li>
                   19394: 
                   19395:    <li><span>Queue a task</span> to invoke <var
                   19396:    title="">callback</var>, passing a <span>structured clone</span> of
                   19397:    <var title="">data</var> as the argument.</p></li>
                   19398: 
                   19399:   </ol>
                   19400: --></div>
                   19401: 
                   19402: 
                   19403: 
                   19404:   <h4 id="the-dragevent-interface"><span class="secno">7.7.4 </span>The <code><a href="#dragevent">DragEvent</a></code> interface</h4>
                   19405: 
                   19406:   <p>The drag-and-drop processing model involves several events. They
                   19407:   all use the <code><a href="#dragevent">DragEvent</a></code> interface.</p>
                   19408: 
                   19409:   <pre class="idl">[Constructor(DOMString type, optional <a href="#drageventinit">DragEventInit</a> eventInitDict)]
                   19410: interface <dfn id="dragevent">DragEvent</dfn> : <a href="infrastructure.html#mouseevent-10">MouseEvent</a> {
                   19411:   readonly attribute <a href="#datatransfer">DataTransfer</a>? <a href="#dom-dragevent-datatransfer" title="dom-DragEvent-dataTransfer">dataTransfer</a>;
                   19412: };
                   19413: 
                   19414: dictionary <dfn id="drageventinit">DragEventInit</dfn> : <a href="infrastructure.html#eventinit">EventInit</a> {
                   19415:   // Attributes from UIEvent:
                   19416:   <a href="#window">Window</a>? <a href="infrastructure.html#dom-uievent-view" title="dom-UIEvent-view">view</a> = null;
                   19417:   long <a href="infrastructure.html#dom-uievent-detail" title="dom-UIEvent-detail">detail</a> = 0;
                   19418:   // Attributes for MouseEvent:
                   19419:   long <a href="infrastructure.html#dom-mouseevent-screenx" title="dom-MouseEvent-screenX">screenX</a> = 0;
                   19420:   long <a href="infrastructure.html#dom-mouseevent-screeny" title="dom-MouseEvent-screenY">screenY</a> = 0;
                   19421:   long <a href="infrastructure.html#dom-mouseevent-clientx" title="dom-MouseEvent-clientX">clientX</a> = 0;
                   19422:   long <a href="infrastructure.html#dom-mouseevent-clienty" title="dom-MouseEvent-clientY">clientY</a> = 0;
                   19423:   boolean <a href="infrastructure.html#dom-mouseevent-ctrlkey" title="dom-MouseEvent-ctrlKey">ctrlKey</a> = false;
                   19424:   boolean <a href="infrastructure.html#dom-mouseevent-shiftkey" title="dom-MouseEvent-shiftKey">shiftKey</a> = false;
                   19425:   boolean <a href="infrastructure.html#dom-mouseevent-altkey" title="dom-MouseEvent-altKey">altKey</a> = false;
                   19426:   boolean <a href="infrastructure.html#dom-mouseevent-metakey" title="dom-MouseEvent-metaKey">metaKey</a> = false;
                   19427:   unsigned short <a href="infrastructure.html#dom-mouseevent-button" title="dom-MouseEvent-button">button</a> = 0;
                   19428:   unsigned short <a href="infrastructure.html#dom-mouseevent-buttons" title="dom-MouseEvent-buttons">buttons</a> = 0;
                   19429:   EventTarget? <a href="infrastructure.html#dom-mouseevent-relatedtarget" title="dom-MouseEvent-relatedTarget">relatedTarget</a> = null;
                   19430:   // Attributes for <a href="#dragevent">DragEvent</a>:
                   19431:   <a href="#datatransfer">DataTransfer</a>? dataTransfer;
                   19432: };</pre>
                   19433: 
                   19434:   <dl class="domintro"><dt><var title="">event</var> . <code title="dom-DragEvent-dataTransfer"><a href="#dom-dragevent-datatransfer">dataTransfer</a></code></dt>
                   19435: 
                   19436:    <dd>
                   19437: 
                   19438:     <p>Returns the <code><a href="#datatransfer">DataTransfer</a></code> object for the event.</p>
                   19439: 
                   19440:    </dd>
                   19441: 
                   19442:   </dl><div class="impl">
                   19443: 
                   19444:   <p>The <dfn id="dom-dragevent-datatransfer" title="dom-DragEvent-dataTransfer"><code>dataTransfer</code></dfn>
                   19445:   attribute of the <code><a href="#dragevent">DragEvent</a></code> interface must return the
                   19446:   value it was initialized to. When the object is created, this
                   19447:   attribute must be initialized to null. It represents the context
                   19448:   information for the event.</p>
                   19449: 
                   19450:   </div>
                   19451: 
                   19452:   <div class="impl">
                   19453: 
                   19454:   <p>When a user agent is required to <dfn id="fire-a-dnd-event">fire a DND event</dfn>
                   19455:   named <var title="">e</var> at an element, using a particular
                   19456:   <a href="#drag-data-store">drag data store</a>, the user agent must run the following
                   19457:   steps:</p>
                   19458: 
                   19459:   <ol><li>
                   19460: 
                   19461:     <p>If <var title="">e</var> is <code title="event-dragstart"><a href="#event-dragstart">dragstart</a></code>, set the <a href="#drag-data-store-mode">drag data
                   19462:     store mode</a> to the <a href="#concept-dnd-rw" title="concept-dnd-rw">read/write
                   19463:     mode</a>.</p>
                   19464: 
                   19465:     <p>If <var title="">e</var> is <code title="event-drop"><a href="#event-drop">drop</a></code>, set the <a href="#drag-data-store-mode">drag data store
                   19466:     mode</a> to the <a href="#concept-dnd-ro" title="concept-dnd-ro">read-only
                   19467:     mode</a>.</p>
                   19468: 
                   19469:    </li>
                   19470: 
                   19471:    <li><p>Let <var title="">dataTransfer</var> be a newly created
                   19472:    <code><a href="#datatransfer">DataTransfer</a></code> object associated with the given
                   19473:    <a href="#drag-data-store">drag data store</a>.</p></li>
                   19474: 
                   19475:    <li><p id="effectAllowed-initialization">Set the <code title="dom-DataTransfer-effectAllowed"><a href="#dom-datatransfer-effectallowed">effectAllowed</a></code>
                   19476:    attribute to the <a href="#drag-data-store">drag data store</a>'s <a href="#drag-data-store-allowed-effects-state">drag data
                   19477:    store allowed effects state</a>.</p></li>
                   19478: 
                   19479:    <li>
                   19480: 
                   19481:     <p id="dropEffect-initialization">Set the <code title="dom-DataTransfer-dropEffect"><a href="#dom-datatransfer-dropeffect">dropEffect</a></code> attribute to
                   19482:     "<code title="">none</code>" if <var title="">e</var> is <code title="event-dragstart"><a href="#event-dragstart">dragstart</a></code>, <code title="event-drag"><a href="#event-drag">drag</a></code>, or <code title="event-dragleave"><a href="#event-dragleave">dragleave</a></code>; to the value
                   19483:     corresponding to the <a href="#current-drag-operation">current drag operation</a> if <var title="">e</var> is <code title="event-drop"><a href="#event-drop">drop</a></code> or <code title="event-dragend"><a href="#event-dragend">dragend</a></code>; and to a value based on the
                   19484:     <code title="dom-DataTransfer-effectAllowed"><a href="#dom-datatransfer-effectallowed">effectAllowed</a></code>
                   19485:     attribute's value and to the drag-and-drop source, as given by the
                   19486:     following table, otherwise (i.e. if <var title="">e</var> is <code title="event-dragenter"><a href="#event-dragenter">dragenter</a></code> or <code title="event-dragover"><a href="#event-dragover">dragover</a></code>):</p>
                   19487: 
                   19488:     <table><thead><tr><th><code title="dom-DataTransfer-effectAllowed"><a href="#dom-datatransfer-effectallowed">effectAllowed</a></code></th>
                   19489:        <th><code title="dom-DataTransfer-dropEffect"><a href="#dom-datatransfer-dropeffect">dropEffect</a></code></th>
                   19490:       </tr></thead><tr><td>"<code title="">none</code>"</td>
                   19491:       <td>"<code title="">none</code>"</td>
                   19492:      </tr><tr><td>"<code title="">copy</code>"</td>
                   19493:       <td>"<code title="">copy</code>"</td>
                   19494:      </tr><tr><td>"<code title="">copyLink</code>"</td>
                   19495:       <td>"<code title="">copy</code>", or, <a href="#concept-platform-dropeffect-override" title="concept-platform-dropEffect-override">if appropriate</a>, "<code title="">link</code>"</td>
                   19496:      </tr><tr><td>"<code title="">copyMove</code>"</td>
                   19497:       <td>"<code title="">copy</code>", or, <a href="#concept-platform-dropeffect-override" title="concept-platform-dropEffect-override">if appropriate</a>, "<code title="">move</code>"</td>
                   19498:      </tr><tr><td>"<code title="">all</code>"</td>
                   19499:       <td>"<code title="">copy</code>", or, <a href="#concept-platform-dropeffect-override" title="concept-platform-dropEffect-override">if appropriate</a>, either "<code title="">link</code>" or "<code title="">move</code>"</td>
                   19500:      </tr><tr><td>"<code title="">link</code>"</td>
                   19501:       <td>"<code title="">link</code>"</td>
                   19502:      </tr><tr><td>"<code title="">linkMove</code>"</td>
                   19503:       <td>"<code title="">link</code>", or, <a href="#concept-platform-dropeffect-override" title="concept-platform-dropEffect-override">if appropriate</a>, "<code title="">move</code>"</td>
                   19504:      </tr><tr><td>"<code title="">move</code>"</td>
                   19505:       <td>"<code title="">move</code>"</td>
                   19506:      </tr><tr><td>"<code title="">uninitialized</code>" when what is being dragged is a selection from a text field</td>
                   19507:       <td>"<code title="">move</code>", or, <a href="#concept-platform-dropeffect-override" title="concept-platform-dropEffect-override">if appropriate</a>, either "<code title="">copy</code>" or "<code title="">link</code>"</td>
                   19508:      </tr><tr><td>"<code title="">uninitialized</code>" when what is being dragged is a selection</td>
                   19509:       <td>"<code title="">copy</code>", or, <a href="#concept-platform-dropeffect-override" title="concept-platform-dropEffect-override">if appropriate</a>, either "<code title="">link</code>" or "<code title="">move</code>"</td>
                   19510:      </tr><tr><td>"<code title="">uninitialized</code>" when what is being dragged is an <code><a href="the-a-element.html#the-a-element">a</a></code> element with an <code>href</code> attribute</td>
                   19511:       <td>"<code title="">link</code>", or, <a href="#concept-platform-dropeffect-override" title="concept-platform-dropEffect-override">if appropriate</a>, either "<code title="">copy</code>" or "<code title="">move</code>"</td>
                   19512:      </tr><tr><td>Any other case</td>
                   19513:       <td>"<code title="">copy</code>", or, <a href="#concept-platform-dropeffect-override" title="concept-platform-dropEffect-override">if appropriate</a>, either "<code title="">link</code>" or "<code title="">move</code>"</td>
                   19514:      </tr></table><p>Where the table above provides <dfn id="concept-platform-dropeffect-override" title="concept-platform-dropEffect-override">possibly appropriate
                   19515:     alternatives</dfn>, user agents may instead use the listed
                   19516:     alternative values if platform conventions dictate that the user
                   19517:     has requested those alternate effects.</p>
                   19518: 
                   19519:     <p class="example">For example, Windows platform conventions are
                   19520:     such that dragging while holding the "alt" key indicates a
                   19521:     preference for linking the data, rather than moving or copying it.
                   19522:     Therefore, on a Windows system, if "<code title="">link</code>" is
                   19523:     an option according to the table above while the "alt" key is
                   19524:     depressed, the user agent could select that instead of "<code title="">copy</code>" or "<code title="">move</code>.</p>
                   19525: 
                   19526:    </li>
                   19527: 
                   19528:    <li>
                   19529: 
                   19530:     <p>Create a <code><a href="#dragevent">DragEvent</a></code> object and initialize it to
                   19531:     have the given name <var title="">e</var>, to bubble, to be
                   19532:     cancelable unless <var title="">e</var> is <code title="event-dragleave"><a href="#event-dragleave">dragleave</a></code> or <code title="event-dragend"><a href="#event-dragend">dragend</a></code>, and to have the <code title="dom-UIEvent-detail"><a href="infrastructure.html#dom-uievent-detail">detail</a></code> attribute initialized to
                   19533:     zero, the mouse and key attributes initialized according to the
                   19534:     state of the input devices as they would be for user interaction
                   19535:     events, the <code title="">relatedTarget</code> attribute
                   19536:     initialized to null, and the <code title="dom-DragEvent-dataTransfer"><a href="#dom-dragevent-datatransfer">dataTransfer</a></code> attribute
                   19537:     initialized to <var title="">dataTransfer</var>, the
                   19538:     <code><a href="#datatransfer">DataTransfer</a></code> object created above.</p>
                   19539: 
                   19540:     <!-- interaction event spec point -->
                   19541: 
                   19542:     <p>If there is no relevant pointing device, the object must have
                   19543:     its <code title="">screenX</code>, <code title="">screenY</code>,
                   19544:     <code title="">clientX</code>, <code title="">clientY</code>, and
                   19545:     <code title="">button</code> attributes set to 0.</p>
                   19546: 
                   19547:    </li>
                   19548: 
                   19549:    <li><p>Dispatch the newly created <code><a href="#dragevent">DragEvent</a></code> object at
                   19550:    the specified target element.</p></li>
                   19551: 
                   19552:    <li><p>Set the <a href="#drag-data-store-allowed-effects-state">drag data store allowed effects state</a>
                   19553:    to the current value of <var title="">dataTransfer</var>'s <code title="dom-DataTransfer-effectAllowed"><a href="#dom-datatransfer-effectallowed">effectAllowed</a></code>
                   19554:    attribute. (It can only have changed value if <var title="">e</var>
                   19555:    is <code title="event-dragstart"><a href="#event-dragstart">dragstart</a></code>.)</p></li>
                   19556: 
                   19557:    <li><p>Set the <a href="#drag-data-store-mode">drag data store mode</a> back to the <a href="#concept-dnd-p" title="concept-dnd-p">protected mode</a> if it was changed in
                   19558:    the first step.</p></li>
                   19559: 
                   19560:    <li><p>Break the association between <var title="">dataTransfer</var> and the <a href="#drag-data-store">drag data
                   19561:    store</a>.</p></li>
                   19562: 
                   19563:   </ol></div>
                   19564: 
                   19565: 
                   19566:   <div class="impl">
                   19567: 
                   19568:   <h4 id="drag-and-drop-processing-model"><span class="secno">7.7.5 </span>Drag-and-drop processing model</h4>
                   19569: 
                   19570:   <p>When the user attempts to begin a drag operation, the user agent
                   19571:   must run the following steps. User agents must act as if these steps
                   19572:   were run even if the drag actually started in another document or
                   19573:   application and the user agent was not aware that the drag was
                   19574:   occuring until it intersected with a document under the user agent's
                   19575:   purview.</p>
                   19576: 
                   19577:   <ol><li>
                   19578: 
                   19579:     <p>Determine what is being dragged, as follows:</p>
                   19580: 
                   19581:     <p>If the drag operation was invoked on a selection, then it is
                   19582:     the selection that is being dragged.</p>
                   19583: 
                   19584:     <p>Otherwise, if the drag operation was invoked on a
                   19585:     <code><a href="dom.html#document">Document</a></code>, it is the first element, going up the
                   19586:     ancestor chain, starting at the node that the user tried to drag,
                   19587:     that has the IDL attribute <code title="dom-draggable"><a href="#dom-draggable">draggable</a></code> set to true. If there is no
                   19588:     such element, then nothing is being dragged; abort these steps,
                   19589:     the drag-and-drop operation is never started.</p>
                   19590: 
                   19591:     <p>Otherwise, the drag operation was invoked outside the user
                   19592:     agent's purview. What is being dragged is defined by the document
                   19593:     or application where the drag was started.</p>
                   19594: 
                   19595:     <p class="note"><code><a href="the-img-element.html#the-img-element">img</a></code> elements and <code><a href="the-a-element.html#the-a-element">a</a></code>
                   19596:     elements with an <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code>
                   19597:     attribute have their <code title="dom-draggable"><a href="#dom-draggable">draggable</a></code>
                   19598:     attribute set to true by default.</p>
                   19599: 
                   19600:    </li>
                   19601: 
                   19602:    <li><p><a href="#create-a-drag-data-store">Create a drag data store</a>. All the DND events
                   19603:    fired subsequently by the steps in this section must use this
                   19604:    <a href="#drag-data-store">drag data store</a>.</p></li>
                   19605: 
                   19606:    <li>
                   19607: 
                   19608:     <p>Establish which DOM node is the <dfn id="source-node">source node</dfn>, as
                   19609:     follows:</p>
                   19610: 
                   19611:     <p>If it is a selection that is being dragged, then the
                   19612:     <a href="#source-node">source node</a> is the <code><a href="infrastructure.html#text-0">Text</a></code> node that the
                   19613:     user started the drag on (typically the <code><a href="infrastructure.html#text-0">Text</a></code> node
                   19614:     that the user originally clicked). If the user did not specify a
                   19615:     particular node, for example if the user just told the user agent
                   19616:     to begin a drag of "the selection", then the <a href="#source-node">source
                   19617:     node</a> is the first <code><a href="infrastructure.html#text-0">Text</a></code> node containing a part
                   19618:     of the selection.</p>
                   19619: 
                   19620:     <p>Otherwise, if it is an element that is being dragged, then the
                   19621:     <a href="#source-node">source node</a> is the element that is being dragged.</p>
                   19622: 
                   19623:     <p>Otherwise, the <a href="#source-node">source node</a> is part of another
                   19624:     document or application. When this specification requires that an
                   19625:     event be dispatched at the <a href="#source-node">source node</a> in this case,
                   19626:     the user agent must instead follow the platform-specific
                   19627:     conventions relevant to that situation.</p>
                   19628: 
                   19629:     <p class="note">Multiple events are fired on the <a href="#source-node">source
                   19630:     node</a> during the course of the drag-and-drop operation.</p>
                   19631: 
                   19632:    </li>
                   19633: 
                   19634:    <li>
                   19635: 
                   19636:     <p>Determine the <dfn id="list-of-dragged-nodes">list of dragged nodes</dfn>, as follows:</p>
                   19637: 
                   19638:     <p>If it is a selection that is being dragged, then the <a href="#list-of-dragged-nodes">list
                   19639:     of dragged nodes</a> contains, in <a href="infrastructure.html#tree-order">tree order</a>,
                   19640:     every node that is partially or completely included in the
                   19641:     selection (including all their ancestors).</p>
                   19642: 
                   19643:     <p>Otherwise, the <a href="#list-of-dragged-nodes">list of dragged nodes</a> contains only
                   19644:     the <a href="#source-node">source node</a>, if any.</p>
                   19645: 
                   19646:    </li>
                   19647: 
                   19648:    <li>
                   19649: 
                   19650:     <p>If it is a selection that is being dragged, then add an item to
                   19651:     the <a href="#drag-data-store-item-list">drag data store item list</a>, with its properties
                   19652:     set as follows:</p>
                   19653: 
                   19654:     <dl><dt><a href="#the-drag-data-item-type-string">The drag data item type string</a>
                   19655:      </dt><dd>"<code>text/plain</code>"</dd>
                   19656: 
                   19657:      <dt><a href="#the-drag-data-item-kind">The drag data item kind</a>
                   19658:      </dt><dd><i>Plain Unicode string</i></dd>
                   19659: 
                   19660:      <dt>The actual data</dt>
                   19661:      <dd>The text of the selection</dd>
                   19662: 
                   19663:     </dl><p>Otherwise, if any files are being dragged, then add one item
                   19664:     per file to the <a href="#drag-data-store-item-list">drag data store item list</a>, with their
                   19665:     properties set as follows:</p>
                   19666: 
                   19667:     <dl><dt><a href="#the-drag-data-item-type-string">The drag data item type string</a>
                   19668:      </dt><dd>The MIME type of the file, if known, or "<code>application/octet-stream</code>" otherwise.</dd>
                   19669: 
                   19670:      <dt><a href="#the-drag-data-item-kind">The drag data item kind</a>
                   19671:      </dt><dd><i><a href="infrastructure.html#file">File</a></i></dd>
                   19672: 
                   19673:      <dt>The actual data</dt>
                   19674:      <dd>The file's contents and name.</dd>
                   19675: 
                   19676:     </dl><p class="note">Dragging files can currently only happen from
                   19677:     outside a <a href="#browsing-context">browsing context</a>, for example from a file
                   19678:     system manager application.</p>
                   19679: 
                   19680:     <p>If the drag initiated outside of the application, the user
                   19681:     agent must add items to the <a href="#drag-data-store-item-list">drag data store item list</a>
                   19682:     as appropriate for the data being dragged, honoring platform
                   19683:     conventions where appropriate; however, if the platform
                   19684:     conventions do not use <a href="infrastructure.html#mime-type" title="MIME type">MIME types</a>
                   19685:     to label dragged data, the user agent must make a best-effort
                   19686:     attempt to map the types to MIME types, and, in any case, all the
                   19687:     <a href="#the-drag-data-item-type-string" title="the drag data item type string">drag data item type
                   19688:     strings</a> must be <a href="infrastructure.html#converted-to-ascii-lowercase">converted to ASCII
                   19689:     lowercase</a>.</p>
                   19690: 
                   19691:     <p>User agents may also add one or more items representing the
                   19692:     selection or dragged element(s) in other forms, e.g. as HTML.</p>
                   19693: 
                   19694:    </li>
                   19695: 
                   19696:    <!-- DND-v2: text/html as an export format -->
                   19697: 
                   19698: <!--MD-->
                   19699: 
                   19700:    <li>Perform <dfn id="drag-and-drop-initialization-steps">drag-and-drop initialization steps</dfn> defined
                   19701:    in any <a href="infrastructure.html#other-applicable-specifications">other applicable specifications</a>.</li>
                   19702: 
                   19703: <!--MD-->
                   19704: 
                   19705:    <li>
                   19706: 
                   19707:     <p>Run the following substeps:</p>
                   19708: 
                   19709:     <ol><li><p>Let <var title="">urls</var> be an empty list of <a href="urls.html#absolute-url" title="absolute URL">absolute URLs</a>.</p></li>
                   19710: 
                   19711:      <li>
                   19712: 
                   19713:       <p>For each <var title="">node</var> in the <a href="#list-of-dragged-nodes">list of
                   19714:       dragged nodes</a>:</p>
                   19715: 
                   19716:       <dl><dt>If the node is an <code><a href="the-a-element.html#the-a-element">a</a></code> element with an <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute</dt>
                   19717: 
                   19718:        <dd>Add to <var title="">urls</var> the result of <a href="urls.html#resolve-a-url" title="resolve a url">resolving</a> the element's <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> content attribute
                   19719:        relative to the element.</dd>
                   19720: 
                   19721:        <dt>If the node is an <code><a href="the-img-element.html#the-img-element">img</a></code> element with an <code title="attr-img-src"><a href="the-img-element.html#attr-img-src">src</a></code> attribute</dt>
                   19722: 
                   19723:        <dd>Add to <var title="">urls</var> the result of <a href="urls.html#resolve-a-url" title="resolve a url">resolving</a> the element's <code title="attr-img-src"><a href="the-img-element.html#attr-img-src">src</a></code> content attribute relative to
                   19724:        the element.</dd>
                   19725: 
                   19726:        <!-- DND-v2: more -->
                   19727: 
                   19728:       </dl></li>
                   19729: 
                   19730:      <li><p>If <var title="">urls</var> is still empty, abort these
                   19731:      substeps.</p></li>
                   19732: 
                   19733:      <li><p>Let <var title="">url string</var> be the result of
                   19734:      concatenating the strings in <var title="">urls</var>, in the
                   19735:      order they were added, separated by a U+000D CARRIAGE RETURN
                   19736:      U+000A LINE FEED character pair (CRLF).</p></li>
                   19737: 
                   19738:      <li><p>Add one item to the <a href="#drag-data-store-item-list">drag data store item
                   19739:      list</a>, with its properties set as follows:</p>
                   19740: 
                   19741:       <dl><dt><a href="#the-drag-data-item-type-string">The drag data item type string</a>
                   19742:        </dt><dd><code>text/uri-list</code></dd>
                   19743: 
                   19744:        <dt><a href="#the-drag-data-item-kind">The drag data item kind</a>
                   19745:        </dt><dd><i>Plain Unicode string</i></dd>
                   19746: 
                   19747:        <dt>The actual data</dt>
                   19748:        <dd><var title="">url string</var></dd>
                   19749: 
                   19750:       </dl></li>
                   19751: 
                   19752:     </ol></li>
                   19753: 
                   19754:    <li>
                   19755: 
                   19756:     <p>Update the <a href="#drag-data-store-default-feedback">drag data store default feedback</a> as
                   19757:     appropriate for the user agent (if the user is dragging the
                   19758:     selection, then the selection would likely be the basis for this
                   19759:     feedback; if the user is dragging an element, then that element's
                   19760:     rendering would be used; if the drag began outside the user agent,
                   19761:     then the platform conventions for determining the drag feedback
                   19762:     should be used).</p>
                   19763: 
                   19764:    </li>
                   19765: 
                   19766:    <li>
                   19767: 
                   19768:     <p><a href="#fire-a-dnd-event">Fire a DND event</a> named <code title="event-dragstart"><a href="#event-dragstart">dragstart</a></code> at the <a href="#source-node">source
                   19769:     node</a>.</p>
                   19770: 
                   19771:     <p>If the event is canceled, then the drag-and-drop operation
                   19772:     should not occur; abort these steps.</p> <!-- only a should
                   19773:     because the UA can always allow the user to drag without the page
                   19774:     knowing -->
                   19775: 
                   19776:     <p class="note">Since events with no event listeners registered
                   19777:     are, almost by definition, never canceled, drag-and-drop is always
                   19778:     available to the user if the author does not specifically prevent
                   19779:     it.</p>
                   19780: 
                   19781:    </li>
                   19782: 
                   19783:    <li>
                   19784: 
                   19785:     <p><a href="#initiate-the-drag-and-drop-operation">Initiate the drag-and-drop operation</a> in a manner
                   19786:     consistent with platform conventions, and as described below.</p>
                   19787: 
                   19788:     <p id="base-dnd-feedback">The drag-and-drop feedback must be
                   19789:     generated from the first of the following sources that is
                   19790:     available:</p>
                   19791: 
                   19792:     <ol><li>The <a href="#drag-data-store-bitmap">drag data store bitmap</a>, if any. In this
                   19793:      case, the <a href="#drag-data-store-hot-spot-coordinate">drag data store hot spot coordinate</a> should
                   19794:      be used as hints for where to put the cursor relative to the
                   19795:      resulting image. The values are expressed as distances in CSS
                   19796:      pixels from the left side and from the top side of the image
                   19797:      respectively. <a href="#refsCSS">[CSS]</a></li>
                   19798: 
                   19799:      <li>The <a href="#drag-data-store-default-feedback">drag data store default feedback</a>.</li>
                   19800: 
                   19801:     </ol></li>
                   19802: 
                   19803:   </ol><p>From the moment that the user agent is to <dfn id="initiate-the-drag-and-drop-operation">initiate the
                   19804:   drag-and-drop operation</dfn>, until the end of the drag-and-drop
                   19805:   operation, device input events (e.g. mouse and keyboard events) must
                   19806:   be suppressed.</p>
                   19807: 
                   19808:   <p>During the drag operation, the element directly indicated by the
                   19809:   user as the drop target is called the <dfn id="immediate-user-selection">immediate user
                   19810:   selection</dfn>. (Only elements can be selected by the user; other
                   19811:   nodes must not be made available as drop targets.) However, the
                   19812:   <a href="#immediate-user-selection">immediate user selection</a> is not necessarily the
                   19813:   <dfn id="current-target-element">current target element</dfn>, which is the element currently
                   19814:   selected for the drop part of the drag-and-drop operation.</p>
                   19815: 
                   19816:   <p>The <a href="#immediate-user-selection">immediate user selection</a> changes as the user
                   19817:   selects different elements (either by pointing at them with a
                   19818:   pointing device, or by selecting them in some other way). The
                   19819:   <a href="#current-target-element">current target element</a> changes when the <a href="#immediate-user-selection">immediate
                   19820:   user selection</a> changes, based on the results of event
                   19821:   listeners in the document, as described below.</p>
                   19822: 
                   19823:   <p>Both the <a href="#current-target-element">current target element</a> and the
                   19824:   <a href="#immediate-user-selection">immediate user selection</a> can be null, which means no
                   19825:   target element is selected. They can also both be elements in other
                   19826:   (DOM-based) documents, or other (non-Web) programs altogether. (For
                   19827:   example, a user could drag text to a word-processor.) The
                   19828:   <a href="#current-target-element">current target element</a> is initially null.</p>
                   19829: 
                   19830:   <p>In addition, there is also a <dfn id="current-drag-operation">current drag operation</dfn>,
                   19831:   which can take on the values "<code title="">none</code>", "<code title="">copy</code>", "<code title="">link</code>", and "<code title="">move</code>". Initially, it has the value "<code title="">none</code>". It is updated by the user agent as described
                   19832:   in the steps below.</p>
                   19833: 
                   19834:   <p>User agents must, as soon as the drag operation is <a href="#initiate-the-drag-and-drop-operation" title="initiate the drag-and-drop operation">initiated</a> and
                   19835:   every 350ms (&#177;200ms) thereafter for as long as the drag
                   19836:   operation is ongoing, <a href="#queue-a-task">queue a task</a> to perform the
                   19837:   following steps in sequence:</p>
                   19838: 
                   19839:   <ol><li>
                   19840: 
                   19841:     <p>If the user agent is still performing the previous iteration of
                   19842:     the sequence (if any) when the next iteration becomes due, abort
                   19843:     these steps for this iteration (effectively "skipping missed
                   19844:     frames" of the drag-and-drop operation).</p>
                   19845: 
                   19846:    </li>
                   19847: 
                   19848:    <li>
                   19849: 
                   19850:     <p><a href="#fire-a-dnd-event">Fire a DND event</a> named <code title="event-drag"><a href="#event-drag">drag</a></code> event at the <a href="#source-node">source
                   19851:     node</a>. If this event is canceled, the user agent must set
                   19852:     the <a href="#current-drag-operation">current drag operation</a> to "<code title="">none</code>" (no drag operation).</p>
                   19853: 
                   19854:    </li>
                   19855: 
                   19856:    <li>
                   19857: 
                   19858:     <p>If the <code title="event-drag"><a href="#event-drag">drag</a></code> event was not
                   19859:     canceled and the user has not ended the drag-and-drop operation,
                   19860:     check the state of the drag-and-drop operation, as follows:</p>
                   19861: 
                   19862:     <ol><li>
                   19863: 
                   19864:       <p>If the user is indicating a different <a href="#immediate-user-selection">immediate user
                   19865:       selection</a> than during the last iteration (or if this is
                   19866:       the first iteration), and if this <a href="#immediate-user-selection">immediate user
                   19867:       selection</a> is not the same as the <a href="#current-target-element">current target
                   19868:       element</a>, then update the <a href="#current-target-element">current target
                   19869:       element</a> as follows:</p>
                   19870: 
                   19871:       <dl class="switch"><dt>If the new <a href="#immediate-user-selection">immediate user selection</a> is null</dt>
                   19872: 
                   19873:        <dd><p>Set the <a href="#current-target-element">current target element</a> to null
                   19874:        also.</p></dd>
                   19875: 
                   19876:        <dt>If the new <a href="#immediate-user-selection">immediate user selection</a> is in a
                   19877:        non-DOM document or application</dt>
                   19878: 
                   19879:        <dd><p>Set the <a href="#current-target-element">current target element</a> to the
                   19880:        <a href="#immediate-user-selection">immediate user selection</a>.</p></dd>
                   19881: 
                   19882:        <dt>Otherwise</dt>
                   19883: 
                   19884:        <dd>
                   19885: 
                   19886:         <p><a href="#fire-a-dnd-event">Fire a DND event</a> named <code title="event-dragenter"><a href="#event-dragenter">dragenter</a></code> at the
                   19887:         <a href="#immediate-user-selection">immediate user selection</a>.</p>
                   19888: 
                   19889:         <p>If the event is canceled, then set the <a href="#current-target-element">current target
                   19890:         element</a> to the <a href="#immediate-user-selection">immediate user
                   19891:         selection</a>.</p>
                   19892: 
                   19893:         <p>Otherwise, run the appropriate step from the following
                   19894:         list:</p>
                   19895: 
                   19896:         <dl class="switch"><dt>If the <a href="#immediate-user-selection">immediate user selection</a> is a text
                   19897:          field (e.g. <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>, or an <code><a href="the-input-element.html#the-input-element">input</a></code>
                   19898:          element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code>
                   19899:          attribute is in the <a href="states-of-the-type-attribute.html#text-(type=text)-state-and-search-state-(type=search)" title="attr-input-type-text">Text</a> state) or an
                   19900:          <a href="#editing-host">editing host</a> or <a href="#editable">editable</a> element,
                   19901:          and the <a href="#drag-data-store-item-list">drag data store item list</a> has an item
                   19902:          with <a href="#the-drag-data-item-type-string">the drag data item type string</a>
                   19903:          "<code>text/plain</code>" and <a href="#the-drag-data-item-kind">the drag data item
                   19904:          kind</a> <i>Plain Unicode string</i></dt>
                   19905: 
                   19906:          <dd><p>Set the <a href="#current-target-element">current target element</a> to the
                   19907:          <a href="#immediate-user-selection">immediate user selection</a> anyway.</p></dd>
                   19908: 
                   19909: 
                   19910:          <dt>If the <a href="#immediate-user-selection">immediate user selection</a> is an element
                   19911:          with a <code title="attr-dropzone"><a href="#the-dropzone-attribute">dropzone</a></code> attribute
                   19912:          that <a href="#concept-dropzone-match" title="concept-dropzone-match">matches</a> the
                   19913:          <a href="#drag-data-store">drag data store</a></dt>
                   19914: 
                   19915:          <dd><p>Set the <a href="#current-target-element">current target element</a> to the
                   19916:          <a href="#immediate-user-selection">immediate user selection</a> anyway.</p></dd>
                   19917: 
                   19918: 
                   19919:          <dt>If the <a href="#immediate-user-selection">immediate user selection</a> is an element
                   19920:          that itself has an ancestor element with a <code title="attr-dropzone"><a href="#the-dropzone-attribute">dropzone</a></code> attribute that <a href="#concept-dropzone-match" title="concept-dropzone-match">matches</a> the <a href="#drag-data-store">drag
                   19921:          data store</a></dt>
                   19922: 
                   19923:          <dd>
                   19924: 
                   19925:           <p>Let <var title="">new target</var> be the nearest
                   19926:           (deepest) such ancestor element.</p>
                   19927: 
                   19928:           <p>If the <a href="#immediate-user-selection">immediate user selection</a> is <var title="">new target</var>, then leave the <a href="#current-target-element">current
                   19929:           target element</a> unchanged.</p>
                   19930: 
                   19931:           <p>Otherwise, <a href="#fire-a-dnd-event">fire a DND event</a> named <code title="event-dragenter"><a href="#event-dragenter">dragenter</a></code> at <var title="">new target</var>. Then, set the <a href="#current-target-element">current
                   19932:           target element</a> to <var title="">new target</var>
                   19933: 
                   19934:          </p></dd>
                   19935: 
                   19936: 
                   19937:          <dt>If the <a href="#immediate-user-selection">immediate user selection</a> is
                   19938:          <a href="dom.html#the-body-element-0">the body element</a></dt>
                   19939: 
                   19940:          <dd><p>Leave the <a href="#current-target-element">current target element</a>
                   19941:          unchanged.</p></dd>
                   19942: 
                   19943: 
                   19944:          <dt>Otherwise</dt>
                   19945: 
                   19946:          <dd>
                   19947: 
                   19948:           <p><a href="#fire-a-dnd-event">Fire a DND event</a> named <code title="event-dragenter"><a href="#event-dragenter">dragenter</a></code> at <a href="dom.html#the-body-element-0">the body
                   19949:           element</a>, if there is one, or at the
                   19950:           <code><a href="dom.html#document">Document</a></code> object, if not. Then, set the
                   19951:           <a href="#current-target-element">current target element</a> to <a href="dom.html#the-body-element-0">the body
                   19952:           element</a>, regardless of whether that event was
                   19953:           canceled or not.</p>
                   19954: 
                   19955:          </dd>
                   19956: 
                   19957:         </dl></dd>
                   19958: 
                   19959:       </dl></li>
                   19960: 
                   19961:      <li>
                   19962: 
                   19963:       <p>If the previous step caused the <a href="#current-target-element">current target
                   19964:       element</a> to change, and if the previous target element was
                   19965:       not null or a part of a non-DOM document, then <a href="#fire-a-dnd-event">fire a DND
                   19966:       event</a> named <code title="event-dragleave"><a href="#event-dragleave">dragleave</a></code> at the previous target
                   19967:       element.</p>
                   19968: 
                   19969:      </li>
                   19970: 
                   19971:      <li>
                   19972: 
                   19973:       <p>If the <a href="#current-target-element">current target element</a> is a DOM element,
                   19974:       then <a href="#fire-a-dnd-event">fire a DND event</a> named <code title="event-dragover"><a href="#event-dragover">dragover</a></code> at this <a href="#current-target-element">current
                   19975:       target element</a>.</p>
                   19976: 
                   19977:       <p>If the <code title="event-dragover"><a href="#event-dragover">dragover</a></code> event is
                   19978:       not canceled, run the appropriate step from the following
                   19979:       list:</p>
                   19980: 
                   19981:       <dl class="switch"><dt>If the <a href="#current-target-element">current target element</a> is a text field
                   19982:        (e.g. <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>, or an <code><a href="the-input-element.html#the-input-element">input</a></code> element
                   19983:        whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in
                   19984:        the <a href="states-of-the-type-attribute.html#text-(type=text)-state-and-search-state-(type=search)" title="attr-input-type-text">Text</a> state) or an
                   19985:        <a href="#editing-host">editing host</a> or <a href="#editable">editable</a> element, and
                   19986:        the <a href="#drag-data-store-item-list">drag data store item list</a> has an item with
                   19987:        <a href="#the-drag-data-item-type-string">the drag data item type string</a>
                   19988:        "<code>text/plain</code>" and <a href="#the-drag-data-item-kind">the drag data item
                   19989:        kind</a> <i>Plain Unicode string</i></dt>
                   19990: 
                   19991:        <dd><p>Set the <a href="#current-drag-operation">current drag operation</a> to either
                   19992:        "<code title="">copy</code>" or "<code title="">move</code>",
                   19993:        as appropriate given the platform conventions.</p></dd>
                   19994: 
                   19995: 
                   19996:        <dt>If the <a href="#current-target-element">current target element</a> is an element
                   19997:        with a <code title="attr-dropzone"><a href="#the-dropzone-attribute">dropzone</a></code> attribute
                   19998:        that <a href="#concept-dropzone-match" title="concept-dropzone-match">matches</a> the
                   19999:        <a href="#drag-data-store">drag data store</a> and <a href="#concept-dropzone-operation" title="concept-dropzone-operation">specifies an
                   20000:        operation</a></dt>
                   20001: 
                   20002:        <dd><p>Set the <a href="#current-drag-operation">current drag operation</a> to the
                   20003:        operation <a href="#concept-dropzone-operation" title="concept-dropzone-operation">specified</a> by the
                   20004:        <code title="attr-dropzone"><a href="#the-dropzone-attribute">dropzone</a></code> attribute of the
                   20005:        <a href="#current-target-element">current target element</a>.</p>
                   20006: 
                   20007: 
                   20008:        </dd><dt>If the <a href="#current-target-element">current target element</a> is an element
                   20009:        with a <code title="attr-dropzone"><a href="#the-dropzone-attribute">dropzone</a></code> attribute
                   20010:        that <a href="#concept-dropzone-match" title="concept-dropzone-match">matches</a> the
                   20011:        <a href="#drag-data-store">drag data store</a> and does not <a href="#concept-dropzone-operation" title="concept-dropzone-operation">specify an
                   20012:        operation</a></dt>
                   20013: 
                   20014:        <dd><p>Set the <a href="#current-drag-operation">current drag operation</a> to "<code title="">copy</code>".</p>
                   20015: 
                   20016: 
                   20017:        </dd><dt>Otherwise</dt>
                   20018: 
                   20019:        <dd><p>Reset the <a href="#current-drag-operation">current drag operation</a> to "<code title="">none</code>".</p></dd>
                   20020: 
                   20021:       </dl><p>Otherwise (if the <code title="event-dragover"><a href="#event-dragover">dragover</a></code> event <em>is</em>
                   20022:       canceled), set the <a href="#current-drag-operation">current drag operation</a> based on
                   20023:       the values of the <code title="dom-DataTransfer-effectAllowed"><a href="#dom-datatransfer-effectallowed">effectAllowed</a></code> and
                   20024:       <code title="dom-DataTransfer-dropEffect"><a href="#dom-datatransfer-dropeffect">dropEffect</a></code>
                   20025:       attributes of the <code><a href="#dragevent">DragEvent</a></code> object's <code title="dom-DragEvent-dataTransfer"><a href="#dom-dragevent-datatransfer">dataTransfer</a></code> object as
                   20026:       they stood after the event dispatch finished, as per the
                   20027:       following table:</p>
                   20028: 
                   20029:       <table><thead><tr><th><code title="dom-DataTransfer-effectAllowed"><a href="#dom-datatransfer-effectallowed">effectAllowed</a></code></th>
                   20030:          <th><code title="dom-DataTransfer-dropEffect"><a href="#dom-datatransfer-dropeffect">dropEffect</a></code></th>
                   20031:          <th>Drag operation</th>
                   20032:         </tr></thead><tr><td>"<code title="">uninitialized</code>", "<code title="">copy</code>", "<code title="">copyLink</code>", "<code title="">copyMove</code>", or "<code title="">all</code>"</td>
                   20033:         <td>"<code title="">copy</code>"</td>
                   20034:         <td>"<code title="">copy</code>"</td>
                   20035:        </tr><tr><td>"<code title="">uninitialized</code>", "<code title="">link</code>", "<code title="">copyLink</code>", "<code title="">linkMove</code>", or "<code title="">all</code>"</td>
                   20036:         <td>"<code title="">link</code>"</td>
                   20037:         <td>"<code title="">link</code>"</td>
                   20038:        </tr><tr><td>"<code title="">uninitialized</code>", "<code title="">move</code>", "<code title="">copyMove</code>", "<code title="">linkMove</code>", or "<code title="">all</code>"</td>
                   20039:         <td>"<code title="">move</code>"</td>
                   20040:         <td>"<code title="">move</code>"</td>
                   20041:        </tr><tr><td colspan="2">Any other case</td>
                   20042:         <td>"<code title="">none</code>"</td>
                   20043:        </tr></table></li>
                   20044: 
                   20045:      <li>
                   20046: 
                   20047:       <p>Otherwise, if the <a href="#current-target-element">current target element</a> is not
                   20048:       a DOM element, use platform-specific mechanisms to determine
                   20049:       what drag operation is being performed (none, copy, link, or
                   20050:       move), and set the <i><a href="#current-drag-operation">current drag operation</a></i>
                   20051:       accordingly.</p>
                   20052: 
                   20053:      </li>
                   20054: 
                   20055:      <li>
                   20056: 
                   20057:       <p>Update the drag feedback (e.g. the mouse cursor) to match the
                   20058:       <a href="#current-drag-operation">current drag operation</a>, as follows:</p>
                   20059: 
                   20060:       <table><thead><tr><th>Drag operation</th>
                   20061:          <th>Feedback</th>
                   20062:         </tr></thead><tr><td>"<code title="">copy</code>"</td>
                   20063:         <td>Data will be copied if dropped here.</td>
                   20064:        </tr><tr><td>"<code title="">link</code>"</td>
                   20065:         <td>Data will be linked if dropped here.</td>
                   20066:        </tr><tr><td>"<code title="">move</code>"</td>
                   20067:         <td>Data will be moved if dropped here.</td>
                   20068:        </tr><tr><td>"<code title="">none</code>"</td>
                   20069:         <td>No operation allowed, dropping here will cancel the drag-and-drop operation.</td>
                   20070:        </tr></table></li>
                   20071: 
                   20072:     </ol></li>
                   20073: 
                   20074:    <li>
                   20075: 
                   20076:     <p>Otherwise, if the user ended the drag-and-drop operation (e.g.
                   20077:     by releasing the mouse button in a mouse-driven drag-and-drop
                   20078:     interface), or if the <code title="event-drag"><a href="#event-drag">drag</a></code> event
                   20079:     was canceled, then this will be the last iteration. Run the
                   20080:     following steps, then stop the drag-and-drop operation:</p>
                   20081: 
                   20082:     <ol><li>
                   20083: 
                   20084:       <p>If the <a href="#current-drag-operation">current drag operation</a> is "<code title="">none</code>" (no drag operation), or, if the user ended
                   20085:       the drag-and-drop operation by canceling it (e.g. by hitting the
                   20086:       <kbd>Escape</kbd> key), or if the <a href="#current-target-element">current target
                   20087:       element</a> is null, then the drag operation failed. Run
                   20088:       these substeps:</p>
                   20089: 
                   20090:       <ol><li><p>Let <var title="">dropped</var> be false.</p></li>
                   20091: 
                   20092:        <li><p>If the <a href="#current-target-element">current target element</a> is a DOM
                   20093:        element, <a href="#fire-a-dnd-event">fire a DND event</a> named <code title="event-dragleave"><a href="#event-dragleave">dragleave</a></code> at it; otherwise, if
                   20094:        it is not null, use platform-specific conventions for drag
                   20095:        cancellation.</p>
                   20096: 
                   20097:       </li></ol><p>Otherwise, the drag operation might be a success; run these
                   20098:       substeps:</p>
                   20099: 
                   20100:       <ol><li><p>Let <var title="">dropped</var> be true.</p></li>
                   20101: 
                   20102:        <li><p>If the <a href="#current-target-element">current target element</a> is a DOM
                   20103:        element, <a href="#fire-a-dnd-event">fire a DND event</a> named <code title="event-drop"><a href="#event-drop">drop</a></code> at it; otherwise, use
                   20104:        platform-specific conventions for indicating a drop.</p></li>
                   20105: 
                   20106:        <li>
                   20107: 
                   20108:         <p>If the event is canceled, set the <a href="#current-drag-operation">current drag
                   20109:         operation</a> to the value of the <code title="dom-DataTransfer-dropEffect"><a href="#dom-datatransfer-dropeffect">dropEffect</a></code> attribute
                   20110:         of the <code><a href="#dragevent">DragEvent</a></code> object's <code title="dom-DragEvent-dataTransfer"><a href="#dom-dragevent-datatransfer">dataTransfer</a></code> object
                   20111:         as it stood after the event dispatch finished.</p>
                   20112: 
                   20113:         <p>Otherwise, the event is not canceled; perform the event's
                   20114:         default action, which depends on the exact target as
                   20115:         follows:</p>
                   20116: 
                   20117:         <dl class="switch"><dt>If the <a href="#current-target-element">current target element</a> is a text
                   20118:          field (e.g. <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>, or an <code><a href="the-input-element.html#the-input-element">input</a></code>
                   20119:          element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code>
                   20120:          attribute is in the <a href="states-of-the-type-attribute.html#text-(type=text)-state-and-search-state-(type=search)" title="attr-input-type-text">Text</a> state) or an
                   20121:          <a href="#editing-host">editing host</a> or <a href="#editable">editable</a> element,
                   20122:          and the <a href="#drag-data-store-item-list">drag data store item list</a> has an item
                   20123:          with <a href="#the-drag-data-item-type-string">the drag data item type string</a>
                   20124:          "<code>text/plain</code>" and <a href="#the-drag-data-item-kind">the drag data item
                   20125:          kind</a> <i>Plain Unicode string</i></dt>
                   20126: 
                   20127:          <dd><p>Insert the actual data of the first item in the
                   20128:          <a href="#drag-data-store-item-list">drag data store item list</a> to have <a href="#the-drag-data-item-type-string" title="the drag data item type string">a drag data item type
                   20129:          string</a> of "<code>text/plain</code>" and <a href="#the-drag-data-item-kind" title="the drag data item kind">a drag data item kind</a>
                   20130:          that is <i>Plain Unicode string</i> into the text field or
                   20131:          <a href="#editing-host">editing host</a> or <a href="#editable">editable</a> element in
                   20132:          a manner consistent with platform-specific conventions (e.g.
                   20133:          inserting it at the current mouse cursor position, or
                   20134:          inserting it at the end of the field).</p></dd>
                   20135: 
                   20136:          <dt>Otherwise</dt>
                   20137: 
                   20138:          <dd><p>Reset the <a href="#current-drag-operation">current drag operation</a> to
                   20139:          "<code title="">none</code>".</p></dd>
                   20140: 
                   20141:         </dl></li>
                   20142: 
                   20143:       </ol></li>
                   20144: 
                   20145:      <li>
                   20146: 
                   20147:       <p><a href="#fire-a-dnd-event">Fire a DND event</a> named <code title="event-dragend"><a href="#event-dragend">dragend</a></code> at the <a href="#source-node">source
                   20148:       node</a>.</p>
                   20149: 
                   20150:      </li>
                   20151: 
                   20152:      <li>
                   20153: 
                   20154:       <p>Run the appropriate steps from the following list as the
                   20155:       default action of the <code title="event-dragend"><a href="#event-dragend">dragend</a></code>
                   20156:       event:</p>
                   20157: 
                   20158:       <dl class="switch"><dt>If <var title="">dropped</var> is true, the <a href="#current-target-element">current
                   20159:        target element</a> is a <i>text field</i> (see below), the
                   20160:        <a href="#current-drag-operation">current drag operation</a> is "<code title="">move</code>", and the source of the drag-and-drop
                   20161:        operation is a selection in the DOM that is entirely contained
                   20162:        within an <a href="#editing-host">editing host</a></dt>
                   20163: 
                   20164:        <dd><p><a href="#delete-the-selection">Delete the selection</a>.</p></dd>
                   20165: 
                   20166:        <dt>If <var title="">dropped</var> is true, the <a href="#current-target-element">current
                   20167:        target element</a> is a <i>text field</i> (see below), the
                   20168:        <a href="#current-drag-operation">current drag operation</a> is "<code title="">move</code>", and the source of the drag-and-drop
                   20169:        operation is a selection in a text field</dt>
                   20170: 
                   20171:        <dd><p>The user agent should delete the dragged selection from
                   20172:        the relevant text field.</p></dd>
                   20173: 
                   20174:        <dt>If <var title="">dropped</var> is false or if the
                   20175:        <a href="#current-drag-operation">current drag operation</a> is "<code title="">none</code>"</dt>
                   20176: 
                   20177:        <dd><p>The drag was canceled. If the platform conventions
                   20178:        dictate that this be represented to the user (e.g. by animating
                   20179:        the dragged selection going back to the source of the
                   20180:        drag-and-drop operation), then do so.</p></dd>
                   20181: 
                   20182:        <dt>Otherwise</dt>
                   20183: 
                   20184:        <dd><p>The event has no default action.</p></dd>
                   20185: 
                   20186:       </dl><p>For the purposes of this step, a <i>text field</i> is a
                   20187:       <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> element or an <code><a href="the-input-element.html#the-input-element">input</a></code> element
                   20188:       whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in
                   20189:       one of the
                   20190:       <a href="states-of-the-type-attribute.html#text-(type=text)-state-and-search-state-(type=search)" title="attr-input-type-text">Text</a>,
                   20191:       <a href="states-of-the-type-attribute.html#text-(type=text)-state-and-search-state-(type=search)" title="attr-input-type-search">Search</a>,
                   20192:       <a href="states-of-the-type-attribute.html#telephone-state-(type=tel)" title="attr-input-type-tel">Tel</a>,
                   20193:       <a href="states-of-the-type-attribute.html#url-state-(type=url)" title="attr-input-type-url">URL</a>,
                   20194:       <a href="states-of-the-type-attribute.html#e-mail-state-(type=email)" title="attr-input-type-email">E-mail</a>,
                   20195:       <a href="states-of-the-type-attribute.html#password-state-(type=password)" title="attr-input-type-password">Password</a>, or
                   20196:       <a href="states-of-the-type-attribute.html#number-state-(type=number)" title="attr-input-type-number">Number</a>
                   20197:       states.</p>
                   20198: 
                   20199: 
                   20200:      </li>
                   20201: 
                   20202:     </ol></li>
                   20203: 
                   20204:   </ol><p class="note">User agents are encouraged to consider how to react
                   20205:   to drags near the edge of scrollable regions. For example, if a user
                   20206:   drags a link to the bottom of the viewport on a long page, it might
                   20207:   make sense to scroll the page so that the user can drop the link
                   20208:   lower on the page.</p>
                   20209: 
                   20210:   <p class="note">This model is independent of which
                   20211:   <code><a href="dom.html#document">Document</a></code> object the nodes involved are from; the events
                   20212:   are fired as described above and the rest of the processing model
                   20213:   runs as described above, irrespective of how many documents are
                   20214:   involved in the operation.</p>
                   20215: 
                   20216:   </div>
                   20217: 
                   20218: 
                   20219:   <h4 id="dndevents"><span class="secno">7.7.6 </span>Events summary</h4>
                   20220: 
                   20221:   <p><i>This section is non-normative.</i></p>
                   20222:   <p>The following events are involved in the drag-and-drop
                   20223:   model.</p>
                   20224: 
                   20225:   <table><thead><tr><th> Event Name </th>
                   20226:      <th> Target </th>
                   20227:      <!-- <th> Bubbles? </th> -->
                   20228:      <th> Cancelable? </th>
                   20229:      <th> <a href="#drag-data-store-mode">Drag data store mode</a> </th>
                   20230:      <!-- <th> <code title="dom-DataTransfer-effectAllowed">effectAllowed</code> </th> -->
                   20231:      <th> <code title="dom-DataTransfer-dropEffect"><a href="#dom-datatransfer-dropeffect">dropEffect</a></code> </th>
                   20232:      <th> Default Action </th>
                   20233:     </tr></thead><tbody><tr><td><dfn id="event-dragstart" title="event-dragstart"><code>dragstart</code></dfn></td>
                   20234:      <td><a href="#source-node">Source node</a></td>
                   20235:      <!-- <td>&#x2713; Bubbles</td> -->
                   20236:      <td>&#10003; Cancelable</td>
                   20237:      <td><a href="#concept-dnd-rw" title="concept-dnd-rw">Read/write mode</a>
                   20238:      <!-- <td>"<code title="">uninitialized</code>"</td> -->
                   20239:      </td><td>"<code title="">none</code>"</td>
                   20240:      <td>Initiate the drag-and-drop operation</td>
                   20241:     </tr><tr><td><dfn id="event-drag" title="event-drag"><code>drag</code></dfn></td>
                   20242:      <td><a href="#source-node">Source node</a></td>
                   20243:      <!-- <td>&#x2713; Bubbles</td> -->
                   20244:      <td>&#10003; Cancelable</td>
                   20245:      <td><a href="#concept-dnd-p" title="concept-dnd-p">Protected mode</a>
                   20246:      <!-- <td>Same as last event</td> -->
                   20247:      </td><td>"<code title="">none</code>"</td>
                   20248:      <td>Continue the drag-and-drop operation</td>
                   20249:     </tr><tr><td><dfn id="event-dragenter" title="event-dragenter"><code>dragenter</code></dfn></td>
                   20250:      <td><a href="#immediate-user-selection">Immediate user selection</a> or <a href="dom.html#the-body-element-0">the body element</a></td>
                   20251:      <!-- <td>&#x2713; Bubbles</td> -->
                   20252:      <td>&#10003; Cancelable</td>
                   20253:      <td><a href="#concept-dnd-p" title="concept-dnd-p">Protected mode</a>
                   20254:      <!-- <td>Same as last event</td> -->
                   20255:      </td><td><a href="#dropEffect-initialization">Based on <code>effectAllowed</code> value</a></td>
                   20256:      <td>Reject <a href="#immediate-user-selection">immediate user selection</a> as potential <a href="#current-target-element" title="current target element">target element</a></td>
                   20257:     </tr><tr><td><dfn id="event-dragleave" title="event-dragleave"><code>dragleave</code></dfn></td>
                   20258:      <td><a href="#current-target-element" title="current target element">Previous target element</a></td>
                   20259:      <!-- <td>&#x2713; Bubbles</td> -->
                   20260:      <td>&#8212;</td>
                   20261:      <td><a href="#concept-dnd-p" title="concept-dnd-p">Protected mode</a>
                   20262:      <!-- <td>Same as last event</td> -->
                   20263:      </td><td>"<code title="">none</code>"</td>
                   20264:      <td>None</td>
                   20265:     </tr><tr><td><dfn id="event-dragover" title="event-dragover"><code>dragover</code></dfn></td>
                   20266:      <td><a href="#current-target-element">Current target element</a></td>
                   20267:      <!-- <td>&#x2713; Bubbles</td> -->
                   20268:      <td>&#10003; Cancelable</td>
                   20269:      <td><a href="#concept-dnd-p" title="concept-dnd-p">Protected mode</a>
                   20270:      <!-- <td>Same as last event</td> -->
                   20271:      </td><td><a href="#dropEffect-initialization">Based on <code>effectAllowed</code> value</a></td>
                   20272:      <td>Reset the <a href="#current-drag-operation">current drag operation</a> to "none"</td>
                   20273:     </tr><tr><td><dfn id="event-drop" title="event-drop"><code>drop</code></dfn></td>
                   20274:      <td><a href="#current-target-element">Current target element</a></td>
                   20275:      <!-- <td>&#x2713; Bubbles</td> -->
                   20276:      <td>&#10003; Cancelable</td>
                   20277:      <td><a href="#concept-dnd-ro" title="concept-dnd-ro">Read-only mode</a>
                   20278:      <!-- <td>Same as last event</td> -->
                   20279:      </td><td><a href="#current-drag-operation">Current drag operation</a></td>
                   20280:      <td>Varies</td>
                   20281:     </tr><tr><td><dfn id="event-dragend" title="event-dragend"><code>dragend</code></dfn></td>
                   20282:      <td><a href="#source-node">Source node</a></td>
                   20283:      <!-- <td>&#x2713; Bubbles</td> -->
                   20284:      <td>&#8212;</td>
                   20285:      <td><a href="#concept-dnd-p" title="concept-dnd-p">Protected mode</a>
                   20286:      <!-- <td>Same as last event</td> -->
                   20287:      </td><td><a href="#current-drag-operation">Current drag operation</a></td>
                   20288:      <td>Varies</td>
                   20289:     </tr></tbody></table><p>Not shown in the above table: all these events bubble, and the
                   20290:   <code title="dom-DataTransfer-effectAllowed"><a href="#dom-datatransfer-effectallowed">effectAllowed</a></code>
                   20291:   attribute always has the value it had after the <code title="event-dragstart"><a href="#event-dragstart">dragstart</a></code> event, defaulting to "<code title="">uninitialized</code>" in the <code title="event-dragstart"><a href="#event-dragstart">dragstart</a></code> event.</p>
                   20292: 
                   20293: 
                   20294: 
                   20295:   <h4 id="the-draggable-attribute"><span class="secno">7.7.7 </span>The <dfn title="attr-draggable"><code>draggable</code></dfn> attribute</h4>
                   20296: 
                   20297:   <p>All <a href="infrastructure.html#html-elements">HTML elements</a> may have the <code title="attr-draggable"><a href="#the-draggable-attribute">draggable</a></code> content attribute set. The
                   20298:   <code title="attr-draggable"><a href="#the-draggable-attribute">draggable</a></code> attribute is an
                   20299:   <a href="common-microsyntaxes.html#enumerated-attribute">enumerated attribute</a>. It has three states. The first
                   20300:   state is <i>true</i> and it has the keyword <code title="">true</code>. The second state is <i>false</i> and it has
                   20301:   the keyword <code title="">false</code>. The third state is
                   20302:   <i>auto</i>; it has no keywords but it is the <i>missing value
                   20303:   default</i>.</p>
                   20304: 
                   20305:   <p>The <i>true</i> state means the element is draggable; the
                   20306:   <i>false</i> state means that it is not. The <i>auto</i> state
                   20307:   uses the default behavior of the user agent.</p>
                   20308: 
                   20309:   <p>An element with a <code title="attr-draggable"><a href="#the-draggable-attribute">draggable</a></code>
                   20310:   attribute should also have a <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code>
                   20311:   attribute that names the element for the purpose of non-visual
                   20312:   interactions. <!-- "should", not "must", only because this is a
                   20313:   relatively new attribute and its design implications are not
                   20314:   entirely obvious yet. For example, what happens if you use an
                   20315:   element with text as a drag source? Is that sufficiently clear for
                   20316:   ATs? Indeed, shouldn't the element generally be distinguishable
                   20317:   anyway for it to be useful to drag? See also the dropzone attribute.
                   20318:   --></p>
                   20319: 
                   20320:   <dl class="domintro"><dt><var title="">element</var> . <code title="dom-draggable"><a href="#dom-draggable">draggable</a></code> [ = <var title="">value</var> ]</dt>
                   20321: 
                   20322:    <dd>
                   20323: 
                   20324:     <p>Returns true if the element is draggable; otherwise, returns
                   20325:     false.</p>
                   20326: 
                   20327:     <p>Can be set, to override the default and set the <code title="attr-draggable"><a href="#the-draggable-attribute">draggable</a></code> content attribute.</p>
                   20328: 
                   20329:    </dd>
                   20330: 
                   20331:   </dl><div class="impl">
                   20332: 
                   20333:   <p>The <dfn id="dom-draggable" title="dom-draggable"><code>draggable</code></dfn> IDL
                   20334:   attribute, whose value depends on the content attribute's in the way
                   20335:   described below, controls whether or not the element is
                   20336:   draggable. Generally, only text selections are draggable, but
                   20337:   elements whose <code title="dom-draggable"><a href="#dom-draggable">draggable</a></code> IDL
                   20338:   attribute is true become draggable as well.</p>
                   20339: 
                   20340:   <p>If an element's <code title="attr-draggable"><a href="#the-draggable-attribute">draggable</a></code>
                   20341:   content attribute has the state <i>true</i>, the <code title="dom-draggable"><a href="#dom-draggable">draggable</a></code> IDL attribute must return
                   20342:   true.</p>
                   20343: 
                   20344:   <p>Otherwise, if the element's <code title="attr-draggable"><a href="#the-draggable-attribute">draggable</a></code> content attribute has the
                   20345:   state <i>false</i>, the <code title="dom-draggable"><a href="#dom-draggable">draggable</a></code> IDL attribute must return
                   20346:   false.</p>
                   20347: 
                   20348:   <p>Otherwise, the element's <code title="attr-draggable"><a href="#the-draggable-attribute">draggable</a></code> content attribute has the
                   20349:   state <i>auto</i>. If the element is an <code><a href="the-img-element.html#the-img-element">img</a></code> element,
                   20350:   or, if the element is an <code><a href="the-a-element.html#the-a-element">a</a></code> element with an <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> content attribute, the <code title="dom-draggable"><a href="#dom-draggable">draggable</a></code> IDL attribute must return
                   20351:   true.</p>
                   20352: 
                   20353:   <p>Otherwise, the <code title="dom-draggable"><a href="#dom-draggable">draggable</a></code> DOM
                   20354:   must return false.</p>
                   20355: 
                   20356:   <p>If the <code title="dom-draggable"><a href="#dom-draggable">draggable</a></code> IDL attribute
                   20357:   is set to the value false, the <code title="attr-draggable"><a href="#the-draggable-attribute">draggable</a></code> content attribute must be
                   20358:   set to the literal value <code title="">false</code>. If the <code title="dom-draggable"><a href="#dom-draggable">draggable</a></code> IDL attribute is set to the
                   20359:   value true, the <code title="attr-draggable"><a href="#the-draggable-attribute">draggable</a></code>
                   20360:   content attribute must be set to the literal value <code title="">true</code>.</p>
                   20361: 
                   20362:   </div>
                   20363: 
                   20364: 
                   20365:   <h4 id="the-dropzone-attribute"><span class="secno">7.7.8 </span>The <dfn title="attr-dropzone"><code>dropzone</code></dfn> attribute</h4>
                   20366: 
                   20367:   <p>All <a href="infrastructure.html#html-elements">HTML elements</a> may have the <code title="attr-dropzone"><a href="#the-dropzone-attribute">dropzone</a></code> content attribute set. When
                   20368:   specified, its value must be an <a href="common-microsyntaxes.html#unordered-set-of-unique-space-separated-tokens">unordered set of unique
                   20369:   space-separated tokens</a> that are <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   20370:   case-insensitive</a>. The allowed values are the following:</p>
                   20371: 
                   20372:   <dl><dt><dfn id="attr-dropzone-copy" title="attr-dropzone-copy"><code>copy</code></dfn></dt>
                   20373: 
                   20374:    <dd><p>Indicates that dropping an accepted item on the element will
                   20375:    result in a copy of the dragged data.</p>
                   20376: 
                   20377: 
                   20378:    </dd><dt><dfn id="attr-dropzone-move" title="attr-dropzone-move"><code>move</code></dfn></dt>
                   20379: 
                   20380:    <dd><p>Indicates that dropping an accepted item on the element will
                   20381:    result in the dragged data being moved to the new location.</p>
                   20382: 
                   20383: 
                   20384:    </dd><dt><dfn id="attr-dropzone-link" title="attr-dropzone-link"><code>link</code></dfn></dt>
                   20385: 
                   20386:    <dd><p>Indicates that dropping an accepted item on the element will
                   20387:    result in a link to the original data.</p>
                   20388: 
                   20389: 
                   20390:    </dd><dt>Any keyword with eight characters or more, beginning with the
1.198     sruby    20391:    an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">string:</code>"</dt><dd><p>Indicates that items with <a href="#the-drag-data-item-kind">the drag data item
1.190     sruby    20392:    kind</a> <i>Plain Unicode string</i> and <a href="#the-drag-data-item-type-string">the drag data
                   20393:    item type string</a> set to a value that matches the remainder
                   20394:    of the keyword are accepted.</p></dd>
                   20395: 
                   20396: <!--DND-v3:
                   20397:    <dt>Any keyword with six characters or more, beginning with an
                   20398:    <span>ASCII case-insensitive</span> match for the string "<code
                   20399:    title="">blob:</code>"<dt>
                   20400: 
                   20401:    <dd><p>Indicates that items with <span>the drag data item
                   20402:    kind</span> <i>Blob</i>, <i>File</i>, or <i>Plain Unicode
                   20403:    string</i> and <span>the drag data item type string</span> set to a
                   20404:    value that matches the remainder of the keyword are
                   20405:    accepted.</p></dd>
                   20406: -->
                   20407: 
                   20408:    <dt>Any keyword with six characters or more, beginning with an
1.198     sruby    20409:    <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">file:</code>"</dt><dd><p>Indicates that items with <a href="#the-drag-data-item-kind">the drag data item
1.190     sruby    20410:    kind</a> <i><a href="infrastructure.html#file">File</a></i> and <a href="#the-drag-data-item-type-string">the drag data item type
                   20411:    string</a> set to a value that matches the remainder of the
                   20412:    keyword are accepted.</p></dd>
                   20413: 
                   20414: <!--DND-v4:
                   20415:    <dt>Any keyword with eight characters or more, beginning with an
                   20416:    <span>ASCII case-insensitive</span> match for the string "<code
                   20417:    title="">object:</code>"<dt>
                   20418: 
                   20419:    <dd><p>Indicates that items with <span>the drag data item type
                   20420:    string</span> set to a value that matches the remainder of the
                   20421:    keyword are accepted.</p></dd>
                   20422: -->
                   20423: 
                   20424:   </dl><p>The <code title="attr-dropzone"><a href="#the-dropzone-attribute">dropzone</a></code> content
                   20425:   attribute's values must not have more than one of the three feedback
                   20426:   values (<code title="attr-dropzone-copy"><a href="#attr-dropzone-copy">copy</a></code>, <code title="attr-dropzone-move"><a href="#attr-dropzone-move">move</a></code>, and <code title="attr-dropzone-link"><a href="#attr-dropzone-link">link</a></code>) specified. If none are
                   20427:   specified, the <code title="attr-dropzone-copy"><a href="#attr-dropzone-copy">copy</a></code> value is
                   20428:   implied.</p>
                   20429: 
                   20430:   <p>An element with a <code title="attr-dropzone"><a href="#the-dropzone-attribute">dropzone</a></code>
                   20431:   attribute should also have a <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code>
                   20432:   attribute that names the element for the purpose of non-visual
                   20433:   interactions. <!-- "should", not "must", only because this is a
                   20434:   relatively new attribute and its design implications are not
                   20435:   entirely obvious yet. For example, what happens if you use an
                   20436:   element with text as a drop zone? Is that sufficiently clear for
                   20437:   ATs? See also the draggable attribute. --></p>
                   20438: 
                   20439:   <div class="impl">
                   20440: 
                   20441:   <p>A <code title="attr-dropzone"><a href="#the-dropzone-attribute">dropzone</a></code> attribute <dfn id="concept-dropzone-match" title="concept-dropzone-match">matches a drag data store</dfn> if
                   20442:   the <a href="#dropzone-processing-steps"><code title="attr-dropzone">dropzone</code> processing
                   20443:   steps</a> result in a match.</p>
                   20444: 
                   20445:   <p>A <code title="attr-dropzone"><a href="#the-dropzone-attribute">dropzone</a></code> attribute <dfn id="concept-dropzone-operation" title="concept-dropzone-operation">specifies an operation</dfn> if
                   20446:   the <a href="#dropzone-processing-steps"><code title="attr-dropzone">dropzone</code> processing
                   20447:   steps</a> result in a specified operation. The specified
                   20448:   operation is as given by those steps.</p>
                   20449: 
                   20450:   <p>The <dfn id="dropzone-processing-steps"><code title="attr-dropzone">dropzone</code> processing
                   20451:   steps</dfn> are as follows. They either result in a match or not,
                   20452:   and separate from this result either in a specified operation or
                   20453:   not, as defined below.</p>
                   20454: 
                   20455:   <ol><li><p>Let <var title="">value</var> be the value of the <code title="attr-dropzone"><a href="#the-dropzone-attribute">dropzone</a></code> attribute.</p></li>
                   20456: 
                   20457:    <li><p>Let <var title="">keywords</var> be the result of <a href="common-microsyntaxes.html#split-a-string-on-spaces" title="split a string on spaces">splitting <var title="">value</var> on spaces</a>.</p></li>
                   20458: 
                   20459:    <li><p>Let <var title="">matched</var> be false.</p></li>
                   20460: 
                   20461:    <li><p>Let <var title="">operation</var> be unspecified.</p></li>
                   20462: 
                   20463:    <li>
                   20464: 
                   20465:     <p>For each value in <var title="">keywords</var>, if any, in the
                   20466:     order that they were found in <var title="">value</var>, run the
                   20467:     following steps.</p>
                   20468: 
                   20469:     <ol><li><p>Let <var title="">keyword</var> be the keyword.</p></li>
                   20470: 
                   20471:      <li>
                   20472: 
                   20473:       <p>If <var title="">keyword</var> is one of "<code title="attr-dropzone-copy"><a href="#attr-dropzone-copy">copy</a></code>", "<code title="attr-dropzone-move"><a href="#attr-dropzone-move">move</a></code>", or "<code title="attr-dropzone-link"><a href="#attr-dropzone-link">link</a></code>", then: run the following
                   20474:       substeps:</p>
                   20475: 
                   20476:       <ol><li><p>If <var title="">operation</var> is still unspecified,
                   20477:        then let <var title="">operation</var> be the string given by
                   20478:        <var title="">keyword</var>.</p></li>
                   20479: 
                   20480:        <li><p>Skip to the step labeled <i>end of keyword</i>
                   20481:        below.</p></li>
                   20482: 
                   20483:       </ol></li>
                   20484: 
                   20485:      <li><p>If <var title="">keyword</var> does not contain a ":" (U+003A) character, or if the first such character in <var title="">keyword</var> is either the first character or the last
                   20486:      character in the string, then skip to the step labeled <i>end of
                   20487:      keyword</i> below.</p></li>
                   20488: 
                   20489:      <li><p>Let <var title="">kind code</var> be the substring
                   20490:      of <var title="">keyword</var> from the first character in the
                   20491:      string to the last character in the string that is before the
                   20492:      first ":" (U+003A) character in the string, <a href="infrastructure.html#converted-to-ascii-lowercase">converted
                   20493:      to ASCII lowercase</a>.</p>
                   20494: 
                   20495:      </li><li>
                   20496: 
                   20497:       <p>Jump to the appropriate step from the list below, based on
                   20498:       the value of <var title="">kind code</var>:</p>
                   20499: 
                   20500:       <dl class="switch"><dt>If <var title="">kind code</var> is the string "<code title="">string</code>"</dt>
                   20501:        <dd>
                   20502: 
                   20503:         <p>Let <var title="">kind<!--DND-v3:/DND-v4: s--></var> be
                   20504:         <i>Plain Unicode string</i>.</p>
                   20505: 
                   20506:        </dd>
                   20507: 
                   20508: <!--DND-v3:
                   20509:        <dt>If <var title="">kind code</var> is the string "<code title="">blob</code>"</dt>
                   20510:        <dd>
                   20511: 
                   20512:         <p>Let <var title="">kinds</var> be <i>Plain Unicode
                   20513:         string</i>, <i>Blob</i>, and <i>File</i>.</p>
                   20514: 
                   20515:        </dd>
                   20516: -->
                   20517: 
                   20518:        <dt>If <var title="">kind code</var> is the string "<code title="">file</code>"</dt>
                   20519:        <dd>
                   20520: 
                   20521:         <p>Let <var title="">kind<!--DND-v3:/DND-v4: s--></var> be
                   20522:         <i><a href="infrastructure.html#file">File</a></i>.</p>
                   20523: 
                   20524:        </dd>
                   20525: 
                   20526: <!--DND-v4:
                   20527:        <dt>If <var title="">kind code</var> is the string "<code title="">object</code>"</dt>
                   20528:        <dd>
                   20529: 
                   20530:         <p>Let <var title="">kinds</var> be <i>Plain Unicode
                   20531:         string</i>, <i>Blob</i>, <i>File</i>, and <i>Object</i>.</p>
                   20532: 
                   20533:        </dd>
                   20534: -->
                   20535: 
                   20536:        <dt>Otherwise</dt>
                   20537:        <dd>
                   20538: 
                   20539:         <p>Skip to the step labeled <i>end of keyword</i> below.</p>
                   20540: 
                   20541:        </dd>
                   20542: 
                   20543:       </dl></li>
                   20544: 
                   20545:      <li><p>Let <var title="">type</var> be the substring of <var title="">keyword</var> from the first character after the first
                   20546:      ":" (U+003A) character in the string, to the last character
                   20547:      in the string, <a href="infrastructure.html#converted-to-ascii-lowercase">converted to ASCII
                   20548:      lowercase</a>.</p></li>
                   20549: 
                   20550:      <li><p>If there exist any items in the <a href="#drag-data-store-item-list">drag data store item
                   20551:      list</a> whose <a href="#the-drag-data-item-kind" title="the drag data item kind">drag data
                   20552:      item kind</a> is <!--DND-v3:/DND-v4: one of--> the
                   20553:      kind<!--DND-v3:/DND-v4: s--> given in <var title="">kind<!--DND-v3:/DND-v4: s--></var> and whose <span title="the drag data item type">drag data item type</span> is
                   20554:      <var title="">type</var>, then let <var title="">matched</var> be
                   20555:      true.</p></li>
                   20556: 
                   20557:      <li><p><i>End of keyword</i>: Go on to the next keyword, if any,
                   20558:      or the next step in the overall algorithm, if there are no
                   20559:      more.</p></li>
                   20560: 
                   20561:     </ol></li>
                   20562: 
                   20563:    <li>
                   20564: 
                   20565:     <p>The algorithm results in a match if <var title="">matched</var>
                   20566:     is true, and does not otherwise.</p>
                   20567: 
                   20568:     <p>The algorithm results in a specified operation if <var title="">operation</var> is not unspecified. The specified
                   20569:     operation, if one is specified, is the one given by <var title="">operation</var>.</p>
                   20570: 
                   20571:    </li>
                   20572: 
                   20573:   </ol><p>The <dfn id="dom-dropzone" title="dom-dropzone"><code>dropzone</code></dfn> IDL
                   20574:   attribute must <a href="common-dom-interfaces.html#reflect">reflect</a> the content attribute of the
                   20575:   same name.</p>
                   20576: 
                   20577:   </div>
                   20578: 
                   20579:   <div class="example">
                   20580: 
                   20581:    <p>In this example, a <code><a href="the-div-element.html#the-div-element">div</a></code> element is made into a drop
                   20582:    target for image files using the <code title="attr-dropzone"><a href="#the-dropzone-attribute">dropzone</a></code> attribute. Images dropped
                   20583:    into the target are then displayed.</p>
                   20584: 
                   20585:    <pre>&lt;div dropzone="copy file:image/png file:image/gif file:image/jpeg" ondrop="receive(event, this)"&gt;
                   20586:  &lt;p&gt;Drop an image here to have it displayed.&lt;/p&gt;
                   20587: &lt;/div&gt;
                   20588: &lt;script&gt;
                   20589:  function receive(event, element) {
                   20590:    var data = event.dataTransfer.items;
                   20591:    for (var i = 0; i &lt; data.length; i += 1) {
                   20592:      if ((data[i].kind == 'file') &amp;&amp; (data[i].type.match('^image/'))) {
                   20593:        var img = new Image();
                   20594:        img.src = window.createObjectURL(data[i].getAsFile());
                   20595:        element.appendChild(img);
                   20596:      }
                   20597:    }
                   20598:  }
                   20599: &lt;/script&gt;</pre>
                   20600: 
                   20601:   </div>
                   20602: 
                   20603: 
                   20604: <!--
                   20605:   <h4>Copy and paste</h4>
                   20606: 
                   20607:   <p>Copy-and-paste is a form of drag-and-drop: the "copy" part is
                   20608:   equivalent to dragging content to another application (the
                   20609:   "clipboard"), and the "paste" part is equivalent to dragging content
                   20610:   <em>from</em> another application.</p>
                   20611: 
                   20612:   <p>Select-and-paste (a model used by mouse operations in the X
                   20613:   Window System) is equivalent to a drag-and-drop operation where the
                   20614:   source is the selection.</p>
                   20615: 
                   20616: 
                   20617:   <div class="impl">
                   20618: 
                   20619:   <h5>Copy to clipboard</h5>
                   20620: 
                   20621:   <p>When the user invokes a copy operation, the user agent must act
                   20622:   as if the user had invoked a drag on the current selection. If the
                   20623:   drag-and-drop operation initiates, then the user agent must act as
                   20624:   if the user had indicated (as the <span>immediate user
                   20625:   selection</span>) a hypothetical application representing the
                   20626:   clipboard. Then, the user agent must act as if the user had ended
                   20627:   the drag-and-drop operation without canceling it. If the
                   20628:   drag-and-drop operation didn't get canceled, the user agent should
                   20629:   then follow the relevant platform-specific conventions for copy
                   20630:   operations (e.g. updating the clipboard).</p>
                   20631: 
                   20632:   <p>The events involved in this process are the <code
                   20633:   title="event-dragstart">dragstart</code>, <code
                   20634:   title="event-drag">drag</code>, and <code
                   20635:   title="event-dragend">dragend</code> events.</p>
                   20636: 
                   20637: 
                   20638:   <h5>Cut to clipboard</h5>
                   20639: 
                   20640:   <p>When the user invokes a cut operation, the user agent must act as
                   20641:   if the user had invoked a copy operation (see the previous section),
                   20642:   followed, if the copy was completed successfully, by <a
                   20643:   href="#contenteditable-delete">a selection delete operation</a>.</p>
                   20644: 
                   20645:   <p>The events involved in this process are the <code
                   20646:   title="event-dragstart">dragstart</code>, <code
                   20647:   title="event-drag">drag</code>, and <code
                   20648:   title="event-dragend">dragend</code> events.</p>
                   20649: 
                   20650: 
                   20651:   <h5>Paste from clipboard</h5>
                   20652: 
                   20653:   <p>When the user invokes a clipboard paste operation, the user agent
                   20654:   must act as if the user had invoked a drag on a hypothetical
                   20655:   application representing the clipboard, setting the data associated
                   20656:   with the drag as the content on the clipboard (in whatever formats
                   20657:   are available).</p>
                   20658: 
                   20659:   <p>Then, the user agent must act as if the user had indicated (as
                   20660:   the <span>immediate user selection</span>) the element with the
                   20661:   keyboard focus, and then ended the drag-and-drop operation without
                   20662:   canceling it.</p>
                   20663: 
                   20664:   <p>The events involved in this process are the <code
                   20665:   title="event-dragenter">dragenter</code>, <code
                   20666:   title="event-dragover">dragover</code>, <code
                   20667:   title="event-dragleave">dragleave</code>, and <code
                   20668:   title="event-drop">drop</code> events.</p>
                   20669: 
                   20670: 
                   20671:   <h5>Paste from selection</h5>
                   20672: 
                   20673:   <p>When the user invokes a selection paste operation, the user agent
                   20674:   must act as if the user had invoked a drag on the current selection,
                   20675:   then indicated (as the <span>immediate user selection</span>) the
                   20676:   element with the keyboard focus, and then ended the drag-and-drop
                   20677:   operation without canceling it.</p>
                   20678: 
                   20679:   <p>All the drag-and-drop events can be involved in this process.</p>
                   20680: 
                   20681:   </div>
                   20682: -->
                   20683: 
                   20684: 
                   20685: <!--ADD-TOPIC:Security-->
                   20686:   <div class="impl">
                   20687: 
                   20688:   <h4 id="security-risks-in-the-drag-and-drop-model"><span class="secno">7.7.9 </span>Security risks in the drag-and-drop model</h4>
                   20689: 
                   20690:   <p>User agents must not make the data added to the
                   20691:   <code><a href="#datatransfer">DataTransfer</a></code> object during the <code title="event-dragstart"><a href="#event-dragstart">dragstart</a></code> event available to scripts
                   20692:   until the <code title="event-drop"><a href="#event-drop">drop</a></code> event, because
                   20693:   otherwise, if a user were to drag sensitive information from one
                   20694:   document to a second document, crossing a hostile third document in
                   20695:   the process, the hostile document could intercept the data.</p>
                   20696: 
                   20697:   <p>For the same reason, user agents must consider a drop to be
                   20698:   successful only if the user specifically ended the drag operation
                   20699:   &#8212; if any scripts end the drag operation, it must be considered
                   20700:   unsuccessful (canceled) and the <code title="event-drop"><a href="#event-drop">drop</a></code>
                   20701:   event must not be fired.</p>
                   20702: 
                   20703:   <p>User agents should take care to not start drag-and-drop
                   20704:   operations in response to script actions. For example, in a
                   20705:   mouse-and-window environment, if a script moves a window while the
                   20706:   user has his mouse button depressed, the UA would not consider that
                   20707:   to start a drag. This is important because otherwise UAs could cause
                   20708:   data to be dragged from sensitive sources and dropped into hostile
                   20709:   documents without the user's consent.</p>
                   20710: 
                   20711:   <p>User agents should filter potentially active (scripted) content
                   20712:   (e.g. HTML) when it is dragged and when it is dropped, using a
                   20713:   whitelist of known-safe features. Similarly, relative URLs should be
                   20714:   turned into absolute URLs to avoid references changing in unexpected
                   20715:   ways. This specification does not specify how this is performed.</p>
                   20716: 
                   20717:   <div class="example">
                   20718: 
                   20719:    <p>Consider a hostile page providing some content and getting the
                   20720:    user to select and drag and drop (or indeed, copy and paste) that
                   20721:    content to a victim page's <code title="attr-contenteditable"><a href="#attr-contenteditable">contenteditable</a></code> region. If the
                   20722:    browser does not ensure that only safe content is dragged,
                   20723:    potentially unsafe content such as scripts and event handlers in
                   20724:    the selection, once dropped (or pasted) into the victim site, get
                   20725:    the privileges of the victim site. This would thus enable a
                   20726:    cross-site scripting attack.</p>
                   20727: 
                   20728:   </div>
                   20729: 
                   20730:   </div>
                   20731: <!--REMOVE-TOPIC:Security-->
                   20732: 
                   20733: 
                   20734: <!--FIND-->
                   20735: 
                   20736: <!--POSTMSG-->
                   20737: <!--POSTMSG-->
                   20738: <!--TOPIC:HTML Syntax and Parsing-->
                   20739: 
                   20740:   <h2 id="syntax"><span class="secno">8 </span><dfn>The HTML syntax</dfn></h2>
                   20741: 
                   20742:   <p class="note">This section only describes the rules for resources
                   20743:   labeled with an <a href="infrastructure.html#html-mime-type">HTML MIME type</a>. Rules for XML resources
                   20744:   are discussed in the section below entitled "<a href="#the-xhtml-syntax">The XHTML
                   20745:   syntax</a>".</p>
                   20746: 
                   20747: 
                   20748:   <h3 id="writing"><span class="secno">8.1 </span>Writing HTML documents</h3>
                   20749: 
                   20750:   <div class="impl">
                   20751: 
                   20752:   <p><i>This section only applies to documents, authoring tools, and
                   20753:   markup generators. In particular, it does not apply to conformance
                   20754:   checkers; conformance checkers must use the requirements given in
                   20755:   the next section ("parsing HTML documents").</i></p>
                   20756: 
                   20757:   </div>
                   20758: 
                   20759:   <p>Documents must consist of the following parts, in the given
                   20760:   order:</p>
                   20761: 
                   20762:   <ol><li>Optionally, a single "BOM" (U+FEFF) character.</li>
                   20763: 
                   20764:    <li>Any number of <a href="#syntax-comments" title="syntax-comments">comments</a> and
                   20765:    <a href="common-microsyntaxes.html#space-character" title="space character">space characters</a>.</li>
                   20766: 
                   20767:    <li>A <a href="#syntax-doctype" title="syntax-doctype">DOCTYPE</a>.
                   20768: 
                   20769:    </li><li>Any number of <a href="#syntax-comments" title="syntax-comments">comments</a> and
                   20770:    <a href="common-microsyntaxes.html#space-character" title="space character">space characters</a>.</li>
                   20771: 
                   20772:    <li>The root element, in the form of an <code><a href="the-html-element.html#the-html-element">html</a></code> <a href="#syntax-elements" title="syntax-elements">element</a>.</li>
                   20773: 
                   20774:    <li>Any number of <a href="#syntax-comments" title="syntax-comments">comments</a> and
                   20775:    <a href="common-microsyntaxes.html#space-character" title="space character">space characters</a>.</li>
                   20776: 
                   20777:   </ol><p>The various types of content mentioned above are described in the
                   20778:   next few sections.</p>
                   20779: 
                   20780:   <p>In addition, there are some restrictions on how <a href="the-meta-element.html#character-encoding-declaration" title="character encoding declaration">character encoding
                   20781:   declarations</a> are to be serialized, as discussed in the
                   20782:   section on that topic.</p>
                   20783: 
                   20784:   <div class="note">
                   20785: 
                   20786:    <p>Space characters before the root <code><a href="the-html-element.html#the-html-element">html</a></code> element, and
                   20787:    space characters at the start of the <code><a href="the-html-element.html#the-html-element">html</a></code> element and
                   20788:    before the <code><a href="the-head-element.html#the-head-element">head</a></code> element, will be dropped when the
                   20789:    document is parsed; space characters <em>after</em> the root
                   20790:    <code><a href="the-html-element.html#the-html-element">html</a></code> element will be parsed as if they were at the end
                   20791:    of the <code><a href="the-body-element.html#the-body-element">body</a></code> element. Thus, space characters around the
                   20792:    root element do not round-trip.</p>
                   20793: 
                   20794:    <p>It is suggested that newlines be inserted after the DOCTYPE,
                   20795:    after any comments that are before the root element, after the
                   20796:    <code><a href="the-html-element.html#the-html-element">html</a></code> element's start tag (if it is not <a href="#syntax-tag-omission" title="syntax-tag-omission">omitted</a>), and after any comments
                   20797:    that are inside the <code><a href="the-html-element.html#the-html-element">html</a></code> element but before the
                   20798:    <code><a href="the-head-element.html#the-head-element">head</a></code> element.</p>
                   20799: 
                   20800:   </div>
                   20801: 
                   20802:   <p>Many strings in the HTML syntax (e.g. the names of elements and
                   20803:   their attributes) are case-insensitive, but only for characters in
                   20804:   the ranges U+0041 to U+005A (LATIN CAPITAL LETTER A to LATIN CAPITAL
                   20805:   LETTER Z) and U+0061 to U+007A (LATIN SMALL LETTER A to LATIN SMALL
                   20806:   LETTER Z). For convenience, in this section this is just referred to
                   20807:   as "case-insensitive".</p>
                   20808: 
                   20809: 
                   20810:   <h4 id="the-doctype"><span class="secno">8.1.1 </span>The DOCTYPE</h4>
                   20811: 
                   20812:   <p>A <dfn id="syntax-doctype" title="syntax-doctype">DOCTYPE</dfn> is a <!-- mostly
                   20813:   useless but nonetheless --> required preamble.</p>
                   20814: 
                   20815:   <p class="note">DOCTYPEs are required for legacy reasons. When
                   20816:   omitted, browsers tend to use a different rendering mode that is
                   20817:   incompatible with some specifications. Including the DOCTYPE in a
                   20818:   document ensures that the browser makes a best-effort attempt at
                   20819:   following the relevant specifications.</p>
                   20820: 
                   20821:   <p>A DOCTYPE must consist of the following components, in this
                   20822:   order:</p>
                   20823: 
                   20824:   <ol class="brief"><li>A string that is an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">&lt;!DOCTYPE</code>".</li>
                   20825:    <li>One or more <a href="common-microsyntaxes.html#space-character" title="space character">space characters</a>.</li>
                   20826:    <li>A string that is an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">html</code>".</li>
                   20827:    <li>Optionally, a <a href="#doctype-legacy-string">DOCTYPE legacy string</a> or an <a href="#obsolete-permitted-doctype-string">obsolete permitted DOCTYPE string</a> (defined below).</li>
                   20828:    <li>Zero or more <a href="common-microsyntaxes.html#space-character" title="space character">space characters</a>.</li>
                   20829:    <li>A U+003E GREATER-THAN SIGN character (&gt;).</li>
                   20830:   </ol><p class="note">In other words, <code>&lt;!DOCTYPE html&gt;</code>,
                   20831:   case-insensitively.</p>
                   20832: 
                   20833:   <hr><p>For the purposes of HTML generators that cannot output HTML
                   20834:   markup with the short DOCTYPE "<code title="">&lt;!DOCTYPE
                   20835:   html&gt;</code>", a <dfn id="doctype-legacy-string">DOCTYPE legacy string</dfn> may be inserted
                   20836:   into the DOCTYPE (in the position defined above). This string must
                   20837:   consist of:</p>
                   20838: 
                   20839:   <ol class="brief"><li>One or more <a href="common-microsyntaxes.html#space-character" title="space character">space characters</a>.</li>
                   20840:    <li>A string that is an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">SYSTEM</code>".</li>
                   20841:    <li>One or more <a href="common-microsyntaxes.html#space-character" title="space character">space characters</a>.</li>
                   20842:    <li>A U+0022 QUOTATION MARK or U+0027 APOSTROPHE character (the <i>quote mark</i>).</li>
                   20843:    <li>The literal string "<code><a href="urls.html#about:legacy-compat">about:legacy-compat</a></code>".</li>
                   20844:    <li>A matching U+0022 QUOTATION MARK or U+0027 APOSTROPHE character (i.e. the same character as in the earlier step labeled <i>quote mark</i>).</li>
                   20845:   </ol><p class="note">In other words, <code>&lt;!DOCTYPE html SYSTEM
                   20846:   "about:legacy-compat"&gt;</code> or <code>&lt;!DOCTYPE html SYSTEM
                   20847:   'about:legacy-compat'&gt;</code>, case-insensitively except for the
                   20848:   part in single or double quotes.</p>
                   20849: 
                   20850:   <p>The <a href="#doctype-legacy-string">DOCTYPE legacy string</a> should not be used unless
                   20851:   the document is generated from a system that cannot output the
                   20852:   shorter string.</p>
                   20853: 
                   20854:   <hr><!-- see the parser section before changing this bit --><p>To help authors transition from HTML4 and XHTML1, an
                   20855:   <dfn id="obsolete-permitted-doctype-string">obsolete permitted DOCTYPE string</dfn> can be inserted into
                   20856:   the DOCTYPE (in the position defined above). This string must
                   20857:   consist of:</p>
                   20858: 
                   20859:   <ol class="brief"><li>One or more <a href="common-microsyntaxes.html#space-character" title="space character">space characters</a>.</li>
                   20860:    <li>A string that is an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">PUBLIC</code>".</li>
                   20861:    <li>One or more <a href="common-microsyntaxes.html#space-character" title="space character">space characters</a>.</li>
                   20862:    <li>A U+0022 QUOTATION MARK or U+0027 APOSTROPHE character (the <i>first quote mark</i>).</li>
                   20863:    <li>The string from one of the cells in the first column of the table below. The row to which this cell belongs is the <i>selected row</i>.</li>
                   20864:    <li>A matching U+0022 QUOTATION MARK or U+0027 APOSTROPHE character (i.e. the same character as in the earlier step labeled <i>first quote mark</i>).</li>
                   20865:    <li>If the cell in the second column of the <i>selected row</i> is not blank, one or more <a href="common-microsyntaxes.html#space-character" title="space character">space characters</a>.</li>
                   20866:    <li>If the cell in the second column of the <i>selected row</i> is not blank, a U+0022 QUOTATION MARK or U+0027 APOSTROPHE character (the <i>third quote mark</i>).</li>
                   20867:    <li>If the cell in the second column of the <i>selected row</i> is not blank, the string from the cell in the second column of the <i>selected row</i>.</li>
                   20868:    <li>If the cell in the second column of the <i>selected row</i> is not blank, a matching U+0022 QUOTATION MARK or U+0027 APOSTROPHE character (i.e. the same character as in the earlier step labeled <i>third quote mark</i>).</li>
                   20869:   </ol><table><caption>
                   20870:     Allowed values for public and system identifiers in an <a href="#obsolete-permitted-doctype-string">obsolete permitted DOCTYPE string</a>.
                   20871:    </caption>
                   20872:    <thead><tr><th> Public identifier
                   20873:      </th><th> System identifier
                   20874:    </th></tr></thead><tbody><tr><td> <code title="">-//W3C//DTD&#160;HTML&#160;4.0//EN</code>
                   20875:      </td><td>
                   20876:     </td></tr><tr><td> <code title="">-//W3C//DTD&#160;HTML&#160;4.0//EN</code>
                   20877:      </td><td> <code title="">http://www.w3.org/TR/REC-html40/strict.dtd</code>
                   20878:     </td></tr><tr><td> <code title="">-//W3C//DTD&#160;HTML&#160;4.01//EN</code>
                   20879:      </td><td>
                   20880:     </td></tr><tr><td> <code title="">-//W3C//DTD&#160;HTML&#160;4.01//EN</code>
                   20881:      </td><td> <code title="">http://www.w3.org/TR/html4/strict.dtd</code>
                   20882:     </td></tr><tr><td> <code title="">-//W3C//DTD&#160;XHTML&#160;1.0&#160;Strict//EN</code>
                   20883:      </td><td> <code title="">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</code>
                   20884:     </td></tr><tr><td> <code title="">-//W3C//DTD&#160;XHTML&#160;1.1//EN</code>
                   20885:      </td><td> <code title="">http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd</code>
                   20886:   </td></tr></tbody></table><p>A <a href="#syntax-doctype" title="syntax-doctype">DOCTYPE</a> containing an
                   20887:   <a href="#obsolete-permitted-doctype-string">obsolete permitted DOCTYPE string</a> is an <dfn id="obsolete-permitted-doctype">obsolete
                   20888:   permitted DOCTYPE</dfn>. Authors should not use <a href="#obsolete-permitted-doctype" title="obsolete permitted DOCTYPE">obsolete permitted
                   20889:   DOCTYPEs</a>, as they are unnecessarily long.</p>
                   20890: 
                   20891: 
                   20892: 
                   20893: 
                   20894:   <h4 id="elements-0"><span class="secno">8.1.2 </span>Elements</h4>
                   20895: 
                   20896:   <p>There are five different kinds of <dfn id="syntax-elements" title="syntax-elements">elements</dfn>: <a href="#void-elements">void elements</a>,
                   20897:   <a href="#raw-text-elements">raw text elements</a>, <a href="#rcdata-elements">RCDATA elements</a>,
                   20898:   <a href="#foreign-elements">foreign elements</a>, and <a href="#normal-elements">normal elements</a>.</p>
                   20899: 
                   20900:   <dl><dt><dfn id="void-elements">Void elements</dfn></dt>
                   20901: 
                   20902:    <dd><code><a href="the-area-element.html#the-area-element">area</a></code>, <code><a href="the-base-element.html#the-base-element">base</a></code>, <code><a href="the-br-element.html#the-br-element">br</a></code>,
                   20903:    <code><a href="the-col-element.html#the-col-element">col</a></code>, <code><a href="#the-command-element">command</a></code>, <code><a href="the-embed-element.html#the-embed-element">embed</a></code>,
                   20904:    <code><a href="the-hr-element.html#the-hr-element">hr</a></code>, <code><a href="the-img-element.html#the-img-element">img</a></code>, <code><a href="the-input-element.html#the-input-element">input</a></code>,
                   20905:    <code><a href="the-keygen-element.html#the-keygen-element">keygen</a></code>, <code><a href="the-link-element.html#the-link-element">link</a></code>, <code><a href="the-meta-element.html#the-meta-element">meta</a></code>,
                   20906:    <code><a href="the-param-element.html#the-param-element">param</a></code>, <code><a href="the-source-element.html#the-source-element">source</a></code>, <code><a href="the-track-element.html#the-track-element">track</a></code>,
                   20907:    <code><a href="the-wbr-element.html#the-wbr-element">wbr</a></code></dd>
                   20908:    <!-- see also other places that say VOIDLIST -->
                   20909: 
                   20910:    <dt><dfn id="raw-text-elements">Raw text elements</dfn></dt>
                   20911: 
                   20912:    <dd><code><a href="the-script-element.html#the-script-element">script</a></code>, <code><a href="the-style-element.html#the-style-element">style</a></code></dd> <!-- iframe and
                   20913:    noscript don't count as raw text for syntax purposes -->
                   20914: 
                   20915:    <dt><dfn id="rcdata-elements">RCDATA elements</dfn></dt>
                   20916: 
                   20917:    <dd><code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>, <code><a href="the-title-element.html#the-title-element">title</a></code></dd>
                   20918: 
                   20919:    <dt><dfn id="foreign-elements">Foreign elements</dfn></dt>
                   20920: 
                   20921:    <dd>Elements from the <a href="namespaces.html#mathml-namespace">MathML namespace</a>
                   20922:    and the <a href="namespaces.html#svg-namespace">SVG namespace</a>.</dd>
                   20923: 
                   20924:    <dt><dfn id="normal-elements">Normal elements</dfn></dt>
                   20925: 
                   20926:    <dd>All other allowed <a href="infrastructure.html#html-elements">HTML elements</a> are normal
                   20927:    elements.</dd>
                   20928: 
                   20929:   </dl><p><dfn id="syntax-tags" title="syntax-tags">Tags</dfn> are used to delimit the start
                   20930:   and end of elements in the markup. <a href="#raw-text-elements" title="raw text
                   20931:   elements">Raw text</a>, <a href="#rcdata-elements" title="RCDATA
                   20932:   elements">RCDATA</a>, and <a href="#normal-elements" title="normal
                   20933:   elements">normal</a> elements have a <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> to indicate where they
                   20934:   begin, and an <a href="#syntax-end-tag" title="syntax-end-tag">end tag</a> to
                   20935:   indicate where they end. The start and end tags of certain
                   20936:   <a href="#normal-elements">normal elements</a> can be <a href="#syntax-tag-omission" title="syntax-tag-omission">omitted</a>, as described
                   20937:   later. Those that cannot be omitted must not be omitted. <a href="#void-elements">Void
                   20938:   elements</a> only have a start tag; end tags must not be
                   20939:   specified for <a href="#void-elements">void elements</a>. <a href="#foreign-elements">Foreign
                   20940:   elements</a> must either have a start tag and an end tag, or a
                   20941:   start tag that is marked as self-closing, in which case they must
                   20942:   not have an end tag.</p>
                   20943: 
                   20944:   <p>The contents of the element must be placed between just after the
                   20945:   start tag (which <a href="#syntax-tag-omission" title="syntax-tag-omission">might be implied,
                   20946:   in certain cases</a>) and just before the end tag (which again,
                   20947:   <a href="#syntax-tag-omission" title="syntax-tag-omission">might be implied in certain
                   20948:   cases</a>). The exact allowed contents of each individual element
                   20949:   depend on the content model of that element, as described earlier in
                   20950:   this specification. Elements must not contain content that their
                   20951:   content model disallows. In addition to the restrictions placed on
                   20952:   the contents by those content models, however, the five types of
                   20953:   elements have additional <em>syntactic</em> requirements.</p>
                   20954: 
                   20955:   <p><a href="#void-elements">Void elements</a> can't have any contents (since there's
                   20956:   no end tag, no content can be put between the start tag and the end
                   20957:   tag).</p>
                   20958: 
                   20959:   <p><a href="#raw-text-elements">Raw text elements</a> can have <a href="#syntax-text" title="syntax-text">text</a>, though it has <a href="#cdata-rcdata-restrictions">restrictions</a> described
                   20960:   below.</p>
                   20961: 
                   20962:   <p><a href="#rcdata-elements">RCDATA elements</a> can have <a href="#syntax-text" title="syntax-text">text</a> and <a href="#syntax-charref" title="syntax-charref">character references</a>, but the text
                   20963:   must not contain an <a href="#syntax-ambiguous-ampersand" title="syntax-ambiguous-ampersand">ambiguous ampersand</a>.
                   20964:   There are also <a href="#cdata-rcdata-restrictions">further
                   20965:   restrictions</a> described below.</p>
                   20966: 
                   20967:   <p><a href="#foreign-elements">Foreign elements</a> whose start tag is marked as
                   20968:   self-closing can't have any contents (since, again, as there's no
                   20969:   end tag, no content can be put between the start tag and the end
                   20970:   tag). <a href="#foreign-elements">Foreign elements</a> whose start tag is <em>not</em>
                   20971:   marked as self-closing can have <a href="#syntax-text" title="syntax-text">text</a>, <a href="#syntax-charref" title="syntax-charref">character references</a>, <a href="#syntax-cdata" title="syntax-cdata">CDATA sections</a>, other <a href="#syntax-elements" title="syntax-elements">elements</a>, and <a href="#syntax-comments" title="syntax-comments">comments</a>, but the text must not
                   20972:   contain the character U+003C LESS-THAN SIGN (&lt;) or an <a href="#syntax-ambiguous-ampersand" title="syntax-ambiguous-ampersand">ambiguous ampersand</a>.</p>
                   20973: 
                   20974:   <div class="note">
                   20975: 
                   20976:    <p>The HTML syntax does not support namespace
                   20977:    declarations, even in <a href="#foreign-elements">foreign elements</a>.</p>
                   20978: 
                   20979:    <p>For instance, consider the following HTML fragment:</p>
                   20980: 
                   20981:    <pre>&lt;p&gt;
                   20982:  &lt;svg&gt;
                   20983:   &lt;metadata&gt;
                   20984:    &lt;!-- this is invalid --&gt;
                   20985:    &lt;cdr:license xmlns:cdr="http://www.example.com/cdr/metadata" name="MIT"/&gt;
                   20986:   &lt;/metadata&gt;
                   20987:  &lt;/svg&gt;
                   20988: &lt;/p&gt;</pre>
                   20989: 
                   20990:    <p>The innermost element, <code title="">cdr:license</code>, is
                   20991:    actually in the SVG namespace, as the "<code title="">xmlns:cdr</code>" attribute has no effect (unlike in
                   20992:    XML). In fact, as the comment in the fragment above says, the
                   20993:    fragment is actually non-conforming. This is because the SVG
                   20994:    specification does not define any elements called "<code title="">cdr:license</code>" in the SVG namespace.</p>
                   20995: 
                   20996:   </div>
                   20997: 
                   20998:   <p><a href="#normal-elements">Normal elements</a> can have <a href="#syntax-text" title="syntax-text">text</a>, <a href="#syntax-charref" title="syntax-charref">character references</a>, other <a href="#syntax-elements" title="syntax-elements">elements</a>, and <a href="#syntax-comments" title="syntax-comments">comments</a>, but the text must not
                   20999:   contain the character U+003C LESS-THAN SIGN (&lt;) or an <a href="#syntax-ambiguous-ampersand" title="syntax-ambiguous-ampersand">ambiguous ampersand</a>. Some
                   21000:   <a href="#normal-elements">normal elements</a> also have <a href="#element-restrictions">yet more restrictions</a> on what
                   21001:   content they are allowed to hold, beyond the restrictions imposed by
                   21002:   the content model and those described in this paragraph. Those
                   21003:   restrictions are described below.</p>
                   21004: 
                   21005:   <p>Tags contain a <dfn id="syntax-tag-name" title="syntax-tag-name">tag name</dfn>,
                   21006:   giving the element's name. HTML elements all have names that only
                   21007:   use characters in the range <a href="common-microsyntaxes.html#ascii-digits">ASCII digits</a>, <a href="common-microsyntaxes.html#lowercase-ascii-letters">lowercase ASCII letters</a>, and <a href="common-microsyntaxes.html#uppercase-ascii-letters">uppercase ASCII letters</a>. In the HTML syntax, tag names, even those for <a href="#foreign-elements">foreign
                   21008:   elements</a>, may be written with any mix of lower- and uppercase
                   21009:   letters that, when converted to all-lowercase, matches the element's
                   21010:   tag name; tag names are case-insensitive.</p>
                   21011: 
                   21012: 
                   21013:   <h5 id="start-tags"><span class="secno">8.1.2.1 </span>Start tags</h5>
                   21014: 
                   21015:   <p><dfn id="syntax-start-tag" title="syntax-start-tag">Start tags</dfn> must have the
                   21016:   following format:</p>
                   21017: 
                   21018:   <ol><li>The first character of a start tag must be a U+003C LESS-THAN
                   21019:    SIGN character (&lt;).</li>
                   21020: 
                   21021:    <li>The next few characters of a start tag must be the element's
                   21022:    <a href="#syntax-tag-name" title="syntax-tag-name">tag name</a>.</li>
                   21023: 
                   21024:    <li>If there are to be any attributes in the next step, there must
                   21025:    first be one or more <a href="common-microsyntaxes.html#space-character" title="space character">space
                   21026:    characters</a>.</li>
                   21027: 
                   21028:    <li>Then, the start tag may have a number of attributes, the <a href="#syntax-attributes" title="syntax-attributes">syntax for which</a> is described
                   21029:    below. Attributes must be separated from each other by one or more
                   21030:    <a href="common-microsyntaxes.html#space-character" title="space character">space characters</a>.</li>
                   21031: 
                   21032:    <li>After the attributes, or after the <a href="#syntax-tag-name" title="syntax-tag-name">tag name</a> if there are no attributes,
                   21033:    there may be one or more <a href="common-microsyntaxes.html#space-character" title="space character">space
                   21034:    characters</a>. (Some attributes are required to be followed by
                   21035:    a space. See the <a href="#syntax-attributes" title="syntax-attributes">attributes
                   21036:    section</a> below.)</li>
                   21037: 
                   21038:    <li>Then, if the element is one of the <a href="#void-elements">void elements</a>,
                   21039:    or if the element is a <a href="#foreign-elements" title="foreign elements">foreign
                   21040:    element</a>, then there may be a single U+002F SOLIDUS character
                   21041:    (/). This character has no effect on <a href="#void-elements">void elements</a>,
                   21042:    but on <a href="#foreign-elements">foreign elements</a> it marks the start tag as
                   21043:    self-closing.</li>
                   21044: 
                   21045:    <li>Finally, start tags must be closed by a U+003E GREATER-THAN
                   21046:    SIGN character (&gt;).</li>
                   21047: 
                   21048:   </ol><h5 id="end-tags"><span class="secno">8.1.2.2 </span>End tags</h5>
                   21049: 
                   21050:   <p><dfn id="syntax-end-tag" title="syntax-end-tag">End tags</dfn> must have the
                   21051:   following format:</p>
                   21052: 
                   21053:   <ol><li>The first character of an end tag must be a U+003C LESS-THAN
                   21054:    SIGN character (&lt;).</li>
                   21055: 
                   21056:    <li>The second character of an end tag must be a "/" (U+002F) character.</li>
                   21057: 
                   21058:    <li>The next few characters of an end tag must be the element's
                   21059:    <a href="#syntax-tag-name" title="syntax-tag-name">tag name</a>.</li>
                   21060: 
                   21061:    <li>After the tag name, there may be one or more <a href="common-microsyntaxes.html#space-character" title="space
                   21062:    character">space characters</a>.</li>
                   21063: 
                   21064:    <li>Finally, end tags must be closed by a U+003E GREATER-THAN SIGN
                   21065:    character (&gt;).</li>
                   21066: 
                   21067:   </ol><h5 id="attributes-0"><span class="secno">8.1.2.3 </span>Attributes</h5>
                   21068: 
                   21069:   <p><dfn id="syntax-attributes" title="syntax-attributes">Attributes</dfn> for an element
                   21070:   are expressed inside the element's start tag.</p>
                   21071: 
                   21072:   <p>Attributes have a name and a value. <dfn id="syntax-attribute-name" title="syntax-attribute-name">Attribute names</dfn> must consist of
                   21073:   one or more characters other than the <a href="common-microsyntaxes.html#space-character" title="space
                   21074:   character">space characters</a>, U+0000 NULL, U+0022 QUOTATION
                   21075:   MARK ("), U+0027 APOSTROPHE ('), U+003E GREATER-THAN SIGN
                   21076:   (&gt;), "/" (U+002F), and "=" (U+003D) characters,
                   21077:   the control characters, and any characters that are not defined by
                   21078:   Unicode. In the HTML syntax, attribute names, even those for
                   21079:   <a href="#foreign-elements">foreign elements</a>, may be written with any mix of lower-
                   21080:   and uppercase letters that are an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   21081:   case-insensitive</a> match for the attribute's name.</p>
                   21082: 
                   21083:   <p><dfn id="syntax-attribute-value" title="syntax-attribute-value">Attribute values</dfn> are a
                   21084:   mixture of <a href="#syntax-text" title="syntax-text">text</a> and <a href="#syntax-charref" title="syntax-charref">character references</a>, except with the
                   21085:   additional restriction that the text cannot contain an <a href="#syntax-ambiguous-ampersand" title="syntax-ambiguous-ampersand">ambiguous ampersand</a>.</p>
                   21086: 
                   21087:   <p>Attributes can be specified in four different ways:</p>
                   21088: 
                   21089:   <dl><dt>Empty attribute syntax</dt>
                   21090: 
                   21091:    <dd>
                   21092: 
                   21093:     <p>Just the <a href="#syntax-attribute-name" title="syntax-attribute-name">attribute
                   21094:     name</a>. The value is implicitly the empty string.</p>
                   21095: 
                   21096:     <div class="example">
                   21097: 
                   21098:      <p>In the following example, the <code title="attr-fe-disabled"><a href="attributes-common-to-form-controls.html#attr-fe-disabled">disabled</a></code> attribute is given with
                   21099:      the empty attribute syntax:</p>
                   21100: 
                   21101:      <pre>&lt;input <em>disabled</em>&gt;</pre>
                   21102: 
                   21103:     </div>
                   21104: 
                   21105:     <p>If an attribute using the empty attribute syntax is to be
                   21106:     followed by another attribute, then there must be a <a href="common-microsyntaxes.html#space-character">space
                   21107:     character</a> separating the two.</p>
                   21108: 
                   21109:    </dd>
                   21110: 
                   21111:    <dt id="unquoted">Unquoted attribute value syntax</dt>
                   21112: 
                   21113:    <dd>
                   21114: 
                   21115:     <p>The <a href="#syntax-attribute-name" title="syntax-attribute-name">attribute name</a>,
                   21116:     followed by zero or more <a href="common-microsyntaxes.html#space-character" title="space character">space
                   21117:     characters</a>, followed by a single U+003D EQUALS SIGN
                   21118:     character, followed by zero or more <a href="common-microsyntaxes.html#space-character" title="space
                   21119:     character">space characters</a>, followed by the <a href="#syntax-attribute-value" title="syntax-attribute-value">attribute value</a>, which, in
                   21120:     addition to the requirements given above for attribute values,
                   21121:     must not contain any literal <a href="common-microsyntaxes.html#space-character" title="space character">space
                   21122:     characters</a>, any U+0022 QUOTATION MARK characters ("),
                   21123:     U+0027 APOSTROPHE characters ('), "=" (U+003D) characters, U+003C LESS-THAN SIGN characters (&lt;), U+003E
                   21124:     GREATER-THAN SIGN characters (&gt;), or "`" (U+0060) characters, and must not be the empty string.</p>
                   21125: 
                   21126:     <!-- The ` character is in this list on a temporary basis, waiting
                   21127:          for IE to fix its parsing bug whereby it treats ` as an
                   21128:          attribute value delimiter. Otherwise, escaping software that
                   21129:          tries to be clever and not use quotes when it doesn't need to
                   21130:          could be tricked by an attacker.
                   21131: 
                   21132:          Posit a site that allows the user to input text that is used
                   21133:          verbatim in two attributes, such that the user can set the
                   21134:          first attribute's value to:
                   21135: 
                   21136:             `
                   21137: 
                   21138:          ...and the second to:
                   21139: 
                   21140:             ` onload='...payload...' end=x
                   21141: 
                   21142:          ...with the assumption that the site is going to not quote
                   21143:          the first one, and quote the second one with double quotes:
                   21144: 
                   21145:             <body title=` class="` onload='...payload...' end=x">
                   21146: 
                   21147:          In IE, this is treated as:
                   21148: 
                   21149:             <body title=' class="'
                   21150:                   onload='...payload...'
                   21151:                   end='x"'>
                   21152: 
                   21153:     -->
                   21154: 
                   21155: 
                   21156:     <div class="example">
                   21157: 
                   21158:      <p>In the following example, the <code title="attr-input-value"><a href="the-input-element.html#attr-input-value">value</a></code> attribute is given
                   21159:      with the unquoted attribute value syntax:</p>
                   21160: 
                   21161:      <pre>&lt;input <em>value=yes</em>&gt;</pre>
                   21162: 
                   21163:     </div>
                   21164: 
                   21165:     <p>If an attribute using the unquoted attribute syntax is to be
                   21166:     followed by another attribute or by the optional "/" (U+002F) character allowed in step 6 of the <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> syntax above, then there
                   21167:     must be a <a href="common-microsyntaxes.html#space-character">space character</a> separating the two.</p>
                   21168: 
                   21169:    </dd>
                   21170: 
                   21171:    <dt>Single-quoted attribute value syntax</dt>
                   21172: 
                   21173:    <dd>
                   21174: 
                   21175:     <p>The <a href="#syntax-attribute-name" title="syntax-attribute-name">attribute name</a>,
                   21176:     followed by zero or more <a href="common-microsyntaxes.html#space-character" title="space character">space
                   21177:     characters</a>, followed by a single U+003D EQUALS SIGN
                   21178:     character, followed by zero or more <a href="common-microsyntaxes.html#space-character" title="space
                   21179:     character">space characters</a>, followed by a single "'" (U+0027) character, followed by the <a href="#syntax-attribute-value" title="syntax-attribute-value">attribute value</a>, which, in
                   21180:     addition to the requirements given above for attribute values,
                   21181:     must not contain any literal "'" (U+0027) characters, and
                   21182:     finally followed by a second single U+0027 APOSTROPHE character
                   21183:     (').</p>
                   21184: 
                   21185:     <div class="example">
                   21186: 
                   21187:      <p>In the following example, the <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is given with the
                   21188:      single-quoted attribute value syntax:</p>
                   21189: 
                   21190:      <pre>&lt;input <em>type='checkbox'</em>&gt;</pre>
                   21191: 
                   21192:     </div>
                   21193: 
                   21194:     <p>If an attribute using the single-quoted attribute syntax is to
                   21195:     be followed by another attribute, then there must be a <a href="common-microsyntaxes.html#space-character">space
                   21196:     character</a> separating the two.</p>
                   21197: 
                   21198:    </dd>
                   21199: 
                   21200:    <dt>Double-quoted attribute value syntax</dt>
                   21201: 
                   21202:    <dd>
                   21203: 
                   21204:     <p>The <a href="#syntax-attribute-name" title="syntax-attribute-name">attribute name</a>,
                   21205:     followed by zero or more <a href="common-microsyntaxes.html#space-character" title="space character">space
                   21206:     characters</a>, followed by a single U+003D EQUALS SIGN
                   21207:     character, followed by zero or more <a href="common-microsyntaxes.html#space-character" title="space
                   21208:     character">space characters</a>, followed by a single """ (U+0022) character, followed by the <a href="#syntax-attribute-value" title="syntax-attribute-value">attribute value</a>, which, in
                   21209:     addition to the requirements given above for attribute values,
                   21210:     must not contain any literal """ (U+0022) characters,
                   21211:     and finally followed by a second single """ (U+0022) character.</p>
                   21212: 
                   21213:     <div class="example">
                   21214: 
                   21215:      <p>In the following example, the <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">name</a></code> attribute is given with the
                   21216:      double-quoted attribute value syntax:</p>
                   21217: 
                   21218:      <pre>&lt;input <em>name="be evil"</em>&gt;</pre>
                   21219: 
                   21220:     </div>
                   21221: 
                   21222:     <p>If an attribute using the double-quoted attribute syntax is to
                   21223:     be followed by another attribute, then there must be a <a href="common-microsyntaxes.html#space-character">space
                   21224:     character</a> separating the two.</p>
                   21225: 
                   21226:    </dd>
                   21227: 
                   21228:   </dl><p>There must never be two or more attributes on the same start tag
                   21229:   whose names are an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for
                   21230:   each other.</p>
                   21231: 
                   21232:   <hr><p>When a <a href="#foreign-elements" title="foreign elements">foreign element</a> has
                   21233:   one of the namespaced attributes given by the local name and
                   21234:   namespace of the first and second cells of a row from the following
                   21235:   table, it must be written using the name given by the third cell
                   21236:   from the same row.</p>
                   21237: 
                   21238:   <table><thead><tr><th> Local name </th><th> Namespace </th><th> Attribute name
                   21239:    </th></tr></thead><tbody><tr><td> <code title="">actuate</code> </td><td> <a href="namespaces.html#xlink-namespace">XLink namespace</a> </td><td> <code title="">xlink:actuate</code>
                   21240:     </td></tr><tr><td> <code title="">arcrole</code> </td><td> <a href="namespaces.html#xlink-namespace">XLink namespace</a> </td><td> <code title="">xlink:arcrole</code>
                   21241:     </td></tr><tr><td> <code title="">href</code> </td><td> <a href="namespaces.html#xlink-namespace">XLink namespace</a> </td><td> <code title="">xlink:href</code>
                   21242:     </td></tr><tr><td> <code title="">role</code> </td><td> <a href="namespaces.html#xlink-namespace">XLink namespace</a> </td><td> <code title="">xlink:role</code>
                   21243:     </td></tr><tr><td> <code title="">show</code> </td><td> <a href="namespaces.html#xlink-namespace">XLink namespace</a> </td><td> <code title="">xlink:show</code>
                   21244:     </td></tr><tr><td> <code title="">title</code> </td><td> <a href="namespaces.html#xlink-namespace">XLink namespace</a> </td><td> <code title="">xlink:title</code>
                   21245:     </td></tr><tr><td> <code title="">type</code> </td><td> <a href="namespaces.html#xlink-namespace">XLink namespace</a> </td><td> <code title="">xlink:type</code>
                   21246:     </td></tr><tr><td> <code title="">base</code> </td><td> <a href="namespaces.html#xml-namespace">XML namespace</a> <!-- attr-xml-base --> </td><td> <code title="">xml:base</code>
                   21247:     </td></tr><tr><td> <code title="">lang</code> </td><td> <a href="namespaces.html#xml-namespace">XML namespace</a> </td><td> <code title="">xml:lang</code>
                   21248:     </td></tr><tr><td> <code title="">space</code> </td><td> <a href="namespaces.html#xml-namespace">XML namespace</a> </td><td> <code title="">xml:space</code>
                   21249:     </td></tr><tr><td> <code title="">xmlns</code> </td><td> <a href="namespaces.html#xmlns-namespace">XMLNS namespace</a> </td><td> <code title="">xmlns</code>
                   21250:     </td></tr><tr><td> <code title="">xlink</code> </td><td> <a href="namespaces.html#xmlns-namespace">XMLNS namespace</a> </td><td> <code title="">xmlns:xlink</code>
                   21251:   </td></tr></tbody></table><p>No other namespaced attribute can be expressed in <a href="#syntax">the
                   21252:   HTML syntax</a>.</p>
                   21253: 
                   21254:   <p class="note">Whether the attributes in the table above are
                   21255:   conforming or not is defined by other specifications (e.g. the SVG
                   21256:   and MathML specifications); this section only describes the syntax
                   21257:   rules if the attributes are serialised using the HTML syntax.</p>
                   21258: 
                   21259: 
                   21260:   <h5 id="optional-tags"><span class="secno">8.1.2.4 </span>Optional tags</h5>
                   21261: 
                   21262:   <p>Certain tags can be <dfn id="syntax-tag-omission" title="syntax-tag-omission">omitted</dfn>.</p>
                   21263: 
                   21264:   <p class="note">Omitting an element's <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> in the situations
                   21265:   described below does not mean the element is not present; it is
                   21266:   implied, but it is still there. For example, an HTML document always
                   21267:   has a root <code><a href="the-html-element.html#the-html-element">html</a></code> element, even if the string <code title="">&lt;html&gt;</code> doesn't appear anywhere in the markup.</p>
                   21268: 
                   21269:   <!-- <html> -->
                   21270:   <p>An <code><a href="the-html-element.html#the-html-element">html</a></code> element's <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> may be omitted if the
                   21271:   first thing inside the <code><a href="the-html-element.html#the-html-element">html</a></code> element is not a <a href="#syntax-comments" title="syntax-comments">comment</a>.</p>
                   21272: 
                   21273:   <!-- </html> -->
                   21274:   <p>An <code><a href="the-html-element.html#the-html-element">html</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21275:   tag</a> may be omitted if the <code><a href="the-html-element.html#the-html-element">html</a></code> element is not
                   21276:   immediately followed by a <a href="#syntax-comments" title="syntax-comments">comment</a>.</p>
                   21277: 
                   21278:   <!-- <head> -->
                   21279:   <p>A <code><a href="the-head-element.html#the-head-element">head</a></code> element's <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> may be omitted if the
                   21280:   element is empty, or if the first thing inside the
                   21281:   <code><a href="the-head-element.html#the-head-element">head</a></code> element is an element.</p>
                   21282: 
                   21283:   <!-- </head> -->
                   21284:   <p>A <code><a href="the-head-element.html#the-head-element">head</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21285:   tag</a> may be omitted if the <code><a href="the-head-element.html#the-head-element">head</a></code> element is not
                   21286:   immediately followed by a <a href="common-microsyntaxes.html#space-character">space character</a> or a <a href="#syntax-comments" title="syntax-comments">comment</a>.</p>
                   21287: 
                   21288:   <!-- <body> -->
                   21289:   <p>A <code><a href="the-body-element.html#the-body-element">body</a></code> element's <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> may be omitted if the
                   21290:   element is empty, or if the first thing inside the <code><a href="the-body-element.html#the-body-element">body</a></code>
                   21291:   element is not a <a href="common-microsyntaxes.html#space-character">space character</a> or a <a href="#syntax-comments" title="syntax-comments">comment</a>, except if the first thing
                   21292:   inside the <code><a href="the-body-element.html#the-body-element">body</a></code> element is a <code><a href="the-script-element.html#the-script-element">script</a></code> or
                   21293:   <code><a href="the-style-element.html#the-style-element">style</a></code> element. <!-- Note that even if the </head> end
                   21294:   tag is present, the parser makes <style> and <script> elements
                   21295:   between </head> and <body> end up in the <head> instead of implying
                   21296:   the <body> --></p>
                   21297: 
                   21298:   <!-- </body> -->
                   21299:   <p>A <code><a href="the-body-element.html#the-body-element">body</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21300:   tag</a> may be omitted if the <code><a href="the-body-element.html#the-body-element">body</a></code> element is not
                   21301:   immediately followed by a <a href="#syntax-comments" title="syntax-comments">comment</a>.</p>
                   21302: 
                   21303:   <!-- </li> -->
                   21304:   <p>An <code><a href="the-li-element.html#the-li-element">li</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21305:   tag</a> may be omitted if the <code><a href="the-li-element.html#the-li-element">li</a></code> element is
                   21306:   immediately followed by another <code><a href="the-li-element.html#the-li-element">li</a></code> element or if there
                   21307:   is no more content in the parent element.</p>
                   21308: 
                   21309:   <!-- </dt> -->
                   21310:   <p>A <code><a href="the-dt-element.html#the-dt-element">dt</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21311:   tag</a> may be omitted if the <code><a href="the-dt-element.html#the-dt-element">dt</a></code> element is
                   21312:   immediately followed by another <code><a href="the-dt-element.html#the-dt-element">dt</a></code> element or a
                   21313:   <code><a href="the-dd-element.html#the-dd-element">dd</a></code> element.</p>
                   21314: 
                   21315:   <!-- </dd> -->
                   21316:   <p>A <code><a href="the-dd-element.html#the-dd-element">dd</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21317:   tag</a> may be omitted if the <code><a href="the-dd-element.html#the-dd-element">dd</a></code> element is
                   21318:   immediately followed by another <code><a href="the-dd-element.html#the-dd-element">dd</a></code> element or a
                   21319:   <code><a href="the-dt-element.html#the-dt-element">dt</a></code> element, or if there is no more content in the
                   21320:   parent element.</p>
                   21321: 
                   21322:   <!-- </p> -->
                   21323:   <p>A <code><a href="the-p-element.html#the-p-element">p</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21324:   tag</a> may be omitted if the <code><a href="the-p-element.html#the-p-element">p</a></code> element is
                   21325:   immediately followed by an <code><a href="the-address-element.html#the-address-element">address</a></code>,
                   21326:   <code><a href="the-article-element.html#the-article-element">article</a></code>, <code><a href="the-aside-element.html#the-aside-element">aside</a></code>, <code><a href="the-blockquote-element.html#the-blockquote-element">blockquote</a></code>,
                   21327:   <code><a href="#dir">dir</a></code>, <code><a href="the-div-element.html#the-div-element">div</a></code>, <code><a href="the-dl-element.html#the-dl-element">dl</a></code>,
                   21328:   <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code>, <code><a href="the-footer-element.html#the-footer-element">footer</a></code>, <code><a href="the-form-element.html#the-form-element">form</a></code>,
                   21329:   <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h1</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h2</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h3</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h4</a></code>,
                   21330:   <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h5</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h6</a></code>, <code><a href="the-header-element.html#the-header-element">header</a></code>,
                   21331:   <code><a href="the-hgroup-element.html#the-hgroup-element">hgroup</a></code>, <code><a href="the-hr-element.html#the-hr-element">hr</a></code>, <code><a href="#the-menu-element">menu</a></code>,
                   21332:   <code><a href="the-nav-element.html#the-nav-element">nav</a></code>, <code><a href="the-ol-element.html#the-ol-element">ol</a></code>, <code><a href="the-p-element.html#the-p-element">p</a></code>, <code><a href="the-pre-element.html#the-pre-element">pre</a></code>,
                   21333:   <code><a href="the-section-element.html#the-section-element">section</a></code>, <code><a href="the-table-element.html#the-table-element">table</a></code>, or <code><a href="the-ul-element.html#the-ul-element">ul</a></code>,
                   21334:   element, or if there is no more content in the parent element and
                   21335:   the parent element is not an <code><a href="the-a-element.html#the-a-element">a</a></code> element.</p>
                   21336: 
                   21337:   <!-- </rt> -->
                   21338:   <p>An <code><a href="the-rt-element.html#the-rt-element">rt</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21339:   tag</a> may be omitted if the <code><a href="the-rt-element.html#the-rt-element">rt</a></code> element is
                   21340:   immediately followed by an <code><a href="the-rt-element.html#the-rt-element">rt</a></code> or <code><a href="the-rp-element.html#the-rp-element">rp</a></code>
                   21341:   element, or if there is no more content in the parent element.</p>
                   21342: 
                   21343:   <!-- </rp> -->
                   21344:   <p>An <code><a href="the-rp-element.html#the-rp-element">rp</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21345:   tag</a> may be omitted if the <code><a href="the-rp-element.html#the-rp-element">rp</a></code> element is
                   21346:   immediately followed by an <code><a href="the-rt-element.html#the-rt-element">rt</a></code> or <code><a href="the-rp-element.html#the-rp-element">rp</a></code>
                   21347:   element, or if there is no more content in the parent element.</p>
                   21348: 
                   21349:   <!-- </optgroup> (the text assumes <optgroup> can only be inside a
                   21350:   <select>; commented out text below can handle the non-<select> case
                   21351:   if we ever allow it) -->
                   21352:   <p>An <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end tag</a> may be omitted if the
                   21353:   <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code> element <!--has an ancestor
                   21354:   <code>select</code> element and--> is immediately followed by
                   21355:   another <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code> element, or if <!--all of the elements
                   21356:   that are ancestors of the <code>optgroup</code> element, up to and
                   21357:   including the first ancestor element that is not an
                   21358:   <code>optgroup</code> element, have no more content--> there is no
                   21359:   more content in the parent element.</p>
                   21360:   <!-- so e.g. the max number of </optgroup>s are omitted here:
                   21361:    <select><optgroup></select>
                   21362:    <p id=x><optgroup></optgroup>x</p>
                   21363:    <p id=x><optgroup><optgroup></optgroup></optgroup>x</p>
                   21364:    <p><optgroup id=x><optgroup></optgroup>x</p>
                   21365:    <p><optgroup><optgroup id=x>x</p>
                   21366:   -->
                   21367: 
                   21368:   <!-- </option> -->
                   21369:   <p>An <code><a href="the-option-element.html#the-option-element">option</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21370:   tag</a> may be omitted if the <code><a href="the-option-element.html#the-option-element">option</a></code> element is
                   21371:   immediately followed by another <code><a href="the-option-element.html#the-option-element">option</a></code> element, or if
                   21372:   it is immediately followed by an <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code> element, or
                   21373:   if there is no more content in the parent element.</p>
                   21374: 
                   21375:   <!-- <colgroup> -->
                   21376:   <p>A <code><a href="the-colgroup-element.html#the-colgroup-element">colgroup</a></code> element's <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> may be omitted if the
                   21377:   first thing inside the <code><a href="the-colgroup-element.html#the-colgroup-element">colgroup</a></code> element is a
                   21378:   <code><a href="the-col-element.html#the-col-element">col</a></code> element, and if the element is not immediately
                   21379:   preceded by another <code><a href="the-colgroup-element.html#the-colgroup-element">colgroup</a></code> element whose <a href="#syntax-end-tag" title="syntax-end-tag">end tag</a> has been omitted. (It can't be
                   21380:   omitted if the element is empty.)</p>
                   21381: 
                   21382:   <!-- </colgroup> -->
                   21383:   <p>A <code><a href="the-colgroup-element.html#the-colgroup-element">colgroup</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end tag</a> may be omitted if the
                   21384:   <code><a href="the-colgroup-element.html#the-colgroup-element">colgroup</a></code> element is not immediately followed by a
                   21385:   <a href="common-microsyntaxes.html#space-character">space character</a> or a <a href="#syntax-comments" title="syntax-comments">comment</a>.</p>
                   21386: 
                   21387:   <!-- </thead> -->
                   21388:   <p>A <code><a href="the-thead-element.html#the-thead-element">thead</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21389:   tag</a> may be omitted if the <code><a href="the-thead-element.html#the-thead-element">thead</a></code> element is
                   21390:   immediately followed by a <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code> or <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>
                   21391:   element.</p>
                   21392: 
                   21393:   <!-- <tbody> -->
                   21394:   <p>A <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code> element's <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> may be omitted if the
                   21395:   first thing inside the <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code> element is a
                   21396:   <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element, and if the element is not immediately
                   21397:   preceded by a <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, or
                   21398:   <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code> element whose <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21399:   tag</a> has been omitted. (It can't be omitted if the element is
                   21400:   empty.)</p>
                   21401: 
                   21402:   <!-- </tbody> -->
                   21403:   <p>A <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21404:   tag</a> may be omitted if the <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code> element is
                   21405:   immediately followed by a <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code> or <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>
                   21406:   element, or if there is no more content in the parent element.</p>
                   21407: 
                   21408:   <!-- </tfoot> -->
                   21409:   <p>A <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21410:   tag</a> may be omitted if the <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code> element is
                   21411:   immediately followed by a <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code> element, or if there is
                   21412:   no more content in the parent element.</p>
                   21413: 
                   21414:   <!-- </tr> -->
                   21415:   <p>A <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21416:   tag</a> may be omitted if the <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element is
                   21417:   immediately followed by another <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element, or if there
                   21418:   is no more content in the parent element.</p>
                   21419: 
                   21420:   <!-- </td> -->
                   21421:   <p>A <code><a href="the-td-element.html#the-td-element">td</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21422:   tag</a> may be omitted if the <code><a href="the-td-element.html#the-td-element">td</a></code> element is
                   21423:   immediately followed by a <code><a href="the-td-element.html#the-td-element">td</a></code> or <code><a href="the-th-element.html#the-th-element">th</a></code>
                   21424:   element, or if there is no more content in the parent element.</p>
                   21425: 
                   21426:   <!-- </th> -->
                   21427:   <p>A <code><a href="the-th-element.html#the-th-element">th</a></code> element's <a href="#syntax-end-tag" title="syntax-end-tag">end
                   21428:   tag</a> may be omitted if the <code><a href="the-th-element.html#the-th-element">th</a></code> element is
                   21429:   immediately followed by a <code><a href="the-td-element.html#the-td-element">td</a></code> or <code><a href="the-th-element.html#the-th-element">th</a></code>
                   21430:   element, or if there is no more content in the parent element.</p>
                   21431: 
                   21432:   <p><strong>However</strong>, a <a href="#syntax-start-tag" title="syntax-start-tag">start
                   21433:   tag</a> must never be omitted if it has any attributes.</p>
                   21434: 
                   21435: 
                   21436:   <h5 id="element-restrictions"><span class="secno">8.1.2.5 </span>Restrictions on content models</h5>
                   21437: 
                   21438:   <p>For historical reasons, certain elements have extra restrictions
                   21439:   beyond even the restrictions given by their content model.</p>
                   21440: 
                   21441:   <p>A <code><a href="the-table-element.html#the-table-element">table</a></code> element must not contain <code><a href="the-tr-element.html#the-tr-element">tr</a></code>
                   21442:   elements, even though these elements are technically allowed inside
                   21443:   <code><a href="the-table-element.html#the-table-element">table</a></code> elements according to the content models
                   21444:   described in this specification. (If a <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element is
                   21445:   put inside a <code><a href="the-table-element.html#the-table-element">table</a></code> in the markup, it will in fact imply
                   21446:   a <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code> start tag before it.)</p>
                   21447: 
                   21448:   <p>A single <a href="#syntax-newlines" title="syntax-newlines">newline</a> may be
                   21449:   placed immediately after the <a href="#syntax-start-tag" title="syntax-start-tag">start
                   21450:   tag</a> of <code><a href="the-pre-element.html#the-pre-element">pre</a></code> and <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>
                   21451:   elements. This does not affect the processing of the element. The
                   21452:   otherwise optional <a href="#syntax-newlines" title="syntax-newlines">newline</a>
                   21453:   <em>must</em> be included if the element's contents themselves start
                   21454:   with a <a href="#syntax-newlines" title="syntax-newlines">newline</a> (because
                   21455:   otherwise the leading newline in the contents would be treated like
                   21456:   the optional newline, and ignored).</p>
                   21457: 
                   21458:   <div class="example">
                   21459:    <p>The following two <code><a href="the-pre-element.html#the-pre-element">pre</a></code> blocks are equivalent:</p>
                   21460:    <pre>&lt;pre&gt;Hello&lt;/pre&gt;</pre>
                   21461:    <pre>&lt;pre&gt;<br>Hello&lt;/pre&gt;</pre>
                   21462:   </div>
                   21463: 
                   21464: 
                   21465:   <h5 id="cdata-rcdata-restrictions"><span class="secno">8.1.2.6 </span>Restrictions on the contents of raw text and RCDATA elements</h5>
                   21466: 
                   21467:   <p>The text in <a href="#raw-text-elements" title="raw text elements">raw text</a> and
                   21468:   <a href="#rcdata-elements">RCDATA elements</a> must not contain any occurrences of the
                   21469:   string "<code title="">&lt;/</code>" (U+003C LESS-THAN SIGN, U+002F
                   21470:   SOLIDUS) followed by characters that case-insensitively match the
                   21471:   tag name of the element followed by one of "tab" (U+0009), "LF" (U+000A), "FF" (U+000C), "CR" (U+000D), U+0020 SPACE, "&gt;" (U+003E), or
                   21472:   "/" (U+002F).</p>
                   21473: 
                   21474: 
                   21475:   <h4 id="text"><span class="secno">8.1.3 </span>Text</h4>
                   21476: 
                   21477:   <p><dfn id="syntax-text" title="syntax-text">Text</dfn> is allowed inside elements,
                   21478:   attribute values, and comments. Extra constraints are placed on what
                   21479:   is and what is not allowed in text based on where the text is to be
                   21480:   put, as described in the other sections.</p>
                   21481: 
                   21482: 
                   21483:   <h5 id="newlines"><span class="secno">8.1.3.1 </span>Newlines</h5>
                   21484: 
                   21485:   <p><dfn id="syntax-newlines" title="syntax-newlines">Newlines</dfn> in HTML may be
                   21486:   represented either as "CR" (U+000D) characters, "LF" (U+000A) characters, or pairs of "CR" (U+000D),
                   21487:   "LF" (U+000A) characters in that order.</p>
                   21488: 
                   21489:   <p>Where <a href="#syntax-charref" title="syntax-charref">character references</a>
                   21490:   are allowed, a character reference of a "LF" (U+000A)
                   21491:   character (but not a "CR" (U+000D) character) also
                   21492:   represents a <a href="#syntax-newlines" title="syntax-newlines">newline</a>.</p>
                   21493: 
                   21494: 
                   21495:   <h4 id="character-references"><span class="secno">8.1.4 </span>Character references</h4>
                   21496: 
                   21497:   <p>In certain cases described in other sections, <a href="#syntax-text" title="syntax-text">text</a> may be mixed with <dfn id="syntax-charref" title="syntax-charref">character references</dfn>. These can be used
                   21498:   to escape characters that couldn't otherwise legally be included in
                   21499:   <a href="#syntax-text" title="syntax-text">text</a>.</p>
                   21500: 
                   21501:   <p>Character references must start with a U+0026 AMPERSAND character
                   21502:   (&amp;). Following this, there are three possible kinds of character
                   21503:   references:</p>
                   21504: 
                   21505:   <dl><dt>Named character references</dt>
                   21506: 
                   21507:    <dd>The ampersand must be followed by one of the names given in the
                   21508:    <a href="#named-character-references">named character references</a> section, using the same
                   21509:    case. <span class="impl">The name must be one that is terminated by
                   21510:    a ";" (U+003B) character.</span></dd>
                   21511: 
                   21512: 
                   21513:    <dt>Decimal numeric character reference</dt>
                   21514: 
                   21515:    <dd>The ampersand must be followed by a "#" (U+0023) character, followed by one or more digits in the range <a href="common-microsyntaxes.html#ascii-digits">ASCII digits</a>, representing a base-ten
                   21516:    integer that corresponds to a Unicode code point that is allowed
                   21517:    according to the definition below. The digits must then be followed
                   21518:    by a ";" (U+003B) character.</dd>
                   21519: 
                   21520: 
                   21521:    <dt>Hexadecimal numeric character reference</dt>
                   21522: 
                   21523:    <dd>The ampersand must be followed by a "#" (U+0023) character, which must be followed by either a "x" (U+0078) character or a "X" (U+0058) character, which must then be followed by one or more digits in
                   21524:    the range <a href="common-microsyntaxes.html#ascii-digits">ASCII digits</a>, U+0061
                   21525:    LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F, and U+0041
                   21526:    LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F,
                   21527:    representing a base-sixteen integer that corresponds to a Unicode
                   21528:    code point that is allowed according to the definition below. The
                   21529:    digits must then be followed by a U+003B SEMICOLON character
                   21530:    (;).</dd>
                   21531: 
                   21532:   </dl><p>The numeric character reference forms described above are allowed
                   21533:   to reference any Unicode code point other than U+0000, U+000D,
                   21534:   permanently undefined Unicode characters (noncharacters), and
                   21535:   control characters other than <a href="common-microsyntaxes.html#space-character" title="space character">space
                   21536:   characters</a>.</p>
                   21537: 
                   21538:   <p>An <dfn id="syntax-ambiguous-ampersand" title="syntax-ambiguous-ampersand">ambiguous
                   21539:   ampersand</dfn> is a U+0026 AMPERSAND character (&amp;) that is
                   21540:   followed by one or more characters in the range <a href="common-microsyntaxes.html#ascii-digits">ASCII digits</a>, <a href="common-microsyntaxes.html#lowercase-ascii-letters">lowercase ASCII letters</a>, and <a href="common-microsyntaxes.html#uppercase-ascii-letters">uppercase ASCII letters</a>, followed by a U+003B SEMICOLON character
                   21541:   (;), where these characters do not match any of the names given in
                   21542:   the <a href="#named-character-references">named character references</a> section.</p>
                   21543: 
                   21544: 
                   21545:   <h4 id="cdata-sections"><span class="secno">8.1.5 </span>CDATA sections</h4>
                   21546: 
                   21547:   <p><dfn id="syntax-cdata" title="syntax-cdata">CDATA sections</dfn> must consist of
                   21548:   the following components, in this order:</p>
                   21549: 
                   21550:   <ol><li>The string "<code title="">&lt;![CDATA[</code>".</li>
                   21551: 
                   21552:    <li>Optionally, <a href="#syntax-text" title="syntax-text">text</a>, with the
                   21553:    additional restriction that the text must not contain the string
                   21554:    "<code title="">]]&gt;</code>".</li>
                   21555: 
                   21556:    <li>The string "<code title="">]]&gt;</code>".</li>
                   21557: 
                   21558:   </ol><div class="example">
                   21559: 
                   21560:    <p>CDATA sections can only be used in foreign content (MathML or
                   21561:    SVG). In this example, a CDATA section is used to escape the
                   21562:    contents of an <code>ms</code> element:</p>
                   21563: 
                   21564:    <pre>&lt;p&gt;You can add a string to a number, but this stringifies the number:&lt;/p&gt;
                   21565: &lt;math&gt;
                   21566:  &lt;ms&gt;&lt;![CDATA[x&lt;y]]&gt;&lt;/ms&gt;
                   21567:  &lt;mo&gt;+&lt;/mo&gt;
                   21568:  &lt;mn&gt;3&lt;/mn&gt;
                   21569:  &lt;mo&gt;=&lt;/mo&gt;
                   21570:  &lt;ms&gt;&lt;![CDATA[x&lt;y3]]&gt;&lt;/ms&gt;
                   21571: &lt;/math&gt;</pre>
                   21572: 
                   21573:   </div>
                   21574: 
                   21575: 
                   21576:   <h4 id="comments"><span class="secno">8.1.6 </span>Comments</h4>
                   21577: 
                   21578:   <p><dfn id="syntax-comments" title="syntax-comments">Comments</dfn> must start with the
                   21579:   four character sequence U+003C LESS-THAN SIGN, U+0021 EXCLAMATION
                   21580:   MARK, U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS (<code title="">&lt;!--</code>). Following this sequence, the comment may
                   21581:   have <a href="#syntax-text" title="syntax-text">text</a>, with the additional
                   21582:   restriction that the text must not start with a single U+003E
                   21583:   GREATER-THAN SIGN character (&gt;), nor start with a "-" (U+002D) character followed by a U+003E GREATER-THAN SIGN
                   21584:   (&gt;) character, nor contain two consecutive U+002D HYPHEN-MINUS
                   21585:   characters (<code title="">--</code>), nor end with a "-" (U+002D) character. Finally, the comment must be ended by
                   21586:   the three character sequence U+002D HYPHEN-MINUS, U+002D
                   21587:   HYPHEN-MINUS, U+003E GREATER-THAN SIGN (<code title="">--&gt;</code>).</p>
                   21588: 
                   21589: 
                   21590:   <div class="impl">
                   21591: 
                   21592:   <h3 id="parsing"><span class="secno">8.2 </span>Parsing HTML documents</h3>
                   21593: 
                   21594:   <p><i>This section only applies to user agents, data mining tools,
                   21595:   and conformance checkers.</i></p>
                   21596: 
                   21597:   <p class="note">The rules for parsing XML documents into DOM trees
                   21598:   are covered by the next section, entitled "<a href="#the-xhtml-syntax">The XHTML
                   21599:   syntax</a>".</p>
                   21600: 
                   21601:   <p>User agents must use the parsing rules described in this section
                   21602:   to generate the DOM trees from <code><a href="#text/html">text/html</a></code> resources.
                   21603:   Together, these rules define what is referred to as the <dfn id="html-parser">HTML
                   21604:   parser</dfn>.</p>
                   21605: 
                   21606:   <div class="note">
                   21607: 
                   21608:    <p>While the HTML syntax described in this specification bears a
                   21609:    close resemblance to SGML and XML, it is a separate language with
                   21610:    its own parsing rules.</p>
                   21611: 
                   21612:    <p>Some earlier versions of HTML (in particular from HTML2 to
                   21613:    HTML4) were based on SGML and used SGML parsing rules. However, few
                   21614:    (if any) web browsers ever implemented true SGML parsing for HTML
                   21615:    documents; the only user agents to strictly handle HTML as an SGML
                   21616:    application have historically been validators. The resulting
                   21617:    confusion &#8212; with validators claiming documents to have one
                   21618:    representation while widely deployed Web browsers interoperably
                   21619:    implemented a different representation &#8212; has wasted decades
                   21620:    of productivity. This version of HTML thus returns to a non-SGML
                   21621:    basis.</p>
                   21622: 
                   21623:    <p>Authors interested in using SGML tools in their authoring
                   21624:    pipeline are encouraged to use XML tools and the XML serialization
                   21625:    of HTML.</p>
                   21626: 
                   21627:   </div>
                   21628: 
                   21629:   <p>This specification defines the parsing rules for HTML documents,
                   21630:   whether they are syntactically correct or not. Certain points in the
                   21631:   parsing algorithm are said to be <dfn id="parse-error" title="parse error">parse
                   21632:   errors</dfn>. The error handling for parse errors is well-defined:
                   21633:   user agents must either act as described below when encountering
                   21634:   such problems, or must abort processing at the first error that they
                   21635:   encounter for which they do not wish to apply the rules described
                   21636:   below.</p>
                   21637: 
                   21638:   <p>Conformance checkers must report at least one parse error
                   21639:   condition to the user if one or more parse error conditions exist in
                   21640:   the document and must not report parse error conditions if none
                   21641:   exist in the document. Conformance checkers may report more than one
                   21642:   parse error condition if more than one parse error condition exists
                   21643:   in the document. Conformance checkers are not required to recover
                   21644:   from parse errors.</p>
                   21645: 
                   21646:   <p class="note">Parse errors are only errors with the
                   21647:   <em>syntax</em> of HTML. In addition to checking for parse errors,
                   21648:   conformance checkers will also verify that the document obeys all
                   21649:   the other conformance requirements described in this
                   21650:   specification.</p>
                   21651: 
                   21652:   <p>For the purposes of conformance checkers, if a resource is
                   21653:   determined to be in <a href="#syntax">the HTML syntax</a>, then it is an
                   21654:   <a href="infrastructure.html#html-documents" title="HTML documents">HTML document</a>.</p>
                   21655: 
                   21656:   </div>
                   21657: 
                   21658: 
                   21659:   <div class="impl">
                   21660: 
                   21661:   <h4 id="overview-of-the-parsing-model"><span class="secno">8.2.1 </span>Overview of the parsing model</h4>
                   21662: 
                   21663:   <p class="overview"><object data="images/parsing-model-overview.svg" height="535" width="345"><img alt="" height="450" src="images/parsing-model-overview.png" width="345"></object></p>
                   21664: 
                   21665:   <p>The input to the HTML parsing process consists of a stream of
                   21666:   <a href="infrastructure.html#unicode-code-point" title="Unicode code point">Unicode code points</a>, which
                   21667:   is passed through a <a href="#tokenization">tokenization</a> stage followed by a
                   21668:   <a href="#tree-construction">tree construction</a> stage. The output is a
                   21669:   <code><a href="dom.html#document">Document</a></code> object.</p>
                   21670: 
                   21671:   <p class="note">Implementations that <a href="infrastructure.html#non-scripted">do not
                   21672:   support scripting</a> do not have to actually create a DOM
                   21673:   <code><a href="dom.html#document">Document</a></code> object, but the DOM tree in such cases is
                   21674:   still used as the model for the rest of the specification.</p>
                   21675: 
                   21676:   <p>In the common case, the data handled by the tokenization stage
                   21677:   comes from the network, but <a href="dynamic-markup-insertion.html#dynamic-markup-insertion" title="dynamic markup
                   21678:   insertion">it can also come from script</a> running in the user
                   21679:   agent, e.g. using the <code title="dom-document-write"><a href="dynamic-markup-insertion.html#dom-document-write">document.write()</a></code> API.</p>
                   21680: 
                   21681:   <p id="nestedParsing">There is only one set of states for the
                   21682:   tokenizer stage and the tree construction stage, but the tree
                   21683:   construction stage is reentrant, meaning that while the tree
                   21684:   construction stage is handling one token, the tokenizer might be
                   21685:   resumed, causing further tokens to be emitted and processed before
                   21686:   the first token's processing is complete.</p>
                   21687: 
                   21688:   <div class="example">
                   21689: 
                   21690:    <p>In the following example, the tree construction stage will be
                   21691:    called upon to handle a "p" start tag token while handling the
                   21692:    "script" end tag token:</p>
                   21693: 
                   21694:    <pre>...
                   21695: &lt;script&gt;
                   21696:  document.write('&lt;p&gt;');
                   21697: &lt;/script&gt;
                   21698: ...</pre>
                   21699: 
                   21700:   </div>
                   21701: 
                   21702:   <p>To handle these cases, parsers have a <dfn id="script-nesting-level">script nesting
                   21703:   level</dfn>, which must be initially set to zero, and a <dfn id="parser-pause-flag">parser
                   21704:   pause flag</dfn>, which must be initially set to false.</p>
                   21705: 
                   21706:   </div>
                   21707: 
                   21708: 
                   21709: 
                   21710:   <div class="impl">
                   21711: 
                   21712:   <h4 id="the-input-byte-stream"><span class="secno">8.2.2 </span>The <dfn>input byte stream</dfn></h4>
                   21713: 
                   21714:   <p>The stream of Unicode code points that comprises the input to the
                   21715:   tokenization stage will be initially seen by the user agent as a
                   21716:   stream of bytes (typically coming over the network or from the local
                   21717:   file system). The bytes encode the actual characters according to a
                   21718:   particular <i>character encoding</i>, which the user agent must use
                   21719:   to decode the bytes into characters.</p>
                   21720: 
                   21721:   <p class="note">For XML documents, the algorithm user agents must
                   21722:   use to determine the character encoding is given by the XML
                   21723:   specification. This section does not apply to XML documents. <a href="#refsXML">[XML]</a></p>
                   21724: 
                   21725:   <p>The <a href="#encoding-sniffing-algorithm">encoding sniffing algorithm</a> defined below is
                   21726:   used to determine the character encoding.</p>
                   21727: 
                   21728:   <p>Given an encoding, the bytes in the <a href="#the-input-byte-stream">input byte
                   21729:   stream</a> must be converted to Unicode code points for the
                   21730:   tokenizer's <a href="#input-stream">input stream</a>, as described by the rules for
                   21731:   that encoding, except that the leading U+FEFF BYTE ORDER MARK
                   21732:   character, if any, must not be stripped by the encoding layer (it is
                   21733:   stripped by the rule below).</p> <!-- this is to prevent two leading
                   21734:   BOMs from being both stripped, once by the decoder, and once by the
                   21735:   parser -->
                   21736: 
                   21737:   <p>Bytes or sequences of bytes in the original byte stream that
                   21738:   could not be converted to Unicode code points must be converted to
                   21739:   U+FFFD REPLACEMENT CHARACTERs. Specifically, if the encoding is
                   21740:   UTF-8, the bytes must be <a href="infrastructure.html#decoded-as-utf-8,-with-error-handling" title="decoded as UTF-8, with error
                   21741:   handling">decoded with the error handling</a> defined in this
                   21742:   specification.</p>
                   21743: 
                   21744:   <p class="note">Bytes or sequences of bytes in the original byte
                   21745:   stream that did not conform to the encoding specification (e.g.
                   21746:   invalid UTF-8 byte sequences in a UTF-8 input byte stream) are
                   21747:   errors that conformance checkers are expected to report.</p>
                   21748: 
                   21749:   <p>Any byte or sequence of bytes in the original byte stream that is
                   21750:   <a href="#misinterpreted-for-compatibility">misinterpreted for compatibility</a> is a <a href="#parse-error">parse
                   21751:   error</a>.</p>
                   21752: 
                   21753: 
                   21754:   <h5 id="determining-the-character-encoding"><span class="secno">8.2.2.1 </span>Determining the character encoding</h5>
                   21755: 
                   21756:   <p>In some cases, it might be impractical to unambiguously determine
                   21757:   the encoding before parsing the document. Because of this, this
                   21758:   specification provides for a two-pass mechanism with an optional
                   21759:   pre-scan. Implementations are allowed, as described below, to apply
                   21760:   a simplified parsing algorithm to whatever bytes they have available
                   21761:   before beginning to parse the document. Then, the real parser is
                   21762:   started, using a tentative encoding derived from this pre-parse and
                   21763:   other out-of-band metadata. If, while the document is being loaded,
                   21764:   the user agent discovers an encoding declaration that conflicts with
                   21765:   this information, then the parser can get reinvoked to perform a
                   21766:   parse of the document with the real encoding.</p>
                   21767: 
                   21768:   <p id="documentEncoding">User agents must use the following
                   21769:   algorithm, called the <dfn id="encoding-sniffing-algorithm">encoding sniffing algorithm</dfn>, to
                   21770:   determine the character encoding to use when decoding a document in
                   21771:   the first pass. This algorithm takes as input any out-of-band
                   21772:   metadata available to the user agent (e.g. the <a href="urls.html#content-type" title="Content-Type">Content-Type metadata</a> of the document)
                   21773:   and all the bytes available so far, and returns an encoding and a
                   21774:   <dfn id="concept-encoding-confidence" title="concept-encoding-confidence">confidence</dfn>. The
                   21775:   confidence is either <i>tentative</i>, <i>certain</i>, or
                   21776:   <i>irrelevant</i>. The encoding used, and whether the confidence in
                   21777:   that encoding is <i>tentative</i> or <i>certain</i>, is <a href="#meta-charset-during-parse">used during the parsing</a> to
                   21778:   determine whether to <a href="#change-the-encoding">change the encoding</a>. If no
                   21779:   encoding is necessary, e.g. because the parser is operating on a
                   21780:   Unicode stream and doesn't have to use an encoding at all, then the
                   21781:   <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a> is
                   21782:   <i>irrelevant</i>.</p>
                   21783: 
                   21784:   <ol><li>
                   21785: 
                   21786:     <p>If the user has explicitly instructed the user agent to
                   21787:     override the document's character encoding with a specific
                   21788:     encoding, optionally return that encoding with the <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a>
                   21789:     <i>certain</i> and abort these steps.</p>
                   21790: 
                   21791:     <p class="note">Typically, user agents remember such user requests
                   21792:     across sessions, and in some cases apply them to documents in
                   21793:     <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>s as well.</p>
                   21794: 
                   21795:    </li>
                   21796: 
                   21797:    <li>
                   21798: 
                   21799:     <p>The user agent may wait for more bytes of the resource to be
                   21800:     available, either in this step or at any later step in this
                   21801:     algorithm. For instance, a user agent might wait 500ms or 1024
                   21802:     bytes, whichever came first. In general preparsing the source to
                   21803:     find the encoding improves performance, as it reduces the need to
                   21804:     throw away the data structures used when parsing upon finding the
                   21805:     encoding information. However, if the user agent delays too long
                   21806:     to obtain data to determine the encoding, then the cost of the
                   21807:     delay could outweigh any performance improvements from the
                   21808:     preparse.</p>
                   21809: 
                   21810:     <p class="note">The authoring conformance requirements for
                   21811:     character encoding declarations limit them to only appearing <a href="the-meta-element.html#charset1024">in the first 1024 bytes</a>. User agents are
                   21812:     therefore encouraged to use the prescan algorithm below (as
                   21813:     invoked by these steps) on the first 1024 bytes, but not to stall
                   21814:     beyond that.</p>
                   21815: 
                   21816:    </li>
                   21817: 
                   21818:    <li>
                   21819: 
                   21820:     <!-- Doing this step before honouring HTTP is important for supporting
                   21821:             http://kb.dsqq.cn/html/2012-09/16/node_193.htm
                   21822:          which is encoded as UTF-8 but is incorrectly labeled as
                   21823:             Content-Type: text/html; charset=GB2312
                   21824:     -->
                   21825: 
                   21826:     <p>For each of the rows in the following table, starting with the
                   21827:     first one and going down, if there are as many or more bytes
                   21828:     available than the number of bytes in the first column, and the
                   21829:     first bytes of the file match the bytes given in the first column,
                   21830:     then return the encoding given in the cell in the second column of
                   21831:     that row, with the <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a>
                   21832:     <i>certain</i>, and abort these steps:</p>
                   21833: 
                   21834:     <!-- this table is present in several forms in this file; keep them in sync -->
                   21835:     <table><thead><tr><th>Bytes in Hexadecimal
                   21836:        </th><th>Encoding
                   21837:      </th></tr></thead><tbody><!-- nobody uses this
                   21838:       <tr>
                   21839:        <td>00 00 FE FF
                   21840:        <td>UTF-32BE
                   21841:       <tr>
                   21842:        <td>FF FE 00 00
                   21843:        <td>UTF-32LE
                   21844: --><tr><td>FE FF
                   21845:        </td><td>Big-endian UTF-16
                   21846:       </td></tr><tr><td>FF FE
                   21847:        </td><td>Little-endian UTF-16
                   21848:       </td></tr><tr><td>EF BB BF
                   21849:        </td><td>UTF-8
                   21850: <!-- nobody uses this
                   21851:       <tr>
                   21852:        <td>DD 73 66 73
                   21853:        <td>UTF-EBCDIC
                   21854: -->
                   21855:     </td></tr></tbody></table><p class="note">This step looks for Unicode Byte Order Marks
                   21856:     (BOMs).</p>
                   21857: 
                   21858:     <p class="note">That this step happens before the next one
                   21859:     honoring the HTTP <code><a href="urls.html#content-type">Content-Type</a></code> header is a
                   21860:     <a href="introduction.html#willful-violation">willful violation</a> of the HTTP specification,
                   21861:     motivated by a desire to be maximally compatible with legacy
                   21862:     content. <a href="#refsHTTP">[HTTP]</a></p>
                   21863: 
                   21864:    </li>
                   21865: 
                   21866:    <li><p>If the transport layer specifies an encoding, and it is
                   21867:    supported, return that encoding with the <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a>
                   21868:    <i>certain</i>, and abort these steps.</p></li>
                   21869: 
                   21870:    <li>
                   21871: 
                   21872:     <p>Optionally <a href="#prescan-a-byte-stream-to-determine-its-encoding" title="prescan a byte stream to determine its
                   21873:     encoding">prescan the byte stream to determine its
                   21874:     encoding</a>. The <var title="">end condition</var> is that the
                   21875:     user agent decides that scanning further bytes would not be
                   21876:     efficient. User agents are encouraged to only prescan the first
                   21877:     1024 bytes. User agents may decide that scanning <em>any</em>
                   21878:     bytes is not efficient, in which case these substeps are entirely
                   21879:     skipped.</p>
                   21880: 
                   21881:     <p>The aforementioned algorithm either aborts unsuccessfully or
                   21882:     returns a character encoding. If it returns a character encoding,
                   21883:     then this algorithm must be aborted, returning the same encoding,
                   21884:     with <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a>
                   21885:     <i>tentative</i>.</p>
                   21886: 
                   21887:    </li>
                   21888: 
                   21889:    <li><p>Otherwise, if the <code><a href="dom.html#document">Document</a></code> is in a <a href="#nested-browsing-context">nested
                   21890:    browsing context</a>, return the encoding of the <a href="#browsing-context-container">browsing
                   21891:    context container</a>'s <code><a href="dom.html#document">Document</a></code>'s <a href="infrastructure.html#document's-character-encoding" title="document's character encoding">character encoding</a>,
                   21892:    with the <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a>
                   21893:    <i>tentative</i>, and abort these steps.</p></li> <!-- not
                   21894:    carefully tested -->
                   21895: 
                   21896:    <li><p>Otherwise, if the user agent has information on the likely
                   21897:    encoding for this page, e.g. based on the encoding of the page when
                   21898:    it was last visited, then return that encoding, with the <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a>
                   21899:    <i>tentative</i>, and abort these steps.</p></li>
                   21900: 
                   21901:    <li>
                   21902: 
                   21903:     <p>The user agent may attempt to autodetect the character encoding
                   21904:     from applying frequency analysis or other algorithms to the data
                   21905:     stream. Such algorithms may use information about the resource
                   21906:     other than the resource's contents, including the address of the
                   21907:     resource. If autodetection succeeds in determining a character
                   21908:     encoding, and that encoding is a supported encoding, then return
                   21909:     that encoding, with the <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a>
                   21910:     <i>tentative</i>, and abort these steps. <a href="#refsUNIVCHARDET">[UNIVCHARDET]</a></p>
                   21911: 
                   21912:     <p class="note">The UTF-8 encoding has a highly detectable bit
                   21913:     pattern. Documents that contain bytes with values greater than
                   21914:     0x7F which match the UTF-8 pattern are very likely to be UTF-8,
                   21915:     while documents with byte sequences that do not match it are very
                   21916:     likely not. User-agents are therefore encouraged to search for
                   21917:     this common encoding. <a href="#refsPPUTF8">[PPUTF8]</a> <a href="#refsUTF8DET">[UTF8DET]</a></p>
                   21918: 
                   21919:    </li>
                   21920: 
                   21921:    <li>
                   21922: 
                   21923:     <p>Otherwise, return an implementation-defined or user-specified
                   21924:     default character encoding, with the <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a>
                   21925:     <i>tentative</i>.</p>
                   21926: 
                   21927:     <p>In controlled environments or in environments where the
                   21928:     encoding of documents can be prescribed (for example, for user
                   21929:     agents intended for dedicated use in new networks), the
                   21930:     comprehensive <code title="">UTF-8</code> encoding is
                   21931:     suggested.</p>
                   21932: 
                   21933:     <p>In other environments, the default encoding is typically
                   21934:     dependent on the user's locale (an approximation of the languages,
                   21935:     and thus often encodings, of the pages that the user is likely to
                   21936:     frequent). The following table gives suggested defaults based on
                   21937:     the user's locale, for compatibility with legacy content. Locales
                   21938:     are identified by BCP 47 language tags. <a href="#refsBCP47">[BCP47]</a></p>
                   21939: 
                   21940:     <!-- based on mozilla 1.9.1 localizations:
                   21941:          http://mxr.mozilla.org/l10n-mozilla1.9.1/find?string=global%2Fintl.properties&tree=l10n-mozilla1.9.1&hint= -->
                   21942: 
                   21943:     <table><thead><tr><th>Locale language
                   21944:        </th><th>Suggested default encoding
                   21945:      </th></tr></thead><tbody><tr><td>ar
                   21946:        </td><td>UTF-8
                   21947: 
                   21948:       </td></tr><tr><td>be
                   21949:        </td><td>ISO-8859-5
                   21950: 
                   21951:       </td></tr><tr><td>bg
                   21952:        </td><td>windows-1251
                   21953: 
                   21954:       </td></tr><tr><td>cs<!-- -CZ -->
                   21955:        </td><td>ISO-8859-2
                   21956: 
                   21957:       </td></tr><tr><td>cy
                   21958:        </td><td>UTF-8
                   21959: 
                   21960:       </td></tr><tr><td>fa<!-- -IR -->
                   21961:        </td><td>UTF-8
                   21962: 
                   21963:       </td></tr><tr><td>he<!-- -IL -->
                   21964:        </td><td>windows-1255
                   21965: 
                   21966:       </td></tr><tr><td>hr
                   21967:        </td><td>UTF-8
                   21968: 
                   21969:       </td></tr><tr><td>hu<!-- -HU -->
                   21970:        </td><td>ISO-8859-2
                   21971: 
                   21972:       </td></tr><tr><td>ja <!-- and ja-JP-mac -->
                   21973:        </td><td>Windows-31J <!-- Shift_JIS -->
                   21974: 
                   21975:       </td></tr><tr><td>kk
                   21976:        </td><td>UTF-8
                   21977: 
                   21978:       </td></tr><tr><td>ko<!-- -KR -->
                   21979:        </td><td>windows-949 <!-- EUC-KR -->
                   21980: 
                   21981:       </td></tr><tr><td>ku
                   21982:        </td><td>windows-1254 <!-- ISO-8859-9 -->
                   21983: 
                   21984:       </td></tr><tr><td>lt
                   21985:        </td><td>windows-1257
                   21986: 
                   21987:       </td></tr><tr><td>lv<!-- -LV -->
                   21988:        </td><td>ISO-8859-13
                   21989: 
                   21990:       </td></tr><tr><td>mk<!-- -MK -->
                   21991:        </td><td>UTF-8
                   21992: 
                   21993:       </td></tr><tr><td>or
                   21994:        </td><td>UTF-8
                   21995: 
                   21996:       </td></tr><tr><td>pl<!-- -PL -->
                   21997:        </td><td>ISO-8859-2
                   21998: 
                   21999:       </td></tr><tr><td>ro
                   22000:        </td><td>UTF-8
                   22001: 
                   22002:       </td></tr><tr><td>ru
                   22003:        </td><td>windows-1251
                   22004: 
                   22005:       </td></tr><tr><td>sk
                   22006:        </td><td>windows-1250
                   22007: 
                   22008:       </td></tr><tr><td>sl
                   22009:        </td><td>ISO-8859-2
                   22010: 
                   22011:       </td></tr><tr><td>sr
                   22012:        </td><td>UTF-8
                   22013: 
                   22014:       </td></tr><tr><td>th
                   22015:        </td><td>windows-874 <!-- TIS-620 -->
                   22016: 
                   22017:       </td></tr><tr><td>tr<!-- -TR -->
                   22018:        </td><td>windows-1254 <!-- ISO-8859-9 -->
                   22019: 
                   22020:       </td></tr><tr><td>uk
                   22021:        </td><td>windows-1251
                   22022: 
                   22023:       </td></tr><tr><td>vi
                   22024:        </td><td>UTF-8
                   22025: 
                   22026:       </td></tr><tr><td>zh-CN
                   22027:        </td><td>GB18030
                   22028: 
                   22029:       </td></tr><tr><td>zh-TW
                   22030:        </td><td>Big5
                   22031: 
                   22032:       </td></tr><tr><td>All other locales
                   22033:        </td><td>windows-1252
                   22034: 
                   22035:     </td></tr></tbody></table></li>
                   22036: 
                   22037:   </ol><p>The <a href="infrastructure.html#document's-character-encoding">document's character encoding</a> must immediately
                   22038:   be set to the value returned from this algorithm, at the same time
                   22039:   as the user agent uses the returned value to select the decoder to
                   22040:   use for the input byte stream.</p>
                   22041: 
                   22042:   <hr><p>When an algorithm requires a user agent to <dfn id="prescan-a-byte-stream-to-determine-its-encoding">prescan a byte
                   22043:   stream to determine its encoding</dfn>, given some defined <var title="">end condition</var>, then it must run the following steps.
                   22044:   These steps either abort unsuccessfully or return a character
                   22045:   encoding.</p>
                   22046: 
                   22047:   <ol><li>
                   22048: 
                   22049:     <p>Let <var title="">position</var> be a pointer to a byte in the
                   22050:     input byte stream, initially pointing at the first byte. If at any
                   22051:     point during these steps the user agent either runs out of bytes
                   22052:     or reaches its <var title="">end condition</var>, then abort the
                   22053:     <a href="#prescan-a-byte-stream-to-determine-its-encoding">prescan a byte stream to determine its encoding</a>
                   22054:     algorithm unsuccessfully.</p>
                   22055: 
                   22056:    </li>
                   22057: 
                   22058:    <li>
                   22059: 
                   22060:     <p><i>Loop</i>: If <var title="">position</var> points to:</p>
                   22061: 
                   22062:     <dl class="switch"><dt>A sequence of bytes starting with: 0x3C 0x21 0x2D 0x2D (ASCII '&lt;!--')</dt>
                   22063:      <dd>
                   22064: 
                   22065:       <p>Advance the <var title="">position</var> pointer so that it
                   22066:       points at the first 0x3E byte which is preceded by two 0x2D
                   22067:       bytes (i.e. at the end of an ASCII '--&gt;' sequence) and comes
                   22068:       after the 0x3C byte that was found. (The two 0x2D bytes can be
                   22069:       the same as the those in the '&lt;!--' sequence.)</p>
                   22070: 
                   22071:      </dd>
                   22072: 
                   22073:      <dt>A sequence of bytes starting with: 0x3C, 0x4D or 0x6D, 0x45 or 0x65, 0x54 or 0x74, 0x41 or 0x61, and one of 0x09, 0x0A, 0x0C, 0x0D, 0x20, 0x2F (case-insensitive ASCII '&lt;meta' followed by a space or slash)</dt>
                   22074:      <dd>
                   22075: 
                   22076:       <ol><li><p>Advance the <var title="">position</var> pointer so
                   22077:        that it points at the next 0x09, 0x0A, 0x0C, 0x0D, 0x20, or
                   22078:        0x2F byte (the one in sequence of characters matched
                   22079:        above).</p></li>
                   22080: 
                   22081:        <li><p>Let <var title="">attribute list</var> be an empty
                   22082:        list of strings.</p></li> <!-- so long as we only care about
                   22083:        http-equiv, content, and charset, this can be a 3-bit
                   22084:        bitfield -->
                   22085: 
                   22086:        <li><p>Let <var title="">got pragma</var> be false.</p></li>
                   22087: 
                   22088:        <li><p>Let <var title="">need pragma</var> be null.</p></li>
                   22089: 
                   22090:        <li><p>Let <var title="">charset</var> be the null value
                   22091:        (which, for the purposes of this algorithm, is distinct from
                   22092:        an unrecognised encoding or the empty string).</p></li>
                   22093: 
                   22094:        <li><p><i>Attributes</i>: <a href="#concept-get-attributes-when-sniffing" title="concept-get-attributes-when-sniffing">Get an
                   22095:        attribute</a> and its value. If no attribute was sniffed,
                   22096:        then jump to the <i>processing</i> step below.</p></li>
                   22097: 
                   22098:        <li><p>If the attribute's name is already in <var title="">attribute list</var>, then return to the step
                   22099:        labeled <i>attributes</i>.</p>
                   22100: 
                   22101:        </li><li><p>Add the attribute's name to <var title="">attribute
                   22102:        list</var>.</p>
                   22103: 
                   22104:        </li><li>
                   22105: 
                   22106:         <p>Run the appropriate step from the following list, if one
                   22107:         applies:</p>
                   22108: 
                   22109:         <dl class="switch"><dt>If the attribute's name is "<code title="">http-equiv</code>"</dt>
                   22110: 
                   22111:          <dd><p>If the attribute's value is "<code title="">content-type</code>", then set <var title="">got
                   22112:          pragma</var> to true.</p></dd>
                   22113: 
                   22114:          <dt>If the attribute's name is "<code title="">content</code>"</dt>
                   22115: 
                   22116:          <dd><p>Apply the <a href="urls.html#algorithm-for-extracting-an-encoding-from-a-meta-element">algorithm for extracting an encoding
                   22117:          from a <code>meta</code> element</a>, giving the
                   22118:          attribute's value as the string to parse. If an encoding is
                   22119:          returned, and if <var title="">charset</var> is still set
                   22120:          to null, let <var title="">charset</var> be the encoding
                   22121:          returned, and set <var title="">need pragma</var> to
                   22122:          true.</p></dd>
                   22123: 
                   22124:          <dt>If the attribute's name is "<code title="">charset</code>"</dt>
                   22125: 
                   22126:          <dd><p>Let <var title="">charset</var> be the encoding
                   22127:          corresponding to the attribute's value, and set <var title="">need pragma</var> to false.</p></dd>
                   22128: 
                   22129:         </dl></li>
                   22130: 
                   22131:        <li><p>Return to the step labeled <i>attributes</i>.</p></li>
                   22132: 
                   22133:        <li><p><i>Processing</i>: If <var title="">need pragma</var> is
                   22134:        null, then jump to the step below labeled <i>next
                   22135:        byte</i>.</p></li>
                   22136: 
                   22137:        <li><p>If <var title="">need pragma</var> is true but <var title="">got pragma</var> is false, then jump to the step below
                   22138:        labeled <i>next byte</i>.</p></li>
                   22139: 
                   22140:        <li><p>If <var title="">charset</var> is <a href="infrastructure.html#a-utf-16-encoding">a UTF-16
                   22141:        encoding</a>, change the value of <var title="">charset</var> to UTF-8.</p></li>
                   22142: 
                   22143:        <li><p>If <var title="">charset</var> is not a supported
                   22144:        character encoding, then jump to the step below labeled <i>next
                   22145:        byte</i>.</p></li>
                   22146: 
                   22147:        <li><p>Abort the <a href="#prescan-a-byte-stream-to-determine-its-encoding">prescan a byte stream to determine its
                   22148:        encoding</a> algorithm, returning the encoding given by <var title="">charset</var>.</p></li>
                   22149: 
                   22150:       </ol></dd>
                   22151: 
                   22152:      <dt>A sequence of bytes starting with a 0x3C byte (ASCII &lt;), optionally a 0x2F byte (ASCII /), and finally a byte in the range 0x41-0x5A or 0x61-0x7A (an ASCII letter)</dt>
                   22153:      <dd>
                   22154: 
                   22155:       <ol><li><p>Advance the <var title="">position</var> pointer so
                   22156:        that it points at the next 0x09 (ASCII TAB), 0x0A (ASCII LF),
                   22157:        0x0C (ASCII FF), 0x0D (ASCII CR), 0x20 (ASCII space), or 0x3E
                   22158:        (ASCII &gt;) byte.</p></li>
                   22159: 
                   22160:        <li><p>Repeatedly <a href="#concept-get-attributes-when-sniffing" title="concept-get-attributes-when-sniffing">get an
                   22161:        attribute</a> until no further attributes can be found, then
                   22162:        jump to the step below labeled <i>next byte</i>.</p></li>
                   22163: 
                   22164:       </ol></dd>
                   22165: 
                   22166:      <dt>A sequence of bytes starting with: 0x3C 0x21 (ASCII '&lt;!')</dt>
                   22167:      <dt>A sequence of bytes starting with: 0x3C 0x2F (ASCII '&lt;/')</dt>
                   22168:      <dt>A sequence of bytes starting with: 0x3C 0x3F (ASCII '&lt;?')</dt>
                   22169:      <dd>
                   22170: 
                   22171:       <p>Advance the <var title="">position</var> pointer so that it
                   22172:       points at the first 0x3E byte (ASCII &gt;) that comes after the
                   22173:       0x3C byte that was found.</p>
                   22174: 
                   22175:      </dd>
                   22176: 
                   22177:      <dt>Any other byte</dt>
                   22178:      <dd>
                   22179: 
                   22180:       <p>Do nothing with that byte.</p>
                   22181: 
                   22182:      </dd>
                   22183: 
                   22184:     </dl></li>
                   22185: 
                   22186:    <li><i>Next byte</i>: Move <var title="">position</var> so it
                   22187:    points at the next byte in the input byte stream, and return to the
                   22188:    step above labeled <i>loop</i>.</li>
                   22189: 
                   22190:   </ol><p>When the <a href="#prescan-a-byte-stream-to-determine-its-encoding">prescan a byte stream to determine its
                   22191:   encoding</a> algorithm says to <dfn id="concept-get-attributes-when-sniffing" title="concept-get-attributes-when-sniffing">get an attribute</dfn>,
                   22192:   it means doing this:</p>
                   22193: 
                   22194:   <ol><li><p>If the byte at <var title="">position</var> is one of 0x09
                   22195:    (ASCII TAB), 0x0A (ASCII LF), 0x0C (ASCII FF), 0x0D (ASCII CR),
                   22196:    0x20 (ASCII space), or 0x2F (ASCII /) then advance <var title="">position</var> to the next byte and redo this
                   22197:    step.</p></li>
                   22198: 
                   22199:    <li><p>If the byte at <var title="">position</var> is 0x3E (ASCII
                   22200:    &gt;), then abort the <a href="#concept-get-attributes-when-sniffing" title="concept-get-attributes-when-sniffing">get an
                   22201:    attribute</a> algorithm. There isn't one.</p></li>
                   22202: 
                   22203:    <li><p>Otherwise, the byte at <var title="">position</var> is the
                   22204:    start of the attribute name. Let <var title="">attribute name</var>
                   22205:    and <var title="">attribute value</var> be the empty
                   22206:    string.</p></li>
                   22207: 
                   22208:    <li><p><i>Attribute name</i>: Process the byte at <var title="">position</var> as follows:</p>
                   22209: 
                   22210:     <dl class="switch"><dt>If it is 0x3D (ASCII =), and the <var title="">attribute
                   22211:      name</var> is longer than the empty string</dt>
                   22212: 
                   22213:      <dd>Advance <var title="">position</var> to the next byte and
                   22214:      jump to the step below labeled <i>value</i>.</dd>
                   22215: 
                   22216:      <dt>If it is 0x09 (ASCII TAB), 0x0A (ASCII LF), 0x0C (ASCII
                   22217:      FF), 0x0D (ASCII CR), or 0x20 (ASCII space)</dt>
                   22218: 
                   22219:      <dd>Jump to the step below labeled <i>spaces</i>.</dd>
                   22220: 
                   22221:      <dt>If it is 0x2F (ASCII /) or 0x3E (ASCII &gt;)</dt>
                   22222: 
                   22223:      <dd>Abort the <a href="#concept-get-attributes-when-sniffing" title="concept-get-attributes-when-sniffing">get an
                   22224:      attribute</a> algorithm. The attribute's name is the value of
                   22225:      <var title="">attribute name</var>, its value is the empty
                   22226:      string.</dd>
                   22227: 
                   22228:      <dt>If it is in the range 0x41 (ASCII A) to 0x5A (ASCII
                   22229:      Z)</dt>
                   22230: 
                   22231:      <dd>Append the Unicode character with code point <span title=""><var title="">b</var>+0x20</span> to <var title="">attribute name</var> (where <var title="">b</var> is
                   22232:      the value of the byte at <var title="">position</var>). (This
                   22233:      converts the input to lowercase.)</dd>
                   22234: 
                   22235:      <dt>Anything else</dt>
                   22236: 
                   22237:      <dd>Append the Unicode character with the same code point as the
                   22238:      value of the byte at <var title="">position</var>) to <var title="">attribute name</var>. (It doesn't actually matter how
                   22239:      bytes outside the ASCII range are handled here, since only
                   22240:      ASCII characters can contribute to the detection of a character
                   22241:      encoding.)</dd>
                   22242: 
                   22243:     </dl></li>
                   22244: 
                   22245:    <li><p>Advance <var title="">position</var> to the next byte and
                   22246:    return to the previous step.</p></li>
                   22247: 
                   22248:    <li><p><i>Spaces</i>: If the byte at <var title="">position</var> is one of 0x09 (ASCII TAB), 0x0A (ASCII
                   22249:    LF), 0x0C (ASCII FF), 0x0D (ASCII CR), or 0x20 (ASCII space) then
                   22250:    advance <var title="">position</var> to the next byte, then,
                   22251:    repeat this step.</p></li>
                   22252: 
                   22253:    <li><p>If the byte at <var title="">position</var> is <em>not</em>
                   22254:    0x3D (ASCII =), abort the <a href="#concept-get-attributes-when-sniffing" title="concept-get-attributes-when-sniffing">get an
                   22255:    attribute</a> algorithm. The attribute's name is the value of
                   22256:    <var title="">attribute name</var>, its value is the empty
                   22257:    string.</p></li>
                   22258: 
                   22259:    <li><p>Advance <var title="">position</var> past the 0x3D (ASCII
                   22260:    =) byte.</p></li>
                   22261: 
                   22262:    <li><p><i>Value</i>: If the byte at <var title="">position</var> is one of 0x09 (ASCII TAB), 0x0A (ASCII
                   22263:    LF), 0x0C (ASCII FF), 0x0D (ASCII CR), or 0x20 (ASCII space) then
                   22264:    advance <var title="">position</var> to the next byte, then,
                   22265:    repeat this step.</p></li>
                   22266: 
                   22267:    <li><p>Process the byte at <var title="">position</var> as
                   22268:    follows:</p>
                   22269: 
                   22270:     <dl class="switch"><dt>If it is 0x22 (ASCII ") or 0x27 (ASCII ')</dt>
                   22271: 
                   22272:      <dd>
                   22273: 
                   22274:       <ol><li>Let <var title="">b</var> be the value of the byte at
                   22275:        <var title="">position</var>.</li>
                   22276: 
                   22277:        <li><i>Quote loop</i>: Advance <var title="">position</var> to
                   22278:        the next byte.</li>
                   22279: 
                   22280:        <li>If the value of the byte at <var title="">position</var> is
                   22281:        the value of <var title="">b</var>, then advance <var title="">position</var> to the next byte and abort the "get an
                   22282:        attribute" algorithm. The attribute's name is the value of <var title="">attribute name</var>, and its value is the value of
                   22283:        <var title="">attribute value</var>.</li>
                   22284: 
                   22285:        <li>Otherwise, if the value of the byte at <var title="">position</var> is in the range 0x41 (ASCII A) to 0x5A
                   22286:        (ASCII Z), then append a Unicode character to <var title="">attribute value</var> whose code point is 0x20 more
                   22287:        than the value of the byte at <var title="">position</var>.</li>
                   22288: 
                   22289:        <li>Otherwise, append a Unicode character to <var title="">attribute value</var> whose code point is the same as
                   22290:        the value of the byte at <var title="">position</var>.</li>
                   22291: 
                   22292:        <li>Return to the step above labeled <i>quote loop</i>.</li>
                   22293: 
                   22294:       </ol></dd>
                   22295: 
                   22296:      <dt>If it is 0x3E (ASCII &gt;)</dt>
                   22297: 
                   22298:      <dd>Abort the <a href="#concept-get-attributes-when-sniffing" title="concept-get-attributes-when-sniffing">get an
                   22299:      attribute</a> algorithm. The attribute's name is the value of
                   22300:      <var title="">attribute name</var>, its value is the empty
                   22301:      string.</dd>
                   22302: 
                   22303: 
                   22304:      <dt>If it is in the range 0x41 (ASCII A) to 0x5A (ASCII
                   22305:      Z)</dt>
                   22306: 
                   22307:      <dd>Append the Unicode character with code point <span title=""><var title="">b</var>+0x20</span> to <var title="">attribute value</var> (where <var title="">b</var> is
                   22308:      the value of the byte at <var title="">position</var>). Advance
                   22309:      <var title="">position</var> to the next byte.</dd>
                   22310: 
                   22311:      <dt>Anything else</dt>
                   22312: 
                   22313:      <dd>Append the Unicode character with the same code point as the
                   22314:      value of the byte at <var title="">position</var>) to <var title="">attribute value</var>. Advance <var title="">position</var> to the next byte.</dd>
                   22315: 
                   22316:     </dl></li>
                   22317: 
                   22318:    <li><p>Process the byte at <var title="">position</var> as
                   22319:    follows:</p>
                   22320: 
                   22321:     <dl class="switch"><dt>If it is 0x09 (ASCII TAB), 0x0A (ASCII LF), 0x0C (ASCII
                   22322:      FF), 0x0D (ASCII CR), 0x20 (ASCII space), or 0x3E (ASCII
                   22323:      &gt;)</dt>
                   22324: 
                   22325:      <dd>Abort the <a href="#concept-get-attributes-when-sniffing" title="concept-get-attributes-when-sniffing">get an
                   22326:      attribute</a> algorithm. The attribute's name is the value of
                   22327:      <var title="">attribute name</var> and its value is the value of
                   22328:      <var title="">attribute value</var>.</dd>
                   22329: 
                   22330:      <dt>If it is in the range 0x41 (ASCII A) to 0x5A (ASCII Z)</dt>
                   22331: 
                   22332:      <dd>Append the Unicode character with code point <span title=""><var title="">b</var>+0x20</span> to <var title="">attribute value</var> (where <var title="">b</var> is
                   22333:      the value of the byte at <var title="">position</var>).</dd>
                   22334: 
                   22335:      <dt>Anything else</dt>
                   22336: 
                   22337:      <dd>Append the Unicode character with the same code point as the
                   22338:      value of the byte at <var title="">position</var>) to <var title="">attribute value</var>.</dd>
                   22339: 
                   22340:     </dl></li>
                   22341: 
                   22342:    <li><p>Advance <var title="">position</var> to the next byte and
                   22343:    return to the previous step.</p></li>
                   22344: 
                   22345:   </ol><p>For the sake of interoperability, user agents should not use a
                   22346:   pre-scan algorithm that returns different results than the one
                   22347:   described above. (But, if you do, please at least let us know, so
                   22348:   that we can improve this algorithm and benefit everyone...)</p>
                   22349: 
                   22350: <!--(removed this since the specs are being changed)
                   22351:   <p class="note">These algorithms are a <span>willful
                   22352:   violation</span> of the HTTP specification, which requires that the
                   22353:   encoding be assumed to be ISO-8859-1 in the absence of a
                   22354:   <span>character encoding declaration</span> to the contrary, and of
                   22355:   RFC 2046, which requires that the encoding be assumed to be US-ASCII
                   22356:   in the absence of a <span>character encoding declaration</span> to
                   22357:   the contrary. This specification's third approach is motivated by a
                   22358:   desire to be maximally compatible with legacy content. <a
                   22359:   href="#refsHTTP">[HTTP]</a> <a href="#refsRFC2046">[RFC2046]</a></p>
                   22360: -->
                   22361: 
                   22362: 
                   22363: 
                   22364:   <h5 id="character-encodings-0"><span class="secno">8.2.2.2 </span>Character encodings</h5>
                   22365: 
                   22366:   <p>User agents must at a minimum support the UTF-8 and Windows-1252
                   22367:   encodings, but may support more. <a href="#refsRFC3629">[RFC3629]</a> <a href="#refsWIN1252">[WIN1252]</a></p>
                   22368: 
                   22369:   <p class="note">It is not unusual for Web browsers to support dozens
                   22370:   if not upwards of a hundred distinct character encodings.</p>
                   22371: 
                   22372:   <p>User agents must support the <a href="infrastructure.html#preferred-mime-name">preferred MIME name</a> of
                   22373:   every character encoding they support, and should support all the
                   22374:   IANA-registered names and aliases of every character encoding they
                   22375:   support. <a href="#refsIANACHARSET">[IANACHARSET]</a></p>
                   22376: 
                   22377:   <p>When comparing a string specifying a character encoding with the
                   22378:   name or alias of a character encoding to determine if they are
                   22379:   equal, user agents must remove any leading or trailing <a href="common-microsyntaxes.html#space-character" title="space character">space characters</a> in both names, and
                   22380:   then perform the comparison in an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   22381:   case-insensitive</a> manner.</p>
                   22382: 
                   22383:   <hr><p>When a user agent would otherwise use an encoding given in the
                   22384:   first column of the following table to either convert content to
                   22385:   Unicode characters or convert Unicode characters to bytes, it must
                   22386:   instead use the encoding given in the cell in the second column of
                   22387:   the same row. When a byte or sequence of bytes is treated
                   22388:   differently due to this encoding aliasing, it is said to have been
                   22389:   <dfn id="misinterpreted-for-compatibility">misinterpreted for compatibility</dfn>.</p>
                   22390: 
                   22391:   <table id="table-encoding-overrides"><caption>Character encoding overrides</caption>
                   22392:    <thead><tr><th> Input encoding </th><th> Replacement encoding </th><th> References
                   22393:    </th></tr></thead><tbody><tr><td> EUC-KR </td><td> windows-949 </td><td>
                   22394:          <a href="#refsEUCKR">[EUCKR]</a>
                   22395:          <a href="#refsWIN949">[WIN949]</a>
                   22396:     </td></tr><tr><td> EUC-JP </td><td> CP51932 </td><td>
                   22397:          <a href="#refsEUCJP">[EUCJP]</a>
                   22398:          <a href="#refsCP51932">[CP51932]</a>
                   22399:     </td></tr><tr><td> GB2312 </td><td> GBK </td><td>
                   22400:          <a href="#refsRFC1345">[RFC1345]</a>
                   22401:          <a href="#refsGBK">[GBK]</a>
                   22402:     </td></tr><tr><td> GB_2312-80 </td><td> GBK </td><td>
                   22403:          <a href="#refsRFC1345">[RFC1345]</a>
                   22404:          <a href="#refsGBK">[GBK]</a>
                   22405:     </td></tr><tr><td> ISO-2022-JP </td><td> CP50220 </td><td>
                   22406:          <a href="#refsRFC1468">[RFC1468]</a><!-- ISO-2022-JP -->
                   22407:          <a href="#refsRFC2237">[RFC2237]</a><!-- ISO-2022-JP-1 -->
                   22408:          <a href="#refsRFC1554">[RFC1554]</a><!-- ISO-2022-JP-2 -->
                   22409:          <a href="#refsCP50220">[CP50220]</a><!-- CP50220, the compatibility replacement for ISO-2022-JP -->
                   22410:     </td></tr><tr><td> ISO-8859-1 </td><td> windows-1252 </td><td>
                   22411:          <a href="#refsRFC1345">[RFC1345]</a>
                   22412:          <a href="#refsWIN1252">[WIN1252]</a>
                   22413:     </td></tr><tr><td> ISO-8859-9 </td><td> windows-1254 </td><td>
                   22414:          <a href="#refsRFC1345">[RFC1345]</a>
                   22415:          <a href="#refsWIN1254">[WIN1254]</a>
                   22416:     </td></tr><tr><td> ISO-8859-11 </td><td> windows-874 </td><td>
                   22417:          <a href="#refsISO885911">[ISO885911]</a>
                   22418:          <a href="#refsWIN874">[WIN874]</a>
                   22419:     </td></tr><tr><td> KS_C_5601-1987 </td><td> windows-949 </td><td>
                   22420:          <a href="#refsRFC1345">[RFC1345]</a>
                   22421:          <a href="#refsWIN949">[WIN949]</a>
                   22422:     </td></tr><tr><td> Shift_JIS </td><td> Windows-31J </td><td>
                   22423:          <a href="#refsSHIFTJIS">[SHIFTJIS]</a>
                   22424:          <a href="#refsWIN31J">[WIN31J]</a>
                   22425:     </td></tr><tr><td> TIS-620 </td><td> windows-874 </td><td>
                   22426:          <a href="#refsTIS620">[TIS620]</a>
                   22427:          <a href="#refsWIN874">[WIN874]</a>
                   22428:     </td></tr><tr><td> US-ASCII </td><td> windows-1252 </td><td>
                   22429:          <a href="#refsRFC1345">[RFC1345]</a>
                   22430:          <a href="#refsWIN1252">[WIN1252]</a>
                   22431:    </td></tr></tbody></table><p class="note">The requirement to treat certain encodings as other
                   22432:   encodings according to the table above is a <a href="introduction.html#willful-violation">willful
                   22433:   violation</a> of the W3C Character Model specification, motivated
                   22434:   by a desire for compatibility with legacy content. <a href="#refsCHARMOD">[CHARMOD]</a></p>
                   22435: 
                   22436:   <p>When a user agent is to use the self-describing UTF-16 encoding
                   22437:   but no BOM has been found, user agents must default to little-endian
                   22438:   UTF-16.</p>
                   22439: 
                   22440:   <p class="note">The requirement to default UTF-16 to little-endian
                   22441:   rather than big-endian is a <a href="introduction.html#willful-violation">willful violation</a> of RFC
                   22442:   2781, motivated by a desire for compatibility with legacy content.
                   22443:   <a href="#refsRFC2781">[RFC2781]</a></p>
                   22444: 
                   22445:   <hr><p>User agents must not support the CESU-8, UTF-7, BOCU-1 and SCSU
                   22446:   encodings. <a href="#refsCESU8">[CESU8]</a> <a href="#refsUTF7">[UTF7]</a> <a href="#refsBOCU1">[BOCU1]</a> <a href="#refsSCSU">[SCSU]</a></p>
                   22447: 
                   22448:   <p>Support for encodings based on EBCDIC is not recommended. This
                   22449:   encoding is rarely used for publicly-facing Web content.</p>
                   22450: 
                   22451:   <p>Support for UTF-32 is not recommended. This encoding is rarely
                   22452:   used, and frequently implemented incorrectly.</p>
                   22453: 
                   22454:   <p class="note">This specification does not make any attempt to
                   22455:   support EBCDIC-based encodings and UTF-32 in its algorithms; support
                   22456:   and use of these encodings can thus lead to unexpected behavior in
                   22457:   implementations of this specification.</p>
                   22458: 
                   22459: 
                   22460: 
                   22461:   <h5 id="changing-the-encoding-while-parsing"><span class="secno">8.2.2.3 </span>Changing the encoding while parsing</h5>
                   22462: 
                   22463:   <p>When the parser requires the user agent to <dfn id="change-the-encoding">change the
                   22464:   encoding</dfn>, it must run the following steps. This might happen
                   22465:   if the <a href="#encoding-sniffing-algorithm">encoding sniffing algorithm</a> described above
                   22466:   failed to find an encoding, or if it found an encoding that was not
                   22467:   the actual encoding of the file.</p>
                   22468: 
                   22469:   <ol><li>If the encoding that is already being used to interpret the
                   22470:    input stream is <a href="infrastructure.html#a-utf-16-encoding">a UTF-16 encoding</a>, then set the <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a> to
                   22471:    <i>certain</i> and abort these steps. The new encoding is ignored;
                   22472:    if it was anything but the same encoding, then it would be clearly
                   22473:    incorrect.</li>
                   22474: 
                   22475:    <li>If the new encoding is <a href="infrastructure.html#a-utf-16-encoding">a UTF-16 encoding</a>, change
                   22476:    it to UTF-8.</li>
                   22477: 
                   22478:    <li>If the new encoding is identical or equivalent to the encoding
                   22479:    that is already being used to interpret the input stream, then set
                   22480:    the <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a> to
                   22481:    <i>certain</i> and abort these steps. This happens when the
                   22482:    encoding information found in the file matches what the
                   22483:    <a href="#encoding-sniffing-algorithm">encoding sniffing algorithm</a> determined to be the
                   22484:    encoding, and in the second pass through the parser if the first
                   22485:    pass found that the encoding sniffing algorithm described in the
                   22486:    earlier section failed to find the right encoding.</li>
                   22487: 
                   22488:    <li>If all the bytes up to the last byte converted by the current
                   22489:    decoder have the same Unicode interpretations in both the current
                   22490:    encoding and the new encoding, and if the user agent supports
                   22491:    changing the converter on the fly, then the user agent may change
                   22492:    to the new converter for the encoding on the fly. Set the
                   22493:    <a href="infrastructure.html#document's-character-encoding">document's character encoding</a> and the encoding used to
                   22494:    convert the input stream to the new encoding, set the <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a> to
                   22495:    <i>certain</i>, and abort these steps.</li>
                   22496: 
                   22497:    <li>Otherwise, <a href="#navigate">navigate</a><!--DONAV reparse--> to the
                   22498:    document again, with <a href="#replacement-enabled">replacement enabled</a>, and using
                   22499:    the same <a href="#source-browsing-context">source browsing context</a>, but this time skip
                   22500:    the <a href="#encoding-sniffing-algorithm">encoding sniffing algorithm</a> and instead just set
                   22501:    the encoding to the new encoding and the <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a> to
                   22502:    <i>certain</i>. Whenever possible, this should be done without
                   22503:    actually contacting the network layer (the bytes should be
                   22504:    re-parsed from memory), even if, e.g., the document is marked as
                   22505:    not being cacheable. If this is not possible and contacting the
                   22506:    network layer would involve repeating a request that uses a method
                   22507:    other than HTTP GET (<a href="urls.html#concept-http-equivalent-get" title="concept-http-equivalent-get">or
                   22508:    equivalent</a> for non-HTTP URLs), then instead set the <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a> to
                   22509:    <i>certain</i> and ignore the new encoding. The resource will be
                   22510:    misinterpreted. User agents may notify the user of the situation,
                   22511:    to aid in application development.</li>
                   22512: 
                   22513:   </ol><h5 id="preprocessing-the-input-stream"><span class="secno">8.2.2.4 </span>Preprocessing the input stream</h5>
                   22514: 
                   22515:   <p>The <dfn id="input-stream">input stream</dfn> consists of the characters pushed
                   22516:   into it as the <a href="#the-input-byte-stream">input byte stream</a> is decoded or from the
                   22517:   various APIs that directly manipulate the input stream.</p>
                   22518: 
                   22519:   <p>One leading U+FEFF BYTE ORDER MARK character must be ignored if
                   22520:   any are present in the <a href="#input-stream">input stream</a>.</p>
                   22521: 
                   22522:   <p class="note">The requirement to strip a U+FEFF BYTE ORDER MARK
                   22523:   character regardless of whether that character was used to determine
                   22524:   the byte order is a <a href="introduction.html#willful-violation">willful violation</a> of Unicode,
                   22525:   motivated by a desire to increase the resilience of user agents in
                   22526:   the face of na&#239;ve transcoders.</p>
                   22527: 
                   22528:   <p>Any occurrences of any characters in the ranges U+0001 to U+0008,
                   22529:   <!-- HT, LF allowed --> <!-- U+000B is in the next list --> <!-- FF,
                   22530:   CR allowed --> U+000E to U+001F, <!-- ASCII allowed --> U+007F
                   22531:   <!--to U+0084, (U+0085 NEL not allowed), U+0086--> to U+009F, U+FDD0
                   22532:   to U+FDEF, and characters U+000B, U+FFFE, U+FFFF, U+1FFFE, U+1FFFF,
                   22533:   U+2FFFE, U+2FFFF, U+3FFFE, U+3FFFF, U+4FFFE, U+4FFFF, U+5FFFE,
                   22534:   U+5FFFF, U+6FFFE, U+6FFFF, U+7FFFE, U+7FFFF, U+8FFFE, U+8FFFF,
                   22535:   U+9FFFE, U+9FFFF, U+AFFFE, U+AFFFF, U+BFFFE, U+BFFFF, U+CFFFE,
                   22536:   U+CFFFF, U+DFFFE, U+DFFFF, U+EFFFE, U+EFFFF, U+FFFFE, U+FFFFF,
                   22537:   U+10FFFE, and U+10FFFF are <a href="#parse-error" title="parse error">parse
                   22538:   errors</a>. These are all control characters or permanently
                   22539:   undefined Unicode characters (noncharacters).</p>
                   22540: 
                   22541:   <p>"CR" (U+000D) characters and "LF" (U+000A)
                   22542:   characters are treated specially. All CR characters must be
                   22543:   converted to LF characters, and any LF characters that immediately
                   22544:   follow a CR character must be ignored. Thus, newlines in HTML DOMs
                   22545:   are represented by LF characters, and there are never any CR
                   22546:   characters in the input to the <a href="#tokenization">tokenization</a> stage.</p>
                   22547: 
                   22548:   <p>The <dfn id="next-input-character">next input character</dfn> is the first character in the
                   22549:   <a href="#input-stream">input stream</a> that has not yet been <dfn id="consumed">consumed</dfn>
                   22550:   or explicitly ignored by the requirements in this section.
                   22551:   Initially, the <i><a href="#next-input-character">next input character</a></i> is the first character in
                   22552:   the input. The <dfn id="current-input-character">current input character</dfn> is the last
                   22553:   character to have been <i><a href="#consumed">consumed</a></i>.</p>
                   22554: 
                   22555:   <p>The <dfn id="insertion-point">insertion point</dfn> is the position (just before a
                   22556:   character or just before the end of the input stream) where content
                   22557:   inserted using <code title="dom-document-write"><a href="dynamic-markup-insertion.html#dom-document-write">document.write()</a></code> is actually
                   22558:   inserted. The insertion point is relative to the position of the
                   22559:   character immediately after it, it is not an absolute offset into
                   22560:   the input stream. Initially, the insertion point is
                   22561:   undefined.</p>
                   22562: 
                   22563:   <p>The "EOF" character in the tables below is a conceptual character
                   22564:   representing the end of the <a href="#input-stream">input stream</a>. If the parser
                   22565:   is a <a href="dynamic-markup-insertion.html#script-created-parser">script-created parser</a>, then the end of the
                   22566:   <a href="#input-stream">input stream</a> is reached when an <dfn id="explicit-eof-character">explicit "EOF"
                   22567:   character</dfn> (inserted by the <code title="dom-document-close"><a href="dynamic-markup-insertion.html#dom-document-close">document.close()</a></code> method) is
                   22568:   consumed. Otherwise, the "EOF" character is not a real character in
                   22569:   the stream, but rather the lack of any further characters.</p>
                   22570: 
                   22571:   </div>
                   22572: 
                   22573: 
                   22574:   <div class="impl">
                   22575: 
                   22576:   <h4 id="parse-state"><span class="secno">8.2.3 </span>Parse state</h4>
                   22577: 
                   22578:   <h5 id="the-insertion-mode"><span class="secno">8.2.3.1 </span>The insertion mode</h5>
                   22579: 
                   22580:   <p>The <dfn id="insertion-mode">insertion mode</dfn> is a state variable that controls
                   22581:   the primary operation of the tree construction stage.</p>
                   22582: 
                   22583:   <p>Initially, the <a href="#insertion-mode">insertion mode</a> is "<a href="#the-initial-insertion-mode" title="insertion mode: initial">initial</a>". It can change to
                   22584:   "<a href="#the-before-html-insertion-mode" title="insertion mode: before html">before html</a>",
                   22585:   "<a href="#the-before-head-insertion-mode" title="insertion mode: before head">before head</a>",
                   22586:   "<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>", "<a href="#parsing-main-inheadnoscript" title="insertion mode: in head noscript">in head noscript</a>",
                   22587:   "<a href="#the-after-head-insertion-mode" title="insertion mode: after head">after head</a>", "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>", "<a href="#parsing-main-incdata" title="insertion mode: text">text</a>", "<a href="#parsing-main-intable" title="insertion
                   22588:   mode: in table">in table</a>", "<a href="#parsing-main-intabletext" title="insertion mode: in
                   22589:   table text">in table text</a>", "<a href="#parsing-main-incaption" title="insertion mode: in
                   22590:   caption">in caption</a>", "<a href="#parsing-main-incolgroup" title="insertion mode: in column
                   22591:   group">in column group</a>", "<a href="#parsing-main-intbody" title="insertion mode: in
                   22592:   table body">in table body</a>", "<a href="#parsing-main-intr" title="insertion mode: in
                   22593:   row">in row</a>", "<a href="#parsing-main-intd" title="insertion mode: in cell">in
                   22594:   cell</a>", "<a href="#parsing-main-inselect" title="insertion mode: in select">in
                   22595:   select</a>", "<a href="#parsing-main-inselectintable" title="insertion mode: in select in table">in
                   22596:   select in table</a>", "<a href="#parsing-main-afterbody" title="insertion mode: after
                   22597:   body">after body</a>", "<a href="#parsing-main-inframeset" title="insertion mode: in
                   22598:   frameset">in frameset</a>", "<a href="#parsing-main-afterframeset" title="insertion mode: after
                   22599:   frameset">after frameset</a>", "<a href="#the-after-after-body-insertion-mode" title="insertion mode:
                   22600:   after after body">after after body</a>", and "<a href="#the-after-after-frameset-insertion-mode" title="insertion mode: after after frameset">after after
                   22601:   frameset</a>" during the course of the parsing, as described in
                   22602:   the <a href="#tree-construction">tree construction</a> stage. The insertion mode affects
                   22603:   how tokens are processed and whether CDATA sections are
                   22604:   supported.</p>
                   22605: 
                   22606:   <p>Several of these modes, namely "<a href="#parsing-main-inhead" title="insertion mode: in
                   22607:   head">in head</a>", "<a href="#parsing-main-inbody" title="insertion mode: in body">in
                   22608:   body</a>", "<a href="#parsing-main-intable" title="insertion mode: in table">in
                   22609:   table</a>", and "<a href="#parsing-main-inselect" title="insertion mode: in select">in
                   22610:   select</a>", are special, in that the other modes defer to them
                   22611:   at various times. When the algorithm below says that the user agent
                   22612:   is to do something "<dfn id="using-the-rules-for">using the rules for</dfn> the <var title="">m</var> insertion mode", where <var title="">m</var> is one
                   22613:   of these modes, the user agent must use the rules described under
                   22614:   the <var title="">m</var> <a href="#insertion-mode">insertion mode</a>'s section, but
                   22615:   must leave the <a href="#insertion-mode">insertion mode</a> unchanged unless the
                   22616:   rules in <var title="">m</var> themselves switch the <a href="#insertion-mode">insertion
                   22617:   mode</a> to a new value.</p>
                   22618: 
                   22619:   <p>When the insertion mode is switched to "<a href="#parsing-main-incdata" title="insertion
                   22620:   mode: text">text</a>" or "<a href="#parsing-main-intabletext" title="insertion mode: in table
                   22621:   text">in table text</a>", the <dfn id="original-insertion-mode">original insertion mode</dfn>
                   22622:   is also set. This is the insertion mode to which the tree
                   22623:   construction stage will return.</p>
                   22624: 
                   22625:   <hr><p>When the steps below require the UA to <dfn id="reset-the-insertion-mode-appropriately">reset the insertion
                   22626:   mode appropriately</dfn>, it means the UA must follow these
                   22627:   steps:</p>
                   22628: 
                   22629:   <ol><li>Let <var title="">last</var> be false.</li>
                   22630: 
                   22631:    <li>Let <var title="">node</var> be the last node in the
                   22632:    <a href="#stack-of-open-elements">stack of open elements</a>.</li>
                   22633: 
                   22634:    <li><i>Loop</i>: If <var title="">node</var> is the first node in
                   22635:    the stack of open elements, then set <var title="">last</var> to
                   22636:    true and set <var title="">node</var> to the <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var> element.
                   22637:    (<a href="#fragment-case">fragment case</a>)</li>
                   22638: 
                   22639:    <li>If <var title="">node</var> is a <code><a href="the-select-element.html#the-select-element">select</a></code> element,
                   22640:    then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inselect" title="insertion mode: in select">in select</a>" and abort these
                   22641:    steps. (<a href="#fragment-case">fragment case</a>)</li>
                   22642: 
                   22643:    <li>If <var title="">node</var> is a <code><a href="the-td-element.html#the-td-element">td</a></code> or
                   22644:    <code><a href="the-th-element.html#the-th-element">th</a></code> element and <var title="">last</var> is false, then
                   22645:    switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-intd" title="insertion
                   22646:    mode: in cell">in cell</a>" and abort these steps.</li>
                   22647: 
                   22648:    <li>If <var title="">node</var> is a <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element, then
                   22649:    switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-intr" title="insertion
                   22650:    mode: in row">in row</a>" and abort these steps.</li>
                   22651: 
                   22652:    <li>If <var title="">node</var> is a <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>,
                   22653:    <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, or <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code> element, then switch the
                   22654:    <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-intbody" title="insertion mode: in
                   22655:    table body">in table body</a>" and abort these steps.</li>
                   22656: 
                   22657:    <li>If <var title="">node</var> is a <code><a href="the-caption-element.html#the-caption-element">caption</a></code> element,
                   22658:    then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-incaption" title="insertion mode: in caption">in caption</a>" and abort
                   22659:    these steps.</li>
                   22660: 
                   22661:    <li>If <var title="">node</var> is a <code><a href="the-colgroup-element.html#the-colgroup-element">colgroup</a></code> element,
                   22662:    then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-incolgroup" title="insertion mode: in column group">in column group</a>" and
                   22663:    abort these steps. (<a href="#fragment-case">fragment case</a>)</li>
                   22664: 
                   22665:    <li>If <var title="">node</var> is a <code><a href="the-table-element.html#the-table-element">table</a></code> element,
                   22666:    then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-intable" title="insertion mode: in table">in table</a>" and abort these
                   22667:    steps.</li>
                   22668: 
                   22669:    <li>If <var title="">node</var> is a <code><a href="the-head-element.html#the-head-element">head</a></code> element,
                   22670:    then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" ("<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>"! <em> not "<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>"</em>!) and abort
                   22671:    these steps. (<a href="#fragment-case">fragment case</a>)</li> <!-- This is only
                   22672:    here for now in case people think that the spec accidentally
                   22673:    omitted it and try to "fix" it. Note that noscript-in-head is also
                   22674:    handled this way. This is all intentional. The only thing it
                   22675:    doesn't handle is the scripting-disabled fragment parsing case for
                   22676:    a <head> element containing a <noscript> which itself contains
                   22677:    something other than a <link> or a <style> element; you'd expect
                   22678:    that to break out of the <noscript> but it doesn't. This is an edge
                   22679:    case that doesn't affect the spec, since the algorithm for fragment
                   22680:    parsing is only used for innerHTML/outerHTML/insertAdjacentHTML(),
                   22681:    where we know scripting is enabled. -->
                   22682: 
                   22683:    <li>If <var title="">node</var> is a <code><a href="the-body-element.html#the-body-element">body</a></code> element,
                   22684:    then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" and abort these
                   22685:    steps.</li>
                   22686: 
                   22687:    <li>If <var title="">node</var> is a <code><a href="#frameset">frameset</a></code> element,
                   22688:    then switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inframeset" title="insertion mode: in frameset">in frameset</a>" and abort
                   22689:    these steps. (<a href="#fragment-case">fragment case</a>)</li>
                   22690: 
                   22691:    <li>If <var title="">node</var> is an <code><a href="the-html-element.html#the-html-element">html</a></code> element,
                   22692:    then <!--: if the <span><code title="">head</code> element
                   22693:    pointer</span> is null,--> switch the <a href="#insertion-mode">insertion mode</a>
                   22694:    to "<a href="#the-before-head-insertion-mode" title="insertion mode: before head">before
                   22695:    head</a>"<!--, otherwise, switch the <span>insertion mode</span>
                   22696:    to "<span title="insertion mode: after head">after head</span>".-->
                   22697:    Then, <!-- in either case, --> abort these steps. (<a href="#fragment-case">fragment
                   22698:    case</a>)</li> <!-- if the head element pointer can ever be
                   22699:    non-null when we're going through these steps, we'll need to
                   22700:    uncomment out the commented-out bits -->
                   22701: 
                   22702:    <li>If <var title="">last</var> is true, then switch the
                   22703:    <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inbody" title="insertion mode: in
                   22704:    body">in body</a>" and abort these steps. (<a href="#fragment-case">fragment
                   22705:    case</a>)</li>
                   22706: 
                   22707:    <li>Let <var title="">node</var> now be the node before <var title="">node</var> in the <a href="#stack-of-open-elements">stack of open
                   22708:    elements</a>.</li>
                   22709: 
                   22710:    <li>Return to the step labeled <i>loop</i>.</li>
                   22711: 
                   22712:   </ol><h5 id="the-stack-of-open-elements"><span class="secno">8.2.3.2 </span>The stack of open elements</h5>
                   22713: 
                   22714:   <p>Initially, the <dfn id="stack-of-open-elements">stack of open elements</dfn> is empty. The
                   22715:   stack grows downwards; the topmost node on the stack is the first
                   22716:   one added to the stack, and the bottommost node of the stack is the
                   22717:   most recently added node in the stack (notwithstanding when the
                   22718:   stack is manipulated in a random access fashion as part of <a href="#adoptionAgency">the handling for misnested tags</a>).</p>
                   22719: 
                   22720:   <p>The "<a href="#the-before-html-insertion-mode" title="insertion mode: before html">before
                   22721:   html</a>" <a href="#insertion-mode">insertion mode</a> creates the
                   22722:   <code><a href="the-html-element.html#the-html-element">html</a></code> root element node, which is then added to the
                   22723:   stack.</p>
                   22724: 
                   22725:   <p>In the <a href="#fragment-case">fragment case</a>, the <a href="#stack-of-open-elements">stack of open
                   22726:   elements</a> is initialized to contain an <code><a href="the-html-element.html#the-html-element">html</a></code>
                   22727:   element that is created as part of <a href="#html-fragment-parsing-algorithm" title="html fragment
                   22728:   parsing algorithm">that algorithm</a>. (The <a href="#fragment-case">fragment
                   22729:   case</a> skips the "<a href="#the-before-html-insertion-mode" title="insertion mode: before
                   22730:   html">before html</a>" <a href="#insertion-mode">insertion mode</a>.)</p>
                   22731: 
                   22732:   <p>The <code><a href="the-html-element.html#the-html-element">html</a></code> node, however it is created, is the topmost
                   22733:   node of the stack. It only gets popped off the stack when the parser
                   22734:   <a href="#stop-parsing" title="stop parsing">finishes</a>.</p>
                   22735: 
                   22736:   <p>The <dfn id="current-node">current node</dfn> is the bottommost node in this
                   22737:   stack.</p>
                   22738: 
                   22739:   <p>The <dfn id="current-table">current table</dfn> is the last <code><a href="the-table-element.html#the-table-element">table</a></code>
                   22740:   element in the <a href="#stack-of-open-elements">stack of open elements</a>, if there is
                   22741:   one. If there is no <code><a href="the-table-element.html#the-table-element">table</a></code> element in the <a href="#stack-of-open-elements">stack of
                   22742:   open elements</a> (<a href="#fragment-case">fragment case</a>), then the
                   22743:   <a href="#current-table">current table</a> is the first element in the <a href="#stack-of-open-elements">stack
                   22744:   of open elements</a> (the <code><a href="the-html-element.html#the-html-element">html</a></code> element).</p>
                   22745: 
                   22746:   <p>Elements in the stack fall into the following categories:</p>
                   22747: 
                   22748:   <dl><dt><dfn id="special">Special</dfn></dt>
                   22749:    <dd><p>The following elements have varying levels of special
                   22750:    parsing rules: HTML's <code><a href="the-address-element.html#the-address-element">address</a></code>, <code><a href="#the-applet-element">applet</a></code>,
                   22751:    <code><a href="the-area-element.html#the-area-element">area</a></code>, <code><a href="the-article-element.html#the-article-element">article</a></code>, <code><a href="the-aside-element.html#the-aside-element">aside</a></code>,
                   22752:    <code><a href="the-base-element.html#the-base-element">base</a></code>, <code><a href="#basefont">basefont</a></code>, <code><a href="#bgsound">bgsound</a></code>,
                   22753:    <code><a href="the-blockquote-element.html#the-blockquote-element">blockquote</a></code>, <code><a href="the-body-element.html#the-body-element">body</a></code>, <code><a href="the-br-element.html#the-br-element">br</a></code>,
                   22754:    <code><a href="the-button-element.html#the-button-element">button</a></code>, <code><a href="the-caption-element.html#the-caption-element">caption</a></code>, <code><a href="#center">center</a></code>,
                   22755:    <code><a href="the-col-element.html#the-col-element">col</a></code>, <code><a href="the-colgroup-element.html#the-colgroup-element">colgroup</a></code>, <code><a href="#the-command-element">command</a></code>,
                   22756:    <code><a href="the-dd-element.html#the-dd-element">dd</a></code>, <code><a href="#the-details-element">details</a></code>, <code><a href="#dir">dir</a></code>,
                   22757:    <code><a href="the-div-element.html#the-div-element">div</a></code>, <code><a href="the-dl-element.html#the-dl-element">dl</a></code>, <code><a href="the-dt-element.html#the-dt-element">dt</a></code>,
                   22758:    <code><a href="the-embed-element.html#the-embed-element">embed</a></code>, <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code>, <code><a href="the-figcaption-element.html#the-figcaption-element">figcaption</a></code>,
                   22759:    <code><a href="the-figure-element.html#the-figure-element">figure</a></code>, <code><a href="the-footer-element.html#the-footer-element">footer</a></code>, <code><a href="the-form-element.html#the-form-element">form</a></code>,
                   22760:    <code><a href="#frame">frame</a></code>, <code><a href="#frameset">frameset</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h1</a></code>,
                   22761:    <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h2</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h3</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h4</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h5</a></code>,
                   22762:    <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h6</a></code>, <code><a href="the-head-element.html#the-head-element">head</a></code>, <code><a href="the-header-element.html#the-header-element">header</a></code>,
                   22763:    <code><a href="the-hgroup-element.html#the-hgroup-element">hgroup</a></code>, <code><a href="the-hr-element.html#the-hr-element">hr</a></code>, <code><a href="the-html-element.html#the-html-element">html</a></code>,
                   22764:    <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>, <!-- <code>image</code>, (commented out
                   22765:    because this isn't an element that can end up on the stack, so it
                   22766:    doesn't matter) --> <code><a href="the-img-element.html#the-img-element">img</a></code>, <code><a href="the-input-element.html#the-input-element">input</a></code>,
                   22767:    <code><a href="#isindex-0">isindex</a></code>, <code><a href="the-li-element.html#the-li-element">li</a></code>, <code><a href="the-link-element.html#the-link-element">link</a></code>,
                   22768:    <code><a href="#listing">listing</a></code>, <code><a href="#the-marquee-element-0">marquee</a></code>, <code><a href="#the-menu-element">menu</a></code>,
                   22769:    <code><a href="the-meta-element.html#the-meta-element">meta</a></code>, <code><a href="the-nav-element.html#the-nav-element">nav</a></code>, <code><a href="#noembed">noembed</a></code>,
                   22770:    <code><a href="#noframes">noframes</a></code>, <code><a href="the-noscript-element.html#the-noscript-element">noscript</a></code>, <code><a href="the-object-element.html#the-object-element">object</a></code>,
                   22771:    <code><a href="the-ol-element.html#the-ol-element">ol</a></code>, <code><a href="the-p-element.html#the-p-element">p</a></code>, <code><a href="the-param-element.html#the-param-element">param</a></code>,
                   22772:    <code><a href="#plaintext">plaintext</a></code>, <code><a href="the-pre-element.html#the-pre-element">pre</a></code>, <code><a href="the-script-element.html#the-script-element">script</a></code>,
                   22773:    <code><a href="the-section-element.html#the-section-element">section</a></code>, <code><a href="the-select-element.html#the-select-element">select</a></code>, <code><a href="the-source-element.html#the-source-element">source</a></code>,
                   22774:    <code><a href="the-style-element.html#the-style-element">style</a></code>, <code><a href="#the-summary-element">summary</a></code>, <code><a href="the-table-element.html#the-table-element">table</a></code>,
                   22775:    <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-td-element.html#the-td-element">td</a></code>, <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>,
                   22776:    <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>, <code><a href="the-th-element.html#the-th-element">th</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>,
                   22777:    <code><a href="the-title-element.html#the-title-element">title</a></code>, <code><a href="the-tr-element.html#the-tr-element">tr</a></code>, <code><a href="the-track-element.html#the-track-element">track</a></code>,
                   22778:    <code><a href="the-ul-element.html#the-ul-element">ul</a></code>, <code><a href="the-wbr-element.html#the-wbr-element">wbr</a></code>, and <code><a href="#xmp">xmp</a></code>; MathML's
                   22779:    <code title="">mi</code>, <code title="">mo</code>, <code title="">mn</code>, <code title="">ms</code>, <code title="">mtext</code>, and <code title="">annotation-xml</code>;
                   22780:    and SVG's <code title="">foreignObject</code>, <code title="">desc</code>, and <code title="">title</code>.</p></dd>
                   22781:    <!-- we could actually put all non-HTML elements in this list, I
                   22782:    think -->
                   22783: 
                   22784:    <dt><dfn id="formatting">Formatting</dfn></dt>
                   22785:    <dd><p>The following HTML elements are those that end up in the
                   22786:    <a href="#list-of-active-formatting-elements">list of active formatting elements</a>: <code><a href="the-a-element.html#the-a-element">a</a></code>,
                   22787:    <code><a href="the-b-element.html#the-b-element">b</a></code>, <code><a href="#big">big</a></code>, <code><a href="the-code-element.html#the-code-element">code</a></code>,
                   22788:    <code><a href="the-em-element.html#the-em-element">em</a></code>, <code><a href="#font">font</a></code>, <code><a href="the-i-element.html#the-i-element">i</a></code>,
                   22789:    <code><a href="#nobr">nobr</a></code>, <code><a href="the-s-element.html#the-s-element">s</a></code>, <code><a href="the-small-element.html#the-small-element">small</a></code>,
                   22790:    <code><a href="#strike">strike</a></code>, <code><a href="the-strong-element.html#the-strong-element">strong</a></code>, <code><a href="#tt">tt</a></code>, and
                   22791:    <code><a href="the-u-element.html#the-u-element">u</a></code>.</p></dd>
                   22792: 
                   22793:    <dt><dfn id="ordinary">Ordinary</dfn></dt>
                   22794:    <dd><p>All other elements found while parsing an HTML
                   22795:    document.</p></dd>
                   22796: 
                   22797:   </dl><p>The <a href="#stack-of-open-elements">stack of open elements</a> is said to <dfn id="has-an-element-in-the-specific-scope" title="has an element in the specific scope">have an element in a
                   22798:   specific scope</dfn> consisting of a list of element types <var title="">list</var> when the following algorithm terminates in a
                   22799:   match state:</p>
                   22800: 
                   22801:   <ol><li><p>Initialize <var title="">node</var> to be the <a href="#current-node">current
                   22802:    node</a> (the bottommost node of the stack).</p></li>
                   22803: 
                   22804:    <li><p>If <var title="">node</var> is the target node, terminate in
                   22805:    a match state.</p></li>
                   22806: 
                   22807:    <li><p>Otherwise, if <var title="">node</var> is one of the element
                   22808:    types in <var title="">list</var>, terminate in a failure
                   22809:    state.</p></li>
                   22810: 
                   22811:    <li><p>Otherwise, set <var title="">node</var> to the previous
                   22812:    entry in the <a href="#stack-of-open-elements">stack of open elements</a> and return to step
                   22813:    2. (This will never fail, since the loop will always terminate in
                   22814:    the previous step if the top of the stack &#8212; an
                   22815:    <code><a href="the-html-element.html#the-html-element">html</a></code> element &#8212; is reached.)</p></li>
                   22816: 
                   22817:   </ol><p>The <a href="#stack-of-open-elements">stack of open elements</a> is said to <dfn id="has-an-element-in-scope" title="has an element in scope">have an element in scope</dfn> when
                   22818:   it <a href="#has-an-element-in-the-specific-scope">has an element in the specific scope</a> consisting
                   22819:   of the following element types:</p>
                   22820: 
                   22821:   <ul class="brief"><li><code><a href="#the-applet-element">applet</a></code> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a></li>
                   22822:    <li><code><a href="the-caption-element.html#the-caption-element">caption</a></code> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a></li>
                   22823:    <li><code><a href="the-html-element.html#the-html-element">html</a></code> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a></li> <!-- (This can only happen if the <var title="">node</var> is the topmost node of the <span>stack of open elements</span>, and prevents the next step from being invoked if there are no more elements in the stack.) -->
                   22824:    <li><code><a href="the-table-element.html#the-table-element">table</a></code> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a></li>
                   22825:    <li><code><a href="the-td-element.html#the-td-element">td</a></code> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a></li>
                   22826:    <li><code><a href="the-th-element.html#the-th-element">th</a></code> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a></li>
                   22827:    <li><code><a href="#the-marquee-element-0">marquee</a></code> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a></li>
                   22828:    <li><code><a href="the-object-element.html#the-object-element">object</a></code> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a></li>
                   22829:    <li><code title="">mi</code> in the <a href="namespaces.html#mathml-namespace">MathML namespace</a></li>
                   22830:    <li><code title="">mo</code> in the <a href="namespaces.html#mathml-namespace">MathML namespace</a></li>
                   22831:    <li><code title="">mn</code> in the <a href="namespaces.html#mathml-namespace">MathML namespace</a></li>
                   22832:    <li><code title="">ms</code> in the <a href="namespaces.html#mathml-namespace">MathML namespace</a></li>
                   22833:    <li><code title="">mtext</code> in the <a href="namespaces.html#mathml-namespace">MathML namespace</a></li>
                   22834:    <li><code title="">annotation-xml</code> in the <a href="namespaces.html#mathml-namespace">MathML namespace</a></li>
                   22835:    <li><code title="">foreignObject</code> in the <a href="namespaces.html#svg-namespace">SVG namespace</a></li>
                   22836:    <li><code title="">desc</code> in the <a href="namespaces.html#svg-namespace">SVG namespace</a></li>
                   22837:    <li><code title="">title</code> in the <a href="namespaces.html#svg-namespace">SVG namespace</a></li>
                   22838:   </ul><p>The <a href="#stack-of-open-elements">stack of open elements</a> is said to <dfn id="has-an-element-in-list-item-scope" title="has an element in list item scope">have an element in list
                   22839:   item scope</dfn> when it <a href="#has-an-element-in-the-specific-scope">has an element in the specific
                   22840:   scope</a> consisting of the following element types:</p>
                   22841: 
                   22842:   <ul class="brief"><li>All the element types listed above for the <i><a href="#has-an-element-in-scope">has an element
                   22843:    in scope</a></i> algorithm.</li>
                   22844:    <li><code><a href="the-ol-element.html#the-ol-element">ol</a></code> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a></li>
                   22845:    <li><code><a href="the-ul-element.html#the-ul-element">ul</a></code> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a></li>
                   22846:   </ul><p>The <a href="#stack-of-open-elements">stack of open elements</a> is said to <dfn id="has-an-element-in-button-scope" title="has an element in button scope">have an element in button
                   22847:   scope</dfn> when it <a href="#has-an-element-in-the-specific-scope">has an element in the specific
                   22848:   scope</a> consisting of the following element types:</p>
                   22849: 
                   22850:   <ul class="brief"><li>All the element types listed above for the <i><a href="#has-an-element-in-scope">has an element
                   22851:    in scope</a></i> algorithm.</li>
                   22852:    <li><code><a href="the-button-element.html#the-button-element">button</a></code> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a></li>
                   22853:   </ul><p>The <a href="#stack-of-open-elements">stack of open elements</a> is said to <dfn id="has-an-element-in-table-scope" title="has an element in table scope">have an element in table
                   22854:   scope</dfn> when it <a href="#has-an-element-in-the-specific-scope">has an element in the specific
                   22855:   scope</a> consisting of the following element types:</p>
                   22856: 
                   22857:   <ul class="brief"><li><code><a href="the-html-element.html#the-html-element">html</a></code> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a></li> <!-- (This can only happen if the <var title="">node</var> is the topmost node of the <span>stack of open elements</span>, and prevents the next step from being invoked if there are no more elements in the stack.) -->
                   22858:    <li><code><a href="the-table-element.html#the-table-element">table</a></code> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a></li>
                   22859:   </ul><p>The <a href="#stack-of-open-elements">stack of open elements</a> is said to <dfn id="has-an-element-in-select-scope" title="has an element in select scope">have an element in select
                   22860:   scope</dfn> when it <a href="#has-an-element-in-the-specific-scope">has an element in the specific
                   22861:   scope</a> consisting of all element types <em>except</em> the
                   22862:   following:</p>
                   22863: 
                   22864:   <ul class="brief"><!--<li><code>select</code> in the <span>HTML namespace</span></li>--><li><code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a></li>
                   22865:    <li><code><a href="the-option-element.html#the-option-element">option</a></code> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a></li>
                   22866:   </ul><p>Nothing happens if at any time any of the elements in the
                   22867:   <a href="#stack-of-open-elements">stack of open elements</a> are moved to a new location in,
                   22868:   or removed from, the <code><a href="dom.html#document">Document</a></code> tree. In particular, the
                   22869:   stack is not changed in this situation. This can cause, amongst
                   22870:   other strange effects, content to be appended to nodes that are no
                   22871:   longer in the DOM.</p>
                   22872: 
                   22873:   <p class="note">In some cases (namely, when <a href="#adoptionAgency">closing misnested formatting elements</a>),
                   22874:   the stack is manipulated in a random-access fashion.</p>
                   22875: 
                   22876: 
                   22877:   <h5 id="the-list-of-active-formatting-elements"><span class="secno">8.2.3.3 </span>The list of active formatting elements</h5>
                   22878: 
                   22879:   <p>Initially, the <dfn id="list-of-active-formatting-elements">list of active formatting elements</dfn> is
                   22880:   empty. It is used to handle mis-nested <a href="#formatting" title="formatting">formatting element tags</a>.</p>
                   22881: 
                   22882:   <p>The list contains elements in the <a href="#formatting">formatting</a>
                   22883:   category, and scope markers. The scope markers are inserted when
                   22884:   entering <code><a href="#the-applet-element">applet</a></code> elements, buttons, <code><a href="the-object-element.html#the-object-element">object</a></code>
                   22885:   elements, marquees, table cells, and table captions, and are used to
                   22886:   prevent formatting from "leaking" <em>into</em> <code><a href="#the-applet-element">applet</a></code>
                   22887:   elements, buttons, <code><a href="the-object-element.html#the-object-element">object</a></code> elements, marquees, and
                   22888:   tables.</p>
                   22889: 
                   22890:   <p class="note">The scope markers are unrelated to the concept of an
                   22891:   element being <a href="#has-an-element-in-scope" title="has an element in scope">in
                   22892:   scope</a>.</p>
                   22893: 
                   22894:   <p>In addition, each element in the <a href="#list-of-active-formatting-elements">list of active formatting
                   22895:   elements</a> is associated with the token for which it was
                   22896:   created, so that further elements can be created for that token if
                   22897:   necessary.</p>
                   22898: 
                   22899:   <p>When the steps below require the UA to <dfn id="push-onto-the-list-of-active-formatting-elements">push onto the list of
                   22900:   active formatting elements</dfn> an element <var title="">element</var>, the UA must perform the following steps:</p>
                   22901: 
                   22902:   <ol><li><p>If there are already three elements in the <a href="#list-of-active-formatting-elements">list of
                   22903:    active formatting elements</a> after the last list marker, if
                   22904:    any, or anywhere in the list if there are no list markers, that
                   22905:    have the same tag name, namespace, and attributes as <var title="">element</var>, then remove the earliest such element from
                   22906:    the <a href="#list-of-active-formatting-elements">list of active formatting elements</a>. For these
                   22907:    purposes, the attributes must be compared as they were when the
                   22908:    elements were created by the parser; two elements have the same
                   22909:    attributes if all their parsed attributes can be paired such that
                   22910:    the two attributes in each pair have identical names, namespaces,
                   22911:    and values (the order of the attributes does not matter).</p>
                   22912: 
                   22913:    <p class="note">This is the Noah's Ark clause. But with three per
                   22914:    family instead of two.</p></li> <!-- A sort of polyamorous Noah's
                   22915:    Ark, if you will. -->
                   22916: 
                   22917:    <li><p>Add <var title="">element</var> to the <a href="#list-of-active-formatting-elements">list of active
                   22918:    formatting elements</a>.</p></li>
                   22919: 
                   22920:   </ol><p>When the steps below require the UA to <dfn id="reconstruct-the-active-formatting-elements">reconstruct the
                   22921:   active formatting elements</dfn>, the UA must perform the following
                   22922:   steps:</p>
                   22923: 
                   22924:   <ol><li>If there are no entries in the <a href="#list-of-active-formatting-elements">list of active formatting
                   22925:    elements</a>, then there is nothing to reconstruct; stop this
                   22926:    algorithm.</li>
                   22927: 
                   22928:    <li>If the last (most recently added) entry in the <a href="#list-of-active-formatting-elements">list of
                   22929:    active formatting elements</a> is a marker, or if it is an
                   22930:    element that is in the <a href="#stack-of-open-elements">stack of open elements</a>, then
                   22931:    there is nothing to reconstruct; stop this algorithm.</li>
                   22932: 
                   22933:    <li>Let <var title="">entry</var> be the last (most recently added)
                   22934:    element in the <a href="#list-of-active-formatting-elements">list of active formatting
                   22935:    elements</a>.</li>
                   22936: 
                   22937:    <li>If there are no entries before <var title="">entry</var> in the
                   22938:    <a href="#list-of-active-formatting-elements">list of active formatting elements</a>, then jump to step
                   22939:    8.</li>
                   22940: 
                   22941:    <li>Let <var title="">entry</var> be the entry one earlier than
                   22942:    <var title="">entry</var> in the <a href="#list-of-active-formatting-elements">list of active formatting
                   22943:    elements</a>.</li>
                   22944: 
                   22945:    <li>If <var title="">entry</var> is neither a marker nor an element
                   22946:    that is also in the <a href="#stack-of-open-elements">stack of open elements</a>, go to step
                   22947:    4.</li>
                   22948: 
                   22949:    <li>Let <var title="">entry</var> be the element one later than
                   22950:    <var title="">entry</var> in the <a href="#list-of-active-formatting-elements">list of active formatting
                   22951:    elements</a>.</li>
                   22952: 
                   22953:    <li><a href="#create-an-element-for-the-token">Create an element for the token</a> for which the
                   22954:    element <var title="">entry</var> was created, to obtain <var title="">new element</var>.</li>
                   22955: 
                   22956:    <li>Append <var title="">new element</var> to the <a href="#current-node">current
                   22957:    node</a> and push it onto the <a href="#stack-of-open-elements">stack of open
                   22958:    elements</a> so that it is the new <a href="#current-node">current
                   22959:    node</a>.</li>
                   22960: 
                   22961:    <li>Replace the entry for <var title="">entry</var> in the list
                   22962:    with an entry for <var title="">new element</var>.</li>
                   22963: 
                   22964:    <li>If the entry for <var title="">new element</var> in the
                   22965:    <a href="#list-of-active-formatting-elements">list of active formatting elements</a> is not the last
                   22966:    entry in the list, return to step 7.</li>
                   22967: 
                   22968:   </ol><p>This has the effect of reopening all the formatting elements that
                   22969:   were opened in the current body, cell, or caption (whichever is
                   22970:   youngest) that haven't been explicitly closed.</p>
                   22971: 
                   22972:   <p class="note">The way this specification is written, the
                   22973:   <a href="#list-of-active-formatting-elements">list of active formatting elements</a> always consists of
                   22974:   elements in chronological order with the least recently added
                   22975:   element first and the most recently added element last (except for
                   22976:   while steps 8 to 11 of the above algorithm are being executed, of
                   22977:   course).</p>
                   22978: 
                   22979:   <p>When the steps below require the UA to <dfn id="clear-the-list-of-active-formatting-elements-up-to-the-last-marker">clear the list of
                   22980:   active formatting elements up to the last marker</dfn>, the UA must
                   22981:   perform the following steps:</p>
                   22982: 
                   22983:   <ol><li>Let <var title="">entry</var> be the last (most recently added)
                   22984:    entry in the <a href="#list-of-active-formatting-elements">list of active formatting elements</a>.</li>
                   22985: 
                   22986:    <li>Remove <var title="">entry</var> from the <a href="#list-of-active-formatting-elements">list of active
                   22987:    formatting elements</a>.</li>
                   22988: 
                   22989:    <li>If <var title="">entry</var> was a marker, then stop the
                   22990:    algorithm at this point. The list has been cleared up to the last
                   22991:    marker.</li>
                   22992: 
                   22993:    <li>Go to step 1.</li>
                   22994: 
                   22995:   </ol><h5 id="the-element-pointers"><span class="secno">8.2.3.4 </span>The element pointers</h5>
                   22996: 
                   22997:   <p>Initially, the <dfn id="head-element-pointer"><code title="">head</code> element
                   22998:   pointer</dfn> and the <dfn id="form-element-pointer"><code title="">form</code> element
                   22999:   pointer</dfn> are both null.</p>
                   23000: 
                   23001:   <p>Once a <code><a href="the-head-element.html#the-head-element">head</a></code> element has been parsed (whether
                   23002:   implicitly or explicitly) the <a href="#head-element-pointer"><code title="">head</code>
                   23003:   element pointer</a> gets set to point to this node.</p>
                   23004: 
                   23005:   <p>The <a href="#form-element-pointer"><code title="">form</code> element pointer</a>
                   23006:   points to the last <code><a href="the-form-element.html#the-form-element">form</a></code> element that was opened and
                   23007:   whose end tag has not yet been seen. It is used to make form
                   23008:   controls associate with forms in the face of dramatically bad
                   23009:   markup, for historical reasons.</p>
                   23010: 
                   23011: 
                   23012:   <h5 id="other-parsing-state-flags"><span class="secno">8.2.3.5 </span>Other parsing state flags</h5>
                   23013: 
                   23014:   <p>The <dfn id="scripting-flag">scripting flag</dfn> is set to "enabled" if <a href="#concept-n-script" title="concept-n-script">scripting was enabled</a> for the
                   23015:   <code><a href="dom.html#document">Document</a></code> with which the parser is associated when the
                   23016:   parser was created, and "disabled" otherwise.</p>
                   23017: 
                   23018:   <p class="note">The <a href="#scripting-flag">scripting flag</a> can be enabled even
                   23019:   when the parser was originally created for the <a href="#html-fragment-parsing-algorithm">HTML fragment
                   23020:   parsing algorithm</a>, even though <code><a href="the-script-element.html#the-script-element">script</a></code> elements
                   23021:   don't execute in that case.</p>
                   23022: 
                   23023:   <p>The <dfn id="frameset-ok-flag">frameset-ok flag</dfn> is set to "ok" when the parser is
                   23024:   created. It is set to "not ok" after certain tokens are seen.</p>
                   23025: 
                   23026:   </div>
                   23027: 
                   23028: 
                   23029:   <div class="impl">
                   23030: 
                   23031:   <h4 id="tokenization"><span class="secno">8.2.4 </span><dfn>Tokenization</dfn></h4>
                   23032: 
                   23033:   <p>Implementations must act as if they used the following state
                   23034:   machine to tokenize HTML. The state machine must start in the
                   23035:   <a href="#data-state">data state</a>. Most states consume a single character,
                   23036:   which may have various side-effects, and either switches the state
                   23037:   machine to a new state to <i>reconsume</i> the same character, or
                   23038:   switches it to a new state to consume the next character, or stays
                   23039:   in the same state to consume the next character. Some states have
                   23040:   more complicated behavior and can consume several characters before
                   23041:   switching to another state. In some cases, the tokenizer state is
                   23042:   also changed by the tree construction stage.</p>
                   23043: 
                   23044:   <p>The exact behavior of certain states depends on the
                   23045:   <a href="#insertion-mode">insertion mode</a> and the <a href="#stack-of-open-elements">stack of open
                   23046:   elements</a>. Certain states also use a <dfn id="temporary-buffer"><var>temporary
                   23047:   buffer</var></dfn> to track progress.</p>
                   23048: 
                   23049:   <p>The output of the tokenization step is a series of zero or more
                   23050:   of the following tokens: DOCTYPE, start tag, end tag, comment,
                   23051:   character, end-of-file. DOCTYPE tokens have a name, a public
                   23052:   identifier, a system identifier, and a <i>force-quirks
                   23053:   flag</i>. When a DOCTYPE token is created, its name, public
                   23054:   identifier, and system identifier must be marked as missing (which
                   23055:   is a distinct state from the empty string), and the <i>force-quirks
                   23056:   flag</i> must be set to <i>off</i> (its other state is
                   23057:   <i>on</i>). Start and end tag tokens have a tag name, a
                   23058:   <i>self-closing flag</i>, and a list of attributes, each of which
                   23059:   has a name and a value. When a start or end tag token is created,
                   23060:   its <i>self-closing flag</i> must be unset (its other state is that
                   23061:   it be set), and its attributes list must be empty. Comment and
                   23062:   character tokens have data.</p>
                   23063: 
                   23064:   <p>When a token is emitted, it must immediately be handled by the
                   23065:   <a href="#tree-construction">tree construction</a> stage. The tree construction stage
                   23066:   can affect the state of the tokenization stage, and can insert
                   23067:   additional characters into the stream. (For example, the
                   23068:   <code><a href="the-script-element.html#the-script-element">script</a></code> element can result in scripts executing and
                   23069:   using the <a href="dynamic-markup-insertion.html#dynamic-markup-insertion">dynamic markup insertion</a> APIs to insert
                   23070:   characters into the stream being tokenized.)</p>
                   23071: 
                   23072:   <p>When a start tag token is emitted with its <i>self-closing
                   23073:   flag</i> set, if the flag is not <dfn id="acknowledge-self-closing-flag" title="acknowledge
                   23074:   self-closing flag">acknowledged</dfn> when it is processed by the
                   23075:   tree construction stage, that is a <a href="#parse-error">parse error</a>.</p>
                   23076: 
                   23077:   <p>When an end tag token is emitted with attributes, that is a
                   23078:   <a href="#parse-error">parse error</a>.</p>
                   23079: 
                   23080:   <p>When an end tag token is emitted with its <i>self-closing
                   23081:   flag</i> set, that is a <a href="#parse-error">parse error</a>.</p>
                   23082: 
                   23083:   <p>An <dfn id="appropriate-end-tag-token">appropriate end tag token</dfn> is an end tag token whose
                   23084:   tag name matches the tag name of the last start tag to have been
                   23085:   emitted from this tokenizer, if any. If no start tag has been
                   23086:   emitted from this tokenizer, then no end tag token is
                   23087:   appropriate.</p>
                   23088: 
                   23089:   <p>Before each step of the tokenizer, the user agent must first
                   23090:   check the <a href="#parser-pause-flag">parser pause flag</a>. If it is true, then the
                   23091:   tokenizer must abort the processing of any nested invocations of the
                   23092:   tokenizer, yielding control back to the caller.</p>
                   23093: 
                   23094:   <p>The tokenizer state machine consists of the states defined in the
                   23095:   following subsections.</p>
                   23096: 
                   23097: 
                   23098:   <!-- Order of the lists below is supposed to be non-error then
                   23099:   error, by unicode, then EOF, ending with "anything else" -->
                   23100: 
                   23101: 
                   23102:   <h5 id="data-state"><span class="secno">8.2.4.1 </span><dfn>Data state</dfn></h5>
                   23103: 
                   23104:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23105: 
                   23106:   <dl class="switch"><dt>U+0026 AMPERSAND (&amp;)</dt>
                   23107:    <dd>Switch to the <a href="#character-reference-in-data-state">character reference in data
                   23108:    state</a>.</dd>
                   23109: 
                   23110:    <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
                   23111:    <dd>Switch to the <a href="#tag-open-state">tag open state</a>.</dd>
                   23112: 
                   23113:    <dt>U+0000 NULL</dt>
                   23114:    <dd><a href="#parse-error">Parse error</a>. Emit the <a href="#current-input-character">current input
                   23115:    character</a> as a character token.</dd>
                   23116: 
                   23117:    <dt>EOF</dt>
                   23118:    <dd>Emit an end-of-file token.</dd>
                   23119: 
                   23120:    <dt>Anything else</dt>
                   23121:    <dd>Emit the <a href="#current-input-character">current input character</a> as a character
                   23122:    token.</dd>
                   23123: 
                   23124:   </dl><h5 id="character-reference-in-data-state"><span class="secno">8.2.4.2 </span><dfn>Character reference in data state</dfn></h5>
                   23125: 
                   23126:   <p>Switch to the <a href="#data-state">data state</a>.</p>
                   23127: 
                   23128:   <p>Attempt to <a href="#consume-a-character-reference">consume a character reference</a>, with no
                   23129:   <a href="#additional-allowed-character">additional allowed character</a>.</p>
                   23130: 
                   23131:   <p>If nothing is returned, emit a U+0026 AMPERSAND character (&amp;)
                   23132:   token.</p>
                   23133: 
                   23134:   <p>Otherwise, emit the character tokens that were returned.</p>
                   23135: 
                   23136: 
                   23137:   <h5 id="rcdata-state"><span class="secno">8.2.4.3 </span><dfn>RCDATA state</dfn></h5>
                   23138: 
                   23139:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23140: 
                   23141:   <dl class="switch"><dt>U+0026 AMPERSAND (&amp;)</dt>
                   23142:    <dd>Switch to the <a href="#character-reference-in-rcdata-state">character reference in RCDATA
                   23143:    state</a>.</dd>
                   23144: 
                   23145:    <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
                   23146:    <dd>Switch to the <a href="#rcdata-less-than-sign-state">RCDATA less-than sign state</a>.</dd>
                   23147: 
                   23148:    <dt>U+0000 NULL</dt>
                   23149:    <dd><a href="#parse-error">Parse error</a>. Emit a U+FFFD REPLACEMENT CHARACTER
                   23150:    character token.</dd>
                   23151: 
                   23152:    <dt>EOF</dt>
                   23153:    <dd>Emit an end-of-file token.</dd>
                   23154: 
                   23155:    <dt>Anything else</dt>
                   23156:    <dd>Emit the <a href="#current-input-character">current input character</a> as a character
                   23157:    token.</dd>
                   23158: 
                   23159:   </dl><h5 id="character-reference-in-rcdata-state"><span class="secno">8.2.4.4 </span><dfn>Character reference in RCDATA state</dfn></h5>
                   23160: 
                   23161:   <p>Switch to the <a href="#rcdata-state">RCDATA state</a>.</p>
                   23162: 
                   23163:   <p>Attempt to <a href="#consume-a-character-reference">consume a character reference</a>, with no
                   23164:   <a href="#additional-allowed-character">additional allowed character</a>.</p>
                   23165: 
                   23166:   <p>If nothing is returned, emit a U+0026 AMPERSAND character (&amp;)
                   23167:   token.</p>
                   23168: 
                   23169:   <p>Otherwise, emit the character tokens that were returned.</p>
                   23170: 
                   23171: 
                   23172:   <h5 id="rawtext-state"><span class="secno">8.2.4.5 </span><dfn>RAWTEXT state</dfn></h5>
                   23173: 
                   23174:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23175: 
                   23176:   <dl class="switch"><dt>U+003C LESS-THAN SIGN (&lt;)</dt>
                   23177:    <dd>Switch to the <a href="#rawtext-less-than-sign-state">RAWTEXT less-than sign state</a>.</dd>
                   23178: 
                   23179:    <dt>U+0000 NULL</dt>
                   23180:    <dd><a href="#parse-error">Parse error</a>. Emit a U+FFFD REPLACEMENT CHARACTER
                   23181:    character token.</dd>
                   23182: 
                   23183:    <dt>EOF</dt>
                   23184:    <dd>Emit an end-of-file token.</dd>
                   23185: 
                   23186:    <dt>Anything else</dt>
                   23187:    <dd>Emit the <a href="#current-input-character">current input character</a> as a character
                   23188:    token.</dd>
                   23189: 
                   23190:   </dl><h5 id="script-data-state"><span class="secno">8.2.4.6 </span><dfn>Script data state</dfn></h5>
                   23191: 
                   23192:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23193: 
                   23194:   <dl class="switch"><dt>U+003C LESS-THAN SIGN (&lt;)</dt>
                   23195:    <dd>Switch to the <a href="#script-data-less-than-sign-state">script data less-than sign state</a>.</dd>
                   23196: 
                   23197:    <dt>U+0000 NULL</dt>
                   23198:    <dd><a href="#parse-error">Parse error</a>. Emit a U+FFFD REPLACEMENT CHARACTER
                   23199:    character token.</dd>
                   23200: 
                   23201:    <dt>EOF</dt>
                   23202:    <dd>Emit an end-of-file token.</dd>
                   23203: 
                   23204:    <dt>Anything else</dt>
                   23205:    <dd>Emit the <a href="#current-input-character">current input character</a> as a character
                   23206:    token.</dd>
                   23207: 
                   23208:   </dl><h5 id="plaintext-state"><span class="secno">8.2.4.7 </span><dfn>PLAINTEXT state</dfn></h5>
                   23209: 
                   23210:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23211: 
                   23212:   <dl class="switch"><dt>U+0000 NULL</dt>
                   23213:    <dd><a href="#parse-error">Parse error</a>. Emit a U+FFFD REPLACEMENT CHARACTER
                   23214:    character token.</dd>
                   23215: 
                   23216:    <dt>EOF</dt>
                   23217:    <dd>Emit an end-of-file token.</dd>
                   23218: 
                   23219:    <dt>Anything else</dt>
                   23220:    <dd>Emit the <a href="#current-input-character">current input character</a> as a character
                   23221:    token.</dd>
                   23222: 
                   23223:   </dl><h5 id="tag-open-state"><span class="secno">8.2.4.8 </span><dfn>Tag open state</dfn></h5>
                   23224: 
                   23225:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23226: 
                   23227:   <dl class="switch"><dt>"!" (U+0021)</dt>
                   23228:    <dd>Switch to the <a href="#markup-declaration-open-state">markup declaration open state</a>.</dd>
                   23229: 
                   23230:    <dt>"/" (U+002F)</dt>
                   23231:    <dd>Switch to the <a href="#end-tag-open-state">end tag open state</a>.</dd>
                   23232: 
                   23233:    <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   23234:    <dd>Create a new start tag token, set its tag name to the
                   23235:    lowercase version of the <a href="#current-input-character">current input character</a> (add 0x0020 to the
                   23236:    character's code point), then switch to the <a href="#tag-name-state">tag name
                   23237:    state</a>. (Don't emit the token yet; further details will
                   23238:    be filled in before it is emitted.)</dd>
                   23239: 
                   23240:    <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
                   23241:    <dd>Create a new start tag token, set its tag name to the
                   23242:    <a href="#current-input-character">current input character</a>, then switch to the <a href="#tag-name-state">tag
                   23243:    name state</a>. (Don't emit the token yet; further details will
                   23244:    be filled in before it is emitted.)</dd>
                   23245: 
                   23246:    <dt>"?" (U+003F)</dt>
                   23247:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#bogus-comment-state">bogus
                   23248:    comment state</a>.</dd>
                   23249: 
                   23250:    <dt>Anything else</dt>
                   23251:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   23252:    state</a>. Emit a U+003C LESS-THAN SIGN character token.
                   23253:    Reconsume the <a href="#current-input-character">current input character</a>.</dd>
                   23254: 
                   23255:   </dl><h5 id="end-tag-open-state"><span class="secno">8.2.4.9 </span><dfn>End tag open state</dfn></h5>
                   23256: 
                   23257:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23258: 
                   23259:   <dl class="switch"><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   23260:    <dd>Create a new end tag token, set its tag name to the lowercase
                   23261:    version of the <a href="#current-input-character">current input character</a> (add 0x0020 to
                   23262:    the character's code point), then switch to the <a href="#tag-name-state">tag name
                   23263:    state</a>. (Don't emit the token yet; further details will be
                   23264:    filled in before it is emitted.)</dd>
                   23265: 
                   23266:    <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
                   23267:    <dd>Create a new end tag token, set its tag name to the
                   23268:    <a href="#current-input-character">current input character</a>, then switch to the <a href="#tag-name-state">tag
                   23269:    name state</a>. (Don't emit the token yet; further details will
                   23270:    be filled in before it is emitted.)</dd>
                   23271: 
                   23272:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   23273:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   23274:    state</a>.</dd>
                   23275: 
                   23276:    <dt>EOF</dt>
                   23277:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   23278:    state</a>. Emit a U+003C LESS-THAN SIGN character token and a
                   23279:    U+002F SOLIDUS character token. Reconsume the EOF character.</dd>
                   23280: 
                   23281:    <dt>Anything else</dt>
                   23282:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#bogus-comment-state">bogus
                   23283:    comment state</a>.</dd>
                   23284: 
                   23285:   </dl><h5 id="tag-name-state"><span class="secno">8.2.4.10 </span><dfn>Tag name state</dfn></h5>
                   23286: 
                   23287:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23288: 
                   23289:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   23290:    <dt>"LF" (U+000A)</dt>
                   23291:    <dt>"FF" (U+000C)</dt>
                   23292:    <!--<dt>"CR" (U+000D)</dt>-->
                   23293:    <dt>U+0020 SPACE</dt>
                   23294:    <dd>Switch to the <a href="#before-attribute-name-state">before attribute name state</a>.</dd>
                   23295: 
                   23296:    <dt>"/" (U+002F)</dt>
                   23297:    <dd>Switch to the <a href="#self-closing-start-tag-state">self-closing start tag state</a>.</dd>
                   23298: 
                   23299:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   23300:    <dd>Switch to the <a href="#data-state">data state</a>. Emit the current tag
                   23301:    token.</dd>
                   23302: 
                   23303:    <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   23304:    <dd>Append the lowercase version of the <a href="#current-input-character">current input
                   23305:    character</a> (add 0x0020 to the character's code point) to the
                   23306:    current tag token's tag name.</dd>
                   23307: 
                   23308:    <dt>U+0000 NULL</dt>
                   23309:    <dd><a href="#parse-error">Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
                   23310:    character to the current tag token's tag name.</dd>
                   23311: 
                   23312:    <dt>EOF</dt>
                   23313:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   23314:    state</a>. Reconsume the EOF character.</dd>
                   23315: 
                   23316:    <dt>Anything else</dt>
                   23317:    <dd>Append the <a href="#current-input-character">current input character</a> to the current
                   23318:    tag token's tag name.</dd>
                   23319: 
                   23320:   </dl><h5 id="rcdata-less-than-sign-state"><span class="secno">8.2.4.11 </span><dfn>RCDATA less-than sign state</dfn></h5>
                   23321:   <!-- identical to the RAWTEXT less-than sign state, except s/RAWTEXT/RCDATA/g -->
                   23322: 
                   23323:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23324: 
                   23325:   <dl class="switch"><dt>"/" (U+002F)</dt>
                   23326:    <dd>Set the <var><a href="#temporary-buffer">temporary buffer</a></var> to the empty string. Switch
                   23327:    to the <a href="#rcdata-end-tag-open-state">RCDATA end tag open state</a>.</dd>
                   23328: 
                   23329:    <dt>Anything else</dt>
                   23330:    <dd>Switch to the <a href="#rcdata-state">RCDATA state</a>. Emit a U+003C
                   23331:    LESS-THAN SIGN character token. Reconsume the <a href="#current-input-character">current
                   23332:    input character</a>.</dd>
                   23333: 
                   23334:   </dl><h5 id="rcdata-end-tag-open-state"><span class="secno">8.2.4.12 </span><dfn>RCDATA end tag open state</dfn></h5>
                   23335:   <!-- identical to the RAWTEXT (and Script data) end tag open state, except s/RAWTEXT/RCDATA/g -->
                   23336: 
                   23337:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23338: 
                   23339:   <dl class="switch"><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   23340:    <dd>Create a new end tag token, and set its tag name to the
                   23341:    lowercase version of the <a href="#current-input-character">current input character</a> (add
                   23342:    0x0020 to the character's code point). Append the <a href="#current-input-character">current
                   23343:    input character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>. Finally,
                   23344:    switch to the <a href="#rcdata-end-tag-name-state">RCDATA end tag name state</a>. (Don't emit
                   23345:    the token yet; further details will be filled in before it is
                   23346:    emitted.)</dd>
                   23347: 
                   23348:    <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
                   23349:    <dd>Create a new end tag token, and set its tag name to the
                   23350:    <a href="#current-input-character">current input character</a>. Append the <a href="#current-input-character">current
                   23351:    input character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>. Finally,
                   23352:    switch to the <a href="#rcdata-end-tag-name-state">RCDATA end tag name state</a>. (Don't emit
                   23353:    the token yet; further details will be filled in before it is
                   23354:    emitted.)</dd>
                   23355: 
                   23356:    <dt>Anything else</dt>
                   23357:    <dd>Switch to the <a href="#rcdata-state">RCDATA state</a>. Emit a U+003C
                   23358:    LESS-THAN SIGN character token and a U+002F SOLIDUS character token.
                   23359:    Reconsume the <a href="#current-input-character">current input character</a>.</dd>
                   23360: 
                   23361:   </dl><h5 id="rcdata-end-tag-name-state"><span class="secno">8.2.4.13 </span><dfn>RCDATA end tag name state</dfn></h5>
                   23362:   <!-- identical to the RAWTEXT (and Script data) end tag name state, except s/RAWTEXT/RCDATA/g -->
                   23363: 
                   23364:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23365: 
                   23366:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   23367:    <dt>"LF" (U+000A)</dt>
                   23368:    <dt>"FF" (U+000C)</dt>
                   23369:    <!--<dt>"CR" (U+000D)</dt>-->
                   23370:    <dt>U+0020 SPACE</dt>
                   23371:    <dd>If the current end tag token is an <a href="#appropriate-end-tag-token">appropriate end tag
                   23372:    token</a>, then switch to the <a href="#before-attribute-name-state">before attribute name
                   23373:    state</a>. Otherwise, treat it as per the "anything else" entry
                   23374:    below.</dd>
                   23375: 
                   23376:    <dt>"/" (U+002F)</dt>
                   23377:    <dd>If the current end tag token is an <a href="#appropriate-end-tag-token">appropriate end tag
                   23378:    token</a>, then switch to the <a href="#self-closing-start-tag-state">self-closing start tag
                   23379:    state</a>. Otherwise, treat it as per the "anything else" entry
                   23380:    below.</dd>
                   23381: 
                   23382:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   23383:    <dd>If the current end tag token is an <a href="#appropriate-end-tag-token">appropriate end tag
                   23384:    token</a>, then switch to the <a href="#data-state">data state</a> and emit
                   23385:    the current tag token. Otherwise, treat it as per the "anything
                   23386:    else" entry below.</dd>
                   23387: 
                   23388:    <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   23389:    <dd>Append the lowercase version of the <a href="#current-input-character">current input
                   23390:    character</a> (add 0x0020 to the character's code point) to the
                   23391:    current tag token's tag name. Append the <a href="#current-input-character">current input
                   23392:    character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>.</dd>
                   23393: 
                   23394:    <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
                   23395:    <dd>Append the <a href="#current-input-character">current input character</a> to the current
                   23396:    tag token's tag name. Append the <a href="#current-input-character">current input
                   23397:    character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>.</dd>
                   23398: 
                   23399:    <dt>Anything else</dt>
                   23400:    <dd>Switch to the <a href="#rcdata-state">RCDATA state</a>. Emit a U+003C
                   23401:    LESS-THAN SIGN character token, a U+002F SOLIDUS character token,
                   23402:    and a character token for each of the characters in the
                   23403:    <var><a href="#temporary-buffer">temporary buffer</a></var> (in the order they were added to the
                   23404:    buffer). Reconsume the <a href="#current-input-character">current input character</a>.</dd>
                   23405: 
                   23406:   </dl><h5 id="rawtext-less-than-sign-state"><span class="secno">8.2.4.14 </span><dfn>RAWTEXT less-than sign state</dfn></h5>
                   23407:   <!-- identical to the RCDATA less-than sign state, except s/RCDATA/RAWTEXT/g -->
                   23408: 
                   23409:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23410: 
                   23411:   <dl class="switch"><dt>"/" (U+002F)</dt>
                   23412:    <dd>Set the <var><a href="#temporary-buffer">temporary buffer</a></var> to the empty string. Switch
                   23413:    to the <a href="#rawtext-end-tag-open-state">RAWTEXT end tag open state</a>.</dd>
                   23414: 
                   23415:    <dt>Anything else</dt>
                   23416:    <dd>Switch to the <a href="#rawtext-state">RAWTEXT state</a>. Emit a U+003C
                   23417:    LESS-THAN SIGN character token. Reconsume the <a href="#current-input-character">current
                   23418:    input character</a>.</dd>
                   23419: 
                   23420:   </dl><h5 id="rawtext-end-tag-open-state"><span class="secno">8.2.4.15 </span><dfn>RAWTEXT end tag open state</dfn></h5>
                   23421:   <!-- identical to the RCDATA (and Script data) end tag open state, except s/RCDATA/RAWTEXT/g -->
                   23422: 
                   23423:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23424: 
                   23425:   <dl class="switch"><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   23426:    <dd>Create a new end tag token, and set its tag name to the
                   23427:    lowercase version of the <a href="#current-input-character">current input character</a> (add
                   23428:    0x0020 to the character's code point). Append the <a href="#current-input-character">current
                   23429:    input character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>. Finally,
                   23430:    switch to the <a href="#rawtext-end-tag-name-state">RAWTEXT end tag name state</a>. (Don't emit
                   23431:    the token yet; further details will be filled in before it is
                   23432:    emitted.)</dd>
                   23433: 
                   23434:    <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
                   23435:    <dd>Create a new end tag token, and set its tag name to the
                   23436:    <a href="#current-input-character">current input character</a>. Append the <a href="#current-input-character">current
                   23437:    input character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>. Finally,
                   23438:    switch to the <a href="#rawtext-end-tag-name-state">RAWTEXT end tag name state</a>. (Don't emit
                   23439:    the token yet; further details will be filled in before it is
                   23440:    emitted.)</dd>
                   23441: 
                   23442:    <dt>Anything else</dt>
                   23443:    <dd>Switch to the <a href="#rawtext-state">RAWTEXT state</a>. Emit a U+003C
                   23444:    LESS-THAN SIGN character token and a U+002F SOLIDUS character
                   23445:    token. Reconsume the <a href="#current-input-character">current input character</a>.</dd>
                   23446: 
                   23447:   </dl><h5 id="rawtext-end-tag-name-state"><span class="secno">8.2.4.16 </span><dfn>RAWTEXT end tag name state</dfn></h5>
                   23448:   <!-- identical to the RCDATA (and Script data) end tag name state, except s/RCDATA/RAWTEXT/g -->
                   23449: 
                   23450:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23451: 
                   23452:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   23453:    <dt>"LF" (U+000A)</dt>
                   23454:    <dt>"FF" (U+000C)</dt>
                   23455:    <!--<dt>"CR" (U+000D)</dt>-->
                   23456:    <dt>U+0020 SPACE</dt>
                   23457:    <dd>If the current end tag token is an <a href="#appropriate-end-tag-token">appropriate end tag
                   23458:    token</a>, then switch to the <a href="#before-attribute-name-state">before attribute name
                   23459:    state</a>. Otherwise, treat it as per the "anything else" entry
                   23460:    below.</dd>
                   23461: 
                   23462:    <dt>"/" (U+002F)</dt>
                   23463:    <dd>If the current end tag token is an <a href="#appropriate-end-tag-token">appropriate end tag
                   23464:    token</a>, then switch to the <a href="#self-closing-start-tag-state">self-closing start tag
                   23465:    state</a>. Otherwise, treat it as per the "anything else" entry
                   23466:    below.</dd>
                   23467: 
                   23468:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   23469:    <dd>If the current end tag token is an <a href="#appropriate-end-tag-token">appropriate end tag
                   23470:    token</a>, then switch to the <a href="#data-state">data state</a> and emit
                   23471:    the current tag token. Otherwise, treat it as per the "anything
                   23472:    else" entry below.</dd>
                   23473: 
                   23474:    <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   23475:    <dd>Append the lowercase version of the <a href="#current-input-character">current input
                   23476:    character</a> (add 0x0020 to the character's code point) to the
                   23477:    current tag token's tag name. Append the <a href="#current-input-character">current input
                   23478:    character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>.</dd>
                   23479: 
                   23480:    <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
                   23481:    <dd>Append the <a href="#current-input-character">current input character</a> to the current
                   23482:    tag token's tag name. Append the <a href="#current-input-character">current input
                   23483:    character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>.</dd>
                   23484: 
                   23485:    <dt>Anything else</dt>
                   23486:    <dd>Switch to the <a href="#rawtext-state">RAWTEXT state</a>. Emit a U+003C
                   23487:    LESS-THAN SIGN character token, a U+002F SOLIDUS character token,
                   23488:    and a character token for each of the characters in the
                   23489:    <var><a href="#temporary-buffer">temporary buffer</a></var> (in the order they were added to the
                   23490:    buffer). Reconsume the <a href="#current-input-character">current input character</a>.</dd>
                   23491: 
                   23492:   </dl><h5 id="script-data-less-than-sign-state"><span class="secno">8.2.4.17 </span><dfn>Script data less-than sign state</dfn></h5>
                   23493: 
                   23494:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23495: 
                   23496:   <dl class="switch"><dt>"/" (U+002F)</dt>
                   23497:    <dd>Set the <var><a href="#temporary-buffer">temporary buffer</a></var> to the empty string. Switch
                   23498:    to the <a href="#script-data-end-tag-open-state">script data end tag open state</a>.</dd>
                   23499: 
                   23500:    <dt>"!" (U+0021)</dt>
                   23501:    <dd>Switch to the <a href="#script-data-escape-start-state">script data escape start state</a>. Emit
                   23502:    a U+003C LESS-THAN SIGN character token and a U+0021 EXCLAMATION
                   23503:    MARK character token.</dd>
                   23504: 
                   23505:    <dt>Anything else</dt>
                   23506:    <dd>Switch to the <a href="#script-data-state">script data state</a>. Emit a U+003C
                   23507:    LESS-THAN SIGN character token. Reconsume the <a href="#current-input-character">current
                   23508:    input character</a>.</dd>
                   23509: 
                   23510:   </dl><h5 id="script-data-end-tag-open-state"><span class="secno">8.2.4.18 </span><dfn>Script data end tag open state</dfn></h5>
                   23511:   <!-- identical to the RCDATA (and RAWTEXT) end tag open state, except s/RCDATA/Script data/g -->
                   23512: 
                   23513:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23514: 
                   23515:   <dl class="switch"><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   23516:    <dd>Create a new end tag token, and set its tag name to the
                   23517:    lowercase version of the <a href="#current-input-character">current input character</a> (add
                   23518:    0x0020 to the character's code point). Append the <a href="#current-input-character">current
                   23519:    input character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>. Finally,
                   23520:    switch to the <a href="#script-data-end-tag-name-state">script data end tag name state</a>. (Don't emit
                   23521:    the token yet; further details will be filled in before it is
                   23522:    emitted.)</dd>
                   23523: 
                   23524:    <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
                   23525:    <dd>Create a new end tag token, and set its tag name to the
                   23526:    <a href="#current-input-character">current input character</a>. Append the <a href="#current-input-character">current
                   23527:    input character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>. Finally,
                   23528:    switch to the <a href="#script-data-end-tag-name-state">script data end tag name state</a>. (Don't emit
                   23529:    the token yet; further details will be filled in before it is
                   23530:    emitted.)</dd>
                   23531: 
                   23532:    <dt>Anything else</dt>
                   23533:    <dd>Switch to the <a href="#script-data-state">script data state</a>. Emit a U+003C
                   23534:    LESS-THAN SIGN character token and a U+002F SOLIDUS character token.
                   23535:    Reconsume the <a href="#current-input-character">current input character</a>.</dd>
                   23536: 
                   23537:   </dl><h5 id="script-data-end-tag-name-state"><span class="secno">8.2.4.19 </span><dfn>Script data end tag name state</dfn></h5>
                   23538:   <!-- identical to the RCDATA (and RAWTEXT) end tag name state, except s/RCDATA/Script data/g -->
                   23539: 
                   23540:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23541: 
                   23542:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   23543:    <dt>"LF" (U+000A)</dt>
                   23544:    <dt>"FF" (U+000C)</dt>
                   23545:    <!--<dt>"CR" (U+000D)</dt>-->
                   23546:    <dt>U+0020 SPACE</dt>
                   23547:    <dd>If the current end tag token is an <a href="#appropriate-end-tag-token">appropriate end tag
                   23548:    token</a>, then switch to the <a href="#before-attribute-name-state">before attribute name
                   23549:    state</a>. Otherwise, treat it as per the "anything else" entry
                   23550:    below.</dd>
                   23551: 
                   23552:    <dt>"/" (U+002F)</dt>
                   23553:    <dd>If the current end tag token is an <a href="#appropriate-end-tag-token">appropriate end tag
                   23554:    token</a>, then switch to the <a href="#self-closing-start-tag-state">self-closing start tag
                   23555:    state</a>. Otherwise, treat it as per the "anything else" entry
                   23556:    below.</dd>
                   23557: 
                   23558:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   23559:    <dd>If the current end tag token is an <a href="#appropriate-end-tag-token">appropriate end tag
                   23560:    token</a>, then switch to the <a href="#data-state">data state</a> and emit
                   23561:    the current tag token. Otherwise, treat it as per the "anything
                   23562:    else" entry below.</dd>
                   23563: 
                   23564:    <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   23565:    <dd>Append the lowercase version of the <a href="#current-input-character">current input
                   23566:    character</a> (add 0x0020 to the character's code point) to the
                   23567:    current tag token's tag name. Append the <a href="#current-input-character">current input
                   23568:    character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>.</dd>
                   23569: 
                   23570:    <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
                   23571:    <dd>Append the <a href="#current-input-character">current input character</a> to the current
                   23572:    tag token's tag name. Append the <a href="#current-input-character">current input
                   23573:    character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>.</dd>
                   23574: 
                   23575:    <dt>Anything else</dt>
                   23576:    <dd>Switch to the <a href="#script-data-state">script data state</a>. Emit a U+003C
                   23577:    LESS-THAN SIGN character token, a U+002F SOLIDUS character token,
                   23578:    and a character token for each of the characters in the
                   23579:    <var><a href="#temporary-buffer">temporary buffer</a></var> (in the order they were added to the
                   23580:    buffer). Reconsume the <a href="#current-input-character">current input character</a>.</dd>
                   23581: 
                   23582:   </dl><h5 id="script-data-escape-start-state"><span class="secno">8.2.4.20 </span><dfn>Script data escape start state</dfn></h5>
                   23583: 
                   23584:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23585: 
                   23586:   <dl class="switch"><dt>"-" (U+002D)</dt>
                   23587:    <dd>Switch to the <a href="#script-data-escape-start-dash-state">script data escape start dash
                   23588:    state</a>. Emit a U+002D HYPHEN-MINUS character token.</dd>
                   23589: 
                   23590:    <dt>Anything else</dt>
                   23591:    <dd>Switch to the <a href="#script-data-state">script data state</a>. Reconsume the
                   23592:    <a href="#current-input-character">current input character</a>.</dd>
                   23593: 
                   23594:   </dl><h5 id="script-data-escape-start-dash-state"><span class="secno">8.2.4.21 </span><dfn>Script data escape start dash state</dfn></h5>
                   23595: 
                   23596:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23597: 
                   23598:   <dl class="switch"><dt>"-" (U+002D)</dt>
                   23599:    <dd>Switch to the <a href="#script-data-escaped-dash-dash-state">script data escaped dash dash
                   23600:    state</a>. Emit a U+002D HYPHEN-MINUS character token.</dd>
                   23601: 
                   23602:    <dt>Anything else</dt>
                   23603:    <dd>Switch to the <a href="#script-data-state">script data state</a>. Reconsume the
                   23604:    <a href="#current-input-character">current input character</a>.</dd>
                   23605: 
                   23606:   </dl><h5 id="script-data-escaped-state"><span class="secno">8.2.4.22 </span><dfn>Script data escaped state</dfn></h5>
                   23607: 
                   23608:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23609: 
                   23610:   <dl class="switch"><dt>"-" (U+002D)</dt>
                   23611:    <dd>Switch to the <a href="#script-data-escaped-dash-state">script data escaped dash state</a>. Emit
                   23612:    a U+002D HYPHEN-MINUS character token.</dd>
                   23613: 
                   23614:    <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
                   23615:    <dd>Switch to the <a href="#script-data-escaped-less-than-sign-state">script data escaped less-than sign
                   23616:    state</a>.</dd>
                   23617: 
                   23618:    <dt>U+0000 NULL</dt>
                   23619:    <dd><a href="#parse-error">Parse error</a>. Emit a U+FFFD REPLACEMENT CHARACTER
                   23620:    character token.</dd>
                   23621: 
                   23622:    <dt>EOF</dt>
                   23623:    <dd>Switch to the <a href="#data-state">data state</a>. <a href="#parse-error">Parse
                   23624:    error</a>. Reconsume the EOF character.</dd>
                   23625: 
                   23626:    <dt>Anything else</dt>
                   23627:    <dd>Emit the <a href="#current-input-character">current input character</a> as a character
                   23628:    token.</dd>
                   23629: 
                   23630:   </dl><h5 id="script-data-escaped-dash-state"><span class="secno">8.2.4.23 </span><dfn>Script data escaped dash state</dfn></h5>
                   23631: 
                   23632:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23633: 
                   23634:   <dl class="switch"><dt>"-" (U+002D)</dt>
                   23635:    <dd>Switch to the <a href="#script-data-escaped-dash-dash-state">script data escaped dash dash
                   23636:    state</a>. Emit a U+002D HYPHEN-MINUS character token.</dd>
                   23637: 
                   23638:    <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
                   23639:    <dd>Switch to the <a href="#script-data-escaped-less-than-sign-state">script data escaped less-than sign
                   23640:    state</a>.</dd>
                   23641: 
                   23642:    <dt>U+0000 NULL</dt>
                   23643:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#script-data-escaped-state">script data
                   23644:    escaped state</a>. Emit a U+FFFD REPLACEMENT CHARACTER character
                   23645:    token.</dd>
                   23646: 
                   23647:    <dt>EOF</dt>
                   23648:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   23649:    state</a>. Reconsume the EOF character.</dd>
                   23650: 
                   23651:    <dt>Anything else</dt>
                   23652:    <dd>Switch to the <a href="#script-data-escaped-state">script data escaped state</a>. Emit the
                   23653:    <a href="#current-input-character">current input character</a> as a character token.</dd>
                   23654: 
                   23655:   </dl><h5 id="script-data-escaped-dash-dash-state"><span class="secno">8.2.4.24 </span><dfn>Script data escaped dash dash state</dfn></h5>
                   23656: 
                   23657:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23658: 
                   23659:   <dl class="switch"><dt>"-" (U+002D)</dt>
                   23660:    <dd>Emit a U+002D HYPHEN-MINUS character token.</dd>
                   23661: 
                   23662:    <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
                   23663:    <dd>Switch to the <a href="#script-data-escaped-less-than-sign-state">script data escaped less-than sign
                   23664:    state</a>.</dd>
                   23665: 
                   23666:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   23667:    <dd>Switch to the <a href="#script-data-state">script data state</a>. Emit a U+003E
                   23668:    GREATER-THAN SIGN character token.</dd>
                   23669: 
                   23670:    <dt>U+0000 NULL</dt>
                   23671:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#script-data-escaped-state">script data
                   23672:    escaped state</a>. Emit a U+FFFD REPLACEMENT CHARACTER character
                   23673:    token.</dd>
                   23674: 
                   23675:    <dt>EOF</dt>
                   23676:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   23677:    state</a>. Reconsume the EOF character.</dd>
                   23678: 
                   23679:    <dt>Anything else</dt>
                   23680:    <dd>Switch to the <a href="#script-data-escaped-state">script data escaped state</a>. Emit the
                   23681:    <a href="#current-input-character">current input character</a> as a character token.</dd>
                   23682: 
                   23683:   </dl><h5 id="script-data-escaped-less-than-sign-state"><span class="secno">8.2.4.25 </span><dfn>Script data escaped less-than sign state</dfn></h5>
                   23684: 
                   23685:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23686: 
                   23687:   <dl class="switch"><dt>"/" (U+002F)</dt>
                   23688:    <dd>Set the <var><a href="#temporary-buffer">temporary buffer</a></var> to the empty string. Switch
                   23689:    to the <a href="#script-data-escaped-end-tag-open-state">script data escaped end tag open state</a>.</dd>
                   23690: 
                   23691:    <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   23692:    <dd>Set the <var><a href="#temporary-buffer">temporary buffer</a></var> to the empty string. Append
                   23693:    the lowercase version of the <a href="#current-input-character">current input character</a>
                   23694:    (add 0x0020 to the character's code point) to the <var><a href="#temporary-buffer">temporary
                   23695:    buffer</a></var>. Switch to the <a href="#script-data-double-escape-start-state">script data double escape start
                   23696:    state</a>. Emit a U+003C LESS-THAN SIGN character token and the
                   23697:    <a href="#current-input-character">current input character</a> as a character token.</dd>
                   23698: 
                   23699:    <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
                   23700:    <dd>Set the <var><a href="#temporary-buffer">temporary buffer</a></var> to the empty string. Append
                   23701:    the <a href="#current-input-character">current input character</a> to the <var><a href="#temporary-buffer">temporary
                   23702:    buffer</a></var>. Switch to the <a href="#script-data-double-escape-start-state">script data double escape start
                   23703:    state</a>. Emit a U+003C LESS-THAN SIGN character token and the
                   23704:    <a href="#current-input-character">current input character</a> as a character token.</dd>
                   23705: 
                   23706:    <dt>Anything else</dt>
                   23707:    <dd>Switch to the <a href="#script-data-state">script data state</a>. Emit a U+003C
                   23708:    LESS-THAN SIGN character token. Reconsume the <a href="#current-input-character">current
                   23709:    input character</a>.</dd>
                   23710: 
                   23711:   </dl><h5 id="script-data-escaped-end-tag-open-state"><span class="secno">8.2.4.26 </span><dfn>Script data escaped end tag open state</dfn></h5>
                   23712: 
                   23713:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23714: 
                   23715:   <dl class="switch"><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   23716:    <dd>Create a new end tag token, and set its tag name to the
                   23717:    lowercase version of the <a href="#current-input-character">current input character</a> (add
                   23718:    0x0020 to the character's code point). Append the <a href="#current-input-character">current
                   23719:    input character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>. Finally,
                   23720:    switch to the <a href="#script-data-escaped-end-tag-name-state">script data escaped end tag name
                   23721:    state</a>. (Don't emit the token yet; further details will be
                   23722:    filled in before it is emitted.)</dd>
                   23723: 
                   23724:    <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
                   23725:    <dd>Create a new end tag token, and set its tag name to the
                   23726:    <a href="#current-input-character">current input character</a>. Append the <a href="#current-input-character">current
                   23727:    input character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>. Finally,
                   23728:    switch to the <a href="#script-data-escaped-end-tag-name-state">script data escaped end tag name
                   23729:    state</a>. (Don't emit the token yet; further details will be
                   23730:    filled in before it is emitted.)</dd>
                   23731: 
                   23732:    <dt>Anything else</dt>
                   23733:    <dd>Switch to the <a href="#script-data-escaped-state">script data escaped state</a>. Emit a
                   23734:    U+003C LESS-THAN SIGN character token and a U+002F SOLIDUS
                   23735:    character token. Reconsume the <a href="#current-input-character">current input
                   23736:    character</a>.</dd>
                   23737: 
                   23738:   </dl><h5 id="script-data-escaped-end-tag-name-state"><span class="secno">8.2.4.27 </span><dfn>Script data escaped end tag name state</dfn></h5>
                   23739: 
                   23740:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23741: 
                   23742:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   23743:    <dt>"LF" (U+000A)</dt>
                   23744:    <dt>"FF" (U+000C)</dt>
                   23745:    <!--<dt>"CR" (U+000D)</dt>-->
                   23746:    <dt>U+0020 SPACE</dt>
                   23747:    <dd>If the current end tag token is an <a href="#appropriate-end-tag-token">appropriate end tag
                   23748:    token</a>, then switch to the <a href="#before-attribute-name-state">before attribute name
                   23749:    state</a>. Otherwise, treat it as per the "anything else" entry
                   23750:    below.</dd>
                   23751: 
                   23752:    <dt>"/" (U+002F)</dt>
                   23753:    <dd>If the current end tag token is an <a href="#appropriate-end-tag-token">appropriate end tag
                   23754:    token</a>, then switch to the <a href="#self-closing-start-tag-state">self-closing start tag
                   23755:    state</a>. Otherwise, treat it as per the "anything else" entry
                   23756:    below.</dd>
                   23757: 
                   23758:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   23759:    <dd>If the current end tag token is an <a href="#appropriate-end-tag-token">appropriate end tag
                   23760:    token</a>, then switch to the <a href="#data-state">data state</a> and emit
                   23761:    the current tag token. Otherwise, treat it as per the "anything
                   23762:    else" entry below.</dd>
                   23763: 
                   23764:    <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   23765:    <dd>Append the lowercase version of the <a href="#current-input-character">current input
                   23766:    character</a> (add 0x0020 to the character's code point) to the
                   23767:    current tag token's tag name. Append the <a href="#current-input-character">current input
                   23768:    character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>.</dd>
                   23769: 
                   23770:    <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
                   23771:    <dd>Append the <a href="#current-input-character">current input character</a> to the current
                   23772:    tag token's tag name. Append the <a href="#current-input-character">current input
                   23773:    character</a> to the <var><a href="#temporary-buffer">temporary buffer</a></var>.</dd>
                   23774: 
                   23775:    <dt>Anything else</dt>
                   23776:    <dd>Switch to the <a href="#script-data-escaped-state">script data escaped state</a>. Emit a
                   23777:    U+003C LESS-THAN SIGN character token, a U+002F SOLIDUS character
                   23778:    token, and a character token for each of the characters in the
                   23779:    <var><a href="#temporary-buffer">temporary buffer</a></var> (in the order they were added to the
                   23780:    buffer). Reconsume the <a href="#current-input-character">current input character</a>.</dd>
                   23781: 
                   23782:   </dl><h5 id="script-data-double-escape-start-state"><span class="secno">8.2.4.28 </span><dfn>Script data double escape start state</dfn></h5>
                   23783: 
                   23784:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23785: 
                   23786:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   23787:    <dt>"LF" (U+000A)</dt>
                   23788:    <dt>"FF" (U+000C)</dt>
                   23789:    <!--<dt>"CR" (U+000D)</dt>-->
                   23790:    <dt>U+0020 SPACE</dt>
                   23791:    <dt>"/" (U+002F)</dt>
                   23792:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   23793:    <dd>If the <var><a href="#temporary-buffer">temporary buffer</a></var> is the string "<code title="">script</code>", then switch to the <a href="#script-data-double-escaped-state">script data
                   23794:    double escaped state</a>. Otherwise, switch to the <a href="#script-data-escaped-state">script
                   23795:    data escaped state</a>. Emit the <a href="#current-input-character">current input
                   23796:    character</a> as a character token.</dd>
                   23797: 
                   23798:    <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   23799:    <dd>Append the lowercase version of the <a href="#current-input-character">current input
                   23800:    character</a> (add 0x0020 to the character's code point) to the
                   23801:    <var><a href="#temporary-buffer">temporary buffer</a></var>. Emit the <a href="#current-input-character">current input
                   23802:    character</a> as a character token.</dd>
                   23803: 
                   23804:    <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
                   23805:    <dd>Append the <a href="#current-input-character">current input character</a> to the
                   23806:    <var><a href="#temporary-buffer">temporary buffer</a></var>. Emit the <a href="#current-input-character">current input
                   23807:    character</a> as a character token.</dd>
                   23808: 
                   23809:    <dt>Anything else</dt>
                   23810:    <dd>Switch to the <a href="#script-data-escaped-state">script data escaped state</a>. Reconsume
                   23811:    the <a href="#current-input-character">current input character</a>.</dd>
                   23812: 
                   23813:   </dl><h5 id="script-data-double-escaped-state"><span class="secno">8.2.4.29 </span><dfn>Script data double escaped state</dfn></h5>
                   23814: 
                   23815:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23816: 
                   23817:   <dl class="switch"><dt>"-" (U+002D)</dt>
                   23818:    <dd>Switch to the <a href="#script-data-double-escaped-dash-state">script data double escaped dash
                   23819:    state</a>. Emit a U+002D HYPHEN-MINUS character token.</dd>
                   23820: 
                   23821:    <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
                   23822:    <dd>Switch to the <a href="#script-data-double-escaped-less-than-sign-state">script data double escaped less-than
                   23823:    sign state</a>. Emit a U+003C LESS-THAN SIGN character
                   23824:    token.</dd>
                   23825: 
                   23826:    <dt>U+0000 NULL</dt>
                   23827:    <dd><a href="#parse-error">Parse error</a>. Emit a U+FFFD REPLACEMENT CHARACTER
                   23828:    character token.</dd>
                   23829: 
                   23830:    <dt>EOF</dt>
                   23831:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   23832:    state</a>. Reconsume the EOF character.</dd>
                   23833: 
                   23834:    <dt>Anything else</dt>
                   23835:    <dd>Emit the <a href="#current-input-character">current input character</a> as a character
                   23836:    token.</dd>
                   23837: 
                   23838:   </dl><h5 id="script-data-double-escaped-dash-state"><span class="secno">8.2.4.30 </span><dfn>Script data double escaped dash state</dfn></h5>
                   23839: 
                   23840:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23841: 
                   23842:   <dl class="switch"><dt>"-" (U+002D)</dt>
                   23843:    <dd>Switch to the <a href="#script-data-double-escaped-dash-dash-state">script data double escaped dash dash
                   23844:    state</a>. Emit a U+002D HYPHEN-MINUS character token.</dd>
                   23845: 
                   23846:    <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
                   23847:    <dd>Switch to the <a href="#script-data-double-escaped-less-than-sign-state">script data double escaped less-than
                   23848:    sign state</a>. Emit a U+003C LESS-THAN SIGN character
                   23849:    token.</dd>
                   23850: 
                   23851:    <dt>U+0000 NULL</dt>
                   23852:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#script-data-double-escaped-state">script data
                   23853:    double escaped state</a>. Emit a U+FFFD REPLACEMENT CHARACTER
                   23854:    character token.</dd>
                   23855: 
                   23856:    <dt>EOF</dt>
                   23857:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   23858:    state</a>. Reconsume the EOF character.</dd>
                   23859: 
                   23860:    <dt>Anything else</dt>
                   23861:    <dd>Switch to the <a href="#script-data-double-escaped-state">script data double escaped
                   23862:    state</a>. Emit the <a href="#current-input-character">current input character</a> as a
                   23863:    character token.</dd>
                   23864: 
                   23865:   </dl><h5 id="script-data-double-escaped-dash-dash-state"><span class="secno">8.2.4.31 </span><dfn>Script data double escaped dash dash state</dfn></h5>
                   23866: 
                   23867:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23868: 
                   23869:   <dl class="switch"><dt>"-" (U+002D)</dt>
                   23870:    <dd>Emit a U+002D HYPHEN-MINUS character token.</dd>
                   23871: 
                   23872:    <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
                   23873:    <dd>Switch to the <a href="#script-data-double-escaped-less-than-sign-state">script data double escaped less-than
                   23874:    sign state</a>. Emit a U+003C LESS-THAN SIGN character
                   23875:    token.</dd>
                   23876: 
                   23877:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   23878:    <dd>Switch to the <a href="#script-data-state">script data state</a>. Emit a U+003E
                   23879:    GREATER-THAN SIGN character token.</dd>
                   23880: 
                   23881:    <dt>U+0000 NULL</dt>
                   23882:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#script-data-double-escaped-state">script data
                   23883:    double escaped state</a>. Emit a U+FFFD REPLACEMENT CHARACTER
                   23884:    character token.</dd>
                   23885: 
                   23886:    <dt>EOF</dt>
                   23887:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   23888:    state</a>. Reconsume the EOF character.</dd>
                   23889: 
                   23890:    <dt>Anything else</dt>
                   23891:    <dd>Switch to the <a href="#script-data-double-escaped-state">script data double escaped
                   23892:    state</a>. Emit the <a href="#current-input-character">current input character</a> as a
                   23893:    character token.</dd>
                   23894: 
                   23895:   </dl><h5 id="script-data-double-escaped-less-than-sign-state"><span class="secno">8.2.4.32 </span><dfn>Script data double escaped less-than sign state</dfn></h5>
                   23896: 
                   23897:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23898: 
                   23899:   <dl class="switch"><dt>"/" (U+002F)</dt>
                   23900:    <dd>Set the <var><a href="#temporary-buffer">temporary buffer</a></var> to the empty string. Switch
                   23901:    to the <a href="#script-data-double-escape-end-state">script data double escape end state</a>. Emit a
                   23902:    U+002F SOLIDUS character token.</dd>
                   23903: 
                   23904:    <dt>Anything else</dt>
                   23905:    <dd>Switch to the <a href="#script-data-double-escaped-state">script data double escaped state</a>.
                   23906:    Reconsume the <a href="#current-input-character">current input character</a>.</dd>
                   23907: 
                   23908:   </dl><h5 id="script-data-double-escape-end-state"><span class="secno">8.2.4.33 </span><dfn>Script data double escape end state</dfn></h5>
                   23909: 
                   23910:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23911: 
                   23912:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   23913:    <dt>"LF" (U+000A)</dt>
                   23914:    <dt>"FF" (U+000C)</dt>
                   23915:    <!--<dt>"CR" (U+000D)</dt>-->
                   23916:    <dt>U+0020 SPACE</dt>
                   23917:    <dt>"/" (U+002F)</dt>
                   23918:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   23919:    <dd>If the <var><a href="#temporary-buffer">temporary buffer</a></var> is the string "<code title="">script</code>", then switch to the <a href="#script-data-escaped-state">script data
                   23920:    escaped state</a>. Otherwise, switch to the <a href="#script-data-double-escaped-state">script data
                   23921:    double escaped state</a>. Emit the <a href="#current-input-character">current input
                   23922:    character</a> as a character token.</dd>
                   23923: 
                   23924:    <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   23925:    <dd>Append the lowercase version of the <a href="#current-input-character">current input
                   23926:    character</a> (add 0x0020 to the character's code point) to the
                   23927:    <var><a href="#temporary-buffer">temporary buffer</a></var>. Emit the <a href="#current-input-character">current input
                   23928:    character</a> as a character token.</dd>
                   23929: 
                   23930:    <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
                   23931:    <dd>Append the <a href="#current-input-character">current input character</a> to the
                   23932:    <var><a href="#temporary-buffer">temporary buffer</a></var>. Emit the <a href="#current-input-character">current input
                   23933:    character</a> as a character token.</dd>
                   23934: 
                   23935:    <dt>Anything else</dt>
                   23936:    <dd>Switch to the <a href="#script-data-double-escaped-state">script data double escaped state</a>.
                   23937:    Reconsume the <a href="#current-input-character">current input character</a>.</dd>
                   23938: 
                   23939:   </dl><h5 id="before-attribute-name-state"><span class="secno">8.2.4.34 </span><dfn>Before attribute name state</dfn></h5>
                   23940: 
                   23941:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23942: 
                   23943:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   23944:    <dt>"LF" (U+000A)</dt>
                   23945:    <dt>"FF" (U+000C)</dt>
                   23946:    <!--<dt>"CR" (U+000D)</dt>-->
                   23947:    <dt>U+0020 SPACE</dt>
                   23948:    <dd>Ignore the character.</dd>
                   23949: 
                   23950:    <dt>"/" (U+002F)</dt>
                   23951:    <dd>Switch to the <a href="#self-closing-start-tag-state">self-closing start tag state</a>.</dd>
                   23952: 
                   23953:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   23954:    <dd>Switch to the <a href="#data-state">data state</a>. Emit the current tag
                   23955:    token.</dd>
                   23956: 
                   23957:    <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   23958:    <dd>Start a new attribute in the current tag token. Set that
                   23959:    attribute's name to the lowercase version of the <a href="#current-input-character">current input
                   23960:    character</a> (add 0x0020 to the character's code point), and its
                   23961:    value to the empty string. Switch to the <a href="#attribute-name-state">attribute name
                   23962:    state</a>.</dd>
                   23963: 
                   23964:    <dt>U+0000 NULL</dt>
                   23965:    <dd><a href="#parse-error">Parse error</a>. Start a new attribute in the current
                   23966:    tag token. Set that attribute's name to a U+FFFD REPLACEMENT
                   23967:    CHARACTER character, and its value to the empty string. Switch to
                   23968:    the <a href="#attribute-name-state">attribute name state</a>.</dd>
                   23969: 
                   23970:    <dt>U+0022 QUOTATION MARK (")</dt>
                   23971:    <dt>"'" (U+0027)</dt>
                   23972:    <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
                   23973:    <dt>"=" (U+003D)</dt>
                   23974:    <dd><a href="#parse-error">Parse error</a>. Treat it as per the "anything else"
                   23975:    entry below.</dd>
                   23976: 
                   23977:    <dt>EOF</dt>
                   23978:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   23979:    state</a>. Reconsume the EOF character.</dd>
                   23980: 
                   23981:    <dt>Anything else</dt>
                   23982:    <dd>Start a new attribute in the current tag token. Set that
                   23983:    attribute's name to the <a href="#current-input-character">current input character</a>, and
                   23984:    its value to the empty string. Switch to the <a href="#attribute-name-state">attribute name
                   23985:    state</a>.</dd>
                   23986: 
                   23987:   </dl><h5 id="attribute-name-state"><span class="secno">8.2.4.35 </span><dfn>Attribute name state</dfn></h5>
                   23988: 
                   23989:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   23990: 
                   23991:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   23992:    <dt>"LF" (U+000A)</dt>
                   23993:    <dt>"FF" (U+000C)</dt>
                   23994:    <!--<dt>"CR" (U+000D)</dt>-->
                   23995:    <dt>U+0020 SPACE</dt>
                   23996:    <dd>Switch to the <a href="#after-attribute-name-state">after attribute name state</a>.</dd>
                   23997: 
                   23998:    <dt>"/" (U+002F)</dt>
                   23999:    <dd>Switch to the <a href="#self-closing-start-tag-state">self-closing start tag state</a>.</dd>
                   24000: 
                   24001:    <dt>"=" (U+003D)</dt>
                   24002:    <dd>Switch to the <a href="#before-attribute-value-state">before attribute value state</a>.</dd>
                   24003: 
                   24004:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24005:    <dd>Switch to the <a href="#data-state">data state</a>. Emit the current tag
                   24006:    token.</dd>
                   24007: 
                   24008:    <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   24009:    <dd>Append the lowercase version of the <a href="#current-input-character">current input
                   24010:    character</a> (add 0x0020 to the character's code point) to the
                   24011:    current attribute's name.</dd>
                   24012: 
                   24013:    <dt>U+0000 NULL</dt>
                   24014:    <dd><a href="#parse-error">Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
                   24015:    character to the current attribute's name.</dd>
                   24016: 
                   24017:    <dt>U+0022 QUOTATION MARK (")</dt>
                   24018:    <dt>"'" (U+0027)</dt>
                   24019:    <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
                   24020:    <dd><a href="#parse-error">Parse error</a>. Treat it as per the "anything else"
                   24021:    entry below.</dd>
                   24022: 
                   24023:    <dt>EOF</dt>
                   24024:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24025:    state</a>. Reconsume the EOF character.</dd>
                   24026: 
                   24027:    <dt>Anything else</dt>
                   24028:    <dd>Append the <a href="#current-input-character">current input character</a> to the current
                   24029:    attribute's name.</dd>
                   24030: 
                   24031:   </dl><p>When the user agent leaves the attribute name state (and before
                   24032:   emitting the tag token, if appropriate), the complete attribute's
                   24033:   name must be compared to the other attributes on the same token;
                   24034:   if there is already an attribute on the token with the exact same
                   24035:   name, then this is a <a href="#parse-error">parse error</a> and the new
                   24036:   attribute must be dropped, along with the value that gets
                   24037:   associated with it (if any).</p>
                   24038: 
                   24039: 
                   24040:   <h5 id="after-attribute-name-state"><span class="secno">8.2.4.36 </span><dfn>After attribute name state</dfn></h5>
                   24041: 
                   24042:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24043: 
                   24044:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   24045:    <dt>"LF" (U+000A)</dt>
                   24046:    <dt>"FF" (U+000C)</dt>
                   24047:    <!--<dt>"CR" (U+000D)</dt>-->
                   24048:    <dt>U+0020 SPACE</dt>
                   24049:    <dd>Ignore the character.</dd>
                   24050: 
                   24051:    <dt>"/" (U+002F)</dt>
                   24052:    <dd>Switch to the <a href="#self-closing-start-tag-state">self-closing start tag state</a>.</dd>
                   24053: 
                   24054:    <dt>"=" (U+003D)</dt>
                   24055:    <dd>Switch to the <a href="#before-attribute-value-state">before attribute value state</a>.</dd>
                   24056: 
                   24057:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24058:    <dd>Switch to the <a href="#data-state">data state</a>. Emit the current tag
                   24059:    token.</dd>
                   24060: 
                   24061:    <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   24062:    <dd>Start a new attribute in the current tag token. Set that
                   24063:    attribute's name to the lowercase version of the <a href="#current-input-character">current
                   24064:    input character</a> (add 0x0020 to the character's code point),
                   24065:    and its value to the empty string. Switch to the <a href="#attribute-name-state">attribute
                   24066:    name state</a>.</dd>
                   24067: 
                   24068:    <dt>U+0000 NULL</dt>
                   24069:    <dd><a href="#parse-error">Parse error</a>. Start a new attribute in the current
                   24070:    tag token. Set that attribute's name to a U+FFFD REPLACEMENT
                   24071:    CHARACTER character, and its value to the empty string. Switch to
                   24072:    the <a href="#attribute-name-state">attribute name state</a>.</dd>
                   24073: 
                   24074:    <dt>U+0022 QUOTATION MARK (")</dt>
                   24075:    <dt>"'" (U+0027)</dt>
                   24076:    <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
                   24077:    <dd><a href="#parse-error">Parse error</a>. Treat it as per the "anything else"
                   24078:    entry below.</dd>
                   24079: 
                   24080:    <dt>EOF</dt>
                   24081:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24082:    state</a>. Reconsume the EOF character.</dd>
                   24083: 
                   24084:    <dt>Anything else</dt>
                   24085:    <dd>Start a new attribute in the current tag token. Set that
                   24086:    attribute's name to the <a href="#current-input-character">current input character</a>, and
                   24087:    its value to the empty string. Switch to the <a href="#attribute-name-state">attribute name
                   24088:    state</a>.</dd>
                   24089: 
                   24090:   </dl><h5 id="before-attribute-value-state"><span class="secno">8.2.4.37 </span><dfn>Before attribute value state</dfn></h5>
                   24091: 
                   24092:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24093: 
                   24094:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   24095:    <dt>"LF" (U+000A)</dt>
                   24096:    <dt>"FF" (U+000C)</dt>
                   24097:    <!--<dt>"CR" (U+000D)</dt>-->
                   24098:    <dt>U+0020 SPACE</dt>
                   24099:    <dd>Ignore the character.</dd>
                   24100: 
                   24101:    <dt>U+0022 QUOTATION MARK (")</dt>
                   24102:    <dd>Switch to the <a href="#attribute-value-(double-quoted)-state">attribute value (double-quoted) state</a>.</dd>
                   24103: 
                   24104:    <dt>U+0026 AMPERSAND (&amp;)</dt>
                   24105:    <dd>Switch to the <a href="#attribute-value-(unquoted)-state">attribute value (unquoted) state</a>.
                   24106:    Reconsume the <a href="#current-input-character">current input character</a>.</dd>
                   24107: 
                   24108:    <dt>"'" (U+0027)</dt>
                   24109:    <dd>Switch to the <a href="#attribute-value-(single-quoted)-state">attribute value (single-quoted) state</a>.</dd>
                   24110: 
                   24111:    <dt>U+0000 NULL</dt>
                   24112:    <dd><a href="#parse-error">Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
                   24113:    character to the current attribute's value. Switch to the
                   24114:    <a href="#attribute-value-(unquoted)-state">attribute value (unquoted) state</a>.</dd>
                   24115: 
                   24116:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24117:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24118:    state</a>. Emit the current tag token.</dd>
                   24119: 
                   24120:    <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
                   24121:    <dt>"=" (U+003D)</dt>
                   24122:    <dt>"`" (U+0060)</dt>
                   24123:    <dd><a href="#parse-error">Parse error</a>. Treat it as per the "anything else"
                   24124:    entry below.</dd>
                   24125: 
                   24126:    <dt>EOF</dt>
                   24127:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24128:    state</a>. Reconsume the EOF character.</dd>
                   24129: 
                   24130:    <dt>Anything else</dt>
                   24131:    <dd>Append the <a href="#current-input-character">current input character</a> to the current
                   24132:    attribute's value. Switch to the <a href="#attribute-value-(unquoted)-state">attribute value (unquoted)
                   24133:    state</a>.</dd>
                   24134: 
                   24135:   </dl><h5 id="attribute-value-(double-quoted)-state"><span class="secno">8.2.4.38 </span><dfn>Attribute value (double-quoted) state</dfn></h5>
                   24136: 
                   24137:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24138: 
                   24139:   <dl class="switch"><dt>U+0022 QUOTATION MARK (")</dt>
                   24140:    <dd>Switch to the <a href="#after-attribute-value-(quoted)-state">after attribute value (quoted)
                   24141:    state</a>.</dd>
                   24142: 
                   24143:    <dt>U+0026 AMPERSAND (&amp;)</dt>
                   24144:    <dd>Switch to the <a href="#character-reference-in-attribute-value-state">character reference in attribute value
                   24145:    state</a>, with the <a href="#additional-allowed-character">additional allowed character</a>
                   24146:    being U+0022 QUOTATION MARK (").</dd>
                   24147: 
                   24148:    <dt>U+0000 NULL</dt>
                   24149:    <dd><a href="#parse-error">Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
                   24150:    character to the current attribute's value.</dd>
                   24151: 
                   24152:    <dt>EOF</dt>
                   24153:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24154:    state</a>. Reconsume the EOF character.</dd>
                   24155: 
                   24156:    <dt>Anything else</dt>
                   24157:    <dd>Append the <a href="#current-input-character">current input character</a> to the current
                   24158:    attribute's value.</dd>
                   24159: 
                   24160:   </dl><h5 id="attribute-value-(single-quoted)-state"><span class="secno">8.2.4.39 </span><dfn>Attribute value (single-quoted) state</dfn></h5>
                   24161: 
                   24162:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24163: 
                   24164:   <dl class="switch"><dt>"'" (U+0027)</dt>
                   24165:    <dd>Switch to the <a href="#after-attribute-value-(quoted)-state">after attribute value (quoted)
                   24166:    state</a>.</dd>
                   24167: 
                   24168:    <dt>U+0026 AMPERSAND (&amp;)</dt>
                   24169:    <dd>Switch to the <a href="#character-reference-in-attribute-value-state">character reference in attribute value
                   24170:    state</a>, with the <a href="#additional-allowed-character">additional allowed character</a>
                   24171:    being "'" (U+0027).</dd>
                   24172: 
                   24173:    <dt>U+0000 NULL</dt>
                   24174:    <dd><a href="#parse-error">Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
                   24175:    character to the current attribute's value.</dd>
                   24176: 
                   24177:    <dt>EOF</dt>
                   24178:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24179:    state</a>. Reconsume the EOF character.</dd>
                   24180: 
                   24181:    <dt>Anything else</dt>
                   24182:    <dd>Append the <a href="#current-input-character">current input character</a> to the current
                   24183:    attribute's value.</dd>
                   24184: 
                   24185:   </dl><h5 id="attribute-value-(unquoted)-state"><span class="secno">8.2.4.40 </span><dfn>Attribute value (unquoted) state</dfn></h5>
                   24186: 
                   24187:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24188: 
                   24189:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   24190:    <dt>"LF" (U+000A)</dt>
                   24191:    <dt>"FF" (U+000C)</dt>
                   24192:    <!--<dt>"CR" (U+000D)</dt>-->
                   24193:    <dt>U+0020 SPACE</dt>
                   24194:    <dd>Switch to the <a href="#before-attribute-name-state">before attribute name state</a>.</dd>
                   24195: 
                   24196:    <dt>U+0026 AMPERSAND (&amp;)</dt>
                   24197:    <dd>Switch to the <a href="#character-reference-in-attribute-value-state">character reference in attribute value
                   24198:    state</a>, with the <a href="#additional-allowed-character">additional allowed character</a>
                   24199:    being U+003E GREATER-THAN SIGN (&gt;).</dd>
                   24200: 
                   24201:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24202:    <dd>Switch to the <a href="#data-state">data state</a>. Emit the current tag
                   24203:    token.</dd>
                   24204: 
                   24205:    <dt>U+0000 NULL</dt>
                   24206:    <dd><a href="#parse-error">Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
                   24207:    character to the current attribute's value.</dd>
                   24208: 
                   24209:    <dt>U+0022 QUOTATION MARK (")</dt>
                   24210:    <dt>"'" (U+0027)</dt>
                   24211:    <dt>U+003C LESS-THAN SIGN (&lt;)</dt>
                   24212:    <dt>"=" (U+003D)</dt>
                   24213:    <dt>"`" (U+0060)</dt>
                   24214:    <dd><a href="#parse-error">Parse error</a>. Treat it as per the "anything else"
                   24215:    entry below.</dd>
                   24216: 
                   24217:    <dt>EOF</dt>
                   24218:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24219:    state</a>. Reconsume the EOF character.</dd>
                   24220: 
                   24221:    <dt>Anything else</dt>
                   24222:    <dd>Append the <a href="#current-input-character">current input character</a> to the current
                   24223:    attribute's value.</dd>
                   24224: 
                   24225:   </dl><h5 id="character-reference-in-attribute-value-state"><span class="secno">8.2.4.41 </span><dfn>Character reference in attribute value state</dfn></h5>
                   24226: 
                   24227:   <p>Attempt to <a href="#consume-a-character-reference">consume a character reference</a>.</p>
                   24228: 
                   24229:   <p>If nothing is returned, append a U+0026 AMPERSAND character
                   24230:   (&amp;) to the current attribute's value.</p>
                   24231: 
                   24232:   <p>Otherwise, append the returned character tokens to the current
                   24233:   attribute's value.</p>
                   24234: 
                   24235:   <p>Finally, switch back to the attribute value state that switched
                   24236:   into this state.</p>
                   24237: 
                   24238: 
                   24239:   <h5 id="after-attribute-value-(quoted)-state"><span class="secno">8.2.4.42 </span><dfn>After attribute value (quoted) state</dfn></h5>
                   24240: 
                   24241:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24242: 
                   24243:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   24244:    <dt>"LF" (U+000A)</dt>
                   24245:    <dt>"FF" (U+000C)</dt>
                   24246:    <!--<dt>"CR" (U+000D)</dt>-->
                   24247:    <dt>U+0020 SPACE</dt>
                   24248:    <dd>Switch to the <a href="#before-attribute-name-state">before attribute name state</a>.</dd>
                   24249: 
                   24250:    <dt>"/" (U+002F)</dt>
                   24251:    <dd>Switch to the <a href="#self-closing-start-tag-state">self-closing start tag state</a>.</dd>
                   24252: 
                   24253:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24254:    <dd>Switch to the <a href="#data-state">data state</a>. Emit the current tag
                   24255:    token.</dd>
                   24256: 
                   24257:    <dt>EOF</dt>
                   24258:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24259:    state</a>. Reconsume the EOF character.</dd>
                   24260: 
                   24261:    <dt>Anything else</dt>
                   24262:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#before-attribute-name-state">before attribute
                   24263:    name state</a>. Reconsume the character.</dd>
                   24264: 
                   24265:   </dl><h5 id="self-closing-start-tag-state"><span class="secno">8.2.4.43 </span><dfn>Self-closing start tag state</dfn></h5>
                   24266: 
                   24267:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24268: 
                   24269:   <dl class="switch"><dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24270:    <dd>Set the <i>self-closing flag</i> of the current tag
                   24271:    token. Switch to the <a href="#data-state">data state</a>. Emit the current tag
                   24272:    token.</dd>
                   24273: 
                   24274:    <dt>EOF</dt>
                   24275:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24276:    state</a>. Reconsume the EOF character.</dd>
                   24277: 
                   24278:    <dt>Anything else</dt>
                   24279:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#before-attribute-name-state">before attribute
                   24280:    name state</a>. Reconsume the character.</dd>
                   24281: 
                   24282:   </dl><h5 id="bogus-comment-state"><span class="secno">8.2.4.44 </span><dfn>Bogus comment state</dfn></h5>
                   24283: 
                   24284:   <p>Consume every character up to and including the first U+003E
                   24285:   GREATER-THAN SIGN character (&gt;) or the end of the file (EOF),
                   24286:   whichever comes first. Emit a comment token whose data is the
                   24287:   concatenation of all the characters starting from and including the
                   24288:   character that caused the state machine to switch into the bogus
                   24289:   comment state, up to and including the character immediately before
                   24290:   the last consumed character (i.e. up to the character just before
                   24291:   the U+003E or EOF character), but with any U+0000 NULL characters
                   24292:   replaced by U+FFFD REPLACEMENT CHARACTER characters. (If the comment
                   24293:   was started by the end of the file (EOF), the token is empty.
                   24294:   Similarly, the token is empty if it was generated by the string
                   24295:   "<code title="">&lt;!&gt;</code>".)</p>
                   24296: 
                   24297:   <p>Switch to the <a href="#data-state">data state</a>.</p>
                   24298: 
                   24299:   <p>If the end of the file was reached, reconsume the EOF
                   24300:   character.</p>
                   24301: 
                   24302: 
                   24303:   <h5 id="markup-declaration-open-state"><span class="secno">8.2.4.45 </span><dfn>Markup declaration open state</dfn></h5>
                   24304: 
                   24305:   <p>If the next two characters are both "-" (U+002D) characters, consume those two characters, create a comment token
                   24306:   whose data is the empty string, and switch to the <a href="#comment-start-state">comment
                   24307:   start state</a>.</p>
                   24308: 
                   24309:   <p>Otherwise, if the next seven characters are an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   24310:   case-insensitive</a> match for the word "DOCTYPE", then consume
                   24311:   those characters and switch to the <a href="#doctype-state">DOCTYPE state</a>.</p>
                   24312: 
                   24313:   <p>Otherwise, if there is a <a href="#current-node">current node</a> and it is not
                   24314:   an element in the <a href="namespaces.html#html-namespace-0">HTML namespace</a> and the next seven
                   24315:   characters are a <a href="infrastructure.html#case-sensitive">case-sensitive</a> match for the string
                   24316:   "[CDATA[" (the five uppercase letters "CDATA" with a U+005B LEFT
                   24317:   SQUARE BRACKET character before and after), then consume those
                   24318:   characters and switch to the <a href="#cdata-section-state">CDATA section state</a>.</p>
                   24319: 
                   24320:   <p>Otherwise, this is a <a href="#parse-error">parse error</a>. Switch to the
                   24321:   <a href="#bogus-comment-state">bogus comment state</a>. The next character that is
                   24322:   consumed, if any, is the first character that will be in the
                   24323:   comment.</p>
                   24324: 
                   24325: 
                   24326:   <h5 id="comment-start-state"><span class="secno">8.2.4.46 </span><dfn>Comment start state</dfn></h5>
                   24327: 
                   24328:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24329: 
                   24330:   <dl class="switch"><dt>"-" (U+002D)</dt>
                   24331:    <dd>Switch to the <a href="#comment-start-dash-state">comment start dash state</a>.</dd>
                   24332: 
                   24333:    <dt>U+0000 NULL</dt>
                   24334:    <dd><a href="#parse-error">Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
                   24335:    character to the comment token's data. Switch to the <a href="#comment-state">comment
                   24336:    state</a>.</dd>
                   24337: 
                   24338:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24339:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24340:    state</a>. Emit the comment token.</dd> <!-- see comment in
                   24341:    comment end state -->
                   24342: 
                   24343:    <dt>EOF</dt>
                   24344:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24345:    state</a>. Emit the comment token. Reconsume the EOF character.</dd>
                   24346: 
                   24347:    <dt>Anything else</dt>
                   24348:    <dd>Append the <a href="#current-input-character">current input character</a> to the comment
                   24349:    token's data. Switch to the <a href="#comment-state">comment state</a>.</dd>
                   24350: 
                   24351:   </dl><h5 id="comment-start-dash-state"><span class="secno">8.2.4.47 </span><dfn>Comment start dash state</dfn></h5>
                   24352: 
                   24353:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24354: 
                   24355:   <dl class="switch"><dt>"-" (U+002D)</dt>
                   24356:    <dd>Switch to the <a href="#comment-end-state">comment end state</a></dd>
                   24357: 
                   24358:    <dt>U+0000 NULL</dt>
                   24359:    <dd><a href="#parse-error">Parse error</a>. Append a "-" (U+002D) character and a U+FFFD REPLACEMENT CHARACTER character to the
                   24360:    comment token's data. Switch to the <a href="#comment-state">comment
                   24361:    state</a>.</dd>
                   24362: 
                   24363:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24364:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24365:    state</a>. Emit the comment token.</dd>
                   24366: 
                   24367:    <dt>EOF</dt>
                   24368:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24369:    state</a>. Emit the comment token. Reconsume the EOF
                   24370:    character.</dd> <!-- see comment in comment end state -->
                   24371: 
                   24372:    <dt>Anything else</dt>
                   24373:    <dd>Append a "-" (U+002D) character and the
                   24374:    <a href="#current-input-character">current input character</a> to the comment token's
                   24375:    data. Switch to the <a href="#comment-state">comment state</a>.</dd>
                   24376: 
                   24377:   </dl><h5 id="comment-state"><span class="secno">8.2.4.48 </span><dfn id="comment">Comment state</dfn></h5>
                   24378: 
                   24379:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24380: 
                   24381:   <dl class="switch"><dt>"-" (U+002D)</dt>
                   24382:    <dd>Switch to the <a href="#comment-end-dash-state">comment end dash state</a></dd>
                   24383: 
                   24384:    <dt>U+0000 NULL</dt>
                   24385:    <dd><a href="#parse-error">Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
                   24386:    character to the comment token's data.</dd>
                   24387: 
                   24388:    <dt>EOF</dt>
                   24389:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24390:    state</a>. Emit the comment token. Reconsume the EOF
                   24391:    character.</dd> <!-- see comment in comment end state -->
                   24392: 
                   24393:    <dt>Anything else</dt>
                   24394:    <dd>Append the <a href="#current-input-character">current input character</a> to the comment
                   24395:    token's data.</dd>
                   24396: 
                   24397:   </dl><h5 id="comment-end-dash-state"><span class="secno">8.2.4.49 </span><dfn>Comment end dash state</dfn></h5>
                   24398: 
                   24399:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24400: 
                   24401:   <dl class="switch"><dt>"-" (U+002D)</dt>
                   24402:    <dd>Switch to the <a href="#comment-end-state">comment end state</a></dd>
                   24403: 
                   24404:    <dt>U+0000 NULL</dt>
                   24405:    <dd><a href="#parse-error">Parse error</a>. Append a "-" (U+002D) character and a U+FFFD REPLACEMENT CHARACTER character to the
                   24406:    comment token's data. Switch to the <a href="#comment-state">comment
                   24407:    state</a>.</dd>
                   24408: 
                   24409:    <dt>EOF</dt>
                   24410:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24411:    state</a>. Emit the comment token. Reconsume the EOF
                   24412:    character.</dd> <!-- see comment in comment end state -->
                   24413: 
                   24414:    <dt>Anything else</dt>
                   24415:    <dd>Append a "-" (U+002D) character and the
                   24416:    <a href="#current-input-character">current input character</a> to the comment token's
                   24417:    data. Switch to the <a href="#comment-state">comment state</a>.</dd>
                   24418: 
                   24419:   </dl><h5 id="comment-end-state"><span class="secno">8.2.4.50 </span><dfn>Comment end state</dfn></h5>
                   24420: 
                   24421:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24422: 
                   24423:   <dl class="switch"><dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24424:    <dd>Switch to the <a href="#data-state">data state</a>. Emit the comment
                   24425:    token.</dd>
                   24426: 
                   24427:    <dt>U+0000 NULL</dt>
                   24428:    <dd><a href="#parse-error">Parse error</a>. Append two "-" (U+002D) characters and a U+FFFD REPLACEMENT CHARACTER character to the
                   24429:    comment token's data. Switch to the <a href="#comment-state">comment
                   24430:    state</a>.</dd>
                   24431: 
                   24432:    <dt>"!" (U+0021)</dt>
                   24433:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#comment-end-bang-state">comment end bang
                   24434:    state</a>.</dd>
                   24435: 
                   24436:    <dt>"-" (U+002D)</dt>
                   24437:    <dd><a href="#parse-error">Parse error</a>. Append a "-" (U+002D) character to the comment token's data.</dd>
                   24438: 
                   24439:    <dt>EOF</dt>
                   24440:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24441:    state</a>. Emit the comment token. Reconsume the EOF
                   24442:    character.</dd> <!-- For security reasons: otherwise, hostile user
                   24443:    could put a <script> in a comment e.g. in a blog comment and then
                   24444:    DOS the server so that the end tag isn't read, and then the
                   24445:    commented <script> tag would be treated as live code -->
                   24446: 
                   24447:    <dt>Anything else</dt>
                   24448:    <dd><a href="#parse-error">Parse error</a>. Append two "-" (U+002D) characters and the <a href="#current-input-character">current input character</a> to the
                   24449:    comment token's data. Switch to the <a href="#comment-state">comment
                   24450:    state</a>.</dd>
                   24451: 
                   24452:   </dl><h5 id="comment-end-bang-state"><span class="secno">8.2.4.51 </span><dfn>Comment end bang state</dfn></h5>
                   24453: 
                   24454:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24455: 
                   24456:   <dl class="switch"><dt>"-" (U+002D)</dt>
                   24457:    <dd>Append two "-" (U+002D) characters and a "!" (U+0021) character to the comment token's data. Switch
                   24458:    to the <a href="#comment-end-dash-state">comment end dash state</a>.</dd>
                   24459: 
                   24460:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24461:    <dd>Switch to the <a href="#data-state">data state</a>. Emit the comment
                   24462:    token.</dd>
                   24463: 
                   24464:    <dt>U+0000 NULL</dt>
                   24465:    <dd><a href="#parse-error">Parse error</a>. Append two "-" (U+002D) characters, a "!" (U+0021) character, and a
                   24466:    U+FFFD REPLACEMENT CHARACTER character to the comment token's data.
                   24467:    Switch to the <a href="#comment-state">comment state</a>.</dd>
                   24468: 
                   24469:    <dt>EOF</dt>
                   24470:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24471:    state</a>. Emit the comment token. Reconsume the EOF
                   24472:    character.</dd> <!-- see comment in comment end state -->
                   24473: 
                   24474:    <dt>Anything else</dt>
                   24475:    <dd>Append two "-" (U+002D) characters, a "!" (U+0021) character, and the <a href="#current-input-character">current input
                   24476:    character</a> to the comment token's data. Switch to the
                   24477:    <a href="#comment-state">comment state</a>.</dd>
                   24478: 
                   24479:   </dl><h5 id="doctype-state"><span class="secno">8.2.4.52 </span><dfn>DOCTYPE state</dfn></h5>
                   24480: 
                   24481:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24482: 
                   24483:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   24484:    <dt>"LF" (U+000A)</dt>
                   24485:    <dt>"FF" (U+000C)</dt>
                   24486:    <!--<dt>"CR" (U+000D)</dt>-->
                   24487:    <dt>U+0020 SPACE</dt>
                   24488:    <dd>Switch to the <a href="#before-doctype-name-state">before DOCTYPE name state</a>.</dd>
                   24489: 
                   24490:    <dt>EOF</dt>
                   24491:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24492:    state</a>. Create a new DOCTYPE token. Set its <i>force-quirks
                   24493:    flag</i> to <i>on</i>. Emit the token. Reconsume the EOF
                   24494:    character.</dd>
                   24495: 
                   24496:    <dt>Anything else</dt>
                   24497:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#before-doctype-name-state">before DOCTYPE
                   24498:    name state</a>. Reconsume the character.</dd>
                   24499: 
                   24500:   </dl><h5 id="before-doctype-name-state"><span class="secno">8.2.4.53 </span><dfn>Before DOCTYPE name state</dfn></h5>
                   24501: 
                   24502:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24503: 
                   24504:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   24505:    <dt>"LF" (U+000A)</dt>
                   24506:    <dt>"FF" (U+000C)</dt>
                   24507:    <!--<dt>"CR" (U+000D)</dt>-->
                   24508:    <dt>U+0020 SPACE</dt>
                   24509:    <dd>Ignore the character.</dd>
                   24510: 
                   24511:    <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   24512:    <dd>Create a new DOCTYPE token. Set the token's name to the
                   24513:    lowercase version of the <a href="#current-input-character">current input character</a> (add 0x0020 to the
                   24514:    character's code point). Switch to the <a href="#doctype-name-state">DOCTYPE name
                   24515:    state</a>.</dd>
                   24516: 
                   24517:    <dt>U+0000 NULL</dt>
                   24518:    <dd><a href="#parse-error">Parse error</a>. Create a new DOCTYPE token. Set the
                   24519:    token's name to a U+FFFD REPLACEMENT CHARACTER character. Switch to
                   24520:    the <a href="#doctype-name-state">DOCTYPE name state</a>.</dd>
                   24521: 
                   24522:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24523:    <dd><a href="#parse-error">Parse error</a>. Create a new DOCTYPE token. Set its
                   24524:    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#data-state">data
                   24525:    state</a>. Emit the token.</dd>
                   24526: 
                   24527:    <dt>EOF</dt>
                   24528:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24529:    state</a>. Create a new DOCTYPE token. Set its <i>force-quirks
                   24530:    flag</i> to <i>on</i>. Emit the token. Reconsume the EOF
                   24531:    character.</dd>
                   24532: 
                   24533:    <dt>Anything else</dt>
                   24534:    <dd>Create a new DOCTYPE token. Set the token's name to the
                   24535:    <a href="#current-input-character">current input character</a>. Switch to the <a href="#doctype-name-state">DOCTYPE name
                   24536:    state</a>.</dd>
                   24537: 
                   24538:   </dl><h5 id="doctype-name-state"><span class="secno">8.2.4.54 </span><dfn>DOCTYPE name state</dfn></h5>
                   24539: 
                   24540:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24541: 
                   24542:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   24543:    <dt>"LF" (U+000A)</dt>
                   24544:    <dt>"FF" (U+000C)</dt>
                   24545:    <!--<dt>"CR" (U+000D)</dt>-->
                   24546:    <dt>U+0020 SPACE</dt>
                   24547:    <dd>Switch to the <a href="#after-doctype-name-state">after DOCTYPE name state</a>.</dd>
                   24548: 
                   24549:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24550:    <dd>Switch to the <a href="#data-state">data state</a>. Emit the current DOCTYPE
                   24551:    token.</dd>
                   24552: 
                   24553:    <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
                   24554:    <dd>Append the lowercase version of the <a href="#current-input-character">current input
                   24555:    character</a> (add 0x0020 to the character's code point) to the
                   24556:    current DOCTYPE token's name.</dd>
                   24557: 
                   24558:    <dt>U+0000 NULL</dt>
                   24559:    <dd><a href="#parse-error">Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
                   24560:    character to the current DOCTYPE token's name.</dd>
                   24561: 
                   24562:    <dt>EOF</dt>
                   24563:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24564:    state</a>. Set the DOCTYPE token's <i>force-quirks flag</i> to
                   24565:    <i>on</i>. Emit that DOCTYPE token. Reconsume the EOF character.</dd>
                   24566: 
                   24567:    <dt>Anything else</dt>
                   24568:    <dd>Append the <a href="#current-input-character">current input character</a> to the current
                   24569:    DOCTYPE token's name.</dd>
                   24570: 
                   24571:   </dl><h5 id="after-doctype-name-state"><span class="secno">8.2.4.55 </span><dfn>After DOCTYPE name state</dfn></h5>
                   24572: 
                   24573:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24574: 
                   24575:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   24576:    <dt>"LF" (U+000A)</dt>
                   24577:    <dt>"FF" (U+000C)</dt>
                   24578:    <!--<dt>"CR" (U+000D)</dt>-->
                   24579:    <dt>U+0020 SPACE</dt>
                   24580:    <dd>Ignore the character.</dd>
                   24581: 
                   24582:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24583:    <dd>Switch to the <a href="#data-state">data state</a>. Emit the current DOCTYPE
                   24584:    token.</dd>
                   24585: 
                   24586:    <dt>EOF</dt>
                   24587:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24588:    state</a>. Set the DOCTYPE token's <i>force-quirks flag</i> to
                   24589:    <i>on</i>. Emit that DOCTYPE token. Reconsume the EOF character.</dd>
                   24590: 
                   24591:    <dt>Anything else</dt>
                   24592:    <dd>
                   24593: 
                   24594:     <p>If the six characters starting from the <a href="#current-input-character">current input
                   24595:     character</a> are an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match
                   24596:     for the word "PUBLIC", then consume those characters and switch to
                   24597:     the <a href="#after-doctype-public-keyword-state">after DOCTYPE public keyword state</a>.</p>
                   24598: 
                   24599:     <p>Otherwise, if the six characters starting from the
                   24600:     <a href="#current-input-character">current input character</a> are an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   24601:     case-insensitive</a> match for the word "SYSTEM", then consume
                   24602:     those characters and switch to the <a href="#after-doctype-system-keyword-state">after DOCTYPE system
                   24603:     keyword state</a>.</p>
                   24604: 
                   24605:     <p>Otherwise, this is a <a href="#parse-error">parse error</a>. Set the
                   24606:     DOCTYPE token's <i>force-quirks flag</i> to <i>on</i>. Switch to
                   24607:     the <a href="#bogus-doctype-state">bogus DOCTYPE state</a>.</p>
                   24608: 
                   24609:    </dd>
                   24610: 
                   24611:   </dl><h5 id="after-doctype-public-keyword-state"><span class="secno">8.2.4.56 </span><dfn>After DOCTYPE public keyword state</dfn></h5>
                   24612: 
                   24613:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24614: 
                   24615:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   24616:    <dt>"LF" (U+000A)</dt>
                   24617:    <dt>"FF" (U+000C)</dt>
                   24618:    <!--<dt>"CR" (U+000D)</dt>-->
                   24619:    <dt>U+0020 SPACE</dt>
                   24620:    <dd>Switch to the <a href="#before-doctype-public-identifier-state">before DOCTYPE public identifier
                   24621:    state</a>.</dd>
                   24622: 
                   24623:    <dt>U+0022 QUOTATION MARK (")</dt>
                   24624:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's public
                   24625:    identifier to the empty string (not missing), then switch to the
                   24626:    <a href="#doctype-public-identifier-(double-quoted)-state">DOCTYPE public identifier (double-quoted) state</a>.</dd>
                   24627: 
                   24628:    <dt>"'" (U+0027)</dt>
                   24629:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's public
                   24630:    identifier to the empty string (not missing), then switch to the
                   24631:    <a href="#doctype-public-identifier-(single-quoted)-state">DOCTYPE public identifier (single-quoted) state</a>.</dd>
                   24632: 
                   24633:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24634:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's
                   24635:    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#data-state">data
                   24636:    state</a>. Emit that DOCTYPE token.</dd>
                   24637: 
                   24638:    <dt>EOF</dt>
                   24639:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24640:    state</a>. Set the DOCTYPE token's <i>force-quirks flag</i> to
                   24641:    <i>on</i>. Emit that DOCTYPE token. Reconsume the EOF character.</dd>
                   24642: 
                   24643:    <dt>Anything else</dt>
                   24644:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's
                   24645:    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#bogus-doctype-state">bogus
                   24646:    DOCTYPE state</a>.</dd>
                   24647: 
                   24648:   </dl><h5 id="before-doctype-public-identifier-state"><span class="secno">8.2.4.57 </span><dfn>Before DOCTYPE public identifier state</dfn></h5>
                   24649: 
                   24650:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24651: 
                   24652:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   24653:    <dt>"LF" (U+000A)</dt>
                   24654:    <dt>"FF" (U+000C)</dt>
                   24655:    <!--<dt>"CR" (U+000D)</dt>-->
                   24656:    <dt>U+0020 SPACE</dt>
                   24657:    <dd>Ignore the character.</dd>
                   24658: 
                   24659:    <dt>U+0022 QUOTATION MARK (")</dt>
                   24660:    <dd>Set the DOCTYPE token's public identifier to the empty string
                   24661:    (not missing), then switch to the <a href="#doctype-public-identifier-(double-quoted)-state">DOCTYPE public identifier
                   24662:    (double-quoted) state</a>.</dd>
                   24663: 
                   24664:    <dt>"'" (U+0027)</dt>
                   24665:    <dd>Set the DOCTYPE token's public identifier to the empty string
                   24666:    (not missing), then switch to the <a href="#doctype-public-identifier-(single-quoted)-state">DOCTYPE public identifier
                   24667:    (single-quoted) state</a>.</dd>
                   24668: 
                   24669:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24670:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's
                   24671:    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#data-state">data
                   24672:    state</a>. Emit that DOCTYPE token.</dd>
                   24673: 
                   24674:    <dt>EOF</dt>
                   24675:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24676:    state</a>. Set the DOCTYPE token's <i>force-quirks flag</i> to
                   24677:    <i>on</i>. Emit that DOCTYPE token. Reconsume the EOF character.</dd>
                   24678: 
                   24679:    <dt>Anything else</dt>
                   24680:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's
                   24681:    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#bogus-doctype-state">bogus
                   24682:    DOCTYPE state</a>.</dd>
                   24683: 
                   24684:   </dl><h5 id="doctype-public-identifier-(double-quoted)-state"><span class="secno">8.2.4.58 </span><dfn>DOCTYPE public identifier (double-quoted) state</dfn></h5>
                   24685: 
                   24686:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24687: 
                   24688:   <dl class="switch"><dt>U+0022 QUOTATION MARK (")</dt>
                   24689:    <dd>Switch to the <a href="#after-doctype-public-identifier-state">after DOCTYPE public identifier state</a>.</dd>
                   24690: 
                   24691:    <dt>U+0000 NULL</dt>
                   24692:    <dd><a href="#parse-error">Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
                   24693:    character to the current DOCTYPE token's public identifier.</dd>
                   24694: 
                   24695:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24696:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's
                   24697:    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#data-state">data
                   24698:    state</a>. Emit that DOCTYPE token.</dd>
                   24699: 
                   24700:    <dt>EOF</dt>
                   24701:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24702:    state</a>. Set the DOCTYPE token's <i>force-quirks flag</i> to
                   24703:    <i>on</i>. Emit that DOCTYPE token. Reconsume the EOF character.</dd>
                   24704: 
                   24705:    <dt>Anything else</dt>
                   24706:    <dd>Append the <a href="#current-input-character">current input character</a> to the current
                   24707:    DOCTYPE token's public identifier.</dd>
                   24708: 
                   24709:   </dl><h5 id="doctype-public-identifier-(single-quoted)-state"><span class="secno">8.2.4.59 </span><dfn>DOCTYPE public identifier (single-quoted) state</dfn></h5>
                   24710: 
                   24711:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24712: 
                   24713:   <dl class="switch"><dt>"'" (U+0027)</dt>
                   24714:    <dd>Switch to the <a href="#after-doctype-public-identifier-state">after DOCTYPE public identifier state</a>.</dd>
                   24715: 
                   24716:    <dt>U+0000 NULL</dt>
                   24717:    <dd><a href="#parse-error">Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
                   24718:    character to the current DOCTYPE token's public identifier.</dd>
                   24719: 
                   24720:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24721:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's
                   24722:    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#data-state">data
                   24723:    state</a>. Emit that DOCTYPE token.</dd>
                   24724: 
                   24725:    <dt>EOF</dt>
                   24726:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24727:    state</a>. Set the DOCTYPE token's <i>force-quirks flag</i> to
                   24728:    <i>on</i>. Emit that DOCTYPE token. Reconsume the EOF character.</dd>
                   24729: 
                   24730:    <dt>Anything else</dt>
                   24731:    <dd>Append the <a href="#current-input-character">current input character</a> to the current
                   24732:    DOCTYPE token's public identifier.</dd>
                   24733: 
                   24734:   </dl><h5 id="after-doctype-public-identifier-state"><span class="secno">8.2.4.60 </span><dfn>After DOCTYPE public identifier state</dfn></h5>
                   24735: 
                   24736:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24737: 
                   24738:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   24739:    <dt>"LF" (U+000A)</dt>
                   24740:    <dt>"FF" (U+000C)</dt>
                   24741:    <!--<dt>"CR" (U+000D)</dt>-->
                   24742:    <dt>U+0020 SPACE</dt>
                   24743:    <dd>Switch to the <a href="#between-doctype-public-and-system-identifiers-state">between DOCTYPE public and system
                   24744:    identifiers state</a>.</dd>
                   24745: 
                   24746:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24747:    <dd>Switch to the <a href="#data-state">data state</a>. Emit the current DOCTYPE
                   24748:    token.</dd>
                   24749: 
                   24750:    <dt>U+0022 QUOTATION MARK (")</dt>
                   24751:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's system
                   24752:    identifier to the empty string (not missing), then switch to the
                   24753:    <a href="#doctype-system-identifier-(double-quoted)-state">DOCTYPE system identifier (double-quoted) state</a>.</dd>
                   24754: 
                   24755:    <dt>"'" (U+0027)</dt>
                   24756:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's system
                   24757:    identifier to the empty string (not missing), then switch to the
                   24758:    <a href="#doctype-system-identifier-(single-quoted)-state">DOCTYPE system identifier (single-quoted) state</a>.</dd>
                   24759: 
                   24760:    <dt>EOF</dt>
                   24761:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24762:    state</a>. Set the DOCTYPE token's <i>force-quirks flag</i> to
                   24763:    <i>on</i>. Emit that DOCTYPE token. Reconsume the EOF character.</dd>
                   24764: 
                   24765:    <dt>Anything else</dt>
                   24766:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's
                   24767:    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#bogus-doctype-state">bogus
                   24768:    DOCTYPE state</a>.</dd>
                   24769: 
                   24770:   </dl><h5 id="between-doctype-public-and-system-identifiers-state"><span class="secno">8.2.4.61 </span><dfn>Between DOCTYPE public and system identifiers state</dfn></h5>
                   24771: 
                   24772:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24773: 
                   24774:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   24775:    <dt>"LF" (U+000A)</dt>
                   24776:    <dt>"FF" (U+000C)</dt>
                   24777:    <!--<dt>"CR" (U+000D)</dt>-->
                   24778:    <dt>U+0020 SPACE</dt>
                   24779:    <dd>Ignore the character.</dd>
                   24780: 
                   24781:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24782:    <dd>Switch to the <a href="#data-state">data state</a>. Emit the current DOCTYPE
                   24783:    token.</dd>
                   24784: 
                   24785:    <dt>U+0022 QUOTATION MARK (")</dt>
                   24786:    <dd>Set the DOCTYPE token's system identifier to the empty string
                   24787:    (not missing), then switch to the <a href="#doctype-system-identifier-(double-quoted)-state">DOCTYPE system identifier
                   24788:    (double-quoted) state</a>.</dd>
                   24789: 
                   24790:    <dt>"'" (U+0027)</dt>
                   24791:    <dd>Set the DOCTYPE token's system identifier to the empty string
                   24792:    (not missing), then switch to the <a href="#doctype-system-identifier-(single-quoted)-state">DOCTYPE system identifier
                   24793:    (single-quoted) state</a>.</dd>
                   24794: 
                   24795:    <dt>EOF</dt>
                   24796:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24797:    state</a>. Set the DOCTYPE token's <i>force-quirks flag</i> to
                   24798:    <i>on</i>. Emit that DOCTYPE token. Reconsume the EOF character.</dd>
                   24799: 
                   24800:    <dt>Anything else</dt>
                   24801:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's
                   24802:    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#bogus-doctype-state">bogus
                   24803:    DOCTYPE state</a>.</dd>
                   24804: 
                   24805:   </dl><h5 id="after-doctype-system-keyword-state"><span class="secno">8.2.4.62 </span><dfn>After DOCTYPE system keyword state</dfn></h5>
                   24806: 
                   24807:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24808: 
                   24809:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   24810:    <dt>"LF" (U+000A)</dt>
                   24811:    <dt>"FF" (U+000C)</dt>
                   24812:    <!--<dt>"CR" (U+000D)</dt>-->
                   24813:    <dt>U+0020 SPACE</dt>
                   24814:    <dd>Switch to the <a href="#before-doctype-system-identifier-state">before DOCTYPE system identifier
                   24815:    state</a>.</dd>
                   24816: 
                   24817:    <dt>U+0022 QUOTATION MARK (")</dt>
                   24818:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's system
                   24819:    identifier to the empty string (not missing), then switch to the
                   24820:    <a href="#doctype-system-identifier-(double-quoted)-state">DOCTYPE system identifier (double-quoted) state</a>.</dd>
                   24821: 
                   24822:    <dt>"'" (U+0027)</dt>
                   24823:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's system
                   24824:    identifier to the empty string (not missing), then switch to the
                   24825:    <a href="#doctype-system-identifier-(single-quoted)-state">DOCTYPE system identifier (single-quoted) state</a>.</dd>
                   24826: 
                   24827:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24828:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's
                   24829:    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#data-state">data
                   24830:    state</a>. Emit that DOCTYPE token.</dd>
                   24831: 
                   24832:    <dt>EOF</dt>
                   24833:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24834:    state</a>. Set the DOCTYPE token's <i>force-quirks flag</i> to
                   24835:    <i>on</i>. Emit that DOCTYPE token. Reconsume the EOF character.</dd>
                   24836: 
                   24837:    <dt>Anything else</dt>
                   24838:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's
                   24839:    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#bogus-doctype-state">bogus
                   24840:    DOCTYPE state</a>.</dd>
                   24841: 
                   24842:   </dl><h5 id="before-doctype-system-identifier-state"><span class="secno">8.2.4.63 </span><dfn>Before DOCTYPE system identifier state</dfn></h5>
                   24843: 
                   24844:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24845: 
                   24846:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   24847:    <dt>"LF" (U+000A)</dt>
                   24848:    <dt>"FF" (U+000C)</dt>
                   24849:    <!--<dt>"CR" (U+000D)</dt>-->
                   24850:    <dt>U+0020 SPACE</dt>
                   24851:    <dd>Ignore the character.</dd>
                   24852: 
                   24853:    <dt>U+0022 QUOTATION MARK (")</dt>
                   24854:    <dd>Set the DOCTYPE token's system identifier to the empty string
                   24855:    (not missing), then switch to the <a href="#doctype-system-identifier-(double-quoted)-state">DOCTYPE system identifier
                   24856:    (double-quoted) state</a>.</dd>
                   24857: 
                   24858:    <dt>"'" (U+0027)</dt>
                   24859:    <dd>Set the DOCTYPE token's system identifier to the empty string
                   24860:    (not missing), then switch to the <a href="#doctype-system-identifier-(single-quoted)-state">DOCTYPE system identifier
                   24861:    (single-quoted) state</a>.</dd>
                   24862: 
                   24863:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24864:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's
                   24865:    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#data-state">data
                   24866:    state</a>. Emit that DOCTYPE token.</dd>
                   24867: 
                   24868:    <dt>EOF</dt>
                   24869:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24870:    state</a>. Set the DOCTYPE token's <i>force-quirks flag</i> to
                   24871:    <i>on</i>. Emit that DOCTYPE token. Reconsume the EOF character.</dd>
                   24872: 
                   24873:    <dt>Anything else</dt>
                   24874:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's
                   24875:    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#bogus-doctype-state">bogus
                   24876:    DOCTYPE state</a>.</dd>
                   24877: 
                   24878:   </dl><h5 id="doctype-system-identifier-(double-quoted)-state"><span class="secno">8.2.4.64 </span><dfn>DOCTYPE system identifier (double-quoted) state</dfn></h5>
                   24879: 
                   24880:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24881: 
                   24882:   <dl class="switch"><dt>U+0022 QUOTATION MARK (")</dt>
                   24883:    <dd>Switch to the <a href="#after-doctype-system-identifier-state">after DOCTYPE system identifier
                   24884:    state</a>.</dd>
                   24885: 
                   24886:    <dt>U+0000 NULL</dt>
                   24887:    <dd><a href="#parse-error">Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
                   24888:    character to the current DOCTYPE token's system identifier.</dd>
                   24889: 
                   24890:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24891:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's
                   24892:    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#data-state">data
                   24893:    state</a>. Emit that DOCTYPE token.</dd>
                   24894: 
                   24895:    <dt>EOF</dt>
                   24896:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24897:    state</a>. Set the DOCTYPE token's <i>force-quirks flag</i> to
                   24898:    <i>on</i>. Emit that DOCTYPE token. Reconsume the EOF character.</dd>
                   24899: 
                   24900:    <dt>Anything else</dt>
                   24901:    <dd>Append the <a href="#current-input-character">current input character</a> to the current
                   24902:    DOCTYPE token's system identifier.</dd>
                   24903: 
                   24904:   </dl><h5 id="doctype-system-identifier-(single-quoted)-state"><span class="secno">8.2.4.65 </span><dfn>DOCTYPE system identifier (single-quoted) state</dfn></h5>
                   24905: 
                   24906:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24907: 
                   24908:   <dl class="switch"><dt>"'" (U+0027)</dt>
                   24909:    <dd>Switch to the <a href="#after-doctype-system-identifier-state">after DOCTYPE system identifier
                   24910:    state</a>.</dd>
                   24911: 
                   24912:    <dt>U+0000 NULL</dt>
                   24913:    <dd><a href="#parse-error">Parse error</a>. Append a U+FFFD REPLACEMENT CHARACTER
                   24914:    character to the current DOCTYPE token's system identifier.</dd>
                   24915: 
                   24916:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24917:    <dd><a href="#parse-error">Parse error</a>. Set the DOCTYPE token's
                   24918:    <i>force-quirks flag</i> to <i>on</i>. Switch to the <a href="#data-state">data
                   24919:    state</a>. Emit that DOCTYPE token.</dd>
                   24920: 
                   24921:    <dt>EOF</dt>
                   24922:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24923:    state</a>. Set the DOCTYPE token's <i>force-quirks flag</i> to
                   24924:    <i>on</i>. Emit that DOCTYPE token. Reconsume the EOF character.</dd>
                   24925: 
                   24926:    <dt>Anything else</dt>
                   24927:    <dd>Append the <a href="#current-input-character">current input character</a> to the current
                   24928:    DOCTYPE token's system identifier.</dd>
                   24929: 
                   24930:   </dl><h5 id="after-doctype-system-identifier-state"><span class="secno">8.2.4.66 </span><dfn>After DOCTYPE system identifier state</dfn></h5>
                   24931: 
                   24932:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24933: 
                   24934:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   24935:    <dt>"LF" (U+000A)</dt>
                   24936:    <dt>"FF" (U+000C)</dt>
                   24937:    <!--<dt>"CR" (U+000D)</dt>-->
                   24938:    <dt>U+0020 SPACE</dt>
                   24939:    <dd>Ignore the character.</dd>
                   24940: 
                   24941:    <dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24942:    <dd>Switch to the <a href="#data-state">data state</a>. Emit the current DOCTYPE
                   24943:    token.</dd>
                   24944: 
                   24945:    <dt>EOF</dt>
                   24946:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#data-state">data
                   24947:    state</a>. Set the DOCTYPE token's <i>force-quirks flag</i> to
                   24948:    <i>on</i>. Emit that DOCTYPE token. Reconsume the EOF character.</dd>
                   24949: 
                   24950:    <dt>Anything else</dt>
                   24951:    <dd><a href="#parse-error">Parse error</a>. Switch to the <a href="#bogus-doctype-state">bogus DOCTYPE
                   24952:    state</a>. (This does <em>not</em> set the DOCTYPE token's
                   24953:    <i>force-quirks flag</i> to <i>on</i>.)</dd>
                   24954: 
                   24955:   </dl><h5 id="bogus-doctype-state"><span class="secno">8.2.4.67 </span><dfn>Bogus DOCTYPE state</dfn></h5>
                   24956: 
                   24957:   <p>Consume the <a href="#next-input-character">next input character</a>:</p>
                   24958: 
                   24959:   <dl class="switch"><dt>U+003E GREATER-THAN SIGN (&gt;)</dt>
                   24960:    <dd>Switch to the <a href="#data-state">data state</a>. Emit the DOCTYPE
                   24961:    token.</dd>
                   24962: 
                   24963:    <dt>EOF</dt>
                   24964:    <dd>Switch to the <a href="#data-state">data state</a>. Emit the DOCTYPE token.
                   24965:    Reconsume the EOF character.</dd>
                   24966: 
                   24967:    <dt>Anything else</dt>
                   24968:    <dd>Ignore the character.</dd>
                   24969: 
                   24970:   </dl><h5 id="cdata-section-state"><span class="secno">8.2.4.68 </span><dfn>CDATA section state</dfn></h5>
                   24971: 
                   24972:   <p>Switch to the <a href="#data-state">data state</a>.</p>
                   24973: 
                   24974:   <p>Consume every character up to the next occurrence of the three
                   24975:   character sequence U+005D RIGHT SQUARE BRACKET U+005D RIGHT SQUARE
                   24976:   BRACKET U+003E GREATER-THAN SIGN (<code title="">]]&gt;</code>), or the
                   24977:   end of the file (EOF), whichever comes first. Emit a series of
                   24978:   character tokens consisting of all the characters consumed except
                   24979:   the matching three character sequence at the end (if one was found
                   24980:   before the end of the file)<!--(not needed; taken care of by the
                   24981:   tree constructor), but with any U+0000 NULL characters replaced by
                   24982:   U+FFFD REPLACEMENT CHARACTER characters-->.</p>
                   24983: 
                   24984:   <p>If the end of the file was reached, reconsume the EOF
                   24985:   character.</p>
                   24986: 
                   24987: 
                   24988: 
                   24989:   <h5 id="tokenizing-character-references"><span class="secno">8.2.4.69 </span>Tokenizing character references</h5>
                   24990: 
                   24991:   <p>This section defines how to <dfn id="consume-a-character-reference">consume a character
                   24992:   reference</dfn>. This definition is used when parsing character
                   24993:   references <a href="#character-reference-in-data-state" title="character reference in data state">in
                   24994:   text</a> and <a href="#character-reference-in-attribute-value-state" title="character reference in attribute value
                   24995:   state">in attributes</a>.</p>
                   24996: 
                   24997:   <p>The behavior depends on the identity of the next character (the
                   24998:   one immediately after the U+0026 AMPERSAND character):</p>
                   24999: 
                   25000:   <dl class="switch"><dt>"tab" (U+0009)</dt>
                   25001:    <dt>"LF" (U+000A)</dt>
                   25002:    <dt>"FF" (U+000C)</dt>
                   25003:    <!--<dt>"CR" (U+000D)</dt>-->
                   25004:    <dt>U+0020 SPACE</dt>
                   25005:    <dt>U+003C LESS-THAN SIGN</dt>
                   25006:    <dt>U+0026 AMPERSAND</dt>
                   25007:    <dt>EOF</dt>
                   25008:    <dt>The <dfn id="additional-allowed-character">additional allowed character</dfn>, if there is one</dt>
                   25009: 
                   25010:    <dd>Not a character reference. No characters are consumed, and
                   25011:    nothing is returned. (This is not an error, either.)</dd>
                   25012: 
                   25013: 
                   25014:    <dt>"#" (U+0023)</dt>
                   25015: 
                   25016:    <dd>
                   25017: 
                   25018:     <p>Consume the U+0023 NUMBER SIGN.</p>
                   25019: 
                   25020:     <p>The behavior further depends on the character after the U+0023
                   25021:     NUMBER SIGN:</p>
                   25022: 
                   25023:     <dl class="switch"><dt>U+0078 LATIN SMALL LETTER X</dt>
                   25024:      <dt>U+0058 LATIN CAPITAL LETTER X</dt>
                   25025: 
                   25026:      <dd>
                   25027: 
                   25028:       <p>Consume the X.</p>
                   25029: 
                   25030:       <p>Follow the steps below, but using the range of characters
                   25031:       <a href="common-microsyntaxes.html#ascii-digits">ASCII digits</a>, U+0061 LATIN
                   25032:       SMALL LETTER A to U+0066 LATIN SMALL LETTER F, and U+0041 LATIN
                   25033:       CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F (in other
                   25034:       words, 0-9, A-F, a-f).</p>
                   25035: 
                   25036:       <p>When it comes to interpreting the number, interpret it as a
                   25037:       hexadecimal number.</p>
                   25038: 
                   25039:      </dd>
                   25040: 
                   25041: 
                   25042:      <dt>Anything else</dt>
                   25043: 
                   25044:      <dd>
                   25045: 
                   25046:       <p>Follow the steps below, but using the range of characters
                   25047:       <a href="common-microsyntaxes.html#ascii-digits">ASCII digits</a>.</p>
                   25048: 
                   25049:       <p>When it comes to interpreting the number, interpret it as a
                   25050:       decimal number.</p>
                   25051: 
                   25052:      </dd>
                   25053: 
                   25054:     </dl><p>Consume as many characters as match the range of characters
                   25055:     given above.</p>
                   25056: 
                   25057:     <p>If no characters match the range, then don't consume any
                   25058:     characters (and unconsume the U+0023 NUMBER SIGN character and, if
                   25059:     appropriate, the X character). This is a <a href="#parse-error">parse
                   25060:     error</a>; nothing is returned.</p>
                   25061: 
                   25062:     <p>Otherwise, if the next character is a U+003B SEMICOLON, consume
                   25063:     that too. If it isn't, there is a <a href="#parse-error">parse
                   25064:     error</a>.</p>
                   25065: 
                   25066:     <p>If one or more characters match the range, then take them all
                   25067:     and interpret the string of characters as a number (either
                   25068:     hexadecimal or decimal as appropriate).</p>
                   25069: 
                   25070:     <p>If that number is one of the numbers in the first column of the
                   25071:     following table, then this is a <a href="#parse-error">parse error</a>. Find the
                   25072:     row with that number in the first column, and return a character
                   25073:     token for the Unicode character given in the second column of that
                   25074:     row.</p>
                   25075: 
                   25076:     <table id="table-charref-overrides"><thead><tr><th>Number </th><th colspan="2">Unicode character
                   25077:      </th></tr></thead><tbody><tr><td>0x00 </td><td>U+FFFD </td><td>REPLACEMENT CHARACTER
                   25078:       </td></tr><tr><td>0x0D </td><td>U+000D </td><td>CARRIAGE RETURN (CR)
                   25079:       </td></tr><tr><td>0x80 </td><td>U+20AC </td><td>EURO SIGN (&#8364;)
                   25080:       </td></tr><tr><td>0x81 </td><td>U+0081 </td><td>&lt;control&gt;
                   25081:       </td></tr><tr><td>0x82 </td><td>U+201A </td><td>SINGLE LOW-9 QUOTATION MARK (&#8218;)
                   25082:       </td></tr><tr><td>0x83 </td><td>U+0192 </td><td>LATIN SMALL LETTER F WITH HOOK (&#402;)
                   25083:       </td></tr><tr><td>0x84 </td><td>U+201E </td><td>DOUBLE LOW-9 QUOTATION MARK (&#8222;)
                   25084:       </td></tr><tr><td>0x85 </td><td>U+2026 </td><td>HORIZONTAL ELLIPSIS (&#8230;)
                   25085:       </td></tr><tr><td>0x86 </td><td>U+2020 </td><td>DAGGER (&#8224;)
                   25086:       </td></tr><tr><td>0x87 </td><td>U+2021 </td><td>DOUBLE DAGGER (&#8225;)
                   25087:       </td></tr><tr><td>0x88 </td><td>U+02C6 </td><td>MODIFIER LETTER CIRCUMFLEX ACCENT (&#710;)
                   25088:       </td></tr><tr><td>0x89 </td><td>U+2030 </td><td>PER MILLE SIGN (&#8240;)
                   25089:       </td></tr><tr><td>0x8A </td><td>U+0160 </td><td>LATIN CAPITAL LETTER S WITH CARON (&#352;)
                   25090:       </td></tr><tr><td>0x8B </td><td>U+2039 </td><td>SINGLE LEFT-POINTING ANGLE QUOTATION MARK (&#8249;)
                   25091:       </td></tr><tr><td>0x8C </td><td>U+0152 </td><td>LATIN CAPITAL LIGATURE OE (&#338;)
                   25092:       </td></tr><tr><td>0x8D </td><td>U+008D </td><td>&lt;control&gt;
                   25093:       </td></tr><tr><td>0x8E </td><td>U+017D </td><td>LATIN CAPITAL LETTER Z WITH CARON (&#381;)
                   25094:       </td></tr><tr><td>0x8F </td><td>U+008F </td><td>&lt;control&gt;
                   25095:       </td></tr><tr><td>0x90 </td><td>U+0090 </td><td>&lt;control&gt;
                   25096:       </td></tr><tr><td>0x91 </td><td>U+2018 </td><td>LEFT SINGLE QUOTATION MARK (&#8216;)
                   25097:       </td></tr><tr><td>0x92 </td><td>U+2019 </td><td>RIGHT SINGLE QUOTATION MARK (&#8217;)
                   25098:       </td></tr><tr><td>0x93 </td><td>U+201C </td><td>LEFT DOUBLE QUOTATION MARK (&#8220;)
                   25099:       </td></tr><tr><td>0x94 </td><td>U+201D </td><td>RIGHT DOUBLE QUOTATION MARK (&#8221;)
                   25100:       </td></tr><tr><td>0x95 </td><td>U+2022 </td><td>BULLET (&#8226;)
                   25101:       </td></tr><tr><td>0x96 </td><td>U+2013 </td><td>EN DASH (&#8211;)
                   25102:       </td></tr><tr><td>0x97 </td><td>U+2014 </td><td>EM DASH (&#8212;)
                   25103:       </td></tr><tr><td>0x98 </td><td>U+02DC </td><td>SMALL TILDE (&#732;)
                   25104:       </td></tr><tr><td>0x99 </td><td>U+2122 </td><td>TRADE MARK SIGN (&#8482;)
                   25105:       </td></tr><tr><td>0x9A </td><td>U+0161 </td><td>LATIN SMALL LETTER S WITH CARON (&#353;)
                   25106:       </td></tr><tr><td>0x9B </td><td>U+203A </td><td>SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (&#8250;)
                   25107:       </td></tr><tr><td>0x9C </td><td>U+0153 </td><td>LATIN SMALL LIGATURE OE (&#339;)
                   25108:       </td></tr><tr><td>0x9D </td><td>U+009D </td><td>&lt;control&gt;
                   25109:       </td></tr><tr><td>0x9E </td><td>U+017E </td><td>LATIN SMALL LETTER Z WITH CARON (&#382;)
                   25110:       </td></tr><tr><td>0x9F </td><td>U+0178 </td><td>LATIN CAPITAL LETTER Y WITH DIAERESIS (&#376;)
                   25111:     </td></tr></tbody></table><p>Otherwise, if the number is in the range 0xD800 to 0xDFFF<!--
                   25112:     surrogates --> or is greater than 0x10FFFF, then this is a
                   25113:     <a href="#parse-error">parse error</a>. Return a U+FFFD REPLACEMENT
                   25114:     CHARACTER.</p>
                   25115: 
                   25116:     <p>Otherwise, return a character token for the Unicode character
                   25117:     whose code point is that number.
                   25118: 
                   25119:     <!-- this is the same as the equivalent list in the input stream
                   25120:     section -->
                   25121:     Additionally, if the number is in the range 0x0001 to 0x0008, <!--
                   25122:     HT, LF allowed --> <!-- U+000B is in the next list --> <!-- FF, CR
                   25123:     allowed --> 0x000E to 0x001F, <!-- ASCII allowed --> 0x007F <!--to
                   25124:     0x0084, (0x0085 NEL not allowed), 0x0086--> to 0x009F, 0xFDD0 to
                   25125:     0xFDEF, or is one of 0x000B, 0xFFFE, 0xFFFF, 0x1FFFE, 0x1FFFF,
                   25126:     0x2FFFE, 0x2FFFF, 0x3FFFE, 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE,
                   25127:     0x5FFFF, 0x6FFFE, 0x6FFFF, 0x7FFFE, 0x7FFFF, 0x8FFFE, 0x8FFFF,
                   25128:     0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF, 0xBFFFE, 0xBFFFF, 0xCFFFE,
                   25129:     0xCFFFF, 0xDFFFE, 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF,
                   25130:     0x10FFFE, or 0x10FFFF, then this is a <a href="#parse-error">parse
                   25131:     error</a>.</p>
                   25132: 
                   25133:    </dd>
                   25134: 
                   25135: 
                   25136:    <dt>Anything else</dt>
                   25137: 
                   25138:    <dd>
                   25139: 
                   25140:     <p>Consume the maximum number of characters possible, with the
                   25141:     consumed characters matching one of the identifiers in the first
                   25142:     column of the <a href="#named-character-references">named character references</a> table (in a
                   25143:     <a href="infrastructure.html#case-sensitive">case-sensitive</a> manner).</p>
                   25144: 
                   25145:     <p>If no match can be made, then no characters are consumed, and
                   25146:     nothing is returned. In this case, if the characters after the
                   25147:     U+0026 AMPERSAND character (&amp;) consist of a sequence of one or
                   25148:     more characters in the range <a href="common-microsyntaxes.html#ascii-digits">ASCII digits</a>, <a href="common-microsyntaxes.html#lowercase-ascii-letters">lowercase ASCII letters</a>, and <a href="common-microsyntaxes.html#uppercase-ascii-letters">uppercase ASCII letters</a>, followed by a ";" (U+003B) character, then this
                   25149:     is a <a href="#parse-error">parse error</a>.</p>
                   25150: 
                   25151:     <p>If the character reference is being consumed <a href="#character-reference-in-attribute-value-state" title="character reference in attribute value state">as part of an
                   25152:     attribute</a>, and the last character matched is not a ";" (U+003B) character, and the next character is either a "=" (U+003D) character or in the range <a href="common-microsyntaxes.html#ascii-digits">ASCII digits</a>, <a href="common-microsyntaxes.html#uppercase-ascii-letters">uppercase ASCII letters</a>, or <a href="common-microsyntaxes.html#lowercase-ascii-letters">lowercase ASCII letters</a>, then, for historical reasons, all the
                   25153:     characters that were matched after the U+0026 AMPERSAND character
                   25154:     (&amp;) must be unconsumed, and nothing is returned.</p>
                   25155:     <!-- "=" added because of http://www.w3.org/Bugs/Public/show_bug.cgi?id=9207#c5 -->
                   25156: 
                   25157:     <p>Otherwise, a character reference is parsed. If the last
                   25158:     character matched is not a ";" (U+003B) character, there
                   25159:     is a <a href="#parse-error">parse error</a>.</p>
                   25160: 
                   25161:     <p>Return one or two character tokens for the character(s)
                   25162:     corresponding to the character reference name (as given by the
                   25163:     second column of the <a href="#named-character-references">named character references</a>
                   25164:     table).</p>
                   25165: 
                   25166:     <div class="example">
                   25167: 
                   25168:      <p>If the markup contains (not in an attribute) the string <code title="">I'm &amp;notit; I tell you</code>, the character
                   25169:      reference is parsed as "not", as in, <code title="">I'm &#172;it;
                   25170:      I tell you</code> (and this is a parse error). But if the markup
                   25171:      was <code title="">I'm &amp;notin; I tell you</code>, the
                   25172:      character reference would be parsed as "notin;", resulting in
                   25173:      <code title="">I'm &#8713; I tell you</code> (and no parse
                   25174:      error).</p>
                   25175: 
                   25176:     </div>
                   25177: 
                   25178:    </dd>
                   25179: 
                   25180:   </dl></div>
                   25181: 
                   25182: 
                   25183:   <div class="impl">
                   25184: 
                   25185:   <!-- v2: One thing that this doesn't define is handling deeply
                   25186:   nested documents. There are compatibility requirements around that:
                   25187:   you can't throw away the elements altogether, consider Tux made only
                   25188:   with opening <font> elements, one per character. Seems that the best
                   25189:   thing to do is to close some formatting elements from the middle of
                   25190:   the stack when you hit a limit, or something. -->
                   25191: 
                   25192:   <h4 id="tree-construction"><span class="secno">8.2.5 </span><dfn>Tree construction</dfn></h4>
                   25193: 
                   25194:   <p>The input to the tree construction stage is a sequence of tokens
                   25195:   from the <a href="#tokenization">tokenization</a> stage. The tree construction
                   25196:   stage is associated with a DOM <code><a href="dom.html#document">Document</a></code> object when a
                   25197:   parser is created. The "output" of this stage consists of
                   25198:   dynamically modifying or extending that document's DOM tree.</p>
                   25199: 
                   25200:   <p>This specification does not define when an interactive user agent
                   25201:   has to render the <code><a href="dom.html#document">Document</a></code> so that it is available to
                   25202:   the user, or when it has to begin accepting user input.</p>
                   25203: 
                   25204:   <hr><p>As each token is emitted from the tokenizer, the user agent must
                   25205:   follow the appropriate steps from the following list:</p>
                   25206: 
                   25207:   <dl class="switch"><dt>If there is no <a href="#current-node">current node</a></dt>
                   25208:    <dt>If the <a href="#current-node">current node</a> is an element in the <a href="namespaces.html#html-namespace-0">HTML namespace</a></dt>
                   25209:    <dt>If the <a href="#current-node">current node</a> is a <a href="#mathml-text-integration-point">MathML text integration point</a> and the token is a start tag whose tag name is neither "mglyph" nor "malignmark"</dt>
                   25210:    <dt>If the <a href="#current-node">current node</a> is a <a href="#mathml-text-integration-point">MathML text integration point</a> and the token is a character token</dt>
                   25211:    <dt>If the <a href="#current-node">current node</a> is an <code title="">annotation-xml</code> element in the <a href="namespaces.html#mathml-namespace">MathML namespace</a> and the token is a start tag whose tag name is "svg"</dt>
                   25212:    <dt>If the <a href="#current-node">current node</a> is an <a href="#html-integration-point">HTML integration point</a> and the token is a start tag</dt>
                   25213:    <dt>If the <a href="#current-node">current node</a> is an <a href="#html-integration-point">HTML integration point</a> and the token is a character token</dt>
                   25214:    <dt>If the token is an end-of-file token</dt>
                   25215: 
                   25216:    <dd>Process the token according to the rules given in the section
                   25217:    corresponding to the current <a href="#insertion-mode">insertion mode</a> in HTML
                   25218:    content.</dd>
                   25219: 
                   25220:    <dt>Otherwise</dt>
                   25221: 
                   25222:    <dd>Process the token according to the rules given in the section
                   25223:    for parsing tokens <a href="#parsing-main-inforeign" title="insertion mode: in foreign
                   25224:    content">in foreign content</a>.</dd>
                   25225: 
                   25226:   </dl><p>When the specification says that a user agent is to <dfn id="act-as-if-a-token-had-been-seen">act as
                   25227:   if a token had been seen</dfn>, it means that the user agent is to
                   25228:   follow the appropriate steps from the above list.</p>
                   25229: 
                   25230:   <p>The <a href="#current-node">current node</a> is a <dfn id="mathml-text-integration-point">MathML text
                   25231:   integration point</dfn> if it is one of the following elements:</p>
                   25232: 
                   25233:   <ul class="brief"><li>An <code title="">mi</code> element in the <a href="namespaces.html#mathml-namespace">MathML namespace</a></li>
                   25234:    <li>An <code title="">mo</code> element in the <a href="namespaces.html#mathml-namespace">MathML namespace</a></li>
                   25235:    <li>An <code title="">mn</code> element in the <a href="namespaces.html#mathml-namespace">MathML namespace</a></li>
                   25236:    <li>An <code title="">ms</code> element in the <a href="namespaces.html#mathml-namespace">MathML namespace</a></li>
                   25237:    <li>An <code title="">mtext</code> element in the <a href="namespaces.html#mathml-namespace">MathML namespace</a></li>
                   25238:   </ul><p>The <a href="#current-node">current node</a> is an <dfn id="html-integration-point">HTML
                   25239:   integration point</dfn> if it is one of the following elements:</p>
                   25240: 
                   25241:   <ul class="brief"><li>An <code title="">annotation-xml</code> element in the <a href="namespaces.html#mathml-namespace">MathML namespace</a> whose start tag token had an attribute with the name "encoding" whose value was an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">text/html</code>"</li>
                   25242:    <li>An <code title="">annotation-xml</code> element in the <a href="namespaces.html#mathml-namespace">MathML namespace</a> whose start tag token had an attribute with the name "encoding" whose value was an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">application/xhtml+xml</code>"</li>
                   25243:    <li>A <code title="">foreignObject</code> element in the <a href="namespaces.html#svg-namespace">SVG namespace</a></li>
                   25244:    <li>A <code title="">desc</code> element in the <a href="namespaces.html#svg-namespace">SVG namespace</a></li>
                   25245:    <li>A <code title="">title</code> element in the <a href="namespaces.html#svg-namespace">SVG namespace</a></li>
                   25246:   </ul><hr><p>When the steps below require the UA to <dfn id="insert-a-character">insert a
                   25247:   character</dfn> into a node, if that node has a child immediately
                   25248:   before where the character is to be inserted, and that child is a
                   25249:   <code><a href="infrastructure.html#text-0">Text</a></code> node, then the character must be appended to that
                   25250:   <code><a href="infrastructure.html#text-0">Text</a></code> node; otherwise, a new <code><a href="infrastructure.html#text-0">Text</a></code> node
                   25251:   whose data is just that character must be inserted in the
                   25252:   appropriate place.</p>
                   25253: 
                   25254:   <div class="example">
                   25255: 
                   25256:    <p>Here are some sample inputs to the parser and the corresponding
                   25257:    number of <code><a href="infrastructure.html#text-0">Text</a></code> nodes that they result in, assuming a user agent
                   25258:    that executes scripts.</p>
                   25259: 
                   25260:    <table><thead><tr><th>Input </th><th>Number of <code><a href="infrastructure.html#text-0">Text</a></code> nodes
                   25261:     </th></tr></thead><tbody><tr><td><pre>A&lt;script&gt;
                   25262: var&#160;script&#160;=&#160;document.getElementsByTagName('script')[0];
                   25263: document.body.removeChild(script);
                   25264: &lt;/script&gt;B</pre>
                   25265:       </td><td>One <code><a href="infrastructure.html#text-0">Text</a></code> node in the document, containing "AB".
                   25266:      </td></tr><tr><td><pre>A&lt;script&gt;
                   25267: var&#160;text&#160;=&#160;document.createTextNode('B');
                   25268: document.body.appendChild(text);
                   25269: &lt;/script&gt;C</pre>
                   25270:       </td><td>Three <code><a href="infrastructure.html#text-0">Text</a></code> nodes; "A" before the script, the script's contents, and "BC" after the script (the parser appends to the <code><a href="infrastructure.html#text-0">Text</a></code> node created by the script).
                   25271:      </td></tr><tr><td><pre>A&lt;script&gt;
                   25272: var&#160;text&#160;=&#160;document.getElementsByTagName('script')[0].firstChild;
                   25273: text.data&#160;=&#160;'B';
                   25274: document.body.appendChild(text);
                   25275: &lt;/script&gt;C</pre>
                   25276:       </td><td>Two adjacent <code><a href="infrastructure.html#text-0">Text</a></code> nodes in the document, containing "A" and "BC".
                   25277:      </td></tr><tr><td><pre>A&lt;table&gt;B&lt;tr&gt;C&lt;/tr&gt;D&lt;/table&gt;</pre>
                   25278:       </td><td>One <code><a href="infrastructure.html#text-0">Text</a></code> node before the table, containing "ABCD". (This is caused by <a href="#foster-parent" title="foster parent">foster parenting</a>.)
                   25279:      </td></tr><tr><td><pre>A&lt;table&gt;&lt;tr&gt;&#160;B&lt;/tr&gt;&#160;C&lt;/table&gt;</pre>
                   25280:       </td><td>One <code><a href="infrastructure.html#text-0">Text</a></code> node before the table, containing "A&#160;B&#160;C" (A-space-B-space-C). (This is caused by <a href="#foster-parent" title="foster parent">foster parenting</a>.)
                   25281:      </td></tr><tr><td><pre>A&lt;table&gt;&lt;tr&gt;&#160;B&lt;/tr&gt;&#160;&lt;/em&gt;C&lt;/table&gt;</pre>
                   25282:       </td><td>One <code><a href="infrastructure.html#text-0">Text</a></code> node before the table, containing "A&#160;BC" (A-space-B-C), and one <code><a href="infrastructure.html#text-0">Text</a></code> node inside the table (as a child of a <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>) with a single space character. (Space characters separated from non-space characters by non-character tokens are not affected by <a href="#foster-parent" title="foster parent">foster parenting</a>, even if those other tokens then get ignored.)
                   25283:    </td></tr></tbody></table></div>
                   25284: 
                   25285:   <p id="mutation-during-parsing">DOM mutation events and mutation
                   25286:   observers must not fire for changes caused by the UA parsing the
                   25287:   document. (Conceptually, the parser is not mutating the DOM, it is
                   25288:   constructing it.) This includes the parsing of any content inserted
                   25289:   using <code title="dom-document-write"><a href="dynamic-markup-insertion.html#dom-document-write">document.write()</a></code> and
                   25290:   <code title="dom-document-writeln"><a href="dynamic-markup-insertion.html#dom-document-writeln">document.writeln()</a></code> calls.
                   25291:   <a href="#refsDOMEVENTS">[DOMEVENTS]</a></p>
                   25292: 
                   25293:   <p class="note">Not all of the tag names mentioned below are
                   25294:   conformant tag names in this specification; many are included to
                   25295:   handle legacy content. They still form part of the algorithm that
                   25296:   implementations are required to implement to claim conformance.</p>
                   25297: 
                   25298:   <p class="note">The algorithm described below places no limit on the
                   25299:   depth of the DOM tree generated, or on the length of tag names,
                   25300:   attribute names, attribute values, <code><a href="infrastructure.html#text-0">Text</a></code> nodes, etc. While
                   25301:   implementors are encouraged to avoid arbitrary limits, it is
                   25302:   recognized that <a href="infrastructure.html#hardwareLimitations">practical
                   25303:   concerns</a> will likely force user agents to impose nesting depth
                   25304:   constraints.</p>
                   25305: 
                   25306: 
                   25307:   <h5 id="creating-and-inserting-elements"><span class="secno">8.2.5.1 </span>Creating and inserting elements</h5>
                   25308: 
                   25309:   <p>When the steps below require the UA to <dfn id="create-an-element-for-the-token" title="create an
                   25310:   element for the token">create an element for a token</dfn> in a
                   25311:   particular namespace, the UA must create a node implementing the
                   25312:   interface appropriate for the element type corresponding to the tag
                   25313:   name of the token in the given namespace (as given in the
                   25314:   specification that defines that element, e.g. for an <code><a href="the-a-element.html#the-a-element">a</a></code>
                   25315:   element in the <a href="namespaces.html#html-namespace-0">HTML namespace</a>, this specification
                   25316:   defines it to be the <code><a href="the-a-element.html#htmlanchorelement">HTMLAnchorElement</a></code> interface), with
                   25317:   the tag name being the name of that element, with the node being in
                   25318:   the given namespace, and with the attributes on the node being those
                   25319:   given in the given token.</p>
                   25320: 
                   25321:   <p>The interface appropriate for an element in the <a href="namespaces.html#html-namespace-0">HTML
                   25322:   namespace</a> that is not defined in this specification (or
                   25323:   <a href="infrastructure.html#other-applicable-specifications">other applicable specifications</a>) is
                   25324:   <code><a href="elements.html#htmlunknownelement">HTMLUnknownElement</a></code>. Elements in other namespaces whose
                   25325:   interface is not defined by that namespace's specification must use
                   25326:   the interface <code><a href="infrastructure.html#element">Element</a></code>.</p>
                   25327: 
                   25328:   <p>When a <a href="forms.html#category-reset" title="category-reset">resettable element</a> is
                   25329:   created in this manner, its <a href="#concept-form-reset-control" title="concept-form-reset-control">reset algorithm</a> must be
                   25330:   invoked once the attributes are set. (This initializes the element's
                   25331:   <a href="attributes-common-to-form-controls.html#concept-fe-value" title="concept-fe-value">value</a> and <a href="attributes-common-to-form-controls.html#concept-fe-checked" title="concept-fe-checked">checkedness</a> based on the element's
                   25332:   attributes.)</p>
                   25333: 
                   25334:   <hr><p>When the steps below require the UA to <dfn id="insert-an-html-element">insert an HTML
                   25335:   element</dfn> for a token, the UA must first <a href="#create-an-element-for-the-token">create an element
                   25336:   for the token</a> in the <a href="namespaces.html#html-namespace-0">HTML namespace</a>, and then
                   25337:   append this node to the <a href="#current-node">current node</a>, and push it onto
                   25338:   the <a href="#stack-of-open-elements">stack of open elements</a> so that it is the new
                   25339:   <a href="#current-node">current node</a>.</p>
                   25340: 
                   25341:   <p>The steps below may also require that the UA insert an HTML
                   25342:   element in a particular place, in which case the UA must follow the
                   25343:   same steps except that it must insert or append the new node in the
                   25344:   location specified instead of appending it to the <a href="#current-node">current
                   25345:   node</a>. (This happens in particular during the parsing of
                   25346:   tables with invalid content.)</p>
                   25347: 
                   25348:   <p>If an element created by the <a href="#insert-an-html-element">insert an HTML element</a>
                   25349:   algorithm is a <a href="forms.html#form-associated-element">form-associated element</a>, and the
                   25350:   <a href="#form-element-pointer"><code title="">form</code> element pointer</a> is not null,
                   25351:   and the newly created element doesn't have a <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">form</a></code> attribute, the user agent must
                   25352:   <a href="association-of-controls-and-forms.html#concept-form-association" title="concept-form-association">associate</a> the newly
                   25353:   created element with the <code><a href="the-form-element.html#the-form-element">form</a></code> element pointed to by the
                   25354:   <a href="#form-element-pointer"><code title="">form</code> element pointer</a> when the
                   25355:   element is inserted, instead of running the <a href="association-of-controls-and-forms.html#reset-the-form-owner">reset the form
                   25356:   owner</a> algorithm.</p>
                   25357: 
                   25358:   <hr><p>When the steps below require the UA to <dfn id="insert-a-foreign-element">insert a foreign
                   25359:   element</dfn> for a token, the UA must first <a href="#create-an-element-for-the-token">create an element
                   25360:   for the token</a> in the given namespace, and then append this
                   25361:   node to the <a href="#current-node">current node</a>, and push it onto the
                   25362:   <a href="#stack-of-open-elements">stack of open elements</a> so that it is the new
                   25363:   <a href="#current-node">current node</a>. If the newly created element has an <code title="">xmlns</code> attribute in the <a href="namespaces.html#xmlns-namespace">XMLNS namespace</a>
                   25364:   whose value is not exactly the same as the element's namespace, that
                   25365:   is a <a href="#parse-error">parse error</a>. Similarly, if the newly created
                   25366:   element has an <code title="">xmlns:xlink</code> attribute in the
                   25367:   <a href="namespaces.html#xmlns-namespace">XMLNS namespace</a> whose value is not the <a href="namespaces.html#xlink-namespace">XLink
                   25368:   Namespace</a>, that is a <a href="#parse-error">parse error</a>.</p>
                   25369: 
                   25370:   <p>When the steps below require the user agent to <dfn id="adjust-mathml-attributes">adjust MathML
                   25371:   attributes</dfn> for a token, then, if the token has an attribute
                   25372:   named <code title="">definitionurl</code>, change its name to <code title="">definitionURL</code> (note the case difference).</p>
                   25373: 
                   25374:   <p>When the steps below require the user agent to <dfn id="adjust-svg-attributes">adjust SVG
                   25375:   attributes</dfn> for a token, then, for each attribute on the token
                   25376:   whose attribute name is one of the ones in the first column of the
                   25377:   following table, change the attribute's name to the name given in
                   25378:   the corresponding cell in the second column. (This fixes the case of
                   25379:   SVG attributes that are not all lowercase.)</p>
                   25380: 
                   25381:   <table><thead><tr><th> Attribute name on token </th><th> Attribute name on element
                   25382:    </th></tr></thead><tbody><tr><td> <code title="">attributename</code> </td><td> <code title="">attributeName</code>
                   25383:     </td></tr><tr><td> <code title="">attributetype</code> </td><td> <code title="">attributeType</code>
                   25384:     </td></tr><tr><td> <code title="">basefrequency</code> </td><td> <code title="">baseFrequency</code>
                   25385:     </td></tr><tr><td> <code title="">baseprofile</code> </td><td> <code title="">baseProfile</code>
                   25386:     </td></tr><tr><td> <code title="">calcmode</code> </td><td> <code title="">calcMode</code>
                   25387:     </td></tr><tr><td> <code title="">clippathunits</code> </td><td> <code title="">clipPathUnits</code>
                   25388:     </td></tr><tr><td> <code title="">contentscripttype</code> </td><td> <code title="">contentScriptType</code>
                   25389:     </td></tr><tr><td> <code title="">contentstyletype</code> </td><td> <code title="">contentStyleType</code>
                   25390:     </td></tr><tr><td> <code title="">diffuseconstant</code> </td><td> <code title="">diffuseConstant</code>
                   25391:     </td></tr><tr><td> <code title="">edgemode</code> </td><td> <code title="">edgeMode</code>
                   25392:     </td></tr><tr><td> <code title="">externalresourcesrequired</code> </td><td> <code title="">externalResourcesRequired</code>
                   25393:     </td></tr><tr><td> <code title="">filterres</code> </td><td> <code title="">filterRes</code>
                   25394:     </td></tr><tr><td> <code title="">filterunits</code> </td><td> <code title="">filterUnits</code>
                   25395:     </td></tr><tr><td> <code title="">glyphref</code> </td><td> <code title="">glyphRef</code>
                   25396:     </td></tr><tr><td> <code title="">gradienttransform</code> </td><td> <code title="">gradientTransform</code>
                   25397:     </td></tr><tr><td> <code title="">gradientunits</code> </td><td> <code title="">gradientUnits</code>
                   25398:     </td></tr><tr><td> <code title="">kernelmatrix</code> </td><td> <code title="">kernelMatrix</code>
                   25399:     </td></tr><tr><td> <code title="">kernelunitlength</code> </td><td> <code title="">kernelUnitLength</code>
                   25400:     </td></tr><tr><td> <code title="">keypoints</code> </td><td> <code title="">keyPoints</code>
                   25401:     </td></tr><tr><td> <code title="">keysplines</code> </td><td> <code title="">keySplines</code>
                   25402:     </td></tr><tr><td> <code title="">keytimes</code> </td><td> <code title="">keyTimes</code>
                   25403:     </td></tr><tr><td> <code title="">lengthadjust</code> </td><td> <code title="">lengthAdjust</code>
                   25404:     </td></tr><tr><td> <code title="">limitingconeangle</code> </td><td> <code title="">limitingConeAngle</code>
                   25405:     </td></tr><tr><td> <code title="">markerheight</code> </td><td> <code title="">markerHeight</code>
                   25406:     </td></tr><tr><td> <code title="">markerunits</code> </td><td> <code title="">markerUnits</code>
                   25407:     </td></tr><tr><td> <code title="">markerwidth</code> </td><td> <code title="">markerWidth</code>
                   25408:     </td></tr><tr><td> <code title="">maskcontentunits</code> </td><td> <code title="">maskContentUnits</code>
                   25409:     </td></tr><tr><td> <code title="">maskunits</code> </td><td> <code title="">maskUnits</code>
                   25410:     </td></tr><tr><td> <code title="">numoctaves</code> </td><td> <code title="">numOctaves</code>
                   25411:     </td></tr><tr><td> <code title="">pathlength</code> </td><td> <code title="">pathLength</code>
                   25412:     </td></tr><tr><td> <code title="">patterncontentunits</code> </td><td> <code title="">patternContentUnits</code>
                   25413:     </td></tr><tr><td> <code title="">patterntransform</code> </td><td> <code title="">patternTransform</code>
                   25414:     </td></tr><tr><td> <code title="">patternunits</code> </td><td> <code title="">patternUnits</code>
                   25415:     </td></tr><tr><td> <code title="">pointsatx</code> </td><td> <code title="">pointsAtX</code>
                   25416:     </td></tr><tr><td> <code title="">pointsaty</code> </td><td> <code title="">pointsAtY</code>
                   25417:     </td></tr><tr><td> <code title="">pointsatz</code> </td><td> <code title="">pointsAtZ</code>
                   25418:     </td></tr><tr><td> <code title="">preservealpha</code> </td><td> <code title="">preserveAlpha</code>
                   25419:     </td></tr><tr><td> <code title="">preserveaspectratio</code> </td><td> <code title="">preserveAspectRatio</code>
                   25420:     </td></tr><tr><td> <code title="">primitiveunits</code> </td><td> <code title="">primitiveUnits</code>
                   25421:     </td></tr><tr><td> <code title="">refx</code> </td><td> <code title="">refX</code>
                   25422:     </td></tr><tr><td> <code title="">refy</code> </td><td> <code title="">refY</code>
                   25423:     </td></tr><tr><td> <code title="">repeatcount</code> </td><td> <code title="">repeatCount</code>
                   25424:     </td></tr><tr><td> <code title="">repeatdur</code> </td><td> <code title="">repeatDur</code>
                   25425:     </td></tr><tr><td> <code title="">requiredextensions</code> </td><td> <code title="">requiredExtensions</code>
                   25426:     </td></tr><tr><td> <code title="">requiredfeatures</code> </td><td> <code title="">requiredFeatures</code>
                   25427:     </td></tr><tr><td> <code title="">specularconstant</code> </td><td> <code title="">specularConstant</code>
                   25428:     </td></tr><tr><td> <code title="">specularexponent</code> </td><td> <code title="">specularExponent</code>
                   25429:     </td></tr><tr><td> <code title="">spreadmethod</code> </td><td> <code title="">spreadMethod</code>
                   25430:     </td></tr><tr><td> <code title="">startoffset</code> </td><td> <code title="">startOffset</code>
                   25431:     </td></tr><tr><td> <code title="">stddeviation</code> </td><td> <code title="">stdDeviation</code>
                   25432:     </td></tr><tr><td> <code title="">stitchtiles</code> </td><td> <code title="">stitchTiles</code>
                   25433:     </td></tr><tr><td> <code title="">surfacescale</code> </td><td> <code title="">surfaceScale</code>
                   25434:     </td></tr><tr><td> <code title="">systemlanguage</code> </td><td> <code title="">systemLanguage</code>
                   25435:     </td></tr><tr><td> <code title="">tablevalues</code> </td><td> <code title="">tableValues</code>
                   25436:     </td></tr><tr><td> <code title="">targetx</code> </td><td> <code title="">targetX</code>
                   25437:     </td></tr><tr><td> <code title="">targety</code> </td><td> <code title="">targetY</code>
                   25438:     </td></tr><tr><td> <code title="">textlength</code> </td><td> <code title="">textLength</code>
                   25439:     </td></tr><tr><td> <code title="">viewbox</code> </td><td> <code title="">viewBox</code>
                   25440:     </td></tr><tr><td> <code title="">viewtarget</code> </td><td> <code title="">viewTarget</code>
                   25441:     </td></tr><tr><td> <code title="">xchannelselector</code> </td><td> <code title="">xChannelSelector</code>
                   25442:     </td></tr><tr><td> <code title="">ychannelselector</code> </td><td> <code title="">yChannelSelector</code>
                   25443:     </td></tr><tr><td> <code title="">zoomandpan</code> </td><td> <code title="">zoomAndPan</code>
                   25444:   </td></tr></tbody></table><p>When the steps below require the user agent to <dfn id="adjust-foreign-attributes">adjust
                   25445:   foreign attributes</dfn> for a token, then, if any of the attributes
                   25446:   on the token match the strings given in the first column of the
                   25447:   following table, let the attribute be a namespaced attribute, with
                   25448:   the prefix being the string given in the corresponding cell in the
                   25449:   second column, the local name being the string given in the
                   25450:   corresponding cell in the third column, and the namespace being the
                   25451:   namespace given in the corresponding cell in the fourth
                   25452:   column. (This fixes the use of namespaced attributes, in particular
                   25453:   <a href="global-attributes.html#attr-xml-lang" title="attr-xml-lang"><code title="">lang</code> attributes in
                   25454:   the <span>XML namespace</span></a>.)</p>
                   25455: 
                   25456:   <table><thead><tr><th> Attribute name </th><th> Prefix </th><th> Local name </th><th> Namespace
                   25457:    </th></tr></thead><tbody><tr><td> <code title="">xlink:actuate</code> </td><td> <code title="">xlink</code> </td><td> <code title="">actuate</code> </td><td> <a href="namespaces.html#xlink-namespace">XLink namespace</a>
                   25458:     </td></tr><tr><td> <code title="">xlink:arcrole</code> </td><td> <code title="">xlink</code> </td><td> <code title="">arcrole</code> </td><td> <a href="namespaces.html#xlink-namespace">XLink namespace</a>
                   25459:     </td></tr><tr><td> <code title="">xlink:href</code> </td><td> <code title="">xlink</code> </td><td> <code title="">href</code> </td><td> <a href="namespaces.html#xlink-namespace">XLink namespace</a>
                   25460:     </td></tr><tr><td> <code title="">xlink:role</code> </td><td> <code title="">xlink</code> </td><td> <code title="">role</code> </td><td> <a href="namespaces.html#xlink-namespace">XLink namespace</a>
                   25461:     </td></tr><tr><td> <code title="">xlink:show</code> </td><td> <code title="">xlink</code> </td><td> <code title="">show</code> </td><td> <a href="namespaces.html#xlink-namespace">XLink namespace</a>
                   25462:     </td></tr><tr><td> <code title="">xlink:title</code> </td><td> <code title="">xlink</code> </td><td> <code title="">title</code> </td><td> <a href="namespaces.html#xlink-namespace">XLink namespace</a>
                   25463:     </td></tr><tr><td> <code title="">xlink:type</code> </td><td> <code title="">xlink</code> </td><td> <code title="">type</code> </td><td> <a href="namespaces.html#xlink-namespace">XLink namespace</a>
                   25464:     </td></tr><tr><td> <code title="">xml:base</code> </td><td> <code title="">xml</code> </td><td> <code title="">base</code> </td><td> <a href="namespaces.html#xml-namespace">XML namespace</a> <!-- attr-xml-base -->
                   25465:     </td></tr><tr><td> <code title="">xml:lang</code> </td><td> <code title="">xml</code> </td><td> <code title="">lang</code> </td><td> <a href="namespaces.html#xml-namespace">XML namespace</a>
                   25466:     </td></tr><tr><td> <code title="">xml:space</code> </td><td> <code title="">xml</code> </td><td> <code title="">space</code> </td><td> <a href="namespaces.html#xml-namespace">XML namespace</a>
                   25467:     </td></tr><tr><td> <code title="">xmlns</code> </td><td> (none) </td><td> <code title="">xmlns</code> </td><td> <a href="namespaces.html#xmlns-namespace">XMLNS namespace</a>
                   25468:     </td></tr><tr><td> <code title="">xmlns:xlink</code> </td><td> <code title="">xmlns</code> </td><td> <code title="">xlink</code> </td><td> <a href="namespaces.html#xmlns-namespace">XMLNS namespace</a>
                   25469:   </td></tr></tbody></table><hr><p>The <dfn id="generic-raw-text-element-parsing-algorithm">generic raw text element parsing algorithm</dfn> and the
                   25470:   <dfn id="generic-rcdata-element-parsing-algorithm">generic RCDATA element parsing algorithm</dfn> consist of the
                   25471:   following steps. These algorithms are always invoked in response to
                   25472:   a start tag token.</p>
                   25473: 
                   25474:   <ol><li><p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p></li>
                   25475: 
                   25476:    <li><p>If the algorithm that was invoked is the <a href="#generic-raw-text-element-parsing-algorithm">generic raw
                   25477:    text element parsing algorithm</a>, switch the tokenizer to the
                   25478:    <a href="#rawtext-state">RAWTEXT state</a>; otherwise the algorithm invoked
                   25479:    was the <a href="#generic-rcdata-element-parsing-algorithm">generic RCDATA element parsing algorithm</a>,
                   25480:    switch the tokenizer to the <a href="#rcdata-state">RCDATA state</a>.</p></li>
                   25481: 
                   25482:    <li><p>Let the <a href="#original-insertion-mode">original insertion mode</a> be the current
                   25483:    <a href="#insertion-mode">insertion mode</a>.</p>
                   25484: 
                   25485:    </li><li><p>Then, switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-incdata" title="insertion mode: text">text</a>".</p></li>
                   25486: 
                   25487:   </ol><h5 id="closing-elements-that-have-implied-end-tags"><span class="secno">8.2.5.2 </span>Closing elements that have implied end tags</h5>
                   25488: 
                   25489:   <p>When the steps below require the UA to <dfn id="generate-implied-end-tags">generate implied end
                   25490:   tags</dfn>, then, while the <a href="#current-node">current node</a> is a
                   25491:   <code><a href="the-dd-element.html#the-dd-element">dd</a></code> element, a <code><a href="the-dt-element.html#the-dt-element">dt</a></code> element, an
                   25492:   <code><a href="the-li-element.html#the-li-element">li</a></code> element, an <code><a href="the-option-element.html#the-option-element">option</a></code> element, an
                   25493:   <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code> element, a <code><a href="the-p-element.html#the-p-element">p</a></code> element, an
                   25494:   <code><a href="the-rp-element.html#the-rp-element">rp</a></code> element, or an <code><a href="the-rt-element.html#the-rt-element">rt</a></code> element, the UA must
                   25495:   pop the <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
                   25496:   elements</a>.</p>
                   25497: 
                   25498:   <p>If a step requires the UA to generate implied end tags but lists
                   25499:   an element to exclude from the process, then the UA must perform the
                   25500:   above steps as if that element was not in the above list.</p>
                   25501: 
                   25502: 
                   25503:   <h5 id="foster-parenting"><span class="secno">8.2.5.3 </span>Foster parenting</h5>
                   25504: 
                   25505:   <p>Foster parenting happens when content is misnested in tables.</p>
                   25506: 
                   25507:   <p>When a node <var title="">node</var> is to be <dfn id="foster-parent" title="foster
                   25508:   parent">foster parented</dfn>, the node <var title="">node</var>
                   25509:   must be inserted into the <i><a href="#foster-parent-element">foster parent element</a></i>.</p>
                   25510: 
                   25511:   <p>The <dfn id="foster-parent-element">foster parent element</dfn> is the parent element of the
                   25512:   last <code><a href="the-table-element.html#the-table-element">table</a></code> element in the <a href="#stack-of-open-elements">stack of open
                   25513:   elements</a>, if there is a <code><a href="the-table-element.html#the-table-element">table</a></code> element and it has
                   25514:   such a parent element.</p>
                   25515: 
                   25516:   <p class="note">It might have no parent or some other kind parent if
                   25517:   a script manipulated the DOM after the element was inserted by the
                   25518:   parser.</p>
                   25519: 
                   25520:   <p>If there is no <code><a href="the-table-element.html#the-table-element">table</a></code> element in the <a href="#stack-of-open-elements">stack of
                   25521:   open elements</a> (<a href="#fragment-case">fragment case</a>), then the
                   25522:   <i><a href="#foster-parent-element">foster parent element</a></i> is the first element in the <a href="#stack-of-open-elements">stack
                   25523:   of open elements</a> (the <code><a href="the-html-element.html#the-html-element">html</a></code> element). Otherwise,
                   25524:   if there is a <code><a href="the-table-element.html#the-table-element">table</a></code> element in the <a href="#stack-of-open-elements">stack of open
                   25525:   elements</a>, but the last <code><a href="the-table-element.html#the-table-element">table</a></code> element in the
                   25526:   <a href="#stack-of-open-elements">stack of open elements</a> has no parent, or its parent
                   25527:   node is not an element, then the <i><a href="#foster-parent-element">foster parent element</a></i> is the
                   25528:   element before the last <code><a href="the-table-element.html#the-table-element">table</a></code> element in the
                   25529:   <a href="#stack-of-open-elements">stack of open elements</a>.</p>
                   25530: 
                   25531:   <p>If the <i><a href="#foster-parent-element">foster parent element</a></i> is the parent element of the
                   25532:   last <code><a href="the-table-element.html#the-table-element">table</a></code> element in the <a href="#stack-of-open-elements">stack of open
                   25533:   elements</a>, then <var title="">node</var> must be inserted into
                   25534:   the <i><a href="#foster-parent-element">foster parent element</a></i>, immediately <em>before</em> the
                   25535:   last <code><a href="the-table-element.html#the-table-element">table</a></code> element in the <a href="#stack-of-open-elements">stack of open
                   25536:   elements</a>; otherwise, <var title="">node</var> must be
                   25537:   <em>appended</em> to the <i><a href="#foster-parent-element">foster parent element</a></i>.</p>
                   25538: 
                   25539: 
                   25540: 
                   25541:   <h5 id="parsing-main-inhtml"><span class="secno">8.2.5.4 </span>The rules for parsing tokens in HTML content</h5>
                   25542: 
                   25543: 
                   25544:   <h6 id="the-initial-insertion-mode"><span class="secno">8.2.5.4.1 </span>The "<dfn title="insertion mode: initial">initial</dfn>" insertion mode</h6>
                   25545: 
                   25546:   <p>When the user agent is to apply the rules for the "<a href="#the-initial-insertion-mode" title="insertion mode: initial">initial</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   25547: 
                   25548:   <dl class="switch"><dt>A character token that is one of U+0009 CHARACTER
                   25549:    TABULATION, "LF" (U+000A), "FF" (U+000C),
                   25550:    "CR" (U+000D), or U+0020 SPACE</dt>
                   25551:    <dd>
                   25552:     <p>Ignore the token.</p>
                   25553:    </dd>
                   25554: 
                   25555:    <dt>A comment token</dt>
                   25556:    <dd>
                   25557:     <p>Append a <code><a href="infrastructure.html#comment-0">Comment</a></code> node to the <code><a href="dom.html#document">Document</a></code>
                   25558:     object with the <code title="">data</code> attribute set to the
                   25559:     data given in the comment token.</p>
                   25560:    </dd>
                   25561: 
                   25562:    <dt>A DOCTYPE token</dt>
                   25563:    <dd>
                   25564: 
                   25565:     <p>If the DOCTYPE token's name is not a
                   25566:     <a href="infrastructure.html#case-sensitive">case-sensitive</a> match for the string "<code title="">html</code>", or the token's public identifier is not
                   25567:     missing, or the token's system identifier is neither missing nor a
                   25568:     <a href="infrastructure.html#case-sensitive">case-sensitive</a> match for the string
                   25569:     "<code><a href="urls.html#about:legacy-compat">about:legacy-compat</a></code>", and none of the sets of
                   25570:     conditions in the following list are matched, then there is a
                   25571:     <a href="#parse-error">parse error</a>.</p>
                   25572: 
                   25573:     <ul><!-- only things that trigger no-quirks mode and were valid in
                   25574:      some other spec are allowed in this list --><li>The DOCTYPE token's name is a <a href="infrastructure.html#case-sensitive">case-sensitive</a>
                   25575:      match for the string "<code title="">html</code>", the token's
                   25576:      public identifier is the <a href="infrastructure.html#case-sensitive">case-sensitive</a> string
                   25577:      "<code title="">-//W3C//DTD&#160;HTML&#160;4.0//EN</code>", and
                   25578:      the token's system identifier is either missing or the
                   25579:      <a href="infrastructure.html#case-sensitive">case-sensitive</a> string "<code title="">http://www.w3.org/TR/REC-html40/strict.dtd</code>".</li>
                   25580: 
                   25581:      <li>The DOCTYPE token's name is a <a href="infrastructure.html#case-sensitive">case-sensitive</a>
                   25582:      match for the string "<code title="">html</code>", the token's
                   25583:      public identifier is the <a href="infrastructure.html#case-sensitive">case-sensitive</a> string
                   25584:      "<code title="">-//W3C//DTD&#160;HTML&#160;4.01//EN</code>", and
                   25585:      the token's system identifier is either missing or the
                   25586:      <a href="infrastructure.html#case-sensitive">case-sensitive</a> string "<code title="">http://www.w3.org/TR/html4/strict.dtd</code>".</li>
                   25587: 
                   25588:      <li>The DOCTYPE token's name is a <a href="infrastructure.html#case-sensitive">case-sensitive</a>
                   25589:      match for the string "<code title="">html</code>", the token's
                   25590:      public identifier is the <a href="infrastructure.html#case-sensitive">case-sensitive</a> string
                   25591:      "<code title="">-//W3C//DTD&#160;XHTML&#160;1.0&#160;Strict//EN</code>",
                   25592:      and the token's system identifier is the
                   25593:      <a href="infrastructure.html#case-sensitive">case-sensitive</a> string "<code title="">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</code>".</li>
                   25594: 
                   25595:      <li>The DOCTYPE token's name is a <a href="infrastructure.html#case-sensitive">case-sensitive</a>
                   25596:      match for the string "<code title="">html</code>", the token's
                   25597:      public identifier is the <a href="infrastructure.html#case-sensitive">case-sensitive</a> string
                   25598:      "<code title="">-//W3C//DTD&#160;XHTML&#160;1.1//EN</code>", and
                   25599:      the token's system identifier is the <a href="infrastructure.html#case-sensitive">case-sensitive</a>
                   25600:      string "<code title="">http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd</code>".</li>
                   25601: 
                   25602:     </ul><p>Conformance checkers may, based on the values (including
                   25603:     presence or lack thereof) of the DOCTYPE token's name, public
                   25604:     identifier, or system identifier, switch to a conformance checking
                   25605:     mode for another language (e.g. based on the DOCTYPE token a
                   25606:     conformance checker could recognize that the document is an
                   25607:     HTML4-era document, and defer to an HTML4 conformance
                   25608:     checker.)</p>
                   25609: 
                   25610:     <p>Append a <code><a href="infrastructure.html#documenttype">DocumentType</a></code> node to the
                   25611:     <code><a href="dom.html#document">Document</a></code> node, with the <code title="">name</code>
                   25612:     attribute set to the name given in the DOCTYPE token, or the empty
                   25613:     string if the name was missing; the <code title="">publicId</code>
                   25614:     attribute set to the public identifier given in the DOCTYPE token,
                   25615:     or the empty string if the public identifier was missing; the
                   25616:     <code title="">systemId</code> attribute set to the system
                   25617:     identifier given in the DOCTYPE token, or the empty string if the
                   25618:     system identifier was missing; and the other attributes specific
                   25619:     to <code><a href="infrastructure.html#documenttype">DocumentType</a></code> objects set to null and empty lists
                   25620:     as appropriate. Associate the <code><a href="infrastructure.html#documenttype">DocumentType</a></code> node with
                   25621:     the <code><a href="dom.html#document">Document</a></code> object so that it is returned as the
                   25622:     value of the <code title="">doctype</code> attribute of the
                   25623:     <code><a href="dom.html#document">Document</a></code> object.</p>
                   25624: 
                   25625:     <p id="quirks-mode-doctypes">Then, if the DOCTYPE token matches
                   25626:     one of the conditions in the following list, then set the
                   25627:     <code><a href="dom.html#document">Document</a></code> to <a href="infrastructure.html#quirks-mode">quirks mode</a>:</p>
                   25628: 
                   25629:     <ul class="brief"><li> The <i>force-quirks flag</i> is set to <i>on</i>. </li>
                   25630:      <li> The name is set to anything other than "<code title="">html</code>" (compared <a href="infrastructure.html#case-sensitive" title="case-sensitive">case-sensitively</a>). </li>
                   25631:      <li> The public identifier starts with: "<code title="">+//Silmaril//dtd html Pro v0r11 19970101//<!--EN--></code>" </li>
                   25632:      <li> The public identifier starts with: "<code title="">-//AdvaSoft Ltd//DTD HTML 3.0 asWedit + extensions//<!--EN--></code>" </li>
                   25633:      <li> The public identifier starts with: "<code title="">-//AS//DTD HTML 3.0 asWedit + extensions//<!--EN--></code>" </li>
                   25634:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 2.0 Level 1//<!--EN--></code>" </li>
                   25635:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 2.0 Level 2//<!--EN--></code>" </li>
                   25636:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 2.0 Strict Level 1//<!--EN--></code>" </li>
                   25637:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 2.0 Strict Level 2//<!--EN--></code>" </li>
                   25638:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 2.0 Strict//<!--EN--></code>" </li>
                   25639:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 2.0//<!--EN--></code>" </li>
                   25640:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 2.1E//<!--EN--></code>" </li>
                   25641:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 3.0//<!--EN--></code>" </li>
                   25642:    <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML 3.0//EN//</code>" </li>-->
                   25643:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 3.2 Final//<!--EN--></code>" </li>
                   25644:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 3.2//<!--EN--></code>" </li>
                   25645:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML 3//<!--EN--></code>" </li>
                   25646:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Level 0//<!--EN--></code>" </li>
                   25647:    <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Level 0//EN//2.0</code>" </li>-->
                   25648:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Level 1//<!--EN--></code>" </li>
                   25649:    <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Level 1//EN//2.0</code>" </li>-->
                   25650:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Level 2//<!--EN--></code>" </li>
                   25651:    <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Level 2//EN//2.0</code>" </li>-->
                   25652:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Level 3//<!--EN--></code>" </li>
                   25653:    <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Level 3//EN//3.0</code>" </li>-->
                   25654:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Strict Level 0//<!--EN--></code>" </li>
                   25655:    <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Strict Level 0//EN//2.0</code>" </li>-->
                   25656:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Strict Level 1//<!--EN--></code>" </li>
                   25657:    <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Strict Level 1//EN//2.0</code>" </li>-->
                   25658:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Strict Level 2//<!--EN--></code>" </li>
                   25659:    <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Strict Level 2//EN//2.0</code>" </li>-->
                   25660:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Strict Level 3//<!--EN--></code>" </li>
                   25661:    <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Strict Level 3//EN//3.0</code>" </li>-->
                   25662:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML Strict//<!--EN--></code>" </li>
                   25663:    <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Strict//EN//2.0</code>" </li>-->
                   25664:    <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML Strict//EN//3.0</code>" </li>-->
                   25665:      <li> The public identifier starts with: "<code title="">-//IETF//DTD HTML//<!--EN--></code>" </li>
                   25666:    <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML//EN//2.0</code>" </li>-->
                   25667:    <!--<li> The public identifier is set to: "<code title="">-//IETF//DTD HTML//EN//3.0</code>" </li>-->
                   25668:      <li> The public identifier starts with: "<code title="">-//Metrius//DTD Metrius Presentational//<!--EN--></code>" </li>
                   25669:      <li> The public identifier starts with: "<code title="">-//Microsoft//DTD Internet Explorer 2.0 HTML Strict//<!--EN--></code>" </li>
                   25670:      <li> The public identifier starts with: "<code title="">-//Microsoft//DTD Internet Explorer 2.0 HTML//<!--EN--></code>" </li>
                   25671:      <li> The public identifier starts with: "<code title="">-//Microsoft//DTD Internet Explorer 2.0 Tables//<!--EN--></code>" </li>
                   25672:      <li> The public identifier starts with: "<code title="">-//Microsoft//DTD Internet Explorer 3.0 HTML Strict//<!--EN--></code>" </li>
                   25673:      <li> The public identifier starts with: "<code title="">-//Microsoft//DTD Internet Explorer 3.0 HTML//<!--EN--></code>" </li>
                   25674:      <li> The public identifier starts with: "<code title="">-//Microsoft//DTD Internet Explorer 3.0 Tables//<!--EN--></code>" </li>
                   25675:      <li> The public identifier starts with: "<code title="">-//Netscape Comm. Corp.//DTD HTML//<!--EN--></code>" </li>
                   25676:      <li> The public identifier starts with: "<code title="">-//Netscape Comm. Corp.//DTD Strict HTML//<!--EN--></code>" </li>
                   25677:      <li> The public identifier starts with: "<code title="">-//O'Reilly and Associates//DTD HTML 2.0//<!--EN--></code>" </li>
                   25678:      <li> The public identifier starts with: "<code title="">-//O'Reilly and Associates//DTD HTML Extended 1.0//<!--EN--></code>" </li>
                   25679:      <li> The public identifier starts with: "<code title="">-//O'Reilly and Associates//DTD HTML Extended Relaxed 1.0//<!--EN--></code>" </li>
                   25680:      <li> The public identifier starts with: "<code title="">-//SoftQuad Software//DTD HoTMetaL PRO 6.0::19990601::extensions to HTML 4.0//<!--EN--></code>" </li>
                   25681:      <li> The public identifier starts with: "<code title="">-//SoftQuad//DTD HoTMetaL PRO 4.0::19971010::extensions to HTML 4.0//<!--EN--></code>" </li>
                   25682:      <li> The public identifier starts with: "<code title="">-//Spyglass//DTD HTML 2.0 Extended//<!--EN--></code>" </li>
                   25683:      <li> The public identifier starts with: "<code title="">-//SQ//DTD HTML 2.0 HoTMetaL + extensions//<!--EN--></code>" </li>
                   25684:      <li> The public identifier starts with: "<code title="">-//Sun Microsystems Corp.//DTD HotJava HTML//<!--EN--></code>" </li>
                   25685:      <li> The public identifier starts with: "<code title="">-//Sun Microsystems Corp.//DTD HotJava Strict HTML//<!--EN--></code>" </li>
                   25686:      <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML 3 1995-03-24//<!--EN--></code>" </li>
                   25687:      <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML 3.2 Draft//<!--EN--></code>" </li>
                   25688:      <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML 3.2 Final//<!--EN--></code>" </li>
                   25689:      <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML 3.2//<!--EN--></code>" </li>
                   25690:      <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML 3.2S Draft//<!--EN--></code>" </li>
                   25691:      <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML 4.0 Frameset//<!--EN--></code>" </li>
                   25692:      <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML 4.0 Transitional//<!--EN--></code>" </li>
                   25693:      <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML Experimental 19960712//<!--EN--></code>" </li>
                   25694:      <li> The public identifier starts with: "<code title="">-//W3C//DTD HTML Experimental 970421//<!--EN--></code>" </li>
                   25695:      <li> The public identifier starts with: "<code title="">-//W3C//DTD W3 HTML//<!--EN--></code>" </li>
                   25696:      <li> The public identifier starts with: "<code title="">-//W3O//DTD W3 HTML 3.0//<!--EN--></code>" </li>
                   25697:    <!--<li> The public identifier is set to: "<code title="">-//W3O//DTD W3 HTML 3.0//EN//</code>" </li>-->
                   25698:      <li> The public identifier is set to: "<code title="">-//W3O//DTD W3 HTML Strict 3.0//EN//</code>" </li>
                   25699:      <li> The public identifier starts with: "<code title="">-//WebTechs//DTD Mozilla HTML 2.0//<!--EN--></code>" </li>
                   25700:      <li> The public identifier starts with: "<code title="">-//WebTechs//DTD Mozilla HTML//<!--EN--></code>" </li>
                   25701:      <li> The public identifier is set to: "<code title="">-/W3C/DTD HTML 4.0 Transitional/EN</code>" </li>
                   25702:      <li> The public identifier is set to: "<code title="">HTML</code>" </li>
                   25703:      <li> The system identifier is set to: "<code title="">http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd</code>" </li>
                   25704:      <li> The system identifier is missing and the public identifier starts with: "<code title="">-//W3C//DTD HTML 4.01 Frameset//<!--EN--></code>" </li>
                   25705:      <li> The system identifier is missing and the public identifier starts with: "<code title="">-//W3C//DTD HTML 4.01 Transitional//<!--EN--></code>" </li>
                   25706:     </ul><p>Otherwise, if the DOCTYPE token matches one of the conditions
                   25707:     in the following list, then set the <code><a href="dom.html#document">Document</a></code> to
                   25708:     <a href="infrastructure.html#limited-quirks-mode">limited-quirks mode</a>:</p>
                   25709: 
                   25710:     <ul class="brief"><li> The public identifier starts with: "<code title="">-//W3C//DTD XHTML 1.0 Frameset//<!--EN--></code>" </li>
                   25711:      <li> The public identifier starts with: "<code title="">-//W3C//DTD XHTML 1.0 Transitional//<!--EN--></code>" </li>
                   25712:      <li> The system identifier is not missing and the public identifier starts with: "<code title="">-//W3C//DTD HTML 4.01 Frameset//<!--EN--></code>" </li>
                   25713:      <li> The system identifier is not missing and the public identifier starts with: "<code title="">-//W3C//DTD HTML 4.01 Transitional//<!--EN--></code>" </li>
                   25714:     </ul><p>The system identifier and public identifier strings must be
                   25715:     compared to the values given in the lists above in an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   25716:     case-insensitive</a> manner. A system identifier whose value is
                   25717:     the empty string is not considered missing for the purposes of the
                   25718:     conditions above.</p>
                   25719: 
                   25720:     <p>Then, switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#the-before-html-insertion-mode" title="insertion mode: before html">before html</a>".</p>
                   25721: 
                   25722:    </dd>
                   25723: 
                   25724:    <dt>Anything else</dt>
                   25725:    <dd>
                   25726: 
                   25727:     <p>If the document is <em>not</em> <a href="the-iframe-element.html#an-iframe-srcdoc-document">an <code>iframe</code>
                   25728:     <code title="attr-iframe-srcdoc">srcdoc</code> document</a>,
                   25729:     then this is a <a href="#parse-error">parse error</a>; set the
                   25730:     <code><a href="dom.html#document">Document</a></code> to <a href="infrastructure.html#quirks-mode">quirks mode</a>.</p>
                   25731: 
                   25732:     <p>In any case, switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#the-before-html-insertion-mode" title="insertion mode: before html">before html</a>", then
                   25733:     reprocess the current token.</p>
                   25734: 
                   25735:    </dd>
                   25736: 
                   25737:   </dl><h6 id="the-before-html-insertion-mode"><span class="secno">8.2.5.4.2 </span>The "<dfn title="insertion mode: before html">before html</dfn>" insertion mode</h6>
                   25738: 
                   25739:   <p>When the user agent is to apply the rules for the "<a href="#the-before-html-insertion-mode" title="insertion mode: before html">before html</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   25740: 
                   25741:   <dl class="switch"><dt>A DOCTYPE token</dt>
                   25742:    <dd>
                   25743:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   25744:    </dd>
                   25745: 
                   25746:    <dt>A comment token</dt>
                   25747:    <dd>
                   25748:     <p>Append a <code><a href="infrastructure.html#comment-0">Comment</a></code> node to the <code><a href="dom.html#document">Document</a></code>
                   25749:     object with the <code title="">data</code> attribute set to the
                   25750:     data given in the comment token.</p>
                   25751:    </dd>
                   25752: 
                   25753:    <dt>A character token that is one of U+0009 CHARACTER
                   25754:    TABULATION, "LF" (U+000A), "FF" (U+000C),
                   25755:    "CR" (U+000D), or U+0020 SPACE</dt>
                   25756:    <dd>
                   25757:     <p>Ignore the token.</p>
                   25758:    </dd>
                   25759: 
                   25760:    <dt>A start tag whose tag name is "html"</dt>
                   25761:    <dd>
                   25762: 
                   25763:     <p><a href="#create-an-element-for-the-token">Create an element for the token</a> in the <a href="namespaces.html#html-namespace-0">HTML
                   25764:     namespace</a>. Append it to the <code><a href="dom.html#document">Document</a></code>
                   25765:     object. Put this element in the <a href="#stack-of-open-elements">stack of open
                   25766:     elements</a>.</p>
                   25767: 
                   25768:     <p id="parser-appcache">If the <code><a href="dom.html#document">Document</a></code> is being
                   25769:     loaded as part of <a href="#navigate" title="navigate">navigation</a> of a
                   25770:     <a href="#browsing-context">browsing context</a>, then: if the newly created element
                   25771:     has a <code title="attr-html-manifest"><a href="the-html-element.html#attr-html-manifest">manifest</a></code> attribute
                   25772:     whose value is not the empty string, then <a href="urls.html#resolve-a-url" title="resolve a
                   25773:     url">resolve</a> the value of that attribute to an
                   25774:     <a href="urls.html#absolute-url">absolute URL</a>, relative to the newly created element,
                   25775:     and if that is successful, run the <a href="#concept-appcache-init" title="concept-appcache-init">application cache selection
                   25776:     algorithm</a> with the resulting <a href="urls.html#absolute-url">absolute URL</a> with
                   25777:     any <a href="urls.html#url-fragment" title="url-fragment">&lt;fragment&gt;</a> component
                   25778:     removed; otherwise, if there is no such attribute, or its value is
                   25779:     the empty string, or resolving its value fails, run the <a href="#concept-appcache-init" title="concept-appcache-init">application cache selection
                   25780:     algorithm</a> with no manifest. The algorithm must be passed
                   25781:     the <code><a href="dom.html#document">Document</a></code> object.</p>
                   25782: 
                   25783:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#the-before-head-insertion-mode" title="insertion mode: before head">before head</a>".</p>
                   25784: 
                   25785:    </dd>
                   25786: 
                   25787:    <dt>An end tag whose tag name is one of: "head", "body", "html", "br"</dt>
                   25788:    <dd>
                   25789:     <p>Act as described in the "anything else" entry below.</p>
                   25790:    </dd>
                   25791: 
                   25792:    <dt>Any other end tag</dt>
                   25793:    <dd>
                   25794:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   25795:    </dd>
                   25796: 
                   25797:    <dt>Anything else</dt>
                   25798:    <dd>
                   25799: 
                   25800:     <p>Create an <code><a href="the-html-element.html#the-html-element">html</a></code> element. Append it to the
                   25801:     <code><a href="dom.html#document">Document</a></code> object. Put this element in the <a href="#stack-of-open-elements">stack
                   25802:     of open elements</a>.</p>
                   25803: 
                   25804:     <p>If the <code><a href="dom.html#document">Document</a></code> is being loaded as part of <a href="#navigate" title="navigate">navigation</a> of a <a href="#browsing-context">browsing
                   25805:     context</a>, then: run the <a href="#concept-appcache-init" title="concept-appcache-init">application cache selection
                   25806:     algorithm</a> with no manifest, passing it the
                   25807:     <code><a href="dom.html#document">Document</a></code> object.</p>
                   25808: 
                   25809:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#the-before-head-insertion-mode" title="insertion mode: before head">before head</a>", then
                   25810:     reprocess the current token.</p>
                   25811: 
                   25812:    </dd>
                   25813: 
                   25814:   </dl><p>The root element can end up being removed from the
                   25815:   <code><a href="dom.html#document">Document</a></code> object, e.g. by scripts; nothing in particular
                   25816:   happens in such cases, content continues being appended to the nodes
                   25817:   as described in the next section.</p>
                   25818: 
                   25819: 
                   25820:   <h6 id="the-before-head-insertion-mode"><span class="secno">8.2.5.4.3 </span>The "<dfn title="insertion mode: before head">before head</dfn>" insertion mode</h6>
                   25821: 
                   25822:   <p>When the user agent is to apply the rules for the "<a href="#the-before-head-insertion-mode" title="insertion mode: before head">before head</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   25823: 
                   25824:   <dl class="switch"><dt>A character token that is one of U+0009 CHARACTER
                   25825:    TABULATION, "LF" (U+000A), "FF" (U+000C),
                   25826:    "CR" (U+000D), or U+0020 SPACE</dt>
                   25827:    <dd>
                   25828:     <p>Ignore the token.</p> <!-- :-( -->
                   25829:    </dd>
                   25830: 
                   25831:    <dt>A comment token</dt>
                   25832:    <dd>
                   25833:     <p>Append a <code><a href="infrastructure.html#comment-0">Comment</a></code> node to the <a href="#current-node">current
                   25834:     node</a> with the <code title="">data</code> attribute set to
                   25835:     the data given in the comment token.</p>
                   25836:    </dd>
                   25837: 
                   25838:    <dt>A DOCTYPE token</dt>
                   25839:    <dd>
                   25840:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   25841:    </dd>
                   25842: 
                   25843:    <dt>A start tag whose tag name is "html"</dt>
                   25844:    <dd>
                   25845:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" <a href="#insertion-mode">insertion
                   25846:     mode</a>.</p>
                   25847:    </dd>
                   25848: 
                   25849:    <dt>A start tag whose tag name is "head"</dt>
                   25850:    <dd>
                   25851: 
                   25852:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   25853: 
                   25854:     <p>Set the <a href="#head-element-pointer"><code title="">head</code> element pointer</a>
                   25855:     to the newly created <code><a href="the-head-element.html#the-head-element">head</a></code> element.</p>
                   25856: 
                   25857:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>".</p>
                   25858: 
                   25859:    </dd>
                   25860: 
                   25861:    <dt>An end tag whose tag name is one of: "head", "body", "html", "br"</dt>
                   25862:    <dd>
                   25863: 
                   25864:     <p>Act as if a start tag token with the tag name "head" and no
                   25865:     attributes had been seen, then reprocess the current token.</p>
                   25866: 
                   25867:    </dd>
                   25868: 
                   25869:    <dt>Any other end tag</dt>
                   25870:    <dd>
                   25871: 
                   25872:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   25873: 
                   25874:    </dd>
                   25875: 
                   25876:    <dt>Anything else</dt>
                   25877:    <dd>
                   25878: 
                   25879:     <p>Act as if a start tag token with the tag name "head" and no
                   25880:     attributes had been seen, then reprocess the current
                   25881:     token.</p>
                   25882: 
                   25883:    </dd>
                   25884: 
                   25885:   </dl><h6 id="parsing-main-inhead"><span class="secno">8.2.5.4.4 </span>The "<dfn title="insertion mode: in head">in head</dfn>" insertion mode</h6>
                   25886: 
                   25887:   <p>When the user agent is to apply the rules for the "<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   25888: 
                   25889:   <dl class="switch"><dt>A character token that is one of U+0009 CHARACTER
                   25890:    TABULATION, "LF" (U+000A), "FF" (U+000C),
                   25891:    "CR" (U+000D), or U+0020 SPACE</dt>
                   25892:    <dd>
                   25893:     <p><a href="#insert-a-character" title="insert a character">Insert the character</a> into
                   25894:     the <a href="#current-node">current node</a>.</p>
                   25895:    </dd>
                   25896: 
                   25897:    <dt>A comment token</dt>
                   25898:    <dd>
                   25899:     <p>Append a <code><a href="infrastructure.html#comment-0">Comment</a></code> node to the <a href="#current-node">current
                   25900:     node</a> with the <code title="">data</code> attribute set to
                   25901:     the data given in the comment token.</p>
                   25902:    </dd>
                   25903: 
                   25904:    <dt>A DOCTYPE token</dt>
                   25905:    <dd>
                   25906:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   25907:    </dd>
                   25908: 
                   25909:    <dt>A start tag whose tag name is "html"</dt>
                   25910:    <dd>
                   25911:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" <a href="#insertion-mode">insertion
                   25912:     mode</a>.</p>
                   25913:    </dd>
                   25914: 
                   25915:    <dt>A start tag whose tag name is one of: "base", "basefont",
                   25916:    "bgsound", "command", "link"</dt>
                   25917:    <dd>
                   25918: 
                   25919:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token. Immediately
                   25920:     pop the <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
                   25921:     elements</a>.</p>
                   25922: 
                   25923:     <p><a href="#acknowledge-self-closing-flag" title="acknowledge self-closing flag">Acknowledge the
                   25924:     token's <i>self-closing flag</i></a>, if it is set.</p>
                   25925: 
                   25926:    </dd>
                   25927: 
                   25928:    <dt>A start tag whose tag name is "meta"</dt>
                   25929:    <dd>
                   25930: 
                   25931:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token. Immediately
                   25932:     pop the <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
                   25933:     elements</a>.</p>
                   25934: 
                   25935:     <p><a href="#acknowledge-self-closing-flag" title="acknowledge self-closing flag">Acknowledge the
                   25936:     token's <i>self-closing flag</i></a>, if it is set.</p>
                   25937: 
                   25938:     <p id="meta-charset-during-parse">If the element has a <code title="attr-meta-charset"><a href="the-meta-element.html#attr-meta-charset">charset</a></code> attribute, and its value
                   25939:     is either a supported <a href="infrastructure.html#ascii-compatible-character-encoding">ASCII-compatible character
                   25940:     encoding</a> or <a href="infrastructure.html#a-utf-16-encoding">a UTF-16 encoding</a>, and the <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a> is currently
                   25941:     <i>tentative</i>, then <a href="#change-the-encoding">change the encoding</a> to the
                   25942:     encoding given by the value of the <code title="attr-meta-charset"><a href="the-meta-element.html#attr-meta-charset">charset</a></code> attribute.</p>
                   25943: 
                   25944:     <p>Otherwise, if the element has an <code title="attr-meta-http-equiv"><a href="the-meta-element.html#attr-meta-http-equiv">http-equiv</a></code> attribute whose
                   25945:     value is an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the
                   25946:     string "<code title="">Content-Type</code>", and the element has a
                   25947:     <code title="attr-meta-content"><a href="the-meta-element.html#attr-meta-content">content</a></code> attribute, and
                   25948:     applying the <a href="urls.html#algorithm-for-extracting-an-encoding-from-a-meta-element">algorithm for extracting an encoding from a
                   25949:     <code>meta</code> element</a> to that attribute's value returns
                   25950:     a supported <a href="infrastructure.html#ascii-compatible-character-encoding">ASCII-compatible character encoding</a> or
                   25951:     <a href="infrastructure.html#a-utf-16-encoding">a UTF-16 encoding</a>, and the <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a> is currently
                   25952:     <i>tentative</i>, then <a href="#change-the-encoding">change the encoding</a> to the
                   25953:     extracted encoding.</p>
                   25954: 
                   25955:    </dd>
                   25956: 
                   25957:    <dt>A start tag whose tag name is "title"</dt>
                   25958:    <dd>
                   25959:     <p>Follow the <a href="#generic-rcdata-element-parsing-algorithm">generic RCDATA element parsing algorithm</a>.</p>
                   25960:    </dd>
                   25961: 
                   25962:    <dt>A start tag whose tag name is "noscript", if the <a href="#scripting-flag">scripting flag</a> is enabled</dt>
                   25963:    <dt>A start tag whose tag name is one of: "noframes", "style"</dt>
                   25964:    <dd>
                   25965:     <p>Follow the <a href="#generic-raw-text-element-parsing-algorithm">generic raw text element parsing algorithm</a>.</p>
                   25966:    </dd>
                   25967: 
                   25968:    <dt>A start tag whose tag name is "noscript", if the <a href="#scripting-flag">scripting flag</a> is disabled</dt>
                   25969:    <dd>
                   25970: 
                   25971:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   25972: 
                   25973:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inheadnoscript" title="insertion mode: in head noscript">in head
                   25974:     noscript</a>".</p>
                   25975: 
                   25976:    </dd>
                   25977: 
                   25978:    <dt id="scriptTag">A start tag whose tag name is "script"</dt>
                   25979:    <dd>
                   25980: 
                   25981:     <p>Run these steps:</p>
                   25982: 
                   25983:     <ol><li><p><a href="#create-an-element-for-the-token">Create an element for the token</a> in the
                   25984:      <a href="namespaces.html#html-namespace-0">HTML namespace</a>.</p></li>
                   25985: 
                   25986:      <li>
                   25987: 
                   25988:       <p>Mark the element as being <a href="the-script-element.html#parser-inserted">"parser-inserted"</a> and
                   25989:       unset the element's <a href="the-script-element.html#force-async">"force-async"</a> flag.</p>
                   25990: 
                   25991:       <p class="note">This ensures that, if the script is external,
                   25992:       any <code title="dom-document-write"><a href="dynamic-markup-insertion.html#dom-document-write">document.write()</a></code>
                   25993:       calls in the script will execute in-line, instead of blowing the
                   25994:       document away, as would happen in most other cases. It also
                   25995:       prevents the script from executing until the end tag is
                   25996:       seen.</p>
                   25997: 
                   25998:      </li>
                   25999: 
                   26000:      <li><p>If the parser was originally created for the <a href="#html-fragment-parsing-algorithm">HTML
                   26001:      fragment parsing algorithm</a>, then mark the
                   26002:      <code><a href="the-script-element.html#the-script-element">script</a></code> element as <a href="the-script-element.html#already-started">"already
                   26003:      started"</a>. (<a href="#fragment-case">fragment case</a>)</p></li>
                   26004: 
                   26005:      <li><p>Append the new element to the <a href="#current-node">current node</a>
                   26006:      and push it onto the <a href="#stack-of-open-elements">stack of open
                   26007:      elements</a>.</p></li>
                   26008: 
                   26009:      <li><p>Switch the tokenizer to the <a href="#script-data-state">script data
                   26010:      state</a>.</p></li>
                   26011: 
                   26012:      <li><p>Let the <a href="#original-insertion-mode">original insertion mode</a> be the current
                   26013:      <a href="#insertion-mode">insertion mode</a>.</p>
                   26014: 
                   26015:      </li><li><p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-incdata" title="insertion mode: text">text</a>".</p></li>
                   26016: 
                   26017:     </ol></dd>
                   26018: 
                   26019:    <dt>An end tag whose tag name is "head"</dt>
                   26020:    <dd>
                   26021: 
                   26022:     <p>Pop the <a href="#current-node">current node</a> (which will be the
                   26023:     <code><a href="the-head-element.html#the-head-element">head</a></code> element) off the <a href="#stack-of-open-elements">stack of open
                   26024:     elements</a>.</p>
                   26025: 
                   26026:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#the-after-head-insertion-mode" title="insertion mode: after head">after head</a>".</p>
                   26027: 
                   26028:    </dd>
                   26029: 
                   26030:    <dt>An end tag whose tag name is one of: "body", "html", "br"</dt>
                   26031:    <dd>
                   26032:     <p>Act as described in the "anything else" entry below.</p>
                   26033:    </dd>
                   26034: 
                   26035:    <dt>A start tag whose tag name is "head"</dt>
                   26036:    <dt>Any other end tag</dt>
                   26037:    <dd>
                   26038:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   26039:    </dd>
                   26040: 
                   26041:    <dt>Anything else</dt>
                   26042:    <dd>
                   26043: 
                   26044:     <!-- can't get here with an EOF and a fragment case -->
                   26045: 
                   26046:     <p>Act as if an end tag token with the tag name "head" had
                   26047:     been seen, and reprocess the current token.</p>
                   26048: 
                   26049:    </dd>
                   26050: 
                   26051:   </dl><h6 id="parsing-main-inheadnoscript"><span class="secno">8.2.5.4.5 </span>The "<dfn title="insertion mode: in head noscript">in head noscript</dfn>" insertion mode</h6>
                   26052: 
                   26053:   <p>When the user agent is to apply the rules for the "<a href="#parsing-main-inheadnoscript" title="insertion mode: in head noscript">in head noscript</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   26054: 
                   26055:   <dl class="switch"><dt>A DOCTYPE token</dt>
                   26056:    <dd>
                   26057:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   26058:    </dd>
                   26059: 
                   26060:    <dt>A start tag whose tag name is "html"</dt>
                   26061:    <dd>
                   26062:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" <a href="#insertion-mode">insertion
                   26063:     mode</a>.</p>
                   26064:    </dd>
                   26065: 
                   26066:    <dt>An end tag whose tag name is "noscript"</dt>
                   26067:    <dd>
                   26068: 
                   26069:     <p>Pop the <a href="#current-node">current node</a> (which will be a
                   26070:     <code><a href="the-noscript-element.html#the-noscript-element">noscript</a></code> element) from the <a href="#stack-of-open-elements">stack of open
                   26071:     elements</a>; the new <a href="#current-node">current node</a> will be a
                   26072:     <code><a href="the-head-element.html#the-head-element">head</a></code> element.</p>
                   26073: 
                   26074:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>".</p>
                   26075: 
                   26076:    </dd>
                   26077: 
                   26078:    <dt>A character token that is one of U+0009 CHARACTER
                   26079:    TABULATION, "LF" (U+000A), "FF" (U+000C),
                   26080:    "CR" (U+000D), or U+0020 SPACE</dt>
                   26081:    <dt>A comment token</dt>
                   26082:    <dt>A start tag whose tag name is one of: "basefont", "bgsound",
                   26083:    "link", "meta", "noframes", "style"</dt>
                   26084:    <dd>
                   26085:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>" <a href="#insertion-mode">insertion
                   26086:     mode</a>.</p>
                   26087:    </dd>
                   26088: 
                   26089:    <dt>An end tag whose tag name is "br"</dt>
                   26090:    <dd>
                   26091:     <p>Act as described in the "anything else" entry below.</p>
                   26092:    </dd>
                   26093: 
                   26094:    <dt>A start tag whose tag name is one of: "head", "noscript"</dt>
                   26095:    <dt>Any other end tag</dt>
                   26096:    <dd>
                   26097:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   26098:    </dd>
                   26099: 
                   26100:    <dt>Anything else</dt>
                   26101:    <dd>
                   26102: 
                   26103:     <!-- can't get here with an EOF and a fragment case -->
                   26104: 
                   26105:     <p><a href="#parse-error">Parse error</a>. Act as if an end tag with the tag
                   26106:     name "noscript" had been seen and reprocess the current
                   26107:     token.</p>
                   26108: 
                   26109:    </dd>
                   26110: 
                   26111:   </dl><h6 id="the-after-head-insertion-mode"><span class="secno">8.2.5.4.6 </span>The "<dfn title="insertion mode: after head">after head</dfn>" insertion mode</h6>
                   26112: 
                   26113:   <p>When the user agent is to apply the rules for the "<a href="#the-after-head-insertion-mode" title="insertion mode: after head">after head</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   26114: 
                   26115:   <dl class="switch"><dt>A character token that is one of U+0009 CHARACTER
                   26116:    TABULATION, "LF" (U+000A), "FF" (U+000C),
                   26117:    "CR" (U+000D), or U+0020 SPACE</dt>
                   26118:    <dd>
                   26119:     <p><a href="#insert-a-character" title="insert a character">Insert the character</a> into
                   26120:     the <a href="#current-node">current node</a>.</p>
                   26121:    </dd>
                   26122: 
                   26123:    <dt>A comment token</dt>
                   26124:    <dd>
                   26125:     <p>Append a <code><a href="infrastructure.html#comment-0">Comment</a></code> node to the <a href="#current-node">current
                   26126:     node</a> with the <code title="">data</code> attribute set to
                   26127:     the data given in the comment token.</p>
                   26128:    </dd>
                   26129: 
                   26130:    <dt>A DOCTYPE token</dt>
                   26131:    <dd>
                   26132:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   26133:    </dd>
                   26134: 
                   26135:    <dt>A start tag whose tag name is "html"</dt>
                   26136:    <dd>
                   26137:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" <a href="#insertion-mode">insertion
                   26138:     mode</a>.</p>
                   26139:    </dd>
                   26140: 
                   26141:    <dt>A start tag whose tag name is "body"</dt>
                   26142:    <dd>
                   26143: 
                   26144:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   26145: 
                   26146:     <p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok".</p>
                   26147: 
                   26148:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>".</p>
                   26149: 
                   26150:    </dd>
                   26151: 
                   26152:    <dt>A start tag whose tag name is "frameset"</dt>
                   26153:    <dd>
                   26154: 
                   26155:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   26156: 
                   26157:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inframeset" title="insertion mode: in frameset">in frameset</a>".</p>
                   26158: 
                   26159:    </dd>
                   26160: 
                   26161:    <dt>A start tag token whose tag name is one of: "base", "basefont",
                   26162:    "bgsound", "link", "meta", "noframes", "script", "style",
                   26163:    "title"</dt>
                   26164:    <dd>
                   26165: 
                   26166:     <p><a href="#parse-error">Parse error</a>.</p>
                   26167: 
                   26168:     <p>Push the node pointed to by the <a href="#head-element-pointer"><code title="">head</code> element pointer</a> onto the
                   26169:     <a href="#stack-of-open-elements">stack of open elements</a>.</p>
                   26170: 
                   26171:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>" <a href="#insertion-mode">insertion
                   26172:     mode</a>.</p>
                   26173: 
                   26174:     <p>Remove the node pointed to by the <a href="#head-element-pointer"><code title="">head</code> element pointer</a> from the <a href="#stack-of-open-elements">stack
                   26175:     of open elements</a>.</p>
                   26176: 
                   26177:     <p class="note">The <a href="#head-element-pointer"><code title="">head</code> element
                   26178:     pointer</a> cannot be null at this point.</p>
                   26179: 
                   26180:    </dd>
                   26181: 
                   26182:    <dt>An end tag whose tag name is one of: "body", "html", "br"</dt>
                   26183:    <dd>
                   26184:     <p>Act as described in the "anything else" entry below.</p>
                   26185:    </dd>
                   26186: 
                   26187:    <dt>A start tag whose tag name is "head"</dt>
                   26188:    <dt>Any other end tag</dt>
                   26189:    <dd>
                   26190:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   26191:    </dd>
                   26192: 
                   26193:    <dt>Anything else</dt>
                   26194:    <dd>
                   26195:     <p>Act as if a start tag token with the tag name "body" and no
                   26196:     attributes had been seen, then set the <a href="#frameset-ok-flag">frameset-ok
                   26197:     flag</a> back to "ok", and then reprocess the current
                   26198:     token.</p>
                   26199:    </dd>
                   26200: 
                   26201:   </dl><h6 id="parsing-main-inbody"><span class="secno">8.2.5.4.7 </span>The "<dfn title="insertion mode: in body">in body</dfn>" insertion mode</h6>
                   26202: 
                   26203:   <p>When the user agent is to apply the rules for the "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   26204: 
                   26205:   <dl class="switch"><dt>A character token that is U+0000 NULL</dt>
                   26206:    <dd>
                   26207: 
                   26208:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   26209: 
                   26210:     <!-- The D-Link DSL-G604T ADSL router has a zero byte in its
                   26211:          configuration UI before a <frameset>, which is why U+0000 is
                   26212:          special-cased here.
                   26213:          refs: https://bugzilla.mozilla.org/show_bug.cgi?id=563526
                   26214:                http://www.w3.org/Bugs/Public/show_bug.cgi?id=9659
                   26215:     -->
                   26216: 
                   26217:    </dd>
                   26218: 
                   26219:    <dt>A character token that is one of U+0009 CHARACTER TABULATION,
                   26220:    "LF" (U+000A), "FF" (U+000C), "CR" (U+000D), or U+0020 SPACE</dt>
                   26221:    <dd>
                   26222: 
                   26223:     <p><a href="#reconstruct-the-active-formatting-elements">Reconstruct the active formatting elements</a>, if
                   26224:     any.</p>
                   26225: 
                   26226:     <p><a href="#insert-a-character" title="insert a character">Insert the token's
                   26227:     character</a> into the <a href="#current-node">current node</a>.</p>
                   26228: 
                   26229:    </dd>
                   26230: 
                   26231:    <dt>Any other character token</dt>
                   26232:    <dd>
                   26233: 
                   26234:     <p><a href="#reconstruct-the-active-formatting-elements">Reconstruct the active formatting elements</a>, if
                   26235:     any.</p>
                   26236: 
                   26237:     <p><a href="#insert-a-character" title="insert a character">Insert the token's
                   26238:     character</a> into the <a href="#current-node">current node</a>.</p>
                   26239: 
                   26240:     <p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok".</p>
                   26241: 
                   26242:    </dd>
                   26243: 
                   26244:    <dt>A comment token</dt>
                   26245:    <dd>
                   26246:     <p>Append a <code><a href="infrastructure.html#comment-0">Comment</a></code> node to the <a href="#current-node">current
                   26247:     node</a> with the <code title="">data</code> attribute set to
                   26248:     the data given in the comment token.</p>
                   26249:    </dd>
                   26250: 
                   26251:    <dt>A DOCTYPE token</dt>
                   26252:    <dd>
                   26253:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   26254:    </dd>
                   26255: 
                   26256:    <dt>A start tag whose tag name is "html"</dt>
                   26257:    <dd>
                   26258:     <p><a href="#parse-error">Parse error</a>. For each attribute on the token,
                   26259:     check to see if the attribute is already present on the top
                   26260:     element of the <a href="#stack-of-open-elements">stack of open elements</a>. If it is not,
                   26261:     add the attribute and its corresponding value to that element.</p>
                   26262:    </dd>
                   26263: 
                   26264:    <dt>A start tag token whose tag name is one of: "base", "basefont",
                   26265:    "bgsound", "command", "link", "meta", "noframes", "script",
                   26266:    "style", "title"</dt>
                   26267:    <dd>
                   26268:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>" <a href="#insertion-mode">insertion
                   26269:     mode</a>.</p>
                   26270:    </dd>
                   26271: 
                   26272:    <dt>A start tag whose tag name is "body"</dt>
                   26273:    <dd>
                   26274: 
                   26275:     <p><a href="#parse-error">Parse error</a>.</p>
                   26276: 
                   26277:     <p>If the second element on the <a href="#stack-of-open-elements">stack of open
                   26278:     elements</a> is not a <code><a href="the-body-element.html#the-body-element">body</a></code> element, or, if the
                   26279:     <a href="#stack-of-open-elements">stack of open elements</a> has only one node on it,
                   26280:     then ignore the token. (<a href="#fragment-case">fragment case</a>)</p>
                   26281: 
                   26282:     <p>Otherwise, set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok";
                   26283:     then, for each attribute on the token, check to see if the
                   26284:     attribute is already present on the <code><a href="the-body-element.html#the-body-element">body</a></code> element (the
                   26285:     second element) on the <a href="#stack-of-open-elements">stack of open elements</a>, and if
                   26286:     it is not, add the attribute and its corresponding value to that
                   26287:     element.</p>
                   26288: 
                   26289:    </dd>
                   26290: 
                   26291:    <dt>A start tag whose tag name is "frameset"</dt>
                   26292:    <dd>
                   26293: 
                   26294:     <p><a href="#parse-error">Parse error</a>.</p>
                   26295: 
                   26296:     <p>If the second element on the <a href="#stack-of-open-elements">stack of open
                   26297:     elements</a> is not a <code><a href="the-body-element.html#the-body-element">body</a></code> element, or, if the
                   26298:     <a href="#stack-of-open-elements">stack of open elements</a> has only one node on it,
                   26299:     then ignore the token. (<a href="#fragment-case">fragment case</a>)</p>
                   26300: 
                   26301:     <p>If the <a href="#frameset-ok-flag">frameset-ok flag</a> is set to "not ok", ignore
                   26302:     the token.</p>
                   26303: 
                   26304:     <p>Otherwise, run the following steps:</p>
                   26305: 
                   26306:     <ol><li><p>Remove the second element on the <a href="#stack-of-open-elements">stack of open
                   26307:      elements</a> from its parent node, if it has one.</p></li>
                   26308: 
                   26309:      <li><p>Pop all the nodes from the bottom of the <a href="#stack-of-open-elements">stack of
                   26310:      open elements</a>, from the <a href="#current-node">current node</a> up to,
                   26311:      but not including, the root <code><a href="the-html-element.html#the-html-element">html</a></code> element.</p>
                   26312: 
                   26313:      </li><li><p><a href="#insert-an-html-element">Insert an HTML element</a> for the
                   26314:      token.</p></li>
                   26315: 
                   26316:      <li><p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inframeset" title="insertion mode: in frameset">in frameset</a>".</p>
                   26317: 
                   26318:     </li></ol></dd>
                   26319: 
                   26320:    <dt>An end-of-file token</dt>
                   26321:    <dd>
                   26322: 
                   26323:     <p>If there is a node in the <a href="#stack-of-open-elements">stack of open elements</a>
                   26324:     that is not either a <code><a href="the-dd-element.html#the-dd-element">dd</a></code> element, a <code><a href="the-dt-element.html#the-dt-element">dt</a></code>
                   26325:     element, an <code><a href="the-li-element.html#the-li-element">li</a></code> element, a <code><a href="the-p-element.html#the-p-element">p</a></code> element, a
                   26326:     <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code> element, a <code><a href="the-td-element.html#the-td-element">td</a></code> element, a
                   26327:     <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code> element, a <code><a href="the-th-element.html#the-th-element">th</a></code> element, a
                   26328:     <code><a href="the-thead-element.html#the-thead-element">thead</a></code> element, a <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element, the
                   26329:     <code><a href="the-body-element.html#the-body-element">body</a></code> element, or the <code><a href="the-html-element.html#the-html-element">html</a></code> element, then
                   26330:     this is a <a href="#parse-error">parse error</a>.</p> <!-- (some of those are
                   26331:     fragment cases) -->
                   26332: 
                   26333:     <p><a href="#stop-parsing">Stop parsing</a>.</p>
                   26334: 
                   26335:    </dd>
                   26336: 
                   26337:    <dt>An end tag whose tag name is "body"</dt>
                   26338:    <dd>
                   26339: 
                   26340:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-scope" title="has an element in scope">have a <code>body</code> element
                   26341:     in scope</a>, this is a <a href="#parse-error">parse error</a>; ignore the
                   26342:     token.</p>
                   26343: 
                   26344:     <!-- if we get here, the insertion mode here is forcibly "in
                   26345:     body". -->
                   26346: 
                   26347:     <p>Otherwise, if there is a node in the <a href="#stack-of-open-elements">stack of open
                   26348:     elements</a> that is not either a <code><a href="the-dd-element.html#the-dd-element">dd</a></code> element, a
                   26349:     <code><a href="the-dt-element.html#the-dt-element">dt</a></code> element, an <code><a href="the-li-element.html#the-li-element">li</a></code> element, an
                   26350:     <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code> element, an <code><a href="the-option-element.html#the-option-element">option</a></code> element, a
                   26351:     <code><a href="the-p-element.html#the-p-element">p</a></code> element, an <code><a href="the-rp-element.html#the-rp-element">rp</a></code> element, an
                   26352:     <code><a href="the-rt-element.html#the-rt-element">rt</a></code> element, a <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code> element, a
                   26353:     <code><a href="the-td-element.html#the-td-element">td</a></code> element, a <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code> element, a
                   26354:     <code><a href="the-th-element.html#the-th-element">th</a></code> element, a <code><a href="the-thead-element.html#the-thead-element">thead</a></code> element, a
                   26355:     <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element, the <code><a href="the-body-element.html#the-body-element">body</a></code> element, or the
                   26356:     <code><a href="the-html-element.html#the-html-element">html</a></code> element, then this is a <a href="#parse-error">parse
                   26357:     error</a>.</p> <!-- (some of those are fragment cases, e.g. for
                   26358:     <tbody> you'd have hit the first paragraph since the <body>
                   26359:     wouldn't be in scope, unless it was a fragment case) -->
                   26360: 
                   26361:     <!-- If we ever change the frameset-ok flag to an insertion mode,
                   26362:     then we'd have to somehow keep track of its state when we switch
                   26363:     to after-body. -->
                   26364: 
                   26365:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-afterbody" title="insertion mode: after body">after body</a>".</p>
                   26366: 
                   26367:    </dd>
                   26368: 
                   26369:    <dt>An end tag whose tag name is "html"</dt>
                   26370:    <dd>
                   26371: 
                   26372:     <p>Act as if an end tag with tag name "body" had been seen,
                   26373:     then, if that token wasn't ignored, reprocess the current
                   26374:     token.</p>
                   26375: 
                   26376:    </dd>
                   26377: 
                   26378:    <!-- start tags for non-phrasing flow content elements -->
                   26379: 
                   26380:    <!-- the normal ones -->
                   26381:    <dt>A start tag whose tag name is one of: "address", "article",
                   26382:    "aside", "blockquote", "center", "details", "dialog", "dir", "div",
                   26383:    "dl", "fieldset", "figcaption", "figure", "footer", "header",
                   26384:    "hgroup", "menu", "nav", "ol", "p", "section", "summary", "ul"</dt>
                   26385:    <dd>
                   26386: 
                   26387:     <!-- As of May 2008 this doesn't match any browser exactly, but is
                   26388:     as close to what IE does as I can get without doing the non-tree
                   26389:     DOM nonsense, and thus should actually afford better compatibility
                   26390:     when implemented by the other browsers. -->
                   26391: 
                   26392:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> <a href="#has-an-element-in-button-scope" title="has an
                   26393:     element in button scope">has a <code>p</code> element in button
                   26394:     scope</a>, then act as if an end tag with the tag name "p" had
                   26395:     been seen.</p>
                   26396: 
                   26397:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   26398: 
                   26399:    </dd>
                   26400: 
                   26401:    <!-- as normal, but close h1-h6 if it's the current node -->
                   26402:    <dt>A start tag whose tag name is one of: "h1", "h2", "h3", "h4",
                   26403:    "h5", "h6"</dt>
                   26404:    <dd>
                   26405: 
                   26406:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> <a href="#has-an-element-in-button-scope" title="has
                   26407:     an element in button scope">has a <code>p</code> element in button
                   26408:     scope</a>, then act as if an end tag with the tag name
                   26409:     "p" had been seen.</p>
                   26410: 
                   26411:     <p>If the <a href="#current-node">current node</a> is an element whose tag name
                   26412:     is one of "h1", "h2", "h3", "h4", "h5", or "h6", then this is a
                   26413:     <a href="#parse-error">parse error</a>; pop the <a href="#current-node">current node</a> off
                   26414:     the <a href="#stack-of-open-elements">stack of open elements</a>.</p>
                   26415:     <!-- See https://bugs.webkit.org/show_bug.cgi?id=12646 -->
                   26416: 
                   26417:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   26418: 
                   26419:    </dd>
                   26420: 
                   26421:    <!-- as normal, but drops leading newline -->
                   26422:    <dt>A start tag whose tag name is one of: "pre", "listing"</dt>
                   26423:    <dd>
                   26424: 
                   26425:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> <a href="#has-an-element-in-button-scope" title="has
                   26426:     an element in button scope">has a <code>p</code> element in button
                   26427:     scope</a>, then act as if an end tag with the tag name
                   26428:     "p" had been seen.</p>
                   26429: 
                   26430:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   26431: 
                   26432:     <p>If the next token is a "LF" (U+000A) character
                   26433:     token, then ignore that token and move on to the next
                   26434:     one. (Newlines at the start of <code><a href="the-pre-element.html#the-pre-element">pre</a></code> blocks are
                   26435:     ignored as an authoring convenience.)</p>
                   26436: 
                   26437:     <!-- <pre>[CR]X will eat the [CR], <pre>&#x10;X will eat the
                   26438:     &#x10;, but <pre>&#x13;X will not eat the &#x13;. -->
                   26439: 
                   26440:     <p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok".</p>
                   26441: 
                   26442:    </dd>
                   26443: 
                   26444:    <!-- as normal, but interacts with the form element pointer -->
                   26445:    <dt>A start tag whose tag name is "form"</dt>
                   26446:    <dd>
                   26447: 
                   26448:     <p>If the <a href="#form-element-pointer"><code title="form">form</code> element
                   26449:     pointer</a> is not null, then this is a <a href="#parse-error">parse
                   26450:     error</a>; ignore the token.</p>
                   26451: 
                   26452:     <p>Otherwise:</p>
                   26453: 
                   26454:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> <a href="#has-an-element-in-button-scope" title="has
                   26455:     an element in button scope">has a <code>p</code> element in button
                   26456:     scope</a>, then act as if an end tag with the tag name
                   26457:     "p" had been seen.</p>
                   26458: 
                   26459:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token, and set the
                   26460:     <a href="#form-element-pointer"><code title="form">form</code> element pointer</a> to
                   26461:     point to the element created.</p>
                   26462: 
                   26463:    </dd>
                   26464: 
                   26465:    <!-- as normal, but imply </li> when there's another <li> open in weird cases -->
                   26466:    <dt>A start tag whose tag name is "li"</dt>
                   26467:    <dd>
                   26468: 
                   26469:     <p>Run these steps:</p>
                   26470: 
                   26471:     <ol><li><p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok".</p></li>
                   26472: 
                   26473:      <li><p>Initialize <var title="">node</var> to be the <a href="#current-node">current
                   26474:      node</a> (the bottommost node of the stack).</p></li>
                   26475: 
                   26476:      <li><p><i>Loop</i>: If <var title="">node</var> is an
                   26477:      <code><a href="the-li-element.html#the-li-element">li</a></code> element, then act as if an end tag with the tag
                   26478:      name "li" had been seen, then jump to the last step.</p></li>
                   26479: 
                   26480:      <li><p>If <var title="">node</var> is in the <a href="#special">special</a>
                   26481:      category, but is not an <code><a href="the-address-element.html#the-address-element">address</a></code>, <code><a href="the-div-element.html#the-div-element">div</a></code>,
                   26482:      or <code><a href="the-p-element.html#the-p-element">p</a></code> element, then jump to the last step.</p></li>
                   26483:      <!-- an element <foo> is in this list if the following markup:
                   26484: 
                   26485:          <!DOCTYPE html><body><ol><li><foo><li>
                   26486: 
                   26487:      ...results in the second <li> not being (in any way) a descendant
                   26488:      of the first <li>, or if <foo> is a formatting element that gets
                   26489:      reopened later. -->
                   26490: 
                   26491:      <li><p>Otherwise, set <var title="">node</var> to the previous
                   26492:      entry in the <a href="#stack-of-open-elements">stack of open elements</a> and return to
                   26493:      the step labeled <i>loop</i>.</p></li>
                   26494: 
                   26495:      <li>
                   26496: 
                   26497:       <p>This is the last step.</p>
                   26498: 
                   26499:       <p>If the <a href="#stack-of-open-elements">stack of open elements</a> <a href="#has-an-element-in-button-scope" title="has
                   26500:       an element in button scope">has a <code>p</code> element in button
                   26501:       scope</a>, then act as if an end tag with the tag name
                   26502:       "p" had been seen.</p>
                   26503: 
                   26504:       <p>Finally, <a href="#insert-an-html-element">insert an HTML element</a> for the
                   26505:       token.</p>
                   26506: 
                   26507:      </li>
                   26508: 
                   26509:     </ol></dd>
                   26510: 
                   26511:    <!-- as normal, but imply </dt> or </dd> when there's another <dt> or <dd> open in weird cases  -->
                   26512:    <dt>A start tag whose tag name is one of: "dd", "dt"</dt>
                   26513:    <dd>
                   26514: 
                   26515:     <p>Run these steps:</p>
                   26516: 
                   26517:     <ol><li><p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok".</p></li>
                   26518: 
                   26519:      <li><p>Initialize <var title="">node</var> to be the <a href="#current-node">current
                   26520:      node</a> (the bottommost node of the stack).</p></li>
                   26521: 
                   26522:      <li><p><i>Loop</i>: If <var title="">node</var> is a
                   26523:      <code><a href="the-dd-element.html#the-dd-element">dd</a></code> or <code><a href="the-dt-element.html#the-dt-element">dt</a></code> element, then act as if an end
                   26524:      tag with the same tag name as <var title="">node</var> had been
                   26525:      seen, then jump to the last step.</p></li>
                   26526: 
                   26527:      <li><p>If <var title="">node</var> is in the <a href="#special">special</a>
                   26528:      category, but is not an <code><a href="the-address-element.html#the-address-element">address</a></code>, <code><a href="the-div-element.html#the-div-element">div</a></code>,
                   26529:      or <code><a href="the-p-element.html#the-p-element">p</a></code> element, then jump to the last step.</p></li>
                   26530:      <!-- an element <foo> is in this list if the following markup:
                   26531: 
                   26532:          <!DOCTYPE html><body><dl><dt><foo><dt>
                   26533: 
                   26534:      ...results in the second <dt> not being (in any way) a descendant
                   26535:      of the first <dt>, or if <foo> is a formatting element that gets
                   26536:      reopened later. -->
                   26537: 
                   26538:      <li><p>Otherwise, set <var title="">node</var> to the previous
                   26539:      entry in the <a href="#stack-of-open-elements">stack of open elements</a> and return to
                   26540:      the step labeled <i>loop</i>.</p></li>
                   26541: 
                   26542:      <li>
                   26543: 
                   26544:       <p>This is the last step.</p>
                   26545: 
                   26546:       <p>If the <a href="#stack-of-open-elements">stack of open elements</a> <a href="#has-an-element-in-button-scope" title="has
                   26547:       an element in button scope">has a <code>p</code> element in button
                   26548:       scope</a>, then act as if an end tag with the tag name
                   26549:       "p" had been seen.</p>
                   26550: 
                   26551:       <p>Finally, <a href="#insert-an-html-element">insert an HTML element</a> for the
                   26552:       token.</p>
                   26553: 
                   26554:      </li>
                   26555: 
                   26556:     </ol></dd>
                   26557: 
                   26558:    <!-- same as normal, but effectively ends parsing -->
                   26559:    <dt>A start tag whose tag name is "plaintext"</dt>
                   26560:    <dd>
                   26561: 
                   26562:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> <a href="#has-an-element-in-button-scope" title="has
                   26563:     an element in button scope">has a <code>p</code> element in button
                   26564:     scope</a>, then act as if an end tag with the tag name
                   26565:     "p" had been seen.</p>
                   26566: 
                   26567:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   26568: 
                   26569:     <p>Switch the tokenizer to the <a href="#plaintext-state">PLAINTEXT state</a>.</p>
                   26570: 
                   26571:     <p class="note">Once a start tag with the tag name "plaintext" has
                   26572:     been seen, that will be the last token ever seen other than
                   26573:     character tokens (and the end-of-file token), because there is no
                   26574:     way to switch out of the <a href="#plaintext-state">PLAINTEXT state</a>.</p>
                   26575: 
                   26576:    </dd>
                   26577: 
                   26578:    <!-- button is a hybrid -->
                   26579:    <dt>A start tag whose tag name is "button"</dt>
                   26580:    <dd>
                   26581: 
                   26582:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> <a href="#has-an-element-in-scope" title="has
                   26583:     an element in scope">has a <code>button</code> element in
                   26584:     scope</a>, then this is a <a href="#parse-error">parse error</a>;
                   26585:     act as if an end tag with the tag name "button" had been seen,
                   26586:     then reprocess the token.</p>
                   26587: 
                   26588:     <p>Otherwise:</p>
                   26589: 
                   26590:     <p><a href="#reconstruct-the-active-formatting-elements">Reconstruct the active formatting elements</a>, if
                   26591:     any.</p>
                   26592: 
                   26593:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   26594: 
                   26595:     <p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok".</p>
                   26596: 
                   26597:    </dd>
                   26598: 
                   26599:    <!-- end tags for non-phrasing flow content elements (and button) -->
                   26600: 
                   26601:    <!-- the normal ones -->
                   26602:    <dt>An end tag whose tag name is one of: "address", "article",
                   26603:    "aside", "blockquote", "button", "center", "details", "dialog",
                   26604:    "dir", "div", "dl", "fieldset", "figcaption", "figure", "footer",
                   26605:    "header", "hgroup", "listing", "menu", "nav", "ol", "pre",
                   26606:    "section", "summary", "ul"</dt>
                   26607:    <dd>
                   26608: 
                   26609:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-scope" title="has an element in scope">have an element in scope</a>
                   26610:     with the same tag name as that of the token, then this is a
                   26611:     <a href="#parse-error">parse error</a>; ignore the token.</p>
                   26612: 
                   26613:     <p>Otherwise, run these steps:</p>
                   26614: 
                   26615:     <ol><li><p><a href="#generate-implied-end-tags">Generate implied end tags</a>.</p></li>
                   26616: 
                   26617:      <li><p>If the <a href="#current-node">current node</a> is not an element with
                   26618:      the same tag name as that of the token, then this is a
                   26619:      <a href="#parse-error">parse error</a>.</p></li>
                   26620: 
                   26621:      <li><p>Pop elements from the <a href="#stack-of-open-elements">stack of open elements</a>
                   26622:      until an element with the same tag name as the token has been
                   26623:      popped from the stack.</p></li>
                   26624: 
                   26625:     </ol></dd>
                   26626: 
                   26627:    <!-- removes the form element pointer instead of the matching node -->
                   26628:    <dt>An end tag whose tag name is "form"</dt>
                   26629:    <dd>
                   26630: 
                   26631:     <p>Let <var title="">node</var> be the element that the
                   26632:     <a href="#form-element-pointer"><code title="">form</code> element pointer</a> is set
                   26633:     to.</p>
                   26634: 
                   26635:     <p>Set the <a href="#form-element-pointer"><code title="">form</code> element pointer</a>
                   26636:     to null.</p>
                   26637: 
                   26638:     <p>If <var title="">node</var> is null or the <a href="#stack-of-open-elements">stack of open
                   26639:     elements</a> does not <a href="#has-an-element-in-scope" title="has an element in
                   26640:     scope">have <var title="">node</var> in scope</a>, then this is
                   26641:     a <a href="#parse-error">parse error</a>; ignore the token.</p>
                   26642: 
                   26643:     <p>Otherwise, run these steps:</p>
                   26644: 
                   26645:     <ol><li><p><a href="#generate-implied-end-tags">Generate implied end tags</a>.</p></li>
                   26646: 
                   26647:      <li><p>If the <a href="#current-node">current node</a> is not <var title="">node</var>, then this is a <a href="#parse-error">parse
                   26648:      error</a>.</p></li>
                   26649: 
                   26650:      <li><p>Remove <var title="">node</var> from the <a href="#stack-of-open-elements">stack of
                   26651:      open elements</a>.</p></li>
                   26652: 
                   26653:     </ol></dd>
                   26654: 
                   26655:    <!-- as normal, except </p> implies <p> if there's no <p> in scope, and needs care as the elements have optional tags -->
                   26656:    <dt>An end tag whose tag name is "p"</dt>
                   26657:    <dd>
                   26658: 
                   26659:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-button-scope" title="has an element in button scope">have an element in button
                   26660:     scope</a> with the same tag name as that of the token, then this
                   26661:     is a <a href="#parse-error">parse error</a>; act as if a start tag with the tag
                   26662:     name "p" had been seen, then reprocess the current token.</p>
                   26663: 
                   26664:     <p>Otherwise, run these steps:</p>
                   26665: 
                   26666:     <ol><li><p><a href="#generate-implied-end-tags">Generate implied end tags</a>, except
                   26667:      for elements with the same tag name as the token.</p></li>
                   26668: 
                   26669:      <li><p>If the <a href="#current-node">current node</a> is not an element with
                   26670:      the same tag name as that of the token, then this is a
                   26671:      <a href="#parse-error">parse error</a>.</p></li>
                   26672: 
                   26673:      <li><p>Pop elements from the <a href="#stack-of-open-elements">stack of open elements</a>
                   26674:      until an element with the same tag name as the token has been
                   26675:      popped from the stack.</p></li>
                   26676: 
                   26677:     </ol></dd>
                   26678: 
                   26679:    <!-- as normal, but needs care as the elements have optional tags, and are further scoped by <ol>/<ul> -->
                   26680:    <dt>An end tag whose tag name is "li"</dt>
                   26681:    <dd>
                   26682: 
                   26683:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-list-item-scope" title="has an element in list item scope">have an element in list
                   26684:     item scope</a> with the same tag name as that of the token,
                   26685:     then this is a <a href="#parse-error">parse error</a>; ignore the token.</p>
                   26686: 
                   26687:     <p>Otherwise, run these steps:</p>
                   26688: 
                   26689:     <ol><li><p><a href="#generate-implied-end-tags">Generate implied end tags</a>, except
                   26690:      for elements with the same tag name as the token.</p></li>
                   26691: 
                   26692:      <li><p>If the <a href="#current-node">current node</a> is not an element with
                   26693:      the same tag name as that of the token, then this is a
                   26694:      <a href="#parse-error">parse error</a>.</p></li>
                   26695: 
                   26696:      <li><p>Pop elements from the <a href="#stack-of-open-elements">stack of open elements</a>
                   26697:      until an element with the same tag name as the token has been
                   26698:      popped from the stack.</p></li>
                   26699: 
                   26700:     </ol></dd>
                   26701: 
                   26702:    <!-- as normal, but needs care as the elements have optional tags -->
                   26703:    <dt>An end tag whose tag name is one of: "dd", "dt"</dt>
                   26704:    <dd>
                   26705: 
                   26706:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-scope" title="has an element in scope">have an element in scope</a>
                   26707:     with the same tag name as that of the token, then this is a
                   26708:     <a href="#parse-error">parse error</a>; ignore the token.</p>
                   26709: 
                   26710:     <p>Otherwise, run these steps:</p>
                   26711: 
                   26712:     <ol><li><p><a href="#generate-implied-end-tags">Generate implied end tags</a>, except
                   26713:      for elements with the same tag name as the token.</p></li>
                   26714: 
                   26715:      <li><p>If the <a href="#current-node">current node</a> is not an element with
                   26716:      the same tag name as that of the token, then this is a
                   26717:      <a href="#parse-error">parse error</a>.</p></li>
                   26718: 
                   26719:      <li><p>Pop elements from the <a href="#stack-of-open-elements">stack of open elements</a>
                   26720:      until an element with the same tag name as the token has been
                   26721:      popped from the stack.</p></li>
                   26722: 
                   26723:     </ol></dd>
                   26724: 
                   26725:    <!-- as normal, except acts as a closer for any of the h1-h6 elements -->
                   26726:    <dt>An end tag whose tag name is one of: "h1", "h2", "h3", "h4", "h5", "h6"</dt>
                   26727:    <dd>
                   26728: 
                   26729:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-scope" title="has an element in scope">have an element in scope</a>
                   26730:     whose tag name is one of "h1", "h2", "h3", "h4", "h5", or "h6",
                   26731:     then this is a <a href="#parse-error">parse error</a>; ignore the token.</p>
                   26732: 
                   26733:     <p>Otherwise, run these steps:</p>
                   26734: 
                   26735:     <ol><li><p><a href="#generate-implied-end-tags">Generate implied end tags</a>.</p></li>
                   26736: 
                   26737:      <li><p>If the <a href="#current-node">current node</a> is not an element with
                   26738:      the same tag name as that of the token, then this is a
                   26739:      <a href="#parse-error">parse error</a>.</p></li>
                   26740: 
                   26741:      <li><p>Pop elements from the <a href="#stack-of-open-elements">stack of open elements</a>
                   26742:      until an element whose tag name is one of "h1", "h2", "h3", "h4",
                   26743:      "h5", or "h6" has been popped from the stack.</p></li>
                   26744: 
                   26745:     </ol></dd>
                   26746: 
                   26747:    <!-- see also applet/marquee/object lower down -->
                   26748: 
                   26749:    <dt>An end tag whose tag name is "sarcasm"</dt>
                   26750:    <dd>
                   26751:     <p>Take a deep breath, then act as described in the "any other end
                   26752:     tag" entry below.</p>
                   26753:    </dd>
                   26754: 
                   26755:    <!-- ADOPTION AGENCY ELEMENTS
                   26756:         Mozilla-only: bdo blink del ins sub sup q
                   26757:         Safari-only: code dfn kbd nobr samp var wbr
                   26758:         Both: a b big em font i s small strike strong tt u -->
                   26759: 
                   26760:    <dt>A start tag whose tag name is "a"</dt>
                   26761:    <dd>
                   26762: 
                   26763:     <p>If the <a href="#list-of-active-formatting-elements">list of active formatting elements</a>
                   26764:     contains an element whose tag name is "a" between the end of
                   26765:     the list and the last marker on the list (or the start of the
                   26766:     list if there is no marker on the list), then this is a
                   26767:     <a href="#parse-error">parse error</a>; act as if an end tag with the tag
                   26768:     name "a" had been seen, then remove that element from the
                   26769:     <a href="#list-of-active-formatting-elements">list of active formatting elements</a> and the
                   26770:     <a href="#stack-of-open-elements">stack of open elements</a> if the end tag didn't
                   26771:     already remove it (it might not have if the element is not
                   26772:     <a href="#has-an-element-in-table-scope" title="has an element in table scope">in table
                   26773:     scope</a>).</p>
                   26774: 
                   26775:     <p class="example">In the non-conforming stream
                   26776:     <code>&lt;a&#160;href="a"&gt;a&lt;table&gt;&lt;a&#160;href="b"&gt;b&lt;/table&gt;x</code>,
                   26777:     the first <code><a href="the-a-element.html#the-a-element">a</a></code> element would be closed upon seeing the
                   26778:     second one, and the "x" character would be inside a link to "b",
                   26779:     not to "a". This is despite the fact that the outer <code><a href="the-a-element.html#the-a-element">a</a></code>
                   26780:     element is not in table scope (meaning that a regular
                   26781:     <code><a href="the-a-element.html#the-a-element">&lt;/a&gt;</a></code> end tag at the start of the table wouldn't
                   26782:     close the outer <code><a href="the-a-element.html#the-a-element">a</a></code> element). The result is that the
                   26783:     two <code><a href="the-a-element.html#the-a-element">a</a></code> elements are indirectly nested inside each
                   26784:     other &#8212; non-conforming markup will often result in
                   26785:     non-conforming DOMs when parsed.</p>
                   26786: 
                   26787:     <p><a href="#reconstruct-the-active-formatting-elements">Reconstruct the active formatting elements</a>, if
                   26788:     any.</p>
                   26789: 
                   26790:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token. <a href="#push-onto-the-list-of-active-formatting-elements">Push
                   26791:     onto the list of active formatting elements</a> that
                   26792:     element.</p>
                   26793: 
                   26794:    </dd>
                   26795: 
                   26796:    <dt>A start tag whose tag name is one of: "b", "big", "code", "em",
                   26797:    "font", "i", "s", "small", "strike", "strong", "tt", "u"</dt>
                   26798:    <dd>
                   26799: 
                   26800:     <p><a href="#reconstruct-the-active-formatting-elements">Reconstruct the active formatting elements</a>, if
                   26801:     any.</p>
                   26802: 
                   26803:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token. <a href="#push-onto-the-list-of-active-formatting-elements">Push
                   26804:     onto the list of active formatting elements</a> that
                   26805:     element.</p>
                   26806: 
                   26807:    </dd>
                   26808: 
                   26809:    <dt>A start tag whose tag name is "nobr"</dt>
                   26810:    <dd>
                   26811: 
                   26812:     <p><a href="#reconstruct-the-active-formatting-elements">Reconstruct the active formatting elements</a>, if
                   26813:     any.</p>
                   26814: 
                   26815:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> <a href="#has-an-element-in-scope" title="has an
                   26816:     element in scope">has a <code>nobr</code> element in scope</a>,
                   26817:     then this is a <a href="#parse-error">parse error</a>; act as if an end tag with
                   26818:     the tag name "nobr" had been seen, then once again
                   26819:     <a href="#reconstruct-the-active-formatting-elements">reconstruct the active formatting elements</a>, if
                   26820:     any.</p>
                   26821: 
                   26822:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token. <a href="#push-onto-the-list-of-active-formatting-elements">Push
                   26823:     onto the list of active formatting elements</a> that
                   26824:     element.</p>
                   26825: 
                   26826:    </dd>
                   26827: 
                   26828:    <dt id="adoptionAgency">An end tag whose tag name is one of: "a",
                   26829:    "b", "big", "code", "em", "font", "i", "nobr", "s", "small",
                   26830:    "strike", "strong", "tt", "u"</dt>
                   26831:    <dd>
                   26832: 
                   26833:     <p>Run these steps:</p>
                   26834: 
                   26835:     <ol><li><p>Let <var title="">outer loop counter</var> be
                   26836:      zero.</p></li>
                   26837: 
                   26838:      <li><p><i>Outer loop</i>: If <var title="">outer loop
                   26839:      counter</var> is greater than or equal to eight, then abort these
                   26840:      steps.</p></li>
                   26841: 
                   26842:      <li><p>Increment <var title="">outer loop counter</var> by
                   26843:      one.</p></li>
                   26844: 
                   26845:      <li>
                   26846: 
                   26847:       <p>Let the <var title="">formatting element</var> be the last
                   26848:       element in the <a href="#list-of-active-formatting-elements">list of active formatting elements</a>
                   26849:       that:</p>
                   26850: 
                   26851:       <ul><li>is between the end of the list and the last scope
                   26852:        marker in the list, if any, or the start of the list
                   26853:        otherwise, and</li>
                   26854: 
                   26855:        <li>has the same tag name as the token.</li>
                   26856: 
                   26857:       </ul><p>If there is no such node, then abort these steps and instead
                   26858:       act as described in the "any other end tag" entry below.</p>
                   26859: 
                   26860:       <p>Otherwise, if there is such a node, but that node is not
                   26861:       in the <a href="#stack-of-open-elements">stack of open elements</a>, then this is a
                   26862:       <a href="#parse-error">parse error</a>; remove the element from the list,
                   26863:       and abort these steps.</p>
                   26864: 
                   26865:       <p>Otherwise, if there is such a node, and that node is also in
                   26866:       the <a href="#stack-of-open-elements">stack of open elements</a>, but the element is not
                   26867:       <a href="#has-an-element-in-scope" title="has an element in scope">in scope</a>, then this
                   26868:       is a <a href="#parse-error">parse error</a>; ignore the token, and abort these
                   26869:       steps.</p>
                   26870: 
                   26871:       <p>Otherwise, there is a <var title="">formatting
                   26872:       element</var> and that element is in <a href="#stack-of-open-elements" title="stack of
                   26873:       open elements">the stack</a> and is <a href="#has-an-element-in-scope" title="has an
                   26874:       element in scope">in scope</a>. If the element is not the
                   26875:       <a href="#current-node">current node</a>, this is a <a href="#parse-error">parse
                   26876:       error</a>. In any case, proceed with the algorithm as
                   26877:       written in the following steps.</p>
                   26878: 
                   26879:      </li>
                   26880: 
                   26881:      <li><p>Let the <var title="">furthest block</var> be the topmost
                   26882:      node in the <a href="#stack-of-open-elements">stack of open elements</a> that is lower in
                   26883:      the stack than the <var title="">formatting element</var>, and is
                   26884:      an element in the <a href="#special">special</a> category. There might not
                   26885:      be one.</p></li>
                   26886: 
                   26887:      <li><p>If there is no <var title="">furthest block</var>, then
                   26888:      the UA must first pop all the nodes from the bottom of the
                   26889:      <a href="#stack-of-open-elements">stack of open elements</a>, from the <a href="#current-node">current
                   26890:      node</a> up to and including the <var title="">formatting
                   26891:      element</var>, then remove the <var title="">formatting
                   26892:      element</var> from the <a href="#list-of-active-formatting-elements">list of active formatting
                   26893:      elements</a>, and finally abort these steps.</p></li>
                   26894: 
                   26895:      <li><p>Let the <var title="">common ancestor</var> be the element
                   26896:      immediately above the <var title="">formatting element</var> in the
                   26897:      <a href="#stack-of-open-elements">stack of open elements</a>.</p></li>
                   26898: 
                   26899:      <li><p>Let a bookmark note the position of the <var title="">formatting element</var> in the <a href="#list-of-active-formatting-elements">list of active
                   26900:      formatting elements</a> relative to the elements on either
                   26901:      side of it in the list.</p></li>
                   26902: 
                   26903:      <li>
                   26904: 
                   26905:       <p>Let <var title="">node</var> and <var title="">last node</var> be the
                   26906:       <var title="">furthest block</var>. Follow these steps:</p>
                   26907: 
                   26908:       <ol><li><p>Let <var title="">inner loop counter</var> be
                   26909:        zero.</p></li>
                   26910: 
                   26911:        <li><p><i>Inner loop</i>: If <var title="">inner loop
                   26912:        counter</var> is greater than or equal to three, then abort these
                   26913:        steps.</p></li>
                   26914: 
                   26915:        <li><p>Increment <var title="">inner loop counter</var> by
                   26916:        one.</p></li>
                   26917: 
                   26918:        <li>Let <var title="">node</var> be the element immediately
                   26919:        above <var title="">node</var> in the <a href="#stack-of-open-elements">stack of open
                   26920:        elements</a>, or if <var title="">node</var> is no longer in
                   26921:        the <a href="#stack-of-open-elements">stack of open elements</a> (e.g. because it got
                   26922:        removed by the next step), the element that was immediately
                   26923:        above <var title="">node</var> in the <a href="#stack-of-open-elements">stack of open
                   26924:        elements</a> before <var title="">node</var> was
                   26925:        removed.</li>
                   26926: 
                   26927:        <li>If <var title="">node</var> is not in the <a href="#list-of-active-formatting-elements">list of
                   26928:        active formatting elements</a>, then remove <var title="">node</var> from the <a href="#stack-of-open-elements">stack of open
                   26929:        elements</a> and then go back to the step labeled <i>inner
                   26930:        loop</i>.</li>
                   26931: 
                   26932:        <li>Otherwise, if <var title="">node</var> is the <var title="">formatting element</var>, then go to the next step
                   26933:        in the overall algorithm.</li>
                   26934: 
                   26935:        <li><a href="#create-an-element-for-the-token">Create an element for the token</a> for which the
                   26936:        element <var title="">node</var> was created, replace the entry
                   26937:        for <var title="">node</var> in the <a href="#list-of-active-formatting-elements">list of active
                   26938:        formatting elements</a> with an entry for the new element,
                   26939:        replace the entry for <var title="">node</var> in the
                   26940:        <a href="#stack-of-open-elements">stack of open elements</a> with an entry for the new
                   26941:        element, and let <var title="">node</var> be the new
                   26942:        element.</li>
                   26943: 
                   26944:        <li>If <var title="">last node</var> is the <var title="">furthest block</var>, then move the aforementioned
                   26945:        bookmark to be immediately after the new <var title="">node</var> in the <a href="#list-of-active-formatting-elements">list of active formatting
                   26946:        elements</a>.</li>
                   26947: 
                   26948:        <li>Insert <var title="">last node</var> into <var title="">node</var>, first removing it from its previous
                   26949:        parent node if any.</li>
                   26950: 
                   26951:        <li>Let <var title="">last node</var> be <var title="">node</var>.</li>
                   26952: 
                   26953:        <li>Return to the step labeled <i>inner loop</i>.</li>
                   26954: 
                   26955:       </ol></li>
                   26956: 
                   26957:      <li>
                   26958: 
                   26959:       <p>If the <var title="">common ancestor</var> node is a
                   26960:       <code><a href="the-table-element.html#the-table-element">table</a></code>, <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>,
                   26961:       <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, or <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element, then,
                   26962:       <a href="#foster-parent">foster parent</a> whatever <var title="">last
                   26963:       node</var> ended up being in the previous step, first removing
                   26964:       it from its previous parent node if any.</p>
                   26965: 
                   26966:       <p>Otherwise, append whatever <var title="">last node</var>
                   26967:       ended up being in the previous step to the <var title="">common
                   26968:       ancestor</var> node, first removing it from its previous parent
                   26969:       node if any.</p>
                   26970: 
                   26971:      </li>
                   26972: 
                   26973:      <li><p><a href="#create-an-element-for-the-token">Create an element for the token</a> for which the
                   26974:      <var title="">formatting element</var> was created.</p></li>
                   26975: 
                   26976:      <li><p>Take all of the child nodes of the <var title="">furthest
                   26977:      block</var> and append them to the element created in the last
                   26978:      step.</p></li>
                   26979: 
                   26980:      <li><p>Append that new element to the <var title="">furthest
                   26981:      block</var>.</p></li>
                   26982: 
                   26983:      <li><p>Remove the <var title="">formatting element</var> from the
                   26984:      <a href="#list-of-active-formatting-elements">list of active formatting elements</a>, and insert the
                   26985:      new element into the <a href="#list-of-active-formatting-elements">list of active formatting
                   26986:      elements</a> at the position of the aforementioned
                   26987:      bookmark.</p></li>
                   26988: 
                   26989:      <li><p>Remove the <var title="">formatting element</var> from the
                   26990:      <a href="#stack-of-open-elements">stack of open elements</a>, and insert the new element
                   26991:      into the <a href="#stack-of-open-elements">stack of open elements</a> immediately below
                   26992:      the position of the <var title="">furthest block</var> in that
                   26993:      stack.</p></li>
                   26994: 
                   26995:      <li><p>Jump back to the step labeled <i>outer loop</i>.</p></li>
                   26996: 
                   26997:     </ol><p class="note">Because of the way this algorithm causes elements
                   26998:     to change parents, it has been dubbed the "adoption agency
                   26999:     algorithm" (in contrast with other possible algorithms for dealing
                   27000:     with misnested content, which included the "incest algorithm", the
                   27001:     "secret affair algorithm", and the "Heisenberg algorithm").</p>
                   27002: 
                   27003:    </dd>
                   27004: 
                   27005:    <dt>A start tag token whose tag name is one of: "applet",
                   27006:    "marquee", "object"</dt>
                   27007:    <dd>
                   27008: 
                   27009:     <p><a href="#reconstruct-the-active-formatting-elements">Reconstruct the active formatting elements</a>, if
                   27010:     any.</p>
                   27011: 
                   27012:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   27013: 
                   27014:     <p>Insert a marker at the end of the <a href="#list-of-active-formatting-elements">list of active
                   27015:     formatting elements</a>.</p>
                   27016: 
                   27017:     <p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok".</p>
                   27018: 
                   27019:    </dd>
                   27020: 
                   27021:    <dt>An end tag token whose tag name is one of: "applet",
                   27022:    "marquee", "object"</dt>
                   27023:    <dd>
                   27024: 
                   27025:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-scope" title="has an element in scope">have an element in scope</a>
                   27026:     with the same tag name as that of the token, then this is a
                   27027:     <a href="#parse-error">parse error</a>; ignore the token.</p>
                   27028: 
                   27029:     <p>Otherwise, run these steps:</p>
                   27030: 
                   27031:     <ol><li><p><a href="#generate-implied-end-tags">Generate implied end tags</a>.</p></li>
                   27032: 
                   27033:      <li><p>If the <a href="#current-node">current node</a> is not an element with
                   27034:      the same tag name as that of the token, then this is a
                   27035:      <a href="#parse-error">parse error</a>.</p></li>
                   27036: 
                   27037:      <li><p>Pop elements from the <a href="#stack-of-open-elements">stack of open elements</a>
                   27038:      until an element with the same tag name as the token has been
                   27039:      popped from the stack.</p></li>
                   27040: 
                   27041:      <li><a href="#clear-the-list-of-active-formatting-elements-up-to-the-last-marker">Clear the list of active formatting elements up to the
                   27042:      last marker</a>.</li>
                   27043: 
                   27044:     </ol></dd>
                   27045: 
                   27046:    <dt>A start tag whose tag name is "table"</dt>
                   27047:    <dd>
                   27048: 
                   27049:     <p>If the <code><a href="dom.html#document">Document</a></code> is <em>not</em> set to
                   27050:     <a href="infrastructure.html#quirks-mode">quirks mode</a>, and the <a href="#stack-of-open-elements">stack of open
                   27051:     elements</a> <a href="#has-an-element-in-button-scope" title="has an element in button scope">has a
                   27052:     <code>p</code> element in button scope</a>, then act as if an
                   27053:     end tag with the tag name "p" had been seen.</p> <!-- i hate
                   27054:     myself (this quirk was basically caused by acid2; if i'd realised
                   27055:     we could change the specs when i wrote acid2, we could have
                   27056:     avoided having any parsing-mode quirks) -Hixie -->
                   27057: 
                   27058:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   27059: 
                   27060:     <p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok".</p>
                   27061: 
                   27062:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-intable" title="insertion mode: in table">in table</a>".</p>
                   27063: 
                   27064:    </dd>
                   27065: 
                   27066:    <dt>A start tag whose tag name is one of: "area", "br", "embed",
                   27067:    "img", "keygen", "wbr"</dt>
                   27068:    <dd>
                   27069: 
                   27070:     <p><a href="#reconstruct-the-active-formatting-elements">Reconstruct the active formatting elements</a>, if
                   27071:     any.</p>
                   27072: 
                   27073:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token. Immediately
                   27074:     pop the <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
                   27075:     elements</a>.</p>
                   27076: 
                   27077:     <p><a href="#acknowledge-self-closing-flag" title="acknowledge self-closing flag">Acknowledge the
                   27078:     token's <i>self-closing flag</i></a>, if it is set.</p>
                   27079: 
                   27080:     <p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok".</p>
                   27081:     <!-- shouldn't really do this for <area> -->
                   27082: 
                   27083:    </dd>
                   27084: 
                   27085:    <dt>A start tag whose tag name is "input"</dt>
                   27086:    <dd>
                   27087: 
                   27088:     <p><a href="#reconstruct-the-active-formatting-elements">Reconstruct the active formatting elements</a>, if
                   27089:     any.</p>
                   27090: 
                   27091:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token. Immediately
                   27092:     pop the <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
                   27093:     elements</a>.</p>
                   27094: 
                   27095:     <p><a href="#acknowledge-self-closing-flag" title="acknowledge self-closing flag">Acknowledge the
                   27096:     token's <i>self-closing flag</i></a>, if it is set.</p>
                   27097: 
                   27098:     <p>If the token does not have an attribute with the name "type",
                   27099:     or if it does, but that attribute's value is not an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   27100:     case-insensitive</a> match for the string "<code title="">hidden</code>", then: set the <a href="#frameset-ok-flag">frameset-ok
                   27101:     flag</a> to "not ok".</p>
                   27102: 
                   27103:    </dd>
                   27104: 
                   27105:    <dt>A start tag whose tag name is one of: "param", "source", "track"</dt>
                   27106:    <dd>
                   27107: 
                   27108:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token. Immediately
                   27109:     pop the <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
                   27110:     elements</a>.</p>
                   27111: 
                   27112:     <p><a href="#acknowledge-self-closing-flag" title="acknowledge self-closing flag">Acknowledge the
                   27113:     token's <i>self-closing flag</i></a>, if it is set.</p>
                   27114: 
                   27115:    </dd>
                   27116: 
                   27117:    <dt>A start tag whose tag name is "hr"</dt>
                   27118:    <dd>
                   27119: 
                   27120:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> <a href="#has-an-element-in-button-scope" title="has
                   27121:     an element in button scope">has a <code>p</code> element in button
                   27122:     scope</a>, then act as if an end tag with the tag name
                   27123:     "p" had been seen.</p>
                   27124: 
                   27125:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token. Immediately
                   27126:     pop the <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
                   27127:     elements</a>.</p>
                   27128: 
                   27129:     <p><a href="#acknowledge-self-closing-flag" title="acknowledge self-closing flag">Acknowledge the
                   27130:     token's <i>self-closing flag</i></a>, if it is set.</p>
                   27131: 
                   27132:     <p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok".</p>
                   27133: 
                   27134:    </dd>
                   27135: 
                   27136:    <dt>A start tag whose tag name is "image"</dt>
                   27137:    <dd>
                   27138:     <p><a href="#parse-error">Parse error</a>. Change the token's tag name
                   27139:     to "img" and reprocess it. (Don't ask.)</p> <!-- As of
                   27140:     2005-12, studies showed that around 0.2% of pages used the
                   27141:     <image> element. -->
                   27142:    </dd>
                   27143: 
                   27144:    <dt id="isindex">A start tag whose tag name is "isindex"</dt>
                   27145:    <dd>
                   27146: 
                   27147:     <p><a href="#parse-error">Parse error</a>.</p>
                   27148: 
                   27149:     <p>If the <a href="#form-element-pointer"><code title="">form</code> element
                   27150:     pointer</a> is not null, then ignore the token.</p>
                   27151: 
                   27152:     <p>Otherwise:</p>
                   27153: 
                   27154:     <p><a href="#acknowledge-self-closing-flag" title="acknowledge self-closing flag">Acknowledge the
                   27155:     token's <i>self-closing flag</i></a>, if it is set.</p> <!--
                   27156:     purely to reduce the number of errors (we don't care if they
                   27157:     included the /, they're not supposed to be including the tag at
                   27158:     all! -->
                   27159: 
                   27160:     <p>Act as if a start tag token with the tag name "form" had been seen.</p>
                   27161: 
                   27162:     <p>If the token has an attribute called "action", set the
                   27163:     <code title="attr-fs-action"><a href="form-submission.html#attr-fs-action">action</a></code> attribute on the
                   27164:     resulting <code><a href="the-form-element.html#the-form-element">form</a></code> element to the value of the
                   27165:     "action" attribute of the token.</p>
                   27166: 
                   27167:     <p>Act as if a start tag token with the tag name "hr" had been
                   27168:     seen.</p>
                   27169: 
                   27170:     <p>Act as if a start tag token with the tag name "label" had been
                   27171:     seen.</p>
                   27172: 
                   27173:     <p>Act as if a stream of character tokens had been seen (see below
                   27174:     for what they should say).</p>
                   27175: 
                   27176:     <p>Act as if a start tag token with the tag name "input" had been
                   27177:     seen, with all the attributes from the "isindex" token except
                   27178:     "name", "action", and "prompt". Set the <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">name</a></code> attribute of the resulting
                   27179:     <code><a href="the-input-element.html#the-input-element">input</a></code> element to the value "<code title="attr-fe-name-isindex"><a href="attributes-common-to-form-controls.html#attr-fe-name-isindex">isindex</a></code>".</p>
                   27180: 
                   27181:     <p>Act as if a stream of character tokens had been seen (see
                   27182:     below for what they should say).</p>
                   27183: 
                   27184:     <p>Act as if an end tag token with the tag name "label" had been
                   27185:     seen.</p>
                   27186: 
                   27187:     <p>Act as if a start tag token with the tag name "hr" had been
                   27188:     seen.</p>
                   27189: 
                   27190:     <p>Act as if an end tag token with the tag name "form" had been
                   27191:     seen.</p>
                   27192: 
                   27193:     <p>If the token has an attribute with the name "prompt", then the
                   27194:     first stream of characters must be the same string as given in
                   27195:     that attribute, and the second stream of characters must be
                   27196:     empty. Otherwise, the two streams of character tokens together
                   27197:     should, together with the <code><a href="the-input-element.html#the-input-element">input</a></code> element, express the
                   27198:     equivalent of "This is a searchable index. Enter search keywords:
                   27199:     (input field)" in the user's preferred language.</p>
                   27200: 
                   27201:    </dd>
                   27202: 
                   27203:    <dt>A start tag whose tag name is "textarea"</dt>
                   27204:    <dd>
                   27205: 
                   27206:     <p>Run these steps:</p>
                   27207: 
                   27208:     <ol><li><p><a href="#insert-an-html-element">Insert an HTML element</a> for the
                   27209:      token.</p></li>
                   27210: 
                   27211:      <li><p>If the next token is a "LF" (U+000A) character
                   27212:      token, then ignore that token and move on to the next
                   27213:      one. (Newlines at the start of <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> elements are
                   27214:      ignored as an authoring convenience.)</p></li>
                   27215: 
                   27216:      <!-- see comment in <pre> start tag bit -->
                   27217: 
                   27218:      <li><p>Switch the tokenizer to the <a href="#rcdata-state">RCDATA
                   27219:      state</a>.</p></li>
                   27220: 
                   27221:      <li><p>Let the <a href="#original-insertion-mode">original insertion mode</a> be the
                   27222:      current <a href="#insertion-mode">insertion mode</a>.</p>
                   27223: 
                   27224:      </li><li><p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not
                   27225:      ok".</p></li>
                   27226: 
                   27227:      <li><p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-incdata" title="insertion mode: text">text</a>".</p></li>
                   27228: 
                   27229:     </ol></dd>
                   27230: 
                   27231:    <dt>A start tag whose tag name is "xmp"</dt>
                   27232:    <dd>
                   27233: 
                   27234:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> <a href="#has-an-element-in-button-scope" title="has
                   27235:     an element in button scope">has a <code>p</code> element in button
                   27236:     scope</a>, then act as if an end tag with the tag name
                   27237:     "p" had been seen.</p>
                   27238: 
                   27239:     <p><a href="#reconstruct-the-active-formatting-elements">Reconstruct the active formatting elements</a>, if
                   27240:     any.</p>
                   27241: 
                   27242:     <p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok".</p>
                   27243: 
                   27244:     <p>Follow the <a href="#generic-raw-text-element-parsing-algorithm">generic raw text element parsing algorithm</a>.</p>
                   27245: 
                   27246:    </dd>
                   27247: 
                   27248:    <dt>A start tag whose tag name is "iframe"</dt>
                   27249:    <dd>
                   27250: 
                   27251:     <p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok".</p>
                   27252: 
                   27253:     <p>Follow the <a href="#generic-raw-text-element-parsing-algorithm">generic raw text element parsing algorithm</a>.</p>
                   27254: 
                   27255:    </dd>
                   27256: 
                   27257:    <dt>A start tag whose tag name is "noembed"</dt>
                   27258:    <dt>A start tag whose tag name is "noscript", if the <a href="#scripting-flag">scripting flag</a> is enabled</dt>
                   27259:    <dd>
                   27260: 
                   27261:     <p>Follow the <a href="#generic-raw-text-element-parsing-algorithm">generic raw text element parsing algorithm</a>.</p>
                   27262: 
                   27263:    </dd>
                   27264: 
                   27265:    <dt>A start tag whose tag name is "select"</dt>
                   27266:    <dd>
                   27267: 
                   27268:     <p><a href="#reconstruct-the-active-formatting-elements">Reconstruct the active formatting elements</a>, if
                   27269:     any.</p>
                   27270: 
                   27271:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   27272: 
                   27273:     <p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok".</p>
                   27274: 
                   27275:     <p>If the <a href="#insertion-mode">insertion mode</a> is one of "<a href="#parsing-main-intable" title="insertion mode: in table">in table</a>", "<a href="#parsing-main-incaption" title="insertion mode: in caption">in caption</a>", "<a href="#parsing-main-intbody" title="insertion mode: in table body">in table body</a>",
                   27276:     "<a href="#parsing-main-intr" title="insertion mode: in row">in row</a>", or "<a href="#parsing-main-intd" title="insertion mode: in cell">in cell</a>", then switch the
                   27277:     <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inselectintable" title="insertion mode: in
                   27278:     select in table">in select in table</a>". Otherwise, switch the
                   27279:     <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inselect" title="insertion mode: in
                   27280:     select">in select</a>".</p>
                   27281: 
                   27282:    </dd>
                   27283: 
                   27284:    <dt>A start tag whose tag name is one of: "optgroup", "option"</dt>
                   27285:    <dd>
                   27286: 
                   27287:     <p>If the <a href="#current-node">current node</a> is an <code><a href="the-option-element.html#the-option-element">option</a></code>
                   27288:     element, then act as if an end tag with the tag name "option" had
                   27289:     been seen.</p>
                   27290: 
                   27291:     <p><a href="#reconstruct-the-active-formatting-elements">Reconstruct the active formatting elements</a>, if
                   27292:     any.</p>
                   27293: 
                   27294:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   27295: 
                   27296:    </dd>
                   27297: 
                   27298:    <dt>A start tag whose tag name is one of: "rp", "rt"</dt>
                   27299:    <dd>
                   27300: 
                   27301:     <!-- the parsing rules for ruby really don't match IE much at all,
                   27302:          but in practice the markup used is very simple and so strict
                   27303:          compatibility with IE isn't required. For example, as defined
                   27304:          here we get very, very different behaviour than IE for
                   27305:          pathological cases like:
                   27306: 
                   27307:            <ruby><ol><li><p>a<rt>b
                   27308:            <ruby>a<rt>b<p>c
                   27309: 
                   27310:          But in practice most ruby markup falls into these cases:
                   27311: 
                   27312:            <ruby>a<rt>b</ruby>
                   27313:            <ruby>a<rp>b<rt>c<rp>d</ruby>
                   27314:            <ruby>a<rt>b</rt></ruby>
                   27315:            <ruby>a<rp>b</rp><rt>c</rt><rp>d</rp></ruby>
                   27316: 
                   27317:          (Note: the comment above was written when this section did
                   27318:          something slightly more radical for handling <rp> and <rt>
                   27319:          elements, so it might be out of date now.)
                   27320: 
                   27321:     -->
                   27322: 
                   27323:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> <a href="#has-an-element-in-scope" title="has an
                   27324:     element in scope">has a <code>ruby</code> element in scope</a>,
                   27325:     then <a href="#generate-implied-end-tags">generate implied end tags</a>. If the <a href="#current-node">current
                   27326:     node</a> is not then a <code><a href="the-ruby-element.html#the-ruby-element">ruby</a></code> element, this is a
                   27327:     <a href="#parse-error">parse error</a>.</p>
                   27328: 
                   27329:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   27330: 
                   27331:    </dd>
                   27332: 
                   27333:    <dt>An end tag whose tag name is "br"</dt>
                   27334:    <dd>
                   27335:     <p><a href="#parse-error">Parse error</a>. Act as if a start tag token with
                   27336:     the tag name "br" had been seen. Ignore the end tag token.</p>
                   27337:    </dd>
                   27338: 
                   27339:    <dt>A start tag whose tag name is "math"</dt>
                   27340:    <dd>
                   27341: 
                   27342:     <p><a href="#reconstruct-the-active-formatting-elements">Reconstruct the active formatting elements</a>, if
                   27343:     any.</p>
                   27344: 
                   27345:     <p><a href="#adjust-mathml-attributes">Adjust MathML attributes</a> for the token. (This
                   27346:     fixes the case of MathML attributes that are not all
                   27347:     lowercase.)</p>
                   27348: 
                   27349:     <p><a href="#adjust-foreign-attributes">Adjust foreign attributes</a> for the token. (This
                   27350:     fixes the use of namespaced attributes, in particular XLink.)</p>
                   27351: 
                   27352:     <p><a href="#insert-a-foreign-element">Insert a foreign element</a> for the token, in the
                   27353:     <a href="namespaces.html#mathml-namespace">MathML namespace</a>.</p>
                   27354: 
                   27355:     <!-- If we ever change the frameset-ok flag to an insertion mode,
                   27356:     the following change would be implied, except we'd have to do it
                   27357:     even in the face of a self-closed tag:
                   27358:     <p>Set the <span>frameset-ok flag</span> to "not ok".</p>
                   27359:     -->
                   27360: 
                   27361:     <p>If the token has its <i>self-closing flag</i> set, pop the
                   27362:     <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
                   27363:     elements</a> and <a href="#acknowledge-self-closing-flag" title="acknowledge self-closing
                   27364:     flag">acknowledge the token's <i>self-closing flag</i></a>.</p>
                   27365: 
                   27366:    </dd>
                   27367: 
                   27368:    <dt>A start tag whose tag name is "svg"</dt>
                   27369:    <dd>
                   27370: 
                   27371:     <p><a href="#reconstruct-the-active-formatting-elements">Reconstruct the active formatting elements</a>, if
                   27372:     any.</p>
                   27373: 
                   27374:     <p><a href="#adjust-svg-attributes">Adjust SVG attributes</a> for the token. (This fixes
                   27375:     the case of SVG attributes that are not all lowercase.)</p>
                   27376: 
                   27377:     <p><a href="#adjust-foreign-attributes">Adjust foreign attributes</a> for the token. (This
                   27378:     fixes the use of namespaced attributes, in particular XLink in
                   27379:     SVG.)</p>
                   27380: 
                   27381:     <p><a href="#insert-a-foreign-element">Insert a foreign element</a> for the token, in the
                   27382:     <a href="namespaces.html#svg-namespace">SVG namespace</a>.</p>
                   27383: 
                   27384:     <!-- If we ever change the frameset-ok flag to an insertion mode,
                   27385:     the following change would be implied, except we'd have to do it
                   27386:     even in the face of a self-closed tag:
                   27387:     <p>Set the <span>frameset-ok flag</span> to "not ok".</p>
                   27388:     -->
                   27389: 
                   27390:     <p>If the token has its <i>self-closing flag</i> set, pop the
                   27391:     <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
                   27392:     elements</a> and <a href="#acknowledge-self-closing-flag" title="acknowledge self-closing
                   27393:     flag">acknowledge the token's <i>self-closing flag</i></a>.</p>
                   27394: 
                   27395:    </dd>
                   27396: 
                   27397:    <dt>A start <!--or end--> tag whose tag name is one of: "caption",
                   27398:    "col", "colgroup", "frame", "head", "tbody", "td", "tfoot", "th",
                   27399:    "thead", "tr"</dt>
                   27400:    <!--<dt>An end tag whose tag name is one of: "area", "base",
                   27401:    "basefont", "bgsound", "command", "embed", "hr", "iframe", "image",
                   27402:    "img", "input", "isindex", "keygen", "link", "meta", "noembed",
                   27403:    "noframes", "param", "script", "select", "source", "style",
                   27404:    "table", "textarea", "title", "track", "wbr"</dt>-->
                   27405:    <!--<dt>An end tag whose tag name is "noscript", if the
                   27406:    <span>scripting flag</span> is enabled</dt>-->
                   27407:    <dd>
                   27408:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   27409:     <!-- end tags are commented out because since they can never end
                   27410:     up on the stack anyway, the default end tag clause will
                   27411:     automatically handle them. we don't want to have text in the spec
                   27412:     that is just an optimisation, as that detracts from the spec
                   27413:     itself -->
                   27414:    </dd>
                   27415: 
                   27416:    <dt>Any other start tag</dt>
                   27417:    <dd>
                   27418: 
                   27419:     <p><a href="#reconstruct-the-active-formatting-elements">Reconstruct the active formatting elements</a>, if
                   27420:     any.</p>
                   27421: 
                   27422:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   27423: 
                   27424:     <p class="note">This element will be an <a href="#ordinary">ordinary</a>
                   27425:     element.</p>
                   27426: 
                   27427:    </dd>
                   27428: 
                   27429:    <dt>Any other end tag</dt>
                   27430:    <dd>
                   27431: 
                   27432:     <p>Run these steps:</p>
                   27433: 
                   27434:     <ol><li><p>Initialize <var title="">node</var> to be the <a href="#current-node">current
                   27435:      node</a> (the bottommost node of the stack).</p></li>
                   27436: 
                   27437:      <li><p><i>Loop</i>: If <var title="">node</var> has the same tag
                   27438:      name as the token, then:</p>
                   27439: 
                   27440:       <ol><li><p><a href="#generate-implied-end-tags">Generate implied end tags</a>, except
                   27441:        for elements with the same tag name as the token.</p></li>
                   27442: 
                   27443:        <li><p>If the tag name of the end tag token does not match
                   27444:        the tag name of the <a href="#current-node">current node</a>, this is a
                   27445:        <a href="#parse-error">parse error</a>.</p></li>
                   27446: 
                   27447:        <li><p>Pop all the nodes from the <a href="#current-node">current node</a> up
                   27448:        to <var title="">node</var>, including <var title="">node</var>, then stop these steps.</p></li>
                   27449: 
                   27450:       </ol></li>
                   27451: 
                   27452:      <li><p>Otherwise, if <var title="">node</var> is in the
                   27453:      <a href="#special">special</a> category, then this is a <a href="#parse-error">parse
                   27454:      error</a>; ignore the token, and abort these steps.</p></li>
                   27455: 
                   27456:      <li><p>Set <var title="">node</var> to the previous entry in the
                   27457:      <a href="#stack-of-open-elements">stack of open elements</a>.</p></li>
                   27458: 
                   27459:      <li><p>Return to the step labeled <i>loop</i>.</p></li>
                   27460: 
                   27461:     </ol></dd>
                   27462: 
                   27463:   </dl><h6 id="parsing-main-incdata"><span class="secno">8.2.5.4.8 </span>The "<dfn title="insertion mode: text">text</dfn>" insertion mode</h6>
                   27464: 
                   27465:   <p>When the user agent is to apply the rules for the "<a href="#parsing-main-incdata" title="insertion mode: text">text</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   27466: 
                   27467:   <dl class="switch"><dt>A character token</dt>
                   27468:    <dd>
                   27469: 
                   27470:     <p><a href="#insert-a-character" title="insert a character">Insert the token's
                   27471:     character</a> into the <a href="#current-node">current node</a>.</p>
                   27472: 
                   27473:     <p class="note">This can never be a U+0000 NULL character; the
                   27474:     tokenizer converts those to U+FFFD REPLACEMENT CHARACTER
                   27475:     characters.</p>
                   27476: 
                   27477:    </dd>
                   27478: 
                   27479:    <dt>An end-of-file token</dt>
                   27480:    <dd>
                   27481: 
                   27482:     <!-- can't be the fragment case -->
                   27483:     <p><a href="#parse-error">Parse error</a>.</p>
                   27484: 
                   27485:     <p>If the <a href="#current-node">current node</a> is a <code><a href="the-script-element.html#the-script-element">script</a></code>
                   27486:     element, mark the <code><a href="the-script-element.html#the-script-element">script</a></code> element as <a href="the-script-element.html#already-started">"already
                   27487:     started"</a>.</p>
                   27488: 
                   27489:     <p>Pop the <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
                   27490:     elements</a>.</p>
                   27491: 
                   27492:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to the <a href="#original-insertion-mode">original
                   27493:     insertion mode</a> and reprocess the current token.</p>
                   27494: 
                   27495:    </dd>
                   27496: 
                   27497:    <dt id="scriptEndTag">An end tag whose tag name is "script"</dt>
                   27498:    <dd>
                   27499: 
                   27500:     <p><a href="#provide-a-stable-state">Provide a stable state</a>.</p>
                   27501: 
                   27502:     <p>Let <var title="">script</var> be the <a href="#current-node">current node</a>
                   27503:     (which will be a <code><a href="the-script-element.html#the-script-element">script</a></code> element).</p>
                   27504: 
                   27505:     <p>Pop the <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
                   27506:     elements</a>.</p>
                   27507: 
                   27508:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to the <a href="#original-insertion-mode">original
                   27509:     insertion mode</a>.</p>
                   27510: 
                   27511:     <p>Let the <var title="">old insertion point</var> have the
                   27512:     same value as the current <a href="#insertion-point">insertion point</a>. Let
                   27513:     the <a href="#insertion-point">insertion point</a> be just before the <a href="#next-input-character">next
                   27514:     input character</a>.</p>
                   27515: 
                   27516:     <p>Increment the parser's <a href="#script-nesting-level">script nesting level</a> by
                   27517:     one.</p>
                   27518: 
                   27519:     <p><a href="the-script-element.html#prepare-a-script" title="prepare a script">Prepare</a> the <var title="">script</var>. This might cause some script to execute,
                   27520:     which might cause <a href="dynamic-markup-insertion.html#dom-document-write" title="dom-document-write">new characters
                   27521:     to be inserted into the tokenizer</a>, and might cause the
                   27522:     tokenizer to output more tokens, resulting in a <a href="#nestedParsing">reentrant invocation of the parser</a>.</p>
                   27523: 
                   27524:     <p>Decrement the parser's <a href="#script-nesting-level">script nesting level</a> by
                   27525:     one. If the parser's <a href="#script-nesting-level">script nesting level</a> is zero,
                   27526:     then set the <a href="#parser-pause-flag">parser pause flag</a> to false.</p>
                   27527: 
                   27528:     <p>Let the <a href="#insertion-point">insertion point</a> have the value of the <var title="">old insertion point</var>. (In other words, restore the
                   27529:     <a href="#insertion-point">insertion point</a> to its previous value. This value
                   27530:     might be the "undefined" value.)</p>
                   27531: 
                   27532:     <p id="scriptTagParserResumes">At this stage, if there is a
                   27533:     <a href="the-script-element.html#pending-parsing-blocking-script">pending parsing-blocking script</a>, then:</p>
                   27534: 
                   27535:     <dl class="switch"><dt>If the <a href="#script-nesting-level">script nesting level</a> is not zero:</dt>
                   27536: 
                   27537:      <dd>
                   27538: 
                   27539:       <p>Set the <a href="#parser-pause-flag">parser pause flag</a> to true, and abort the
                   27540:       processing of any nested invocations of the tokenizer, yielding
                   27541:       control back to the caller. (Tokenization will resume when the
                   27542:       caller returns to the "outer" tree construction stage.)</p>
                   27543: 
                   27544:       <p class="note">The tree construction stage of this particular
                   27545:       parser is <a href="#nestedParsing">being called reentrantly</a>,
                   27546:       say from a call to <code title="dom-document-write"><a href="dynamic-markup-insertion.html#dom-document-write">document.write()</a></code>.</p>
                   27547: 
                   27548:      </dd>
                   27549: 
                   27550: 
                   27551:      <dt>Otherwise:</dt>
                   27552: 
                   27553:      <dd>
                   27554: 
                   27555:       <p>Run these steps:</p>
                   27556: 
                   27557:       <ol><li><p>Let <var title="">the script</var> be the <a href="the-script-element.html#pending-parsing-blocking-script">pending
                   27558:        parsing-blocking script</a>. There is no longer a <a href="the-script-element.html#pending-parsing-blocking-script">pending
                   27559:        parsing-blocking script</a>.</p></li>
                   27560: 
                   27561:        <li><p>Block the <a href="#tokenization" title="tokenization">tokenizer</a>
                   27562:        for this instance of the <a href="#html-parser">HTML parser</a>, such that
                   27563:        the <a href="#event-loop">event loop</a> will not run <a href="#concept-task" title="concept-task">tasks</a> that invoke the <a href="#tokenization" title="tokenization">tokenizer</a>.</p></li>
                   27564: 
                   27565:        <li><p>If the parser's <code><a href="dom.html#document">Document</a></code> <a href="styling.html#has-a-style-sheet-that-is-blocking-scripts">has a style
                   27566:        sheet that is blocking scripts</a> or <var title="">the
                   27567:        script</var>'s <a href="the-script-element.html#ready-to-be-parser-executed">"ready to be parser-executed"</a> flag
                   27568:        is not set: <a href="#spin-the-event-loop">spin the event loop</a> until the parser's
                   27569:        <code><a href="dom.html#document">Document</a></code> <a href="styling.html#has-no-style-sheet-that-is-blocking-scripts">has no style sheet that is blocking
                   27570:        scripts</a> and <var title="">the script</var>'s
                   27571:        <a href="the-script-element.html#ready-to-be-parser-executed">"ready to be parser-executed"</a> flag is
                   27572:        set.</p></li>
                   27573: 
                   27574:        <li><p>Unblock the <a href="#tokenization" title="tokenization">tokenizer</a>
                   27575:        for this instance of the <a href="#html-parser">HTML parser</a>, such that
                   27576:        <a href="#concept-task" title="concept-task">tasks</a> that invoke the <a href="#tokenization" title="tokenization">tokenizer</a> can again be
                   27577:        run.</p></li>
                   27578: 
                   27579:        <li><p>Let the <a href="#insertion-point">insertion point</a> be just before the
                   27580:        <a href="#next-input-character">next input character</a>.</p></li>
                   27581: 
                   27582:        <li><p>Increment the parser's <a href="#script-nesting-level">script nesting level</a>
                   27583:        by one (it should be zero before this step, so this sets it to
                   27584:        one).</p></li>
                   27585: 
                   27586:        <li><p><a href="the-script-element.html#execute-the-script-block" title="execute the script block">Execute</a>
                   27587:        <var title="">the script</var>.</p></li>
                   27588: 
                   27589:        <li><p>Decrement the parser's <a href="#script-nesting-level">script nesting level</a>
                   27590:        by one. If the parser's <a href="#script-nesting-level">script nesting level</a> is
                   27591:        zero (which it always should be at this point), then set the
                   27592:        <a href="#parser-pause-flag">parser pause flag</a> to false.</p>
                   27593: 
                   27594:        </li><li><p>Let the <a href="#insertion-point">insertion point</a> be undefined
                   27595:        again.</p></li>
                   27596: 
                   27597:        <li><p>If there is once again a <a href="the-script-element.html#pending-parsing-blocking-script">pending parsing-blocking
                   27598:        script</a>, then repeat these steps from step 1.</p></li>
                   27599: 
                   27600:       </ol></dd>
                   27601: 
                   27602:     </dl></dd>
                   27603: 
                   27604:    <dt>Any other end tag</dt>
                   27605:    <dd>
                   27606: 
                   27607:     <p>Pop the <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
                   27608:     elements</a>.</p>
                   27609: 
                   27610:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to the <a href="#original-insertion-mode">original
                   27611:     insertion mode</a>.</p>
                   27612: 
                   27613:    </dd>
                   27614: 
                   27615:   </dl><h6 id="parsing-main-intable"><span class="secno">8.2.5.4.9 </span>The "<dfn title="insertion mode: in table">in table</dfn>" insertion mode</h6>
                   27616: 
                   27617:   <p>When the user agent is to apply the rules for the "<a href="#parsing-main-intable" title="insertion mode: in table">in table</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   27618: 
                   27619:   <dl class="switch"><dt>A character token, if the <a href="#current-node">current node</a> is <code><a href="the-table-element.html#the-table-element">table</a></code>, <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, or <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element</dt>
                   27620:    <dd>
                   27621: 
                   27622:      <p>Let the <dfn id="pending-table-character-tokens"><var>pending table character tokens</var></dfn>
                   27623:      be an empty list of tokens.</p>
                   27624: 
                   27625:      <p>Let the <a href="#original-insertion-mode">original insertion mode</a> be the current
                   27626:      <a href="#insertion-mode">insertion mode</a>.</p>
                   27627: 
                   27628:      <p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-intabletext" title="insertion mode: in table text">in table text</a>" and
                   27629:      reprocess the token.</p>
                   27630: 
                   27631:    </dd>
                   27632: 
                   27633:    <dt>A comment token</dt>
                   27634:    <dd>
                   27635:     <p>Append a <code><a href="infrastructure.html#comment-0">Comment</a></code> node to the <a href="#current-node">current
                   27636:     node</a> with the <code title="">data</code> attribute set to
                   27637:     the data given in the comment token.</p>
                   27638:    </dd>
                   27639: 
                   27640:    <dt>A DOCTYPE token</dt>
                   27641:    <dd>
                   27642:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   27643:    </dd>
                   27644: 
                   27645:    <dt>A start tag whose tag name is "caption"</dt>
                   27646:    <dd>
                   27647: 
                   27648:     <p><a href="#clear-the-stack-back-to-a-table-context">Clear the stack back to a table context</a>. (See
                   27649:     below.)</p>
                   27650: 
                   27651:     <p>Insert a marker at the end of the <a href="#list-of-active-formatting-elements">list of active
                   27652:     formatting elements</a>.</p>
                   27653: 
                   27654:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token, then
                   27655:     switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-incaption" title="insertion mode: in caption">in caption</a>".</p>
                   27656: 
                   27657:    </dd>
                   27658: 
                   27659:    <dt>A start tag whose tag name is "colgroup"</dt>
                   27660:    <dd>
                   27661: 
                   27662:     <p><a href="#clear-the-stack-back-to-a-table-context">Clear the stack back to a table context</a>. (See
                   27663:     below.)</p>
                   27664: 
                   27665:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token, then
                   27666:     switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-incolgroup" title="insertion mode: in column group">in column
                   27667:     group</a>".</p>
                   27668: 
                   27669:    </dd>
                   27670: 
                   27671:    <dt>A start tag whose tag name is "col"</dt>
                   27672:    <dd>
                   27673:     <p>Act as if a start tag token with the tag name "colgroup"
                   27674:     had been seen, then reprocess the current token.</p>
                   27675:    </dd>
                   27676: 
                   27677:    <dt>A start tag whose tag name is one of: "tbody", "tfoot", "thead"</dt>
                   27678:    <dd>
                   27679: 
                   27680:     <p><a href="#clear-the-stack-back-to-a-table-context">Clear the stack back to a table context</a>. (See
                   27681:     below.)</p>
                   27682: 
                   27683:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token, then
                   27684:     switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-intbody" title="insertion mode: in table body">in table
                   27685:     body</a>".</p>
                   27686: 
                   27687:    </dd>
                   27688: 
                   27689:    <dt>A start tag whose tag name is one of: "td", "th", "tr"</dt>
                   27690:    <dd>
                   27691:     <p>Act as if a start tag token with the tag name "tbody" had
                   27692:     been seen, then reprocess the current token.</p>
                   27693:    </dd>
                   27694: 
                   27695:    <dt>A start tag whose tag name is "table"</dt>
                   27696:    <dd>
                   27697: 
                   27698:     <p><a href="#parse-error">Parse error</a>. Act as if an end tag token with
                   27699:     the tag name "table" had been seen, then, if that token wasn't
                   27700:     ignored, reprocess the current token.</p>
                   27701: 
                   27702:     <p class="note">The fake end tag token here can only be
                   27703:     ignored in the <a href="#fragment-case">fragment case</a>.</p>
                   27704: 
                   27705:    </dd>
                   27706: 
                   27707:    <dt>An end tag whose tag name is "table"</dt>
                   27708:    <dd>
                   27709: 
                   27710:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-table-scope" title="has an element in table scope">have an element in table
                   27711:     scope</a> with the same tag name as the token, this is a
                   27712:     <a href="#parse-error">parse error</a>. Ignore the token. (<a href="#fragment-case">fragment
                   27713:     case</a>)</p>
                   27714: 
                   27715:     <p>Otherwise:</p>
                   27716: 
                   27717:     <p>Pop elements from this stack until a <code><a href="the-table-element.html#the-table-element">table</a></code>
                   27718:     element has been popped from the stack.</p>
                   27719: 
                   27720:     <p><a href="#reset-the-insertion-mode-appropriately">Reset the insertion mode appropriately</a>.</p>
                   27721: 
                   27722:    </dd>
                   27723: 
                   27724:    <dt>An end tag whose tag name is one of: "body", "caption",
                   27725:    "col", "colgroup", "html", "tbody", "td", "tfoot", "th",
                   27726:    "thead", "tr"</dt>
                   27727:    <dd>
                   27728:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   27729:    </dd>
                   27730: 
                   27731:    <dt>A start tag whose tag name is one of: "style", "script"</dt>
                   27732:    <dd>
                   27733: 
                   27734:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>" <a href="#insertion-mode">insertion
                   27735:     mode</a>.</p>
                   27736: 
                   27737:    </dd>
                   27738: 
                   27739:    <dt>A start tag whose tag name is "input"</dt>
                   27740:    <dd>
                   27741: 
                   27742:     <p>If the token does not have an attribute with the name "type",
                   27743:     or if it does, but that attribute's value is not an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   27744:     case-insensitive</a> match for the string "<code title="">hidden</code>", then: act as described in the "anything
                   27745:     else" entry below.</p>
                   27746: 
                   27747:     <p>Otherwise:</p>
                   27748: 
                   27749:     <p><a href="#parse-error">Parse error</a>.</p>
                   27750: 
                   27751:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   27752: 
                   27753:     <p>Pop that <code><a href="the-input-element.html#the-input-element">input</a></code> element off the <a href="#stack-of-open-elements">stack of
                   27754:     open elements</a>.</p>
                   27755: 
                   27756:    </dd>
                   27757: 
                   27758:    <dt>A start tag whose tag name is "form"</dt>
                   27759:    <dd>
                   27760: 
                   27761:     <p><a href="#parse-error">Parse error</a>.</p>
                   27762: 
                   27763:     <p>If the <a href="#form-element-pointer"><code title="form">form</code> element
                   27764:     pointer</a> is not null, ignore the token.</p>
                   27765: 
                   27766:     <p>Otherwise:</p>
                   27767: 
                   27768:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token, and set the
                   27769:     <a href="#form-element-pointer"><code title="form">form</code> element pointer</a> to
                   27770:     point to the element created.</p>
                   27771: 
                   27772:     <p>Pop that <code><a href="the-form-element.html#the-form-element">form</a></code> element off the <a href="#stack-of-open-elements">stack of
                   27773:     open elements</a>.</p>
                   27774: 
                   27775:    </dd>
                   27776: 
                   27777:    <!-- "form" end tag falls through to in-body, which does the right thing -->
                   27778: 
                   27779:    <dt>An end-of-file token</dt>
                   27780:    <dd>
                   27781: 
                   27782:     <p>If the <a href="#current-node">current node</a> is not the root
                   27783:     <code><a href="the-html-element.html#the-html-element">html</a></code> element, then this is a <a href="#parse-error">parse
                   27784:     error</a>.</p>
                   27785: 
                   27786:     <p class="note">The <a href="#current-node">current node</a> can only be the root
                   27787:     <code><a href="the-html-element.html#the-html-element">html</a></code> element in the <a href="#fragment-case">fragment case</a>.</p>
                   27788: 
                   27789:     <p><a href="#stop-parsing">Stop parsing</a>.</p>
                   27790: 
                   27791:    </dd>
                   27792: 
                   27793:    <dt>Anything else</dt>
                   27794:    <dd>
                   27795: 
                   27796:     <p><a href="#parse-error">Parse error</a>. Process the token <a href="#using-the-rules-for">using the
                   27797:     rules for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in
                   27798:     body</a>" <a href="#insertion-mode">insertion mode</a>, except that whenever a
                   27799:     node would be inserted into the <a href="#current-node">current node</a> when the
                   27800:     <a href="#current-node">current node</a> is a <code><a href="the-table-element.html#the-table-element">table</a></code>,
                   27801:     <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, or
                   27802:     <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element, then it must instead be <a href="#foster-parent" title="foster parent">foster parented</a>.</p>
                   27803: 
                   27804:    </dd>
                   27805: 
                   27806:   </dl><p>When the steps above require the UA to <dfn id="clear-the-stack-back-to-a-table-context">clear the stack
                   27807:   back to a table context</dfn>, it means that the UA must, while
                   27808:   the <a href="#current-node">current node</a> is not a <code><a href="the-table-element.html#the-table-element">table</a></code>
                   27809:   element or an <code><a href="the-html-element.html#the-html-element">html</a></code> element, pop elements from the
                   27810:   <a href="#stack-of-open-elements">stack of open elements</a>.</p>
                   27811: 
                   27812:   <p class="note">The <a href="#current-node">current node</a> being an
                   27813:   <code><a href="the-html-element.html#the-html-element">html</a></code> element after this process is a <a href="#fragment-case">fragment
                   27814:   case</a>.</p>
                   27815: 
                   27816: 
                   27817: 
                   27818:   <h6 id="parsing-main-intabletext"><span class="secno">8.2.5.4.10 </span>The "<dfn title="insertion mode: in table text">in table text</dfn>" insertion mode</h6>
                   27819: 
                   27820:   <p>When the user agent is to apply the rules for the "<a href="#parsing-main-intabletext" title="insertion mode: in table text">in table text</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   27821: 
                   27822:   <dl class="switch"><dt>A character token that is U+0000 NULL</dt>
                   27823:    <dd>
                   27824: 
                   27825:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   27826: 
                   27827:    </dd>
                   27828: 
                   27829: 
                   27830:    <dt>Any other character token</dt>
                   27831:    <dd>
                   27832: 
                   27833:     <p>Append the character token to the <var><a href="#pending-table-character-tokens">pending table character
                   27834:     tokens</a></var> list.</p>
                   27835: 
                   27836:    </dd>
                   27837: 
                   27838: 
                   27839:    <dt>Anything else</dt>
                   27840:    <dd>
                   27841: 
                   27842:     <!-- this can only be called if the current node is one of the
                   27843:     table model elements -->
                   27844: 
                   27845:     <p>If any of the tokens in the <var><a href="#pending-table-character-tokens">pending table character
                   27846:     tokens</a></var> list are character tokens that are not <a href="common-microsyntaxes.html#space-character" title="space character">space characters</a>, then reprocess
                   27847:     the character tokens in the <var><a href="#pending-table-character-tokens">pending table character
                   27848:     tokens</a></var> list using the rules given in the "anything else"
                   27849:     entry in the "<a href="#parsing-main-intable" title="insertion mode: in table">in
                   27850:     table</a>" insertion mode.</p>
                   27851: 
                   27852:     <!-- if there's active formatting elements, it'll recreate those
                   27853:     and foster parent the top one and then put the text nodes in the
                   27854:     formatting elements; otherwise, it'll foster parent the character
                   27855:     tokens. -->
                   27856: 
                   27857:     <p>Otherwise, <a href="#insert-a-character" title="insert a character">insert the
                   27858:     characters</a> given by the <var><a href="#pending-table-character-tokens">pending table character
                   27859:     tokens</a></var> list into the <a href="#current-node">current node</a>.</p> <!--
                   27860:     i.e. inter-element whitespace in the table model isn't foster
                   27861:     parented -->
                   27862: 
                   27863:     <!-- no need to empty the list, we're leaving the insertion mode
                   27864:     and the list is always emptied before we reenter the mode -->
                   27865: 
                   27866:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to the <a href="#original-insertion-mode">original
                   27867:     insertion mode</a> and reprocess the token.</p>
                   27868: 
                   27869:    </dd>
                   27870: 
                   27871:   </dl><h6 id="parsing-main-incaption"><span class="secno">8.2.5.4.11 </span>The "<dfn title="insertion mode: in caption">in caption</dfn>" insertion mode</h6>
                   27872: 
                   27873:   <p>When the user agent is to apply the rules for the "<a href="#parsing-main-incaption" title="insertion mode: in caption">in caption</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   27874: 
                   27875:   <dl class="switch"><dt>An end tag whose tag name is "caption"</dt>
                   27876:    <dd>
                   27877: 
                   27878:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-table-scope" title="has an element in table scope">have an element in table
                   27879:     scope</a> with the same tag name as the token, this is a
                   27880:     <a href="#parse-error">parse error</a>. Ignore the token. (<a href="#fragment-case">fragment
                   27881:     case</a>)</p>
                   27882: 
                   27883:     <p>Otherwise:</p>
                   27884: 
                   27885:     <p><a href="#generate-implied-end-tags">Generate implied end tags</a>.</p>
                   27886: 
                   27887:     <p>Now, if the <a href="#current-node">current node</a> is not a
                   27888:     <code><a href="the-caption-element.html#the-caption-element">caption</a></code> element, then this is a <a href="#parse-error">parse
                   27889:     error</a>.</p>
                   27890: 
                   27891:     <p>Pop elements from this stack until a <code><a href="the-caption-element.html#the-caption-element">caption</a></code>
                   27892:     element has been popped from the stack.</p>
                   27893: 
                   27894:     <p><a href="#clear-the-list-of-active-formatting-elements-up-to-the-last-marker">Clear the list of active formatting elements up to
                   27895:     the last marker</a>.</p>
                   27896: 
                   27897:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-intable" title="insertion mode: in table">in table</a>".</p>
                   27898: 
                   27899:    </dd>
                   27900: 
                   27901:    <dt>A start tag whose tag name is one of: "caption", "col",
                   27902:    "colgroup", "tbody", "td", "tfoot", "th", "thead", "tr"</dt>
                   27903:    <dt>An end tag whose tag name is "table"</dt>
                   27904:    <dd>
                   27905: 
                   27906:     <p><a href="#parse-error">Parse error</a>. Act as if an end tag with the tag
                   27907:     name "caption" had been seen, then, if that token wasn't
                   27908:     ignored, reprocess the current token.</p>
                   27909: 
                   27910:     <p class="note">The fake end tag token here can only be
                   27911:     ignored in the <a href="#fragment-case">fragment case</a>.</p>
                   27912: 
                   27913:    </dd>
                   27914: 
                   27915:    <dt>An end tag whose tag name is one of: "body", "col",
                   27916:    "colgroup", "html", "tbody", "td", "tfoot", "th", "thead",
                   27917:    "tr"</dt>
                   27918:    <dd>
                   27919:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   27920:    </dd>
                   27921: 
                   27922:    <dt>Anything else</dt>
                   27923:    <dd>
                   27924:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" <a href="#insertion-mode">insertion
                   27925:     mode</a>.</p>
                   27926:    </dd>
                   27927: 
                   27928:   </dl><h6 id="parsing-main-incolgroup"><span class="secno">8.2.5.4.12 </span>The "<dfn title="insertion mode: in column group">in column group</dfn>" insertion mode</h6>
                   27929: 
                   27930:   <p>When the user agent is to apply the rules for the "<a href="#parsing-main-incolgroup" title="insertion mode: in column group">in column group</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   27931: 
                   27932:   <dl class="switch"><dt>A character token that is one of U+0009 CHARACTER
                   27933:    TABULATION, "LF" (U+000A), "FF" (U+000C),
                   27934:    "CR" (U+000D), or U+0020 SPACE</dt>
                   27935:    <dd>
                   27936:     <p><a href="#insert-a-character" title="insert a character">Insert the character</a> into
                   27937:     the <a href="#current-node">current node</a>.</p>
                   27938:    </dd>
                   27939: 
                   27940:    <dt>A comment token</dt>
                   27941:    <dd>
                   27942:     <p>Append a <code><a href="infrastructure.html#comment-0">Comment</a></code> node to the <a href="#current-node">current
                   27943:     node</a> with the <code title="">data</code> attribute set to
                   27944:     the data given in the comment token.</p>
                   27945:    </dd>
                   27946: 
                   27947:    <dt>A DOCTYPE token</dt>
                   27948:    <dd>
                   27949:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   27950:    </dd>
                   27951: 
                   27952:    <dt>A start tag whose tag name is "html"</dt>
                   27953:    <dd>
                   27954:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" <a href="#insertion-mode">insertion
                   27955:     mode</a>.</p>
                   27956:    </dd>
                   27957: 
                   27958:    <dt>A start tag whose tag name is "col"</dt>
                   27959:    <dd>
                   27960: 
                   27961:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token. Immediately
                   27962:     pop the <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
                   27963:     elements</a>.</p>
                   27964: 
                   27965:     <p><a href="#acknowledge-self-closing-flag" title="acknowledge self-closing flag">Acknowledge the
                   27966:     token's <i>self-closing flag</i></a>, if it is set.</p>
                   27967: 
                   27968:    </dd>
                   27969: 
                   27970:    <dt>An end tag whose tag name is "colgroup"</dt>
                   27971:    <dd>
                   27972: 
                   27973:     <p>If the <a href="#current-node">current node</a> is the root
                   27974:     <code><a href="the-html-element.html#the-html-element">html</a></code> element, then this is a <a href="#parse-error">parse
                   27975:     error</a>; ignore the token. (<a href="#fragment-case">fragment
                   27976:     case</a>)</p>
                   27977: 
                   27978:     <p>Otherwise, pop the <a href="#current-node">current node</a> (which will be
                   27979:     a <code><a href="the-colgroup-element.html#the-colgroup-element">colgroup</a></code> element) from the <a href="#stack-of-open-elements">stack of open
                   27980:     elements</a>. Switch the <a href="#insertion-mode">insertion mode</a> to
                   27981:     "<a href="#parsing-main-intable" title="insertion mode: in table">in table</a>".</p>
                   27982: 
                   27983:    </dd>
                   27984: 
                   27985:    <dt>An end tag whose tag name is "col"</dt>
                   27986:    <dd>
                   27987:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   27988:    </dd>
                   27989: 
                   27990:    <dt>An end-of-file token</dt>
                   27991:    <dd>
                   27992: 
                   27993:     <p>If the <a href="#current-node">current node</a> is the root <code><a href="the-html-element.html#the-html-element">html</a></code>
                   27994:     element, then <a href="#stop-parsing">stop parsing</a>. (<a href="#fragment-case">fragment
                   27995:     case</a>)</p>
                   27996: 
                   27997:     <p>Otherwise, act as described in the "anything else" entry
                   27998:     below.</p>
                   27999: 
                   28000:    </dd>
                   28001: 
                   28002:    <dt>Anything else</dt>
                   28003:    <dd>
                   28004: 
                   28005:     <p>Act as if an end tag with the tag name "colgroup" had been
                   28006:     seen, and then, if that token wasn't ignored, reprocess the
                   28007:     current token.</p>
                   28008: 
                   28009:     <p class="note">The fake end tag token here can only be
                   28010:     ignored in the <a href="#fragment-case">fragment case</a>.</p>
                   28011: 
                   28012:    </dd>
                   28013: 
                   28014:   </dl><h6 id="parsing-main-intbody"><span class="secno">8.2.5.4.13 </span>The "<dfn title="insertion mode: in table body">in table body</dfn>" insertion mode</h6>
                   28015: 
                   28016:   <p>When the user agent is to apply the rules for the "<a href="#parsing-main-intbody" title="insertion mode: in table body">in table body</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   28017: 
                   28018:   <dl class="switch"><dt>A start tag whose tag name is "tr"</dt>
                   28019:    <dd>
                   28020: 
                   28021:     <p><a href="#clear-the-stack-back-to-a-table-body-context">Clear the stack back to a table body
                   28022:     context</a>. (See below.)</p>
                   28023: 
                   28024:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token, then switch
                   28025:     the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-intr" title="insertion mode:
                   28026:     in row">in row</a>".</p>
                   28027: 
                   28028:    </dd>
                   28029: 
                   28030:    <dt>A start tag whose tag name is one of: "th", "td"</dt>
                   28031:    <dd>
                   28032:     <p><a href="#parse-error">Parse error</a>. Act as if a start tag with
                   28033:     the tag name "tr" had been seen, then reprocess the current
                   28034:     token.</p>
                   28035:    </dd>
                   28036: 
                   28037:    <dt>An end tag whose tag name is one of: "tbody", "tfoot",
                   28038:    "thead"</dt>
                   28039:    <dd>
                   28040: 
                   28041:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-table-scope" title="has an element in table scope">have an element in table
                   28042:     scope</a> with the same tag name as the token, this is a
                   28043:     <a href="#parse-error">parse error</a>. Ignore the token.</p>
                   28044: 
                   28045:     <p>Otherwise:</p>
                   28046: 
                   28047:     <p><a href="#clear-the-stack-back-to-a-table-body-context">Clear the stack back to a table body
                   28048:     context</a>. (See below.)</p>
                   28049: 
                   28050:     <p>Pop the <a href="#current-node">current node</a> from the <a href="#stack-of-open-elements">stack of
                   28051:     open elements</a>. Switch the <a href="#insertion-mode">insertion mode</a>
                   28052:     to "<a href="#parsing-main-intable" title="insertion mode: in table">in table</a>".</p>
                   28053: 
                   28054:    </dd>
                   28055: 
                   28056:    <dt>A start tag whose tag name is one of: "caption", "col",
                   28057:    "colgroup", "tbody", "tfoot", "thead"</dt>
                   28058:    <dt>An end tag whose tag name is "table"</dt>
                   28059:    <dd>
                   28060: 
                   28061:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-table-scope" title="has an element in table scope">have a
                   28062:     <code>tbody</code>, <code>thead</code>, or <code>tfoot</code>
                   28063:     element in table scope</a>, this is a <a href="#parse-error">parse
                   28064:     error</a>. Ignore the token. (<a href="#fragment-case">fragment
                   28065:     case</a>)</p>
                   28066: 
                   28067:     <p>Otherwise:</p>
                   28068: 
                   28069:     <p><a href="#clear-the-stack-back-to-a-table-body-context">Clear the stack back to a table body
                   28070:     context</a>. (See below.)</p>
                   28071: 
                   28072:     <p>Act as if an end tag with the same tag name as the
                   28073:     <a href="#current-node">current node</a> ("tbody", "tfoot", or "thead") had
                   28074:     been seen, then reprocess the current token.</p>
                   28075: 
                   28076:    </dd>
                   28077: 
                   28078:    <dt>An end tag whose tag name is one of: "body", "caption",
                   28079:    "col", "colgroup", "html", "td", "th", "tr"</dt>
                   28080:    <dd>
                   28081:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   28082:    </dd>
                   28083: 
                   28084:    <dt>Anything else</dt>
                   28085:    <dd>
                   28086:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-intable" title="insertion mode: in table">in table</a>" <a href="#insertion-mode">insertion
                   28087:     mode</a>.</p>
                   28088:    </dd>
                   28089: 
                   28090:   </dl><p>When the steps above require the UA to <dfn id="clear-the-stack-back-to-a-table-body-context">clear the stack
                   28091:   back to a table body context</dfn>, it means that the UA must,
                   28092:   while the <a href="#current-node">current node</a> is not a <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>,
                   28093:   <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, or <code><a href="the-html-element.html#the-html-element">html</a></code>
                   28094:   element, pop elements from the <a href="#stack-of-open-elements">stack of open
                   28095:   elements</a>.</p>
                   28096: 
                   28097:   <p class="note">The <a href="#current-node">current node</a> being an
                   28098:   <code><a href="the-html-element.html#the-html-element">html</a></code> element after this process is a <a href="#fragment-case">fragment
                   28099:   case</a>.</p>
                   28100: 
                   28101: 
                   28102:   <h6 id="parsing-main-intr"><span class="secno">8.2.5.4.14 </span>The "<dfn title="insertion mode: in row">in row</dfn>" insertion mode</h6>
                   28103: 
                   28104:   <p>When the user agent is to apply the rules for the "<a href="#parsing-main-intr" title="insertion mode: in row">in row</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   28105: 
                   28106:   <dl class="switch"><dt>A start tag whose tag name is one of: "th", "td"</dt>
                   28107:    <dd>
                   28108: 
                   28109:     <p><a href="#clear-the-stack-back-to-a-table-row-context">Clear the stack back to a table row
                   28110:     context</a>. (See below.)</p>
                   28111: 
                   28112:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token, then switch
                   28113:     the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-intd" title="insertion mode:
                   28114:     in cell">in cell</a>".</p>
                   28115: 
                   28116:     <p>Insert a marker at the end of the <a href="#list-of-active-formatting-elements">list of active
                   28117:     formatting elements</a>.</p>
                   28118: 
                   28119:    </dd>
                   28120: 
                   28121:    <dt>An end tag whose tag name is "tr"</dt>
                   28122:    <dd>
                   28123: 
                   28124:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-table-scope" title="has an element in table scope">have an element in table
                   28125:     scope</a> with the same tag name as the token, this is a
                   28126:     <a href="#parse-error">parse error</a>. Ignore the token. (<a href="#fragment-case">fragment
                   28127:     case</a>)</p>
                   28128: 
                   28129:     <p>Otherwise:</p>
                   28130: 
                   28131:     <p><a href="#clear-the-stack-back-to-a-table-row-context">Clear the stack back to a table row
                   28132:     context</a>. (See below.)</p>
                   28133: 
                   28134:     <p>Pop the <a href="#current-node">current node</a> (which will be a
                   28135:     <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element) from the <a href="#stack-of-open-elements">stack of open
                   28136:     elements</a>. Switch the <a href="#insertion-mode">insertion mode</a> to
                   28137:     "<a href="#parsing-main-intbody" title="insertion mode: in table body">in table
                   28138:     body</a>".</p>
                   28139: 
                   28140:    </dd>
                   28141: 
                   28142:    <dt>A start tag whose tag name is one of: "caption", "col",
                   28143:    "colgroup", "tbody", "tfoot", "thead", "tr"</dt>
                   28144:    <dt>An end tag whose tag name is "table"</dt>
                   28145:    <dd>
                   28146: 
                   28147:     <p>Act as if an end tag with the tag name "tr" had been seen,
                   28148:     then, if that token wasn't ignored, reprocess the current
                   28149:     token.</p>
                   28150: 
                   28151:     <p class="note">The fake end tag token here can only be
                   28152:     ignored in the <a href="#fragment-case">fragment case</a>.</p>
                   28153: 
                   28154:    </dd>
                   28155: 
                   28156:    <dt>An end tag whose tag name is one of: "tbody", "tfoot",
                   28157:    "thead"</dt>
                   28158:    <dd>
                   28159: 
                   28160:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-table-scope" title="has an element in table scope">have an element in table
                   28161:     scope</a> with the same tag name as the token, this is a
                   28162:     <a href="#parse-error">parse error</a>. Ignore the token.</p>
                   28163: 
                   28164:     <p>Otherwise, act as if an end tag with the tag name "tr" had
                   28165:     been seen, then reprocess the current token.</p>
                   28166: 
                   28167:    </dd>
                   28168: 
                   28169:    <dt>An end tag whose tag name is one of: "body", "caption",
                   28170:    "col", "colgroup", "html", "td", "th"</dt>
                   28171:    <dd>
                   28172:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   28173:    </dd>
                   28174: 
                   28175:    <dt>Anything else</dt>
                   28176:    <dd>
                   28177:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-intable" title="insertion mode: in table">in table</a>" <a href="#insertion-mode">insertion
                   28178:     mode</a>.</p>
                   28179:    </dd>
                   28180: 
                   28181:   </dl><p>When the steps above require the UA to <dfn id="clear-the-stack-back-to-a-table-row-context">clear the stack
                   28182:   back to a table row context</dfn>, it means that the UA must,
                   28183:   while the <a href="#current-node">current node</a> is not a <code><a href="the-tr-element.html#the-tr-element">tr</a></code>
                   28184:   element or an <code><a href="the-html-element.html#the-html-element">html</a></code> element, pop elements from the
                   28185:   <a href="#stack-of-open-elements">stack of open elements</a>.</p>
                   28186: 
                   28187:   <p class="note">The <a href="#current-node">current node</a> being an
                   28188:   <code><a href="the-html-element.html#the-html-element">html</a></code> element after this process is a <a href="#fragment-case">fragment
                   28189:   case</a>.</p>
                   28190: 
                   28191: 
                   28192:   <h6 id="parsing-main-intd"><span class="secno">8.2.5.4.15 </span>The "<dfn title="insertion mode: in cell">in cell</dfn>" insertion mode</h6>
                   28193: 
                   28194:   <p>When the user agent is to apply the rules for the "<a href="#parsing-main-intd" title="insertion mode: in cell">in cell</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   28195: 
                   28196:   <dl class="switch"><dt>An end tag whose tag name is one of: "td", "th"</dt>
                   28197:    <dd>
                   28198: 
                   28199:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-table-scope" title="has an element in table scope">have an element in table
                   28200:     scope</a> with the same tag name as that of the token, then
                   28201:     this is a <a href="#parse-error">parse error</a> and the token must be
                   28202:     ignored.</p>
                   28203: 
                   28204:     <p>Otherwise:</p>
                   28205: 
                   28206:     <p><a href="#generate-implied-end-tags">Generate implied end tags</a>.</p>
                   28207: 
                   28208:     <p>Now, if the <a href="#current-node">current node</a> is not an element
                   28209:     with the same tag name as the token, then this is a
                   28210:     <a href="#parse-error">parse error</a>.</p>
                   28211: 
                   28212:     <p>Pop elements from the <a href="#stack-of-open-elements">stack of open elements</a> stack
                   28213:     until an element with the same tag name as the token has been
                   28214:     popped from the stack.</p>
                   28215: 
                   28216:     <p><a href="#clear-the-list-of-active-formatting-elements-up-to-the-last-marker">Clear the list of active formatting elements up to
                   28217:     the last marker</a>.</p>
                   28218: 
                   28219:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-intr" title="insertion mode: in row">in row</a>".</p> <!-- current
                   28220:     node here will be a <tr> normally; but could be <html> in the
                   28221:     fragment case -->
                   28222: 
                   28223:    </dd>
                   28224: 
                   28225:    <dt>A start tag whose tag name is one of: "caption", "col",
                   28226:    "colgroup", "tbody", "td", "tfoot", "th", "thead", "tr"</dt>
                   28227:    <dd>
                   28228: 
                   28229:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does
                   28230:     <em>not</em> <a href="#has-an-element-in-table-scope" title="has an element in table scope">have
                   28231:     a <code>td</code> or <code>th</code> element in table
                   28232:     scope</a>, then this is a <a href="#parse-error">parse error</a>; ignore
                   28233:     the token. (<a href="#fragment-case">fragment case</a>)</p>
                   28234: 
                   28235:     <p>Otherwise, <a href="#close-the-cell">close the cell</a> (see below) and
                   28236:     reprocess the current token.</p>
                   28237: 
                   28238:    </dd>
                   28239: 
                   28240:    <dt>An end tag whose tag name is one of: "body", "caption",
                   28241:    "col", "colgroup", "html"</dt>
                   28242:    <dd>
                   28243:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   28244:    </dd>
                   28245: 
                   28246:    <dt>An end tag whose tag name is one of: "table", "tbody",
                   28247:    "tfoot", "thead", "tr"</dt>
                   28248:    <dd>
                   28249: 
                   28250:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-table-scope" title="has an element in table scope">have an element in table
                   28251:     scope</a> with the same tag name as that of the token (which
                   28252:     can only happen for "tbody", "tfoot" and "thead", or in the
                   28253:     <a href="#fragment-case">fragment case</a>), then this is a <a href="#parse-error">parse
                   28254:     error</a> and the token must be ignored.</p>
                   28255: 
                   28256:     <p>Otherwise, <a href="#close-the-cell">close the cell</a> (see below) and
                   28257:     reprocess the current token.</p>
                   28258: 
                   28259:    </dd>
                   28260: 
                   28261:    <dt>Anything else</dt>
                   28262:    <dd>
                   28263:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" <a href="#insertion-mode">insertion
                   28264:     mode</a>.</p>
                   28265:    </dd>
                   28266: 
                   28267:   </dl><p>Where the steps above say to <dfn id="close-the-cell">close the cell</dfn>, they
                   28268:   mean to run the following algorithm:</p>
                   28269: 
                   28270:   <ol><li><p>If the <a href="#stack-of-open-elements">stack of open elements</a> <a href="#has-an-element-in-table-scope" title="has an element in table scope">has a <code>td</code>
                   28271:    element in table scope</a>, then act as if an end tag token
                   28272:    with the tag name "td" had been seen.</p></li>
                   28273: 
                   28274:    <li><p>Otherwise, the <a href="#stack-of-open-elements">stack of open elements</a> will
                   28275:    <a href="#has-an-element-in-table-scope" title="has an element in table scope">have a
                   28276:    <code>th</code> element in table scope</a>; act as if an end
                   28277:    tag token with the tag name "th" had been seen.</p></li>
                   28278: 
                   28279:   </ol><p class="note">The <a href="#stack-of-open-elements">stack of open elements</a> cannot have
                   28280:   both a <code><a href="the-td-element.html#the-td-element">td</a></code> and a <code><a href="the-th-element.html#the-th-element">th</a></code> element <a href="#has-an-element-in-table-scope" title="has an element in table scope">in table scope</a> at the
                   28281:   same time, nor can it have neither when the <a href="#close-the-cell">close the
                   28282:   cell</a> algorithm is invoked.</p>
                   28283: 
                   28284: 
                   28285:   <h6 id="parsing-main-inselect"><span class="secno">8.2.5.4.16 </span>The "<dfn title="insertion mode: in select">in select</dfn>" insertion mode</h6>
                   28286: 
                   28287:   <p>When the user agent is to apply the rules for the "<a href="#parsing-main-inselect" title="insertion mode: in select">in select</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   28288: 
                   28289:   <dl class="switch"><dt>A character token that is U+0000 NULL</dt>
                   28290:    <dd>
                   28291:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   28292:    </dd>
                   28293: 
                   28294:    <dt>Any other character token</dt>
                   28295:    <dd>
                   28296:     <p><a href="#insert-a-character" title="insert a character">Insert the token's
                   28297:     character</a> into the <a href="#current-node">current node</a>.</p>
                   28298:    </dd>
                   28299: 
                   28300:    <dt>A comment token</dt>
                   28301:    <dd>
                   28302:     <p>Append a <code><a href="infrastructure.html#comment-0">Comment</a></code> node to the <a href="#current-node">current
                   28303:     node</a> with the <code title="">data</code> attribute set to
                   28304:     the data given in the comment token.</p>
                   28305:    </dd>
                   28306: 
                   28307:    <dt>A DOCTYPE token</dt>
                   28308:    <dd>
                   28309:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   28310:    </dd>
                   28311: 
                   28312:    <dt>A start tag whose tag name is "html"</dt>
                   28313:    <dd>
                   28314:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" <a href="#insertion-mode">insertion
                   28315:     mode</a>.</p>
                   28316:    </dd>
                   28317: 
                   28318:    <dt>A start tag whose tag name is "option"</dt>
                   28319:    <dd>
                   28320: 
                   28321:     <p>If the <a href="#current-node">current node</a> is an <code><a href="the-option-element.html#the-option-element">option</a></code>
                   28322:     element, act as if an end tag with the tag name "option" had
                   28323:     been seen.</p>
                   28324: 
                   28325:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   28326: 
                   28327:    </dd>
                   28328: 
                   28329:    <dt>A start tag whose tag name is "optgroup"</dt>
                   28330:    <dd>
                   28331: 
                   28332:     <p>If the <a href="#current-node">current node</a> is an <code><a href="the-option-element.html#the-option-element">option</a></code>
                   28333:     element, act as if an end tag with the tag name "option" had
                   28334:     been seen.</p>
                   28335: 
                   28336:     <p>If the <a href="#current-node">current node</a> is an
                   28337:     <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code> element, act as if an end tag with the
                   28338:     tag name "optgroup" had been seen.</p>
                   28339: 
                   28340:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   28341: 
                   28342:    </dd>
                   28343: 
                   28344:    <dt>An end tag whose tag name is "optgroup"</dt>
                   28345:    <dd>
                   28346: 
                   28347:     <p>First, if the <a href="#current-node">current node</a> is an
                   28348:     <code><a href="the-option-element.html#the-option-element">option</a></code> element, and the node immediately before
                   28349:     it in the <a href="#stack-of-open-elements">stack of open elements</a> is an
                   28350:     <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code> element, then act as if an end tag with
                   28351:     the tag name "option" had been seen.</p>
                   28352: 
                   28353:     <p>If the <a href="#current-node">current node</a> is an
                   28354:     <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code> element, then pop that node from the
                   28355:     <a href="#stack-of-open-elements">stack of open elements</a>. Otherwise, this is a
                   28356:     <a href="#parse-error">parse error</a>; ignore the token.</p>
                   28357: 
                   28358:    </dd>
                   28359: 
                   28360:    <dt>An end tag whose tag name is "option"</dt>
                   28361:    <dd>
                   28362: 
                   28363:     <p>If the <a href="#current-node">current node</a> is an <code><a href="the-option-element.html#the-option-element">option</a></code>
                   28364:     element, then pop that node from the <a href="#stack-of-open-elements">stack of open
                   28365:     elements</a>. Otherwise, this is a <a href="#parse-error">parse
                   28366:     error</a>; ignore the token.</p>
                   28367: 
                   28368:    </dd>
                   28369: 
                   28370:    <dt>An end tag whose tag name is "select"</dt>
                   28371:    <dd>
                   28372: 
                   28373:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-select-scope" title="has an element in select scope">have an element in select
                   28374:     scope</a> with the same tag name as the token, this is a
                   28375:     <a href="#parse-error">parse error</a>. Ignore the token. (<a href="#fragment-case">fragment
                   28376:     case</a>)</p>
                   28377: 
                   28378:     <p>Otherwise:</p>
                   28379: 
                   28380:     <p>Pop elements from the <a href="#stack-of-open-elements">stack of open elements</a>
                   28381:     until a <code><a href="the-select-element.html#the-select-element">select</a></code> element has been popped from the
                   28382:     stack.</p>
                   28383: 
                   28384:     <p><a href="#reset-the-insertion-mode-appropriately">Reset the insertion mode appropriately</a>.</p>
                   28385: 
                   28386:    </dd>
                   28387: 
                   28388:    <dt>A start tag whose tag name is "select"</dt>
                   28389:    <dd>
                   28390: 
                   28391:     <p><a href="#parse-error">Parse error</a>. Act as if the token had been
                   28392:     an end tag with the tag name "select" instead.</p>
                   28393: 
                   28394:    </dd>
                   28395: 
                   28396:    <dt>A start tag whose tag name is one of: "input", "keygen", "textarea"</dt>
                   28397:    <dd>
                   28398: 
                   28399:     <p><a href="#parse-error">Parse error</a>.</p>
                   28400: 
                   28401:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> does not <a href="#has-an-element-in-select-scope" title="has an element in select scope">have a <code>select</code>
                   28402:     element in select scope</a>, ignore the token. (<a href="#fragment-case">fragment
                   28403:     case</a>)</p>
                   28404: 
                   28405:     <p>Otherwise, act as if an end tag with the tag name "select" had
                   28406:     been seen, and reprocess the token.</p>
                   28407: 
                   28408:    </dd>
                   28409: 
                   28410:    <dt>A start tag token whose tag name is "script"</dt>
                   28411:    <dd>
                   28412:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>" <a href="#insertion-mode">insertion
                   28413:     mode</a>.</p>
                   28414:    </dd>
                   28415: 
                   28416:    <dt>An end-of-file token</dt>
                   28417:    <dd>
                   28418: 
                   28419:     <p>If the <a href="#current-node">current node</a> is not the root
                   28420:     <code><a href="the-html-element.html#the-html-element">html</a></code> element, then this is a <a href="#parse-error">parse
                   28421:     error</a>.</p>
                   28422: 
                   28423:     <p class="note">The <a href="#current-node">current node</a> can only be the root
                   28424:     <code><a href="the-html-element.html#the-html-element">html</a></code> element in the <a href="#fragment-case">fragment case</a>.</p>
                   28425: 
                   28426:     <p><a href="#stop-parsing">Stop parsing</a>.</p>
                   28427: 
                   28428:    </dd>
                   28429: 
                   28430:    <dt>Anything else</dt>
                   28431:    <dd>
                   28432:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   28433:    </dd>
                   28434: 
                   28435:   </dl><h6 id="parsing-main-inselectintable"><span class="secno">8.2.5.4.17 </span>The "<dfn title="insertion mode: in select in table">in select in table</dfn>" insertion mode</h6>
                   28436: 
                   28437:   <p>When the user agent is to apply the rules for the "<a href="#parsing-main-inselectintable" title="insertion mode: in select in table">in select in table</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   28438: 
                   28439:   <dl class="switch"><dt>A start tag whose tag name is one of: "caption", "table",
                   28440:    "tbody", "tfoot", "thead", "tr", "td", "th"</dt>
                   28441:    <dd>
                   28442:     <p><a href="#parse-error">Parse error</a>. Act as if an end tag with the tag
                   28443:     name "select" had been seen, and reprocess the token.</p>
                   28444:    </dd>
                   28445: 
                   28446:    <dt>An end tag whose tag name is one of: "caption", "table",
                   28447:    "tbody", "tfoot", "thead", "tr", "td", "th"</dt>
                   28448:    <dd>
                   28449: 
                   28450:     <p><a href="#parse-error">Parse error</a>.</p>
                   28451: 
                   28452:     <p>If the <a href="#stack-of-open-elements">stack of open elements</a> <a href="#has-an-element-in-table-scope">has an
                   28453:     element in table scope</a> with the same tag name as that
                   28454:     of the token, then act as if an end tag with the tag name
                   28455:     "select" had been seen, and reprocess the token. Otherwise,
                   28456:     ignore the token.</p>
                   28457: 
                   28458:    </dd>
                   28459: 
                   28460:    <dt>Anything else</dt>
                   28461:    <dd>
                   28462:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inselect" title="insertion mode: in select">in select</a>" <a href="#insertion-mode">insertion
                   28463:     mode</a>.</p>
                   28464:    </dd>
                   28465: 
                   28466:   </dl><h6 id="parsing-main-afterbody"><span class="secno">8.2.5.4.18 </span>The "<dfn title="insertion mode: after body">after body</dfn>" insertion mode</h6>
                   28467: 
                   28468:   <p>When the user agent is to apply the rules for the "<a href="#parsing-main-afterbody" title="insertion mode: after body">after body</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   28469: 
                   28470:   <dl class="switch"><dt>A character token that is one of U+0009 CHARACTER
                   28471:    TABULATION, "LF" (U+000A), "FF" (U+000C),
                   28472:    "CR" (U+000D), or U+0020 SPACE</dt>
                   28473:    <dd>
                   28474:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" <a href="#insertion-mode">insertion
                   28475:     mode</a>.</p>
                   28476:    </dd>
                   28477: 
                   28478:    <dt>A comment token</dt>
                   28479:    <dd>
                   28480:     <p>Append a <code><a href="infrastructure.html#comment-0">Comment</a></code> node to the first element in
                   28481:     the <a href="#stack-of-open-elements">stack of open elements</a> (the <code><a href="the-html-element.html#the-html-element">html</a></code>
                   28482:     element), with the <code title="">data</code> attribute set to
                   28483:     the data given in the comment token.</p>
                   28484:    </dd>
                   28485: 
                   28486:    <dt>A DOCTYPE token</dt>
                   28487:    <dd>
                   28488:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   28489:    </dd>
                   28490: 
                   28491:    <dt>A start tag whose tag name is "html"</dt>
                   28492:    <dd>
                   28493:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" <a href="#insertion-mode">insertion
                   28494:     mode</a>.</p>
                   28495:    </dd>
                   28496: 
                   28497:    <dt>An end tag whose tag name is "html"</dt>
                   28498:    <dd>
                   28499: 
                   28500:     <p>If the parser was originally created as part of the <a href="#html-fragment-parsing-algorithm">HTML
                   28501:     fragment parsing algorithm</a>, this is a <a href="#parse-error">parse
                   28502:     error</a>; ignore the token. (<a href="#fragment-case">fragment case</a>)</p>
                   28503: 
                   28504:     <p>Otherwise, switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#the-after-after-body-insertion-mode" title="insertion mode: after after body">after after
                   28505:     body</a>".</p>
                   28506: 
                   28507:    </dd>
                   28508: 
                   28509:    <dt>An end-of-file token</dt>
                   28510:    <dd>
                   28511:     <p><a href="#stop-parsing">Stop parsing</a>.</p>
                   28512:    </dd>
                   28513: 
                   28514:    <dt>Anything else</dt>
                   28515:    <dd>
                   28516: 
                   28517:     <p><a href="#parse-error">Parse error</a>. Switch the <a href="#insertion-mode">insertion
                   28518:     mode</a> to "<a href="#parsing-main-inbody" title="insertion mode: in body">in
                   28519:     body</a>" and reprocess the token.</p>
                   28520: 
                   28521:    </dd>
                   28522: 
                   28523:   </dl><h6 id="parsing-main-inframeset"><span class="secno">8.2.5.4.19 </span>The "<dfn title="insertion mode: in frameset">in frameset</dfn>" insertion mode</h6>
                   28524: 
                   28525:   <p>When the user agent is to apply the rules for the "<a href="#parsing-main-inframeset" title="insertion mode: in frameset">in frameset</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   28526: 
                   28527:   <dl class="switch"><dt>A character token that is one of U+0009 CHARACTER
                   28528:    TABULATION, "LF" (U+000A), "FF" (U+000C),
                   28529:    "CR" (U+000D), or U+0020 SPACE</dt>
                   28530:    <dd>
                   28531:     <p><a href="#insert-a-character" title="insert a character">Insert the character</a> into
                   28532:     the <a href="#current-node">current node</a>.</p>
                   28533:    </dd>
                   28534: 
                   28535:    <dt>A comment token</dt>
                   28536:    <dd>
                   28537:     <p>Append a <code><a href="infrastructure.html#comment-0">Comment</a></code> node to the <a href="#current-node">current
                   28538:     node</a> with the <code title="">data</code> attribute set to
                   28539:     the data given in the comment token.</p>
                   28540:    </dd>
                   28541: 
                   28542:    <dt>A DOCTYPE token</dt>
                   28543:    <dd>
                   28544:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   28545:    </dd>
                   28546: 
                   28547:    <dt>A start tag whose tag name is "html"</dt>
                   28548:    <dd>
                   28549:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" <a href="#insertion-mode">insertion
                   28550:     mode</a>.</p>
                   28551:    </dd>
                   28552: 
                   28553:    <dt>A start tag whose tag name is "frameset"</dt>
                   28554:    <dd>
                   28555:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.</p>
                   28556:    </dd>
                   28557: 
                   28558:    <dt>An end tag whose tag name is "frameset"</dt>
                   28559:    <dd>
                   28560: 
                   28561:     <p>If the <a href="#current-node">current node</a> is the root
                   28562:     <code><a href="the-html-element.html#the-html-element">html</a></code> element, then this is a <a href="#parse-error">parse
                   28563:     error</a>; ignore the token. (<a href="#fragment-case">fragment
                   28564:     case</a>)</p>
                   28565: 
                   28566:     <p>Otherwise, pop the <a href="#current-node">current node</a> from the
                   28567:     <a href="#stack-of-open-elements">stack of open elements</a>.</p>
                   28568: 
                   28569:     <p>If the parser was <em>not</em> originally created as part
                   28570:     of the <a href="#html-fragment-parsing-algorithm">HTML fragment parsing algorithm</a>
                   28571:     (<a href="#fragment-case">fragment case</a>), and the <a href="#current-node">current
                   28572:     node</a> is no longer a <code><a href="#frameset">frameset</a></code> element, then
                   28573:     switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-afterframeset" title="insertion mode: after frameset">after
                   28574:     frameset</a>".</p>
                   28575: 
                   28576:    </dd>
                   28577: 
                   28578:    <dt>A start tag whose tag name is "frame"</dt>
                   28579:    <dd>
                   28580: 
                   28581:     <p><a href="#insert-an-html-element">Insert an HTML element</a> for the token.
                   28582:     Immediately pop the <a href="#current-node">current node</a> off the
                   28583:     <a href="#stack-of-open-elements">stack of open elements</a>.</p>
                   28584: 
                   28585:     <p><a href="#acknowledge-self-closing-flag" title="acknowledge self-closing flag">Acknowledge the
                   28586:     token's <i>self-closing flag</i></a>, if it is set.</p>
                   28587: 
                   28588:    </dd>
                   28589: 
                   28590:    <dt>A start tag whose tag name is "noframes"</dt>
                   28591:    <dd>
                   28592:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>" <a href="#insertion-mode">insertion
                   28593:     mode</a>.</p>
                   28594:    </dd>
                   28595: 
                   28596:    <dt>An end-of-file token</dt>
                   28597:    <dd>
                   28598: 
                   28599:     <p>If the <a href="#current-node">current node</a> is not the root
                   28600:     <code><a href="the-html-element.html#the-html-element">html</a></code> element, then this is a <a href="#parse-error">parse
                   28601:     error</a>.</p>
                   28602: 
                   28603:     <p class="note">The <a href="#current-node">current node</a> can only be the root
                   28604:     <code><a href="the-html-element.html#the-html-element">html</a></code> element in the <a href="#fragment-case">fragment case</a>.</p>
                   28605: 
                   28606:     <p><a href="#stop-parsing">Stop parsing</a>.</p>
                   28607: 
                   28608:    </dd>
                   28609: 
                   28610:    <dt>Anything else</dt>
                   28611:    <dd>
                   28612:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   28613:    </dd>
                   28614: 
                   28615:   </dl><h6 id="parsing-main-afterframeset"><span class="secno">8.2.5.4.20 </span>The "<dfn title="insertion mode: after frameset">after frameset</dfn>" insertion mode</h6>
                   28616: 
                   28617:   <p>When the user agent is to apply the rules for the "<a href="#parsing-main-afterframeset" title="insertion mode: after frameset">after frameset</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   28618: 
                   28619:   <!-- due to rules in the "in frameset" mode, this can't be entered in the fragment case -->
                   28620:   <dl class="switch"><dt>A character token that is one of U+0009 CHARACTER
                   28621:    TABULATION, "LF" (U+000A), "FF" (U+000C),
                   28622:    "CR" (U+000D), or U+0020 SPACE</dt>
                   28623:    <dd>
                   28624:     <p><a href="#insert-a-character" title="insert a character">Insert the character</a> into
                   28625:     the <a href="#current-node">current node</a>.</p>
                   28626:    </dd>
                   28627: 
                   28628:    <dt>A comment token</dt>
                   28629:    <dd>
                   28630:     <p>Append a <code><a href="infrastructure.html#comment-0">Comment</a></code> node to the <a href="#current-node">current
                   28631:     node</a> with the <code title="">data</code> attribute set to
                   28632:     the data given in the comment token.</p>
                   28633:    </dd>
                   28634: 
                   28635:    <dt>A DOCTYPE token</dt>
                   28636:    <dd>
                   28637:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   28638:    </dd>
                   28639: 
                   28640:    <dt>A start tag whose tag name is "html"</dt>
                   28641:    <dd>
                   28642:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" <a href="#insertion-mode">insertion
                   28643:     mode</a>.</p>
                   28644:    </dd>
                   28645: 
                   28646:    <dt>An end tag whose tag name is "html"</dt>
                   28647:    <dd>
                   28648:     <p>Switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#the-after-after-frameset-insertion-mode" title="insertion mode: after after frameset">after after
                   28649:     frameset</a>".</p>
                   28650:    </dd>
                   28651: 
                   28652:    <dt>A start tag whose tag name is "noframes"</dt>
                   28653:    <dd>
                   28654:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>" <a href="#insertion-mode">insertion
                   28655:     mode</a>.</p>
                   28656:    </dd>
                   28657: 
                   28658:    <dt>An end-of-file token</dt>
                   28659:    <dd>
                   28660:     <p><a href="#stop-parsing">Stop parsing</a>.</p>
                   28661:    </dd>
                   28662: 
                   28663:    <dt>Anything else</dt>
                   28664:    <dd>
                   28665:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   28666:    </dd>
                   28667: 
                   28668:   </dl><h6 id="the-after-after-body-insertion-mode"><span class="secno">8.2.5.4.21 </span>The "<dfn title="insertion mode: after after body">after after body</dfn>" insertion mode</h6>
                   28669: 
                   28670:   <p>When the user agent is to apply the rules for the "<a href="#the-after-after-body-insertion-mode" title="insertion mode: after after body">after after body</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   28671: 
                   28672:   <dl class="switch"><dt>A comment token</dt>
                   28673:    <dd>
                   28674:     <p>Append a <code><a href="infrastructure.html#comment-0">Comment</a></code> node to the <code><a href="dom.html#document">Document</a></code>
                   28675:     object with the <code title="">data</code> attribute set to the
                   28676:     data given in the comment token.</p>
                   28677:    </dd>
                   28678: 
                   28679:    <dt>A DOCTYPE token</dt>
                   28680:    <dt>A character token that is one of U+0009 CHARACTER
                   28681:    TABULATION, "LF" (U+000A), "FF" (U+000C),
                   28682:    "CR" (U+000D), or U+0020 SPACE</dt>
                   28683:    <dt>A start tag whose tag name is "html"</dt>
                   28684:    <dd>
                   28685:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" <a href="#insertion-mode">insertion
                   28686:     mode</a>.</p>
                   28687:    </dd>
                   28688: 
                   28689:    <dt>An end-of-file token</dt>
                   28690:    <dd>
                   28691:     <p><a href="#stop-parsing">Stop parsing</a>.</p>
                   28692:    </dd>
                   28693: 
                   28694:    <dt>Anything else</dt>
                   28695:    <dd>
                   28696:     <p><a href="#parse-error">Parse error</a>. Switch the <a href="#insertion-mode">insertion mode</a>
                   28697:     to "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" and
                   28698:     reprocess the token.</p>
                   28699:    </dd>
                   28700: 
                   28701:   </dl><h6 id="the-after-after-frameset-insertion-mode"><span class="secno">8.2.5.4.22 </span>The "<dfn title="insertion mode: after after frameset">after after frameset</dfn>" insertion mode</h6>
                   28702: 
                   28703:   <p>When the user agent is to apply the rules for the "<a href="#the-after-after-frameset-insertion-mode" title="insertion mode: after after frameset">after after frameset</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
                   28704: 
                   28705:   <dl class="switch"><dt>A comment token</dt>
                   28706:    <dd>
                   28707:     <p>Append a <code><a href="infrastructure.html#comment-0">Comment</a></code> node to the <code><a href="dom.html#document">Document</a></code>
                   28708:     object with the <code title="">data</code> attribute set to the
                   28709:     data given in the comment token.</p>
                   28710:    </dd>
                   28711: 
                   28712:    <dt>A DOCTYPE token</dt>
                   28713:    <dt>A character token that is one of U+0009 CHARACTER
                   28714:    TABULATION, "LF" (U+000A), "FF" (U+000C),
                   28715:    "CR" (U+000D), or U+0020 SPACE</dt>
                   28716:    <dt>A start tag whose tag name is "html"</dt>
                   28717:    <dd>
                   28718:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" <a href="#insertion-mode">insertion
                   28719:     mode</a>.</p>
                   28720:    </dd>
                   28721: 
                   28722:    <dt>An end-of-file token</dt>
                   28723:    <dd>
                   28724:     <p><a href="#stop-parsing">Stop parsing</a>.</p>
                   28725:    </dd>
                   28726: 
                   28727:    <dt>A start tag whose tag name is "noframes"</dt>
                   28728:    <dd>
                   28729:     <p>Process the token <a href="#using-the-rules-for">using the rules for</a> the "<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>" <a href="#insertion-mode">insertion
                   28730:     mode</a>.</p>
                   28731:    </dd>
                   28732: 
                   28733:    <dt>Anything else</dt>
                   28734:    <dd>
                   28735:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   28736:    </dd>
                   28737: 
                   28738:   </dl><h5 id="parsing-main-inforeign"><span class="secno">8.2.5.5 </span>The rules for parsing tokens <dfn title="insertion mode: in foreign content">in foreign content</dfn></h5>
                   28739: 
                   28740:   <p>When the user agent is to apply the rules for parsing tokens in foreign content, the user agent must handle the token as follows:</p>
                   28741: 
                   28742:   <dl class="switch"><dt>A character token that is U+0000 NULL</dt>
                   28743:    <dd>
                   28744: 
                   28745:     <p><a href="#parse-error">Parse error</a>. <a href="#insert-a-character" title="insert a
                   28746:     character">Insert a U+FFFD REPLACEMENT CHARACTER character</a>
                   28747:     into the <a href="#current-node">current node</a>.</p>
                   28748: 
                   28749:    </dd>
                   28750: 
                   28751:    <dt>A character token that is one of U+0009 CHARACTER TABULATION,
                   28752:    "LF" (U+000A), "FF" (U+000C), "CR" (U+000D), or U+0020 SPACE</dt>
                   28753:    <dd>
                   28754: 
                   28755:     <p><a href="#insert-a-character" title="insert a character">Insert the token's
                   28756:     character</a> into the <a href="#current-node">current node</a>.</p>
                   28757: 
                   28758:    </dd>
                   28759: 
                   28760:    <dt>Any other character token</dt>
                   28761:    <dd>
                   28762: 
                   28763:     <p><a href="#insert-a-character" title="insert a character">Insert the token's
                   28764:     character</a> into the <a href="#current-node">current node</a>.</p>
                   28765: 
                   28766:     <p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok".</p>
                   28767: 
                   28768:    </dd>
                   28769: 
                   28770:    <dt>A comment token</dt>
                   28771:    <dd>
                   28772:     <p>Append a <code><a href="infrastructure.html#comment-0">Comment</a></code> node to the <a href="#current-node">current
                   28773:     node</a> with the <code title="">data</code> attribute set to
                   28774:     the data given in the comment token.</p>
                   28775:    </dd>
                   28776: 
                   28777:    <dt>A DOCTYPE token</dt>
                   28778:    <dd>
                   28779:     <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
                   28780:    </dd>
                   28781: 
                   28782:    <dt>A start tag whose tag name is one of: <!--"a",--> "b", "big",
                   28783:    "blockquote", "body"<!--by inspection-->, "br", "center", "code",
                   28784:    "dd", "div", "dl", "dt"<!-- so that dd and dt can be handled
                   28785:    uniformly throughout the parser -->, "em", "embed", "h1", "h2",
                   28786:    "h3", "h4"<!--for completeness-->, "h5", "h6"<!--for
                   28787:    completeness-->, "head"<!--by inspection-->, "hr", "i", "img",
                   28788:    "li", "listing"<!-- so that pre and listing can be handled
                   28789:    uniformly throughout the parser -->, "menu", "meta", "nobr",
                   28790:    "ol"<!-- so that dl, ul, and ol can be handled uniformly throughout
                   28791:    the parser -->, "p", "pre", "ruby", "s", <!--"script",--> "small",
                   28792:    "span", "strong", "strike"<!-- so that s and strike can be handled
                   28793:    uniformly throughout the parser -->, <!--"style",--> "sub", "sup",
                   28794:    "table"<!--by inspection-->, "tt", "u", "ul", "var"</dt> <!-- this
                   28795:    list was determined empirically by studying over 6,000,000,000
                   28796:    pages that were specifically not XML pages -->
                   28797:    <dt>A start tag whose tag name is "font", if the token has any
                   28798:    attributes named "color", "face", or "size"</dt> <!-- the
                   28799:    attributes here are required so that SVG <font> will go through as
                   28800:    SVG but legacy <font>s won't -->
                   28801: 
                   28802:    <dd>
                   28803: 
                   28804:     <p><a href="#parse-error">Parse error</a>.</p>
                   28805: 
                   28806:     <p>Pop an element from the <a href="#stack-of-open-elements">stack of open elements</a>,
                   28807:     and then keep popping more elements from the <a href="#stack-of-open-elements">stack of open
                   28808:     elements</a> until the <a href="#current-node">current node</a> is a
                   28809:     <a href="#mathml-text-integration-point">MathML text integration point</a>, an <a href="#html-integration-point">HTML
                   28810:     integration point</a>, or an element in the <a href="namespaces.html#html-namespace-0">HTML
                   28811:     namespace</a>.</p>
                   28812: 
                   28813:     <p>Then, reprocess the token.</p>
                   28814: 
                   28815:    </dd>
                   28816: 
                   28817:    <dt>Any other start tag</dt>
                   28818:    <dd>
                   28819: 
                   28820:     <p>If the <a href="#current-node">current node</a> is an element in the
                   28821:     <a href="namespaces.html#mathml-namespace">MathML namespace</a>, <a href="#adjust-mathml-attributes">adjust MathML
                   28822:     attributes</a> for the token. (This fixes the case of MathML
                   28823:     attributes that are not all lowercase.)</p>
                   28824: 
                   28825:     <p>If the <a href="#current-node">current node</a> is an element in the <a href="namespaces.html#svg-namespace">SVG
                   28826:     namespace</a>, and the token's tag name is one of the ones in
                   28827:     the first column of the following table, change the tag name to
                   28828:     the name given in the corresponding cell in the second
                   28829:     column. (This fixes the case of SVG elements that are not all
                   28830:     lowercase.)</p>
                   28831: 
                   28832:     <table><thead><tr><th> Tag name </th><th> Element name
                   28833:      </th></tr></thead><tbody><tr><td> <code title="">altglyph</code> </td><td> <code title="">altGlyph</code>
                   28834:       </td></tr><tr><td> <code title="">altglyphdef</code> </td><td> <code title="">altGlyphDef</code>
                   28835:       </td></tr><tr><td> <code title="">altglyphitem</code> </td><td> <code title="">altGlyphItem</code>
                   28836:       </td></tr><tr><td> <code title="">animatecolor</code> </td><td> <code title="">animateColor</code>
                   28837:       </td></tr><tr><td> <code title="">animatemotion</code> </td><td> <code title="">animateMotion</code>
                   28838:       </td></tr><tr><td> <code title="">animatetransform</code> </td><td> <code title="">animateTransform</code>
                   28839:       </td></tr><tr><td> <code title="">clippath</code> </td><td> <code title="">clipPath</code>
                   28840:       </td></tr><tr><td> <code title="">feblend</code> </td><td> <code title="">feBlend</code>
                   28841:       </td></tr><tr><td> <code title="">fecolormatrix</code> </td><td> <code title="">feColorMatrix</code>
                   28842:       </td></tr><tr><td> <code title="">fecomponenttransfer</code> </td><td> <code title="">feComponentTransfer</code>
                   28843:       </td></tr><tr><td> <code title="">fecomposite</code> </td><td> <code title="">feComposite</code>
                   28844:       </td></tr><tr><td> <code title="">feconvolvematrix</code> </td><td> <code title="">feConvolveMatrix</code>
                   28845:       </td></tr><tr><td> <code title="">fediffuselighting</code> </td><td> <code title="">feDiffuseLighting</code>
                   28846:       </td></tr><tr><td> <code title="">fedisplacementmap</code> </td><td> <code title="">feDisplacementMap</code>
                   28847:       </td></tr><tr><td> <code title="">fedistantlight</code> </td><td> <code title="">feDistantLight</code>
                   28848:       </td></tr><tr><td> <code title="">feflood</code> </td><td> <code title="">feFlood</code>
                   28849:       </td></tr><tr><td> <code title="">fefunca</code> </td><td> <code title="">feFuncA</code>
                   28850:       </td></tr><tr><td> <code title="">fefuncb</code> </td><td> <code title="">feFuncB</code>
                   28851:       </td></tr><tr><td> <code title="">fefuncg</code> </td><td> <code title="">feFuncG</code>
                   28852:       </td></tr><tr><td> <code title="">fefuncr</code> </td><td> <code title="">feFuncR</code>
                   28853:       </td></tr><tr><td> <code title="">fegaussianblur</code> </td><td> <code title="">feGaussianBlur</code>
                   28854:       </td></tr><tr><td> <code title="">feimage</code> </td><td> <code title="">feImage</code>
                   28855:       </td></tr><tr><td> <code title="">femerge</code> </td><td> <code title="">feMerge</code>
                   28856:       </td></tr><tr><td> <code title="">femergenode</code> </td><td> <code title="">feMergeNode</code>
                   28857:       </td></tr><tr><td> <code title="">femorphology</code> </td><td> <code title="">feMorphology</code>
                   28858:       </td></tr><tr><td> <code title="">feoffset</code> </td><td> <code title="">feOffset</code>
                   28859:       </td></tr><tr><td> <code title="">fepointlight</code> </td><td> <code title="">fePointLight</code>
                   28860:       </td></tr><tr><td> <code title="">fespecularlighting</code> </td><td> <code title="">feSpecularLighting</code>
                   28861:       </td></tr><tr><td> <code title="">fespotlight</code> </td><td> <code title="">feSpotLight</code>
                   28862:       </td></tr><tr><td> <code title="">fetile</code> </td><td> <code title="">feTile</code>
                   28863:       </td></tr><tr><td> <code title="">feturbulence</code> </td><td> <code title="">feTurbulence</code>
                   28864:       </td></tr><tr><td> <code title="">foreignobject</code> </td><td> <code title="">foreignObject</code>
                   28865:       </td></tr><tr><td> <code title="">glyphref</code> </td><td> <code title="">glyphRef</code>
                   28866:       </td></tr><tr><td> <code title="">lineargradient</code> </td><td> <code title="">linearGradient</code>
                   28867:       </td></tr><tr><td> <code title="">radialgradient</code> </td><td> <code title="">radialGradient</code>
                   28868:       <!--<tr> <td> <code title="">solidcolor</code> <td> <code title="">solidColor</code> (SVG 1.2)-->
                   28869:       </td></tr><tr><td> <code title="">textpath</code> </td><td> <code title="">textPath</code>
                   28870:     </td></tr></tbody></table><p>If the <a href="#current-node">current node</a> is an element in the <a href="namespaces.html#svg-namespace">SVG
                   28871:     namespace</a>, <a href="#adjust-svg-attributes">adjust SVG attributes</a> for the
                   28872:     token. (This fixes the case of SVG attributes that are not all
                   28873:     lowercase.)</p>
                   28874: 
                   28875:     <p><a href="#adjust-foreign-attributes">Adjust foreign attributes</a> for the token. (This
                   28876:     fixes the use of namespaced attributes, in particular XLink in
                   28877:     SVG.)</p>
                   28878: 
                   28879:     <p><a href="#insert-a-foreign-element">Insert a foreign element</a> for the token, in the
                   28880:     same namespace as the <a href="#current-node">current node</a>.</p>
                   28881: 
                   28882:     <p>If the token has its <i>self-closing flag</i> set, then run the
                   28883:     appropriate steps from the following list:</p>
                   28884: 
                   28885:     <dl class="switch"><dt>If the token's tag name is "script"</dt>
                   28886: 
                   28887:      <dd>
                   28888: 
                   28889:       <p><a href="#acknowledge-self-closing-flag" title="acknowledge self-closing flag">Acknowledge the
                   28890:       token's <i>self-closing flag</i></a>, and then act as if an
                   28891:       end tag with the tag name "script" had been seen.</p>
                   28892: 
                   28893:      </dd>
                   28894: 
                   28895:      <dt>Otherwise</dt>
                   28896: 
                   28897:      <dd>
                   28898: 
                   28899:       <p>Pop the <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
                   28900:       elements</a> and <a href="#acknowledge-self-closing-flag" title="acknowledge self-closing
                   28901:       flag">acknowledge the token's <i>self-closing
                   28902:       flag</i></a>.</p>
                   28903: 
                   28904:      </dd>
                   28905: 
                   28906:     </dl></dd>
                   28907: 
                   28908:    <dt id="scriptForeignEndTag">An end tag whose tag name is "script", if the <a href="#current-node">current node</a> is a <code title="">script</code> element in the <a href="namespaces.html#svg-namespace">SVG namespace</a></dt>
                   28909:    <dd>
                   28910: 
                   28911:     <p>Pop the <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
                   28912:     elements</a>.</p>
                   28913: 
                   28914:     <p>Let the <var title="">old insertion point</var> have the
                   28915:     same value as the current <a href="#insertion-point">insertion point</a>. Let
                   28916:     the <a href="#insertion-point">insertion point</a> be just before the <a href="#next-input-character">next
                   28917:     input character</a>.</p>
                   28918: 
                   28919:     <p>Increment the parser's <a href="#script-nesting-level">script nesting level</a> by
                   28920:     one. Set the <a href="#parser-pause-flag">parser pause flag</a> to true.</p>
                   28921: 
                   28922:     <p><a href="http://www.w3.org/TR/SVGMobile12/script.html#ScriptContentProcessing">Process
                   28923:     the <code title="">script</code> element</a> according to the SVG
                   28924:     rules, if the user agent supports SVG. <a href="#refsSVG">[SVG]</a></p>
                   28925: 
                   28926:     <p class="note">Even if this causes <a href="dynamic-markup-insertion.html#dom-document-write" title="dom-document-write">new characters to be inserted into the
                   28927:     tokenizer</a>, the parser will not be executed reentrantly,
                   28928:     since the <a href="#parser-pause-flag">parser pause flag</a> is true.</p>
                   28929: 
                   28930:     <p>Decrement the parser's <a href="#script-nesting-level">script nesting level</a> by
                   28931:     one. If the parser's <a href="#script-nesting-level">script nesting level</a> is zero,
                   28932:     then set the <a href="#parser-pause-flag">parser pause flag</a> to false.</p>
                   28933: 
                   28934:     <p>Let the <a href="#insertion-point">insertion point</a> have the value of the <var title="">old insertion point</var>. (In other words, restore the
                   28935:     <a href="#insertion-point">insertion point</a> to its previous value. This value
                   28936:     might be the "undefined" value.)</p>
                   28937: 
                   28938:    </dd>
                   28939: 
                   28940:    <dt>Any other end tag</dt>
                   28941: 
                   28942:    <dd>
                   28943: 
                   28944:     <p>Run these steps:</p>
                   28945: 
                   28946:     <ol><li><p>Initialize <var title="">node</var> to be the <a href="#current-node">current
                   28947:      node</a> (the bottommost node of the stack).</p></li>
                   28948: 
                   28949:      <li><p>If <var title="">node</var> is not an element with the
                   28950:      same tag name as the token, then this is a <a href="#parse-error">parse
                   28951:      error</a>.</p></li>
                   28952: 
                   28953:      <li><p><i>Loop</i>: If <var title="">node</var>'s tag name,
                   28954:      <a href="infrastructure.html#converted-to-ascii-lowercase">converted to ASCII lowercase</a>, is the same as the tag
                   28955:      name of the token, pop elements from the <a href="#stack-of-open-elements">stack of open
                   28956:      elements</a> until <var title="">node</var> has been popped
                   28957:      from the stack, and then abort these steps.</p></li>
                   28958: 
                   28959:      <li><p>Set <var title="">node</var> to the previous entry in the
                   28960:      <a href="#stack-of-open-elements">stack of open elements</a>.</p></li>
                   28961: 
                   28962:      <li><p>If <var title="">node</var> is not an element in the
                   28963:      <a href="namespaces.html#html-namespace-0">HTML namespace</a>, return to the step labeled
                   28964:      <i>loop</i>.</p></li>
                   28965: 
                   28966:      <li><p>Otherwise, process the token according to the rules given
                   28967:      in the section corresponding to the current <a href="#insertion-mode">insertion
                   28968:      mode</a> in HTML content.</p></li>
                   28969: 
                   28970:     </ol></dd>
                   28971: 
                   28972:   </dl></div>
                   28973: 
                   28974: 
                   28975:   <div class="impl">
                   28976: 
                   28977:   <h4 id="the-end"><span class="secno">8.2.6 </span>The end</h4>
                   28978: 
                   28979:   <p>Once the user agent <dfn id="stop-parsing" title="stop parsing">stops parsing</dfn>
                   28980:   the document, the user agent must run the following steps:</p>
                   28981: 
                   28982:   <ol><!-- this happens as part of one of the tasks that runs the parser --><li><p>Set the <a href="dom.html#current-document-readiness">current document readiness</a> to "<code title="">interactive</code>" <!-- this also synchronously fires an
                   28983:    event --> and the <a href="#insertion-point">insertion point</a> to
                   28984:    undefined.</p></li>
                   28985: 
                   28986:    <li><p>Pop <em>all</em> the nodes off the <a href="#stack-of-open-elements">stack of open
                   28987:    elements</a>.</p></li>
                   28988: 
                   28989:    <li><p>If the <a href="the-script-element.html#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing">list of scripts that will execute when the
                   28990:    document has finished parsing</a> is not empty, run these
                   28991:    substeps:</p>
                   28992: 
                   28993:     <ol><li><p><a href="#spin-the-event-loop">Spin the event loop</a> until the first
                   28994:      <code><a href="the-script-element.html#the-script-element">script</a></code> in the <a href="the-script-element.html#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing">list of scripts that will
                   28995:      execute when the document has finished parsing</a> has its
                   28996:      <a href="the-script-element.html#ready-to-be-parser-executed">"ready to be parser-executed"</a> flag set <em>and</em>
                   28997:      the parser's <code><a href="dom.html#document">Document</a></code> <a href="styling.html#has-no-style-sheet-that-is-blocking-scripts">has no style sheet that
                   28998:      is blocking scripts</a>.</p></li>
                   28999: 
                   29000:      <li><p><a href="the-script-element.html#execute-the-script-block" title="execute the script block">Execute</a> the
                   29001:      first <code><a href="the-script-element.html#the-script-element">script</a></code> in the <a href="the-script-element.html#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing">list of scripts that will
                   29002:      execute when the document has finished parsing</a>.</p></li>
                   29003: 
                   29004:      <li><p>Remove the first <code><a href="the-script-element.html#the-script-element">script</a></code> element from the
                   29005:      <a href="the-script-element.html#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing">list of scripts that will execute when the document has
                   29006:      finished parsing</a> (i.e. shift out the first entry in the
                   29007:      list).</p></li>
                   29008: 
                   29009:      <li><p>If the <a href="the-script-element.html#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing">list of scripts that will execute when the
                   29010:      document has finished parsing</a> is still not empty, repeat
                   29011:      these substeps again from substep 1.</p>
                   29012: 
                   29013:     </li></ol></li>
                   29014: 
                   29015:    <li><p><a href="#queue-a-task">Queue a task</a> to <a href="#fire-a-simple-event">fire a simple
                   29016:    event</a> that bubbles named <code title="event-DOMContentLoaded">DOMContentLoaded</code> at the
                   29017:    <code><a href="dom.html#document">Document</a></code>.</p></li>
                   29018: 
                   29019:    <li><p><a href="#spin-the-event-loop">Spin the event loop</a> until the <a href="the-script-element.html#set-of-scripts-that-will-execute-as-soon-as-possible">set of
                   29020:    scripts that will execute as soon as possible</a> and the
                   29021:    <a href="the-script-element.html#list-of-scripts-that-will-execute-in-order-as-soon-as-possible">list of scripts that will execute in order as soon as
                   29022:    possible</a> are empty.</p></li> <!-- this step is not redundant
                   29023:    with the next one, since <script> nodes delay the load event of the
                   29024:    document they are in, but they might change document between being
                   29025:    added to one document's set/list and executing those scripts, so
                   29026:    they might be delaying another document but still be in this
                   29027:    document's set/list. -->
                   29028: 
                   29029:    <li><p><a href="#spin-the-event-loop">Spin the event loop</a> until there is nothing that
                   29030:    <dfn id="delay-the-load-event" title="delay the load event">delays the load event</dfn> in
                   29031:    the <code><a href="dom.html#document">Document</a></code>.</p></li>
                   29032: 
                   29033:    <li><p><a href="#queue-a-task">Queue a task</a> to set the <a href="dom.html#current-document-readiness">current document
                   29034:    readiness</a> to "<code title="">complete</code>"<!-- this also
                   29035:    fires an event synchronously during the task -->, and then, if the
                   29036:    <code><a href="dom.html#document">Document</a></code> is in a <a href="#browsing-context">browsing context</a>, to
                   29037:    <a href="#fire-a-simple-event">fire a simple event</a> named <code title="event-load">load</code> at the <code><a href="dom.html#document">Document</a></code>'s
                   29038:    <code><a href="#window">Window</a></code> object, but with its <code title="dom-event-target"><a href="infrastructure.html#dom-event-target">target</a></code> set to the
                   29039:    <code><a href="dom.html#document">Document</a></code> object (and the <code title="dom-event-currentTarget">currentTarget</code> set to the
                   29040:    <code><a href="#window">Window</a></code> object).</p></li>
                   29041: 
                   29042:    <li>
                   29043: 
                   29044:     <p>If the <code><a href="dom.html#document">Document</a></code> is in a <a href="#browsing-context">browsing
                   29045:     context</a>, then <a href="#queue-a-task">queue a task</a> to run the
                   29046:     following substeps:</p>
                   29047: 
                   29048:     <ol><li><p>If the <code><a href="dom.html#document">Document</a></code>'s <a href="#page-showing">page showing</a>
                   29049:      flag is true, then abort this task (i.e. don't fire the event
                   29050:      below).</p></li> <!-- i don't see how this could be, but just to
                   29051:      be sure... -->
                   29052: 
                   29053:      <li><p>Set the <code><a href="dom.html#document">Document</a></code>'s <a href="#page-showing">page showing</a>
                   29054:      flag to true.</p></li>
                   29055: 
                   29056:      <li><p>Fire a <code title="event-pageshow"><a href="#event-pageshow">pageshow</a></code> event
                   29057:      at the <code><a href="#window">Window</a></code> object of the <code><a href="dom.html#document">Document</a></code>,
                   29058:      but with its <code title="dom-event-target"><a href="infrastructure.html#dom-event-target">target</a></code> set to
                   29059:      the <code><a href="dom.html#document">Document</a></code> object (and the <code title="dom-event-currentTarget">currentTarget</code> set to the
                   29060:      <code><a href="#window">Window</a></code> object), using the
                   29061:      <code><a href="#pagetransitionevent">PageTransitionEvent</a></code> interface, with the <code title="dom-PageTransitionEvent-persisted"><a href="#dom-pagetransitionevent-persisted">persisted</a></code>
                   29062:      attribute initialized to false. This event must not bubble, must
                   29063:      not be cancelable, and has no default action.</p></li>
                   29064: 
                   29065:     </ol></li>
                   29066: 
                   29067:    <li><p>If the <code><a href="dom.html#document">Document</a></code> has any <a href="#pending-application-cache-download-process-tasks">pending
                   29068:    application cache download process tasks</a>, then <a href="#queue-a-task" title="queue a task">queue</a> each such <a href="#concept-task" title="concept-task">task</a> in the order they were added to
                   29069:    the list of <a href="#pending-application-cache-download-process-tasks">pending application cache download process
                   29070:    tasks</a>, and then empty the list of <a href="#pending-application-cache-download-process-tasks">pending application
                   29071:    cache download process tasks</a>. The <a href="#task-source">task source</a>
                   29072:    for these <a href="#concept-task" title="concept-task">tasks</a> is the
                   29073:    <a href="#networking-task-source">networking task source</a>.</p></li>
                   29074: 
                   29075:    <li><p>If the <code><a href="dom.html#document">Document</a></code>'s <a href="#print-when-loaded">print when
                   29076:    loaded</a> flag is set, then run the <a href="#printing-steps">printing
                   29077:    steps</a>.</p></li>
                   29078: 
                   29079:    <li><p>The <code><a href="dom.html#document">Document</a></code> is now <dfn id="ready-for-post-load-tasks">ready for post-load
                   29080:    tasks</dfn>.</p></li>
                   29081: 
                   29082:    <li><p><a href="#queue-a-task">Queue a task</a> to mark the <code><a href="dom.html#document">Document</a></code>
                   29083:    as <dfn id="completely-loaded">completely loaded</dfn>.</p></li>
                   29084: 
                   29085:   </ol><p>When the user agent is to <dfn id="abort-a-parser">abort a parser</dfn>, it must run
                   29086:   the following steps:</p>
                   29087: 
                   29088:   <ol><li><p>Throw away any pending content in the <a href="#input-stream">input
                   29089:    stream</a>, and discard any future content that would have been
                   29090:    added to it.</p></li>
                   29091: 
                   29092:    <li><p>Set the <a href="dom.html#current-document-readiness">current document readiness</a> to "<code title="">interactive</code>"<!-- this synchronously fires an event
                   29093:    -->.</p></li>
                   29094: 
                   29095:    <li><p>Pop <em>all</em> the nodes off the <a href="#stack-of-open-elements">stack of open
                   29096:    elements</a>.</p></li>
                   29097: 
                   29098:    <li><p>Set the <a href="dom.html#current-document-readiness">current document readiness</a> to "<code title="">complete</code>"<!-- this also synchronously fires an
                   29099:    event -->.</p></li>
                   29100: 
                   29101:    <!-- anything else? this is things that happen when you call
                   29102:    document.open() on a document that's still being parsed, or when
                   29103:    you navigate a document that's still parsing, or navigate the
                   29104:    parent of a frame with a document that's still parsing, or the user
                   29105:    hits "stop". Should the pending scripts be blown away or anything?
                   29106:    -->
                   29107: 
                   29108:   </ol><p>Except where otherwise specified, the <a href="#task-source">task source</a>
                   29109:   for the <a href="#concept-task" title="concept-task">tasks</a> mentioned in this
                   29110:   section is the <a href="#dom-manipulation-task-source">DOM manipulation task source</a>.</p>
                   29111: 
                   29112:   </div>
                   29113: 
                   29114: 
                   29115:   <div class="impl">
                   29116: 
                   29117:   <h4 id="coercing-an-html-dom-into-an-infoset"><span class="secno">8.2.7 </span>Coercing an HTML DOM into an infoset</h4>
                   29118: 
                   29119:   <p>When an application uses an <a href="#html-parser">HTML parser</a> in
                   29120:   conjunction with an XML pipeline, it is possible that the
                   29121:   constructed DOM is not compatible with the XML tool chain in certain
                   29122:   subtle ways. For example, an XML toolchain might not be able to
                   29123:   represent attributes with the name <code title="">xmlns</code>,
                   29124:   since they conflict with the Namespaces in XML syntax. There is also
                   29125:   some data that the <a href="#html-parser">HTML parser</a> generates that isn't
                   29126:   included in the DOM itself. This section specifies some rules for
                   29127:   handling these issues.</p>
                   29128: 
                   29129:   <p>If the XML API being used doesn't support DOCTYPEs, the tool may
                   29130:   drop DOCTYPEs altogether.</p>
                   29131: 
                   29132:   <p>If the XML API doesn't support attributes in no namespace that
                   29133:   are named "<code title="">xmlns</code>", attributes whose names
                   29134:   start with "<code title="">xmlns:</code>", or attributes in the
                   29135:   <a href="namespaces.html#xmlns-namespace">XMLNS namespace</a>, then the tool may drop such
                   29136:   attributes.</p>
                   29137: 
                   29138:   <p>The tool may annotate the output with any namespace declarations
                   29139:   required for proper operation.</p>
                   29140: 
                   29141:   <p>If the XML API being used restricts the allowable characters in
                   29142:   the local names of elements and attributes, then the tool may map
                   29143:   all element and attribute local names that the API wouldn't support
                   29144:   to a set of names that <em>are</em> allowed, by replacing any
                   29145:   character that isn't supported with the uppercase letter U and the
                   29146:   six digits of the character's Unicode code point when expressed in
                   29147:   hexadecimal, using digits 0-9 and capital letters A-F as the
                   29148:   symbols, in increasing numeric order.</p>
                   29149: 
                   29150:   <p class="example">For example, the element name <code title="">foo&lt;bar</code>, which can be output by the <a href="#html-parser">HTML
                   29151:   parser</a>, though it is neither a legal HTML element name nor a
                   29152:   well-formed XML element name, would be converted into <code title="">fooU00003Cbar</code>, which <em>is</em> a well-formed XML
                   29153:   element name (though it's still not legal in HTML by any means).</p>
                   29154: 
                   29155:   <p class="example">As another example, consider the attribute
                   29156:   <code>xlink:href</code>. Used on a MathML element, it becomes, after
                   29157:   being <a href="#adjust-foreign-attributes" title="adjust foreign attributes">adjusted</a>, an
                   29158:   attribute with a prefix "<code title="">xlink</code>" and a local
                   29159:   name "<code title="">href</code>". However, used on an HTML element,
                   29160:   it becomes an attribute with no prefix and the local name "<code title="">xlink:href</code>", which is not a valid NCName, and thus
                   29161:   might not be accepted by an XML API. It could thus get converted,
                   29162:   becoming "<code title="">xlinkU00003Ahref</code>".</p>
                   29163: 
                   29164:   <p class="note">The resulting names from this conversion
                   29165:   conveniently can't clash with any attribute generated by the
                   29166:   <a href="#html-parser">HTML parser</a>, since those are all either lowercase or
                   29167:   those listed in the <a href="#adjust-foreign-attributes">adjust foreign attributes</a>
                   29168:   algorithm's table.</p>
                   29169: 
                   29170:   <p>If the XML API restricts comments from having two consecutive
                   29171:   "--" (U+002D) characters, the tool may insert a single
                   29172:   U+0020 SPACE character between any such offending characters.</p>
                   29173: 
                   29174:   <p>If the XML API restricts comments from ending in a
                   29175:   "-" (U+002D) character, the tool may insert a single
                   29176:   U+0020 SPACE character at the end of such comments.</p>
                   29177: 
                   29178:   <p>If the XML API restricts allowed characters in character data,
                   29179:   attribute values, or comments, the tool may replace any "FF" (U+000C) character with a U+0020 SPACE character, and any other
                   29180:   literal non-XML character with a U+FFFD REPLACEMENT CHARACTER.</p>
                   29181: 
                   29182:   <p>If the tool has no way to convey out-of-band information, then
                   29183:   the tool may drop the following information:</p>
                   29184: 
                   29185:   <ul><li>Whether the document is set to <i><a href="infrastructure.html#no-quirks-mode">no-quirks mode</a></i>,
                   29186:    <i><a href="infrastructure.html#limited-quirks-mode">limited-quirks mode</a></i>, or <i><a href="infrastructure.html#quirks-mode">quirks mode</a></i></li>
                   29187: 
                   29188:    <li>The association between form controls and forms that aren't
                   29189:    their nearest <code><a href="the-form-element.html#the-form-element">form</a></code> element ancestor (use of the
                   29190:    <a href="#form-element-pointer"><code>form</code> element pointer</a> in the parser)</li>
                   29191: 
                   29192:   </ul><p class="note">The mutations allowed by this section apply
                   29193:   <em>after</em> the <a href="#html-parser">HTML parser</a>'s rules have been
                   29194:   applied. For example, a <code title="">&lt;a::&gt;</code> start tag
                   29195:   will be closed by a <code title="">&lt;/a::&gt;</code> end tag, and
                   29196:   never by a <code title="">&lt;/aU00003AU00003A&gt;</code> end tag, even
                   29197:   if the user agent is using the rules above to then generate an
                   29198:   actual element in the DOM with the name <code title="">aU00003AU00003A</code> for that start tag.</p>
                   29199: 
                   29200:   </div>
                   29201: 
                   29202: 
                   29203:   <div class="impl">
                   29204: 
                   29205:   <h4 id="an-introduction-to-error-handling-and-strange-cases-in-the-parser"><span class="secno">8.2.8 </span>An introduction to error handling and strange cases in the parser</h4>
                   29206: 
                   29207:   <p><i>This section is non-normative.</i></p>
                   29208:   <p>This section examines some erroneous markup and discusses how
                   29209:   the <a href="#html-parser">HTML parser</a> handles these cases.</p>
                   29210: 
                   29211: 
                   29212:   <h5 id="misnested-tags:-b-i-/b-/i"><span class="secno">8.2.8.1 </span>Misnested tags: &lt;b&gt;&lt;i&gt;&lt;/b&gt;&lt;/i&gt;</h5>
                   29213: 
                   29214:   <p><i>This section is non-normative.</i></p>
                   29215:   <p>The most-often discussed example of erroneous markup is as
                   29216:   follows:</p>
                   29217: 
                   29218:   <pre>&lt;p&gt;1&lt;b&gt;2&lt;i&gt;3&lt;/b&gt;4&lt;/i&gt;5&lt;/p&gt;</pre>
                   29219: 
                   29220:   <p>The parsing of this markup is straightforward up to the "3". At
                   29221:   this point, the DOM looks like this:</p>
                   29222: 
                   29223:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-p-element.html#the-p-element">p</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">1</span></li><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">2</span></li><li class="t1"><code><a href="the-i-element.html#the-i-element">i</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">3</span></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul><p>Here, the <a href="#stack-of-open-elements">stack of open elements</a> has five elements
                   29224:   on it: <code><a href="the-html-element.html#the-html-element">html</a></code>, <code><a href="the-body-element.html#the-body-element">body</a></code>, <code><a href="the-p-element.html#the-p-element">p</a></code>,
                   29225:   <code><a href="the-b-element.html#the-b-element">b</a></code>, and <code><a href="the-i-element.html#the-i-element">i</a></code>. The <a href="#list-of-active-formatting-elements">list of active
                   29226:   formatting elements</a> just has two: <code><a href="the-b-element.html#the-b-element">b</a></code> and
                   29227:   <code><a href="the-i-element.html#the-i-element">i</a></code>. The <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>".</p>
                   29228: 
                   29229:   <p>Upon receiving the end tag token with the tag name "b", the "<a href="#adoptionAgency">adoption agency algorithm</a>" is
                   29230:   invoked. This is a simple case, in that the <var title="">formatting
                   29231:   element</var> is the <code><a href="the-b-element.html#the-b-element">b</a></code> element, and there is no
                   29232:   <var title="">furthest block</var>. Thus, the <a href="#stack-of-open-elements">stack of open
                   29233:   elements</a> ends up with just three elements: <code><a href="the-html-element.html#the-html-element">html</a></code>,
                   29234:   <code><a href="the-body-element.html#the-body-element">body</a></code>, and <code><a href="the-p-element.html#the-p-element">p</a></code>, while the <a href="#list-of-active-formatting-elements">list of
                   29235:   active formatting elements</a> has just one: <code><a href="the-i-element.html#the-i-element">i</a></code>. The
                   29236:   DOM tree is unmodified at this point.</p>
                   29237: 
                   29238:   <p>The next token is a character ("4"), triggers the <a href="#reconstruct-the-active-formatting-elements" title="reconstruct the active formatting elements">reconstruction of
                   29239:   the active formatting elements</a>, in this case just the
                   29240:   <code><a href="the-i-element.html#the-i-element">i</a></code> element. A new <code><a href="the-i-element.html#the-i-element">i</a></code> element is thus created
                   29241:   for the "4" <code><a href="infrastructure.html#text-0">Text</a></code> node. After the end tag token for the
                   29242:   "i" is also received, and the "5" <code><a href="infrastructure.html#text-0">Text</a></code> node is
                   29243:   inserted, the DOM looks as follows:</p>
                   29244: 
                   29245:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-p-element.html#the-p-element">p</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">1</span></li><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">2</span></li><li class="t1"><code><a href="the-i-element.html#the-i-element">i</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">3</span></li></ul></li></ul></li><li class="t1"><code><a href="the-i-element.html#the-i-element">i</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">4</span></li></ul></li><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">5</span></li></ul></li></ul></li></ul></li></ul><h5 id="misnested-tags:-b-p-/b-/p"><span class="secno">8.2.8.2 </span>Misnested tags: &lt;b&gt;&lt;p&gt;&lt;/b&gt;&lt;/p&gt;</h5>
                   29246: 
                   29247:   <p><i>This section is non-normative.</i></p>
                   29248:   <p>A case similar to the previous one is the following:</p>
                   29249: 
                   29250:   <pre>&lt;b&gt;1&lt;p&gt;2&lt;/b&gt;3&lt;/p&gt;</pre>
                   29251: 
                   29252:   <p>Up to the "2" the parsing here is straightforward:</p>
                   29253: 
                   29254:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">1</span></li><li class="t1"><code><a href="the-p-element.html#the-p-element">p</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">2</span></li></ul></li></ul></li></ul></li></ul></li></ul><p>The interesting part is when the end tag token with the tag name
                   29255:   "b" is parsed.</p>
                   29256: 
                   29257:   <p>Before that token is seen, the <a href="#stack-of-open-elements">stack of open
                   29258:   elements</a> has four elements on it: <code><a href="the-html-element.html#the-html-element">html</a></code>,
                   29259:   <code><a href="the-body-element.html#the-body-element">body</a></code>, <code><a href="the-b-element.html#the-b-element">b</a></code>, and <code><a href="the-p-element.html#the-p-element">p</a></code>. The
                   29260:   <a href="#list-of-active-formatting-elements">list of active formatting elements</a> just has the one:
                   29261:   <code><a href="the-b-element.html#the-b-element">b</a></code>. The <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>".</p>
                   29262: 
                   29263:   <p>Upon receiving the end tag token with the tag name "b", the "<a href="#adoptionAgency">adoption agency algorithm</a>" is invoked, as
                   29264:   in the previous example. However, in this case, there <em>is</em> a
                   29265:   <var title="">furthest block</var>, namely the <code><a href="the-p-element.html#the-p-element">p</a></code> element. Thus,
                   29266:   this time the adoption agency algorithm isn't skipped over.</p>
                   29267: 
                   29268:   <p>The <var title="">common ancestor</var> is the <code><a href="the-body-element.html#the-body-element">body</a></code>
                   29269:   element. A conceptual "bookmark" marks the position of the
                   29270:   <code><a href="the-b-element.html#the-b-element">b</a></code> in the <a href="#list-of-active-formatting-elements">list of active formatting
                   29271:   elements</a>, but since that list has only one element in it,
                   29272:   the bookmark won't have much effect.</p>
                   29273: 
                   29274:   <p>As the algorithm progresses, <var title="">node</var> ends up set
                   29275:   to the formatting element (<code><a href="the-b-element.html#the-b-element">b</a></code>), and <var title="">last
                   29276:   node</var> ends up set to the <var title="">furthest block</var>
                   29277:   (<code><a href="the-p-element.html#the-p-element">p</a></code>).</p>
                   29278: 
                   29279:   <p>The <var title="">last node</var> gets appended (moved) to the
                   29280:   <var title="">common ancestor</var>, so that the DOM looks like:</p>
                   29281: 
                   29282:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">1</span></li></ul></li><li class="t1"><code><a href="the-p-element.html#the-p-element">p</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">2</span></li></ul></li></ul></li></ul></li></ul><p>A new <code><a href="the-b-element.html#the-b-element">b</a></code> element is created, and the children of the
                   29283:   <code><a href="the-p-element.html#the-p-element">p</a></code> element are moved to it:</p>
                   29284: 
                   29285:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">1</span></li></ul></li><li class="t1"><code><a href="the-p-element.html#the-p-element">p</a></code></li></ul></li></ul></li></ul><ul class="domTree"><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">2</span></li></ul></li></ul><p>Finally, the new <code><a href="the-b-element.html#the-b-element">b</a></code> element is appended to the
                   29286:   <code><a href="the-p-element.html#the-p-element">p</a></code> element, so that the DOM looks like:</p>
                   29287: 
                   29288:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">1</span></li></ul></li><li class="t1"><code><a href="the-p-element.html#the-p-element">p</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">2</span></li></ul></li></ul></li></ul></li></ul></li></ul><p>The <code><a href="the-b-element.html#the-b-element">b</a></code> element is removed from the <a href="#list-of-active-formatting-elements">list of
                   29289:   active formatting elements</a> and the <a href="#stack-of-open-elements">stack of open
                   29290:   elements</a>, so that when the "3" is parsed, it is appended to
                   29291:   the <code><a href="the-p-element.html#the-p-element">p</a></code> element:</p>
                   29292: 
                   29293:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">1</span></li></ul></li><li class="t1"><code><a href="the-p-element.html#the-p-element">p</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">2</span></li></ul></li><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">3</span></li></ul></li></ul></li></ul></li></ul><h5 id="unexpected-markup-in-tables"><span class="secno">8.2.8.3 </span>Unexpected markup in tables</h5>
                   29294: 
                   29295:   <p><i>This section is non-normative.</i></p>
                   29296:   <p>Error handling in tables is, for historical reasons, especially
                   29297:   strange. For example, consider the following markup:</p>
                   29298: 
                   29299:   <pre>&lt;table&gt;<strong><a href="the-b-element.html#the-b-element">&lt;b&gt;</a></strong>&lt;tr&gt;&lt;td&gt;aaa&lt;/td&gt;&lt;/tr&gt;<strong>bbb</strong>&lt;/table&gt;ccc</pre>
                   29300: 
                   29301:   <p>The highlighted <code><a href="the-b-element.html#the-b-element">b</a></code> element start tag is not allowed
                   29302:   directly inside a table like that, and the parser handles this case
                   29303:   by placing the element <em>before</em> the table. (This is called <i title="foster parent"><a href="#foster-parent">foster parenting</a></i>.) This can be seen by
                   29304:   examining the DOM tree as it stands just after the
                   29305:   <code><a href="the-table-element.html#the-table-element">table</a></code> element's start tag has been seen:</p>
                   29306: 
                   29307:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-table-element.html#the-table-element">table</a></code></li></ul></li></ul></li></ul><p>...and then immediately after the <code><a href="the-b-element.html#the-b-element">b</a></code> element start
                   29308:   tag has been seen:</p>
                   29309: 
                   29310:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code></li><li class="t1"><code><a href="the-table-element.html#the-table-element">table</a></code></li></ul></li></ul></li></ul><p>At this point, the <a href="#stack-of-open-elements">stack of open elements</a> has on it
                   29311:   the elements <code><a href="the-html-element.html#the-html-element">html</a></code>, <code><a href="the-body-element.html#the-body-element">body</a></code>,
                   29312:   <code><a href="the-table-element.html#the-table-element">table</a></code>, and <code><a href="the-b-element.html#the-b-element">b</a></code> (in that order, despite the
                   29313:   resulting DOM tree); the <a href="#list-of-active-formatting-elements">list of active formatting
                   29314:   elements</a> just has the <code><a href="the-b-element.html#the-b-element">b</a></code> element in it; and the
                   29315:   <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-intable" title="insertion mode: in
                   29316:   table">in table</a>".</p>
                   29317: 
                   29318:   <p>The <code><a href="the-tr-element.html#the-tr-element">tr</a></code> start tag causes the <code><a href="the-b-element.html#the-b-element">b</a></code> element
                   29319:   to be popped off the stack and a <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code> start tag to be
                   29320:   implied; the <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code> and <code><a href="the-tr-element.html#the-tr-element">tr</a></code> elements are
                   29321:   then handled in a rather straight-forward manner, taking the parser
                   29322:   through the "<a href="#parsing-main-intbody" title="insertion mode: in table body">in table
                   29323:   body</a>" and "<a href="#parsing-main-intr" title="insertion mode: in row">in
                   29324:   row</a>" insertion modes, after which the DOM looks as
                   29325:   follows:</p>
                   29326: 
                   29327:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code></li><li class="t1"><code><a href="the-table-element.html#the-table-element">table</a></code><ul><li class="t1"><code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code><ul><li class="t1"><code><a href="the-tr-element.html#the-tr-element">tr</a></code></li></ul></li></ul></li></ul></li></ul></li></ul><p>Here, the <a href="#stack-of-open-elements">stack of open elements</a> has on it the
                   29328:   elements <code><a href="the-html-element.html#the-html-element">html</a></code>, <code><a href="the-body-element.html#the-body-element">body</a></code>, <code><a href="the-table-element.html#the-table-element">table</a></code>,
                   29329:   <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, and <code><a href="the-tr-element.html#the-tr-element">tr</a></code>; the <a href="#list-of-active-formatting-elements">list of active
                   29330:   formatting elements</a> still has the <code><a href="the-b-element.html#the-b-element">b</a></code> element in
                   29331:   it; and the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-intr" title="insertion
                   29332:   mode: in row">in row</a>".</p>
                   29333: 
                   29334:   <p>The <code><a href="the-td-element.html#the-td-element">td</a></code> element start tag token, after putting a
                   29335:   <code><a href="the-td-element.html#the-td-element">td</a></code> element on the tree, puts a marker on the <a href="#list-of-active-formatting-elements">list
                   29336:   of active formatting elements</a> (it also switches to the "<a href="#parsing-main-intd" title="insertion mode: in cell">in cell</a>" <a href="#insertion-mode">insertion
                   29337:   mode</a>).</p>
                   29338: 
                   29339:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code></li><li class="t1"><code><a href="the-table-element.html#the-table-element">table</a></code><ul><li class="t1"><code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code><ul><li class="t1"><code><a href="the-tr-element.html#the-tr-element">tr</a></code><ul><li class="t1"><code><a href="the-td-element.html#the-td-element">td</a></code></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul><p>The marker means that when the "aaa" character tokens are seen,
                   29340:   no <code><a href="the-b-element.html#the-b-element">b</a></code> element is created to hold the resulting <code><a href="infrastructure.html#text-0">Text</a></code> node:</p>
                   29341: 
                   29342:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code></li><li class="t1"><code><a href="the-table-element.html#the-table-element">table</a></code><ul><li class="t1"><code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code><ul><li class="t1"><code><a href="the-tr-element.html#the-tr-element">tr</a></code><ul><li class="t1"><code><a href="the-td-element.html#the-td-element">td</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">aaa</span></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul><p>The end tags are handled in a straight-forward manner; after
                   29343:   handling them, the <a href="#stack-of-open-elements">stack of open elements</a> has on it the
                   29344:   elements <code><a href="the-html-element.html#the-html-element">html</a></code>, <code><a href="the-body-element.html#the-body-element">body</a></code>, <code><a href="the-table-element.html#the-table-element">table</a></code>,
                   29345:   and <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>; the <a href="#list-of-active-formatting-elements">list of active formatting
                   29346:   elements</a> still has the <code><a href="the-b-element.html#the-b-element">b</a></code> element in it (the
                   29347:   marker having been removed by the "td" end tag token); and the
                   29348:   <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-intbody" title="insertion mode: in
                   29349:   table body">in table body</a>".</p>
                   29350: 
                   29351:   <p>Thus it is that the "bbb" character tokens are found. These
                   29352:   trigger the "<a href="#parsing-main-intabletext" title="insertion mode: in table text">in table
                   29353:   text</a>" insertion mode to be used (with the <a href="#original-insertion-mode">original
                   29354:   insertion mode</a> set to "<a href="#parsing-main-intbody" title="insertion mode: in table
                   29355:   body">in table body</a>"). The character tokens are collected,
                   29356:   and when the next token (the <code><a href="the-table-element.html#the-table-element">table</a></code> element end tag) is
                   29357:   seen, they are processed as a group. Since they are not all spaces,
                   29358:   they are handled as per the "anything else" rules in the "<a href="#parsing-main-intable" title="insertion mode: in table">in table</a>" insertion mode,
                   29359:   which defer to the "<a href="#parsing-main-inbody" title="insertion mode: in body">in
                   29360:   body</a>" insertion mode but with <a href="#foster-parent" title="foster
                   29361:   parent">foster parenting</a>.</p>
                   29362: 
                   29363:   <p>When <a href="#reconstruct-the-active-formatting-elements" title="reconstruct the active formatting elements">the
                   29364:   active formatting elements are reconstructed</a>, a
                   29365:   <code><a href="the-b-element.html#the-b-element">b</a></code> element is created and <a href="#foster-parent" title="foster
                   29366:   parent">foster parented</a>, and then the "bbb" <code><a href="infrastructure.html#text-0">Text</a></code>
                   29367:   node is appended to it:</p>
                   29368: 
                   29369:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code></li><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">bbb</span></li></ul></li><li class="t1"><code><a href="the-table-element.html#the-table-element">table</a></code><ul><li class="t1"><code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code><ul><li class="t1"><code><a href="the-tr-element.html#the-tr-element">tr</a></code><ul><li class="t1"><code><a href="the-td-element.html#the-td-element">td</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">aaa</span></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul><p>The <a href="#stack-of-open-elements">stack of open elements</a> has on it the elements
                   29370:   <code><a href="the-html-element.html#the-html-element">html</a></code>, <code><a href="the-body-element.html#the-body-element">body</a></code>, <code><a href="the-table-element.html#the-table-element">table</a></code>,
                   29371:   <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, and the new <code><a href="the-b-element.html#the-b-element">b</a></code> (again, note that
                   29372:   this doesn't match the resulting tree!); the <a href="#list-of-active-formatting-elements">list of active
                   29373:   formatting elements</a> has the new <code><a href="the-b-element.html#the-b-element">b</a></code> element in it;
                   29374:   and the <a href="#insertion-mode">insertion mode</a> is still "<a href="#parsing-main-intbody" title="insertion
                   29375:   mode: in table body">in table body</a>".</p>
                   29376: 
                   29377:   <p>Had the character tokens been only <a href="common-microsyntaxes.html#space-character" title="space
                   29378:   character">space characters</a> instead of "bbb", then those
                   29379:   <a href="common-microsyntaxes.html#space-character" title="space character">space characters</a> would just be
                   29380:   appended to the <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code> element.</p>
                   29381: 
                   29382:   <p>Finally, the <code><a href="the-table-element.html#the-table-element">table</a></code> is closed by a "table" end
                   29383:   tag. This pops all the nodes from the <a href="#stack-of-open-elements">stack of open
                   29384:   elements</a> up to and including the <code><a href="the-table-element.html#the-table-element">table</a></code> element,
                   29385:   but it doesn't affect the <a href="#list-of-active-formatting-elements">list of active formatting
                   29386:   elements</a>, so the "ccc" character tokens after the table
                   29387:   result in yet another <code><a href="the-b-element.html#the-b-element">b</a></code> element being created, this
                   29388:   time after the table:</p>
                   29389: 
                   29390:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code></li><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">bbb</span></li></ul></li><li class="t1"><code><a href="the-table-element.html#the-table-element">table</a></code><ul><li class="t1"><code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code><ul><li class="t1"><code><a href="the-tr-element.html#the-tr-element">tr</a></code><ul><li class="t1"><code><a href="the-td-element.html#the-td-element">td</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">aaa</span></li></ul></li></ul></li></ul></li></ul></li><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">ccc</span></li></ul></li></ul></li></ul></li></ul><h5 id="scripts-that-modify-the-page-as-it-is-being-parsed"><span class="secno">8.2.8.4 </span>Scripts that modify the page as it is being parsed</h5>
                   29391: 
                   29392:   <p><i>This section is non-normative.</i></p>
                   29393:   <p>Consider the following markup, which for this example we will
                   29394:   assume is the document with <a href="urls.html#url">URL</a> <code title="">http://example.com/inner</code>, being rendered as the
                   29395:   content of an <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> in another document with the
                   29396:   <a href="urls.html#url">URL</a> <code title="">http://example.com/outer</code>:</p>
                   29397: 
                   29398:   <pre>&lt;div id=a&gt;
                   29399:  &lt;script&gt;
                   29400:   var div = document.getElementById('a');
                   29401:   parent.document.body.appendChild(div);
                   29402:  &lt;/script&gt;
                   29403:  &lt;script&gt;
                   29404:   alert(document.URL);
                   29405:  &lt;/script&gt;
                   29406: &lt;/div&gt;
                   29407: &lt;script&gt;
                   29408:  alert(document.URL);
                   29409: &lt;/script&gt;</pre>
                   29410: 
                   29411:   <p>Up to the first "script" end tag, before the script is parsed,
                   29412:   the result is relatively straightforward:</p>
                   29413: 
                   29414:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-div-element.html#the-div-element">div</a></code> <span class="t2" title=""><code class="attribute name">id</code>="<code class="attribute value"><a href="the-a-element.html#the-a-element">a</a></code>"</span><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">
                   29415:  </span></li><li class="t1"><code><a href="the-script-element.html#the-script-element">script</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">var div = document.getElementById('a'); &#9166; parent.document.body.appendChild(div);</span></li></ul></li></ul></li></ul></li></ul></li></ul><p>After the script is parsed, though, the <code><a href="the-div-element.html#the-div-element">div</a></code> element
                   29416:   and its child <code><a href="the-script-element.html#the-script-element">script</a></code> element are gone:</p>
                   29417: 
                   29418:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code></li></ul></li></ul><p>They are, at this point, in the <code><a href="dom.html#document">Document</a></code> of the
                   29419:   aforementioned outer <a href="#browsing-context">browsing context</a>. However, the
                   29420:   <a href="#stack-of-open-elements">stack of open elements</a> <em>still contains the
                   29421:   <code><a href="the-div-element.html#the-div-element">div</a></code> element</em>.</p>
                   29422: 
                   29423:   <p>Thus, when the second <code><a href="the-script-element.html#the-script-element">script</a></code> element is parsed, it
                   29424:   is inserted <em>into the outer <code><a href="dom.html#document">Document</a></code>
                   29425:   object</em>.</p>
                   29426: 
                   29427:   <p>Those parsed into different <code><a href="dom.html#document">Document</a></code>s than the one
                   29428:   the parser was created for do not execute, so the first alert does
                   29429:   not show.</p>
                   29430: 
                   29431:   <p>Once the <code><a href="the-div-element.html#the-div-element">div</a></code> element's end tag is parsed, the
                   29432:   <code><a href="the-div-element.html#the-div-element">div</a></code> element is popped off the stack, and so the next
                   29433:   <code><a href="the-script-element.html#the-script-element">script</a></code> element is in the inner <code><a href="dom.html#document">Document</a></code>:</p>
                   29434: 
                   29435:   <ul class="domTree"><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-script-element.html#the-script-element">script</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">alert(document.URL);</span></li></ul></li></ul></li></ul></li></ul><p>This script does execute, resulting in an alert that says "http://example.com/inner".</p>
                   29436: 
                   29437: 
                   29438:   <h5 id="the-execution-of-scripts-that-are-moving-across-multiple-documents"><span class="secno">8.2.8.5 </span>The execution of scripts that are moving across multiple documents</h5>
                   29439: 
                   29440:   <p><i>This section is non-normative.</i></p>
                   29441:   <p>Elaborating on the example in the previous section, consider the
                   29442:   case where the second <code><a href="the-script-element.html#the-script-element">script</a></code> element is an external
                   29443:   script (i.e. one with a <code title="attr-script-src"><a href="the-script-element.html#attr-script-src">src</a></code>
                   29444:   attribute). Since the element was not in the parser's
                   29445:   <code><a href="dom.html#document">Document</a></code> when it was created, that external script is
                   29446:   not even downloaded.</p>
                   29447: 
                   29448:   <p>In a case where a <code><a href="the-script-element.html#the-script-element">script</a></code> element with a <code title="attr-script-src"><a href="the-script-element.html#attr-script-src">src</a></code> attribute is parsed normally into
                   29449:   its parser's <code><a href="dom.html#document">Document</a></code>, but while the external script is
                   29450:   being downloaded, the element is moved to another document, the
                   29451:   script continues to download, but does not execute.</p>
                   29452: 
                   29453:   <p class="note">In general, moving <code><a href="the-script-element.html#the-script-element">script</a></code> elements
                   29454:   between <code><a href="dom.html#document">Document</a></code>s is considered a bad practice.</p>
                   29455: 
                   29456: 
                   29457: 
                   29458:   <h5 id="unclosed-formatting-elements"><span class="secno">8.2.8.6 </span>Unclosed formatting elements</h5>
                   29459: 
                   29460:   <p><i>This section is non-normative.</i></p>
                   29461:   <p>The following markup shows how nested formatting elements (such
                   29462:   as <code><a href="the-b-element.html#the-b-element">b</a></code>) get collected and continue to be applied even as
                   29463:   the elements they are contained in are closed, but that excessive
                   29464:   duplicates are thrown away.</p>
                   29465: 
                   29466:   <pre>&lt;!DOCTYPE html&gt;
                   29467: &lt;p&gt;&lt;b class=x&gt;&lt;b class=x&gt;&lt;b&gt;&lt;b class=x&gt;&lt;b class=x&gt;&lt;b&gt;X
                   29468: &lt;p&gt;X
                   29469: &lt;p&gt;&lt;b&gt;&lt;b class=x&gt;&lt;b&gt;X
                   29470: &lt;p&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;X</pre>
                   29471: 
                   29472:   <p>The resulting DOM tree is as follows:</p>
                   29473: 
                   29474:   <ul class="domTree"><li class="t10">DOCTYPE: <code><a href="the-html-element.html#the-html-element">html</a></code></li><li class="t1"><code><a href="the-html-element.html#the-html-element">html</a></code><ul><li class="t1"><code><a href="the-head-element.html#the-head-element">head</a></code></li><li class="t1"><code><a href="the-body-element.html#the-body-element">body</a></code><ul><li class="t1"><code><a href="the-p-element.html#the-p-element">p</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code> <span class="t2" title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code> <span class="t2" title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code> <span class="t2" title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code> <span class="t2" title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">X&#9166;</span></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li><li class="t1"><code><a href="the-p-element.html#the-p-element">p</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code> <span class="t2" title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code> <span class="t2" title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code> <span class="t2" title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">X&#9166;</span></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li><li class="t1"><code><a href="the-p-element.html#the-p-element">p</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code> <span class="t2" title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code> <span class="t2" title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code> <span class="t2" title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code> <span class="t2" title=""><code class="attribute name">class</code>="<code class="attribute value">x</code>"</span><ul><li class="t1"><code><a href="the-b-element.html#the-b-element">b</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">X&#9166;</span></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li><li class="t1"><code><a href="the-p-element.html#the-p-element">p</a></code><ul><li class="t3"><code><a href="infrastructure.html#text-0">#text</a></code>: <span title="">X&#9166;</span></li></ul></li></ul></li></ul></li></ul><p>Note how the second <code><a href="the-p-element.html#the-p-element">p</a></code> element in the markup has no
                   29475:   explicit <code><a href="the-b-element.html#the-b-element">b</a></code> elements, but in the resulting DOM, up to
                   29476:   three of each kind of formatting element (in this case three
                   29477:   <code><a href="the-b-element.html#the-b-element">b</a></code> elements with the class attribute, and two unadorned
                   29478:   <code><a href="the-b-element.html#the-b-element">b</a></code> elements) get reconstructed before the element's
                   29479:   "X".</p>
                   29480: 
                   29481:   <p>Also note how this means that in the final paragraph only six
                   29482:   <code><a href="the-b-element.html#the-b-element">b</a></code> end tags are needed to completely clear the list of
                   29483:   formatting elements, even though nine <code><a href="the-b-element.html#the-b-element">b</a></code> start tags have
                   29484:   been seen up to this point.</p>
                   29485: 
                   29486: 
                   29487: 
                   29488: 
                   29489:   <h3 id="serializing-html-fragments"><span class="secno">8.3 </span>Serializing HTML fragments</h3>
                   29490: 
                   29491:   <p>The following steps form the <dfn id="html-fragment-serialization-algorithm">HTML fragment serialization
                   29492:   algorithm</dfn>. The algorithm takes as input a DOM
                   29493:   <code><a href="infrastructure.html#element">Element</a></code>, <code><a href="dom.html#document">Document</a></code>, or
                   29494:   <code><a href="infrastructure.html#documentfragment">DocumentFragment</a></code> referred to as <var title="">the
                   29495:   node</var>, and either returns a string or throws an exception.</p>
                   29496: 
                   29497:   <p class="note">This algorithm serializes the <em>children</em> of
                   29498:   the node being serialized, not the node itself.</p>
                   29499: 
                   29500:   <ol><li><p>Let <var title="">s</var> be a string, and initialize it to
                   29501:    the empty string.</p></li>
                   29502: 
                   29503:    <li>
                   29504: 
                   29505:     <p>For each child node of <var title="">the node</var>, in
                   29506:     <a href="infrastructure.html#tree-order">tree order</a>, run the following steps:
                   29507: 
                   29508:     </p><ol><li><p>Let <var title="">current node</var> be the child node
                   29509:      being processed.</p></li>
                   29510: 
                   29511:      <li>
                   29512: 
                   29513:       <p>Append the appropriate string from the following list to
                   29514:       <var title="">s</var>:</p>
                   29515: 
                   29516:       <dl class="switch"><dt>If <var title="">current node</var> is an <code title="">Element</code></dt>
                   29517: 
                   29518:        <dd>
                   29519: 
                   29520:         <p>If <var title="">current node</var> is an element in the
                   29521:         <a href="namespaces.html#html-namespace-0">HTML namespace</a>, the <a href="namespaces.html#mathml-namespace">MathML
                   29522:         namespace</a>, or the <a href="namespaces.html#svg-namespace">SVG namespace</a>, then let
                   29523:         <var title="">tagname</var> be <var title="">current
                   29524:         node</var>'s local name. Otherwise, let <var title="">tagname</var> be <var title="">current node</var>'s
                   29525:         qualified name.</p>
                   29526: 
                   29527:         <p>Append a U+003C LESS-THAN SIGN character (&lt;), followed
                   29528:         by <var title="">tagname</var>.</p>
                   29529: 
                   29530:         <p class="note">For <a href="infrastructure.html#html-elements">HTML elements</a> created by the
                   29531:         <a href="#html-parser">HTML parser</a> or <code title="">Document.createElement()</code>, <var title="">tagname</var> will be lowercase.</p>
                   29532: 
                   29533:         <p>For each attribute that the element has, append a U+0020
                   29534:         SPACE character, the <a href="#attribute's-serialized-name" title="attribute's serialized
                   29535:         name">attribute's serialized name as described below</a>, a
                   29536:         "=" (U+003D) character, a U+0022 QUOTATION MARK
                   29537:         character ("), the attribute's value, <a href="#escapingString" title="escaping a string">escaped as described below</a> in
                   29538:         <i>attribute mode</i>, and a second U+0022 QUOTATION MARK
                   29539:         character (").</p>
                   29540: 
                   29541:         <p>An <dfn id="attribute's-serialized-name">attribute's serialized name</dfn> for the purposes
                   29542:         of the previous paragraph must be determined as follows:</p>
                   29543: 
                   29544:         <dl class="switch"><dt>If the attribute has no namespace</dt>
                   29545: 
                   29546:          <dd>
                   29547: 
                   29548:           <p>The attribute's serialized name is the attribute's local
                   29549:           name.</p>
                   29550: 
                   29551:           <p class="note">For attributes on <a href="infrastructure.html#html-elements">HTML elements</a>
                   29552:           set by the <a href="#html-parser">HTML parser</a> or by <code title="">Element.setAttributeNode()</code> or <code title="">Element.setAttribute()</code>, the local name will
                   29553:           be lowercase.</p>
                   29554: 
                   29555:          </dd>
                   29556: 
                   29557: 
                   29558:          <dt>If the attribute is in the <a href="namespaces.html#xml-namespace">XML namespace</a></dt>
                   29559: 
                   29560:          <dd><p>The attribute's serialized name is the string "<code title="">xml:</code>" followed by the attribute's local
                   29561:          name.</p></dd>
                   29562: 
                   29563: 
                   29564:          <dt>If the attribute is in the <a href="namespaces.html#xmlns-namespace">XMLNS namespace</a> and the attribute's local name is <code title="">xmlns</code></dt>
                   29565: 
                   29566:          <dd><p>The attribute's serialized name is the string "<code title="">xmlns</code>".</p></dd>
                   29567: 
                   29568: 
                   29569:          <dt>If the attribute is in the <a href="namespaces.html#xmlns-namespace">XMLNS namespace</a> and the attribute's local name is not <code title="">xmlns</code></dt>
                   29570: 
                   29571:          <dd><p>The attribute's serialized name is the string "<code title="">xmlns:</code>" followed by the attribute's local
                   29572:          name.</p></dd>
                   29573: 
                   29574: 
                   29575:          <dt>If the attribute is in the <a href="namespaces.html#xlink-namespace">XLink namespace</a></dt>
                   29576: 
                   29577:          <dd><p>The attribute's serialized name is the string "<code title="">xlink:</code>" followed by the attribute's local
                   29578:          name.</p></dd>
                   29579: 
                   29580: 
                   29581:          <dt>If the attribute is in some other namespace</dt>
                   29582: 
                   29583:          <dd><p>The attribute's serialized name is the attribute's
                   29584:          qualified name.</p></dd>
                   29585: 
                   29586:         </dl><p>While the exact order of attributes is UA-defined, and may
                   29587:         depend on factors such as the order that the attributes were
                   29588:         given in the original markup, the sort order must be stable,
                   29589:         such that consecutive invocations of this algorithm serialize an
                   29590:         element's attributes in the same order.</p>
                   29591: 
                   29592:         <p>Append a U+003E GREATER-THAN SIGN character (&gt;).</p>
                   29593: 
                   29594:         <p>If <var title="">current node</var> is an
                   29595:         <code><a href="the-area-element.html#the-area-element">area</a></code>, <code><a href="the-base-element.html#the-base-element">base</a></code>, <code><a href="#basefont">basefont</a></code>,
                   29596:         <code><a href="#bgsound">bgsound</a></code>, <code><a href="the-br-element.html#the-br-element">br</a></code>, <code><a href="the-col-element.html#the-col-element">col</a></code>,
                   29597:         <code><a href="#the-command-element">command</a></code>, <code><a href="the-embed-element.html#the-embed-element">embed</a></code>, <code><a href="#frame">frame</a></code>,
                   29598:         <code><a href="the-hr-element.html#the-hr-element">hr</a></code>, <code><a href="the-img-element.html#the-img-element">img</a></code>, <code><a href="the-input-element.html#the-input-element">input</a></code>,
                   29599:         <code><a href="the-keygen-element.html#the-keygen-element">keygen</a></code>, <code><a href="the-link-element.html#the-link-element">link</a></code>, <code><a href="the-meta-element.html#the-meta-element">meta</a></code>,
                   29600:         <code><a href="the-param-element.html#the-param-element">param</a></code>, <code><a href="the-source-element.html#the-source-element">source</a></code>, <code><a href="the-track-element.html#the-track-element">track</a></code> or
                   29601:         <code><a href="the-wbr-element.html#the-wbr-element">wbr</a></code> element, then continue on to the next child
                   29602:         node at this point.</p> <!-- VOIDLIST superset -->
                   29603:         <!-- also, i guess: image and isindex, but we don't list those
                   29604:         because we don't consider those "elements", more "macros", and
                   29605:         thus we should never serialize them -->
                   29606: 
                   29607:         <p>If <var title="">current node</var> is a <code><a href="the-pre-element.html#the-pre-element">pre</a></code>,
                   29608:         <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>, or <code><a href="#listing">listing</a></code> element, and
                   29609:         the first child node of the element, if any, is a
                   29610:         <code><a href="infrastructure.html#text-0">Text</a></code> node whose character data has as its first
                   29611:         character a "LF" (U+000A) character, then append a
                   29612:         "LF" (U+000A) character.</p>
                   29613: 
                   29614:         <p>Append the value of running the <a href="#html-fragment-serialization-algorithm">HTML fragment
                   29615:         serialization algorithm</a> on the <var title="">current
                   29616:         node</var> element (thus recursing into this algorithm for
                   29617:         that element), followed by a U+003C LESS-THAN SIGN character
                   29618:         (&lt;), a "/" (U+002F) character, <var title="">tagname</var> again, and finally a U+003E
                   29619:         GREATER-THAN SIGN character (&gt;).</p>
                   29620: 
                   29621:        </dd>
                   29622: 
                   29623: 
                   29624:        <dt>If <var title="">current node</var> is a <code title="">Text</code> node</dt>
                   29625: 
                   29626:        <dd>
                   29627: 
                   29628:         <p>If the parent of <var title="">current node</var> is a
                   29629:         <code><a href="the-style-element.html#the-style-element">style</a></code>, <code><a href="the-script-element.html#the-script-element">script</a></code>, <code><a href="#xmp">xmp</a></code>,
                   29630:         <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>, <code><a href="#noembed">noembed</a></code>,
                   29631:         <code><a href="#noframes">noframes</a></code>, or <code><a href="#plaintext">plaintext</a></code> element, or
                   29632:         if the parent of <var title="">current node</var> is
                   29633:         <code><a href="the-noscript-element.html#the-noscript-element">noscript</a></code> element and <a href="#concept-n-script" title="concept-n-script">scripting is enabled</a> for the
                   29634:         node, then append the value of <var title="">current
                   29635:         node</var>'s <code title="">data</code> IDL attribute
                   29636:         literally.</p>
                   29637: 
                   29638:         <p>Otherwise, append the value of <var title="">current
                   29639:         node</var>'s <code title="">data</code> IDL attribute, <a href="#escapingString" title="escaping a string">escaped as described
                   29640:         below</a>.</p>
                   29641: 
                   29642:        </dd>
                   29643: 
                   29644: 
                   29645:        <dt>If <var title="">current node</var> is a <code title="">Comment</code></dt>
                   29646: 
                   29647:        <dd>
                   29648: 
                   29649:         <p>Append the literal string <code>&lt;!--</code> (U+003C
                   29650:         LESS-THAN SIGN, U+0021 EXCLAMATION MARK, U+002D HYPHEN-MINUS,
                   29651:         U+002D HYPHEN-MINUS), followed by the value of <var title="">current node</var>'s <code title="">data</code> IDL
                   29652:         attribute, followed by the literal string <code>--&gt;</code>
                   29653:         (U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS, U+003E GREATER-THAN
                   29654:         SIGN).</p>
                   29655: 
                   29656:        </dd>
                   29657: 
                   29658: 
                   29659:        <dt>If <var title="">current node</var> is a <code title="">ProcessingInstruction</code></dt>
                   29660: 
                   29661:        <dd>
                   29662: 
                   29663:         <p>Append the literal string <code>&lt;?</code> (U+003C
                   29664:         LESS-THAN SIGN, U+003F QUESTION MARK), followed by the value
                   29665:         of <var title="">current node</var>'s <code title="">target</code> IDL attribute, followed by a single
                   29666:         U+0020 SPACE character, followed by the value of <var title="">current node</var>'s <code title="">data</code> IDL
                   29667:         attribute, followed by a single "&gt;" (U+003E) character.</p>
                   29668: 
                   29669:        </dd>
                   29670: 
                   29671: 
                   29672:        <dt>If <var title="">current node</var> is a <code title="">DocumentType</code></dt>
                   29673: 
                   29674:        <dd>
                   29675: 
                   29676:         <p>Append the literal string <code>&lt;!DOCTYPE</code> (U+003C
                   29677:         LESS-THAN SIGN, U+0021 EXCLAMATION MARK, U+0044 LATIN CAPITAL
                   29678:         LETTER D, U+004F LATIN CAPITAL LETTER O, U+0043 LATIN CAPITAL
                   29679:         LETTER C, U+0054 LATIN CAPITAL LETTER T, U+0059 LATIN CAPITAL
                   29680:         LETTER Y, U+0050 LATIN CAPITAL LETTER P, U+0045 LATIN CAPITAL
                   29681:         LETTER E), followed by a space (U+0020 SPACE), followed by the
                   29682:         value of <var title="">current node</var>'s <code title="">name</code> IDL attribute, followed by the literal
                   29683:         string <code>&gt;</code> (U+003E GREATER-THAN SIGN).</p>
                   29684: 
                   29685:        </dd>
                   29686: 
                   29687: 
                   29688:       </dl><!--
                   29689:       <p>Other node types (e.g. <code title="">Attr</code>) cannot
                   29690:       occur as children of elements. If, despite this, they somehow do
                   29691:       occur, this algorithm must throw an
                   29692:       <code>InvalidStateError</code> exception.</p>
                   29693:       --></li>
                   29694: 
                   29695:     </ol></li>
                   29696: 
                   29697:    <li><p>The result of the algorithm is the string <var title="">s</var>.</p></li>
                   29698: 
                   29699:   </ol><p class="warning">It is possible that the output of this algorithm, if
                   29700:   parsed with an <a href="#html-parser">HTML parser</a>, will not return the
                   29701:   original tree structure.</p>
                   29702: 
                   29703:   <div class="example">
                   29704: 
                   29705:    <p>For instance, if a <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> element to which a
                   29706:    <code title="">Comment</code> node has been appended is serialized
                   29707:    and the output is then reparsed, the comment will end up being
                   29708:    displayed in the text field. Similarly, if, as a result of DOM
                   29709:    manipulation, an element contains a comment that contains the
                   29710:    literal string "<code title="">--&gt;</code>", then when the result
                   29711:    of serializing the element is parsed, the comment will be truncated
                   29712:    at that point and the rest of the comment will be interpreted as
                   29713:    markup. More examples would be making a <code><a href="the-script-element.html#the-script-element">script</a></code> element
                   29714:    contain a <code><a href="infrastructure.html#text-0">Text</a></code> node with the text string
                   29715:    "<code><a href="the-script-element.html#the-script-element">&lt;/script&gt;</a></code>", or having a <code><a href="the-p-element.html#the-p-element">p</a></code> element
                   29716:    that contains a <code><a href="the-ul-element.html#the-ul-element">ul</a></code> element (as the <code><a href="the-ul-element.html#the-ul-element">ul</a></code>
                   29717:    element's <a href="#syntax-start-tag" title="syntax-start-tag">start tag</a> would
                   29718:    imply the end tag for the <code><a href="the-p-element.html#the-p-element">p</a></code>).</p>
                   29719: 
                   29720:    <p>This can enable cross-site scripting attacks. An example of this
                   29721:    would be a page that lets the user enter some font names that are
                   29722:    then inserted into a CSS <code><a href="the-style-element.html#the-style-element">style</a></code> block via the DOM and
                   29723:    which then uses the <code title="dom-innerHTML"><a href="infrastructure.html#dom-innerhtml">innerHTML</a></code>
                   29724:    IDL attribute to get the HTML serialization of that
                   29725:    <code><a href="the-style-element.html#the-style-element">style</a></code> element: if the user enters
                   29726:    "<code>&lt;/style&gt;&lt;script&gt;attack&lt;/script&gt;</code>" as a font
                   29727:    name, <code title="dom-innerHTML"><a href="infrastructure.html#dom-innerhtml">innerHTML</a></code> will return
                   29728:    markup that, if parsed in a different context, would contain a
                   29729:    <code><a href="the-script-element.html#the-script-element">script</a></code> node, even though no <code><a href="the-script-element.html#the-script-element">script</a></code> node
                   29730:    existed in the original DOM.</p>
                   29731: 
                   29732:   </div>
                   29733: 
                   29734:   <p><dfn id="escapingString">Escaping a string</dfn> (for the
                   29735:   purposes of the algorithm above) consists of running the following
                   29736:   steps:</p>
                   29737: 
                   29738:   <ol><li><p>Replace any occurrence of the "<code title="">&amp;</code>"
                   29739:    character by the string "<code title="">&amp;amp;</code>".</p></li>
                   29740: 
                   29741:    <li><p>Replace any occurrences of the U+00A0 NO-BREAK SPACE
                   29742:    character by the string "<code title="">&amp;nbsp;</code>".</p></li>
                   29743: 
                   29744:    <li><p>If the algorithm was invoked in the <i>attribute mode</i>,
                   29745:    replace any occurrences of the "<code title="">"</code>"
                   29746:    character by the string "<code title="">&amp;quot;</code>".</p></li>
                   29747: 
                   29748:    <li><p>If the algorithm was <em>not</em> invoked in the
                   29749:    <i>attribute mode</i>, replace any occurrences of the "<code title="">&lt;</code>" character by the string "<code title="">&amp;lt;</code>", and any occurrences of the "<code title="">&gt;</code>" character by the string "<code title="">&amp;gt;</code>".</p></li>
                   29750: 
                   29751:   </ol><h3 id="parsing-html-fragments"><span class="secno">8.4 </span>Parsing HTML fragments</h3>
                   29752: 
                   29753:   <p>The following steps form the <dfn id="html-fragment-parsing-algorithm">HTML fragment parsing
                   29754:   algorithm</dfn>. The algorithm optionally takes as input an
                   29755:   <code><a href="infrastructure.html#element">Element</a></code> node, referred to as the <dfn id="concept-frag-parse-context" title="concept-frag-parse-context"><var>context</var></dfn> element,
                   29756:   which gives the context for the parser, as well as <var title="">input</var>, a string to parse, and returns a list of zero
                   29757:   or more nodes.</p>
                   29758: 
                   29759:   <p class="note">Parts marked <dfn id="fragment-case">fragment case</dfn> in algorithms
                   29760:   in the parser section are parts that only occur if the parser was
                   29761:   created for the purposes of this algorithm (and with a <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var> element). The
                   29762:   algorithms have been annotated with such markings for informational
                   29763:   purposes only; such markings have no normative weight. If it is
                   29764:   possible for a condition described as a <a href="#fragment-case">fragment case</a>
                   29765:   to occur even when the parser wasn't created for the purposes of
                   29766:   handling this algorithm, then that is an error in the
                   29767:   specification.</p>
                   29768: 
                   29769:   <ol><li>
                   29770: 
                   29771:     <p>Create a new <code><a href="dom.html#document">Document</a></code> node, and mark it as being
                   29772:     an <a href="infrastructure.html#html-documents" title="HTML documents">HTML document</a>.</p>
                   29773: 
                   29774:    </li>
                   29775: 
                   29776:    <li>
                   29777: 
                   29778:     <p>If there is a <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var> element, and the
                   29779:     <code><a href="dom.html#document">Document</a></code> of the <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var> element is in
                   29780:     <a href="infrastructure.html#quirks-mode">quirks mode</a>, then let the <code><a href="dom.html#document">Document</a></code> be in
                   29781:     <a href="infrastructure.html#quirks-mode">quirks mode</a>. Otherwise, if there is a <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var> element, and the
                   29782:     <code><a href="dom.html#document">Document</a></code> of the <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var> element is in
                   29783:     <a href="infrastructure.html#limited-quirks-mode">limited-quirks mode</a>, then let the
                   29784:     <code><a href="dom.html#document">Document</a></code> be in <a href="infrastructure.html#limited-quirks-mode">limited-quirks mode</a>.
                   29785:     Otherwise, leave the <code><a href="dom.html#document">Document</a></code> in <a href="infrastructure.html#no-quirks-mode">no-quirks
                   29786:     mode</a>.</p>
                   29787: 
                   29788:    </li>
                   29789: 
                   29790:    <li>
                   29791: 
                   29792:     <p>Create a new <a href="#html-parser">HTML parser</a>, and associate it with
                   29793:     the just created <code><a href="dom.html#document">Document</a></code> node.</p>
                   29794: 
                   29795:    </li>
                   29796: 
                   29797:    <li>
                   29798: 
                   29799:     <p>If there is a <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var> element, run
                   29800:     these substeps:</p>
                   29801: 
                   29802:     <ol><li>
                   29803: 
                   29804:       <p>Set the state of the <a href="#html-parser">HTML parser</a>'s
                   29805:       <a href="#tokenization">tokenization</a> stage as follows:</p>
                   29806: 
                   29807:       <dl class="switch"><dt>If it is a <code><a href="the-title-element.html#the-title-element">title</a></code> or <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>
                   29808:        element</dt>
                   29809: 
                   29810:        <dd>Switch the tokenizer to the <a href="#rcdata-state">RCDATA state</a>.</dd>
                   29811: 
                   29812: 
                   29813:        <dt>If it is a <code><a href="the-style-element.html#the-style-element">style</a></code>, <code><a href="#xmp">xmp</a></code>,
                   29814:        <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>, <code><a href="#noembed">noembed</a></code>, or
                   29815:        <code><a href="#noframes">noframes</a></code> element</dt>
                   29816: 
                   29817:        <dd>Switch the tokenizer to the <a href="#rawtext-state">RAWTEXT state</a>.</dd>
                   29818: 
                   29819: 
                   29820:        <dt>If it is a <code><a href="the-script-element.html#the-script-element">script</a></code> element</dt>
                   29821: 
                   29822:        <dd>Switch the tokenizer to the <a href="#script-data-state">script data state</a>.</dd>
                   29823: 
                   29824: 
                   29825:        <dt>If it is a <code><a href="the-noscript-element.html#the-noscript-element">noscript</a></code> element</dt>
                   29826: 
                   29827:        <dd>If the <a href="#scripting-flag">scripting flag</a> is enabled, switch the
                   29828:        tokenizer to the <a href="#rawtext-state">RAWTEXT state</a>.  Otherwise,
                   29829:        leave the tokenizer in the <a href="#data-state">data state</a>.</dd>
                   29830: 
                   29831: 
                   29832:        <dt>If it is a <code><a href="#plaintext">plaintext</a></code> element</dt>
                   29833: 
                   29834:        <dd>Switch the tokenizer to the <a href="#plaintext-state">PLAINTEXT
                   29835:        state</a>.</dd>
                   29836: 
                   29837: 
                   29838:        <dt>Otherwise</dt>
                   29839: 
                   29840:        <dd>Leave the tokenizer in the <a href="#data-state">data state</a>.</dd>
                   29841: 
                   29842:       </dl><p class="note">For performance reasons, an implementation that
                   29843:       does not report errors and that uses the actual state machine
                   29844:       described in this specification directly could use the PLAINTEXT
                   29845:       state instead of the RAWTEXT and script data states where those
                   29846:       are mentioned in the list above. Except for rules regarding
                   29847:       parse errors, they are equivalent, since there is no
                   29848:       <a href="#appropriate-end-tag-token">appropriate end tag token</a> in the fragment case, yet
                   29849:       they involve far fewer state transitions.</p>
                   29850: 
                   29851:      </li>
                   29852: 
                   29853:      <li>
                   29854: 
                   29855:       <p>Let <var title="">root</var> be a new <code><a href="the-html-element.html#the-html-element">html</a></code> element
                   29856:       with no attributes.</p>
                   29857: 
                   29858:      </li>
                   29859: 
                   29860:      <li>
                   29861: 
                   29862:       <p>Append the element <var title="">root</var> to the
                   29863:       <code><a href="dom.html#document">Document</a></code> node created above.</p>
                   29864: 
                   29865:      </li>
                   29866: 
                   29867:      <li>
                   29868: 
                   29869:       <p>Set up the parser's <a href="#stack-of-open-elements">stack of open elements</a> so that
                   29870:       it contains just the single element <var title="">root</var>.</p>
                   29871: 
                   29872:      </li>
                   29873: 
                   29874:      <li>
                   29875: 
                   29876:       <p><a href="#reset-the-insertion-mode-appropriately" title="reset the insertion mode appropriately">Reset the
                   29877:       parser's insertion mode appropriately</a>.</p>
                   29878: 
                   29879:       <p class="note">The parser will reference the <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var> element as part
                   29880:       of that algorithm.</p>
                   29881: 
                   29882:      </li>
                   29883: 
                   29884:      <li>
                   29885: 
                   29886:       <p>Set the parser's <a href="#form-element-pointer"><code>form</code> element
                   29887:       pointer</a> to the nearest node to the <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var> element that is
                   29888:       a <code><a href="the-form-element.html#the-form-element">form</a></code> element (going straight up the ancestor
                   29889:       chain, and including the element itself, if it is a
                   29890:       <code><a href="the-form-element.html#the-form-element">form</a></code> element), or, if there is no such
                   29891:       <code><a href="the-form-element.html#the-form-element">form</a></code> element, to null.</p>
                   29892: 
                   29893:      </li>
                   29894: 
                   29895:     </ol></li>
                   29896: 
                   29897:    <li>
                   29898: 
                   29899:     <p>Place into the <a href="#input-stream">input stream</a> for the <a href="#html-parser">HTML
                   29900:     parser</a> just created the <var title="">input</var>. The
                   29901:     encoding <a href="#concept-encoding-confidence" title="concept-encoding-confidence">confidence</a> is
                   29902:     <i>irrelevant</i>.</p>
                   29903: 
                   29904:    </li>
                   29905: 
                   29906:    <li>
                   29907: 
                   29908:     <p>Start the parser and let it run until it has consumed all the
                   29909:     characters just inserted into the input stream.</p>
                   29910: 
                   29911:    </li>
                   29912: 
                   29913:    <li>
                   29914: 
                   29915:     <p>If there is a <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var> element, return
                   29916:     the child nodes of <var title="">root</var>, in <a href="infrastructure.html#tree-order">tree
                   29917:     order</a>.</p>
                   29918: 
                   29919:     <p>Otherwise, return the children of the <code><a href="dom.html#document">Document</a></code>
                   29920:     object, in <a href="infrastructure.html#tree-order">tree order</a>.</p>
                   29921: 
                   29922:    </li>
                   29923: 
                   29924:   </ol><p class="note">This algorithm is invoked without a <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var> element in the case
                   29925:   of <code title="dom-Document-innerHTML">Document.innerHTML</code>.</p>
                   29926: 
                   29927:   </div>
                   29928: 
                   29929: 
                   29930: 
                   29931:   <h3 id="named-character-references"><span class="secno">8.5 </span><dfn>Named character references</dfn></h3>
                   29932: 
                   29933:   <p>This table lists the character reference names that are supported
                   29934:   by HTML, and the code points to which they refer. It is referenced
                   29935:   by the previous sections.</p>
                   29936: 
                   29937:   <div id="named-character-references-table">
1.193     sruby    29938:    <table><thead><tr><th> Name </th> <th> Character(s) </th> <th> Glyph </th> </tr></thead>
                   29939: &#239;&#187;&#191;     <tr id="entity-Aacute"><td> <code title="">Aacute;</code> </td> <td> U+000C1 </td> <td> <span class="glyph" title="">&#195;&#129;</span> </td> </tr><tr class="impl" id="entity-Aacute-legacy"><td> <code title="">Aacute</code> </td> <td> U+000C1 </td> <td> <span title="">&#195;&#129;</span> </td> </tr><tr id="entity-aacute"><td> <code title="">aacute;</code> </td> <td> U+000E1 </td> <td> <span class="glyph" title="">&#195;&#161;</span> </td> </tr><tr class="impl" id="entity-aacute-legacy"><td> <code title="">aacute</code> </td> <td> U+000E1 </td> <td> <span title="">&#195;&#161;</span> </td> </tr><tr id="entity-Abreve"><td> <code title="">Abreve;</code> </td> <td> U+00102 </td> <td> <span class="glyph" title="">&#196;&#130;</span> </td> </tr><tr id="entity-abreve"><td> <code title="">abreve;</code> </td> <td> U+00103 </td> <td> <span class="glyph" title="">&#196;&#131;</span> </td> </tr><tr id="entity-ac"><td> <code title="">ac;</code> </td> <td> U+0223E </td> <td> <span class="glyph" title="">&#226;&#136;&#190;</span> </td> </tr><tr id="entity-acd"><td> <code title="">acd;</code> </td> <td> U+0223F </td> <td> <span class="glyph" title="">&#226;&#136;&#191;</span> </td> </tr><tr id="entity-acE"><td> <code title="">acE;</code> </td> <td> U+0223E U+00333 </td> <td> <span class="glyph compound" title="">&#226;&#136;&#190;&#204;&#179;</span> </td> </tr><tr id="entity-Acirc"><td> <code title="">Acirc;</code> </td> <td> U+000C2 </td> <td> <span class="glyph" title="">&#195;&#130;</span> </td> </tr><tr class="impl" id="entity-Acirc-legacy"><td> <code title="">Acirc</code> </td> <td> U+000C2 </td> <td> <span title="">&#195;&#130;</span> </td> </tr><tr id="entity-acirc"><td> <code title="">acirc;</code> </td> <td> U+000E2 </td> <td> <span class="glyph" title="">&#195;&#162;</span> </td> </tr><tr class="impl" id="entity-acirc-legacy"><td> <code title="">acirc</code> </td> <td> U+000E2 </td> <td> <span title="">&#195;&#162;</span> </td> </tr><tr id="entity-acute"><td> <code title="">acute;</code> </td> <td> U+000B4 </td> <td> <span class="glyph" title="">&#194;&#180;</span> </td> </tr><tr class="impl" id="entity-acute-legacy"><td> <code title="">acute</code> </td> <td> U+000B4 </td> <td> <span title="">&#194;&#180;</span> </td> </tr><tr id="entity-Acy"><td> <code title="">Acy;</code> </td> <td> U+00410 </td> <td> <span class="glyph" title="">&#208;&#144;</span> </td> </tr><tr id="entity-acy"><td> <code title="">acy;</code> </td> <td> U+00430 </td> <td> <span class="glyph" title="">&#208;&#176;</span> </td> </tr><tr id="entity-AElig"><td> <code title="">AElig;</code> </td> <td> U+000C6 </td> <td> <span class="glyph" title="">&#195;&#134;</span> </td> </tr><tr class="impl" id="entity-AElig-legacy"><td> <code title="">AElig</code> </td> <td> U+000C6 </td> <td> <span title="">&#195;&#134;</span> </td> </tr><tr id="entity-aelig"><td> <code title="">aelig;</code> </td> <td> U+000E6 </td> <td> <span class="glyph" title="">&#195;&#166;</span> </td> </tr><tr class="impl" id="entity-aelig-legacy"><td> <code title="">aelig</code> </td> <td> U+000E6 </td> <td> <span title="">&#195;&#166;</span> </td> </tr><tr id="entity-af"><td> <code title="">af;</code> </td> <td> U+02061 </td> <td> <span class="glyph" title="">&#226;&#129;&#161;</span> </td> </tr><tr id="entity-Afr"><td> <code title="">Afr;</code> </td> <td> U+1D504 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#132;</span> </td> </tr><tr id="entity-afr"><td> <code title="">afr;</code> </td> <td> U+1D51E </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#158;</span> </td> </tr><tr id="entity-Agrave"><td> <code title="">Agrave;</code> </td> <td> U+000C0 </td> <td> <span class="glyph" title="">&#195;&#128;</span> </td> </tr><tr class="impl" id="entity-Agrave-legacy"><td> <code title="">Agrave</code> </td> <td> U+000C0 </td> <td> <span title="">&#195;&#128;</span> </td> </tr><tr id="entity-agrave"><td> <code title="">agrave;</code> </td> <td> U+000E0 </td> <td> <span class="glyph" title="">&#195;&#160;</span> </td> </tr><tr class="impl" id="entity-agrave-legacy"><td> <code title="">agrave</code> </td> <td> U+000E0 </td> <td> <span title="">&#195;&#160;</span> </td> </tr><tr id="entity-alefsym"><td> <code title="">alefsym;</code> </td> <td> U+02135 </td> <td> <span class="glyph" title="">&#226;&#132;&#181;</span> </td> </tr><tr id="entity-aleph"><td> <code title="">aleph;</code> </td> <td> U+02135 </td> <td> <span class="glyph" title="">&#226;&#132;&#181;</span> </td> </tr><tr id="entity-Alpha"><td> <code title="">Alpha;</code> </td> <td> U+00391 </td> <td> <span class="glyph" title="">&#206;&#145;</span> </td> </tr><tr id="entity-alpha"><td> <code title="">alpha;</code> </td> <td> U+003B1 </td> <td> <span class="glyph" title="">&#206;&#177;</span> </td> </tr><tr id="entity-Amacr"><td> <code title="">Amacr;</code> </td> <td> U+00100 </td> <td> <span class="glyph" title="">&#196;&#128;</span> </td> </tr><tr id="entity-amacr"><td> <code title="">amacr;</code> </td> <td> U+00101 </td> <td> <span class="glyph" title="">&#196;&#129;</span> </td> </tr><tr id="entity-amalg"><td> <code title="">amalg;</code> </td> <td> U+02A3F </td> <td> <span class="glyph" title="">&#226;&#168;&#191;</span> </td> </tr><tr id="entity-AMP"><td> <code title="">AMP;</code> </td> <td> U+00026 </td> <td> <span class="glyph" title="">&amp;</span> </td> </tr><tr class="impl" id="entity-AMP-legacy"><td> <code title="">AMP</code> </td> <td> U+00026 </td> <td> <span title="">&amp;</span> </td> </tr><tr id="entity-amp"><td> <code title="">amp;</code> </td> <td> U+00026 </td> <td> <span class="glyph" title="">&amp;</span> </td> </tr><tr class="impl" id="entity-amp-legacy"><td> <code title="">amp</code> </td> <td> U+00026 </td> <td> <span title="">&amp;</span> </td> </tr><tr id="entity-And"><td> <code title="">And;</code> </td> <td> U+02A53 </td> <td> <span class="glyph" title="">&#226;&#169;&#147;</span> </td> </tr><tr id="entity-and"><td> <code title="">and;</code> </td> <td> U+02227 </td> <td> <span class="glyph" title="">&#226;&#136;&#167;</span> </td> </tr><tr id="entity-andand"><td> <code title="">andand;</code> </td> <td> U+02A55 </td> <td> <span class="glyph" title="">&#226;&#169;&#149;</span> </td> </tr><tr id="entity-andd"><td> <code title="">andd;</code> </td> <td> U+02A5C </td> <td> <span class="glyph" title="">&#226;&#169;&#156;</span> </td> </tr><tr id="entity-andslope"><td> <code title="">andslope;</code> </td> <td> U+02A58 </td> <td> <span class="glyph" title="">&#226;&#169;&#152;</span> </td> </tr><tr id="entity-andv"><td> <code title="">andv;</code> </td> <td> U+02A5A </td> <td> <span class="glyph" title="">&#226;&#169;&#154;</span> </td> </tr><tr id="entity-ang"><td> <code title="">ang;</code> </td> <td> U+02220 </td> <td> <span class="glyph" title="">&#226;&#136;&#160;</span> </td> </tr><tr id="entity-ange"><td> <code title="">ange;</code> </td> <td> U+029A4 </td> <td> <span class="glyph" title="">&#226;&#166;&#164;</span> </td> </tr><tr id="entity-angle"><td> <code title="">angle;</code> </td> <td> U+02220 </td> <td> <span class="glyph" title="">&#226;&#136;&#160;</span> </td> </tr><tr id="entity-angmsd"><td> <code title="">angmsd;</code> </td> <td> U+02221 </td> <td> <span class="glyph" title="">&#226;&#136;&#161;</span> </td> </tr><tr id="entity-angmsdaa"><td> <code title="">angmsdaa;</code> </td> <td> U+029A8 </td> <td> <span class="glyph" title="">&#226;&#166;&#168;</span> </td> </tr><tr id="entity-angmsdab"><td> <code title="">angmsdab;</code> </td> <td> U+029A9 </td> <td> <span class="glyph" title="">&#226;&#166;&#169;</span> </td> </tr><tr id="entity-angmsdac"><td> <code title="">angmsdac;</code> </td> <td> U+029AA </td> <td> <span class="glyph" title="">&#226;&#166;&#170;</span> </td> </tr><tr id="entity-angmsdad"><td> <code title="">angmsdad;</code> </td> <td> U+029AB </td> <td> <span class="glyph" title="">&#226;&#166;&#171;</span> </td> </tr><tr id="entity-angmsdae"><td> <code title="">angmsdae;</code> </td> <td> U+029AC </td> <td> <span class="glyph" title="">&#226;&#166;&#172;</span> </td> </tr><tr id="entity-angmsdaf"><td> <code title="">angmsdaf;</code> </td> <td> U+029AD </td> <td> <span class="glyph" title="">&#226;&#166;&#173;</span> </td> </tr><tr id="entity-angmsdag"><td> <code title="">angmsdag;</code> </td> <td> U+029AE </td> <td> <span class="glyph" title="">&#226;&#166;&#174;</span> </td> </tr><tr id="entity-angmsdah"><td> <code title="">angmsdah;</code> </td> <td> U+029AF </td> <td> <span class="glyph" title="">&#226;&#166;&#175;</span> </td> </tr><tr id="entity-angrt"><td> <code title="">angrt;</code> </td> <td> U+0221F </td> <td> <span class="glyph" title="">&#226;&#136;&#159;</span> </td> </tr><tr id="entity-angrtvb"><td> <code title="">angrtvb;</code> </td> <td> U+022BE </td> <td> <span class="glyph" title="">&#226;&#138;&#190;</span> </td> </tr><tr id="entity-angrtvbd"><td> <code title="">angrtvbd;</code> </td> <td> U+0299D </td> <td> <span class="glyph" title="">&#226;&#166;&#157;</span> </td> </tr><tr id="entity-angsph"><td> <code title="">angsph;</code> </td> <td> U+02222 </td> <td> <span class="glyph" title="">&#226;&#136;&#162;</span> </td> </tr><tr id="entity-angst"><td> <code title="">angst;</code> </td> <td> U+000C5 </td> <td> <span class="glyph" title="">&#195;&#133;</span> </td> </tr><tr id="entity-angzarr"><td> <code title="">angzarr;</code> </td> <td> U+0237C </td> <td> <span class="glyph" title="">&#226;&#141;&#188;</span> </td> </tr><tr id="entity-Aogon"><td> <code title="">Aogon;</code> </td> <td> U+00104 </td> <td> <span class="glyph" title="">&#196;&#132;</span> </td> </tr><tr id="entity-aogon"><td> <code title="">aogon;</code> </td> <td> U+00105 </td> <td> <span class="glyph" title="">&#196;&#133;</span> </td> </tr><tr id="entity-Aopf"><td> <code title="">Aopf;</code> </td> <td> U+1D538 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#184;</span> </td> </tr><tr id="entity-aopf"><td> <code title="">aopf;</code> </td> <td> U+1D552 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#146;</span> </td> </tr><tr id="entity-ap"><td> <code title="">ap;</code> </td> <td> U+02248 </td> <td> <span class="glyph" title="">&#226;&#137;&#136;</span> </td> </tr><tr id="entity-apacir"><td> <code title="">apacir;</code> </td> <td> U+02A6F </td> <td> <span class="glyph" title="">&#226;&#169;&#175;</span> </td> </tr><tr id="entity-apE"><td> <code title="">apE;</code> </td> <td> U+02A70 </td> <td> <span class="glyph" title="">&#226;&#169;&#176;</span> </td> </tr><tr id="entity-ape"><td> <code title="">ape;</code> </td> <td> U+0224A </td> <td> <span class="glyph" title="">&#226;&#137;&#138;</span> </td> </tr><tr id="entity-apid"><td> <code title="">apid;</code> </td> <td> U+0224B </td> <td> <span class="glyph" title="">&#226;&#137;&#139;</span> </td> </tr><tr id="entity-apos"><td> <code title="">apos;</code> </td> <td> U+00027 </td> <td> <span class="glyph" title="">'</span> </td> </tr><tr id="entity-ApplyFunction"><td> <code title="">ApplyFunction;</code> </td> <td> U+02061 </td> <td> <span class="glyph" title="">&#226;&#129;&#161;</span> </td> </tr><tr id="entity-approx"><td> <code title="">approx;</code> </td> <td> U+02248 </td> <td> <span class="glyph" title="">&#226;&#137;&#136;</span> </td> </tr><tr id="entity-approxeq"><td> <code title="">approxeq;</code> </td> <td> U+0224A </td> <td> <span class="glyph" title="">&#226;&#137;&#138;</span> </td> </tr><tr id="entity-Aring"><td> <code title="">Aring;</code> </td> <td> U+000C5 </td> <td> <span class="glyph" title="">&#195;&#133;</span> </td> </tr><tr class="impl" id="entity-Aring-legacy"><td> <code title="">Aring</code> </td> <td> U+000C5 </td> <td> <span title="">&#195;&#133;</span> </td> </tr><tr id="entity-aring"><td> <code title="">aring;</code> </td> <td> U+000E5 </td> <td> <span class="glyph" title="">&#195;&#165;</span> </td> </tr><tr class="impl" id="entity-aring-legacy"><td> <code title="">aring</code> </td> <td> U+000E5 </td> <td> <span title="">&#195;&#165;</span> </td> </tr><tr id="entity-Ascr"><td> <code title="">Ascr;</code> </td> <td> U+1D49C </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#156;</span> </td> </tr><tr id="entity-ascr"><td> <code title="">ascr;</code> </td> <td> U+1D4B6 </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#182;</span> </td> </tr><tr id="entity-Assign"><td> <code title="">Assign;</code> </td> <td> U+02254 </td> <td> <span class="glyph" title="">&#226;&#137;&#148;</span> </td> </tr><tr id="entity-ast"><td> <code title="">ast;</code> </td> <td> U+0002A </td> <td> <span class="glyph" title="">*</span> </td> </tr><tr id="entity-asymp"><td> <code title="">asymp;</code> </td> <td> U+02248 </td> <td> <span class="glyph" title="">&#226;&#137;&#136;</span> </td> </tr><tr id="entity-asympeq"><td> <code title="">asympeq;</code> </td> <td> U+0224D </td> <td> <span class="glyph" title="">&#226;&#137;&#141;</span> </td> </tr><tr id="entity-Atilde"><td> <code title="">Atilde;</code> </td> <td> U+000C3 </td> <td> <span class="glyph" title="">&#195;&#131;</span> </td> </tr><tr class="impl" id="entity-Atilde-legacy"><td> <code title="">Atilde</code> </td> <td> U+000C3 </td> <td> <span title="">&#195;&#131;</span> </td> </tr><tr id="entity-atilde"><td> <code title="">atilde;</code> </td> <td> U+000E3 </td> <td> <span class="glyph" title="">&#195;&#163;</span> </td> </tr><tr class="impl" id="entity-atilde-legacy"><td> <code title="">atilde</code> </td> <td> U+000E3 </td> <td> <span title="">&#195;&#163;</span> </td> </tr><tr id="entity-Auml"><td> <code title="">Auml;</code> </td> <td> U+000C4 </td> <td> <span class="glyph" title="">&#195;&#132;</span> </td> </tr><tr class="impl" id="entity-Auml-legacy"><td> <code title="">Auml</code> </td> <td> U+000C4 </td> <td> <span title="">&#195;&#132;</span> </td> </tr><tr id="entity-auml"><td> <code title="">auml;</code> </td> <td> U+000E4 </td> <td> <span class="glyph" title="">&#195;&#164;</span> </td> </tr><tr class="impl" id="entity-auml-legacy"><td> <code title="">auml</code> </td> <td> U+000E4 </td> <td> <span title="">&#195;&#164;</span> </td> </tr><tr id="entity-awconint"><td> <code title="">awconint;</code> </td> <td> U+02233 </td> <td> <span class="glyph" title="">&#226;&#136;&#179;</span> </td> </tr><tr id="entity-awint"><td> <code title="">awint;</code> </td> <td> U+02A11 </td> <td> <span class="glyph" title="">&#226;&#168;&#145;</span> </td> </tr><tr id="entity-backcong"><td> <code title="">backcong;</code> </td> <td> U+0224C </td> <td> <span class="glyph" title="">&#226;&#137;&#140;</span> </td> </tr><tr id="entity-backepsilon"><td> <code title="">backepsilon;</code> </td> <td> U+003F6 </td> <td> <span class="glyph" title="">&#207;&#182;</span> </td> </tr><tr id="entity-backprime"><td> <code title="">backprime;</code> </td> <td> U+02035 </td> <td> <span class="glyph" title="">&#226;&#128;&#181;</span> </td> </tr><tr id="entity-backsim"><td> <code title="">backsim;</code> </td> <td> U+0223D </td> <td> <span class="glyph" title="">&#226;&#136;&#189;</span> </td> </tr><tr id="entity-backsimeq"><td> <code title="">backsimeq;</code> </td> <td> U+022CD </td> <td> <span class="glyph" title="">&#226;&#139;&#141;</span> </td> </tr><tr id="entity-Backslash"><td> <code title="">Backslash;</code> </td> <td> U+02216 </td> <td> <span class="glyph" title="">&#226;&#136;&#150;</span> </td> </tr><tr id="entity-Barv"><td> <code title="">Barv;</code> </td> <td> U+02AE7 </td> <td> <span class="glyph" title="">&#226;&#171;&#167;</span> </td> </tr><tr id="entity-barvee"><td> <code title="">barvee;</code> </td> <td> U+022BD </td> <td> <span class="glyph" title="">&#226;&#138;&#189;</span> </td> </tr><tr id="entity-Barwed"><td> <code title="">Barwed;</code> </td> <td> U+02306 </td> <td> <span class="glyph" title="">&#226;&#140;&#134;</span> </td> </tr><tr id="entity-barwed"><td> <code title="">barwed;</code> </td> <td> U+02305 </td> <td> <span class="glyph" title="">&#226;&#140;&#133;</span> </td> </tr><tr id="entity-barwedge"><td> <code title="">barwedge;</code> </td> <td> U+02305 </td> <td> <span class="glyph" title="">&#226;&#140;&#133;</span> </td> </tr><tr id="entity-bbrk"><td> <code title="">bbrk;</code> </td> <td> U+023B5 </td> <td> <span class="glyph" title="">&#226;&#142;&#181;</span> </td> </tr><tr id="entity-bbrktbrk"><td> <code title="">bbrktbrk;</code> </td> <td> U+023B6 </td> <td> <span class="glyph" title="">&#226;&#142;&#182;</span> </td> </tr><tr id="entity-bcong"><td> <code title="">bcong;</code> </td> <td> U+0224C </td> <td> <span class="glyph" title="">&#226;&#137;&#140;</span> </td> </tr><tr id="entity-Bcy"><td> <code title="">Bcy;</code> </td> <td> U+00411 </td> <td> <span class="glyph" title="">&#208;&#145;</span> </td> </tr><tr id="entity-bcy"><td> <code title="">bcy;</code> </td> <td> U+00431 </td> <td> <span class="glyph" title="">&#208;&#177;</span> </td> </tr><tr id="entity-bdquo"><td> <code title="">bdquo;</code> </td> <td> U+0201E </td> <td> <span class="glyph" title="">&#226;&#128;&#158;</span> </td> </tr><tr id="entity-becaus"><td> <code title="">becaus;</code> </td> <td> U+02235 </td> <td> <span class="glyph" title="">&#226;&#136;&#181;</span> </td> </tr><tr id="entity-Because"><td> <code title="">Because;</code> </td> <td> U+02235 </td> <td> <span class="glyph" title="">&#226;&#136;&#181;</span> </td> </tr><tr id="entity-because"><td> <code title="">because;</code> </td> <td> U+02235 </td> <td> <span class="glyph" title="">&#226;&#136;&#181;</span> </td> </tr><tr id="entity-bemptyv"><td> <code title="">bemptyv;</code> </td> <td> U+029B0 </td> <td> <span class="glyph" title="">&#226;&#166;&#176;</span> </td> </tr><tr id="entity-bepsi"><td> <code title="">bepsi;</code> </td> <td> U+003F6 </td> <td> <span class="glyph" title="">&#207;&#182;</span> </td> </tr><tr id="entity-bernou"><td> <code title="">bernou;</code> </td> <td> U+0212C </td> <td> <span class="glyph" title="">&#226;&#132;&#172;</span> </td> </tr><tr id="entity-Bernoullis"><td> <code title="">Bernoullis;</code> </td> <td> U+0212C </td> <td> <span class="glyph" title="">&#226;&#132;&#172;</span> </td> </tr><tr id="entity-Beta"><td> <code title="">Beta;</code> </td> <td> U+00392 </td> <td> <span class="glyph" title="">&#206;&#146;</span> </td> </tr><tr id="entity-beta"><td> <code title="">beta;</code> </td> <td> U+003B2 </td> <td> <span class="glyph" title="">&#206;&#178;</span> </td> </tr><tr id="entity-beth"><td> <code title="">beth;</code> </td> <td> U+02136 </td> <td> <span class="glyph" title="">&#226;&#132;&#182;</span> </td> </tr><tr id="entity-between"><td> <code title="">between;</code> </td> <td> U+0226C </td> <td> <span class="glyph" title="">&#226;&#137;&#172;</span> </td> </tr><tr id="entity-Bfr"><td> <code title="">Bfr;</code> </td> <td> U+1D505 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#133;</span> </td> </tr><tr id="entity-bfr"><td> <code title="">bfr;</code> </td> <td> U+1D51F </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#159;</span> </td> </tr><tr id="entity-bigcap"><td> <code title="">bigcap;</code> </td> <td> U+022C2 </td> <td> <span class="glyph" title="">&#226;&#139;&#130;</span> </td> </tr><tr id="entity-bigcirc"><td> <code title="">bigcirc;</code> </td> <td> U+025EF </td> <td> <span class="glyph" title="">&#226;&#151;&#175;</span> </td> </tr><tr id="entity-bigcup"><td> <code title="">bigcup;</code> </td> <td> U+022C3 </td> <td> <span class="glyph" title="">&#226;&#139;&#131;</span> </td> </tr><tr id="entity-bigodot"><td> <code title="">bigodot;</code> </td> <td> U+02A00 </td> <td> <span class="glyph" title="">&#226;&#168;&#128;</span> </td> </tr><tr id="entity-bigoplus"><td> <code title="">bigoplus;</code> </td> <td> U+02A01 </td> <td> <span class="glyph" title="">&#226;&#168;&#129;</span> </td> </tr><tr id="entity-bigotimes"><td> <code title="">bigotimes;</code> </td> <td> U+02A02 </td> <td> <span class="glyph" title="">&#226;&#168;&#130;</span> </td> </tr><tr id="entity-bigsqcup"><td> <code title="">bigsqcup;</code> </td> <td> U+02A06 </td> <td> <span class="glyph" title="">&#226;&#168;&#134;</span> </td> </tr><tr id="entity-bigstar"><td> <code title="">bigstar;</code> </td> <td> U+02605 </td> <td> <span class="glyph" title="">&#226;&#152;&#133;</span> </td> </tr><tr id="entity-bigtriangledown"><td> <code title="">bigtriangledown;</code> </td> <td> U+025BD </td> <td> <span class="glyph" title="">&#226;&#150;&#189;</span> </td> </tr><tr id="entity-bigtriangleup"><td> <code title="">bigtriangleup;</code> </td> <td> U+025B3 </td> <td> <span class="glyph" title="">&#226;&#150;&#179;</span> </td> </tr><tr id="entity-biguplus"><td> <code title="">biguplus;</code> </td> <td> U+02A04 </td> <td> <span class="glyph" title="">&#226;&#168;&#132;</span> </td> </tr><tr id="entity-bigvee"><td> <code title="">bigvee;</code> </td> <td> U+022C1 </td> <td> <span class="glyph" title="">&#226;&#139;&#129;</span> </td> </tr><tr id="entity-bigwedge"><td> <code title="">bigwedge;</code> </td> <td> U+022C0 </td> <td> <span class="glyph" title="">&#226;&#139;&#128;</span> </td> </tr><tr id="entity-bkarow"><td> <code title="">bkarow;</code> </td> <td> U+0290D </td> <td> <span class="glyph" title="">&#226;&#164;&#141;</span> </td> </tr><tr id="entity-blacklozenge"><td> <code title="">blacklozenge;</code> </td> <td> U+029EB </td> <td> <span class="glyph" title="">&#226;&#167;&#171;</span> </td> </tr><tr id="entity-blacksquare"><td> <code title="">blacksquare;</code> </td> <td> U+025AA </td> <td> <span class="glyph" title="">&#226;&#150;&#170;</span> </td> </tr><tr id="entity-blacktriangle"><td> <code title="">blacktriangle;</code> </td> <td> U+025B4 </td> <td> <span class="glyph" title="">&#226;&#150;&#180;</span> </td> </tr><tr id="entity-blacktriangledown"><td> <code title="">blacktriangledown;</code> </td> <td> U+025BE </td> <td> <span class="glyph" title="">&#226;&#150;&#190;</span> </td> </tr><tr id="entity-blacktriangleleft"><td> <code title="">blacktriangleleft;</code> </td> <td> U+025C2 </td> <td> <span class="glyph" title="">&#226;&#151;&#130;</span> </td> </tr><tr id="entity-blacktriangleright"><td> <code title="">blacktriangleright;</code> </td> <td> U+025B8 </td> <td> <span class="glyph" title="">&#226;&#150;&#184;</span> </td> </tr><tr id="entity-blank"><td> <code title="">blank;</code> </td> <td> U+02423 </td> <td> <span class="glyph" title="">&#226;&#144;&#163;</span> </td> </tr><tr id="entity-blk12"><td> <code title="">blk12;</code> </td> <td> U+02592 </td> <td> <span class="glyph" title="">&#226;&#150;&#146;</span> </td> </tr><tr id="entity-blk14"><td> <code title="">blk14;</code> </td> <td> U+02591 </td> <td> <span class="glyph" title="">&#226;&#150;&#145;</span> </td> </tr><tr id="entity-blk34"><td> <code title="">blk34;</code> </td> <td> U+02593 </td> <td> <span class="glyph" title="">&#226;&#150;&#147;</span> </td> </tr><tr id="entity-block"><td> <code title="">block;</code> </td> <td> U+02588 </td> <td> <span class="glyph" title="">&#226;&#150;&#136;</span> </td> </tr><tr id="entity-bne"><td> <code title="">bne;</code> </td> <td> U+0003D U+020E5 </td> <td> <span class="glyph compound" title="">=&#226;&#131;&#165;</span> </td> </tr><tr id="entity-bnequiv"><td> <code title="">bnequiv;</code> </td> <td> U+02261 U+020E5 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#161;&#226;&#131;&#165;</span> </td> </tr><tr id="entity-bNot"><td> <code title="">bNot;</code> </td> <td> U+02AED </td> <td> <span class="glyph" title="">&#226;&#171;&#173;</span> </td> </tr><tr id="entity-bnot"><td> <code title="">bnot;</code> </td> <td> U+02310 </td> <td> <span class="glyph" title="">&#226;&#140;&#144;</span> </td> </tr><tr id="entity-Bopf"><td> <code title="">Bopf;</code> </td> <td> U+1D539 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#185;</span> </td> </tr><tr id="entity-bopf"><td> <code title="">bopf;</code> </td> <td> U+1D553 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#147;</span> </td> </tr><tr id="entity-bot"><td> <code title="">bot;</code> </td> <td> U+022A5 </td> <td> <span class="glyph" title="">&#226;&#138;&#165;</span> </td> </tr><tr id="entity-bottom"><td> <code title="">bottom;</code> </td> <td> U+022A5 </td> <td> <span class="glyph" title="">&#226;&#138;&#165;</span> </td> </tr><tr id="entity-bowtie"><td> <code title="">bowtie;</code> </td> <td> U+022C8 </td> <td> <span class="glyph" title="">&#226;&#139;&#136;</span> </td> </tr><tr id="entity-boxbox"><td> <code title="">boxbox;</code> </td> <td> U+029C9 </td> <td> <span class="glyph" title="">&#226;&#167;&#137;</span> </td> </tr><tr id="entity-boxDL"><td> <code title="">boxDL;</code> </td> <td> U+02557 </td> <td> <span class="glyph" title="">&#226;&#149;&#151;</span> </td> </tr><tr id="entity-boxDl"><td> <code title="">boxDl;</code> </td> <td> U+02556 </td> <td> <span class="glyph" title="">&#226;&#149;&#150;</span> </td> </tr><tr id="entity-boxdL"><td> <code title="">boxdL;</code> </td> <td> U+02555 </td> <td> <span class="glyph" title="">&#226;&#149;&#149;</span> </td> </tr><tr id="entity-boxdl"><td> <code title="">boxdl;</code> </td> <td> U+02510 </td> <td> <span class="glyph" title="">&#226;&#148;&#144;</span> </td> </tr><tr id="entity-boxDR"><td> <code title="">boxDR;</code> </td> <td> U+02554 </td> <td> <span class="glyph" title="">&#226;&#149;&#148;</span> </td> </tr><tr id="entity-boxDr"><td> <code title="">boxDr;</code> </td> <td> U+02553 </td> <td> <span class="glyph" title="">&#226;&#149;&#147;</span> </td> </tr><tr id="entity-boxdR"><td> <code title="">boxdR;</code> </td> <td> U+02552 </td> <td> <span class="glyph" title="">&#226;&#149;&#146;</span> </td> </tr><tr id="entity-boxdr"><td> <code title="">boxdr;</code> </td> <td> U+0250C </td> <td> <span class="glyph" title="">&#226;&#148;&#140;</span> </td> </tr><tr id="entity-boxH"><td> <code title="">boxH;</code> </td> <td> U+02550 </td> <td> <span class="glyph" title="">&#226;&#149;&#144;</span> </td> </tr><tr id="entity-boxh"><td> <code title="">boxh;</code> </td> <td> U+02500 </td> <td> <span class="glyph" title="">&#226;&#148;&#128;</span> </td> </tr><tr id="entity-boxHD"><td> <code title="">boxHD;</code> </td> <td> U+02566 </td> <td> <span class="glyph" title="">&#226;&#149;&#166;</span> </td> </tr><tr id="entity-boxHd"><td> <code title="">boxHd;</code> </td> <td> U+02564 </td> <td> <span class="glyph" title="">&#226;&#149;&#164;</span> </td> </tr><tr id="entity-boxhD"><td> <code title="">boxhD;</code> </td> <td> U+02565 </td> <td> <span class="glyph" title="">&#226;&#149;&#165;</span> </td> </tr><tr id="entity-boxhd"><td> <code title="">boxhd;</code> </td> <td> U+0252C </td> <td> <span class="glyph" title="">&#226;&#148;&#172;</span> </td> </tr><tr id="entity-boxHU"><td> <code title="">boxHU;</code> </td> <td> U+02569 </td> <td> <span class="glyph" title="">&#226;&#149;&#169;</span> </td> </tr><tr id="entity-boxHu"><td> <code title="">boxHu;</code> </td> <td> U+02567 </td> <td> <span class="glyph" title="">&#226;&#149;&#167;</span> </td> </tr><tr id="entity-boxhU"><td> <code title="">boxhU;</code> </td> <td> U+02568 </td> <td> <span class="glyph" title="">&#226;&#149;&#168;</span> </td> </tr><tr id="entity-boxhu"><td> <code title="">boxhu;</code> </td> <td> U+02534 </td> <td> <span class="glyph" title="">&#226;&#148;&#180;</span> </td> </tr><tr id="entity-boxminus"><td> <code title="">boxminus;</code> </td> <td> U+0229F </td> <td> <span class="glyph" title="">&#226;&#138;&#159;</span> </td> </tr><tr id="entity-boxplus"><td> <code title="">boxplus;</code> </td> <td> U+0229E </td> <td> <span class="glyph" title="">&#226;&#138;&#158;</span> </td> </tr><tr id="entity-boxtimes"><td> <code title="">boxtimes;</code> </td> <td> U+022A0 </td> <td> <span class="glyph" title="">&#226;&#138;&#160;</span> </td> </tr><tr id="entity-boxUL"><td> <code title="">boxUL;</code> </td> <td> U+0255D </td> <td> <span class="glyph" title="">&#226;&#149;&#157;</span> </td> </tr><tr id="entity-boxUl"><td> <code title="">boxUl;</code> </td> <td> U+0255C </td> <td> <span class="glyph" title="">&#226;&#149;&#156;</span> </td> </tr><tr id="entity-boxuL"><td> <code title="">boxuL;</code> </td> <td> U+0255B </td> <td> <span class="glyph" title="">&#226;&#149;&#155;</span> </td> </tr><tr id="entity-boxul"><td> <code title="">boxul;</code> </td> <td> U+02518 </td> <td> <span class="glyph" title="">&#226;&#148;&#152;</span> </td> </tr><tr id="entity-boxUR"><td> <code title="">boxUR;</code> </td> <td> U+0255A </td> <td> <span class="glyph" title="">&#226;&#149;&#154;</span> </td> </tr><tr id="entity-boxUr"><td> <code title="">boxUr;</code> </td> <td> U+02559 </td> <td> <span class="glyph" title="">&#226;&#149;&#153;</span> </td> </tr><tr id="entity-boxuR"><td> <code title="">boxuR;</code> </td> <td> U+02558 </td> <td> <span class="glyph" title="">&#226;&#149;&#152;</span> </td> </tr><tr id="entity-boxur"><td> <code title="">boxur;</code> </td> <td> U+02514 </td> <td> <span class="glyph" title="">&#226;&#148;&#148;</span> </td> </tr><tr id="entity-boxV"><td> <code title="">boxV;</code> </td> <td> U+02551 </td> <td> <span class="glyph" title="">&#226;&#149;&#145;</span> </td> </tr><tr id="entity-boxv"><td> <code title="">boxv;</code> </td> <td> U+02502 </td> <td> <span class="glyph" title="">&#226;&#148;&#130;</span> </td> </tr><tr id="entity-boxVH"><td> <code title="">boxVH;</code> </td> <td> U+0256C </td> <td> <span class="glyph" title="">&#226;&#149;&#172;</span> </td> </tr><tr id="entity-boxVh"><td> <code title="">boxVh;</code> </td> <td> U+0256B </td> <td> <span class="glyph" title="">&#226;&#149;&#171;</span> </td> </tr><tr id="entity-boxvH"><td> <code title="">boxvH;</code> </td> <td> U+0256A </td> <td> <span class="glyph" title="">&#226;&#149;&#170;</span> </td> </tr><tr id="entity-boxvh"><td> <code title="">boxvh;</code> </td> <td> U+0253C </td> <td> <span class="glyph" title="">&#226;&#148;&#188;</span> </td> </tr><tr id="entity-boxVL"><td> <code title="">boxVL;</code> </td> <td> U+02563 </td> <td> <span class="glyph" title="">&#226;&#149;&#163;</span> </td> </tr><tr id="entity-boxVl"><td> <code title="">boxVl;</code> </td> <td> U+02562 </td> <td> <span class="glyph" title="">&#226;&#149;&#162;</span> </td> </tr><tr id="entity-boxvL"><td> <code title="">boxvL;</code> </td> <td> U+02561 </td> <td> <span class="glyph" title="">&#226;&#149;&#161;</span> </td> </tr><tr id="entity-boxvl"><td> <code title="">boxvl;</code> </td> <td> U+02524 </td> <td> <span class="glyph" title="">&#226;&#148;&#164;</span> </td> </tr><tr id="entity-boxVR"><td> <code title="">boxVR;</code> </td> <td> U+02560 </td> <td> <span class="glyph" title="">&#226;&#149;&#160;</span> </td> </tr><tr id="entity-boxVr"><td> <code title="">boxVr;</code> </td> <td> U+0255F </td> <td> <span class="glyph" title="">&#226;&#149;&#159;</span> </td> </tr><tr id="entity-boxvR"><td> <code title="">boxvR;</code> </td> <td> U+0255E </td> <td> <span class="glyph" title="">&#226;&#149;&#158;</span> </td> </tr><tr id="entity-boxvr"><td> <code title="">boxvr;</code> </td> <td> U+0251C </td> <td> <span class="glyph" title="">&#226;&#148;&#156;</span> </td> </tr><tr id="entity-bprime"><td> <code title="">bprime;</code> </td> <td> U+02035 </td> <td> <span class="glyph" title="">&#226;&#128;&#181;</span> </td> </tr><tr id="entity-Breve"><td> <code title="">Breve;</code> </td> <td> U+002D8 </td> <td> <span class="glyph" title="">&#203;&#152;</span> </td> </tr><tr id="entity-breve"><td> <code title="">breve;</code> </td> <td> U+002D8 </td> <td> <span class="glyph" title="">&#203;&#152;</span> </td> </tr><tr id="entity-brvbar"><td> <code title="">brvbar;</code> </td> <td> U+000A6 </td> <td> <span class="glyph" title="">&#194;&#166;</span> </td> </tr><tr class="impl" id="entity-brvbar-legacy"><td> <code title="">brvbar</code> </td> <td> U+000A6 </td> <td> <span title="">&#194;&#166;</span> </td> </tr><tr id="entity-Bscr"><td> <code title="">Bscr;</code> </td> <td> U+0212C </td> <td> <span class="glyph" title="">&#226;&#132;&#172;</span> </td> </tr><tr id="entity-bscr"><td> <code title="">bscr;</code> </td> <td> U+1D4B7 </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#183;</span> </td> </tr><tr id="entity-bsemi"><td> <code title="">bsemi;</code> </td> <td> U+0204F </td> <td> <span class="glyph" title="">&#226;&#129;&#143;</span> </td> </tr><tr id="entity-bsim"><td> <code title="">bsim;</code> </td> <td> U+0223D </td> <td> <span class="glyph" title="">&#226;&#136;&#189;</span> </td> </tr><tr id="entity-bsime"><td> <code title="">bsime;</code> </td> <td> U+022CD </td> <td> <span class="glyph" title="">&#226;&#139;&#141;</span> </td> </tr><tr id="entity-bsol"><td> <code title="">bsol;</code> </td> <td> U+0005C </td> <td> <span class="glyph" title="">\</span> </td> </tr><tr id="entity-bsolb"><td> <code title="">bsolb;</code> </td> <td> U+029C5 </td> <td> <span class="glyph" title="">&#226;&#167;&#133;</span> </td> </tr><tr id="entity-bsolhsub"><td> <code title="">bsolhsub;</code> </td> <td> U+027C8 </td> <td> <span class="glyph" title="">&#226;&#159;&#136;</span> </td> </tr><tr id="entity-bull"><td> <code title="">bull;</code> </td> <td> U+02022 </td> <td> <span class="glyph" title="">&#226;&#128;&#162;</span> </td> </tr><tr id="entity-bullet"><td> <code title="">bullet;</code> </td> <td> U+02022 </td> <td> <span class="glyph" title="">&#226;&#128;&#162;</span> </td> </tr><tr id="entity-bump"><td> <code title="">bump;</code> </td> <td> U+0224E </td> <td> <span class="glyph" title="">&#226;&#137;&#142;</span> </td> </tr><tr id="entity-bumpE"><td> <code title="">bumpE;</code> </td> <td> U+02AAE </td> <td> <span class="glyph" title="">&#226;&#170;&#174;</span> </td> </tr><tr id="entity-bumpe"><td> <code title="">bumpe;</code> </td> <td> U+0224F </td> <td> <span class="glyph" title="">&#226;&#137;&#143;</span> </td> </tr><tr id="entity-Bumpeq"><td> <code title="">Bumpeq;</code> </td> <td> U+0224E </td> <td> <span class="glyph" title="">&#226;&#137;&#142;</span> </td> </tr><tr id="entity-bumpeq"><td> <code title="">bumpeq;</code> </td> <td> U+0224F </td> <td> <span class="glyph" title="">&#226;&#137;&#143;</span> </td> </tr><tr id="entity-Cacute"><td> <code title="">Cacute;</code> </td> <td> U+00106 </td> <td> <span class="glyph" title="">&#196;&#134;</span> </td> </tr><tr id="entity-cacute"><td> <code title="">cacute;</code> </td> <td> U+00107 </td> <td> <span class="glyph" title="">&#196;&#135;</span> </td> </tr><tr id="entity-Cap"><td> <code title="">Cap;</code> </td> <td> U+022D2 </td> <td> <span class="glyph" title="">&#226;&#139;&#146;</span> </td> </tr><tr id="entity-cap"><td> <code title="">cap;</code> </td> <td> U+02229 </td> <td> <span class="glyph" title="">&#226;&#136;&#169;</span> </td> </tr><tr id="entity-capand"><td> <code title="">capand;</code> </td> <td> U+02A44 </td> <td> <span class="glyph" title="">&#226;&#169;&#132;</span> </td> </tr><tr id="entity-capbrcup"><td> <code title="">capbrcup;</code> </td> <td> U+02A49 </td> <td> <span class="glyph" title="">&#226;&#169;&#137;</span> </td> </tr><tr id="entity-capcap"><td> <code title="">capcap;</code> </td> <td> U+02A4B </td> <td> <span class="glyph" title="">&#226;&#169;&#139;</span> </td> </tr><tr id="entity-capcup"><td> <code title="">capcup;</code> </td> <td> U+02A47 </td> <td> <span class="glyph" title="">&#226;&#169;&#135;</span> </td> </tr><tr id="entity-capdot"><td> <code title="">capdot;</code> </td> <td> U+02A40 </td> <td> <span class="glyph" title="">&#226;&#169;&#128;</span> </td> </tr><tr id="entity-CapitalDifferentialD"><td> <code title="">CapitalDifferentialD;</code> </td> <td> U+02145 </td> <td> <span class="glyph" title="">&#226;&#133;&#133;</span> </td> </tr><tr id="entity-caps"><td> <code title="">caps;</code> </td> <td> U+02229 U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#136;&#169;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-caret"><td> <code title="">caret;</code> </td> <td> U+02041 </td> <td> <span class="glyph" title="">&#226;&#129;&#129;</span> </td> </tr><tr id="entity-caron"><td> <code title="">caron;</code> </td> <td> U+002C7 </td> <td> <span class="glyph" title="">&#203;&#135;</span> </td> </tr><tr id="entity-Cayleys"><td> <code title="">Cayleys;</code> </td> <td> U+0212D </td> <td> <span class="glyph" title="">&#226;&#132;&#173;</span> </td> </tr><tr id="entity-ccaps"><td> <code title="">ccaps;</code> </td> <td> U+02A4D </td> <td> <span class="glyph" title="">&#226;&#169;&#141;</span> </td> </tr><tr id="entity-Ccaron"><td> <code title="">Ccaron;</code> </td> <td> U+0010C </td> <td> <span class="glyph" title="">&#196;&#140;</span> </td> </tr><tr id="entity-ccaron"><td> <code title="">ccaron;</code> </td> <td> U+0010D </td> <td> <span class="glyph" title="">&#196;&#141;</span> </td> </tr><tr id="entity-Ccedil"><td> <code title="">Ccedil;</code> </td> <td> U+000C7 </td> <td> <span class="glyph" title="">&#195;&#135;</span> </td> </tr><tr class="impl" id="entity-Ccedil-legacy"><td> <code title="">Ccedil</code> </td> <td> U+000C7 </td> <td> <span title="">&#195;&#135;</span> </td> </tr><tr id="entity-ccedil"><td> <code title="">ccedil;</code> </td> <td> U+000E7 </td> <td> <span class="glyph" title="">&#195;&#167;</span> </td> </tr><tr class="impl" id="entity-ccedil-legacy"><td> <code title="">ccedil</code> </td> <td> U+000E7 </td> <td> <span title="">&#195;&#167;</span> </td> </tr><tr id="entity-Ccirc"><td> <code title="">Ccirc;</code> </td> <td> U+00108 </td> <td> <span class="glyph" title="">&#196;&#136;</span> </td> </tr><tr id="entity-ccirc"><td> <code title="">ccirc;</code> </td> <td> U+00109 </td> <td> <span class="glyph" title="">&#196;&#137;</span> </td> </tr><tr id="entity-Cconint"><td> <code title="">Cconint;</code> </td> <td> U+02230 </td> <td> <span class="glyph" title="">&#226;&#136;&#176;</span> </td> </tr><tr id="entity-ccups"><td> <code title="">ccups;</code> </td> <td> U+02A4C </td> <td> <span class="glyph" title="">&#226;&#169;&#140;</span> </td> </tr><tr id="entity-ccupssm"><td> <code title="">ccupssm;</code> </td> <td> U+02A50 </td> <td> <span class="glyph" title="">&#226;&#169;&#144;</span> </td> </tr><tr id="entity-Cdot"><td> <code title="">Cdot;</code> </td> <td> U+0010A </td> <td> <span class="glyph" title="">&#196;&#138;</span> </td> </tr><tr id="entity-cdot"><td> <code title="">cdot;</code> </td> <td> U+0010B </td> <td> <span class="glyph" title="">&#196;&#139;</span> </td> </tr><tr id="entity-cedil"><td> <code title="">cedil;</code> </td> <td> U+000B8 </td> <td> <span class="glyph" title="">&#194;&#184;</span> </td> </tr><tr class="impl" id="entity-cedil-legacy"><td> <code title="">cedil</code> </td> <td> U+000B8 </td> <td> <span title="">&#194;&#184;</span> </td> </tr><tr id="entity-Cedilla"><td> <code title="">Cedilla;</code> </td> <td> U+000B8 </td> <td> <span class="glyph" title="">&#194;&#184;</span> </td> </tr><tr id="entity-cemptyv"><td> <code title="">cemptyv;</code> </td> <td> U+029B2 </td> <td> <span class="glyph" title="">&#226;&#166;&#178;</span> </td> </tr><tr id="entity-cent"><td> <code title="">cent;</code> </td> <td> U+000A2 </td> <td> <span class="glyph" title="">&#194;&#162;</span> </td> </tr><tr class="impl" id="entity-cent-legacy"><td> <code title="">cent</code> </td> <td> U+000A2 </td> <td> <span title="">&#194;&#162;</span> </td> </tr><tr id="entity-CenterDot"><td> <code title="">CenterDot;</code> </td> <td> U+000B7 </td> <td> <span class="glyph" title="">&#194;&#183;</span> </td> </tr><tr id="entity-centerdot"><td> <code title="">centerdot;</code> </td> <td> U+000B7 </td> <td> <span class="glyph" title="">&#194;&#183;</span> </td> </tr><tr id="entity-Cfr"><td> <code title="">Cfr;</code> </td> <td> U+0212D </td> <td> <span class="glyph" title="">&#226;&#132;&#173;</span> </td> </tr><tr id="entity-cfr"><td> <code title="">cfr;</code> </td> <td> U+1D520 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#160;</span> </td> </tr><tr id="entity-CHcy"><td> <code title="">CHcy;</code> </td> <td> U+00427 </td> <td> <span class="glyph" title="">&#208;&#167;</span> </td> </tr><tr id="entity-chcy"><td> <code title="">chcy;</code> </td> <td> U+00447 </td> <td> <span class="glyph" title="">&#209;&#135;</span> </td> </tr><tr id="entity-check"><td> <code title="">check;</code> </td> <td> U+02713 </td> <td> <span class="glyph" title="">&#226;&#156;&#147;</span> </td> </tr><tr id="entity-checkmark"><td> <code title="">checkmark;</code> </td> <td> U+02713 </td> <td> <span class="glyph" title="">&#226;&#156;&#147;</span> </td> </tr><tr id="entity-Chi"><td> <code title="">Chi;</code> </td> <td> U+003A7 </td> <td> <span class="glyph" title="">&#206;&#167;</span> </td> </tr><tr id="entity-chi"><td> <code title="">chi;</code> </td> <td> U+003C7 </td> <td> <span class="glyph" title="">&#207;&#135;</span> </td> </tr><tr id="entity-cir"><td> <code title="">cir;</code> </td> <td> U+025CB </td> <td> <span class="glyph" title="">&#226;&#151;&#139;</span> </td> </tr><tr id="entity-circ"><td> <code title="">circ;</code> </td> <td> U+002C6 </td> <td> <span class="glyph" title="">&#203;&#134;</span> </td> </tr><tr id="entity-circeq"><td> <code title="">circeq;</code> </td> <td> U+02257 </td> <td> <span class="glyph" title="">&#226;&#137;&#151;</span> </td> </tr><tr id="entity-circlearrowleft"><td> <code title="">circlearrowleft;</code> </td> <td> U+021BA </td> <td> <span class="glyph" title="">&#226;&#134;&#186;</span> </td> </tr><tr id="entity-circlearrowright"><td> <code title="">circlearrowright;</code> </td> <td> U+021BB </td> <td> <span class="glyph" title="">&#226;&#134;&#187;</span> </td> </tr><tr id="entity-circledast"><td> <code title="">circledast;</code> </td> <td> U+0229B </td> <td> <span class="glyph" title="">&#226;&#138;&#155;</span> </td> </tr><tr id="entity-circledcirc"><td> <code title="">circledcirc;</code> </td> <td> U+0229A </td> <td> <span class="glyph" title="">&#226;&#138;&#154;</span> </td> </tr><tr id="entity-circleddash"><td> <code title="">circleddash;</code> </td> <td> U+0229D </td> <td> <span class="glyph" title="">&#226;&#138;&#157;</span> </td> </tr><tr id="entity-CircleDot"><td> <code title="">CircleDot;</code> </td> <td> U+02299 </td> <td> <span class="glyph" title="">&#226;&#138;&#153;</span> </td> </tr><tr id="entity-circledR"><td> <code title="">circledR;</code> </td> <td> U+000AE </td> <td> <span class="glyph" title="">&#194;&#174;</span> </td> </tr><tr id="entity-circledS"><td> <code title="">circledS;</code> </td> <td> U+024C8 </td> <td> <span class="glyph" title="">&#226;&#147;&#136;</span> </td> </tr><tr id="entity-CircleMinus"><td> <code title="">CircleMinus;</code> </td> <td> U+02296 </td> <td> <span class="glyph" title="">&#226;&#138;&#150;</span> </td> </tr><tr id="entity-CirclePlus"><td> <code title="">CirclePlus;</code> </td> <td> U+02295 </td> <td> <span class="glyph" title="">&#226;&#138;&#149;</span> </td> </tr><tr id="entity-CircleTimes"><td> <code title="">CircleTimes;</code> </td> <td> U+02297 </td> <td> <span class="glyph" title="">&#226;&#138;&#151;</span> </td> </tr><tr id="entity-cirE"><td> <code title="">cirE;</code> </td> <td> U+029C3 </td> <td> <span class="glyph" title="">&#226;&#167;&#131;</span> </td> </tr><tr id="entity-cire"><td> <code title="">cire;</code> </td> <td> U+02257 </td> <td> <span class="glyph" title="">&#226;&#137;&#151;</span> </td> </tr><tr id="entity-cirfnint"><td> <code title="">cirfnint;</code> </td> <td> U+02A10 </td> <td> <span class="glyph" title="">&#226;&#168;&#144;</span> </td> </tr><tr id="entity-cirmid"><td> <code title="">cirmid;</code> </td> <td> U+02AEF </td> <td> <span class="glyph" title="">&#226;&#171;&#175;</span> </td> </tr><tr id="entity-cirscir"><td> <code title="">cirscir;</code> </td> <td> U+029C2 </td> <td> <span class="glyph" title="">&#226;&#167;&#130;</span> </td> </tr><tr id="entity-ClockwiseContourIntegral"><td> <code title="">ClockwiseContourIntegral;</code> </td> <td> U+02232 </td> <td> <span class="glyph" title="">&#226;&#136;&#178;</span> </td> </tr><tr id="entity-CloseCurlyDoubleQuote"><td> <code title="">CloseCurlyDoubleQuote;</code> </td> <td> U+0201D </td> <td> <span class="glyph" title="">&#226;&#128;&#157;</span> </td> </tr><tr id="entity-CloseCurlyQuote"><td> <code title="">CloseCurlyQuote;</code> </td> <td> U+02019 </td> <td> <span class="glyph" title="">&#226;&#128;&#153;</span> </td> </tr><tr id="entity-clubs"><td> <code title="">clubs;</code> </td> <td> U+02663 </td> <td> <span class="glyph" title="">&#226;&#153;&#163;</span> </td> </tr><tr id="entity-clubsuit"><td> <code title="">clubsuit;</code> </td> <td> U+02663 </td> <td> <span class="glyph" title="">&#226;&#153;&#163;</span> </td> </tr><tr id="entity-Colon"><td> <code title="">Colon;</code> </td> <td> U+02237 </td> <td> <span class="glyph" title="">&#226;&#136;&#183;</span> </td> </tr><tr id="entity-colon"><td> <code title="">colon;</code> </td> <td> U+0003A </td> <td> <span class="glyph" title="">:</span> </td> </tr><tr id="entity-Colone"><td> <code title="">Colone;</code> </td> <td> U+02A74 </td> <td> <span class="glyph" title="">&#226;&#169;&#180;</span> </td> </tr><tr id="entity-colone"><td> <code title="">colone;</code> </td> <td> U+02254 </td> <td> <span class="glyph" title="">&#226;&#137;&#148;</span> </td> </tr><tr id="entity-coloneq"><td> <code title="">coloneq;</code> </td> <td> U+02254 </td> <td> <span class="glyph" title="">&#226;&#137;&#148;</span> </td> </tr><tr id="entity-comma"><td> <code title="">comma;</code> </td> <td> U+0002C </td> <td> <span class="glyph" title="">,</span> </td> </tr><tr id="entity-commat"><td> <code title="">commat;</code> </td> <td> U+00040 </td> <td> <span class="glyph" title="">@</span> </td> </tr><tr id="entity-comp"><td> <code title="">comp;</code> </td> <td> U+02201 </td> <td> <span class="glyph" title="">&#226;&#136;&#129;</span> </td> </tr><tr id="entity-compfn"><td> <code title="">compfn;</code> </td> <td> U+02218 </td> <td> <span class="glyph" title="">&#226;&#136;&#152;</span> </td> </tr><tr id="entity-complement"><td> <code title="">complement;</code> </td> <td> U+02201 </td> <td> <span class="glyph" title="">&#226;&#136;&#129;</span> </td> </tr><tr id="entity-complexes"><td> <code title="">complexes;</code> </td> <td> U+02102 </td> <td> <span class="glyph" title="">&#226;&#132;&#130;</span> </td> </tr><tr id="entity-cong"><td> <code title="">cong;</code> </td> <td> U+02245 </td> <td> <span class="glyph" title="">&#226;&#137;&#133;</span> </td> </tr><tr id="entity-congdot"><td> <code title="">congdot;</code> </td> <td> U+02A6D </td> <td> <span class="glyph" title="">&#226;&#169;&#173;</span> </td> </tr><tr id="entity-Congruent"><td> <code title="">Congruent;</code> </td> <td> U+02261 </td> <td> <span class="glyph" title="">&#226;&#137;&#161;</span> </td> </tr><tr id="entity-Conint"><td> <code title="">Conint;</code> </td> <td> U+0222F </td> <td> <span class="glyph" title="">&#226;&#136;&#175;</span> </td> </tr><tr id="entity-conint"><td> <code title="">conint;</code> </td> <td> U+0222E </td> <td> <span class="glyph" title="">&#226;&#136;&#174;</span> </td> </tr><tr id="entity-ContourIntegral"><td> <code title="">ContourIntegral;</code> </td> <td> U+0222E </td> <td> <span class="glyph" title="">&#226;&#136;&#174;</span> </td> </tr><tr id="entity-Copf"><td> <code title="">Copf;</code> </td> <td> U+02102 </td> <td> <span class="glyph" title="">&#226;&#132;&#130;</span> </td> </tr><tr id="entity-copf"><td> <code title="">copf;</code> </td> <td> U+1D554 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#148;</span> </td> </tr><tr id="entity-coprod"><td> <code title="">coprod;</code> </td> <td> U+02210 </td> <td> <span class="glyph" title="">&#226;&#136;&#144;</span> </td> </tr><tr id="entity-Coproduct"><td> <code title="">Coproduct;</code> </td> <td> U+02210 </td> <td> <span class="glyph" title="">&#226;&#136;&#144;</span> </td> </tr><tr id="entity-COPY"><td> <code title="">COPY;</code> </td> <td> U+000A9 </td> <td> <span class="glyph" title="">&#194;&#169;</span> </td> </tr><tr class="impl" id="entity-COPY-legacy"><td> <code title="">COPY</code> </td> <td> U+000A9 </td> <td> <span title="">&#194;&#169;</span> </td> </tr><tr id="entity-copy"><td> <code title="">copy;</code> </td> <td> U+000A9 </td> <td> <span class="glyph" title="">&#194;&#169;</span> </td> </tr><tr class="impl" id="entity-copy-legacy"><td> <code title="">copy</code> </td> <td> U+000A9 </td> <td> <span title="">&#194;&#169;</span> </td> </tr><tr id="entity-copysr"><td> <code title="">copysr;</code> </td> <td> U+02117 </td> <td> <span class="glyph" title="">&#226;&#132;&#151;</span> </td> </tr><tr id="entity-CounterClockwiseContourIntegral"><td> <code title="">CounterClockwiseContourIntegral;</code> </td> <td> U+02233 </td> <td> <span class="glyph" title="">&#226;&#136;&#179;</span> </td> </tr><tr id="entity-crarr"><td> <code title="">crarr;</code> </td> <td> U+021B5 </td> <td> <span class="glyph" title="">&#226;&#134;&#181;</span> </td> </tr><tr id="entity-Cross"><td> <code title="">Cross;</code> </td> <td> U+02A2F </td> <td> <span class="glyph" title="">&#226;&#168;&#175;</span> </td> </tr><tr id="entity-cross"><td> <code title="">cross;</code> </td> <td> U+02717 </td> <td> <span class="glyph" title="">&#226;&#156;&#151;</span> </td> </tr><tr id="entity-Cscr"><td> <code title="">Cscr;</code> </td> <td> U+1D49E </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#158;</span> </td> </tr><tr id="entity-cscr"><td> <code title="">cscr;</code> </td> <td> U+1D4B8 </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#184;</span> </td> </tr><tr id="entity-csub"><td> <code title="">csub;</code> </td> <td> U+02ACF </td> <td> <span class="glyph" title="">&#226;&#171;&#143;</span> </td> </tr><tr id="entity-csube"><td> <code title="">csube;</code> </td> <td> U+02AD1 </td> <td> <span class="glyph" title="">&#226;&#171;&#145;</span> </td> </tr><tr id="entity-csup"><td> <code title="">csup;</code> </td> <td> U+02AD0 </td> <td> <span class="glyph" title="">&#226;&#171;&#144;</span> </td> </tr><tr id="entity-csupe"><td> <code title="">csupe;</code> </td> <td> U+02AD2 </td> <td> <span class="glyph" title="">&#226;&#171;&#146;</span> </td> </tr><tr id="entity-ctdot"><td> <code title="">ctdot;</code> </td> <td> U+022EF </td> <td> <span class="glyph" title="">&#226;&#139;&#175;</span> </td> </tr><tr id="entity-cudarrl"><td> <code title="">cudarrl;</code> </td> <td> U+02938 </td> <td> <span class="glyph" title="">&#226;&#164;&#184;</span> </td> </tr><tr id="entity-cudarrr"><td> <code title="">cudarrr;</code> </td> <td> U+02935 </td> <td> <span class="glyph" title="">&#226;&#164;&#181;</span> </td> </tr><tr id="entity-cuepr"><td> <code title="">cuepr;</code> </td> <td> U+022DE </td> <td> <span class="glyph" title="">&#226;&#139;&#158;</span> </td> </tr><tr id="entity-cuesc"><td> <code title="">cuesc;</code> </td> <td> U+022DF </td> <td> <span class="glyph" title="">&#226;&#139;&#159;</span> </td> </tr><tr id="entity-cularr"><td> <code title="">cularr;</code> </td> <td> U+021B6 </td> <td> <span class="glyph" title="">&#226;&#134;&#182;</span> </td> </tr><tr id="entity-cularrp"><td> <code title="">cularrp;</code> </td> <td> U+0293D </td> <td> <span class="glyph" title="">&#226;&#164;&#189;</span> </td> </tr><tr id="entity-Cup"><td> <code title="">Cup;</code> </td> <td> U+022D3 </td> <td> <span class="glyph" title="">&#226;&#139;&#147;</span> </td> </tr><tr id="entity-cup"><td> <code title="">cup;</code> </td> <td> U+0222A </td> <td> <span class="glyph" title="">&#226;&#136;&#170;</span> </td> </tr><tr id="entity-cupbrcap"><td> <code title="">cupbrcap;</code> </td> <td> U+02A48 </td> <td> <span class="glyph" title="">&#226;&#169;&#136;</span> </td> </tr><tr id="entity-CupCap"><td> <code title="">CupCap;</code> </td> <td> U+0224D </td> <td> <span class="glyph" title="">&#226;&#137;&#141;</span> </td> </tr><tr id="entity-cupcap"><td> <code title="">cupcap;</code> </td> <td> U+02A46 </td> <td> <span class="glyph" title="">&#226;&#169;&#134;</span> </td> </tr><tr id="entity-cupcup"><td> <code title="">cupcup;</code> </td> <td> U+02A4A </td> <td> <span class="glyph" title="">&#226;&#169;&#138;</span> </td> </tr><tr id="entity-cupdot"><td> <code title="">cupdot;</code> </td> <td> U+0228D </td> <td> <span class="glyph" title="">&#226;&#138;&#141;</span> </td> </tr><tr id="entity-cupor"><td> <code title="">cupor;</code> </td> <td> U+02A45 </td> <td> <span class="glyph" title="">&#226;&#169;&#133;</span> </td> </tr><tr id="entity-cups"><td> <code title="">cups;</code> </td> <td> U+0222A U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#136;&#170;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-curarr"><td> <code title="">curarr;</code> </td> <td> U+021B7 </td> <td> <span class="glyph" title="">&#226;&#134;&#183;</span> </td> </tr><tr id="entity-curarrm"><td> <code title="">curarrm;</code> </td> <td> U+0293C </td> <td> <span class="glyph" title="">&#226;&#164;&#188;</span> </td> </tr><tr id="entity-curlyeqprec"><td> <code title="">curlyeqprec;</code> </td> <td> U+022DE </td> <td> <span class="glyph" title="">&#226;&#139;&#158;</span> </td> </tr><tr id="entity-curlyeqsucc"><td> <code title="">curlyeqsucc;</code> </td> <td> U+022DF </td> <td> <span class="glyph" title="">&#226;&#139;&#159;</span> </td> </tr><tr id="entity-curlyvee"><td> <code title="">curlyvee;</code> </td> <td> U+022CE </td> <td> <span class="glyph" title="">&#226;&#139;&#142;</span> </td> </tr><tr id="entity-curlywedge"><td> <code title="">curlywedge;</code> </td> <td> U+022CF </td> <td> <span class="glyph" title="">&#226;&#139;&#143;</span> </td> </tr><tr id="entity-curren"><td> <code title="">curren;</code> </td> <td> U+000A4 </td> <td> <span class="glyph" title="">&#194;&#164;</span> </td> </tr><tr class="impl" id="entity-curren-legacy"><td> <code title="">curren</code> </td> <td> U+000A4 </td> <td> <span title="">&#194;&#164;</span> </td> </tr><tr id="entity-curvearrowleft"><td> <code title="">curvearrowleft;</code> </td> <td> U+021B6 </td> <td> <span class="glyph" title="">&#226;&#134;&#182;</span> </td> </tr><tr id="entity-curvearrowright"><td> <code title="">curvearrowright;</code> </td> <td> U+021B7 </td> <td> <span class="glyph" title="">&#226;&#134;&#183;</span> </td> </tr><tr id="entity-cuvee"><td> <code title="">cuvee;</code> </td> <td> U+022CE </td> <td> <span class="glyph" title="">&#226;&#139;&#142;</span> </td> </tr><tr id="entity-cuwed"><td> <code title="">cuwed;</code> </td> <td> U+022CF </td> <td> <span class="glyph" title="">&#226;&#139;&#143;</span> </td> </tr><tr id="entity-cwconint"><td> <code title="">cwconint;</code> </td> <td> U+02232 </td> <td> <span class="glyph" title="">&#226;&#136;&#178;</span> </td> </tr><tr id="entity-cwint"><td> <code title="">cwint;</code> </td> <td> U+02231 </td> <td> <span class="glyph" title="">&#226;&#136;&#177;</span> </td> </tr><tr id="entity-cylcty"><td> <code title="">cylcty;</code> </td> <td> U+0232D </td> <td> <span class="glyph" title="">&#226;&#140;&#173;</span> </td> </tr><tr id="entity-Dagger"><td> <code title="">Dagger;</code> </td> <td> U+02021 </td> <td> <span class="glyph" title="">&#226;&#128;&#161;</span> </td> </tr><tr id="entity-dagger"><td> <code title="">dagger;</code> </td> <td> U+02020 </td> <td> <span class="glyph" title="">&#226;&#128;&#160;</span> </td> </tr><tr id="entity-daleth"><td> <code title="">daleth;</code> </td> <td> U+02138 </td> <td> <span class="glyph" title="">&#226;&#132;&#184;</span> </td> </tr><tr id="entity-Darr"><td> <code title="">Darr;</code> </td> <td> U+021A1 </td> <td> <span class="glyph" title="">&#226;&#134;&#161;</span> </td> </tr><tr id="entity-dArr"><td> <code title="">dArr;</code> </td> <td> U+021D3 </td> <td> <span class="glyph" title="">&#226;&#135;&#147;</span> </td> </tr><tr id="entity-darr"><td> <code title="">darr;</code> </td> <td> U+02193 </td> <td> <span class="glyph" title="">&#226;&#134;&#147;</span> </td> </tr><tr id="entity-dash"><td> <code title="">dash;</code> </td> <td> U+02010 </td> <td> <span class="glyph" title="">&#226;&#128;&#144;</span> </td> </tr><tr id="entity-Dashv"><td> <code title="">Dashv;</code> </td> <td> U+02AE4 </td> <td> <span class="glyph" title="">&#226;&#171;&#164;</span> </td> </tr><tr id="entity-dashv"><td> <code title="">dashv;</code> </td> <td> U+022A3 </td> <td> <span class="glyph" title="">&#226;&#138;&#163;</span> </td> </tr><tr id="entity-dbkarow"><td> <code title="">dbkarow;</code> </td> <td> U+0290F </td> <td> <span class="glyph" title="">&#226;&#164;&#143;</span> </td> </tr><tr id="entity-dblac"><td> <code title="">dblac;</code> </td> <td> U+002DD </td> <td> <span class="glyph" title="">&#203;&#157;</span> </td> </tr><tr id="entity-Dcaron"><td> <code title="">Dcaron;</code> </td> <td> U+0010E </td> <td> <span class="glyph" title="">&#196;&#142;</span> </td> </tr><tr id="entity-dcaron"><td> <code title="">dcaron;</code> </td> <td> U+0010F </td> <td> <span class="glyph" title="">&#196;&#143;</span> </td> </tr><tr id="entity-Dcy"><td> <code title="">Dcy;</code> </td> <td> U+00414 </td> <td> <span class="glyph" title="">&#208;&#148;</span> </td> </tr><tr id="entity-dcy"><td> <code title="">dcy;</code> </td> <td> U+00434 </td> <td> <span class="glyph" title="">&#208;&#180;</span> </td> </tr><tr id="entity-DD"><td> <code title="">DD;</code> </td> <td> U+02145 </td> <td> <span class="glyph" title="">&#226;&#133;&#133;</span> </td> </tr><tr id="entity-dd"><td> <code title="">dd;</code> </td> <td> U+02146 </td> <td> <span class="glyph" title="">&#226;&#133;&#134;</span> </td> </tr><tr id="entity-ddagger"><td> <code title="">ddagger;</code> </td> <td> U+02021 </td> <td> <span class="glyph" title="">&#226;&#128;&#161;</span> </td> </tr><tr id="entity-ddarr"><td> <code title="">ddarr;</code> </td> <td> U+021CA </td> <td> <span class="glyph" title="">&#226;&#135;&#138;</span> </td> </tr><tr id="entity-DDotrahd"><td> <code title="">DDotrahd;</code> </td> <td> U+02911 </td> <td> <span class="glyph" title="">&#226;&#164;&#145;</span> </td> </tr><tr id="entity-ddotseq"><td> <code title="">ddotseq;</code> </td> <td> U+02A77 </td> <td> <span class="glyph" title="">&#226;&#169;&#183;</span> </td> </tr><tr id="entity-deg"><td> <code title="">deg;</code> </td> <td> U+000B0 </td> <td> <span class="glyph" title="">&#194;&#176;</span> </td> </tr><tr class="impl" id="entity-deg-legacy"><td> <code title="">deg</code> </td> <td> U+000B0 </td> <td> <span title="">&#194;&#176;</span> </td> </tr><tr id="entity-Del"><td> <code title="">Del;</code> </td> <td> U+02207 </td> <td> <span class="glyph" title="">&#226;&#136;&#135;</span> </td> </tr><tr id="entity-Delta"><td> <code title="">Delta;</code> </td> <td> U+00394 </td> <td> <span class="glyph" title="">&#206;&#148;</span> </td> </tr><tr id="entity-delta"><td> <code title="">delta;</code> </td> <td> U+003B4 </td> <td> <span class="glyph" title="">&#206;&#180;</span> </td> </tr><tr id="entity-demptyv"><td> <code title="">demptyv;</code> </td> <td> U+029B1 </td> <td> <span class="glyph" title="">&#226;&#166;&#177;</span> </td> </tr><tr id="entity-dfisht"><td> <code title="">dfisht;</code> </td> <td> U+0297F </td> <td> <span class="glyph" title="">&#226;&#165;&#191;</span> </td> </tr><tr id="entity-Dfr"><td> <code title="">Dfr;</code> </td> <td> U+1D507 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#135;</span> </td> </tr><tr id="entity-dfr"><td> <code title="">dfr;</code> </td> <td> U+1D521 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#161;</span> </td> </tr><tr id="entity-dHar"><td> <code title="">dHar;</code> </td> <td> U+02965 </td> <td> <span class="glyph" title="">&#226;&#165;&#165;</span> </td> </tr><tr id="entity-dharl"><td> <code title="">dharl;</code> </td> <td> U+021C3 </td> <td> <span class="glyph" title="">&#226;&#135;&#131;</span> </td> </tr><tr id="entity-dharr"><td> <code title="">dharr;</code> </td> <td> U+021C2 </td> <td> <span class="glyph" title="">&#226;&#135;&#130;</span> </td> </tr><tr id="entity-DiacriticalAcute"><td> <code title="">DiacriticalAcute;</code> </td> <td> U+000B4 </td> <td> <span class="glyph" title="">&#194;&#180;</span> </td> </tr><tr id="entity-DiacriticalDot"><td> <code title="">DiacriticalDot;</code> </td> <td> U+002D9 </td> <td> <span class="glyph" title="">&#203;&#153;</span> </td> </tr><tr id="entity-DiacriticalDoubleAcute"><td> <code title="">DiacriticalDoubleAcute;</code> </td> <td> U+002DD </td> <td> <span class="glyph" title="">&#203;&#157;</span> </td> </tr><tr id="entity-DiacriticalGrave"><td> <code title="">DiacriticalGrave;</code> </td> <td> U+00060 </td> <td> <span class="glyph" title="">`</span> </td> </tr><tr id="entity-DiacriticalTilde"><td> <code title="">DiacriticalTilde;</code> </td> <td> U+002DC </td> <td> <span class="glyph" title="">&#203;&#156;</span> </td> </tr><tr id="entity-diam"><td> <code title="">diam;</code> </td> <td> U+022C4 </td> <td> <span class="glyph" title="">&#226;&#139;&#132;</span> </td> </tr><tr id="entity-Diamond"><td> <code title="">Diamond;</code> </td> <td> U+022C4 </td> <td> <span class="glyph" title="">&#226;&#139;&#132;</span> </td> </tr><tr id="entity-diamond"><td> <code title="">diamond;</code> </td> <td> U+022C4 </td> <td> <span class="glyph" title="">&#226;&#139;&#132;</span> </td> </tr><tr id="entity-diamondsuit"><td> <code title="">diamondsuit;</code> </td> <td> U+02666 </td> <td> <span class="glyph" title="">&#226;&#153;&#166;</span> </td> </tr><tr id="entity-diams"><td> <code title="">diams;</code> </td> <td> U+02666 </td> <td> <span class="glyph" title="">&#226;&#153;&#166;</span> </td> </tr><tr id="entity-die"><td> <code title="">die;</code> </td> <td> U+000A8 </td> <td> <span class="glyph" title="">&#194;&#168;</span> </td> </tr><tr id="entity-DifferentialD"><td> <code title="">DifferentialD;</code> </td> <td> U+02146 </td> <td> <span class="glyph" title="">&#226;&#133;&#134;</span> </td> </tr><tr id="entity-digamma"><td> <code title="">digamma;</code> </td> <td> U+003DD </td> <td> <span class="glyph" title="">&#207;&#157;</span> </td> </tr><tr id="entity-disin"><td> <code title="">disin;</code> </td> <td> U+022F2 </td> <td> <span class="glyph" title="">&#226;&#139;&#178;</span> </td> </tr><tr id="entity-div"><td> <code title="">div;</code> </td> <td> U+000F7 </td> <td> <span class="glyph" title="">&#195;&#183;</span> </td> </tr><tr id="entity-divide"><td> <code title="">divide;</code> </td> <td> U+000F7 </td> <td> <span class="glyph" title="">&#195;&#183;</span> </td> </tr><tr class="impl" id="entity-divide-legacy"><td> <code title="">divide</code> </td> <td> U+000F7 </td> <td> <span title="">&#195;&#183;</span> </td> </tr><tr id="entity-divideontimes"><td> <code title="">divideontimes;</code> </td> <td> U+022C7 </td> <td> <span class="glyph" title="">&#226;&#139;&#135;</span> </td> </tr><tr id="entity-divonx"><td> <code title="">divonx;</code> </td> <td> U+022C7 </td> <td> <span class="glyph" title="">&#226;&#139;&#135;</span> </td> </tr><tr id="entity-DJcy"><td> <code title="">DJcy;</code> </td> <td> U+00402 </td> <td> <span class="glyph" title="">&#208;&#130;</span> </td> </tr><tr id="entity-djcy"><td> <code title="">djcy;</code> </td> <td> U+00452 </td> <td> <span class="glyph" title="">&#209;&#146;</span> </td> </tr><tr id="entity-dlcorn"><td> <code title="">dlcorn;</code> </td> <td> U+0231E </td> <td> <span class="glyph" title="">&#226;&#140;&#158;</span> </td> </tr><tr id="entity-dlcrop"><td> <code title="">dlcrop;</code> </td> <td> U+0230D </td> <td> <span class="glyph" title="">&#226;&#140;&#141;</span> </td> </tr><tr id="entity-dollar"><td> <code title="">dollar;</code> </td> <td> U+00024 </td> <td> <span class="glyph" title="">$</span> </td> </tr><tr id="entity-Dopf"><td> <code title="">Dopf;</code> </td> <td> U+1D53B </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#187;</span> </td> </tr><tr id="entity-dopf"><td> <code title="">dopf;</code> </td> <td> U+1D555 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#149;</span> </td> </tr><tr id="entity-Dot"><td> <code title="">Dot;</code> </td> <td> U+000A8 </td> <td> <span class="glyph" title="">&#194;&#168;</span> </td> </tr><tr id="entity-dot"><td> <code title="">dot;</code> </td> <td> U+002D9 </td> <td> <span class="glyph" title="">&#203;&#153;</span> </td> </tr><tr id="entity-DotDot"><td> <code title="">DotDot;</code> </td> <td> U+020DC </td> <td> <span class="glyph composition" title="">&#226;&#151;&#140;&#226;&#131;&#156;</span> </td> </tr><tr id="entity-doteq"><td> <code title="">doteq;</code> </td> <td> U+02250 </td> <td> <span class="glyph" title="">&#226;&#137;&#144;</span> </td> </tr><tr id="entity-doteqdot"><td> <code title="">doteqdot;</code> </td> <td> U+02251 </td> <td> <span class="glyph" title="">&#226;&#137;&#145;</span> </td> </tr><tr id="entity-DotEqual"><td> <code title="">DotEqual;</code> </td> <td> U+02250 </td> <td> <span class="glyph" title="">&#226;&#137;&#144;</span> </td> </tr><tr id="entity-dotminus"><td> <code title="">dotminus;</code> </td> <td> U+02238 </td> <td> <span class="glyph" title="">&#226;&#136;&#184;</span> </td> </tr><tr id="entity-dotplus"><td> <code title="">dotplus;</code> </td> <td> U+02214 </td> <td> <span class="glyph" title="">&#226;&#136;&#148;</span> </td> </tr><tr id="entity-dotsquare"><td> <code title="">dotsquare;</code> </td> <td> U+022A1 </td> <td> <span class="glyph" title="">&#226;&#138;&#161;</span> </td> </tr><tr id="entity-doublebarwedge"><td> <code title="">doublebarwedge;</code> </td> <td> U+02306 </td> <td> <span class="glyph" title="">&#226;&#140;&#134;</span> </td> </tr><tr id="entity-DoubleContourIntegral"><td> <code title="">DoubleContourIntegral;</code> </td> <td> U+0222F </td> <td> <span class="glyph" title="">&#226;&#136;&#175;</span> </td> </tr><tr id="entity-DoubleDot"><td> <code title="">DoubleDot;</code> </td> <td> U+000A8 </td> <td> <span class="glyph" title="">&#194;&#168;</span> </td> </tr><tr id="entity-DoubleDownArrow"><td> <code title="">DoubleDownArrow;</code> </td> <td> U+021D3 </td> <td> <span class="glyph" title="">&#226;&#135;&#147;</span> </td> </tr><tr id="entity-DoubleLeftArrow"><td> <code title="">DoubleLeftArrow;</code> </td> <td> U+021D0 </td> <td> <span class="glyph" title="">&#226;&#135;&#144;</span> </td> </tr><tr id="entity-DoubleLeftRightArrow"><td> <code title="">DoubleLeftRightArrow;</code> </td> <td> U+021D4 </td> <td> <span class="glyph" title="">&#226;&#135;&#148;</span> </td> </tr><tr id="entity-DoubleLeftTee"><td> <code title="">DoubleLeftTee;</code> </td> <td> U+02AE4 </td> <td> <span class="glyph" title="">&#226;&#171;&#164;</span> </td> </tr><tr id="entity-DoubleLongLeftArrow"><td> <code title="">DoubleLongLeftArrow;</code> </td> <td> U+027F8 </td> <td> <span class="glyph" title="">&#226;&#159;&#184;</span> </td> </tr><tr id="entity-DoubleLongLeftRightArrow"><td> <code title="">DoubleLongLeftRightArrow;</code> </td> <td> U+027FA </td> <td> <span class="glyph" title="">&#226;&#159;&#186;</span> </td> </tr><tr id="entity-DoubleLongRightArrow"><td> <code title="">DoubleLongRightArrow;</code> </td> <td> U+027F9 </td> <td> <span class="glyph" title="">&#226;&#159;&#185;</span> </td> </tr><tr id="entity-DoubleRightArrow"><td> <code title="">DoubleRightArrow;</code> </td> <td> U+021D2 </td> <td> <span class="glyph" title="">&#226;&#135;&#146;</span> </td> </tr><tr id="entity-DoubleRightTee"><td> <code title="">DoubleRightTee;</code> </td> <td> U+022A8 </td> <td> <span class="glyph" title="">&#226;&#138;&#168;</span> </td> </tr><tr id="entity-DoubleUpArrow"><td> <code title="">DoubleUpArrow;</code> </td> <td> U+021D1 </td> <td> <span class="glyph" title="">&#226;&#135;&#145;</span> </td> </tr><tr id="entity-DoubleUpDownArrow"><td> <code title="">DoubleUpDownArrow;</code> </td> <td> U+021D5 </td> <td> <span class="glyph" title="">&#226;&#135;&#149;</span> </td> </tr><tr id="entity-DoubleVerticalBar"><td> <code title="">DoubleVerticalBar;</code> </td> <td> U+02225 </td> <td> <span class="glyph" title="">&#226;&#136;&#165;</span> </td> </tr><tr id="entity-DownArrow"><td> <code title="">DownArrow;</code> </td> <td> U+02193 </td> <td> <span class="glyph" title="">&#226;&#134;&#147;</span> </td> </tr><tr id="entity-Downarrow"><td> <code title="">Downarrow;</code> </td> <td> U+021D3 </td> <td> <span class="glyph" title="">&#226;&#135;&#147;</span> </td> </tr><tr id="entity-downarrow"><td> <code title="">downarrow;</code> </td> <td> U+02193 </td> <td> <span class="glyph" title="">&#226;&#134;&#147;</span> </td> </tr><tr id="entity-DownArrowBar"><td> <code title="">DownArrowBar;</code> </td> <td> U+02913 </td> <td> <span class="glyph" title="">&#226;&#164;&#147;</span> </td> </tr><tr id="entity-DownArrowUpArrow"><td> <code title="">DownArrowUpArrow;</code> </td> <td> U+021F5 </td> <td> <span class="glyph" title="">&#226;&#135;&#181;</span> </td> </tr><tr id="entity-DownBreve"><td> <code title="">DownBreve;</code> </td> <td> U+00311 </td> <td> <span class="glyph composition" title="">&#226;&#151;&#140;&#204;&#145;</span> </td> </tr><tr id="entity-downdownarrows"><td> <code title="">downdownarrows;</code> </td> <td> U+021CA </td> <td> <span class="glyph" title="">&#226;&#135;&#138;</span> </td> </tr><tr id="entity-downharpoonleft"><td> <code title="">downharpoonleft;</code> </td> <td> U+021C3 </td> <td> <span class="glyph" title="">&#226;&#135;&#131;</span> </td> </tr><tr id="entity-downharpoonright"><td> <code title="">downharpoonright;</code> </td> <td> U+021C2 </td> <td> <span class="glyph" title="">&#226;&#135;&#130;</span> </td> </tr><tr id="entity-DownLeftRightVector"><td> <code title="">DownLeftRightVector;</code> </td> <td> U+02950 </td> <td> <span class="glyph" title="">&#226;&#165;&#144;</span> </td> </tr><tr id="entity-DownLeftTeeVector"><td> <code title="">DownLeftTeeVector;</code> </td> <td> U+0295E </td> <td> <span class="glyph" title="">&#226;&#165;&#158;</span> </td> </tr><tr id="entity-DownLeftVector"><td> <code title="">DownLeftVector;</code> </td> <td> U+021BD </td> <td> <span class="glyph" title="">&#226;&#134;&#189;</span> </td> </tr><tr id="entity-DownLeftVectorBar"><td> <code title="">DownLeftVectorBar;</code> </td> <td> U+02956 </td> <td> <span class="glyph" title="">&#226;&#165;&#150;</span> </td> </tr><tr id="entity-DownRightTeeVector"><td> <code title="">DownRightTeeVector;</code> </td> <td> U+0295F </td> <td> <span class="glyph" title="">&#226;&#165;&#159;</span> </td> </tr><tr id="entity-DownRightVector"><td> <code title="">DownRightVector;</code> </td> <td> U+021C1 </td> <td> <span class="glyph" title="">&#226;&#135;&#129;</span> </td> </tr><tr id="entity-DownRightVectorBar"><td> <code title="">DownRightVectorBar;</code> </td> <td> U+02957 </td> <td> <span class="glyph" title="">&#226;&#165;&#151;</span> </td> </tr><tr id="entity-DownTee"><td> <code title="">DownTee;</code> </td> <td> U+022A4 </td> <td> <span class="glyph" title="">&#226;&#138;&#164;</span> </td> </tr><tr id="entity-DownTeeArrow"><td> <code title="">DownTeeArrow;</code> </td> <td> U+021A7 </td> <td> <span class="glyph" title="">&#226;&#134;&#167;</span> </td> </tr><tr id="entity-drbkarow"><td> <code title="">drbkarow;</code> </td> <td> U+02910 </td> <td> <span class="glyph" title="">&#226;&#164;&#144;</span> </td> </tr><tr id="entity-drcorn"><td> <code title="">drcorn;</code> </td> <td> U+0231F </td> <td> <span class="glyph" title="">&#226;&#140;&#159;</span> </td> </tr><tr id="entity-drcrop"><td> <code title="">drcrop;</code> </td> <td> U+0230C </td> <td> <span class="glyph" title="">&#226;&#140;&#140;</span> </td> </tr><tr id="entity-Dscr"><td> <code title="">Dscr;</code> </td> <td> U+1D49F </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#159;</span> </td> </tr><tr id="entity-dscr"><td> <code title="">dscr;</code> </td> <td> U+1D4B9 </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#185;</span> </td> </tr><tr id="entity-DScy"><td> <code title="">DScy;</code> </td> <td> U+00405 </td> <td> <span class="glyph" title="">&#208;&#133;</span> </td> </tr><tr id="entity-dscy"><td> <code title="">dscy;</code> </td> <td> U+00455 </td> <td> <span class="glyph" title="">&#209;&#149;</span> </td> </tr><tr id="entity-dsol"><td> <code title="">dsol;</code> </td> <td> U+029F6 </td> <td> <span class="glyph" title="">&#226;&#167;&#182;</span> </td> </tr><tr id="entity-Dstrok"><td> <code title="">Dstrok;</code> </td> <td> U+00110 </td> <td> <span class="glyph" title="">&#196;&#144;</span> </td> </tr><tr id="entity-dstrok"><td> <code title="">dstrok;</code> </td> <td> U+00111 </td> <td> <span class="glyph" title="">&#196;&#145;</span> </td> </tr><tr id="entity-dtdot"><td> <code title="">dtdot;</code> </td> <td> U+022F1 </td> <td> <span class="glyph" title="">&#226;&#139;&#177;</span> </td> </tr><tr id="entity-dtri"><td> <code title="">dtri;</code> </td> <td> U+025BF </td> <td> <span class="glyph" title="">&#226;&#150;&#191;</span> </td> </tr><tr id="entity-dtrif"><td> <code title="">dtrif;</code> </td> <td> U+025BE </td> <td> <span class="glyph" title="">&#226;&#150;&#190;</span> </td> </tr><tr id="entity-duarr"><td> <code title="">duarr;</code> </td> <td> U+021F5 </td> <td> <span class="glyph" title="">&#226;&#135;&#181;</span> </td> </tr><tr id="entity-duhar"><td> <code title="">duhar;</code> </td> <td> U+0296F </td> <td> <span class="glyph" title="">&#226;&#165;&#175;</span> </td> </tr><tr id="entity-dwangle"><td> <code title="">dwangle;</code> </td> <td> U+029A6 </td> <td> <span class="glyph" title="">&#226;&#166;&#166;</span> </td> </tr><tr id="entity-DZcy"><td> <code title="">DZcy;</code> </td> <td> U+0040F </td> <td> <span class="glyph" title="">&#208;&#143;</span> </td> </tr><tr id="entity-dzcy"><td> <code title="">dzcy;</code> </td> <td> U+0045F </td> <td> <span class="glyph" title="">&#209;&#159;</span> </td> </tr><tr id="entity-dzigrarr"><td> <code title="">dzigrarr;</code> </td> <td> U+027FF </td> <td> <span class="glyph" title="">&#226;&#159;&#191;</span> </td> </tr><tr id="entity-Eacute"><td> <code title="">Eacute;</code> </td> <td> U+000C9 </td> <td> <span class="glyph" title="">&#195;&#137;</span> </td> </tr><tr class="impl" id="entity-Eacute-legacy"><td> <code title="">Eacute</code> </td> <td> U+000C9 </td> <td> <span title="">&#195;&#137;</span> </td> </tr><tr id="entity-eacute"><td> <code title="">eacute;</code> </td> <td> U+000E9 </td> <td> <span class="glyph" title="">&#195;&#169;</span> </td> </tr><tr class="impl" id="entity-eacute-legacy"><td> <code title="">eacute</code> </td> <td> U+000E9 </td> <td> <span title="">&#195;&#169;</span> </td> </tr><tr id="entity-easter"><td> <code title="">easter;</code> </td> <td> U+02A6E </td> <td> <span class="glyph" title="">&#226;&#169;&#174;</span> </td> </tr><tr id="entity-Ecaron"><td> <code title="">Ecaron;</code> </td> <td> U+0011A </td> <td> <span class="glyph" title="">&#196;&#154;</span> </td> </tr><tr id="entity-ecaron"><td> <code title="">ecaron;</code> </td> <td> U+0011B </td> <td> <span class="glyph" title="">&#196;&#155;</span> </td> </tr><tr id="entity-ecir"><td> <code title="">ecir;</code> </td> <td> U+02256 </td> <td> <span class="glyph" title="">&#226;&#137;&#150;</span> </td> </tr><tr id="entity-Ecirc"><td> <code title="">Ecirc;</code> </td> <td> U+000CA </td> <td> <span class="glyph" title="">&#195;&#138;</span> </td> </tr><tr class="impl" id="entity-Ecirc-legacy"><td> <code title="">Ecirc</code> </td> <td> U+000CA </td> <td> <span title="">&#195;&#138;</span> </td> </tr><tr id="entity-ecirc"><td> <code title="">ecirc;</code> </td> <td> U+000EA </td> <td> <span class="glyph" title="">&#195;&#170;</span> </td> </tr><tr class="impl" id="entity-ecirc-legacy"><td> <code title="">ecirc</code> </td> <td> U+000EA </td> <td> <span title="">&#195;&#170;</span> </td> </tr><tr id="entity-ecolon"><td> <code title="">ecolon;</code> </td> <td> U+02255 </td> <td> <span class="glyph" title="">&#226;&#137;&#149;</span> </td> </tr><tr id="entity-Ecy"><td> <code title="">Ecy;</code> </td> <td> U+0042D </td> <td> <span class="glyph" title="">&#208;&#173;</span> </td> </tr><tr id="entity-ecy"><td> <code title="">ecy;</code> </td> <td> U+0044D </td> <td> <span class="glyph" title="">&#209;&#141;</span> </td> </tr><tr id="entity-eDDot"><td> <code title="">eDDot;</code> </td> <td> U+02A77 </td> <td> <span class="glyph" title="">&#226;&#169;&#183;</span> </td> </tr><tr id="entity-Edot"><td> <code title="">Edot;</code> </td> <td> U+00116 </td> <td> <span class="glyph" title="">&#196;&#150;</span> </td> </tr><tr id="entity-eDot"><td> <code title="">eDot;</code> </td> <td> U+02251 </td> <td> <span class="glyph" title="">&#226;&#137;&#145;</span> </td> </tr><tr id="entity-edot"><td> <code title="">edot;</code> </td> <td> U+00117 </td> <td> <span class="glyph" title="">&#196;&#151;</span> </td> </tr><tr id="entity-ee"><td> <code title="">ee;</code> </td> <td> U+02147 </td> <td> <span class="glyph" title="">&#226;&#133;&#135;</span> </td> </tr><tr id="entity-efDot"><td> <code title="">efDot;</code> </td> <td> U+02252 </td> <td> <span class="glyph" title="">&#226;&#137;&#146;</span> </td> </tr><tr id="entity-Efr"><td> <code title="">Efr;</code> </td> <td> U+1D508 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#136;</span> </td> </tr><tr id="entity-efr"><td> <code title="">efr;</code> </td> <td> U+1D522 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#162;</span> </td> </tr><tr id="entity-eg"><td> <code title="">eg;</code> </td> <td> U+02A9A </td> <td> <span class="glyph" title="">&#226;&#170;&#154;</span> </td> </tr><tr id="entity-Egrave"><td> <code title="">Egrave;</code> </td> <td> U+000C8 </td> <td> <span class="glyph" title="">&#195;&#136;</span> </td> </tr><tr class="impl" id="entity-Egrave-legacy"><td> <code title="">Egrave</code> </td> <td> U+000C8 </td> <td> <span title="">&#195;&#136;</span> </td> </tr><tr id="entity-egrave"><td> <code title="">egrave;</code> </td> <td> U+000E8 </td> <td> <span class="glyph" title="">&#195;&#168;</span> </td> </tr><tr class="impl" id="entity-egrave-legacy"><td> <code title="">egrave</code> </td> <td> U+000E8 </td> <td> <span title="">&#195;&#168;</span> </td> </tr><tr id="entity-egs"><td> <code title="">egs;</code> </td> <td> U+02A96 </td> <td> <span class="glyph" title="">&#226;&#170;&#150;</span> </td> </tr><tr id="entity-egsdot"><td> <code title="">egsdot;</code> </td> <td> U+02A98 </td> <td> <span class="glyph" title="">&#226;&#170;&#152;</span> </td> </tr><tr id="entity-el"><td> <code title="">el;</code> </td> <td> U+02A99 </td> <td> <span class="glyph" title="">&#226;&#170;&#153;</span> </td> </tr><tr id="entity-Element"><td> <code title="">Element;</code> </td> <td> U+02208 </td> <td> <span class="glyph" title="">&#226;&#136;&#136;</span> </td> </tr><tr id="entity-elinters"><td> <code title="">elinters;</code> </td> <td> U+023E7 </td> <td> <span class="glyph" title="">&#226;&#143;&#167;</span> </td> </tr><tr id="entity-ell"><td> <code title="">ell;</code> </td> <td> U+02113 </td> <td> <span class="glyph" title="">&#226;&#132;&#147;</span> </td> </tr><tr id="entity-els"><td> <code title="">els;</code> </td> <td> U+02A95 </td> <td> <span class="glyph" title="">&#226;&#170;&#149;</span> </td> </tr><tr id="entity-elsdot"><td> <code title="">elsdot;</code> </td> <td> U+02A97 </td> <td> <span class="glyph" title="">&#226;&#170;&#151;</span> </td> </tr><tr id="entity-Emacr"><td> <code title="">Emacr;</code> </td> <td> U+00112 </td> <td> <span class="glyph" title="">&#196;&#146;</span> </td> </tr><tr id="entity-emacr"><td> <code title="">emacr;</code> </td> <td> U+00113 </td> <td> <span class="glyph" title="">&#196;&#147;</span> </td> </tr><tr id="entity-empty"><td> <code title="">empty;</code> </td> <td> U+02205 </td> <td> <span class="glyph" title="">&#226;&#136;&#133;</span> </td> </tr><tr id="entity-emptyset"><td> <code title="">emptyset;</code> </td> <td> U+02205 </td> <td> <span class="glyph" title="">&#226;&#136;&#133;</span> </td> </tr><tr id="entity-EmptySmallSquare"><td> <code title="">EmptySmallSquare;</code> </td> <td> U+025FB </td> <td> <span class="glyph" title="">&#226;&#151;&#187;</span> </td> </tr><tr id="entity-emptyv"><td> <code title="">emptyv;</code> </td> <td> U+02205 </td> <td> <span class="glyph" title="">&#226;&#136;&#133;</span> </td> </tr><tr id="entity-EmptyVerySmallSquare"><td> <code title="">EmptyVerySmallSquare;</code> </td> <td> U+025AB </td> <td> <span class="glyph" title="">&#226;&#150;&#171;</span> </td> </tr><tr id="entity-emsp"><td> <code title="">emsp;</code> </td> <td> U+02003 </td> <td> <span class="glyph" title="">&#226;&#128;&#131;</span> </td> </tr><tr id="entity-emsp13"><td> <code title="">emsp13;</code> </td> <td> U+02004 </td> <td> <span class="glyph" title="">&#226;&#128;&#132;</span> </td> </tr><tr id="entity-emsp14"><td> <code title="">emsp14;</code> </td> <td> U+02005 </td> <td> <span class="glyph" title="">&#226;&#128;&#133;</span> </td> </tr><tr id="entity-ENG"><td> <code title="">ENG;</code> </td> <td> U+0014A </td> <td> <span class="glyph" title="">&#197;&#138;</span> </td> </tr><tr id="entity-eng"><td> <code title="">eng;</code> </td> <td> U+0014B </td> <td> <span class="glyph" title="">&#197;&#139;</span> </td> </tr><tr id="entity-ensp"><td> <code title="">ensp;</code> </td> <td> U+02002 </td> <td> <span class="glyph" title="">&#226;&#128;&#130;</span> </td> </tr><tr id="entity-Eogon"><td> <code title="">Eogon;</code> </td> <td> U+00118 </td> <td> <span class="glyph" title="">&#196;&#152;</span> </td> </tr><tr id="entity-eogon"><td> <code title="">eogon;</code> </td> <td> U+00119 </td> <td> <span class="glyph" title="">&#196;&#153;</span> </td> </tr><tr id="entity-Eopf"><td> <code title="">Eopf;</code> </td> <td> U+1D53C </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#188;</span> </td> </tr><tr id="entity-eopf"><td> <code title="">eopf;</code> </td> <td> U+1D556 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#150;</span> </td> </tr><tr id="entity-epar"><td> <code title="">epar;</code> </td> <td> U+022D5 </td> <td> <span class="glyph" title="">&#226;&#139;&#149;</span> </td> </tr><tr id="entity-eparsl"><td> <code title="">eparsl;</code> </td> <td> U+029E3 </td> <td> <span class="glyph" title="">&#226;&#167;&#163;</span> </td> </tr><tr id="entity-eplus"><td> <code title="">eplus;</code> </td> <td> U+02A71 </td> <td> <span class="glyph" title="">&#226;&#169;&#177;</span> </td> </tr><tr id="entity-epsi"><td> <code title="">epsi;</code> </td> <td> U+003B5 </td> <td> <span class="glyph" title="">&#206;&#181;</span> </td> </tr><tr id="entity-Epsilon"><td> <code title="">Epsilon;</code> </td> <td> U+00395 </td> <td> <span class="glyph" title="">&#206;&#149;</span> </td> </tr><tr id="entity-epsilon"><td> <code title="">epsilon;</code> </td> <td> U+003B5 </td> <td> <span class="glyph" title="">&#206;&#181;</span> </td> </tr><tr id="entity-epsiv"><td> <code title="">epsiv;</code> </td> <td> U+003F5 </td> <td> <span class="glyph" title="">&#207;&#181;</span> </td> </tr><tr id="entity-eqcirc"><td> <code title="">eqcirc;</code> </td> <td> U+02256 </td> <td> <span class="glyph" title="">&#226;&#137;&#150;</span> </td> </tr><tr id="entity-eqcolon"><td> <code title="">eqcolon;</code> </td> <td> U+02255 </td> <td> <span class="glyph" title="">&#226;&#137;&#149;</span> </td> </tr><tr id="entity-eqsim"><td> <code title="">eqsim;</code> </td> <td> U+02242 </td> <td> <span class="glyph" title="">&#226;&#137;&#130;</span> </td> </tr><tr id="entity-eqslantgtr"><td> <code title="">eqslantgtr;</code> </td> <td> U+02A96 </td> <td> <span class="glyph" title="">&#226;&#170;&#150;</span> </td> </tr><tr id="entity-eqslantless"><td> <code title="">eqslantless;</code> </td> <td> U+02A95 </td> <td> <span class="glyph" title="">&#226;&#170;&#149;</span> </td> </tr><tr id="entity-Equal"><td> <code title="">Equal;</code> </td> <td> U+02A75 </td> <td> <span class="glyph" title="">&#226;&#169;&#181;</span> </td> </tr><tr id="entity-equals"><td> <code title="">equals;</code> </td> <td> U+0003D </td> <td> <span class="glyph" title="">=</span> </td> </tr><tr id="entity-EqualTilde"><td> <code title="">EqualTilde;</code> </td> <td> U+02242 </td> <td> <span class="glyph" title="">&#226;&#137;&#130;</span> </td> </tr><tr id="entity-equest"><td> <code title="">equest;</code> </td> <td> U+0225F </td> <td> <span class="glyph" title="">&#226;&#137;&#159;</span> </td> </tr><tr id="entity-Equilibrium"><td> <code title="">Equilibrium;</code> </td> <td> U+021CC </td> <td> <span class="glyph" title="">&#226;&#135;&#140;</span> </td> </tr><tr id="entity-equiv"><td> <code title="">equiv;</code> </td> <td> U+02261 </td> <td> <span class="glyph" title="">&#226;&#137;&#161;</span> </td> </tr><tr id="entity-equivDD"><td> <code title="">equivDD;</code> </td> <td> U+02A78 </td> <td> <span class="glyph" title="">&#226;&#169;&#184;</span> </td> </tr><tr id="entity-eqvparsl"><td> <code title="">eqvparsl;</code> </td> <td> U+029E5 </td> <td> <span class="glyph" title="">&#226;&#167;&#165;</span> </td> </tr><tr id="entity-erarr"><td> <code title="">erarr;</code> </td> <td> U+02971 </td> <td> <span class="glyph" title="">&#226;&#165;&#177;</span> </td> </tr><tr id="entity-erDot"><td> <code title="">erDot;</code> </td> <td> U+02253 </td> <td> <span class="glyph" title="">&#226;&#137;&#147;</span> </td> </tr><tr id="entity-Escr"><td> <code title="">Escr;</code> </td> <td> U+02130 </td> <td> <span class="glyph" title="">&#226;&#132;&#176;</span> </td> </tr><tr id="entity-escr"><td> <code title="">escr;</code> </td> <td> U+0212F </td> <td> <span class="glyph" title="">&#226;&#132;&#175;</span> </td> </tr><tr id="entity-esdot"><td> <code title="">esdot;</code> </td> <td> U+02250 </td> <td> <span class="glyph" title="">&#226;&#137;&#144;</span> </td> </tr><tr id="entity-Esim"><td> <code title="">Esim;</code> </td> <td> U+02A73 </td> <td> <span class="glyph" title="">&#226;&#169;&#179;</span> </td> </tr><tr id="entity-esim"><td> <code title="">esim;</code> </td> <td> U+02242 </td> <td> <span class="glyph" title="">&#226;&#137;&#130;</span> </td> </tr><tr id="entity-Eta"><td> <code title="">Eta;</code> </td> <td> U+00397 </td> <td> <span class="glyph" title="">&#206;&#151;</span> </td> </tr><tr id="entity-eta"><td> <code title="">eta;</code> </td> <td> U+003B7 </td> <td> <span class="glyph" title="">&#206;&#183;</span> </td> </tr><tr id="entity-ETH"><td> <code title="">ETH;</code> </td> <td> U+000D0 </td> <td> <span class="glyph" title="">&#195;&#144;</span> </td> </tr><tr class="impl" id="entity-ETH-legacy"><td> <code title="">ETH</code> </td> <td> U+000D0 </td> <td> <span title="">&#195;&#144;</span> </td> </tr><tr id="entity-eth"><td> <code title="">eth;</code> </td> <td> U+000F0 </td> <td> <span class="glyph" title="">&#195;&#176;</span> </td> </tr><tr class="impl" id="entity-eth-legacy"><td> <code title="">eth</code> </td> <td> U+000F0 </td> <td> <span title="">&#195;&#176;</span> </td> </tr><tr id="entity-Euml"><td> <code title="">Euml;</code> </td> <td> U+000CB </td> <td> <span class="glyph" title="">&#195;&#139;</span> </td> </tr><tr class="impl" id="entity-Euml-legacy"><td> <code title="">Euml</code> </td> <td> U+000CB </td> <td> <span title="">&#195;&#139;</span> </td> </tr><tr id="entity-euml"><td> <code title="">euml;</code> </td> <td> U+000EB </td> <td> <span class="glyph" title="">&#195;&#171;</span> </td> </tr><tr class="impl" id="entity-euml-legacy"><td> <code title="">euml</code> </td> <td> U+000EB </td> <td> <span title="">&#195;&#171;</span> </td> </tr><tr id="entity-euro"><td> <code title="">euro;</code> </td> <td> U+020AC </td> <td> <span class="glyph" title="">&#226;&#130;&#172;</span> </td> </tr><tr id="entity-excl"><td> <code title="">excl;</code> </td> <td> U+00021 </td> <td> <span class="glyph" title="">!</span> </td> </tr><tr id="entity-exist"><td> <code title="">exist;</code> </td> <td> U+02203 </td> <td> <span class="glyph" title="">&#226;&#136;&#131;</span> </td> </tr><tr id="entity-Exists"><td> <code title="">Exists;</code> </td> <td> U+02203 </td> <td> <span class="glyph" title="">&#226;&#136;&#131;</span> </td> </tr><tr id="entity-expectation"><td> <code title="">expectation;</code> </td> <td> U+02130 </td> <td> <span class="glyph" title="">&#226;&#132;&#176;</span> </td> </tr><tr id="entity-ExponentialE"><td> <code title="">ExponentialE;</code> </td> <td> U+02147 </td> <td> <span class="glyph" title="">&#226;&#133;&#135;</span> </td> </tr><tr id="entity-exponentiale"><td> <code title="">exponentiale;</code> </td> <td> U+02147 </td> <td> <span class="glyph" title="">&#226;&#133;&#135;</span> </td> </tr><tr id="entity-fallingdotseq"><td> <code title="">fallingdotseq;</code> </td> <td> U+02252 </td> <td> <span class="glyph" title="">&#226;&#137;&#146;</span> </td> </tr><tr id="entity-Fcy"><td> <code title="">Fcy;</code> </td> <td> U+00424 </td> <td> <span class="glyph" title="">&#208;&#164;</span> </td> </tr><tr id="entity-fcy"><td> <code title="">fcy;</code> </td> <td> U+00444 </td> <td> <span class="glyph" title="">&#209;&#132;</span> </td> </tr><tr id="entity-female"><td> <code title="">female;</code> </td> <td> U+02640 </td> <td> <span class="glyph" title="">&#226;&#153;&#128;</span> </td> </tr><tr id="entity-ffilig"><td> <code title="">ffilig;</code> </td> <td> U+0FB03 </td> <td> <span class="glyph" title="">&#239;&#172;&#131;</span> </td> </tr><tr id="entity-fflig"><td> <code title="">fflig;</code> </td> <td> U+0FB00 </td> <td> <span class="glyph" title="">&#239;&#172;&#128;</span> </td> </tr><tr id="entity-ffllig"><td> <code title="">ffllig;</code> </td> <td> U+0FB04 </td> <td> <span class="glyph" title="">&#239;&#172;&#132;</span> </td> </tr><tr id="entity-Ffr"><td> <code title="">Ffr;</code> </td> <td> U+1D509 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#137;</span> </td> </tr><tr id="entity-ffr"><td> <code title="">ffr;</code> </td> <td> U+1D523 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#163;</span> </td> </tr><tr id="entity-filig"><td> <code title="">filig;</code> </td> <td> U+0FB01 </td> <td> <span class="glyph" title="">&#239;&#172;&#129;</span> </td> </tr><tr id="entity-FilledSmallSquare"><td> <code title="">FilledSmallSquare;</code> </td> <td> U+025FC </td> <td> <span class="glyph" title="">&#226;&#151;&#188;</span> </td> </tr><tr id="entity-FilledVerySmallSquare"><td> <code title="">FilledVerySmallSquare;</code> </td> <td> U+025AA </td> <td> <span class="glyph" title="">&#226;&#150;&#170;</span> </td> </tr><tr id="entity-fjlig"><td> <code title="">fjlig;</code> </td> <td> U+00066 U+0006A </td> <td> <span class="glyph compound" title="">fj</span> </td> </tr><tr id="entity-flat"><td> <code title="">flat;</code> </td> <td> U+0266D </td> <td> <span class="glyph" title="">&#226;&#153;&#173;</span> </td> </tr><tr id="entity-fllig"><td> <code title="">fllig;</code> </td> <td> U+0FB02 </td> <td> <span class="glyph" title="">&#239;&#172;&#130;</span> </td> </tr><tr id="entity-fltns"><td> <code title="">fltns;</code> </td> <td> U+025B1 </td> <td> <span class="glyph" title="">&#226;&#150;&#177;</span> </td> </tr><tr id="entity-fnof"><td> <code title="">fnof;</code> </td> <td> U+00192 </td> <td> <span class="glyph" title="">&#198;&#146;</span> </td> </tr><tr id="entity-Fopf"><td> <code title="">Fopf;</code> </td> <td> U+1D53D </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#189;</span> </td> </tr><tr id="entity-fopf"><td> <code title="">fopf;</code> </td> <td> U+1D557 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#151;</span> </td> </tr><tr id="entity-ForAll"><td> <code title="">ForAll;</code> </td> <td> U+02200 </td> <td> <span class="glyph" title="">&#226;&#136;&#128;</span> </td> </tr><tr id="entity-forall"><td> <code title="">forall;</code> </td> <td> U+02200 </td> <td> <span class="glyph" title="">&#226;&#136;&#128;</span> </td> </tr><tr id="entity-fork"><td> <code title="">fork;</code> </td> <td> U+022D4 </td> <td> <span class="glyph" title="">&#226;&#139;&#148;</span> </td> </tr><tr id="entity-forkv"><td> <code title="">forkv;</code> </td> <td> U+02AD9 </td> <td> <span class="glyph" title="">&#226;&#171;&#153;</span> </td> </tr><tr id="entity-Fouriertrf"><td> <code title="">Fouriertrf;</code> </td> <td> U+02131 </td> <td> <span class="glyph" title="">&#226;&#132;&#177;</span> </td> </tr><tr id="entity-fpartint"><td> <code title="">fpartint;</code> </td> <td> U+02A0D </td> <td> <span class="glyph" title="">&#226;&#168;&#141;</span> </td> </tr><tr id="entity-frac12"><td> <code title="">frac12;</code> </td> <td> U+000BD </td> <td> <span class="glyph" title="">&#194;&#189;</span> </td> </tr><tr class="impl" id="entity-frac12-legacy"><td> <code title="">frac12</code> </td> <td> U+000BD </td> <td> <span title="">&#194;&#189;</span> </td> </tr><tr id="entity-frac13"><td> <code title="">frac13;</code> </td> <td> U+02153 </td> <td> <span class="glyph" title="">&#226;&#133;&#147;</span> </td> </tr><tr id="entity-frac14"><td> <code title="">frac14;</code> </td> <td> U+000BC </td> <td> <span class="glyph" title="">&#194;&#188;</span> </td> </tr><tr class="impl" id="entity-frac14-legacy"><td> <code title="">frac14</code> </td> <td> U+000BC </td> <td> <span title="">&#194;&#188;</span> </td> </tr><tr id="entity-frac15"><td> <code title="">frac15;</code> </td> <td> U+02155 </td> <td> <span class="glyph" title="">&#226;&#133;&#149;</span> </td> </tr><tr id="entity-frac16"><td> <code title="">frac16;</code> </td> <td> U+02159 </td> <td> <span class="glyph" title="">&#226;&#133;&#153;</span> </td> </tr><tr id="entity-frac18"><td> <code title="">frac18;</code> </td> <td> U+0215B </td> <td> <span class="glyph" title="">&#226;&#133;&#155;</span> </td> </tr><tr id="entity-frac23"><td> <code title="">frac23;</code> </td> <td> U+02154 </td> <td> <span class="glyph" title="">&#226;&#133;&#148;</span> </td> </tr><tr id="entity-frac25"><td> <code title="">frac25;</code> </td> <td> U+02156 </td> <td> <span class="glyph" title="">&#226;&#133;&#150;</span> </td> </tr><tr id="entity-frac34"><td> <code title="">frac34;</code> </td> <td> U+000BE </td> <td> <span class="glyph" title="">&#194;&#190;</span> </td> </tr><tr class="impl" id="entity-frac34-legacy"><td> <code title="">frac34</code> </td> <td> U+000BE </td> <td> <span title="">&#194;&#190;</span> </td> </tr><tr id="entity-frac35"><td> <code title="">frac35;</code> </td> <td> U+02157 </td> <td> <span class="glyph" title="">&#226;&#133;&#151;</span> </td> </tr><tr id="entity-frac38"><td> <code title="">frac38;</code> </td> <td> U+0215C </td> <td> <span class="glyph" title="">&#226;&#133;&#156;</span> </td> </tr><tr id="entity-frac45"><td> <code title="">frac45;</code> </td> <td> U+02158 </td> <td> <span class="glyph" title="">&#226;&#133;&#152;</span> </td> </tr><tr id="entity-frac56"><td> <code title="">frac56;</code> </td> <td> U+0215A </td> <td> <span class="glyph" title="">&#226;&#133;&#154;</span> </td> </tr><tr id="entity-frac58"><td> <code title="">frac58;</code> </td> <td> U+0215D </td> <td> <span class="glyph" title="">&#226;&#133;&#157;</span> </td> </tr><tr id="entity-frac78"><td> <code title="">frac78;</code> </td> <td> U+0215E </td> <td> <span class="glyph" title="">&#226;&#133;&#158;</span> </td> </tr><tr id="entity-frasl"><td> <code title="">frasl;</code> </td> <td> U+02044 </td> <td> <span class="glyph" title="">&#226;&#129;&#132;</span> </td> </tr><tr id="entity-frown"><td> <code title="">frown;</code> </td> <td> U+02322 </td> <td> <span class="glyph" title="">&#226;&#140;&#162;</span> </td> </tr><tr id="entity-Fscr"><td> <code title="">Fscr;</code> </td> <td> U+02131 </td> <td> <span class="glyph" title="">&#226;&#132;&#177;</span> </td> </tr><tr id="entity-fscr"><td> <code title="">fscr;</code> </td> <td> U+1D4BB </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#187;</span> </td> </tr><tr id="entity-gacute"><td> <code title="">gacute;</code> </td> <td> U+001F5 </td> <td> <span class="glyph" title="">&#199;&#181;</span> </td> </tr><tr id="entity-Gamma"><td> <code title="">Gamma;</code> </td> <td> U+00393 </td> <td> <span class="glyph" title="">&#206;&#147;</span> </td> </tr><tr id="entity-gamma"><td> <code title="">gamma;</code> </td> <td> U+003B3 </td> <td> <span class="glyph" title="">&#206;&#179;</span> </td> </tr><tr id="entity-Gammad"><td> <code title="">Gammad;</code> </td> <td> U+003DC </td> <td> <span class="glyph" title="">&#207;&#156;</span> </td> </tr><tr id="entity-gammad"><td> <code title="">gammad;</code> </td> <td> U+003DD </td> <td> <span class="glyph" title="">&#207;&#157;</span> </td> </tr><tr id="entity-gap"><td> <code title="">gap;</code> </td> <td> U+02A86 </td> <td> <span class="glyph" title="">&#226;&#170;&#134;</span> </td> </tr><tr id="entity-Gbreve"><td> <code title="">Gbreve;</code> </td> <td> U+0011E </td> <td> <span class="glyph" title="">&#196;&#158;</span> </td> </tr><tr id="entity-gbreve"><td> <code title="">gbreve;</code> </td> <td> U+0011F </td> <td> <span class="glyph" title="">&#196;&#159;</span> </td> </tr><tr id="entity-Gcedil"><td> <code title="">Gcedil;</code> </td> <td> U+00122 </td> <td> <span class="glyph" title="">&#196;&#162;</span> </td> </tr><tr id="entity-Gcirc"><td> <code title="">Gcirc;</code> </td> <td> U+0011C </td> <td> <span class="glyph" title="">&#196;&#156;</span> </td> </tr><tr id="entity-gcirc"><td> <code title="">gcirc;</code> </td> <td> U+0011D </td> <td> <span class="glyph" title="">&#196;&#157;</span> </td> </tr><tr id="entity-Gcy"><td> <code title="">Gcy;</code> </td> <td> U+00413 </td> <td> <span class="glyph" title="">&#208;&#147;</span> </td> </tr><tr id="entity-gcy"><td> <code title="">gcy;</code> </td> <td> U+00433 </td> <td> <span class="glyph" title="">&#208;&#179;</span> </td> </tr><tr id="entity-Gdot"><td> <code title="">Gdot;</code> </td> <td> U+00120 </td> <td> <span class="glyph" title="">&#196;&#160;</span> </td> </tr><tr id="entity-gdot"><td> <code title="">gdot;</code> </td> <td> U+00121 </td> <td> <span class="glyph" title="">&#196;&#161;</span> </td> </tr><tr id="entity-gE"><td> <code title="">gE;</code> </td> <td> U+02267 </td> <td> <span class="glyph" title="">&#226;&#137;&#167;</span> </td> </tr><tr id="entity-ge"><td> <code title="">ge;</code> </td> <td> U+02265 </td> <td> <span class="glyph" title="">&#226;&#137;&#165;</span> </td> </tr><tr id="entity-gEl"><td> <code title="">gEl;</code> </td> <td> U+02A8C </td> <td> <span class="glyph" title="">&#226;&#170;&#140;</span> </td> </tr><tr id="entity-gel"><td> <code title="">gel;</code> </td> <td> U+022DB </td> <td> <span class="glyph" title="">&#226;&#139;&#155;</span> </td> </tr><tr id="entity-geq"><td> <code title="">geq;</code> </td> <td> U+02265 </td> <td> <span class="glyph" title="">&#226;&#137;&#165;</span> </td> </tr><tr id="entity-geqq"><td> <code title="">geqq;</code> </td> <td> U+02267 </td> <td> <span class="glyph" title="">&#226;&#137;&#167;</span> </td> </tr><tr id="entity-geqslant"><td> <code title="">geqslant;</code> </td> <td> U+02A7E </td> <td> <span class="glyph" title="">&#226;&#169;&#190;</span> </td> </tr><tr id="entity-ges"><td> <code title="">ges;</code> </td> <td> U+02A7E </td> <td> <span class="glyph" title="">&#226;&#169;&#190;</span> </td> </tr><tr id="entity-gescc"><td> <code title="">gescc;</code> </td> <td> U+02AA9 </td> <td> <span class="glyph" title="">&#226;&#170;&#169;</span> </td> </tr><tr id="entity-gesdot"><td> <code title="">gesdot;</code> </td> <td> U+02A80 </td> <td> <span class="glyph" title="">&#226;&#170;&#128;</span> </td> </tr><tr id="entity-gesdoto"><td> <code title="">gesdoto;</code> </td> <td> U+02A82 </td> <td> <span class="glyph" title="">&#226;&#170;&#130;</span> </td> </tr><tr id="entity-gesdotol"><td> <code title="">gesdotol;</code> </td> <td> U+02A84 </td> <td> <span class="glyph" title="">&#226;&#170;&#132;</span> </td> </tr><tr id="entity-gesl"><td> <code title="">gesl;</code> </td> <td> U+022DB U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#139;&#155;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-gesles"><td> <code title="">gesles;</code> </td> <td> U+02A94 </td> <td> <span class="glyph" title="">&#226;&#170;&#148;</span> </td> </tr><tr id="entity-Gfr"><td> <code title="">Gfr;</code> </td> <td> U+1D50A </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#138;</span> </td> </tr><tr id="entity-gfr"><td> <code title="">gfr;</code> </td> <td> U+1D524 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#164;</span> </td> </tr><tr id="entity-Gg"><td> <code title="">Gg;</code> </td> <td> U+022D9 </td> <td> <span class="glyph" title="">&#226;&#139;&#153;</span> </td> </tr><tr id="entity-gg"><td> <code title="">gg;</code> </td> <td> U+0226B </td> <td> <span class="glyph" title="">&#226;&#137;&#171;</span> </td> </tr><tr id="entity-ggg"><td> <code title="">ggg;</code> </td> <td> U+022D9 </td> <td> <span class="glyph" title="">&#226;&#139;&#153;</span> </td> </tr><tr id="entity-gimel"><td> <code title="">gimel;</code> </td> <td> U+02137 </td> <td> <span class="glyph" title="">&#226;&#132;&#183;</span> </td> </tr><tr id="entity-GJcy"><td> <code title="">GJcy;</code> </td> <td> U+00403 </td> <td> <span class="glyph" title="">&#208;&#131;</span> </td> </tr><tr id="entity-gjcy"><td> <code title="">gjcy;</code> </td> <td> U+00453 </td> <td> <span class="glyph" title="">&#209;&#147;</span> </td> </tr><tr id="entity-gl"><td> <code title="">gl;</code> </td> <td> U+02277 </td> <td> <span class="glyph" title="">&#226;&#137;&#183;</span> </td> </tr><tr id="entity-gla"><td> <code title="">gla;</code> </td> <td> U+02AA5 </td> <td> <span class="glyph" title="">&#226;&#170;&#165;</span> </td> </tr><tr id="entity-glE"><td> <code title="">glE;</code> </td> <td> U+02A92 </td> <td> <span class="glyph" title="">&#226;&#170;&#146;</span> </td> </tr><tr id="entity-glj"><td> <code title="">glj;</code> </td> <td> U+02AA4 </td> <td> <span class="glyph" title="">&#226;&#170;&#164;</span> </td> </tr><tr id="entity-gnap"><td> <code title="">gnap;</code> </td> <td> U+02A8A </td> <td> <span class="glyph" title="">&#226;&#170;&#138;</span> </td> </tr><tr id="entity-gnapprox"><td> <code title="">gnapprox;</code> </td> <td> U+02A8A </td> <td> <span class="glyph" title="">&#226;&#170;&#138;</span> </td> </tr><tr id="entity-gnE"><td> <code title="">gnE;</code> </td> <td> U+02269 </td> <td> <span class="glyph" title="">&#226;&#137;&#169;</span> </td> </tr><tr id="entity-gne"><td> <code title="">gne;</code> </td> <td> U+02A88 </td> <td> <span class="glyph" title="">&#226;&#170;&#136;</span> </td> </tr><tr id="entity-gneq"><td> <code title="">gneq;</code> </td> <td> U+02A88 </td> <td> <span class="glyph" title="">&#226;&#170;&#136;</span> </td> </tr><tr id="entity-gneqq"><td> <code title="">gneqq;</code> </td> <td> U+02269 </td> <td> <span class="glyph" title="">&#226;&#137;&#169;</span> </td> </tr><tr id="entity-gnsim"><td> <code title="">gnsim;</code> </td> <td> U+022E7 </td> <td> <span class="glyph" title="">&#226;&#139;&#167;</span> </td> </tr><tr id="entity-Gopf"><td> <code title="">Gopf;</code> </td> <td> U+1D53E </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#190;</span> </td> </tr><tr id="entity-gopf"><td> <code title="">gopf;</code> </td> <td> U+1D558 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#152;</span> </td> </tr><tr id="entity-grave"><td> <code title="">grave;</code> </td> <td> U+00060 </td> <td> <span class="glyph" title="">`</span> </td> </tr><tr id="entity-GreaterEqual"><td> <code title="">GreaterEqual;</code> </td> <td> U+02265 </td> <td> <span class="glyph" title="">&#226;&#137;&#165;</span> </td> </tr><tr id="entity-GreaterEqualLess"><td> <code title="">GreaterEqualLess;</code> </td> <td> U+022DB </td> <td> <span class="glyph" title="">&#226;&#139;&#155;</span> </td> </tr><tr id="entity-GreaterFullEqual"><td> <code title="">GreaterFullEqual;</code> </td> <td> U+02267 </td> <td> <span class="glyph" title="">&#226;&#137;&#167;</span> </td> </tr><tr id="entity-GreaterGreater"><td> <code title="">GreaterGreater;</code> </td> <td> U+02AA2 </td> <td> <span class="glyph" title="">&#226;&#170;&#162;</span> </td> </tr><tr id="entity-GreaterLess"><td> <code title="">GreaterLess;</code> </td> <td> U+02277 </td> <td> <span class="glyph" title="">&#226;&#137;&#183;</span> </td> </tr><tr id="entity-GreaterSlantEqual"><td> <code title="">GreaterSlantEqual;</code> </td> <td> U+02A7E </td> <td> <span class="glyph" title="">&#226;&#169;&#190;</span> </td> </tr><tr id="entity-GreaterTilde"><td> <code title="">GreaterTilde;</code> </td> <td> U+02273 </td> <td> <span class="glyph" title="">&#226;&#137;&#179;</span> </td> </tr><tr id="entity-Gscr"><td> <code title="">Gscr;</code> </td> <td> U+1D4A2 </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#162;</span> </td> </tr><tr id="entity-gscr"><td> <code title="">gscr;</code> </td> <td> U+0210A </td> <td> <span class="glyph" title="">&#226;&#132;&#138;</span> </td> </tr><tr id="entity-gsim"><td> <code title="">gsim;</code> </td> <td> U+02273 </td> <td> <span class="glyph" title="">&#226;&#137;&#179;</span> </td> </tr><tr id="entity-gsime"><td> <code title="">gsime;</code> </td> <td> U+02A8E </td> <td> <span class="glyph" title="">&#226;&#170;&#142;</span> </td> </tr><tr id="entity-gsiml"><td> <code title="">gsiml;</code> </td> <td> U+02A90 </td> <td> <span class="glyph" title="">&#226;&#170;&#144;</span> </td> </tr><tr id="entity-GT"><td> <code title="">GT;</code> </td> <td> U+0003E </td> <td> <span class="glyph" title="">&gt;</span> </td> </tr><tr class="impl" id="entity-GT-legacy"><td> <code title="">GT</code> </td> <td> U+0003E </td> <td> <span title="">&gt;</span> </td> </tr><tr id="entity-Gt"><td> <code title="">Gt;</code> </td> <td> U+0226B </td> <td> <span class="glyph" title="">&#226;&#137;&#171;</span> </td> </tr><tr id="entity-gt"><td> <code title="">gt;</code> </td> <td> U+0003E </td> <td> <span class="glyph" title="">&gt;</span> </td> </tr><tr class="impl" id="entity-gt-legacy"><td> <code title="">gt</code> </td> <td> U+0003E </td> <td> <span title="">&gt;</span> </td> </tr><tr id="entity-gtcc"><td> <code title="">gtcc;</code> </td> <td> U+02AA7 </td> <td> <span class="glyph" title="">&#226;&#170;&#167;</span> </td> </tr><tr id="entity-gtcir"><td> <code title="">gtcir;</code> </td> <td> U+02A7A </td> <td> <span class="glyph" title="">&#226;&#169;&#186;</span> </td> </tr><tr id="entity-gtdot"><td> <code title="">gtdot;</code> </td> <td> U+022D7 </td> <td> <span class="glyph" title="">&#226;&#139;&#151;</span> </td> </tr><tr id="entity-gtlPar"><td> <code title="">gtlPar;</code> </td> <td> U+02995 </td> <td> <span class="glyph" title="">&#226;&#166;&#149;</span> </td> </tr><tr id="entity-gtquest"><td> <code title="">gtquest;</code> </td> <td> U+02A7C </td> <td> <span class="glyph" title="">&#226;&#169;&#188;</span> </td> </tr><tr id="entity-gtrapprox"><td> <code title="">gtrapprox;</code> </td> <td> U+02A86 </td> <td> <span class="glyph" title="">&#226;&#170;&#134;</span> </td> </tr><tr id="entity-gtrarr"><td> <code title="">gtrarr;</code> </td> <td> U+02978 </td> <td> <span class="glyph" title="">&#226;&#165;&#184;</span> </td> </tr><tr id="entity-gtrdot"><td> <code title="">gtrdot;</code> </td> <td> U+022D7 </td> <td> <span class="glyph" title="">&#226;&#139;&#151;</span> </td> </tr><tr id="entity-gtreqless"><td> <code title="">gtreqless;</code> </td> <td> U+022DB </td> <td> <span class="glyph" title="">&#226;&#139;&#155;</span> </td> </tr><tr id="entity-gtreqqless"><td> <code title="">gtreqqless;</code> </td> <td> U+02A8C </td> <td> <span class="glyph" title="">&#226;&#170;&#140;</span> </td> </tr><tr id="entity-gtrless"><td> <code title="">gtrless;</code> </td> <td> U+02277 </td> <td> <span class="glyph" title="">&#226;&#137;&#183;</span> </td> </tr><tr id="entity-gtrsim"><td> <code title="">gtrsim;</code> </td> <td> U+02273 </td> <td> <span class="glyph" title="">&#226;&#137;&#179;</span> </td> </tr><tr id="entity-gvertneqq"><td> <code title="">gvertneqq;</code> </td> <td> U+02269 U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#169;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-gvnE"><td> <code title="">gvnE;</code> </td> <td> U+02269 U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#169;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-Hacek"><td> <code title="">Hacek;</code> </td> <td> U+002C7 </td> <td> <span class="glyph" title="">&#203;&#135;</span> </td> </tr><tr id="entity-hairsp"><td> <code title="">hairsp;</code> </td> <td> U+0200A </td> <td> <span class="glyph" title="">&#226;&#128;&#138;</span> </td> </tr><tr id="entity-half"><td> <code title="">half;</code> </td> <td> U+000BD </td> <td> <span class="glyph" title="">&#194;&#189;</span> </td> </tr><tr id="entity-hamilt"><td> <code title="">hamilt;</code> </td> <td> U+0210B </td> <td> <span class="glyph" title="">&#226;&#132;&#139;</span> </td> </tr><tr id="entity-HARDcy"><td> <code title="">HARDcy;</code> </td> <td> U+0042A </td> <td> <span class="glyph" title="">&#208;&#170;</span> </td> </tr><tr id="entity-hardcy"><td> <code title="">hardcy;</code> </td> <td> U+0044A </td> <td> <span class="glyph" title="">&#209;&#138;</span> </td> </tr><tr id="entity-hArr"><td> <code title="">hArr;</code> </td> <td> U+021D4 </td> <td> <span class="glyph" title="">&#226;&#135;&#148;</span> </td> </tr><tr id="entity-harr"><td> <code title="">harr;</code> </td> <td> U+02194 </td> <td> <span class="glyph" title="">&#226;&#134;&#148;</span> </td> </tr><tr id="entity-harrcir"><td> <code title="">harrcir;</code> </td> <td> U+02948 </td> <td> <span class="glyph" title="">&#226;&#165;&#136;</span> </td> </tr><tr id="entity-harrw"><td> <code title="">harrw;</code> </td> <td> U+021AD </td> <td> <span class="glyph" title="">&#226;&#134;&#173;</span> </td> </tr><tr id="entity-Hat"><td> <code title="">Hat;</code> </td> <td> U+0005E </td> <td> <span class="glyph" title="">^</span> </td> </tr><tr id="entity-hbar"><td> <code title="">hbar;</code> </td> <td> U+0210F </td> <td> <span class="glyph" title="">&#226;&#132;&#143;</span> </td> </tr><tr id="entity-Hcirc"><td> <code title="">Hcirc;</code> </td> <td> U+00124 </td> <td> <span class="glyph" title="">&#196;&#164;</span> </td> </tr><tr id="entity-hcirc"><td> <code title="">hcirc;</code> </td> <td> U+00125 </td> <td> <span class="glyph" title="">&#196;&#165;</span> </td> </tr><tr id="entity-hearts"><td> <code title="">hearts;</code> </td> <td> U+02665 </td> <td> <span class="glyph" title="">&#226;&#153;&#165;</span> </td> </tr><tr id="entity-heartsuit"><td> <code title="">heartsuit;</code> </td> <td> U+02665 </td> <td> <span class="glyph" title="">&#226;&#153;&#165;</span> </td> </tr><tr id="entity-hellip"><td> <code title="">hellip;</code> </td> <td> U+02026 </td> <td> <span class="glyph" title="">&#226;&#128;&#166;</span> </td> </tr><tr id="entity-hercon"><td> <code title="">hercon;</code> </td> <td> U+022B9 </td> <td> <span class="glyph" title="">&#226;&#138;&#185;</span> </td> </tr><tr id="entity-Hfr"><td> <code title="">Hfr;</code> </td> <td> U+0210C </td> <td> <span class="glyph" title="">&#226;&#132;&#140;</span> </td> </tr><tr id="entity-hfr"><td> <code title="">hfr;</code> </td> <td> U+1D525 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#165;</span> </td> </tr><tr id="entity-HilbertSpace"><td> <code title="">HilbertSpace;</code> </td> <td> U+0210B </td> <td> <span class="glyph" title="">&#226;&#132;&#139;</span> </td> </tr><tr id="entity-hksearow"><td> <code title="">hksearow;</code> </td> <td> U+02925 </td> <td> <span class="glyph" title="">&#226;&#164;&#165;</span> </td> </tr><tr id="entity-hkswarow"><td> <code title="">hkswarow;</code> </td> <td> U+02926 </td> <td> <span class="glyph" title="">&#226;&#164;&#166;</span> </td> </tr><tr id="entity-hoarr"><td> <code title="">hoarr;</code> </td> <td> U+021FF </td> <td> <span class="glyph" title="">&#226;&#135;&#191;</span> </td> </tr><tr id="entity-homtht"><td> <code title="">homtht;</code> </td> <td> U+0223B </td> <td> <span class="glyph" title="">&#226;&#136;&#187;</span> </td> </tr><tr id="entity-hookleftarrow"><td> <code title="">hookleftarrow;</code> </td> <td> U+021A9 </td> <td> <span class="glyph" title="">&#226;&#134;&#169;</span> </td> </tr><tr id="entity-hookrightarrow"><td> <code title="">hookrightarrow;</code> </td> <td> U+021AA </td> <td> <span class="glyph" title="">&#226;&#134;&#170;</span> </td> </tr><tr id="entity-Hopf"><td> <code title="">Hopf;</code> </td> <td> U+0210D </td> <td> <span class="glyph" title="">&#226;&#132;&#141;</span> </td> </tr><tr id="entity-hopf"><td> <code title="">hopf;</code> </td> <td> U+1D559 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#153;</span> </td> </tr><tr id="entity-horbar"><td> <code title="">horbar;</code> </td> <td> U+02015 </td> <td> <span class="glyph" title="">&#226;&#128;&#149;</span> </td> </tr><tr id="entity-HorizontalLine"><td> <code title="">HorizontalLine;</code> </td> <td> U+02500 </td> <td> <span class="glyph" title="">&#226;&#148;&#128;</span> </td> </tr><tr id="entity-Hscr"><td> <code title="">Hscr;</code> </td> <td> U+0210B </td> <td> <span class="glyph" title="">&#226;&#132;&#139;</span> </td> </tr><tr id="entity-hscr"><td> <code title="">hscr;</code> </td> <td> U+1D4BD </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#189;</span> </td> </tr><tr id="entity-hslash"><td> <code title="">hslash;</code> </td> <td> U+0210F </td> <td> <span class="glyph" title="">&#226;&#132;&#143;</span> </td> </tr><tr id="entity-Hstrok"><td> <code title="">Hstrok;</code> </td> <td> U+00126 </td> <td> <span class="glyph" title="">&#196;&#166;</span> </td> </tr><tr id="entity-hstrok"><td> <code title="">hstrok;</code> </td> <td> U+00127 </td> <td> <span class="glyph" title="">&#196;&#167;</span> </td> </tr><tr id="entity-HumpDownHump"><td> <code title="">HumpDownHump;</code> </td> <td> U+0224E </td> <td> <span class="glyph" title="">&#226;&#137;&#142;</span> </td> </tr><tr id="entity-HumpEqual"><td> <code title="">HumpEqual;</code> </td> <td> U+0224F </td> <td> <span class="glyph" title="">&#226;&#137;&#143;</span> </td> </tr><tr id="entity-hybull"><td> <code title="">hybull;</code> </td> <td> U+02043 </td> <td> <span class="glyph" title="">&#226;&#129;&#131;</span> </td> </tr><tr id="entity-hyphen"><td> <code title="">hyphen;</code> </td> <td> U+02010 </td> <td> <span class="glyph" title="">&#226;&#128;&#144;</span> </td> </tr><tr id="entity-Iacute"><td> <code title="">Iacute;</code> </td> <td> U+000CD </td> <td> <span class="glyph" title="">&#195;&#141;</span> </td> </tr><tr class="impl" id="entity-Iacute-legacy"><td> <code title="">Iacute</code> </td> <td> U+000CD </td> <td> <span title="">&#195;&#141;</span> </td> </tr><tr id="entity-iacute"><td> <code title="">iacute;</code> </td> <td> U+000ED </td> <td> <span class="glyph" title="">&#195;&#173;</span> </td> </tr><tr class="impl" id="entity-iacute-legacy"><td> <code title="">iacute</code> </td> <td> U+000ED </td> <td> <span title="">&#195;&#173;</span> </td> </tr><tr id="entity-ic"><td> <code title="">ic;</code> </td> <td> U+02063 </td> <td> <span class="glyph" title="">&#226;&#129;&#163;</span> </td> </tr><tr id="entity-Icirc"><td> <code title="">Icirc;</code> </td> <td> U+000CE </td> <td> <span class="glyph" title="">&#195;&#142;</span> </td> </tr><tr class="impl" id="entity-Icirc-legacy"><td> <code title="">Icirc</code> </td> <td> U+000CE </td> <td> <span title="">&#195;&#142;</span> </td> </tr><tr id="entity-icirc"><td> <code title="">icirc;</code> </td> <td> U+000EE </td> <td> <span class="glyph" title="">&#195;&#174;</span> </td> </tr><tr class="impl" id="entity-icirc-legacy"><td> <code title="">icirc</code> </td> <td> U+000EE </td> <td> <span title="">&#195;&#174;</span> </td> </tr><tr id="entity-Icy"><td> <code title="">Icy;</code> </td> <td> U+00418 </td> <td> <span class="glyph" title="">&#208;&#152;</span> </td> </tr><tr id="entity-icy"><td> <code title="">icy;</code> </td> <td> U+00438 </td> <td> <span class="glyph" title="">&#208;&#184;</span> </td> </tr><tr id="entity-Idot"><td> <code title="">Idot;</code> </td> <td> U+00130 </td> <td> <span class="glyph" title="">&#196;&#176;</span> </td> </tr><tr id="entity-IEcy"><td> <code title="">IEcy;</code> </td> <td> U+00415 </td> <td> <span class="glyph" title="">&#208;&#149;</span> </td> </tr><tr id="entity-iecy"><td> <code title="">iecy;</code> </td> <td> U+00435 </td> <td> <span class="glyph" title="">&#208;&#181;</span> </td> </tr><tr id="entity-iexcl"><td> <code title="">iexcl;</code> </td> <td> U+000A1 </td> <td> <span class="glyph" title="">&#194;&#161;</span> </td> </tr><tr class="impl" id="entity-iexcl-legacy"><td> <code title="">iexcl</code> </td> <td> U+000A1 </td> <td> <span title="">&#194;&#161;</span> </td> </tr><tr id="entity-iff"><td> <code title="">iff;</code> </td> <td> U+021D4 </td> <td> <span class="glyph" title="">&#226;&#135;&#148;</span> </td> </tr><tr id="entity-Ifr"><td> <code title="">Ifr;</code> </td> <td> U+02111 </td> <td> <span class="glyph" title="">&#226;&#132;&#145;</span> </td> </tr><tr id="entity-ifr"><td> <code title="">ifr;</code> </td> <td> U+1D526 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#166;</span> </td> </tr><tr id="entity-Igrave"><td> <code title="">Igrave;</code> </td> <td> U+000CC </td> <td> <span class="glyph" title="">&#195;&#140;</span> </td> </tr><tr class="impl" id="entity-Igrave-legacy"><td> <code title="">Igrave</code> </td> <td> U+000CC </td> <td> <span title="">&#195;&#140;</span> </td> </tr><tr id="entity-igrave"><td> <code title="">igrave;</code> </td> <td> U+000EC </td> <td> <span class="glyph" title="">&#195;&#172;</span> </td> </tr><tr class="impl" id="entity-igrave-legacy"><td> <code title="">igrave</code> </td> <td> U+000EC </td> <td> <span title="">&#195;&#172;</span> </td> </tr><tr id="entity-ii"><td> <code title="">ii;</code> </td> <td> U+02148 </td> <td> <span class="glyph" title="">&#226;&#133;&#136;</span> </td> </tr><tr id="entity-iiiint"><td> <code title="">iiiint;</code> </td> <td> U+02A0C </td> <td> <span class="glyph" title="">&#226;&#168;&#140;</span> </td> </tr><tr id="entity-iiint"><td> <code title="">iiint;</code> </td> <td> U+0222D </td> <td> <span class="glyph" title="">&#226;&#136;&#173;</span> </td> </tr><tr id="entity-iinfin"><td> <code title="">iinfin;</code> </td> <td> U+029DC </td> <td> <span class="glyph" title="">&#226;&#167;&#156;</span> </td> </tr><tr id="entity-iiota"><td> <code title="">iiota;</code> </td> <td> U+02129 </td> <td> <span class="glyph" title="">&#226;&#132;&#169;</span> </td> </tr><tr id="entity-IJlig"><td> <code title="">IJlig;</code> </td> <td> U+00132 </td> <td> <span class="glyph" title="">&#196;&#178;</span> </td> </tr><tr id="entity-ijlig"><td> <code title="">ijlig;</code> </td> <td> U+00133 </td> <td> <span class="glyph" title="">&#196;&#179;</span> </td> </tr><tr id="entity-Im"><td> <code title="">Im;</code> </td> <td> U+02111 </td> <td> <span class="glyph" title="">&#226;&#132;&#145;</span> </td> </tr><tr id="entity-Imacr"><td> <code title="">Imacr;</code> </td> <td> U+0012A </td> <td> <span class="glyph" title="">&#196;&#170;</span> </td> </tr><tr id="entity-imacr"><td> <code title="">imacr;</code> </td> <td> U+0012B </td> <td> <span class="glyph" title="">&#196;&#171;</span> </td> </tr><tr id="entity-image"><td> <code title="">image;</code> </td> <td> U+02111 </td> <td> <span class="glyph" title="">&#226;&#132;&#145;</span> </td> </tr><tr id="entity-ImaginaryI"><td> <code title="">ImaginaryI;</code> </td> <td> U+02148 </td> <td> <span class="glyph" title="">&#226;&#133;&#136;</span> </td> </tr><tr id="entity-imagline"><td> <code title="">imagline;</code> </td> <td> U+02110 </td> <td> <span class="glyph" title="">&#226;&#132;&#144;</span> </td> </tr><tr id="entity-imagpart"><td> <code title="">imagpart;</code> </td> <td> U+02111 </td> <td> <span class="glyph" title="">&#226;&#132;&#145;</span> </td> </tr><tr id="entity-imath"><td> <code title="">imath;</code> </td> <td> U+00131 </td> <td> <span class="glyph" title="">&#196;&#177;</span> </td> </tr><tr id="entity-imof"><td> <code title="">imof;</code> </td> <td> U+022B7 </td> <td> <span class="glyph" title="">&#226;&#138;&#183;</span> </td> </tr><tr id="entity-imped"><td> <code title="">imped;</code> </td> <td> U+001B5 </td> <td> <span class="glyph" title="">&#198;&#181;</span> </td> </tr><tr id="entity-Implies"><td> <code title="">Implies;</code> </td> <td> U+021D2 </td> <td> <span class="glyph" title="">&#226;&#135;&#146;</span> </td> </tr><tr id="entity-in"><td> <code title="">in;</code> </td> <td> U+02208 </td> <td> <span class="glyph" title="">&#226;&#136;&#136;</span> </td> </tr><tr id="entity-incare"><td> <code title="">incare;</code> </td> <td> U+02105 </td> <td> <span class="glyph" title="">&#226;&#132;&#133;</span> </td> </tr><tr id="entity-infin"><td> <code title="">infin;</code> </td> <td> U+0221E </td> <td> <span class="glyph" title="">&#226;&#136;&#158;</span> </td> </tr><tr id="entity-infintie"><td> <code title="">infintie;</code> </td> <td> U+029DD </td> <td> <span class="glyph" title="">&#226;&#167;&#157;</span> </td> </tr><tr id="entity-inodot"><td> <code title="">inodot;</code> </td> <td> U+00131 </td> <td> <span class="glyph" title="">&#196;&#177;</span> </td> </tr><tr id="entity-Int"><td> <code title="">Int;</code> </td> <td> U+0222C </td> <td> <span class="glyph" title="">&#226;&#136;&#172;</span> </td> </tr><tr id="entity-int"><td> <code title="">int;</code> </td> <td> U+0222B </td> <td> <span class="glyph" title="">&#226;&#136;&#171;</span> </td> </tr><tr id="entity-intcal"><td> <code title="">intcal;</code> </td> <td> U+022BA </td> <td> <span class="glyph" title="">&#226;&#138;&#186;</span> </td> </tr><tr id="entity-integers"><td> <code title="">integers;</code> </td> <td> U+02124 </td> <td> <span class="glyph" title="">&#226;&#132;&#164;</span> </td> </tr><tr id="entity-Integral"><td> <code title="">Integral;</code> </td> <td> U+0222B </td> <td> <span class="glyph" title="">&#226;&#136;&#171;</span> </td> </tr><tr id="entity-intercal"><td> <code title="">intercal;</code> </td> <td> U+022BA </td> <td> <span class="glyph" title="">&#226;&#138;&#186;</span> </td> </tr><tr id="entity-Intersection"><td> <code title="">Intersection;</code> </td> <td> U+022C2 </td> <td> <span class="glyph" title="">&#226;&#139;&#130;</span> </td> </tr><tr id="entity-intlarhk"><td> <code title="">intlarhk;</code> </td> <td> U+02A17 </td> <td> <span class="glyph" title="">&#226;&#168;&#151;</span> </td> </tr><tr id="entity-intprod"><td> <code title="">intprod;</code> </td> <td> U+02A3C </td> <td> <span class="glyph" title="">&#226;&#168;&#188;</span> </td> </tr><tr id="entity-InvisibleComma"><td> <code title="">InvisibleComma;</code> </td> <td> U+02063 </td> <td> <span class="glyph" title="">&#226;&#129;&#163;</span> </td> </tr><tr id="entity-InvisibleTimes"><td> <code title="">InvisibleTimes;</code> </td> <td> U+02062 </td> <td> <span class="glyph" title="">&#226;&#129;&#162;</span> </td> </tr><tr id="entity-IOcy"><td> <code title="">IOcy;</code> </td> <td> U+00401 </td> <td> <span class="glyph" title="">&#208;&#129;</span> </td> </tr><tr id="entity-iocy"><td> <code title="">iocy;</code> </td> <td> U+00451 </td> <td> <span class="glyph" title="">&#209;&#145;</span> </td> </tr><tr id="entity-Iogon"><td> <code title="">Iogon;</code> </td> <td> U+0012E </td> <td> <span class="glyph" title="">&#196;&#174;</span> </td> </tr><tr id="entity-iogon"><td> <code title="">iogon;</code> </td> <td> U+0012F </td> <td> <span class="glyph" title="">&#196;&#175;</span> </td> </tr><tr id="entity-Iopf"><td> <code title="">Iopf;</code> </td> <td> U+1D540 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#128;</span> </td> </tr><tr id="entity-iopf"><td> <code title="">iopf;</code> </td> <td> U+1D55A </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#154;</span> </td> </tr><tr id="entity-Iota"><td> <code title="">Iota;</code> </td> <td> U+00399 </td> <td> <span class="glyph" title="">&#206;&#153;</span> </td> </tr><tr id="entity-iota"><td> <code title="">iota;</code> </td> <td> U+003B9 </td> <td> <span class="glyph" title="">&#206;&#185;</span> </td> </tr><tr id="entity-iprod"><td> <code title="">iprod;</code> </td> <td> U+02A3C </td> <td> <span class="glyph" title="">&#226;&#168;&#188;</span> </td> </tr><tr id="entity-iquest"><td> <code title="">iquest;</code> </td> <td> U+000BF </td> <td> <span class="glyph" title="">&#194;&#191;</span> </td> </tr><tr class="impl" id="entity-iquest-legacy"><td> <code title="">iquest</code> </td> <td> U+000BF </td> <td> <span title="">&#194;&#191;</span> </td> </tr><tr id="entity-Iscr"><td> <code title="">Iscr;</code> </td> <td> U+02110 </td> <td> <span class="glyph" title="">&#226;&#132;&#144;</span> </td> </tr><tr id="entity-iscr"><td> <code title="">iscr;</code> </td> <td> U+1D4BE </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#190;</span> </td> </tr><tr id="entity-isin"><td> <code title="">isin;</code> </td> <td> U+02208 </td> <td> <span class="glyph" title="">&#226;&#136;&#136;</span> </td> </tr><tr id="entity-isindot"><td> <code title="">isindot;</code> </td> <td> U+022F5 </td> <td> <span class="glyph" title="">&#226;&#139;&#181;</span> </td> </tr><tr id="entity-isinE"><td> <code title="">isinE;</code> </td> <td> U+022F9 </td> <td> <span class="glyph" title="">&#226;&#139;&#185;</span> </td> </tr><tr id="entity-isins"><td> <code title="">isins;</code> </td> <td> U+022F4 </td> <td> <span class="glyph" title="">&#226;&#139;&#180;</span> </td> </tr><tr id="entity-isinsv"><td> <code title="">isinsv;</code> </td> <td> U+022F3 </td> <td> <span class="glyph" title="">&#226;&#139;&#179;</span> </td> </tr><tr id="entity-isinv"><td> <code title="">isinv;</code> </td> <td> U+02208 </td> <td> <span class="glyph" title="">&#226;&#136;&#136;</span> </td> </tr><tr id="entity-it"><td> <code title="">it;</code> </td> <td> U+02062 </td> <td> <span class="glyph" title="">&#226;&#129;&#162;</span> </td> </tr><tr id="entity-Itilde"><td> <code title="">Itilde;</code> </td> <td> U+00128 </td> <td> <span class="glyph" title="">&#196;&#168;</span> </td> </tr><tr id="entity-itilde"><td> <code title="">itilde;</code> </td> <td> U+00129 </td> <td> <span class="glyph" title="">&#196;&#169;</span> </td> </tr><tr id="entity-Iukcy"><td> <code title="">Iukcy;</code> </td> <td> U+00406 </td> <td> <span class="glyph" title="">&#208;&#134;</span> </td> </tr><tr id="entity-iukcy"><td> <code title="">iukcy;</code> </td> <td> U+00456 </td> <td> <span class="glyph" title="">&#209;&#150;</span> </td> </tr><tr id="entity-Iuml"><td> <code title="">Iuml;</code> </td> <td> U+000CF </td> <td> <span class="glyph" title="">&#195;&#143;</span> </td> </tr><tr class="impl" id="entity-Iuml-legacy"><td> <code title="">Iuml</code> </td> <td> U+000CF </td> <td> <span title="">&#195;&#143;</span> </td> </tr><tr id="entity-iuml"><td> <code title="">iuml;</code> </td> <td> U+000EF </td> <td> <span class="glyph" title="">&#195;&#175;</span> </td> </tr><tr class="impl" id="entity-iuml-legacy"><td> <code title="">iuml</code> </td> <td> U+000EF </td> <td> <span title="">&#195;&#175;</span> </td> </tr><tr id="entity-Jcirc"><td> <code title="">Jcirc;</code> </td> <td> U+00134 </td> <td> <span class="glyph" title="">&#196;&#180;</span> </td> </tr><tr id="entity-jcirc"><td> <code title="">jcirc;</code> </td> <td> U+00135 </td> <td> <span class="glyph" title="">&#196;&#181;</span> </td> </tr><tr id="entity-Jcy"><td> <code title="">Jcy;</code> </td> <td> U+00419 </td> <td> <span class="glyph" title="">&#208;&#153;</span> </td> </tr><tr id="entity-jcy"><td> <code title="">jcy;</code> </td> <td> U+00439 </td> <td> <span class="glyph" title="">&#208;&#185;</span> </td> </tr><tr id="entity-Jfr"><td> <code title="">Jfr;</code> </td> <td> U+1D50D </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#141;</span> </td> </tr><tr id="entity-jfr"><td> <code title="">jfr;</code> </td> <td> U+1D527 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#167;</span> </td> </tr><tr id="entity-jmath"><td> <code title="">jmath;</code> </td> <td> U+00237 </td> <td> <span class="glyph" title="">&#200;&#183;</span> </td> </tr><tr id="entity-Jopf"><td> <code title="">Jopf;</code> </td> <td> U+1D541 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#129;</span> </td> </tr><tr id="entity-jopf"><td> <code title="">jopf;</code> </td> <td> U+1D55B </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#155;</span> </td> </tr><tr id="entity-Jscr"><td> <code title="">Jscr;</code> </td> <td> U+1D4A5 </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#165;</span> </td> </tr><tr id="entity-jscr"><td> <code title="">jscr;</code> </td> <td> U+1D4BF </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#191;</span> </td> </tr><tr id="entity-Jsercy"><td> <code title="">Jsercy;</code> </td> <td> U+00408 </td> <td> <span class="glyph" title="">&#208;&#136;</span> </td> </tr><tr id="entity-jsercy"><td> <code title="">jsercy;</code> </td> <td> U+00458 </td> <td> <span class="glyph" title="">&#209;&#152;</span> </td> </tr><tr id="entity-Jukcy"><td> <code title="">Jukcy;</code> </td> <td> U+00404 </td> <td> <span class="glyph" title="">&#208;&#132;</span> </td> </tr><tr id="entity-jukcy"><td> <code title="">jukcy;</code> </td> <td> U+00454 </td> <td> <span class="glyph" title="">&#209;&#148;</span> </td> </tr><tr id="entity-Kappa"><td> <code title="">Kappa;</code> </td> <td> U+0039A </td> <td> <span class="glyph" title="">&#206;&#154;</span> </td> </tr><tr id="entity-kappa"><td> <code title="">kappa;</code> </td> <td> U+003BA </td> <td> <span class="glyph" title="">&#206;&#186;</span> </td> </tr><tr id="entity-kappav"><td> <code title="">kappav;</code> </td> <td> U+003F0 </td> <td> <span class="glyph" title="">&#207;&#176;</span> </td> </tr><tr id="entity-Kcedil"><td> <code title="">Kcedil;</code> </td> <td> U+00136 </td> <td> <span class="glyph" title="">&#196;&#182;</span> </td> </tr><tr id="entity-kcedil"><td> <code title="">kcedil;</code> </td> <td> U+00137 </td> <td> <span class="glyph" title="">&#196;&#183;</span> </td> </tr><tr id="entity-Kcy"><td> <code title="">Kcy;</code> </td> <td> U+0041A </td> <td> <span class="glyph" title="">&#208;&#154;</span> </td> </tr><tr id="entity-kcy"><td> <code title="">kcy;</code> </td> <td> U+0043A </td> <td> <span class="glyph" title="">&#208;&#186;</span> </td> </tr><tr id="entity-Kfr"><td> <code title="">Kfr;</code> </td> <td> U+1D50E </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#142;</span> </td> </tr><tr id="entity-kfr"><td> <code title="">kfr;</code> </td> <td> U+1D528 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#168;</span> </td> </tr><tr id="entity-kgreen"><td> <code title="">kgreen;</code> </td> <td> U+00138 </td> <td> <span class="glyph" title="">&#196;&#184;</span> </td> </tr><tr id="entity-KHcy"><td> <code title="">KHcy;</code> </td> <td> U+00425 </td> <td> <span class="glyph" title="">&#208;&#165;</span> </td> </tr><tr id="entity-khcy"><td> <code title="">khcy;</code> </td> <td> U+00445 </td> <td> <span class="glyph" title="">&#209;&#133;</span> </td> </tr><tr id="entity-KJcy"><td> <code title="">KJcy;</code> </td> <td> U+0040C </td> <td> <span class="glyph" title="">&#208;&#140;</span> </td> </tr><tr id="entity-kjcy"><td> <code title="">kjcy;</code> </td> <td> U+0045C </td> <td> <span class="glyph" title="">&#209;&#156;</span> </td> </tr><tr id="entity-Kopf"><td> <code title="">Kopf;</code> </td> <td> U+1D542 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#130;</span> </td> </tr><tr id="entity-kopf"><td> <code title="">kopf;</code> </td> <td> U+1D55C </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#156;</span> </td> </tr><tr id="entity-Kscr"><td> <code title="">Kscr;</code> </td> <td> U+1D4A6 </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#166;</span> </td> </tr><tr id="entity-kscr"><td> <code title="">kscr;</code> </td> <td> U+1D4C0 </td> <td> <span class="glyph" title="">&#240;&#157;&#147;&#128;</span> </td> </tr><tr id="entity-lAarr"><td> <code title="">lAarr;</code> </td> <td> U+021DA </td> <td> <span class="glyph" title="">&#226;&#135;&#154;</span> </td> </tr><tr id="entity-Lacute"><td> <code title="">Lacute;</code> </td> <td> U+00139 </td> <td> <span class="glyph" title="">&#196;&#185;</span> </td> </tr><tr id="entity-lacute"><td> <code title="">lacute;</code> </td> <td> U+0013A </td> <td> <span class="glyph" title="">&#196;&#186;</span> </td> </tr><tr id="entity-laemptyv"><td> <code title="">laemptyv;</code> </td> <td> U+029B4 </td> <td> <span class="glyph" title="">&#226;&#166;&#180;</span> </td> </tr><tr id="entity-lagran"><td> <code title="">lagran;</code> </td> <td> U+02112 </td> <td> <span class="glyph" title="">&#226;&#132;&#146;</span> </td> </tr><tr id="entity-Lambda"><td> <code title="">Lambda;</code> </td> <td> U+0039B </td> <td> <span class="glyph" title="">&#206;&#155;</span> </td> </tr><tr id="entity-lambda"><td> <code title="">lambda;</code> </td> <td> U+003BB </td> <td> <span class="glyph" title="">&#206;&#187;</span> </td> </tr><tr id="entity-Lang"><td> <code title="">Lang;</code> </td> <td> U+027EA </td> <td> <span class="glyph" title="">&#226;&#159;&#170;</span> </td> </tr><tr id="entity-lang"><td> <code title="">lang;</code> </td> <td> U+027E8 </td> <td> <span class="glyph" title="">&#226;&#140;&#169;</span> </td> </tr><tr id="entity-langd"><td> <code title="">langd;</code> </td> <td> U+02991 </td> <td> <span class="glyph" title="">&#226;&#166;&#145;</span> </td> </tr><tr id="entity-langle"><td> <code title="">langle;</code> </td> <td> U+027E8 </td> <td> <span class="glyph" title="">&#226;&#140;&#169;</span> </td> </tr><tr id="entity-lap"><td> <code title="">lap;</code> </td> <td> U+02A85 </td> <td> <span class="glyph" title="">&#226;&#170;&#133;</span> </td> </tr><tr id="entity-Laplacetrf"><td> <code title="">Laplacetrf;</code> </td> <td> U+02112 </td> <td> <span class="glyph" title="">&#226;&#132;&#146;</span> </td> </tr><tr id="entity-laquo"><td> <code title="">laquo;</code> </td> <td> U+000AB </td> <td> <span class="glyph" title="">&#194;&#171;</span> </td> </tr><tr class="impl" id="entity-laquo-legacy"><td> <code title="">laquo</code> </td> <td> U+000AB </td> <td> <span title="">&#194;&#171;</span> </td> </tr><tr id="entity-Larr"><td> <code title="">Larr;</code> </td> <td> U+0219E </td> <td> <span class="glyph" title="">&#226;&#134;&#158;</span> </td> </tr><tr id="entity-lArr"><td> <code title="">lArr;</code> </td> <td> U+021D0 </td> <td> <span class="glyph" title="">&#226;&#135;&#144;</span> </td> </tr><tr id="entity-larr"><td> <code title="">larr;</code> </td> <td> U+02190 </td> <td> <span class="glyph" title="">&#226;&#134;&#144;</span> </td> </tr><tr id="entity-larrb"><td> <code title="">larrb;</code> </td> <td> U+021E4 </td> <td> <span class="glyph" title="">&#226;&#135;&#164;</span> </td> </tr><tr id="entity-larrbfs"><td> <code title="">larrbfs;</code> </td> <td> U+0291F </td> <td> <span class="glyph" title="">&#226;&#164;&#159;</span> </td> </tr><tr id="entity-larrfs"><td> <code title="">larrfs;</code> </td> <td> U+0291D </td> <td> <span class="glyph" title="">&#226;&#164;&#157;</span> </td> </tr><tr id="entity-larrhk"><td> <code title="">larrhk;</code> </td> <td> U+021A9 </td> <td> <span class="glyph" title="">&#226;&#134;&#169;</span> </td> </tr><tr id="entity-larrlp"><td> <code title="">larrlp;</code> </td> <td> U+021AB </td> <td> <span class="glyph" title="">&#226;&#134;&#171;</span> </td> </tr><tr id="entity-larrpl"><td> <code title="">larrpl;</code> </td> <td> U+02939 </td> <td> <span class="glyph" title="">&#226;&#164;&#185;</span> </td> </tr><tr id="entity-larrsim"><td> <code title="">larrsim;</code> </td> <td> U+02973 </td> <td> <span class="glyph" title="">&#226;&#165;&#179;</span> </td> </tr><tr id="entity-larrtl"><td> <code title="">larrtl;</code> </td> <td> U+021A2 </td> <td> <span class="glyph" title="">&#226;&#134;&#162;</span> </td> </tr><tr id="entity-lat"><td> <code title="">lat;</code> </td> <td> U+02AAB </td> <td> <span class="glyph" title="">&#226;&#170;&#171;</span> </td> </tr><tr id="entity-lAtail"><td> <code title="">lAtail;</code> </td> <td> U+0291B </td> <td> <span class="glyph" title="">&#226;&#164;&#155;</span> </td> </tr><tr id="entity-latail"><td> <code title="">latail;</code> </td> <td> U+02919 </td> <td> <span class="glyph" title="">&#226;&#164;&#153;</span> </td> </tr><tr id="entity-late"><td> <code title="">late;</code> </td> <td> U+02AAD </td> <td> <span class="glyph" title="">&#226;&#170;&#173;</span> </td> </tr><tr id="entity-lates"><td> <code title="">lates;</code> </td> <td> U+02AAD U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#170;&#173;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-lBarr"><td> <code title="">lBarr;</code> </td> <td> U+0290E </td> <td> <span class="glyph" title="">&#226;&#164;&#142;</span> </td> </tr><tr id="entity-lbarr"><td> <code title="">lbarr;</code> </td> <td> U+0290C </td> <td> <span class="glyph" title="">&#226;&#164;&#140;</span> </td> </tr><tr id="entity-lbbrk"><td> <code title="">lbbrk;</code> </td> <td> U+02772 </td> <td> <span class="glyph" title="">&#226;&#157;&#178;</span> </td> </tr><tr id="entity-lbrace"><td> <code title="">lbrace;</code> </td> <td> U+0007B </td> <td> <span class="glyph" title="">{</span> </td> </tr><tr id="entity-lbrack"><td> <code title="">lbrack;</code> </td> <td> U+0005B </td> <td> <span class="glyph" title="">[</span> </td> </tr><tr id="entity-lbrke"><td> <code title="">lbrke;</code> </td> <td> U+0298B </td> <td> <span class="glyph" title="">&#226;&#166;&#139;</span> </td> </tr><tr id="entity-lbrksld"><td> <code title="">lbrksld;</code> </td> <td> U+0298F </td> <td> <span class="glyph" title="">&#226;&#166;&#143;</span> </td> </tr><tr id="entity-lbrkslu"><td> <code title="">lbrkslu;</code> </td> <td> U+0298D </td> <td> <span class="glyph" title="">&#226;&#166;&#141;</span> </td> </tr><tr id="entity-Lcaron"><td> <code title="">Lcaron;</code> </td> <td> U+0013D </td> <td> <span class="glyph" title="">&#196;&#189;</span> </td> </tr><tr id="entity-lcaron"><td> <code title="">lcaron;</code> </td> <td> U+0013E </td> <td> <span class="glyph" title="">&#196;&#190;</span> </td> </tr><tr id="entity-Lcedil"><td> <code title="">Lcedil;</code> </td> <td> U+0013B </td> <td> <span class="glyph" title="">&#196;&#187;</span> </td> </tr><tr id="entity-lcedil"><td> <code title="">lcedil;</code> </td> <td> U+0013C </td> <td> <span class="glyph" title="">&#196;&#188;</span> </td> </tr><tr id="entity-lceil"><td> <code title="">lceil;</code> </td> <td> U+02308 </td> <td> <span class="glyph" title="">&#226;&#140;&#136;</span> </td> </tr><tr id="entity-lcub"><td> <code title="">lcub;</code> </td> <td> U+0007B </td> <td> <span class="glyph" title="">{</span> </td> </tr><tr id="entity-Lcy"><td> <code title="">Lcy;</code> </td> <td> U+0041B </td> <td> <span class="glyph" title="">&#208;&#155;</span> </td> </tr><tr id="entity-lcy"><td> <code title="">lcy;</code> </td> <td> U+0043B </td> <td> <span class="glyph" title="">&#208;&#187;</span> </td> </tr><tr id="entity-ldca"><td> <code title="">ldca;</code> </td> <td> U+02936 </td> <td> <span class="glyph" title="">&#226;&#164;&#182;</span> </td> </tr><tr id="entity-ldquo"><td> <code title="">ldquo;</code> </td> <td> U+0201C </td> <td> <span class="glyph" title="">&#226;&#128;&#156;</span> </td> </tr><tr id="entity-ldquor"><td> <code title="">ldquor;</code> </td> <td> U+0201E </td> <td> <span class="glyph" title="">&#226;&#128;&#158;</span> </td> </tr><tr id="entity-ldrdhar"><td> <code title="">ldrdhar;</code> </td> <td> U+02967 </td> <td> <span class="glyph" title="">&#226;&#165;&#167;</span> </td> </tr><tr id="entity-ldrushar"><td> <code title="">ldrushar;</code> </td> <td> U+0294B </td> <td> <span class="glyph" title="">&#226;&#165;&#139;</span> </td> </tr><tr id="entity-ldsh"><td> <code title="">ldsh;</code> </td> <td> U+021B2 </td> <td> <span class="glyph" title="">&#226;&#134;&#178;</span> </td> </tr><tr id="entity-lE"><td> <code title="">lE;</code> </td> <td> U+02266 </td> <td> <span class="glyph" title="">&#226;&#137;&#166;</span> </td> </tr><tr id="entity-le"><td> <code title="">le;</code> </td> <td> U+02264 </td> <td> <span class="glyph" title="">&#226;&#137;&#164;</span> </td> </tr><tr id="entity-LeftAngleBracket"><td> <code title="">LeftAngleBracket;</code> </td> <td> U+027E8 </td> <td> <span class="glyph" title="">&#226;&#140;&#169;</span> </td> </tr><tr id="entity-LeftArrow"><td> <code title="">LeftArrow;</code> </td> <td> U+02190 </td> <td> <span class="glyph" title="">&#226;&#134;&#144;</span> </td> </tr><tr id="entity-Leftarrow"><td> <code title="">Leftarrow;</code> </td> <td> U+021D0 </td> <td> <span class="glyph" title="">&#226;&#135;&#144;</span> </td> </tr><tr id="entity-leftarrow"><td> <code title="">leftarrow;</code> </td> <td> U+02190 </td> <td> <span class="glyph" title="">&#226;&#134;&#144;</span> </td> </tr><tr id="entity-LeftArrowBar"><td> <code title="">LeftArrowBar;</code> </td> <td> U+021E4 </td> <td> <span class="glyph" title="">&#226;&#135;&#164;</span> </td> </tr><tr id="entity-LeftArrowRightArrow"><td> <code title="">LeftArrowRightArrow;</code> </td> <td> U+021C6 </td> <td> <span class="glyph" title="">&#226;&#135;&#134;</span> </td> </tr><tr id="entity-leftarrowtail"><td> <code title="">leftarrowtail;</code> </td> <td> U+021A2 </td> <td> <span class="glyph" title="">&#226;&#134;&#162;</span> </td> </tr><tr id="entity-LeftCeiling"><td> <code title="">LeftCeiling;</code> </td> <td> U+02308 </td> <td> <span class="glyph" title="">&#226;&#140;&#136;</span> </td> </tr><tr id="entity-LeftDoubleBracket"><td> <code title="">LeftDoubleBracket;</code> </td> <td> U+027E6 </td> <td> <span class="glyph" title="">&#226;&#159;&#166;</span> </td> </tr><tr id="entity-LeftDownTeeVector"><td> <code title="">LeftDownTeeVector;</code> </td> <td> U+02961 </td> <td> <span class="glyph" title="">&#226;&#165;&#161;</span> </td> </tr><tr id="entity-LeftDownVector"><td> <code title="">LeftDownVector;</code> </td> <td> U+021C3 </td> <td> <span class="glyph" title="">&#226;&#135;&#131;</span> </td> </tr><tr id="entity-LeftDownVectorBar"><td> <code title="">LeftDownVectorBar;</code> </td> <td> U+02959 </td> <td> <span class="glyph" title="">&#226;&#165;&#153;</span> </td> </tr><tr id="entity-LeftFloor"><td> <code title="">LeftFloor;</code> </td> <td> U+0230A </td> <td> <span class="glyph" title="">&#226;&#140;&#138;</span> </td> </tr><tr id="entity-leftharpoondown"><td> <code title="">leftharpoondown;</code> </td> <td> U+021BD </td> <td> <span class="glyph" title="">&#226;&#134;&#189;</span> </td> </tr><tr id="entity-leftharpoonup"><td> <code title="">leftharpoonup;</code> </td> <td> U+021BC </td> <td> <span class="glyph" title="">&#226;&#134;&#188;</span> </td> </tr><tr id="entity-leftleftarrows"><td> <code title="">leftleftarrows;</code> </td> <td> U+021C7 </td> <td> <span class="glyph" title="">&#226;&#135;&#135;</span> </td> </tr><tr id="entity-LeftRightArrow"><td> <code title="">LeftRightArrow;</code> </td> <td> U+02194 </td> <td> <span class="glyph" title="">&#226;&#134;&#148;</span> </td> </tr><tr id="entity-Leftrightarrow"><td> <code title="">Leftrightarrow;</code> </td> <td> U+021D4 </td> <td> <span class="glyph" title="">&#226;&#135;&#148;</span> </td> </tr><tr id="entity-leftrightarrow"><td> <code title="">leftrightarrow;</code> </td> <td> U+02194 </td> <td> <span class="glyph" title="">&#226;&#134;&#148;</span> </td> </tr><tr id="entity-leftrightarrows"><td> <code title="">leftrightarrows;</code> </td> <td> U+021C6 </td> <td> <span class="glyph" title="">&#226;&#135;&#134;</span> </td> </tr><tr id="entity-leftrightharpoons"><td> <code title="">leftrightharpoons;</code> </td> <td> U+021CB </td> <td> <span class="glyph" title="">&#226;&#135;&#139;</span> </td> </tr><tr id="entity-leftrightsquigarrow"><td> <code title="">leftrightsquigarrow;</code> </td> <td> U+021AD </td> <td> <span class="glyph" title="">&#226;&#134;&#173;</span> </td> </tr><tr id="entity-LeftRightVector"><td> <code title="">LeftRightVector;</code> </td> <td> U+0294E </td> <td> <span class="glyph" title="">&#226;&#165;&#142;</span> </td> </tr><tr id="entity-LeftTee"><td> <code title="">LeftTee;</code> </td> <td> U+022A3 </td> <td> <span class="glyph" title="">&#226;&#138;&#163;</span> </td> </tr><tr id="entity-LeftTeeArrow"><td> <code title="">LeftTeeArrow;</code> </td> <td> U+021A4 </td> <td> <span class="glyph" title="">&#226;&#134;&#164;</span> </td> </tr><tr id="entity-LeftTeeVector"><td> <code title="">LeftTeeVector;</code> </td> <td> U+0295A </td> <td> <span class="glyph" title="">&#226;&#165;&#154;</span> </td> </tr><tr id="entity-leftthreetimes"><td> <code title="">leftthreetimes;</code> </td> <td> U+022CB </td> <td> <span class="glyph" title="">&#226;&#139;&#139;</span> </td> </tr><tr id="entity-LeftTriangle"><td> <code title="">LeftTriangle;</code> </td> <td> U+022B2 </td> <td> <span class="glyph" title="">&#226;&#138;&#178;</span> </td> </tr><tr id="entity-LeftTriangleBar"><td> <code title="">LeftTriangleBar;</code> </td> <td> U+029CF </td> <td> <span class="glyph" title="">&#226;&#167;&#143;</span> </td> </tr><tr id="entity-LeftTriangleEqual"><td> <code title="">LeftTriangleEqual;</code> </td> <td> U+022B4 </td> <td> <span class="glyph" title="">&#226;&#138;&#180;</span> </td> </tr><tr id="entity-LeftUpDownVector"><td> <code title="">LeftUpDownVector;</code> </td> <td> U+02951 </td> <td> <span class="glyph" title="">&#226;&#165;&#145;</span> </td> </tr><tr id="entity-LeftUpTeeVector"><td> <code title="">LeftUpTeeVector;</code> </td> <td> U+02960 </td> <td> <span class="glyph" title="">&#226;&#165;&#160;</span> </td> </tr><tr id="entity-LeftUpVector"><td> <code title="">LeftUpVector;</code> </td> <td> U+021BF </td> <td> <span class="glyph" title="">&#226;&#134;&#191;</span> </td> </tr><tr id="entity-LeftUpVectorBar"><td> <code title="">LeftUpVectorBar;</code> </td> <td> U+02958 </td> <td> <span class="glyph" title="">&#226;&#165;&#152;</span> </td> </tr><tr id="entity-LeftVector"><td> <code title="">LeftVector;</code> </td> <td> U+021BC </td> <td> <span class="glyph" title="">&#226;&#134;&#188;</span> </td> </tr><tr id="entity-LeftVectorBar"><td> <code title="">LeftVectorBar;</code> </td> <td> U+02952 </td> <td> <span class="glyph" title="">&#226;&#165;&#146;</span> </td> </tr><tr id="entity-lEg"><td> <code title="">lEg;</code> </td> <td> U+02A8B </td> <td> <span class="glyph" title="">&#226;&#170;&#139;</span> </td> </tr><tr id="entity-leg"><td> <code title="">leg;</code> </td> <td> U+022DA </td> <td> <span class="glyph" title="">&#226;&#139;&#154;</span> </td> </tr><tr id="entity-leq"><td> <code title="">leq;</code> </td> <td> U+02264 </td> <td> <span class="glyph" title="">&#226;&#137;&#164;</span> </td> </tr><tr id="entity-leqq"><td> <code title="">leqq;</code> </td> <td> U+02266 </td> <td> <span class="glyph" title="">&#226;&#137;&#166;</span> </td> </tr><tr id="entity-leqslant"><td> <code title="">leqslant;</code> </td> <td> U+02A7D </td> <td> <span class="glyph" title="">&#226;&#169;&#189;</span> </td> </tr><tr id="entity-les"><td> <code title="">les;</code> </td> <td> U+02A7D </td> <td> <span class="glyph" title="">&#226;&#169;&#189;</span> </td> </tr><tr id="entity-lescc"><td> <code title="">lescc;</code> </td> <td> U+02AA8 </td> <td> <span class="glyph" title="">&#226;&#170;&#168;</span> </td> </tr><tr id="entity-lesdot"><td> <code title="">lesdot;</code> </td> <td> U+02A7F </td> <td> <span class="glyph" title="">&#226;&#169;&#191;</span> </td> </tr><tr id="entity-lesdoto"><td> <code title="">lesdoto;</code> </td> <td> U+02A81 </td> <td> <span class="glyph" title="">&#226;&#170;&#129;</span> </td> </tr><tr id="entity-lesdotor"><td> <code title="">lesdotor;</code> </td> <td> U+02A83 </td> <td> <span class="glyph" title="">&#226;&#170;&#131;</span> </td> </tr><tr id="entity-lesg"><td> <code title="">lesg;</code> </td> <td> U+022DA U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#139;&#154;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-lesges"><td> <code title="">lesges;</code> </td> <td> U+02A93 </td> <td> <span class="glyph" title="">&#226;&#170;&#147;</span> </td> </tr><tr id="entity-lessapprox"><td> <code title="">lessapprox;</code> </td> <td> U+02A85 </td> <td> <span class="glyph" title="">&#226;&#170;&#133;</span> </td> </tr><tr id="entity-lessdot"><td> <code title="">lessdot;</code> </td> <td> U+022D6 </td> <td> <span class="glyph" title="">&#226;&#139;&#150;</span> </td> </tr><tr id="entity-lesseqgtr"><td> <code title="">lesseqgtr;</code> </td> <td> U+022DA </td> <td> <span class="glyph" title="">&#226;&#139;&#154;</span> </td> </tr><tr id="entity-lesseqqgtr"><td> <code title="">lesseqqgtr;</code> </td> <td> U+02A8B </td> <td> <span class="glyph" title="">&#226;&#170;&#139;</span> </td> </tr><tr id="entity-LessEqualGreater"><td> <code title="">LessEqualGreater;</code> </td> <td> U+022DA </td> <td> <span class="glyph" title="">&#226;&#139;&#154;</span> </td> </tr><tr id="entity-LessFullEqual"><td> <code title="">LessFullEqual;</code> </td> <td> U+02266 </td> <td> <span class="glyph" title="">&#226;&#137;&#166;</span> </td> </tr><tr id="entity-LessGreater"><td> <code title="">LessGreater;</code> </td> <td> U+02276 </td> <td> <span class="glyph" title="">&#226;&#137;&#182;</span> </td> </tr><tr id="entity-lessgtr"><td> <code title="">lessgtr;</code> </td> <td> U+02276 </td> <td> <span class="glyph" title="">&#226;&#137;&#182;</span> </td> </tr><tr id="entity-LessLess"><td> <code title="">LessLess;</code> </td> <td> U+02AA1 </td> <td> <span class="glyph" title="">&#226;&#170;&#161;</span> </td> </tr><tr id="entity-lesssim"><td> <code title="">lesssim;</code> </td> <td> U+02272 </td> <td> <span class="glyph" title="">&#226;&#137;&#178;</span> </td> </tr><tr id="entity-LessSlantEqual"><td> <code title="">LessSlantEqual;</code> </td> <td> U+02A7D </td> <td> <span class="glyph" title="">&#226;&#169;&#189;</span> </td> </tr><tr id="entity-LessTilde"><td> <code title="">LessTilde;</code> </td> <td> U+02272 </td> <td> <span class="glyph" title="">&#226;&#137;&#178;</span> </td> </tr><tr id="entity-lfisht"><td> <code title="">lfisht;</code> </td> <td> U+0297C </td> <td> <span class="glyph" title="">&#226;&#165;&#188;</span> </td> </tr><tr id="entity-lfloor"><td> <code title="">lfloor;</code> </td> <td> U+0230A </td> <td> <span class="glyph" title="">&#226;&#140;&#138;</span> </td> </tr><tr id="entity-Lfr"><td> <code title="">Lfr;</code> </td> <td> U+1D50F </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#143;</span> </td> </tr><tr id="entity-lfr"><td> <code title="">lfr;</code> </td> <td> U+1D529 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#169;</span> </td> </tr><tr id="entity-lg"><td> <code title="">lg;</code> </td> <td> U+02276 </td> <td> <span class="glyph" title="">&#226;&#137;&#182;</span> </td> </tr><tr id="entity-lgE"><td> <code title="">lgE;</code> </td> <td> U+02A91 </td> <td> <span class="glyph" title="">&#226;&#170;&#145;</span> </td> </tr><tr id="entity-lHar"><td> <code title="">lHar;</code> </td> <td> U+02962 </td> <td> <span class="glyph" title="">&#226;&#165;&#162;</span> </td> </tr><tr id="entity-lhard"><td> <code title="">lhard;</code> </td> <td> U+021BD </td> <td> <span class="glyph" title="">&#226;&#134;&#189;</span> </td> </tr><tr id="entity-lharu"><td> <code title="">lharu;</code> </td> <td> U+021BC </td> <td> <span class="glyph" title="">&#226;&#134;&#188;</span> </td> </tr><tr id="entity-lharul"><td> <code title="">lharul;</code> </td> <td> U+0296A </td> <td> <span class="glyph" title="">&#226;&#165;&#170;</span> </td> </tr><tr id="entity-lhblk"><td> <code title="">lhblk;</code> </td> <td> U+02584 </td> <td> <span class="glyph" title="">&#226;&#150;&#132;</span> </td> </tr><tr id="entity-LJcy"><td> <code title="">LJcy;</code> </td> <td> U+00409 </td> <td> <span class="glyph" title="">&#208;&#137;</span> </td> </tr><tr id="entity-ljcy"><td> <code title="">ljcy;</code> </td> <td> U+00459 </td> <td> <span class="glyph" title="">&#209;&#153;</span> </td> </tr><tr id="entity-Ll"><td> <code title="">Ll;</code> </td> <td> U+022D8 </td> <td> <span class="glyph" title="">&#226;&#139;&#152;</span> </td> </tr><tr id="entity-ll"><td> <code title="">ll;</code> </td> <td> U+0226A </td> <td> <span class="glyph" title="">&#226;&#137;&#170;</span> </td> </tr><tr id="entity-llarr"><td> <code title="">llarr;</code> </td> <td> U+021C7 </td> <td> <span class="glyph" title="">&#226;&#135;&#135;</span> </td> </tr><tr id="entity-llcorner"><td> <code title="">llcorner;</code> </td> <td> U+0231E </td> <td> <span class="glyph" title="">&#226;&#140;&#158;</span> </td> </tr><tr id="entity-Lleftarrow"><td> <code title="">Lleftarrow;</code> </td> <td> U+021DA </td> <td> <span class="glyph" title="">&#226;&#135;&#154;</span> </td> </tr><tr id="entity-llhard"><td> <code title="">llhard;</code> </td> <td> U+0296B </td> <td> <span class="glyph" title="">&#226;&#165;&#171;</span> </td> </tr><tr id="entity-lltri"><td> <code title="">lltri;</code> </td> <td> U+025FA </td> <td> <span class="glyph" title="">&#226;&#151;&#186;</span> </td> </tr><tr id="entity-Lmidot"><td> <code title="">Lmidot;</code> </td> <td> U+0013F </td> <td> <span class="glyph" title="">&#196;&#191;</span> </td> </tr><tr id="entity-lmidot"><td> <code title="">lmidot;</code> </td> <td> U+00140 </td> <td> <span class="glyph" title="">&#197;&#128;</span> </td> </tr><tr id="entity-lmoust"><td> <code title="">lmoust;</code> </td> <td> U+023B0 </td> <td> <span class="glyph" title="">&#226;&#142;&#176;</span> </td> </tr><tr id="entity-lmoustache"><td> <code title="">lmoustache;</code> </td> <td> U+023B0 </td> <td> <span class="glyph" title="">&#226;&#142;&#176;</span> </td> </tr><tr id="entity-lnap"><td> <code title="">lnap;</code> </td> <td> U+02A89 </td> <td> <span class="glyph" title="">&#226;&#170;&#137;</span> </td> </tr><tr id="entity-lnapprox"><td> <code title="">lnapprox;</code> </td> <td> U+02A89 </td> <td> <span class="glyph" title="">&#226;&#170;&#137;</span> </td> </tr><tr id="entity-lnE"><td> <code title="">lnE;</code> </td> <td> U+02268 </td> <td> <span class="glyph" title="">&#226;&#137;&#168;</span> </td> </tr><tr id="entity-lne"><td> <code title="">lne;</code> </td> <td> U+02A87 </td> <td> <span class="glyph" title="">&#226;&#170;&#135;</span> </td> </tr><tr id="entity-lneq"><td> <code title="">lneq;</code> </td> <td> U+02A87 </td> <td> <span class="glyph" title="">&#226;&#170;&#135;</span> </td> </tr><tr id="entity-lneqq"><td> <code title="">lneqq;</code> </td> <td> U+02268 </td> <td> <span class="glyph" title="">&#226;&#137;&#168;</span> </td> </tr><tr id="entity-lnsim"><td> <code title="">lnsim;</code> </td> <td> U+022E6 </td> <td> <span class="glyph" title="">&#226;&#139;&#166;</span> </td> </tr><tr id="entity-loang"><td> <code title="">loang;</code> </td> <td> U+027EC </td> <td> <span class="glyph" title="">&#226;&#159;&#172;</span> </td> </tr><tr id="entity-loarr"><td> <code title="">loarr;</code> </td> <td> U+021FD </td> <td> <span class="glyph" title="">&#226;&#135;&#189;</span> </td> </tr><tr id="entity-lobrk"><td> <code title="">lobrk;</code> </td> <td> U+027E6 </td> <td> <span class="glyph" title="">&#226;&#159;&#166;</span> </td> </tr><tr id="entity-LongLeftArrow"><td> <code title="">LongLeftArrow;</code> </td> <td> U+027F5 </td> <td> <span class="glyph" title="">&#226;&#159;&#181;</span> </td> </tr><tr id="entity-Longleftarrow"><td> <code title="">Longleftarrow;</code> </td> <td> U+027F8 </td> <td> <span class="glyph" title="">&#226;&#159;&#184;</span> </td> </tr><tr id="entity-longleftarrow"><td> <code title="">longleftarrow;</code> </td> <td> U+027F5 </td> <td> <span class="glyph" title="">&#226;&#159;&#181;</span> </td> </tr><tr id="entity-LongLeftRightArrow"><td> <code title="">LongLeftRightArrow;</code> </td> <td> U+027F7 </td> <td> <span class="glyph" title="">&#226;&#159;&#183;</span> </td> </tr><tr id="entity-Longleftrightarrow"><td> <code title="">Longleftrightarrow;</code> </td> <td> U+027FA </td> <td> <span class="glyph" title="">&#226;&#159;&#186;</span> </td> </tr><tr id="entity-longleftrightarrow"><td> <code title="">longleftrightarrow;</code> </td> <td> U+027F7 </td> <td> <span class="glyph" title="">&#226;&#159;&#183;</span> </td> </tr><tr id="entity-longmapsto"><td> <code title="">longmapsto;</code> </td> <td> U+027FC </td> <td> <span class="glyph" title="">&#226;&#159;&#188;</span> </td> </tr><tr id="entity-LongRightArrow"><td> <code title="">LongRightArrow;</code> </td> <td> U+027F6 </td> <td> <span class="glyph" title="">&#226;&#159;&#182;</span> </td> </tr><tr id="entity-Longrightarrow"><td> <code title="">Longrightarrow;</code> </td> <td> U+027F9 </td> <td> <span class="glyph" title="">&#226;&#159;&#185;</span> </td> </tr><tr id="entity-longrightarrow"><td> <code title="">longrightarrow;</code> </td> <td> U+027F6 </td> <td> <span class="glyph" title="">&#226;&#159;&#182;</span> </td> </tr><tr id="entity-looparrowleft"><td> <code title="">looparrowleft;</code> </td> <td> U+021AB </td> <td> <span class="glyph" title="">&#226;&#134;&#171;</span> </td> </tr><tr id="entity-looparrowright"><td> <code title="">looparrowright;</code> </td> <td> U+021AC </td> <td> <span class="glyph" title="">&#226;&#134;&#172;</span> </td> </tr><tr id="entity-lopar"><td> <code title="">lopar;</code> </td> <td> U+02985 </td> <td> <span class="glyph" title="">&#226;&#166;&#133;</span> </td> </tr><tr id="entity-Lopf"><td> <code title="">Lopf;</code> </td> <td> U+1D543 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#131;</span> </td> </tr><tr id="entity-lopf"><td> <code title="">lopf;</code> </td> <td> U+1D55D </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#157;</span> </td> </tr><tr id="entity-loplus"><td> <code title="">loplus;</code> </td> <td> U+02A2D </td> <td> <span class="glyph" title="">&#226;&#168;&#173;</span> </td> </tr><tr id="entity-lotimes"><td> <code title="">lotimes;</code> </td> <td> U+02A34 </td> <td> <span class="glyph" title="">&#226;&#168;&#180;</span> </td> </tr><tr id="entity-lowast"><td> <code title="">lowast;</code> </td> <td> U+02217 </td> <td> <span class="glyph" title="">&#226;&#136;&#151;</span> </td> </tr><tr id="entity-lowbar"><td> <code title="">lowbar;</code> </td> <td> U+0005F </td> <td> <span class="glyph" title="">_</span> </td> </tr><tr id="entity-LowerLeftArrow"><td> <code title="">LowerLeftArrow;</code> </td> <td> U+02199 </td> <td> <span class="glyph" title="">&#226;&#134;&#153;</span> </td> </tr><tr id="entity-LowerRightArrow"><td> <code title="">LowerRightArrow;</code> </td> <td> U+02198 </td> <td> <span class="glyph" title="">&#226;&#134;&#152;</span> </td> </tr><tr id="entity-loz"><td> <code title="">loz;</code> </td> <td> U+025CA </td> <td> <span class="glyph" title="">&#226;&#151;&#138;</span> </td> </tr><tr id="entity-lozenge"><td> <code title="">lozenge;</code> </td> <td> U+025CA </td> <td> <span class="glyph" title="">&#226;&#151;&#138;</span> </td> </tr><tr id="entity-lozf"><td> <code title="">lozf;</code> </td> <td> U+029EB </td> <td> <span class="glyph" title="">&#226;&#167;&#171;</span> </td> </tr><tr id="entity-lpar"><td> <code title="">lpar;</code> </td> <td> U+00028 </td> <td> <span class="glyph" title="">(</span> </td> </tr><tr id="entity-lparlt"><td> <code title="">lparlt;</code> </td> <td> U+02993 </td> <td> <span class="glyph" title="">&#226;&#166;&#147;</span> </td> </tr><tr id="entity-lrarr"><td> <code title="">lrarr;</code> </td> <td> U+021C6 </td> <td> <span class="glyph" title="">&#226;&#135;&#134;</span> </td> </tr><tr id="entity-lrcorner"><td> <code title="">lrcorner;</code> </td> <td> U+0231F </td> <td> <span class="glyph" title="">&#226;&#140;&#159;</span> </td> </tr><tr id="entity-lrhar"><td> <code title="">lrhar;</code> </td> <td> U+021CB </td> <td> <span class="glyph" title="">&#226;&#135;&#139;</span> </td> </tr><tr id="entity-lrhard"><td> <code title="">lrhard;</code> </td> <td> U+0296D </td> <td> <span class="glyph" title="">&#226;&#165;&#173;</span> </td> </tr><tr id="entity-lrm"><td> <code title="">lrm;</code> </td> <td> U+0200E </td> <td> <span class="glyph" title="">&#226;&#128;&#142;</span> </td> </tr><tr id="entity-lrtri"><td> <code title="">lrtri;</code> </td> <td> U+022BF </td> <td> <span class="glyph" title="">&#226;&#138;&#191;</span> </td> </tr><tr id="entity-lsaquo"><td> <code title="">lsaquo;</code> </td> <td> U+02039 </td> <td> <span class="glyph" title="">&#226;&#128;&#185;</span> </td> </tr><tr id="entity-Lscr"><td> <code title="">Lscr;</code> </td> <td> U+02112 </td> <td> <span class="glyph" title="">&#226;&#132;&#146;</span> </td> </tr><tr id="entity-lscr"><td> <code title="">lscr;</code> </td> <td> U+1D4C1 </td> <td> <span class="glyph" title="">&#240;&#157;&#147;&#129;</span> </td> </tr><tr id="entity-Lsh"><td> <code title="">Lsh;</code> </td> <td> U+021B0 </td> <td> <span class="glyph" title="">&#226;&#134;&#176;</span> </td> </tr><tr id="entity-lsh"><td> <code title="">lsh;</code> </td> <td> U+021B0 </td> <td> <span class="glyph" title="">&#226;&#134;&#176;</span> </td> </tr><tr id="entity-lsim"><td> <code title="">lsim;</code> </td> <td> U+02272 </td> <td> <span class="glyph" title="">&#226;&#137;&#178;</span> </td> </tr><tr id="entity-lsime"><td> <code title="">lsime;</code> </td> <td> U+02A8D </td> <td> <span class="glyph" title="">&#226;&#170;&#141;</span> </td> </tr><tr id="entity-lsimg"><td> <code title="">lsimg;</code> </td> <td> U+02A8F </td> <td> <span class="glyph" title="">&#226;&#170;&#143;</span> </td> </tr><tr id="entity-lsqb"><td> <code title="">lsqb;</code> </td> <td> U+0005B </td> <td> <span class="glyph" title="">[</span> </td> </tr><tr id="entity-lsquo"><td> <code title="">lsquo;</code> </td> <td> U+02018 </td> <td> <span class="glyph" title="">&#226;&#128;&#152;</span> </td> </tr><tr id="entity-lsquor"><td> <code title="">lsquor;</code> </td> <td> U+0201A </td> <td> <span class="glyph" title="">&#226;&#128;&#154;</span> </td> </tr><tr id="entity-Lstrok"><td> <code title="">Lstrok;</code> </td> <td> U+00141 </td> <td> <span class="glyph" title="">&#197;&#129;</span> </td> </tr><tr id="entity-lstrok"><td> <code title="">lstrok;</code> </td> <td> U+00142 </td> <td> <span class="glyph" title="">&#197;&#130;</span> </td> </tr><tr id="entity-LT"><td> <code title="">LT;</code> </td> <td> U+0003C </td> <td> <span class="glyph" title="">&lt;</span> </td> </tr><tr class="impl" id="entity-LT-legacy"><td> <code title="">LT</code> </td> <td> U+0003C </td> <td> <span title="">&lt;</span> </td> </tr><tr id="entity-Lt"><td> <code title="">Lt;</code> </td> <td> U+0226A </td> <td> <span class="glyph" title="">&#226;&#137;&#170;</span> </td> </tr><tr id="entity-lt"><td> <code title="">lt;</code> </td> <td> U+0003C </td> <td> <span class="glyph" title="">&lt;</span> </td> </tr><tr class="impl" id="entity-lt-legacy"><td> <code title="">lt</code> </td> <td> U+0003C </td> <td> <span title="">&lt;</span> </td> </tr><tr id="entity-ltcc"><td> <code title="">ltcc;</code> </td> <td> U+02AA6 </td> <td> <span class="glyph" title="">&#226;&#170;&#166;</span> </td> </tr><tr id="entity-ltcir"><td> <code title="">ltcir;</code> </td> <td> U+02A79 </td> <td> <span class="glyph" title="">&#226;&#169;&#185;</span> </td> </tr><tr id="entity-ltdot"><td> <code title="">ltdot;</code> </td> <td> U+022D6 </td> <td> <span class="glyph" title="">&#226;&#139;&#150;</span> </td> </tr><tr id="entity-lthree"><td> <code title="">lthree;</code> </td> <td> U+022CB </td> <td> <span class="glyph" title="">&#226;&#139;&#139;</span> </td> </tr><tr id="entity-ltimes"><td> <code title="">ltimes;</code> </td> <td> U+022C9 </td> <td> <span class="glyph" title="">&#226;&#139;&#137;</span> </td> </tr><tr id="entity-ltlarr"><td> <code title="">ltlarr;</code> </td> <td> U+02976 </td> <td> <span class="glyph" title="">&#226;&#165;&#182;</span> </td> </tr><tr id="entity-ltquest"><td> <code title="">ltquest;</code> </td> <td> U+02A7B </td> <td> <span class="glyph" title="">&#226;&#169;&#187;</span> </td> </tr><tr id="entity-ltri"><td> <code title="">ltri;</code> </td> <td> U+025C3 </td> <td> <span class="glyph" title="">&#226;&#151;&#131;</span> </td> </tr><tr id="entity-ltrie"><td> <code title="">ltrie;</code> </td> <td> U+022B4 </td> <td> <span class="glyph" title="">&#226;&#138;&#180;</span> </td> </tr><tr id="entity-ltrif"><td> <code title="">ltrif;</code> </td> <td> U+025C2 </td> <td> <span class="glyph" title="">&#226;&#151;&#130;</span> </td> </tr><tr id="entity-ltrPar"><td> <code title="">ltrPar;</code> </td> <td> U+02996 </td> <td> <span class="glyph" title="">&#226;&#166;&#150;</span> </td> </tr><tr id="entity-lurdshar"><td> <code title="">lurdshar;</code> </td> <td> U+0294A </td> <td> <span class="glyph" title="">&#226;&#165;&#138;</span> </td> </tr><tr id="entity-luruhar"><td> <code title="">luruhar;</code> </td> <td> U+02966 </td> <td> <span class="glyph" title="">&#226;&#165;&#166;</span> </td> </tr><tr id="entity-lvertneqq"><td> <code title="">lvertneqq;</code> </td> <td> U+02268 U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#168;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-lvnE"><td> <code title="">lvnE;</code> </td> <td> U+02268 U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#168;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-macr"><td> <code title="">macr;</code> </td> <td> U+000AF </td> <td> <span class="glyph" title="">&#194;&#175;</span> </td> </tr><tr class="impl" id="entity-macr-legacy"><td> <code title="">macr</code> </td> <td> U+000AF </td> <td> <span title="">&#194;&#175;</span> </td> </tr><tr id="entity-male"><td> <code title="">male;</code> </td> <td> U+02642 </td> <td> <span class="glyph" title="">&#226;&#153;&#130;</span> </td> </tr><tr id="entity-malt"><td> <code title="">malt;</code> </td> <td> U+02720 </td> <td> <span class="glyph" title="">&#226;&#156;&#160;</span> </td> </tr><tr id="entity-maltese"><td> <code title="">maltese;</code> </td> <td> U+02720 </td> <td> <span class="glyph" title="">&#226;&#156;&#160;</span> </td> </tr><tr id="entity-Map"><td> <code title="">Map;</code> </td> <td> U+02905 </td> <td> <span class="glyph" title="">&#226;&#164;&#133;</span> </td> </tr><tr id="entity-map"><td> <code title="">map;</code> </td> <td> U+021A6 </td> <td> <span class="glyph" title="">&#226;&#134;&#166;</span> </td> </tr><tr id="entity-mapsto"><td> <code title="">mapsto;</code> </td> <td> U+021A6 </td> <td> <span class="glyph" title="">&#226;&#134;&#166;</span> </td> </tr><tr id="entity-mapstodown"><td> <code title="">mapstodown;</code> </td> <td> U+021A7 </td> <td> <span class="glyph" title="">&#226;&#134;&#167;</span> </td> </tr><tr id="entity-mapstoleft"><td> <code title="">mapstoleft;</code> </td> <td> U+021A4 </td> <td> <span class="glyph" title="">&#226;&#134;&#164;</span> </td> </tr><tr id="entity-mapstoup"><td> <code title="">mapstoup;</code> </td> <td> U+021A5 </td> <td> <span class="glyph" title="">&#226;&#134;&#165;</span> </td> </tr><tr id="entity-marker"><td> <code title="">marker;</code> </td> <td> U+025AE </td> <td> <span class="glyph" title="">&#226;&#150;&#174;</span> </td> </tr><tr id="entity-mcomma"><td> <code title="">mcomma;</code> </td> <td> U+02A29 </td> <td> <span class="glyph" title="">&#226;&#168;&#169;</span> </td> </tr><tr id="entity-Mcy"><td> <code title="">Mcy;</code> </td> <td> U+0041C </td> <td> <span class="glyph" title="">&#208;&#156;</span> </td> </tr><tr id="entity-mcy"><td> <code title="">mcy;</code> </td> <td> U+0043C </td> <td> <span class="glyph" title="">&#208;&#188;</span> </td> </tr><tr id="entity-mdash"><td> <code title="">mdash;</code> </td> <td> U+02014 </td> <td> <span class="glyph" title="">&#226;&#128;&#148;</span> </td> </tr><tr id="entity-mDDot"><td> <code title="">mDDot;</code> </td> <td> U+0223A </td> <td> <span class="glyph" title="">&#226;&#136;&#186;</span> </td> </tr><tr id="entity-measuredangle"><td> <code title="">measuredangle;</code> </td> <td> U+02221 </td> <td> <span class="glyph" title="">&#226;&#136;&#161;</span> </td> </tr><tr id="entity-MediumSpace"><td> <code title="">MediumSpace;</code> </td> <td> U+0205F </td> <td> <span class="glyph" title="">&#226;&#129;&#159;</span> </td> </tr><tr id="entity-Mellintrf"><td> <code title="">Mellintrf;</code> </td> <td> U+02133 </td> <td> <span class="glyph" title="">&#226;&#132;&#179;</span> </td> </tr><tr id="entity-Mfr"><td> <code title="">Mfr;</code> </td> <td> U+1D510 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#144;</span> </td> </tr><tr id="entity-mfr"><td> <code title="">mfr;</code> </td> <td> U+1D52A </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#170;</span> </td> </tr><tr id="entity-mho"><td> <code title="">mho;</code> </td> <td> U+02127 </td> <td> <span class="glyph" title="">&#226;&#132;&#167;</span> </td> </tr><tr id="entity-micro"><td> <code title="">micro;</code> </td> <td> U+000B5 </td> <td> <span class="glyph" title="">&#194;&#181;</span> </td> </tr><tr class="impl" id="entity-micro-legacy"><td> <code title="">micro</code> </td> <td> U+000B5 </td> <td> <span title="">&#194;&#181;</span> </td> </tr><tr id="entity-mid"><td> <code title="">mid;</code> </td> <td> U+02223 </td> <td> <span class="glyph" title="">&#226;&#136;&#163;</span> </td> </tr><tr id="entity-midast"><td> <code title="">midast;</code> </td> <td> U+0002A </td> <td> <span class="glyph" title="">*</span> </td> </tr><tr id="entity-midcir"><td> <code title="">midcir;</code> </td> <td> U+02AF0 </td> <td> <span class="glyph" title="">&#226;&#171;&#176;</span> </td> </tr><tr id="entity-middot"><td> <code title="">middot;</code> </td> <td> U+000B7 </td> <td> <span class="glyph" title="">&#194;&#183;</span> </td> </tr><tr class="impl" id="entity-middot-legacy"><td> <code title="">middot</code> </td> <td> U+000B7 </td> <td> <span title="">&#194;&#183;</span> </td> </tr><tr id="entity-minus"><td> <code title="">minus;</code> </td> <td> U+02212 </td> <td> <span class="glyph" title="">&#226;&#136;&#146;</span> </td> </tr><tr id="entity-minusb"><td> <code title="">minusb;</code> </td> <td> U+0229F </td> <td> <span class="glyph" title="">&#226;&#138;&#159;</span> </td> </tr><tr id="entity-minusd"><td> <code title="">minusd;</code> </td> <td> U+02238 </td> <td> <span class="glyph" title="">&#226;&#136;&#184;</span> </td> </tr><tr id="entity-minusdu"><td> <code title="">minusdu;</code> </td> <td> U+02A2A </td> <td> <span class="glyph" title="">&#226;&#168;&#170;</span> </td> </tr><tr id="entity-MinusPlus"><td> <code title="">MinusPlus;</code> </td> <td> U+02213 </td> <td> <span class="glyph" title="">&#226;&#136;&#147;</span> </td> </tr><tr id="entity-mlcp"><td> <code title="">mlcp;</code> </td> <td> U+02ADB </td> <td> <span class="glyph" title="">&#226;&#171;&#155;</span> </td> </tr><tr id="entity-mldr"><td> <code title="">mldr;</code> </td> <td> U+02026 </td> <td> <span class="glyph" title="">&#226;&#128;&#166;</span> </td> </tr><tr id="entity-mnplus"><td> <code title="">mnplus;</code> </td> <td> U+02213 </td> <td> <span class="glyph" title="">&#226;&#136;&#147;</span> </td> </tr><tr id="entity-models"><td> <code title="">models;</code> </td> <td> U+022A7 </td> <td> <span class="glyph" title="">&#226;&#138;&#167;</span> </td> </tr><tr id="entity-Mopf"><td> <code title="">Mopf;</code> </td> <td> U+1D544 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#132;</span> </td> </tr><tr id="entity-mopf"><td> <code title="">mopf;</code> </td> <td> U+1D55E </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#158;</span> </td> </tr><tr id="entity-mp"><td> <code title="">mp;</code> </td> <td> U+02213 </td> <td> <span class="glyph" title="">&#226;&#136;&#147;</span> </td> </tr><tr id="entity-Mscr"><td> <code title="">Mscr;</code> </td> <td> U+02133 </td> <td> <span class="glyph" title="">&#226;&#132;&#179;</span> </td> </tr><tr id="entity-mscr"><td> <code title="">mscr;</code> </td> <td> U+1D4C2 </td> <td> <span class="glyph" title="">&#240;&#157;&#147;&#130;</span> </td> </tr><tr id="entity-mstpos"><td> <code title="">mstpos;</code> </td> <td> U+0223E </td> <td> <span class="glyph" title="">&#226;&#136;&#190;</span> </td> </tr><tr id="entity-Mu"><td> <code title="">Mu;</code> </td> <td> U+0039C </td> <td> <span class="glyph" title="">&#206;&#156;</span> </td> </tr><tr id="entity-mu"><td> <code title="">mu;</code> </td> <td> U+003BC </td> <td> <span class="glyph" title="">&#206;&#188;</span> </td> </tr><tr id="entity-multimap"><td> <code title="">multimap;</code> </td> <td> U+022B8 </td> <td> <span class="glyph" title="">&#226;&#138;&#184;</span> </td> </tr><tr id="entity-mumap"><td> <code title="">mumap;</code> </td> <td> U+022B8 </td> <td> <span class="glyph" title="">&#226;&#138;&#184;</span> </td> </tr><tr id="entity-nabla"><td> <code title="">nabla;</code> </td> <td> U+02207 </td> <td> <span class="glyph" title="">&#226;&#136;&#135;</span> </td> </tr><tr id="entity-Nacute"><td> <code title="">Nacute;</code> </td> <td> U+00143 </td> <td> <span class="glyph" title="">&#197;&#131;</span> </td> </tr><tr id="entity-nacute"><td> <code title="">nacute;</code> </td> <td> U+00144 </td> <td> <span class="glyph" title="">&#197;&#132;</span> </td> </tr><tr id="entity-nang"><td> <code title="">nang;</code> </td> <td> U+02220 U+020D2 </td> <td> <span class="glyph compound" title="">&#226;&#136;&#160;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-nap"><td> <code title="">nap;</code> </td> <td> U+02249 </td> <td> <span class="glyph" title="">&#226;&#137;&#137;</span> </td> </tr><tr id="entity-napE"><td> <code title="">napE;</code> </td> <td> U+02A70 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#169;&#176;&#204;&#184;</span> </td> </tr><tr id="entity-napid"><td> <code title="">napid;</code> </td> <td> U+0224B U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#139;&#204;&#184;</span> </td> </tr><tr id="entity-napos"><td> <code title="">napos;</code> </td> <td> U+00149 </td> <td> <span class="glyph" title="">&#197;&#137;</span> </td> </tr><tr id="entity-napprox"><td> <code title="">napprox;</code> </td> <td> U+02249 </td> <td> <span class="glyph" title="">&#226;&#137;&#137;</span> </td> </tr><tr id="entity-natur"><td> <code title="">natur;</code> </td> <td> U+0266E </td> <td> <span class="glyph" title="">&#226;&#153;&#174;</span> </td> </tr><tr id="entity-natural"><td> <code title="">natural;</code> </td> <td> U+0266E </td> <td> <span class="glyph" title="">&#226;&#153;&#174;</span> </td> </tr><tr id="entity-naturals"><td> <code title="">naturals;</code> </td> <td> U+02115 </td> <td> <span class="glyph" title="">&#226;&#132;&#149;</span> </td> </tr><tr id="entity-nbsp"><td> <code title="">nbsp;</code> </td> <td> U+000A0 </td> <td> <span class="glyph" title="">&#160;</span> </td> </tr><tr class="impl" id="entity-nbsp-legacy"><td> <code title="">nbsp</code> </td> <td> U+000A0 </td> <td> <span title="">&#160;</span> </td> </tr><tr id="entity-nbump"><td> <code title="">nbump;</code> </td> <td> U+0224E U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#142;&#204;&#184;</span> </td> </tr><tr id="entity-nbumpe"><td> <code title="">nbumpe;</code> </td> <td> U+0224F U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#143;&#204;&#184;</span> </td> </tr><tr id="entity-ncap"><td> <code title="">ncap;</code> </td> <td> U+02A43 </td> <td> <span class="glyph" title="">&#226;&#169;&#131;</span> </td> </tr><tr id="entity-Ncaron"><td> <code title="">Ncaron;</code> </td> <td> U+00147 </td> <td> <span class="glyph" title="">&#197;&#135;</span> </td> </tr><tr id="entity-ncaron"><td> <code title="">ncaron;</code> </td> <td> U+00148 </td> <td> <span class="glyph" title="">&#197;&#136;</span> </td> </tr><tr id="entity-Ncedil"><td> <code title="">Ncedil;</code> </td> <td> U+00145 </td> <td> <span class="glyph" title="">&#197;&#133;</span> </td> </tr><tr id="entity-ncedil"><td> <code title="">ncedil;</code> </td> <td> U+00146 </td> <td> <span class="glyph" title="">&#197;&#134;</span> </td> </tr><tr id="entity-ncong"><td> <code title="">ncong;</code> </td> <td> U+02247 </td> <td> <span class="glyph" title="">&#226;&#137;&#135;</span> </td> </tr><tr id="entity-ncongdot"><td> <code title="">ncongdot;</code> </td> <td> U+02A6D U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#169;&#173;&#204;&#184;</span> </td> </tr><tr id="entity-ncup"><td> <code title="">ncup;</code> </td> <td> U+02A42 </td> <td> <span class="glyph" title="">&#226;&#169;&#130;</span> </td> </tr><tr id="entity-Ncy"><td> <code title="">Ncy;</code> </td> <td> U+0041D </td> <td> <span class="glyph" title="">&#208;&#157;</span> </td> </tr><tr id="entity-ncy"><td> <code title="">ncy;</code> </td> <td> U+0043D </td> <td> <span class="glyph" title="">&#208;&#189;</span> </td> </tr><tr id="entity-ndash"><td> <code title="">ndash;</code> </td> <td> U+02013 </td> <td> <span class="glyph" title="">&#226;&#128;&#147;</span> </td> </tr><tr id="entity-ne"><td> <code title="">ne;</code> </td> <td> U+02260 </td> <td> <span class="glyph" title="">&#226;&#137;&#160;</span> </td> </tr><tr id="entity-nearhk"><td> <code title="">nearhk;</code> </td> <td> U+02924 </td> <td> <span class="glyph" title="">&#226;&#164;&#164;</span> </td> </tr><tr id="entity-neArr"><td> <code title="">neArr;</code> </td> <td> U+021D7 </td> <td> <span class="glyph" title="">&#226;&#135;&#151;</span> </td> </tr><tr id="entity-nearr"><td> <code title="">nearr;</code> </td> <td> U+02197 </td> <td> <span class="glyph" title="">&#226;&#134;&#151;</span> </td> </tr><tr id="entity-nearrow"><td> <code title="">nearrow;</code> </td> <td> U+02197 </td> <td> <span class="glyph" title="">&#226;&#134;&#151;</span> </td> </tr><tr id="entity-nedot"><td> <code title="">nedot;</code> </td> <td> U+02250 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#144;&#204;&#184;</span> </td> </tr><tr id="entity-NegativeMediumSpace"><td> <code title="">NegativeMediumSpace;</code> </td> <td> U+0200B </td> <td> <span class="glyph" title="">&#226;&#128;&#139;</span> </td> </tr><tr id="entity-NegativeThickSpace"><td> <code title="">NegativeThickSpace;</code> </td> <td> U+0200B </td> <td> <span class="glyph" title="">&#226;&#128;&#139;</span> </td> </tr><tr id="entity-NegativeThinSpace"><td> <code title="">NegativeThinSpace;</code> </td> <td> U+0200B </td> <td> <span class="glyph" title="">&#226;&#128;&#139;</span> </td> </tr><tr id="entity-NegativeVeryThinSpace"><td> <code title="">NegativeVeryThinSpace;</code> </td> <td> U+0200B </td> <td> <span class="glyph" title="">&#226;&#128;&#139;</span> </td> </tr><tr id="entity-nequiv"><td> <code title="">nequiv;</code> </td> <td> U+02262 </td> <td> <span class="glyph" title="">&#226;&#137;&#162;</span> </td> </tr><tr id="entity-nesear"><td> <code title="">nesear;</code> </td> <td> U+02928 </td> <td> <span class="glyph" title="">&#226;&#164;&#168;</span> </td> </tr><tr id="entity-nesim"><td> <code title="">nesim;</code> </td> <td> U+02242 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#130;&#204;&#184;</span> </td> </tr><tr id="entity-NestedGreaterGreater"><td> <code title="">NestedGreaterGreater;</code> </td> <td> U+0226B </td> <td> <span class="glyph" title="">&#226;&#137;&#171;</span> </td> </tr><tr id="entity-NestedLessLess"><td> <code title="">NestedLessLess;</code> </td> <td> U+0226A </td> <td> <span class="glyph" title="">&#226;&#137;&#170;</span> </td> </tr><tr id="entity-NewLine"><td> <code title="">NewLine;</code> </td> <td> U+0000A </td> <td> <span class="glyph control" title="">&#226;&#144;&#138;</span> </td> </tr><tr id="entity-nexist"><td> <code title="">nexist;</code> </td> <td> U+02204 </td> <td> <span class="glyph" title="">&#226;&#136;&#132;</span> </td> </tr><tr id="entity-nexists"><td> <code title="">nexists;</code> </td> <td> U+02204 </td> <td> <span class="glyph" title="">&#226;&#136;&#132;</span> </td> </tr><tr id="entity-Nfr"><td> <code title="">Nfr;</code> </td> <td> U+1D511 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#145;</span> </td> </tr><tr id="entity-nfr"><td> <code title="">nfr;</code> </td> <td> U+1D52B </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#171;</span> </td> </tr><tr id="entity-ngE"><td> <code title="">ngE;</code> </td> <td> U+02267 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#167;&#204;&#184;</span> </td> </tr><tr id="entity-nge"><td> <code title="">nge;</code> </td> <td> U+02271 </td> <td> <span class="glyph" title="">&#226;&#137;&#177;</span> </td> </tr><tr id="entity-ngeq"><td> <code title="">ngeq;</code> </td> <td> U+02271 </td> <td> <span class="glyph" title="">&#226;&#137;&#177;</span> </td> </tr><tr id="entity-ngeqq"><td> <code title="">ngeqq;</code> </td> <td> U+02267 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#167;&#204;&#184;</span> </td> </tr><tr id="entity-ngeqslant"><td> <code title="">ngeqslant;</code> </td> <td> U+02A7E U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#169;&#190;&#204;&#184;</span> </td> </tr><tr id="entity-nges"><td> <code title="">nges;</code> </td> <td> U+02A7E U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#169;&#190;&#204;&#184;</span> </td> </tr><tr id="entity-nGg"><td> <code title="">nGg;</code> </td> <td> U+022D9 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#139;&#153;&#204;&#184;</span> </td> </tr><tr id="entity-ngsim"><td> <code title="">ngsim;</code> </td> <td> U+02275 </td> <td> <span class="glyph" title="">&#226;&#137;&#181;</span> </td> </tr><tr id="entity-nGt"><td> <code title="">nGt;</code> </td> <td> U+0226B U+020D2 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#171;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-ngt"><td> <code title="">ngt;</code> </td> <td> U+0226F </td> <td> <span class="glyph" title="">&#226;&#137;&#175;</span> </td> </tr><tr id="entity-ngtr"><td> <code title="">ngtr;</code> </td> <td> U+0226F </td> <td> <span class="glyph" title="">&#226;&#137;&#175;</span> </td> </tr><tr id="entity-nGtv"><td> <code title="">nGtv;</code> </td> <td> U+0226B U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#171;&#204;&#184;</span> </td> </tr><tr id="entity-nhArr"><td> <code title="">nhArr;</code> </td> <td> U+021CE </td> <td> <span class="glyph" title="">&#226;&#135;&#142;</span> </td> </tr><tr id="entity-nharr"><td> <code title="">nharr;</code> </td> <td> U+021AE </td> <td> <span class="glyph" title="">&#226;&#134;&#174;</span> </td> </tr><tr id="entity-nhpar"><td> <code title="">nhpar;</code> </td> <td> U+02AF2 </td> <td> <span class="glyph" title="">&#226;&#171;&#178;</span> </td> </tr><tr id="entity-ni"><td> <code title="">ni;</code> </td> <td> U+0220B </td> <td> <span class="glyph" title="">&#226;&#136;&#139;</span> </td> </tr><tr id="entity-nis"><td> <code title="">nis;</code> </td> <td> U+022FC </td> <td> <span class="glyph" title="">&#226;&#139;&#188;</span> </td> </tr><tr id="entity-nisd"><td> <code title="">nisd;</code> </td> <td> U+022FA </td> <td> <span class="glyph" title="">&#226;&#139;&#186;</span> </td> </tr><tr id="entity-niv"><td> <code title="">niv;</code> </td> <td> U+0220B </td> <td> <span class="glyph" title="">&#226;&#136;&#139;</span> </td> </tr><tr id="entity-NJcy"><td> <code title="">NJcy;</code> </td> <td> U+0040A </td> <td> <span class="glyph" title="">&#208;&#138;</span> </td> </tr><tr id="entity-njcy"><td> <code title="">njcy;</code> </td> <td> U+0045A </td> <td> <span class="glyph" title="">&#209;&#154;</span> </td> </tr><tr id="entity-nlArr"><td> <code title="">nlArr;</code> </td> <td> U+021CD </td> <td> <span class="glyph" title="">&#226;&#135;&#141;</span> </td> </tr><tr id="entity-nlarr"><td> <code title="">nlarr;</code> </td> <td> U+0219A </td> <td> <span class="glyph" title="">&#226;&#134;&#154;</span> </td> </tr><tr id="entity-nldr"><td> <code title="">nldr;</code> </td> <td> U+02025 </td> <td> <span class="glyph" title="">&#226;&#128;&#165;</span> </td> </tr><tr id="entity-nlE"><td> <code title="">nlE;</code> </td> <td> U+02266 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#166;&#204;&#184;</span> </td> </tr><tr id="entity-nle"><td> <code title="">nle;</code> </td> <td> U+02270 </td> <td> <span class="glyph" title="">&#226;&#137;&#176;</span> </td> </tr><tr id="entity-nLeftarrow"><td> <code title="">nLeftarrow;</code> </td> <td> U+021CD </td> <td> <span class="glyph" title="">&#226;&#135;&#141;</span> </td> </tr><tr id="entity-nleftarrow"><td> <code title="">nleftarrow;</code> </td> <td> U+0219A </td> <td> <span class="glyph" title="">&#226;&#134;&#154;</span> </td> </tr><tr id="entity-nLeftrightarrow"><td> <code title="">nLeftrightarrow;</code> </td> <td> U+021CE </td> <td> <span class="glyph" title="">&#226;&#135;&#142;</span> </td> </tr><tr id="entity-nleftrightarrow"><td> <code title="">nleftrightarrow;</code> </td> <td> U+021AE </td> <td> <span class="glyph" title="">&#226;&#134;&#174;</span> </td> </tr><tr id="entity-nleq"><td> <code title="">nleq;</code> </td> <td> U+02270 </td> <td> <span class="glyph" title="">&#226;&#137;&#176;</span> </td> </tr><tr id="entity-nleqq"><td> <code title="">nleqq;</code> </td> <td> U+02266 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#166;&#204;&#184;</span> </td> </tr><tr id="entity-nleqslant"><td> <code title="">nleqslant;</code> </td> <td> U+02A7D U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#169;&#189;&#204;&#184;</span> </td> </tr><tr id="entity-nles"><td> <code title="">nles;</code> </td> <td> U+02A7D U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#169;&#189;&#204;&#184;</span> </td> </tr><tr id="entity-nless"><td> <code title="">nless;</code> </td> <td> U+0226E </td> <td> <span class="glyph" title="">&#226;&#137;&#174;</span> </td> </tr><tr id="entity-nLl"><td> <code title="">nLl;</code> </td> <td> U+022D8 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#139;&#152;&#204;&#184;</span> </td> </tr><tr id="entity-nlsim"><td> <code title="">nlsim;</code> </td> <td> U+02274 </td> <td> <span class="glyph" title="">&#226;&#137;&#180;</span> </td> </tr><tr id="entity-nLt"><td> <code title="">nLt;</code> </td> <td> U+0226A U+020D2 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#170;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-nlt"><td> <code title="">nlt;</code> </td> <td> U+0226E </td> <td> <span class="glyph" title="">&#226;&#137;&#174;</span> </td> </tr><tr id="entity-nltri"><td> <code title="">nltri;</code> </td> <td> U+022EA </td> <td> <span class="glyph" title="">&#226;&#139;&#170;</span> </td> </tr><tr id="entity-nltrie"><td> <code title="">nltrie;</code> </td> <td> U+022EC </td> <td> <span class="glyph" title="">&#226;&#139;&#172;</span> </td> </tr><tr id="entity-nLtv"><td> <code title="">nLtv;</code> </td> <td> U+0226A U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#170;&#204;&#184;</span> </td> </tr><tr id="entity-nmid"><td> <code title="">nmid;</code> </td> <td> U+02224 </td> <td> <span class="glyph" title="">&#226;&#136;&#164;</span> </td> </tr><tr id="entity-NoBreak"><td> <code title="">NoBreak;</code> </td> <td> U+02060 </td> <td> <span class="glyph" title="">&#226;&#129;&#160;</span> </td> </tr><tr id="entity-NonBreakingSpace"><td> <code title="">NonBreakingSpace;</code> </td> <td> U+000A0 </td> <td> <span class="glyph" title="">&#160;</span> </td> </tr><tr id="entity-Nopf"><td> <code title="">Nopf;</code> </td> <td> U+02115 </td> <td> <span class="glyph" title="">&#226;&#132;&#149;</span> </td> </tr><tr id="entity-nopf"><td> <code title="">nopf;</code> </td> <td> U+1D55F </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#159;</span> </td> </tr><tr id="entity-Not"><td> <code title="">Not;</code> </td> <td> U+02AEC </td> <td> <span class="glyph" title="">&#226;&#171;&#172;</span> </td> </tr><tr id="entity-not"><td> <code title="">not;</code> </td> <td> U+000AC </td> <td> <span class="glyph" title="">&#194;&#172;</span> </td> </tr><tr class="impl" id="entity-not-legacy"><td> <code title="">not</code> </td> <td> U+000AC </td> <td> <span title="">&#194;&#172;</span> </td> </tr><tr id="entity-NotCongruent"><td> <code title="">NotCongruent;</code> </td> <td> U+02262 </td> <td> <span class="glyph" title="">&#226;&#137;&#162;</span> </td> </tr><tr id="entity-NotCupCap"><td> <code title="">NotCupCap;</code> </td> <td> U+0226D </td> <td> <span class="glyph" title="">&#226;&#137;&#173;</span> </td> </tr><tr id="entity-NotDoubleVerticalBar"><td> <code title="">NotDoubleVerticalBar;</code> </td> <td> U+02226 </td> <td> <span class="glyph" title="">&#226;&#136;&#166;</span> </td> </tr><tr id="entity-NotElement"><td> <code title="">NotElement;</code> </td> <td> U+02209 </td> <td> <span class="glyph" title="">&#226;&#136;&#137;</span> </td> </tr><tr id="entity-NotEqual"><td> <code title="">NotEqual;</code> </td> <td> U+02260 </td> <td> <span class="glyph" title="">&#226;&#137;&#160;</span> </td> </tr><tr id="entity-NotEqualTilde"><td> <code title="">NotEqualTilde;</code> </td> <td> U+02242 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#130;&#204;&#184;</span> </td> </tr><tr id="entity-NotExists"><td> <code title="">NotExists;</code> </td> <td> U+02204 </td> <td> <span class="glyph" title="">&#226;&#136;&#132;</span> </td> </tr><tr id="entity-NotGreater"><td> <code title="">NotGreater;</code> </td> <td> U+0226F </td> <td> <span class="glyph" title="">&#226;&#137;&#175;</span> </td> </tr><tr id="entity-NotGreaterEqual"><td> <code title="">NotGreaterEqual;</code> </td> <td> U+02271 </td> <td> <span class="glyph" title="">&#226;&#137;&#177;</span> </td> </tr><tr id="entity-NotGreaterFullEqual"><td> <code title="">NotGreaterFullEqual;</code> </td> <td> U+02267 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#167;&#204;&#184;</span> </td> </tr><tr id="entity-NotGreaterGreater"><td> <code title="">NotGreaterGreater;</code> </td> <td> U+0226B U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#171;&#204;&#184;</span> </td> </tr><tr id="entity-NotGreaterLess"><td> <code title="">NotGreaterLess;</code> </td> <td> U+02279 </td> <td> <span class="glyph" title="">&#226;&#137;&#185;</span> </td> </tr><tr id="entity-NotGreaterSlantEqual"><td> <code title="">NotGreaterSlantEqual;</code> </td> <td> U+02A7E U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#169;&#190;&#204;&#184;</span> </td> </tr><tr id="entity-NotGreaterTilde"><td> <code title="">NotGreaterTilde;</code> </td> <td> U+02275 </td> <td> <span class="glyph" title="">&#226;&#137;&#181;</span> </td> </tr><tr id="entity-NotHumpDownHump"><td> <code title="">NotHumpDownHump;</code> </td> <td> U+0224E U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#142;&#204;&#184;</span> </td> </tr><tr id="entity-NotHumpEqual"><td> <code title="">NotHumpEqual;</code> </td> <td> U+0224F U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#143;&#204;&#184;</span> </td> </tr><tr id="entity-notin"><td> <code title="">notin;</code> </td> <td> U+02209 </td> <td> <span class="glyph" title="">&#226;&#136;&#137;</span> </td> </tr><tr id="entity-notindot"><td> <code title="">notindot;</code> </td> <td> U+022F5 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#139;&#181;&#204;&#184;</span> </td> </tr><tr id="entity-notinE"><td> <code title="">notinE;</code> </td> <td> U+022F9 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#139;&#185;&#204;&#184;</span> </td> </tr><tr id="entity-notinva"><td> <code title="">notinva;</code> </td> <td> U+02209 </td> <td> <span class="glyph" title="">&#226;&#136;&#137;</span> </td> </tr><tr id="entity-notinvb"><td> <code title="">notinvb;</code> </td> <td> U+022F7 </td> <td> <span class="glyph" title="">&#226;&#139;&#183;</span> </td> </tr><tr id="entity-notinvc"><td> <code title="">notinvc;</code> </td> <td> U+022F6 </td> <td> <span class="glyph" title="">&#226;&#139;&#182;</span> </td> </tr><tr id="entity-NotLeftTriangle"><td> <code title="">NotLeftTriangle;</code> </td> <td> U+022EA </td> <td> <span class="glyph" title="">&#226;&#139;&#170;</span> </td> </tr><tr id="entity-NotLeftTriangleBar"><td> <code title="">NotLeftTriangleBar;</code> </td> <td> U+029CF U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#167;&#143;&#204;&#184;</span> </td> </tr><tr id="entity-NotLeftTriangleEqual"><td> <code title="">NotLeftTriangleEqual;</code> </td> <td> U+022EC </td> <td> <span class="glyph" title="">&#226;&#139;&#172;</span> </td> </tr><tr id="entity-NotLess"><td> <code title="">NotLess;</code> </td> <td> U+0226E </td> <td> <span class="glyph" title="">&#226;&#137;&#174;</span> </td> </tr><tr id="entity-NotLessEqual"><td> <code title="">NotLessEqual;</code> </td> <td> U+02270 </td> <td> <span class="glyph" title="">&#226;&#137;&#176;</span> </td> </tr><tr id="entity-NotLessGreater"><td> <code title="">NotLessGreater;</code> </td> <td> U+02278 </td> <td> <span class="glyph" title="">&#226;&#137;&#184;</span> </td> </tr><tr id="entity-NotLessLess"><td> <code title="">NotLessLess;</code> </td> <td> U+0226A U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#170;&#204;&#184;</span> </td> </tr><tr id="entity-NotLessSlantEqual"><td> <code title="">NotLessSlantEqual;</code> </td> <td> U+02A7D U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#169;&#189;&#204;&#184;</span> </td> </tr><tr id="entity-NotLessTilde"><td> <code title="">NotLessTilde;</code> </td> <td> U+02274 </td> <td> <span class="glyph" title="">&#226;&#137;&#180;</span> </td> </tr><tr id="entity-NotNestedGreaterGreater"><td> <code title="">NotNestedGreaterGreater;</code> </td> <td> U+02AA2 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#170;&#162;&#204;&#184;</span> </td> </tr><tr id="entity-NotNestedLessLess"><td> <code title="">NotNestedLessLess;</code> </td> <td> U+02AA1 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#170;&#161;&#204;&#184;</span> </td> </tr><tr id="entity-notni"><td> <code title="">notni;</code> </td> <td> U+0220C </td> <td> <span class="glyph" title="">&#226;&#136;&#140;</span> </td> </tr><tr id="entity-notniva"><td> <code title="">notniva;</code> </td> <td> U+0220C </td> <td> <span class="glyph" title="">&#226;&#136;&#140;</span> </td> </tr><tr id="entity-notnivb"><td> <code title="">notnivb;</code> </td> <td> U+022FE </td> <td> <span class="glyph" title="">&#226;&#139;&#190;</span> </td> </tr><tr id="entity-notnivc"><td> <code title="">notnivc;</code> </td> <td> U+022FD </td> <td> <span class="glyph" title="">&#226;&#139;&#189;</span> </td> </tr><tr id="entity-NotPrecedes"><td> <code title="">NotPrecedes;</code> </td> <td> U+02280 </td> <td> <span class="glyph" title="">&#226;&#138;&#128;</span> </td> </tr><tr id="entity-NotPrecedesEqual"><td> <code title="">NotPrecedesEqual;</code> </td> <td> U+02AAF U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#170;&#175;&#204;&#184;</span> </td> </tr><tr id="entity-NotPrecedesSlantEqual"><td> <code title="">NotPrecedesSlantEqual;</code> </td> <td> U+022E0 </td> <td> <span class="glyph" title="">&#226;&#139;&#160;</span> </td> </tr><tr id="entity-NotReverseElement"><td> <code title="">NotReverseElement;</code> </td> <td> U+0220C </td> <td> <span class="glyph" title="">&#226;&#136;&#140;</span> </td> </tr><tr id="entity-NotRightTriangle"><td> <code title="">NotRightTriangle;</code> </td> <td> U+022EB </td> <td> <span class="glyph" title="">&#226;&#139;&#171;</span> </td> </tr><tr id="entity-NotRightTriangleBar"><td> <code title="">NotRightTriangleBar;</code> </td> <td> U+029D0 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#167;&#144;&#204;&#184;</span> </td> </tr><tr id="entity-NotRightTriangleEqual"><td> <code title="">NotRightTriangleEqual;</code> </td> <td> U+022ED </td> <td> <span class="glyph" title="">&#226;&#139;&#173;</span> </td> </tr><tr id="entity-NotSquareSubset"><td> <code title="">NotSquareSubset;</code> </td> <td> U+0228F U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#138;&#143;&#204;&#184;</span> </td> </tr><tr id="entity-NotSquareSubsetEqual"><td> <code title="">NotSquareSubsetEqual;</code> </td> <td> U+022E2 </td> <td> <span class="glyph" title="">&#226;&#139;&#162;</span> </td> </tr><tr id="entity-NotSquareSuperset"><td> <code title="">NotSquareSuperset;</code> </td> <td> U+02290 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#138;&#144;&#204;&#184;</span> </td> </tr><tr id="entity-NotSquareSupersetEqual"><td> <code title="">NotSquareSupersetEqual;</code> </td> <td> U+022E3 </td> <td> <span class="glyph" title="">&#226;&#139;&#163;</span> </td> </tr><tr id="entity-NotSubset"><td> <code title="">NotSubset;</code> </td> <td> U+02282 U+020D2 </td> <td> <span class="glyph compound" title="">&#226;&#138;&#130;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-NotSubsetEqual"><td> <code title="">NotSubsetEqual;</code> </td> <td> U+02288 </td> <td> <span class="glyph" title="">&#226;&#138;&#136;</span> </td> </tr><tr id="entity-NotSucceeds"><td> <code title="">NotSucceeds;</code> </td> <td> U+02281 </td> <td> <span class="glyph" title="">&#226;&#138;&#129;</span> </td> </tr><tr id="entity-NotSucceedsEqual"><td> <code title="">NotSucceedsEqual;</code> </td> <td> U+02AB0 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#170;&#176;&#204;&#184;</span> </td> </tr><tr id="entity-NotSucceedsSlantEqual"><td> <code title="">NotSucceedsSlantEqual;</code> </td> <td> U+022E1 </td> <td> <span class="glyph" title="">&#226;&#139;&#161;</span> </td> </tr><tr id="entity-NotSucceedsTilde"><td> <code title="">NotSucceedsTilde;</code> </td> <td> U+0227F U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#191;&#204;&#184;</span> </td> </tr><tr id="entity-NotSuperset"><td> <code title="">NotSuperset;</code> </td> <td> U+02283 U+020D2 </td> <td> <span class="glyph compound" title="">&#226;&#138;&#131;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-NotSupersetEqual"><td> <code title="">NotSupersetEqual;</code> </td> <td> U+02289 </td> <td> <span class="glyph" title="">&#226;&#138;&#137;</span> </td> </tr><tr id="entity-NotTilde"><td> <code title="">NotTilde;</code> </td> <td> U+02241 </td> <td> <span class="glyph" title="">&#226;&#137;&#129;</span> </td> </tr><tr id="entity-NotTildeEqual"><td> <code title="">NotTildeEqual;</code> </td> <td> U+02244 </td> <td> <span class="glyph" title="">&#226;&#137;&#132;</span> </td> </tr><tr id="entity-NotTildeFullEqual"><td> <code title="">NotTildeFullEqual;</code> </td> <td> U+02247 </td> <td> <span class="glyph" title="">&#226;&#137;&#135;</span> </td> </tr><tr id="entity-NotTildeTilde"><td> <code title="">NotTildeTilde;</code> </td> <td> U+02249 </td> <td> <span class="glyph" title="">&#226;&#137;&#137;</span> </td> </tr><tr id="entity-NotVerticalBar"><td> <code title="">NotVerticalBar;</code> </td> <td> U+02224 </td> <td> <span class="glyph" title="">&#226;&#136;&#164;</span> </td> </tr><tr id="entity-npar"><td> <code title="">npar;</code> </td> <td> U+02226 </td> <td> <span class="glyph" title="">&#226;&#136;&#166;</span> </td> </tr><tr id="entity-nparallel"><td> <code title="">nparallel;</code> </td> <td> U+02226 </td> <td> <span class="glyph" title="">&#226;&#136;&#166;</span> </td> </tr><tr id="entity-nparsl"><td> <code title="">nparsl;</code> </td> <td> U+02AFD U+020E5 </td> <td> <span class="glyph compound" title="">&#226;&#171;&#189;&#226;&#131;&#165;</span> </td> </tr><tr id="entity-npart"><td> <code title="">npart;</code> </td> <td> U+02202 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#136;&#130;&#204;&#184;</span> </td> </tr><tr id="entity-npolint"><td> <code title="">npolint;</code> </td> <td> U+02A14 </td> <td> <span class="glyph" title="">&#226;&#168;&#148;</span> </td> </tr><tr id="entity-npr"><td> <code title="">npr;</code> </td> <td> U+02280 </td> <td> <span class="glyph" title="">&#226;&#138;&#128;</span> </td> </tr><tr id="entity-nprcue"><td> <code title="">nprcue;</code> </td> <td> U+022E0 </td> <td> <span class="glyph" title="">&#226;&#139;&#160;</span> </td> </tr><tr id="entity-npre"><td> <code title="">npre;</code> </td> <td> U+02AAF U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#170;&#175;&#204;&#184;</span> </td> </tr><tr id="entity-nprec"><td> <code title="">nprec;</code> </td> <td> U+02280 </td> <td> <span class="glyph" title="">&#226;&#138;&#128;</span> </td> </tr><tr id="entity-npreceq"><td> <code title="">npreceq;</code> </td> <td> U+02AAF U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#170;&#175;&#204;&#184;</span> </td> </tr><tr id="entity-nrArr"><td> <code title="">nrArr;</code> </td> <td> U+021CF </td> <td> <span class="glyph" title="">&#226;&#135;&#143;</span> </td> </tr><tr id="entity-nrarr"><td> <code title="">nrarr;</code> </td> <td> U+0219B </td> <td> <span class="glyph" title="">&#226;&#134;&#155;</span> </td> </tr><tr id="entity-nrarrc"><td> <code title="">nrarrc;</code> </td> <td> U+02933 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#164;&#179;&#204;&#184;</span> </td> </tr><tr id="entity-nrarrw"><td> <code title="">nrarrw;</code> </td> <td> U+0219D U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#134;&#157;&#204;&#184;</span> </td> </tr><tr id="entity-nRightarrow"><td> <code title="">nRightarrow;</code> </td> <td> U+021CF </td> <td> <span class="glyph" title="">&#226;&#135;&#143;</span> </td> </tr><tr id="entity-nrightarrow"><td> <code title="">nrightarrow;</code> </td> <td> U+0219B </td> <td> <span class="glyph" title="">&#226;&#134;&#155;</span> </td> </tr><tr id="entity-nrtri"><td> <code title="">nrtri;</code> </td> <td> U+022EB </td> <td> <span class="glyph" title="">&#226;&#139;&#171;</span> </td> </tr><tr id="entity-nrtrie"><td> <code title="">nrtrie;</code> </td> <td> U+022ED </td> <td> <span class="glyph" title="">&#226;&#139;&#173;</span> </td> </tr><tr id="entity-nsc"><td> <code title="">nsc;</code> </td> <td> U+02281 </td> <td> <span class="glyph" title="">&#226;&#138;&#129;</span> </td> </tr><tr id="entity-nsccue"><td> <code title="">nsccue;</code> </td> <td> U+022E1 </td> <td> <span class="glyph" title="">&#226;&#139;&#161;</span> </td> </tr><tr id="entity-nsce"><td> <code title="">nsce;</code> </td> <td> U+02AB0 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#170;&#176;&#204;&#184;</span> </td> </tr><tr id="entity-Nscr"><td> <code title="">Nscr;</code> </td> <td> U+1D4A9 </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#169;</span> </td> </tr><tr id="entity-nscr"><td> <code title="">nscr;</code> </td> <td> U+1D4C3 </td> <td> <span class="glyph" title="">&#240;&#157;&#147;&#131;</span> </td> </tr><tr id="entity-nshortmid"><td> <code title="">nshortmid;</code> </td> <td> U+02224 </td> <td> <span class="glyph" title="">&#226;&#136;&#164;</span> </td> </tr><tr id="entity-nshortparallel"><td> <code title="">nshortparallel;</code> </td> <td> U+02226 </td> <td> <span class="glyph" title="">&#226;&#136;&#166;</span> </td> </tr><tr id="entity-nsim"><td> <code title="">nsim;</code> </td> <td> U+02241 </td> <td> <span class="glyph" title="">&#226;&#137;&#129;</span> </td> </tr><tr id="entity-nsime"><td> <code title="">nsime;</code> </td> <td> U+02244 </td> <td> <span class="glyph" title="">&#226;&#137;&#132;</span> </td> </tr><tr id="entity-nsimeq"><td> <code title="">nsimeq;</code> </td> <td> U+02244 </td> <td> <span class="glyph" title="">&#226;&#137;&#132;</span> </td> </tr><tr id="entity-nsmid"><td> <code title="">nsmid;</code> </td> <td> U+02224 </td> <td> <span class="glyph" title="">&#226;&#136;&#164;</span> </td> </tr><tr id="entity-nspar"><td> <code title="">nspar;</code> </td> <td> U+02226 </td> <td> <span class="glyph" title="">&#226;&#136;&#166;</span> </td> </tr><tr id="entity-nsqsube"><td> <code title="">nsqsube;</code> </td> <td> U+022E2 </td> <td> <span class="glyph" title="">&#226;&#139;&#162;</span> </td> </tr><tr id="entity-nsqsupe"><td> <code title="">nsqsupe;</code> </td> <td> U+022E3 </td> <td> <span class="glyph" title="">&#226;&#139;&#163;</span> </td> </tr><tr id="entity-nsub"><td> <code title="">nsub;</code> </td> <td> U+02284 </td> <td> <span class="glyph" title="">&#226;&#138;&#132;</span> </td> </tr><tr id="entity-nsubE"><td> <code title="">nsubE;</code> </td> <td> U+02AC5 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#171;&#133;&#204;&#184;</span> </td> </tr><tr id="entity-nsube"><td> <code title="">nsube;</code> </td> <td> U+02288 </td> <td> <span class="glyph" title="">&#226;&#138;&#136;</span> </td> </tr><tr id="entity-nsubset"><td> <code title="">nsubset;</code> </td> <td> U+02282 U+020D2 </td> <td> <span class="glyph compound" title="">&#226;&#138;&#130;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-nsubseteq"><td> <code title="">nsubseteq;</code> </td> <td> U+02288 </td> <td> <span class="glyph" title="">&#226;&#138;&#136;</span> </td> </tr><tr id="entity-nsubseteqq"><td> <code title="">nsubseteqq;</code> </td> <td> U+02AC5 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#171;&#133;&#204;&#184;</span> </td> </tr><tr id="entity-nsucc"><td> <code title="">nsucc;</code> </td> <td> U+02281 </td> <td> <span class="glyph" title="">&#226;&#138;&#129;</span> </td> </tr><tr id="entity-nsucceq"><td> <code title="">nsucceq;</code> </td> <td> U+02AB0 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#170;&#176;&#204;&#184;</span> </td> </tr><tr id="entity-nsup"><td> <code title="">nsup;</code> </td> <td> U+02285 </td> <td> <span class="glyph" title="">&#226;&#138;&#133;</span> </td> </tr><tr id="entity-nsupE"><td> <code title="">nsupE;</code> </td> <td> U+02AC6 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#171;&#134;&#204;&#184;</span> </td> </tr><tr id="entity-nsupe"><td> <code title="">nsupe;</code> </td> <td> U+02289 </td> <td> <span class="glyph" title="">&#226;&#138;&#137;</span> </td> </tr><tr id="entity-nsupset"><td> <code title="">nsupset;</code> </td> <td> U+02283 U+020D2 </td> <td> <span class="glyph compound" title="">&#226;&#138;&#131;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-nsupseteq"><td> <code title="">nsupseteq;</code> </td> <td> U+02289 </td> <td> <span class="glyph" title="">&#226;&#138;&#137;</span> </td> </tr><tr id="entity-nsupseteqq"><td> <code title="">nsupseteqq;</code> </td> <td> U+02AC6 U+00338 </td> <td> <span class="glyph compound" title="">&#226;&#171;&#134;&#204;&#184;</span> </td> </tr><tr id="entity-ntgl"><td> <code title="">ntgl;</code> </td> <td> U+02279 </td> <td> <span class="glyph" title="">&#226;&#137;&#185;</span> </td> </tr><tr id="entity-Ntilde"><td> <code title="">Ntilde;</code> </td> <td> U+000D1 </td> <td> <span class="glyph" title="">&#195;&#145;</span> </td> </tr><tr class="impl" id="entity-Ntilde-legacy"><td> <code title="">Ntilde</code> </td> <td> U+000D1 </td> <td> <span title="">&#195;&#145;</span> </td> </tr><tr id="entity-ntilde"><td> <code title="">ntilde;</code> </td> <td> U+000F1 </td> <td> <span class="glyph" title="">&#195;&#177;</span> </td> </tr><tr class="impl" id="entity-ntilde-legacy"><td> <code title="">ntilde</code> </td> <td> U+000F1 </td> <td> <span title="">&#195;&#177;</span> </td> </tr><tr id="entity-ntlg"><td> <code title="">ntlg;</code> </td> <td> U+02278 </td> <td> <span class="glyph" title="">&#226;&#137;&#184;</span> </td> </tr><tr id="entity-ntriangleleft"><td> <code title="">ntriangleleft;</code> </td> <td> U+022EA </td> <td> <span class="glyph" title="">&#226;&#139;&#170;</span> </td> </tr><tr id="entity-ntrianglelefteq"><td> <code title="">ntrianglelefteq;</code> </td> <td> U+022EC </td> <td> <span class="glyph" title="">&#226;&#139;&#172;</span> </td> </tr><tr id="entity-ntriangleright"><td> <code title="">ntriangleright;</code> </td> <td> U+022EB </td> <td> <span class="glyph" title="">&#226;&#139;&#171;</span> </td> </tr><tr id="entity-ntrianglerighteq"><td> <code title="">ntrianglerighteq;</code> </td> <td> U+022ED </td> <td> <span class="glyph" title="">&#226;&#139;&#173;</span> </td> </tr><tr id="entity-Nu"><td> <code title="">Nu;</code> </td> <td> U+0039D </td> <td> <span class="glyph" title="">&#206;&#157;</span> </td> </tr><tr id="entity-nu"><td> <code title="">nu;</code> </td> <td> U+003BD </td> <td> <span class="glyph" title="">&#206;&#189;</span> </td> </tr><tr id="entity-num"><td> <code title="">num;</code> </td> <td> U+00023 </td> <td> <span class="glyph" title="">#</span> </td> </tr><tr id="entity-numero"><td> <code title="">numero;</code> </td> <td> U+02116 </td> <td> <span class="glyph" title="">&#226;&#132;&#150;</span> </td> </tr><tr id="entity-numsp"><td> <code title="">numsp;</code> </td> <td> U+02007 </td> <td> <span class="glyph" title="">&#226;&#128;&#135;</span> </td> </tr><tr id="entity-nvap"><td> <code title="">nvap;</code> </td> <td> U+0224D U+020D2 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#141;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-nVDash"><td> <code title="">nVDash;</code> </td> <td> U+022AF </td> <td> <span class="glyph" title="">&#226;&#138;&#175;</span> </td> </tr><tr id="entity-nVdash"><td> <code title="">nVdash;</code> </td> <td> U+022AE </td> <td> <span class="glyph" title="">&#226;&#138;&#174;</span> </td> </tr><tr id="entity-nvDash"><td> <code title="">nvDash;</code> </td> <td> U+022AD </td> <td> <span class="glyph" title="">&#226;&#138;&#173;</span> </td> </tr><tr id="entity-nvdash"><td> <code title="">nvdash;</code> </td> <td> U+022AC </td> <td> <span class="glyph" title="">&#226;&#138;&#172;</span> </td> </tr><tr id="entity-nvge"><td> <code title="">nvge;</code> </td> <td> U+02265 U+020D2 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#165;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-nvgt"><td> <code title="">nvgt;</code> </td> <td> U+0003E U+020D2 </td> <td> <span class="glyph compound" title="">&gt;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-nvHarr"><td> <code title="">nvHarr;</code> </td> <td> U+02904 </td> <td> <span class="glyph" title="">&#226;&#164;&#132;</span> </td> </tr><tr id="entity-nvinfin"><td> <code title="">nvinfin;</code> </td> <td> U+029DE </td> <td> <span class="glyph" title="">&#226;&#167;&#158;</span> </td> </tr><tr id="entity-nvlArr"><td> <code title="">nvlArr;</code> </td> <td> U+02902 </td> <td> <span class="glyph" title="">&#226;&#164;&#130;</span> </td> </tr><tr id="entity-nvle"><td> <code title="">nvle;</code> </td> <td> U+02264 U+020D2 </td> <td> <span class="glyph compound" title="">&#226;&#137;&#164;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-nvlt"><td> <code title="">nvlt;</code> </td> <td> U+0003C U+020D2 </td> <td> <span class="glyph compound" title="">&lt;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-nvltrie"><td> <code title="">nvltrie;</code> </td> <td> U+022B4 U+020D2 </td> <td> <span class="glyph compound" title="">&#226;&#138;&#180;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-nvrArr"><td> <code title="">nvrArr;</code> </td> <td> U+02903 </td> <td> <span class="glyph" title="">&#226;&#164;&#131;</span> </td> </tr><tr id="entity-nvrtrie"><td> <code title="">nvrtrie;</code> </td> <td> U+022B5 U+020D2 </td> <td> <span class="glyph compound" title="">&#226;&#138;&#181;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-nvsim"><td> <code title="">nvsim;</code> </td> <td> U+0223C U+020D2 </td> <td> <span class="glyph compound" title="">&#226;&#136;&#188;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-nwarhk"><td> <code title="">nwarhk;</code> </td> <td> U+02923 </td> <td> <span class="glyph" title="">&#226;&#164;&#163;</span> </td> </tr><tr id="entity-nwArr"><td> <code title="">nwArr;</code> </td> <td> U+021D6 </td> <td> <span class="glyph" title="">&#226;&#135;&#150;</span> </td> </tr><tr id="entity-nwarr"><td> <code title="">nwarr;</code> </td> <td> U+02196 </td> <td> <span class="glyph" title="">&#226;&#134;&#150;</span> </td> </tr><tr id="entity-nwarrow"><td> <code title="">nwarrow;</code> </td> <td> U+02196 </td> <td> <span class="glyph" title="">&#226;&#134;&#150;</span> </td> </tr><tr id="entity-nwnear"><td> <code title="">nwnear;</code> </td> <td> U+02927 </td> <td> <span class="glyph" title="">&#226;&#164;&#167;</span> </td> </tr><tr id="entity-Oacute"><td> <code title="">Oacute;</code> </td> <td> U+000D3 </td> <td> <span class="glyph" title="">&#195;&#147;</span> </td> </tr><tr class="impl" id="entity-Oacute-legacy"><td> <code title="">Oacute</code> </td> <td> U+000D3 </td> <td> <span title="">&#195;&#147;</span> </td> </tr><tr id="entity-oacute"><td> <code title="">oacute;</code> </td> <td> U+000F3 </td> <td> <span class="glyph" title="">&#195;&#179;</span> </td> </tr><tr class="impl" id="entity-oacute-legacy"><td> <code title="">oacute</code> </td> <td> U+000F3 </td> <td> <span title="">&#195;&#179;</span> </td> </tr><tr id="entity-oast"><td> <code title="">oast;</code> </td> <td> U+0229B </td> <td> <span class="glyph" title="">&#226;&#138;&#155;</span> </td> </tr><tr id="entity-ocir"><td> <code title="">ocir;</code> </td> <td> U+0229A </td> <td> <span class="glyph" title="">&#226;&#138;&#154;</span> </td> </tr><tr id="entity-Ocirc"><td> <code title="">Ocirc;</code> </td> <td> U+000D4 </td> <td> <span class="glyph" title="">&#195;&#148;</span> </td> </tr><tr class="impl" id="entity-Ocirc-legacy"><td> <code title="">Ocirc</code> </td> <td> U+000D4 </td> <td> <span title="">&#195;&#148;</span> </td> </tr><tr id="entity-ocirc"><td> <code title="">ocirc;</code> </td> <td> U+000F4 </td> <td> <span class="glyph" title="">&#195;&#180;</span> </td> </tr><tr class="impl" id="entity-ocirc-legacy"><td> <code title="">ocirc</code> </td> <td> U+000F4 </td> <td> <span title="">&#195;&#180;</span> </td> </tr><tr id="entity-Ocy"><td> <code title="">Ocy;</code> </td> <td> U+0041E </td> <td> <span class="glyph" title="">&#208;&#158;</span> </td> </tr><tr id="entity-ocy"><td> <code title="">ocy;</code> </td> <td> U+0043E </td> <td> <span class="glyph" title="">&#208;&#190;</span> </td> </tr><tr id="entity-odash"><td> <code title="">odash;</code> </td> <td> U+0229D </td> <td> <span class="glyph" title="">&#226;&#138;&#157;</span> </td> </tr><tr id="entity-Odblac"><td> <code title="">Odblac;</code> </td> <td> U+00150 </td> <td> <span class="glyph" title="">&#197;&#144;</span> </td> </tr><tr id="entity-odblac"><td> <code title="">odblac;</code> </td> <td> U+00151 </td> <td> <span class="glyph" title="">&#197;&#145;</span> </td> </tr><tr id="entity-odiv"><td> <code title="">odiv;</code> </td> <td> U+02A38 </td> <td> <span class="glyph" title="">&#226;&#168;&#184;</span> </td> </tr><tr id="entity-odot"><td> <code title="">odot;</code> </td> <td> U+02299 </td> <td> <span class="glyph" title="">&#226;&#138;&#153;</span> </td> </tr><tr id="entity-odsold"><td> <code title="">odsold;</code> </td> <td> U+029BC </td> <td> <span class="glyph" title="">&#226;&#166;&#188;</span> </td> </tr><tr id="entity-OElig"><td> <code title="">OElig;</code> </td> <td> U+00152 </td> <td> <span class="glyph" title="">&#197;&#146;</span> </td> </tr><tr id="entity-oelig"><td> <code title="">oelig;</code> </td> <td> U+00153 </td> <td> <span class="glyph" title="">&#197;&#147;</span> </td> </tr><tr id="entity-ofcir"><td> <code title="">ofcir;</code> </td> <td> U+029BF </td> <td> <span class="glyph" title="">&#226;&#166;&#191;</span> </td> </tr><tr id="entity-Ofr"><td> <code title="">Ofr;</code> </td> <td> U+1D512 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#146;</span> </td> </tr><tr id="entity-ofr"><td> <code title="">ofr;</code> </td> <td> U+1D52C </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#172;</span> </td> </tr><tr id="entity-ogon"><td> <code title="">ogon;</code> </td> <td> U+002DB </td> <td> <span class="glyph" title="">&#203;&#155;</span> </td> </tr><tr id="entity-Ograve"><td> <code title="">Ograve;</code> </td> <td> U+000D2 </td> <td> <span class="glyph" title="">&#195;&#146;</span> </td> </tr><tr class="impl" id="entity-Ograve-legacy"><td> <code title="">Ograve</code> </td> <td> U+000D2 </td> <td> <span title="">&#195;&#146;</span> </td> </tr><tr id="entity-ograve"><td> <code title="">ograve;</code> </td> <td> U+000F2 </td> <td> <span class="glyph" title="">&#195;&#178;</span> </td> </tr><tr class="impl" id="entity-ograve-legacy"><td> <code title="">ograve</code> </td> <td> U+000F2 </td> <td> <span title="">&#195;&#178;</span> </td> </tr><tr id="entity-ogt"><td> <code title="">ogt;</code> </td> <td> U+029C1 </td> <td> <span class="glyph" title="">&#226;&#167;&#129;</span> </td> </tr><tr id="entity-ohbar"><td> <code title="">ohbar;</code> </td> <td> U+029B5 </td> <td> <span class="glyph" title="">&#226;&#166;&#181;</span> </td> </tr><tr id="entity-ohm"><td> <code title="">ohm;</code> </td> <td> U+003A9 </td> <td> <span class="glyph" title="">&#206;&#169;</span> </td> </tr><tr id="entity-oint"><td> <code title="">oint;</code> </td> <td> U+0222E </td> <td> <span class="glyph" title="">&#226;&#136;&#174;</span> </td> </tr><tr id="entity-olarr"><td> <code title="">olarr;</code> </td> <td> U+021BA </td> <td> <span class="glyph" title="">&#226;&#134;&#186;</span> </td> </tr><tr id="entity-olcir"><td> <code title="">olcir;</code> </td> <td> U+029BE </td> <td> <span class="glyph" title="">&#226;&#166;&#190;</span> </td> </tr><tr id="entity-olcross"><td> <code title="">olcross;</code> </td> <td> U+029BB </td> <td> <span class="glyph" title="">&#226;&#166;&#187;</span> </td> </tr><tr id="entity-oline"><td> <code title="">oline;</code> </td> <td> U+0203E </td> <td> <span class="glyph" title="">&#226;&#128;&#190;</span> </td> </tr><tr id="entity-olt"><td> <code title="">olt;</code> </td> <td> U+029C0 </td> <td> <span class="glyph" title="">&#226;&#167;&#128;</span> </td> </tr><tr id="entity-Omacr"><td> <code title="">Omacr;</code> </td> <td> U+0014C </td> <td> <span class="glyph" title="">&#197;&#140;</span> </td> </tr><tr id="entity-omacr"><td> <code title="">omacr;</code> </td> <td> U+0014D </td> <td> <span class="glyph" title="">&#197;&#141;</span> </td> </tr><tr id="entity-Omega"><td> <code title="">Omega;</code> </td> <td> U+003A9 </td> <td> <span class="glyph" title="">&#206;&#169;</span> </td> </tr><tr id="entity-omega"><td> <code title="">omega;</code> </td> <td> U+003C9 </td> <td> <span class="glyph" title="">&#207;&#137;</span> </td> </tr><tr id="entity-Omicron"><td> <code title="">Omicron;</code> </td> <td> U+0039F </td> <td> <span class="glyph" title="">&#206;&#159;</span> </td> </tr><tr id="entity-omicron"><td> <code title="">omicron;</code> </td> <td> U+003BF </td> <td> <span class="glyph" title="">&#206;&#191;</span> </td> </tr><tr id="entity-omid"><td> <code title="">omid;</code> </td> <td> U+029B6 </td> <td> <span class="glyph" title="">&#226;&#166;&#182;</span> </td> </tr><tr id="entity-ominus"><td> <code title="">ominus;</code> </td> <td> U+02296 </td> <td> <span class="glyph" title="">&#226;&#138;&#150;</span> </td> </tr><tr id="entity-Oopf"><td> <code title="">Oopf;</code> </td> <td> U+1D546 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#134;</span> </td> </tr><tr id="entity-oopf"><td> <code title="">oopf;</code> </td> <td> U+1D560 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#160;</span> </td> </tr><tr id="entity-opar"><td> <code title="">opar;</code> </td> <td> U+029B7 </td> <td> <span class="glyph" title="">&#226;&#166;&#183;</span> </td> </tr><tr id="entity-OpenCurlyDoubleQuote"><td> <code title="">OpenCurlyDoubleQuote;</code> </td> <td> U+0201C </td> <td> <span class="glyph" title="">&#226;&#128;&#156;</span> </td> </tr><tr id="entity-OpenCurlyQuote"><td> <code title="">OpenCurlyQuote;</code> </td> <td> U+02018 </td> <td> <span class="glyph" title="">&#226;&#128;&#152;</span> </td> </tr><tr id="entity-operp"><td> <code title="">operp;</code> </td> <td> U+029B9 </td> <td> <span class="glyph" title="">&#226;&#166;&#185;</span> </td> </tr><tr id="entity-oplus"><td> <code title="">oplus;</code> </td> <td> U+02295 </td> <td> <span class="glyph" title="">&#226;&#138;&#149;</span> </td> </tr><tr id="entity-Or"><td> <code title="">Or;</code> </td> <td> U+02A54 </td> <td> <span class="glyph" title="">&#226;&#169;&#148;</span> </td> </tr><tr id="entity-or"><td> <code title="">or;</code> </td> <td> U+02228 </td> <td> <span class="glyph" title="">&#226;&#136;&#168;</span> </td> </tr><tr id="entity-orarr"><td> <code title="">orarr;</code> </td> <td> U+021BB </td> <td> <span class="glyph" title="">&#226;&#134;&#187;</span> </td> </tr><tr id="entity-ord"><td> <code title="">ord;</code> </td> <td> U+02A5D </td> <td> <span class="glyph" title="">&#226;&#169;&#157;</span> </td> </tr><tr id="entity-order"><td> <code title="">order;</code> </td> <td> U+02134 </td> <td> <span class="glyph" title="">&#226;&#132;&#180;</span> </td> </tr><tr id="entity-orderof"><td> <code title="">orderof;</code> </td> <td> U+02134 </td> <td> <span class="glyph" title="">&#226;&#132;&#180;</span> </td> </tr><tr id="entity-ordf"><td> <code title="">ordf;</code> </td> <td> U+000AA </td> <td> <span class="glyph" title="">&#194;&#170;</span> </td> </tr><tr class="impl" id="entity-ordf-legacy"><td> <code title="">ordf</code> </td> <td> U+000AA </td> <td> <span title="">&#194;&#170;</span> </td> </tr><tr id="entity-ordm"><td> <code title="">ordm;</code> </td> <td> U+000BA </td> <td> <span class="glyph" title="">&#194;&#186;</span> </td> </tr><tr class="impl" id="entity-ordm-legacy"><td> <code title="">ordm</code> </td> <td> U+000BA </td> <td> <span title="">&#194;&#186;</span> </td> </tr><tr id="entity-origof"><td> <code title="">origof;</code> </td> <td> U+022B6 </td> <td> <span class="glyph" title="">&#226;&#138;&#182;</span> </td> </tr><tr id="entity-oror"><td> <code title="">oror;</code> </td> <td> U+02A56 </td> <td> <span class="glyph" title="">&#226;&#169;&#150;</span> </td> </tr><tr id="entity-orslope"><td> <code title="">orslope;</code> </td> <td> U+02A57 </td> <td> <span class="glyph" title="">&#226;&#169;&#151;</span> </td> </tr><tr id="entity-orv"><td> <code title="">orv;</code> </td> <td> U+02A5B </td> <td> <span class="glyph" title="">&#226;&#169;&#155;</span> </td> </tr><tr id="entity-oS"><td> <code title="">oS;</code> </td> <td> U+024C8 </td> <td> <span class="glyph" title="">&#226;&#147;&#136;</span> </td> </tr><tr id="entity-Oscr"><td> <code title="">Oscr;</code> </td> <td> U+1D4AA </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#170;</span> </td> </tr><tr id="entity-oscr"><td> <code title="">oscr;</code> </td> <td> U+02134 </td> <td> <span class="glyph" title="">&#226;&#132;&#180;</span> </td> </tr><tr id="entity-Oslash"><td> <code title="">Oslash;</code> </td> <td> U+000D8 </td> <td> <span class="glyph" title="">&#195;&#152;</span> </td> </tr><tr class="impl" id="entity-Oslash-legacy"><td> <code title="">Oslash</code> </td> <td> U+000D8 </td> <td> <span title="">&#195;&#152;</span> </td> </tr><tr id="entity-oslash"><td> <code title="">oslash;</code> </td> <td> U+000F8 </td> <td> <span class="glyph" title="">&#195;&#184;</span> </td> </tr><tr class="impl" id="entity-oslash-legacy"><td> <code title="">oslash</code> </td> <td> U+000F8 </td> <td> <span title="">&#195;&#184;</span> </td> </tr><tr id="entity-osol"><td> <code title="">osol;</code> </td> <td> U+02298 </td> <td> <span class="glyph" title="">&#226;&#138;&#152;</span> </td> </tr><tr id="entity-Otilde"><td> <code title="">Otilde;</code> </td> <td> U+000D5 </td> <td> <span class="glyph" title="">&#195;&#149;</span> </td> </tr><tr class="impl" id="entity-Otilde-legacy"><td> <code title="">Otilde</code> </td> <td> U+000D5 </td> <td> <span title="">&#195;&#149;</span> </td> </tr><tr id="entity-otilde"><td> <code title="">otilde;</code> </td> <td> U+000F5 </td> <td> <span class="glyph" title="">&#195;&#181;</span> </td> </tr><tr class="impl" id="entity-otilde-legacy"><td> <code title="">otilde</code> </td> <td> U+000F5 </td> <td> <span title="">&#195;&#181;</span> </td> </tr><tr id="entity-Otimes"><td> <code title="">Otimes;</code> </td> <td> U+02A37 </td> <td> <span class="glyph" title="">&#226;&#168;&#183;</span> </td> </tr><tr id="entity-otimes"><td> <code title="">otimes;</code> </td> <td> U+02297 </td> <td> <span class="glyph" title="">&#226;&#138;&#151;</span> </td> </tr><tr id="entity-otimesas"><td> <code title="">otimesas;</code> </td> <td> U+02A36 </td> <td> <span class="glyph" title="">&#226;&#168;&#182;</span> </td> </tr><tr id="entity-Ouml"><td> <code title="">Ouml;</code> </td> <td> U+000D6 </td> <td> <span class="glyph" title="">&#195;&#150;</span> </td> </tr><tr class="impl" id="entity-Ouml-legacy"><td> <code title="">Ouml</code> </td> <td> U+000D6 </td> <td> <span title="">&#195;&#150;</span> </td> </tr><tr id="entity-ouml"><td> <code title="">ouml;</code> </td> <td> U+000F6 </td> <td> <span class="glyph" title="">&#195;&#182;</span> </td> </tr><tr class="impl" id="entity-ouml-legacy"><td> <code title="">ouml</code> </td> <td> U+000F6 </td> <td> <span title="">&#195;&#182;</span> </td> </tr><tr id="entity-ovbar"><td> <code title="">ovbar;</code> </td> <td> U+0233D </td> <td> <span class="glyph" title="">&#226;&#140;&#189;</span> </td> </tr><tr id="entity-OverBar"><td> <code title="">OverBar;</code> </td> <td> U+0203E </td> <td> <span class="glyph" title="">&#226;&#128;&#190;</span> </td> </tr><tr id="entity-OverBrace"><td> <code title="">OverBrace;</code> </td> <td> U+023DE </td> <td> <span class="glyph" title="">&#226;&#143;&#158;</span> </td> </tr><tr id="entity-OverBracket"><td> <code title="">OverBracket;</code> </td> <td> U+023B4 </td> <td> <span class="glyph" title="">&#226;&#142;&#180;</span> </td> </tr><tr id="entity-OverParenthesis"><td> <code title="">OverParenthesis;</code> </td> <td> U+023DC </td> <td> <span class="glyph" title="">&#226;&#143;&#156;</span> </td> </tr><tr id="entity-par"><td> <code title="">par;</code> </td> <td> U+02225 </td> <td> <span class="glyph" title="">&#226;&#136;&#165;</span> </td> </tr><tr id="entity-para"><td> <code title="">para;</code> </td> <td> U+000B6 </td> <td> <span class="glyph" title="">&#194;&#182;</span> </td> </tr><tr class="impl" id="entity-para-legacy"><td> <code title="">para</code> </td> <td> U+000B6 </td> <td> <span title="">&#194;&#182;</span> </td> </tr><tr id="entity-parallel"><td> <code title="">parallel;</code> </td> <td> U+02225 </td> <td> <span class="glyph" title="">&#226;&#136;&#165;</span> </td> </tr><tr id="entity-parsim"><td> <code title="">parsim;</code> </td> <td> U+02AF3 </td> <td> <span class="glyph" title="">&#226;&#171;&#179;</span> </td> </tr><tr id="entity-parsl"><td> <code title="">parsl;</code> </td> <td> U+02AFD </td> <td> <span class="glyph" title="">&#226;&#171;&#189;</span> </td> </tr><tr id="entity-part"><td> <code title="">part;</code> </td> <td> U+02202 </td> <td> <span class="glyph" title="">&#226;&#136;&#130;</span> </td> </tr><tr id="entity-PartialD"><td> <code title="">PartialD;</code> </td> <td> U+02202 </td> <td> <span class="glyph" title="">&#226;&#136;&#130;</span> </td> </tr><tr id="entity-Pcy"><td> <code title="">Pcy;</code> </td> <td> U+0041F </td> <td> <span class="glyph" title="">&#208;&#159;</span> </td> </tr><tr id="entity-pcy"><td> <code title="">pcy;</code> </td> <td> U+0043F </td> <td> <span class="glyph" title="">&#208;&#191;</span> </td> </tr><tr id="entity-percnt"><td> <code title="">percnt;</code> </td> <td> U+00025 </td> <td> <span class="glyph" title="">%</span> </td> </tr><tr id="entity-period"><td> <code title="">period;</code> </td> <td> U+0002E </td> <td> <span class="glyph" title="">.</span> </td> </tr><tr id="entity-permil"><td> <code title="">permil;</code> </td> <td> U+02030 </td> <td> <span class="glyph" title="">&#226;&#128;&#176;</span> </td> </tr><tr id="entity-perp"><td> <code title="">perp;</code> </td> <td> U+022A5 </td> <td> <span class="glyph" title="">&#226;&#138;&#165;</span> </td> </tr><tr id="entity-pertenk"><td> <code title="">pertenk;</code> </td> <td> U+02031 </td> <td> <span class="glyph" title="">&#226;&#128;&#177;</span> </td> </tr><tr id="entity-Pfr"><td> <code title="">Pfr;</code> </td> <td> U+1D513 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#147;</span> </td> </tr><tr id="entity-pfr"><td> <code title="">pfr;</code> </td> <td> U+1D52D </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#173;</span> </td> </tr><tr id="entity-Phi"><td> <code title="">Phi;</code> </td> <td> U+003A6 </td> <td> <span class="glyph" title="">&#206;&#166;</span> </td> </tr><tr id="entity-phi"><td> <code title="">phi;</code> </td> <td> U+003C6 </td> <td> <span class="glyph" title="">&#207;&#134;</span> </td> </tr><tr id="entity-phiv"><td> <code title="">phiv;</code> </td> <td> U+003D5 </td> <td> <span class="glyph" title="">&#207;&#149;</span> </td> </tr><tr id="entity-phmmat"><td> <code title="">phmmat;</code> </td> <td> U+02133 </td> <td> <span class="glyph" title="">&#226;&#132;&#179;</span> </td> </tr><tr id="entity-phone"><td> <code title="">phone;</code> </td> <td> U+0260E </td> <td> <span class="glyph" title="">&#226;&#152;&#142;</span> </td> </tr><tr id="entity-Pi"><td> <code title="">Pi;</code> </td> <td> U+003A0 </td> <td> <span class="glyph" title="">&#206;&#160;</span> </td> </tr><tr id="entity-pi"><td> <code title="">pi;</code> </td> <td> U+003C0 </td> <td> <span class="glyph" title="">&#207;&#128;</span> </td> </tr><tr id="entity-pitchfork"><td> <code title="">pitchfork;</code> </td> <td> U+022D4 </td> <td> <span class="glyph" title="">&#226;&#139;&#148;</span> </td> </tr><tr id="entity-piv"><td> <code title="">piv;</code> </td> <td> U+003D6 </td> <td> <span class="glyph" title="">&#207;&#150;</span> </td> </tr><tr id="entity-planck"><td> <code title="">planck;</code> </td> <td> U+0210F </td> <td> <span class="glyph" title="">&#226;&#132;&#143;</span> </td> </tr><tr id="entity-planckh"><td> <code title="">planckh;</code> </td> <td> U+0210E </td> <td> <span class="glyph" title="">&#226;&#132;&#142;</span> </td> </tr><tr id="entity-plankv"><td> <code title="">plankv;</code> </td> <td> U+0210F </td> <td> <span class="glyph" title="">&#226;&#132;&#143;</span> </td> </tr><tr id="entity-plus"><td> <code title="">plus;</code> </td> <td> U+0002B </td> <td> <span class="glyph" title="">+</span> </td> </tr><tr id="entity-plusacir"><td> <code title="">plusacir;</code> </td> <td> U+02A23 </td> <td> <span class="glyph" title="">&#226;&#168;&#163;</span> </td> </tr><tr id="entity-plusb"><td> <code title="">plusb;</code> </td> <td> U+0229E </td> <td> <span class="glyph" title="">&#226;&#138;&#158;</span> </td> </tr><tr id="entity-pluscir"><td> <code title="">pluscir;</code> </td> <td> U+02A22 </td> <td> <span class="glyph" title="">&#226;&#168;&#162;</span> </td> </tr><tr id="entity-plusdo"><td> <code title="">plusdo;</code> </td> <td> U+02214 </td> <td> <span class="glyph" title="">&#226;&#136;&#148;</span> </td> </tr><tr id="entity-plusdu"><td> <code title="">plusdu;</code> </td> <td> U+02A25 </td> <td> <span class="glyph" title="">&#226;&#168;&#165;</span> </td> </tr><tr id="entity-pluse"><td> <code title="">pluse;</code> </td> <td> U+02A72 </td> <td> <span class="glyph" title="">&#226;&#169;&#178;</span> </td> </tr><tr id="entity-PlusMinus"><td> <code title="">PlusMinus;</code> </td> <td> U+000B1 </td> <td> <span class="glyph" title="">&#194;&#177;</span> </td> </tr><tr id="entity-plusmn"><td> <code title="">plusmn;</code> </td> <td> U+000B1 </td> <td> <span class="glyph" title="">&#194;&#177;</span> </td> </tr><tr class="impl" id="entity-plusmn-legacy"><td> <code title="">plusmn</code> </td> <td> U+000B1 </td> <td> <span title="">&#194;&#177;</span> </td> </tr><tr id="entity-plussim"><td> <code title="">plussim;</code> </td> <td> U+02A26 </td> <td> <span class="glyph" title="">&#226;&#168;&#166;</span> </td> </tr><tr id="entity-plustwo"><td> <code title="">plustwo;</code> </td> <td> U+02A27 </td> <td> <span class="glyph" title="">&#226;&#168;&#167;</span> </td> </tr><tr id="entity-pm"><td> <code title="">pm;</code> </td> <td> U+000B1 </td> <td> <span class="glyph" title="">&#194;&#177;</span> </td> </tr><tr id="entity-Poincareplane"><td> <code title="">Poincareplane;</code> </td> <td> U+0210C </td> <td> <span class="glyph" title="">&#226;&#132;&#140;</span> </td> </tr><tr id="entity-pointint"><td> <code title="">pointint;</code> </td> <td> U+02A15 </td> <td> <span class="glyph" title="">&#226;&#168;&#149;</span> </td> </tr><tr id="entity-Popf"><td> <code title="">Popf;</code> </td> <td> U+02119 </td> <td> <span class="glyph" title="">&#226;&#132;&#153;</span> </td> </tr><tr id="entity-popf"><td> <code title="">popf;</code> </td> <td> U+1D561 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#161;</span> </td> </tr><tr id="entity-pound"><td> <code title="">pound;</code> </td> <td> U+000A3 </td> <td> <span class="glyph" title="">&#194;&#163;</span> </td> </tr><tr class="impl" id="entity-pound-legacy"><td> <code title="">pound</code> </td> <td> U+000A3 </td> <td> <span title="">&#194;&#163;</span> </td> </tr><tr id="entity-Pr"><td> <code title="">Pr;</code> </td> <td> U+02ABB </td> <td> <span class="glyph" title="">&#226;&#170;&#187;</span> </td> </tr><tr id="entity-pr"><td> <code title="">pr;</code> </td> <td> U+0227A </td> <td> <span class="glyph" title="">&#226;&#137;&#186;</span> </td> </tr><tr id="entity-prap"><td> <code title="">prap;</code> </td> <td> U+02AB7 </td> <td> <span class="glyph" title="">&#226;&#170;&#183;</span> </td> </tr><tr id="entity-prcue"><td> <code title="">prcue;</code> </td> <td> U+0227C </td> <td> <span class="glyph" title="">&#226;&#137;&#188;</span> </td> </tr><tr id="entity-prE"><td> <code title="">prE;</code> </td> <td> U+02AB3 </td> <td> <span class="glyph" title="">&#226;&#170;&#179;</span> </td> </tr><tr id="entity-pre"><td> <code title="">pre;</code> </td> <td> U+02AAF </td> <td> <span class="glyph" title="">&#226;&#170;&#175;</span> </td> </tr><tr id="entity-prec"><td> <code title="">prec;</code> </td> <td> U+0227A </td> <td> <span class="glyph" title="">&#226;&#137;&#186;</span> </td> </tr><tr id="entity-precapprox"><td> <code title="">precapprox;</code> </td> <td> U+02AB7 </td> <td> <span class="glyph" title="">&#226;&#170;&#183;</span> </td> </tr><tr id="entity-preccurlyeq"><td> <code title="">preccurlyeq;</code> </td> <td> U+0227C </td> <td> <span class="glyph" title="">&#226;&#137;&#188;</span> </td> </tr><tr id="entity-Precedes"><td> <code title="">Precedes;</code> </td> <td> U+0227A </td> <td> <span class="glyph" title="">&#226;&#137;&#186;</span> </td> </tr><tr id="entity-PrecedesEqual"><td> <code title="">PrecedesEqual;</code> </td> <td> U+02AAF </td> <td> <span class="glyph" title="">&#226;&#170;&#175;</span> </td> </tr><tr id="entity-PrecedesSlantEqual"><td> <code title="">PrecedesSlantEqual;</code> </td> <td> U+0227C </td> <td> <span class="glyph" title="">&#226;&#137;&#188;</span> </td> </tr><tr id="entity-PrecedesTilde"><td> <code title="">PrecedesTilde;</code> </td> <td> U+0227E </td> <td> <span class="glyph" title="">&#226;&#137;&#190;</span> </td> </tr><tr id="entity-preceq"><td> <code title="">preceq;</code> </td> <td> U+02AAF </td> <td> <span class="glyph" title="">&#226;&#170;&#175;</span> </td> </tr><tr id="entity-precnapprox"><td> <code title="">precnapprox;</code> </td> <td> U+02AB9 </td> <td> <span class="glyph" title="">&#226;&#170;&#185;</span> </td> </tr><tr id="entity-precneqq"><td> <code title="">precneqq;</code> </td> <td> U+02AB5 </td> <td> <span class="glyph" title="">&#226;&#170;&#181;</span> </td> </tr><tr id="entity-precnsim"><td> <code title="">precnsim;</code> </td> <td> U+022E8 </td> <td> <span class="glyph" title="">&#226;&#139;&#168;</span> </td> </tr><tr id="entity-precsim"><td> <code title="">precsim;</code> </td> <td> U+0227E </td> <td> <span class="glyph" title="">&#226;&#137;&#190;</span> </td> </tr><tr id="entity-Prime"><td> <code title="">Prime;</code> </td> <td> U+02033 </td> <td> <span class="glyph" title="">&#226;&#128;&#179;</span> </td> </tr><tr id="entity-prime"><td> <code title="">prime;</code> </td> <td> U+02032 </td> <td> <span class="glyph" title="">&#226;&#128;&#178;</span> </td> </tr><tr id="entity-primes"><td> <code title="">primes;</code> </td> <td> U+02119 </td> <td> <span class="glyph" title="">&#226;&#132;&#153;</span> </td> </tr><tr id="entity-prnap"><td> <code title="">prnap;</code> </td> <td> U+02AB9 </td> <td> <span class="glyph" title="">&#226;&#170;&#185;</span> </td> </tr><tr id="entity-prnE"><td> <code title="">prnE;</code> </td> <td> U+02AB5 </td> <td> <span class="glyph" title="">&#226;&#170;&#181;</span> </td> </tr><tr id="entity-prnsim"><td> <code title="">prnsim;</code> </td> <td> U+022E8 </td> <td> <span class="glyph" title="">&#226;&#139;&#168;</span> </td> </tr><tr id="entity-prod"><td> <code title="">prod;</code> </td> <td> U+0220F </td> <td> <span class="glyph" title="">&#226;&#136;&#143;</span> </td> </tr><tr id="entity-Product"><td> <code title="">Product;</code> </td> <td> U+0220F </td> <td> <span class="glyph" title="">&#226;&#136;&#143;</span> </td> </tr><tr id="entity-profalar"><td> <code title="">profalar;</code> </td> <td> U+0232E </td> <td> <span class="glyph" title="">&#226;&#140;&#174;</span> </td> </tr><tr id="entity-profline"><td> <code title="">profline;</code> </td> <td> U+02312 </td> <td> <span class="glyph" title="">&#226;&#140;&#146;</span> </td> </tr><tr id="entity-profsurf"><td> <code title="">profsurf;</code> </td> <td> U+02313 </td> <td> <span class="glyph" title="">&#226;&#140;&#147;</span> </td> </tr><tr id="entity-prop"><td> <code title="">prop;</code> </td> <td> U+0221D </td> <td> <span class="glyph" title="">&#226;&#136;&#157;</span> </td> </tr><tr id="entity-Proportion"><td> <code title="">Proportion;</code> </td> <td> U+02237 </td> <td> <span class="glyph" title="">&#226;&#136;&#183;</span> </td> </tr><tr id="entity-Proportional"><td> <code title="">Proportional;</code> </td> <td> U+0221D </td> <td> <span class="glyph" title="">&#226;&#136;&#157;</span> </td> </tr><tr id="entity-propto"><td> <code title="">propto;</code> </td> <td> U+0221D </td> <td> <span class="glyph" title="">&#226;&#136;&#157;</span> </td> </tr><tr id="entity-prsim"><td> <code title="">prsim;</code> </td> <td> U+0227E </td> <td> <span class="glyph" title="">&#226;&#137;&#190;</span> </td> </tr><tr id="entity-prurel"><td> <code title="">prurel;</code> </td> <td> U+022B0 </td> <td> <span class="glyph" title="">&#226;&#138;&#176;</span> </td> </tr><tr id="entity-Pscr"><td> <code title="">Pscr;</code> </td> <td> U+1D4AB </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#171;</span> </td> </tr><tr id="entity-pscr"><td> <code title="">pscr;</code> </td> <td> U+1D4C5 </td> <td> <span class="glyph" title="">&#240;&#157;&#147;&#133;</span> </td> </tr><tr id="entity-Psi"><td> <code title="">Psi;</code> </td> <td> U+003A8 </td> <td> <span class="glyph" title="">&#206;&#168;</span> </td> </tr><tr id="entity-psi"><td> <code title="">psi;</code> </td> <td> U+003C8 </td> <td> <span class="glyph" title="">&#207;&#136;</span> </td> </tr><tr id="entity-puncsp"><td> <code title="">puncsp;</code> </td> <td> U+02008 </td> <td> <span class="glyph" title="">&#226;&#128;&#136;</span> </td> </tr><tr id="entity-Qfr"><td> <code title="">Qfr;</code> </td> <td> U+1D514 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#148;</span> </td> </tr><tr id="entity-qfr"><td> <code title="">qfr;</code> </td> <td> U+1D52E </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#174;</span> </td> </tr><tr id="entity-qint"><td> <code title="">qint;</code> </td> <td> U+02A0C </td> <td> <span class="glyph" title="">&#226;&#168;&#140;</span> </td> </tr><tr id="entity-Qopf"><td> <code title="">Qopf;</code> </td> <td> U+0211A </td> <td> <span class="glyph" title="">&#226;&#132;&#154;</span> </td> </tr><tr id="entity-qopf"><td> <code title="">qopf;</code> </td> <td> U+1D562 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#162;</span> </td> </tr><tr id="entity-qprime"><td> <code title="">qprime;</code> </td> <td> U+02057 </td> <td> <span class="glyph" title="">&#226;&#129;&#151;</span> </td> </tr><tr id="entity-Qscr"><td> <code title="">Qscr;</code> </td> <td> U+1D4AC </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#172;</span> </td> </tr><tr id="entity-qscr"><td> <code title="">qscr;</code> </td> <td> U+1D4C6 </td> <td> <span class="glyph" title="">&#240;&#157;&#147;&#134;</span> </td> </tr><tr id="entity-quaternions"><td> <code title="">quaternions;</code> </td> <td> U+0210D </td> <td> <span class="glyph" title="">&#226;&#132;&#141;</span> </td> </tr><tr id="entity-quatint"><td> <code title="">quatint;</code> </td> <td> U+02A16 </td> <td> <span class="glyph" title="">&#226;&#168;&#150;</span> </td> </tr><tr id="entity-quest"><td> <code title="">quest;</code> </td> <td> U+0003F </td> <td> <span class="glyph" title="">?</span> </td> </tr><tr id="entity-questeq"><td> <code title="">questeq;</code> </td> <td> U+0225F </td> <td> <span class="glyph" title="">&#226;&#137;&#159;</span> </td> </tr><tr id="entity-QUOT"><td> <code title="">QUOT;</code> </td> <td> U+00022 </td> <td> <span class="glyph" title="">"</span> </td> </tr><tr class="impl" id="entity-QUOT-legacy"><td> <code title="">QUOT</code> </td> <td> U+00022 </td> <td> <span title="">"</span> </td> </tr><tr id="entity-quot"><td> <code title="">quot;</code> </td> <td> U+00022 </td> <td> <span class="glyph" title="">"</span> </td> </tr><tr class="impl" id="entity-quot-legacy"><td> <code title="">quot</code> </td> <td> U+00022 </td> <td> <span title="">"</span> </td> </tr><tr id="entity-rAarr"><td> <code title="">rAarr;</code> </td> <td> U+021DB </td> <td> <span class="glyph" title="">&#226;&#135;&#155;</span> </td> </tr><tr id="entity-race"><td> <code title="">race;</code> </td> <td> U+0223D U+00331 </td> <td> <span class="glyph compound" title="">&#226;&#136;&#189;&#204;&#177;</span> </td> </tr><tr id="entity-Racute"><td> <code title="">Racute;</code> </td> <td> U+00154 </td> <td> <span class="glyph" title="">&#197;&#148;</span> </td> </tr><tr id="entity-racute"><td> <code title="">racute;</code> </td> <td> U+00155 </td> <td> <span class="glyph" title="">&#197;&#149;</span> </td> </tr><tr id="entity-radic"><td> <code title="">radic;</code> </td> <td> U+0221A </td> <td> <span class="glyph" title="">&#226;&#136;&#154;</span> </td> </tr><tr id="entity-raemptyv"><td> <code title="">raemptyv;</code> </td> <td> U+029B3 </td> <td> <span class="glyph" title="">&#226;&#166;&#179;</span> </td> </tr><tr id="entity-Rang"><td> <code title="">Rang;</code> </td> <td> U+027EB </td> <td> <span class="glyph" title="">&#226;&#159;&#171;</span> </td> </tr><tr id="entity-rang"><td> <code title="">rang;</code> </td> <td> U+027E9 </td> <td> <span class="glyph" title="">&#226;&#140;&#170;</span> </td> </tr><tr id="entity-rangd"><td> <code title="">rangd;</code> </td> <td> U+02992 </td> <td> <span class="glyph" title="">&#226;&#166;&#146;</span> </td> </tr><tr id="entity-range"><td> <code title="">range;</code> </td> <td> U+029A5 </td> <td> <span class="glyph" title="">&#226;&#166;&#165;</span> </td> </tr><tr id="entity-rangle"><td> <code title="">rangle;</code> </td> <td> U+027E9 </td> <td> <span class="glyph" title="">&#226;&#140;&#170;</span> </td> </tr><tr id="entity-raquo"><td> <code title="">raquo;</code> </td> <td> U+000BB </td> <td> <span class="glyph" title="">&#194;&#187;</span> </td> </tr><tr class="impl" id="entity-raquo-legacy"><td> <code title="">raquo</code> </td> <td> U+000BB </td> <td> <span title="">&#194;&#187;</span> </td> </tr><tr id="entity-Rarr"><td> <code title="">Rarr;</code> </td> <td> U+021A0 </td> <td> <span class="glyph" title="">&#226;&#134;&#160;</span> </td> </tr><tr id="entity-rArr"><td> <code title="">rArr;</code> </td> <td> U+021D2 </td> <td> <span class="glyph" title="">&#226;&#135;&#146;</span> </td> </tr><tr id="entity-rarr"><td> <code title="">rarr;</code> </td> <td> U+02192 </td> <td> <span class="glyph" title="">&#226;&#134;&#146;</span> </td> </tr><tr id="entity-rarrap"><td> <code title="">rarrap;</code> </td> <td> U+02975 </td> <td> <span class="glyph" title="">&#226;&#165;&#181;</span> </td> </tr><tr id="entity-rarrb"><td> <code title="">rarrb;</code> </td> <td> U+021E5 </td> <td> <span class="glyph" title="">&#226;&#135;&#165;</span> </td> </tr><tr id="entity-rarrbfs"><td> <code title="">rarrbfs;</code> </td> <td> U+02920 </td> <td> <span class="glyph" title="">&#226;&#164;&#160;</span> </td> </tr><tr id="entity-rarrc"><td> <code title="">rarrc;</code> </td> <td> U+02933 </td> <td> <span class="glyph" title="">&#226;&#164;&#179;</span> </td> </tr><tr id="entity-rarrfs"><td> <code title="">rarrfs;</code> </td> <td> U+0291E </td> <td> <span class="glyph" title="">&#226;&#164;&#158;</span> </td> </tr><tr id="entity-rarrhk"><td> <code title="">rarrhk;</code> </td> <td> U+021AA </td> <td> <span class="glyph" title="">&#226;&#134;&#170;</span> </td> </tr><tr id="entity-rarrlp"><td> <code title="">rarrlp;</code> </td> <td> U+021AC </td> <td> <span class="glyph" title="">&#226;&#134;&#172;</span> </td> </tr><tr id="entity-rarrpl"><td> <code title="">rarrpl;</code> </td> <td> U+02945 </td> <td> <span class="glyph" title="">&#226;&#165;&#133;</span> </td> </tr><tr id="entity-rarrsim"><td> <code title="">rarrsim;</code> </td> <td> U+02974 </td> <td> <span class="glyph" title="">&#226;&#165;&#180;</span> </td> </tr><tr id="entity-Rarrtl"><td> <code title="">Rarrtl;</code> </td> <td> U+02916 </td> <td> <span class="glyph" title="">&#226;&#164;&#150;</span> </td> </tr><tr id="entity-rarrtl"><td> <code title="">rarrtl;</code> </td> <td> U+021A3 </td> <td> <span class="glyph" title="">&#226;&#134;&#163;</span> </td> </tr><tr id="entity-rarrw"><td> <code title="">rarrw;</code> </td> <td> U+0219D </td> <td> <span class="glyph" title="">&#226;&#134;&#157;</span> </td> </tr><tr id="entity-rAtail"><td> <code title="">rAtail;</code> </td> <td> U+0291C </td> <td> <span class="glyph" title="">&#226;&#164;&#156;</span> </td> </tr><tr id="entity-ratail"><td> <code title="">ratail;</code> </td> <td> U+0291A </td> <td> <span class="glyph" title="">&#226;&#164;&#154;</span> </td> </tr><tr id="entity-ratio"><td> <code title="">ratio;</code> </td> <td> U+02236 </td> <td> <span class="glyph" title="">&#226;&#136;&#182;</span> </td> </tr><tr id="entity-rationals"><td> <code title="">rationals;</code> </td> <td> U+0211A </td> <td> <span class="glyph" title="">&#226;&#132;&#154;</span> </td> </tr><tr id="entity-RBarr"><td> <code title="">RBarr;</code> </td> <td> U+02910 </td> <td> <span class="glyph" title="">&#226;&#164;&#144;</span> </td> </tr><tr id="entity-rBarr"><td> <code title="">rBarr;</code> </td> <td> U+0290F </td> <td> <span class="glyph" title="">&#226;&#164;&#143;</span> </td> </tr><tr id="entity-rbarr"><td> <code title="">rbarr;</code> </td> <td> U+0290D </td> <td> <span class="glyph" title="">&#226;&#164;&#141;</span> </td> </tr><tr id="entity-rbbrk"><td> <code title="">rbbrk;</code> </td> <td> U+02773 </td> <td> <span class="glyph" title="">&#226;&#157;&#179;</span> </td> </tr><tr id="entity-rbrace"><td> <code title="">rbrace;</code> </td> <td> U+0007D </td> <td> <span class="glyph" title="">}</span> </td> </tr><tr id="entity-rbrack"><td> <code title="">rbrack;</code> </td> <td> U+0005D </td> <td> <span class="glyph" title="">]</span> </td> </tr><tr id="entity-rbrke"><td> <code title="">rbrke;</code> </td> <td> U+0298C </td> <td> <span class="glyph" title="">&#226;&#166;&#140;</span> </td> </tr><tr id="entity-rbrksld"><td> <code title="">rbrksld;</code> </td> <td> U+0298E </td> <td> <span class="glyph" title="">&#226;&#166;&#142;</span> </td> </tr><tr id="entity-rbrkslu"><td> <code title="">rbrkslu;</code> </td> <td> U+02990 </td> <td> <span class="glyph" title="">&#226;&#166;&#144;</span> </td> </tr><tr id="entity-Rcaron"><td> <code title="">Rcaron;</code> </td> <td> U+00158 </td> <td> <span class="glyph" title="">&#197;&#152;</span> </td> </tr><tr id="entity-rcaron"><td> <code title="">rcaron;</code> </td> <td> U+00159 </td> <td> <span class="glyph" title="">&#197;&#153;</span> </td> </tr><tr id="entity-Rcedil"><td> <code title="">Rcedil;</code> </td> <td> U+00156 </td> <td> <span class="glyph" title="">&#197;&#150;</span> </td> </tr><tr id="entity-rcedil"><td> <code title="">rcedil;</code> </td> <td> U+00157 </td> <td> <span class="glyph" title="">&#197;&#151;</span> </td> </tr><tr id="entity-rceil"><td> <code title="">rceil;</code> </td> <td> U+02309 </td> <td> <span class="glyph" title="">&#226;&#140;&#137;</span> </td> </tr><tr id="entity-rcub"><td> <code title="">rcub;</code> </td> <td> U+0007D </td> <td> <span class="glyph" title="">}</span> </td> </tr><tr id="entity-Rcy"><td> <code title="">Rcy;</code> </td> <td> U+00420 </td> <td> <span class="glyph" title="">&#208;&#160;</span> </td> </tr><tr id="entity-rcy"><td> <code title="">rcy;</code> </td> <td> U+00440 </td> <td> <span class="glyph" title="">&#209;&#128;</span> </td> </tr><tr id="entity-rdca"><td> <code title="">rdca;</code> </td> <td> U+02937 </td> <td> <span class="glyph" title="">&#226;&#164;&#183;</span> </td> </tr><tr id="entity-rdldhar"><td> <code title="">rdldhar;</code> </td> <td> U+02969 </td> <td> <span class="glyph" title="">&#226;&#165;&#169;</span> </td> </tr><tr id="entity-rdquo"><td> <code title="">rdquo;</code> </td> <td> U+0201D </td> <td> <span class="glyph" title="">&#226;&#128;&#157;</span> </td> </tr><tr id="entity-rdquor"><td> <code title="">rdquor;</code> </td> <td> U+0201D </td> <td> <span class="glyph" title="">&#226;&#128;&#157;</span> </td> </tr><tr id="entity-rdsh"><td> <code title="">rdsh;</code> </td> <td> U+021B3 </td> <td> <span class="glyph" title="">&#226;&#134;&#179;</span> </td> </tr><tr id="entity-Re"><td> <code title="">Re;</code> </td> <td> U+0211C </td> <td> <span class="glyph" title="">&#226;&#132;&#156;</span> </td> </tr><tr id="entity-real"><td> <code title="">real;</code> </td> <td> U+0211C </td> <td> <span class="glyph" title="">&#226;&#132;&#156;</span> </td> </tr><tr id="entity-realine"><td> <code title="">realine;</code> </td> <td> U+0211B </td> <td> <span class="glyph" title="">&#226;&#132;&#155;</span> </td> </tr><tr id="entity-realpart"><td> <code title="">realpart;</code> </td> <td> U+0211C </td> <td> <span class="glyph" title="">&#226;&#132;&#156;</span> </td> </tr><tr id="entity-reals"><td> <code title="">reals;</code> </td> <td> U+0211D </td> <td> <span class="glyph" title="">&#226;&#132;&#157;</span> </td> </tr><tr id="entity-rect"><td> <code title="">rect;</code> </td> <td> U+025AD </td> <td> <span class="glyph" title="">&#226;&#150;&#173;</span> </td> </tr><tr id="entity-REG"><td> <code title="">REG;</code> </td> <td> U+000AE </td> <td> <span class="glyph" title="">&#194;&#174;</span> </td> </tr><tr class="impl" id="entity-REG-legacy"><td> <code title="">REG</code> </td> <td> U+000AE </td> <td> <span title="">&#194;&#174;</span> </td> </tr><tr id="entity-reg"><td> <code title="">reg;</code> </td> <td> U+000AE </td> <td> <span class="glyph" title="">&#194;&#174;</span> </td> </tr><tr class="impl" id="entity-reg-legacy"><td> <code title="">reg</code> </td> <td> U+000AE </td> <td> <span title="">&#194;&#174;</span> </td> </tr><tr id="entity-ReverseElement"><td> <code title="">ReverseElement;</code> </td> <td> U+0220B </td> <td> <span class="glyph" title="">&#226;&#136;&#139;</span> </td> </tr><tr id="entity-ReverseEquilibrium"><td> <code title="">ReverseEquilibrium;</code> </td> <td> U+021CB </td> <td> <span class="glyph" title="">&#226;&#135;&#139;</span> </td> </tr><tr id="entity-ReverseUpEquilibrium"><td> <code title="">ReverseUpEquilibrium;</code> </td> <td> U+0296F </td> <td> <span class="glyph" title="">&#226;&#165;&#175;</span> </td> </tr><tr id="entity-rfisht"><td> <code title="">rfisht;</code> </td> <td> U+0297D </td> <td> <span class="glyph" title="">&#226;&#165;&#189;</span> </td> </tr><tr id="entity-rfloor"><td> <code title="">rfloor;</code> </td> <td> U+0230B </td> <td> <span class="glyph" title="">&#226;&#140;&#139;</span> </td> </tr><tr id="entity-Rfr"><td> <code title="">Rfr;</code> </td> <td> U+0211C </td> <td> <span class="glyph" title="">&#226;&#132;&#156;</span> </td> </tr><tr id="entity-rfr"><td> <code title="">rfr;</code> </td> <td> U+1D52F </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#175;</span> </td> </tr><tr id="entity-rHar"><td> <code title="">rHar;</code> </td> <td> U+02964 </td> <td> <span class="glyph" title="">&#226;&#165;&#164;</span> </td> </tr><tr id="entity-rhard"><td> <code title="">rhard;</code> </td> <td> U+021C1 </td> <td> <span class="glyph" title="">&#226;&#135;&#129;</span> </td> </tr><tr id="entity-rharu"><td> <code title="">rharu;</code> </td> <td> U+021C0 </td> <td> <span class="glyph" title="">&#226;&#135;&#128;</span> </td> </tr><tr id="entity-rharul"><td> <code title="">rharul;</code> </td> <td> U+0296C </td> <td> <span class="glyph" title="">&#226;&#165;&#172;</span> </td> </tr><tr id="entity-Rho"><td> <code title="">Rho;</code> </td> <td> U+003A1 </td> <td> <span class="glyph" title="">&#206;&#161;</span> </td> </tr><tr id="entity-rho"><td> <code title="">rho;</code> </td> <td> U+003C1 </td> <td> <span class="glyph" title="">&#207;&#129;</span> </td> </tr><tr id="entity-rhov"><td> <code title="">rhov;</code> </td> <td> U+003F1 </td> <td> <span class="glyph" title="">&#207;&#177;</span> </td> </tr><tr id="entity-RightAngleBracket"><td> <code title="">RightAngleBracket;</code> </td> <td> U+027E9 </td> <td> <span class="glyph" title="">&#226;&#140;&#170;</span> </td> </tr><tr id="entity-RightArrow"><td> <code title="">RightArrow;</code> </td> <td> U+02192 </td> <td> <span class="glyph" title="">&#226;&#134;&#146;</span> </td> </tr><tr id="entity-Rightarrow"><td> <code title="">Rightarrow;</code> </td> <td> U+021D2 </td> <td> <span class="glyph" title="">&#226;&#135;&#146;</span> </td> </tr><tr id="entity-rightarrow"><td> <code title="">rightarrow;</code> </td> <td> U+02192 </td> <td> <span class="glyph" title="">&#226;&#134;&#146;</span> </td> </tr><tr id="entity-RightArrowBar"><td> <code title="">RightArrowBar;</code> </td> <td> U+021E5 </td> <td> <span class="glyph" title="">&#226;&#135;&#165;</span> </td> </tr><tr id="entity-RightArrowLeftArrow"><td> <code title="">RightArrowLeftArrow;</code> </td> <td> U+021C4 </td> <td> <span class="glyph" title="">&#226;&#135;&#132;</span> </td> </tr><tr id="entity-rightarrowtail"><td> <code title="">rightarrowtail;</code> </td> <td> U+021A3 </td> <td> <span class="glyph" title="">&#226;&#134;&#163;</span> </td> </tr><tr id="entity-RightCeiling"><td> <code title="">RightCeiling;</code> </td> <td> U+02309 </td> <td> <span class="glyph" title="">&#226;&#140;&#137;</span> </td> </tr><tr id="entity-RightDoubleBracket"><td> <code title="">RightDoubleBracket;</code> </td> <td> U+027E7 </td> <td> <span class="glyph" title="">&#226;&#159;&#167;</span> </td> </tr><tr id="entity-RightDownTeeVector"><td> <code title="">RightDownTeeVector;</code> </td> <td> U+0295D </td> <td> <span class="glyph" title="">&#226;&#165;&#157;</span> </td> </tr><tr id="entity-RightDownVector"><td> <code title="">RightDownVector;</code> </td> <td> U+021C2 </td> <td> <span class="glyph" title="">&#226;&#135;&#130;</span> </td> </tr><tr id="entity-RightDownVectorBar"><td> <code title="">RightDownVectorBar;</code> </td> <td> U+02955 </td> <td> <span class="glyph" title="">&#226;&#165;&#149;</span> </td> </tr><tr id="entity-RightFloor"><td> <code title="">RightFloor;</code> </td> <td> U+0230B </td> <td> <span class="glyph" title="">&#226;&#140;&#139;</span> </td> </tr><tr id="entity-rightharpoondown"><td> <code title="">rightharpoondown;</code> </td> <td> U+021C1 </td> <td> <span class="glyph" title="">&#226;&#135;&#129;</span> </td> </tr><tr id="entity-rightharpoonup"><td> <code title="">rightharpoonup;</code> </td> <td> U+021C0 </td> <td> <span class="glyph" title="">&#226;&#135;&#128;</span> </td> </tr><tr id="entity-rightleftarrows"><td> <code title="">rightleftarrows;</code> </td> <td> U+021C4 </td> <td> <span class="glyph" title="">&#226;&#135;&#132;</span> </td> </tr><tr id="entity-rightleftharpoons"><td> <code title="">rightleftharpoons;</code> </td> <td> U+021CC </td> <td> <span class="glyph" title="">&#226;&#135;&#140;</span> </td> </tr><tr id="entity-rightrightarrows"><td> <code title="">rightrightarrows;</code> </td> <td> U+021C9 </td> <td> <span class="glyph" title="">&#226;&#135;&#137;</span> </td> </tr><tr id="entity-rightsquigarrow"><td> <code title="">rightsquigarrow;</code> </td> <td> U+0219D </td> <td> <span class="glyph" title="">&#226;&#134;&#157;</span> </td> </tr><tr id="entity-RightTee"><td> <code title="">RightTee;</code> </td> <td> U+022A2 </td> <td> <span class="glyph" title="">&#226;&#138;&#162;</span> </td> </tr><tr id="entity-RightTeeArrow"><td> <code title="">RightTeeArrow;</code> </td> <td> U+021A6 </td> <td> <span class="glyph" title="">&#226;&#134;&#166;</span> </td> </tr><tr id="entity-RightTeeVector"><td> <code title="">RightTeeVector;</code> </td> <td> U+0295B </td> <td> <span class="glyph" title="">&#226;&#165;&#155;</span> </td> </tr><tr id="entity-rightthreetimes"><td> <code title="">rightthreetimes;</code> </td> <td> U+022CC </td> <td> <span class="glyph" title="">&#226;&#139;&#140;</span> </td> </tr><tr id="entity-RightTriangle"><td> <code title="">RightTriangle;</code> </td> <td> U+022B3 </td> <td> <span class="glyph" title="">&#226;&#138;&#179;</span> </td> </tr><tr id="entity-RightTriangleBar"><td> <code title="">RightTriangleBar;</code> </td> <td> U+029D0 </td> <td> <span class="glyph" title="">&#226;&#167;&#144;</span> </td> </tr><tr id="entity-RightTriangleEqual"><td> <code title="">RightTriangleEqual;</code> </td> <td> U+022B5 </td> <td> <span class="glyph" title="">&#226;&#138;&#181;</span> </td> </tr><tr id="entity-RightUpDownVector"><td> <code title="">RightUpDownVector;</code> </td> <td> U+0294F </td> <td> <span class="glyph" title="">&#226;&#165;&#143;</span> </td> </tr><tr id="entity-RightUpTeeVector"><td> <code title="">RightUpTeeVector;</code> </td> <td> U+0295C </td> <td> <span class="glyph" title="">&#226;&#165;&#156;</span> </td> </tr><tr id="entity-RightUpVector"><td> <code title="">RightUpVector;</code> </td> <td> U+021BE </td> <td> <span class="glyph" title="">&#226;&#134;&#190;</span> </td> </tr><tr id="entity-RightUpVectorBar"><td> <code title="">RightUpVectorBar;</code> </td> <td> U+02954 </td> <td> <span class="glyph" title="">&#226;&#165;&#148;</span> </td> </tr><tr id="entity-RightVector"><td> <code title="">RightVector;</code> </td> <td> U+021C0 </td> <td> <span class="glyph" title="">&#226;&#135;&#128;</span> </td> </tr><tr id="entity-RightVectorBar"><td> <code title="">RightVectorBar;</code> </td> <td> U+02953 </td> <td> <span class="glyph" title="">&#226;&#165;&#147;</span> </td> </tr><tr id="entity-ring"><td> <code title="">ring;</code> </td> <td> U+002DA </td> <td> <span class="glyph" title="">&#203;&#154;</span> </td> </tr><tr id="entity-risingdotseq"><td> <code title="">risingdotseq;</code> </td> <td> U+02253 </td> <td> <span class="glyph" title="">&#226;&#137;&#147;</span> </td> </tr><tr id="entity-rlarr"><td> <code title="">rlarr;</code> </td> <td> U+021C4 </td> <td> <span class="glyph" title="">&#226;&#135;&#132;</span> </td> </tr><tr id="entity-rlhar"><td> <code title="">rlhar;</code> </td> <td> U+021CC </td> <td> <span class="glyph" title="">&#226;&#135;&#140;</span> </td> </tr><tr id="entity-rlm"><td> <code title="">rlm;</code> </td> <td> U+0200F </td> <td> <span class="glyph" title="">&#226;&#128;&#143;</span> </td> </tr><tr id="entity-rmoust"><td> <code title="">rmoust;</code> </td> <td> U+023B1 </td> <td> <span class="glyph" title="">&#226;&#142;&#177;</span> </td> </tr><tr id="entity-rmoustache"><td> <code title="">rmoustache;</code> </td> <td> U+023B1 </td> <td> <span class="glyph" title="">&#226;&#142;&#177;</span> </td> </tr><tr id="entity-rnmid"><td> <code title="">rnmid;</code> </td> <td> U+02AEE </td> <td> <span class="glyph" title="">&#226;&#171;&#174;</span> </td> </tr><tr id="entity-roang"><td> <code title="">roang;</code> </td> <td> U+027ED </td> <td> <span class="glyph" title="">&#226;&#159;&#173;</span> </td> </tr><tr id="entity-roarr"><td> <code title="">roarr;</code> </td> <td> U+021FE </td> <td> <span class="glyph" title="">&#226;&#135;&#190;</span> </td> </tr><tr id="entity-robrk"><td> <code title="">robrk;</code> </td> <td> U+027E7 </td> <td> <span class="glyph" title="">&#226;&#159;&#167;</span> </td> </tr><tr id="entity-ropar"><td> <code title="">ropar;</code> </td> <td> U+02986 </td> <td> <span class="glyph" title="">&#226;&#166;&#134;</span> </td> </tr><tr id="entity-Ropf"><td> <code title="">Ropf;</code> </td> <td> U+0211D </td> <td> <span class="glyph" title="">&#226;&#132;&#157;</span> </td> </tr><tr id="entity-ropf"><td> <code title="">ropf;</code> </td> <td> U+1D563 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#163;</span> </td> </tr><tr id="entity-roplus"><td> <code title="">roplus;</code> </td> <td> U+02A2E </td> <td> <span class="glyph" title="">&#226;&#168;&#174;</span> </td> </tr><tr id="entity-rotimes"><td> <code title="">rotimes;</code> </td> <td> U+02A35 </td> <td> <span class="glyph" title="">&#226;&#168;&#181;</span> </td> </tr><tr id="entity-RoundImplies"><td> <code title="">RoundImplies;</code> </td> <td> U+02970 </td> <td> <span class="glyph" title="">&#226;&#165;&#176;</span> </td> </tr><tr id="entity-rpar"><td> <code title="">rpar;</code> </td> <td> U+00029 </td> <td> <span class="glyph" title="">)</span> </td> </tr><tr id="entity-rpargt"><td> <code title="">rpargt;</code> </td> <td> U+02994 </td> <td> <span class="glyph" title="">&#226;&#166;&#148;</span> </td> </tr><tr id="entity-rppolint"><td> <code title="">rppolint;</code> </td> <td> U+02A12 </td> <td> <span class="glyph" title="">&#226;&#168;&#146;</span> </td> </tr><tr id="entity-rrarr"><td> <code title="">rrarr;</code> </td> <td> U+021C9 </td> <td> <span class="glyph" title="">&#226;&#135;&#137;</span> </td> </tr><tr id="entity-Rrightarrow"><td> <code title="">Rrightarrow;</code> </td> <td> U+021DB </td> <td> <span class="glyph" title="">&#226;&#135;&#155;</span> </td> </tr><tr id="entity-rsaquo"><td> <code title="">rsaquo;</code> </td> <td> U+0203A </td> <td> <span class="glyph" title="">&#226;&#128;&#186;</span> </td> </tr><tr id="entity-Rscr"><td> <code title="">Rscr;</code> </td> <td> U+0211B </td> <td> <span class="glyph" title="">&#226;&#132;&#155;</span> </td> </tr><tr id="entity-rscr"><td> <code title="">rscr;</code> </td> <td> U+1D4C7 </td> <td> <span class="glyph" title="">&#240;&#157;&#147;&#135;</span> </td> </tr><tr id="entity-Rsh"><td> <code title="">Rsh;</code> </td> <td> U+021B1 </td> <td> <span class="glyph" title="">&#226;&#134;&#177;</span> </td> </tr><tr id="entity-rsh"><td> <code title="">rsh;</code> </td> <td> U+021B1 </td> <td> <span class="glyph" title="">&#226;&#134;&#177;</span> </td> </tr><tr id="entity-rsqb"><td> <code title="">rsqb;</code> </td> <td> U+0005D </td> <td> <span class="glyph" title="">]</span> </td> </tr><tr id="entity-rsquo"><td> <code title="">rsquo;</code> </td> <td> U+02019 </td> <td> <span class="glyph" title="">&#226;&#128;&#153;</span> </td> </tr><tr id="entity-rsquor"><td> <code title="">rsquor;</code> </td> <td> U+02019 </td> <td> <span class="glyph" title="">&#226;&#128;&#153;</span> </td> </tr><tr id="entity-rthree"><td> <code title="">rthree;</code> </td> <td> U+022CC </td> <td> <span class="glyph" title="">&#226;&#139;&#140;</span> </td> </tr><tr id="entity-rtimes"><td> <code title="">rtimes;</code> </td> <td> U+022CA </td> <td> <span class="glyph" title="">&#226;&#139;&#138;</span> </td> </tr><tr id="entity-rtri"><td> <code title="">rtri;</code> </td> <td> U+025B9 </td> <td> <span class="glyph" title="">&#226;&#150;&#185;</span> </td> </tr><tr id="entity-rtrie"><td> <code title="">rtrie;</code> </td> <td> U+022B5 </td> <td> <span class="glyph" title="">&#226;&#138;&#181;</span> </td> </tr><tr id="entity-rtrif"><td> <code title="">rtrif;</code> </td> <td> U+025B8 </td> <td> <span class="glyph" title="">&#226;&#150;&#184;</span> </td> </tr><tr id="entity-rtriltri"><td> <code title="">rtriltri;</code> </td> <td> U+029CE </td> <td> <span class="glyph" title="">&#226;&#167;&#142;</span> </td> </tr><tr id="entity-RuleDelayed"><td> <code title="">RuleDelayed;</code> </td> <td> U+029F4 </td> <td> <span class="glyph" title="">&#226;&#167;&#180;</span> </td> </tr><tr id="entity-ruluhar"><td> <code title="">ruluhar;</code> </td> <td> U+02968 </td> <td> <span class="glyph" title="">&#226;&#165;&#168;</span> </td> </tr><tr id="entity-rx"><td> <code title="">rx;</code> </td> <td> U+0211E </td> <td> <span class="glyph" title="">&#226;&#132;&#158;</span> </td> </tr><tr id="entity-Sacute"><td> <code title="">Sacute;</code> </td> <td> U+0015A </td> <td> <span class="glyph" title="">&#197;&#154;</span> </td> </tr><tr id="entity-sacute"><td> <code title="">sacute;</code> </td> <td> U+0015B </td> <td> <span class="glyph" title="">&#197;&#155;</span> </td> </tr><tr id="entity-sbquo"><td> <code title="">sbquo;</code> </td> <td> U+0201A </td> <td> <span class="glyph" title="">&#226;&#128;&#154;</span> </td> </tr><tr id="entity-Sc"><td> <code title="">Sc;</code> </td> <td> U+02ABC </td> <td> <span class="glyph" title="">&#226;&#170;&#188;</span> </td> </tr><tr id="entity-sc"><td> <code title="">sc;</code> </td> <td> U+0227B </td> <td> <span class="glyph" title="">&#226;&#137;&#187;</span> </td> </tr><tr id="entity-scap"><td> <code title="">scap;</code> </td> <td> U+02AB8 </td> <td> <span class="glyph" title="">&#226;&#170;&#184;</span> </td> </tr><tr id="entity-Scaron"><td> <code title="">Scaron;</code> </td> <td> U+00160 </td> <td> <span class="glyph" title="">&#197;&#160;</span> </td> </tr><tr id="entity-scaron"><td> <code title="">scaron;</code> </td> <td> U+00161 </td> <td> <span class="glyph" title="">&#197;&#161;</span> </td> </tr><tr id="entity-sccue"><td> <code title="">sccue;</code> </td> <td> U+0227D </td> <td> <span class="glyph" title="">&#226;&#137;&#189;</span> </td> </tr><tr id="entity-scE"><td> <code title="">scE;</code> </td> <td> U+02AB4 </td> <td> <span class="glyph" title="">&#226;&#170;&#180;</span> </td> </tr><tr id="entity-sce"><td> <code title="">sce;</code> </td> <td> U+02AB0 </td> <td> <span class="glyph" title="">&#226;&#170;&#176;</span> </td> </tr><tr id="entity-Scedil"><td> <code title="">Scedil;</code> </td> <td> U+0015E </td> <td> <span class="glyph" title="">&#197;&#158;</span> </td> </tr><tr id="entity-scedil"><td> <code title="">scedil;</code> </td> <td> U+0015F </td> <td> <span class="glyph" title="">&#197;&#159;</span> </td> </tr><tr id="entity-Scirc"><td> <code title="">Scirc;</code> </td> <td> U+0015C </td> <td> <span class="glyph" title="">&#197;&#156;</span> </td> </tr><tr id="entity-scirc"><td> <code title="">scirc;</code> </td> <td> U+0015D </td> <td> <span class="glyph" title="">&#197;&#157;</span> </td> </tr><tr id="entity-scnap"><td> <code title="">scnap;</code> </td> <td> U+02ABA </td> <td> <span class="glyph" title="">&#226;&#170;&#186;</span> </td> </tr><tr id="entity-scnE"><td> <code title="">scnE;</code> </td> <td> U+02AB6 </td> <td> <span class="glyph" title="">&#226;&#170;&#182;</span> </td> </tr><tr id="entity-scnsim"><td> <code title="">scnsim;</code> </td> <td> U+022E9 </td> <td> <span class="glyph" title="">&#226;&#139;&#169;</span> </td> </tr><tr id="entity-scpolint"><td> <code title="">scpolint;</code> </td> <td> U+02A13 </td> <td> <span class="glyph" title="">&#226;&#168;&#147;</span> </td> </tr><tr id="entity-scsim"><td> <code title="">scsim;</code> </td> <td> U+0227F </td> <td> <span class="glyph" title="">&#226;&#137;&#191;</span> </td> </tr><tr id="entity-Scy"><td> <code title="">Scy;</code> </td> <td> U+00421 </td> <td> <span class="glyph" title="">&#208;&#161;</span> </td> </tr><tr id="entity-scy"><td> <code title="">scy;</code> </td> <td> U+00441 </td> <td> <span class="glyph" title="">&#209;&#129;</span> </td> </tr><tr id="entity-sdot"><td> <code title="">sdot;</code> </td> <td> U+022C5 </td> <td> <span class="glyph" title="">&#226;&#139;&#133;</span> </td> </tr><tr id="entity-sdotb"><td> <code title="">sdotb;</code> </td> <td> U+022A1 </td> <td> <span class="glyph" title="">&#226;&#138;&#161;</span> </td> </tr><tr id="entity-sdote"><td> <code title="">sdote;</code> </td> <td> U+02A66 </td> <td> <span class="glyph" title="">&#226;&#169;&#166;</span> </td> </tr><tr id="entity-searhk"><td> <code title="">searhk;</code> </td> <td> U+02925 </td> <td> <span class="glyph" title="">&#226;&#164;&#165;</span> </td> </tr><tr id="entity-seArr"><td> <code title="">seArr;</code> </td> <td> U+021D8 </td> <td> <span class="glyph" title="">&#226;&#135;&#152;</span> </td> </tr><tr id="entity-searr"><td> <code title="">searr;</code> </td> <td> U+02198 </td> <td> <span class="glyph" title="">&#226;&#134;&#152;</span> </td> </tr><tr id="entity-searrow"><td> <code title="">searrow;</code> </td> <td> U+02198 </td> <td> <span class="glyph" title="">&#226;&#134;&#152;</span> </td> </tr><tr id="entity-sect"><td> <code title="">sect;</code> </td> <td> U+000A7 </td> <td> <span class="glyph" title="">&#194;&#167;</span> </td> </tr><tr class="impl" id="entity-sect-legacy"><td> <code title="">sect</code> </td> <td> U+000A7 </td> <td> <span title="">&#194;&#167;</span> </td> </tr><tr id="entity-semi"><td> <code title="">semi;</code> </td> <td> U+0003B </td> <td> <span class="glyph" title="">;</span> </td> </tr><tr id="entity-seswar"><td> <code title="">seswar;</code> </td> <td> U+02929 </td> <td> <span class="glyph" title="">&#226;&#164;&#169;</span> </td> </tr><tr id="entity-setminus"><td> <code title="">setminus;</code> </td> <td> U+02216 </td> <td> <span class="glyph" title="">&#226;&#136;&#150;</span> </td> </tr><tr id="entity-setmn"><td> <code title="">setmn;</code> </td> <td> U+02216 </td> <td> <span class="glyph" title="">&#226;&#136;&#150;</span> </td> </tr><tr id="entity-sext"><td> <code title="">sext;</code> </td> <td> U+02736 </td> <td> <span class="glyph" title="">&#226;&#156;&#182;</span> </td> </tr><tr id="entity-Sfr"><td> <code title="">Sfr;</code> </td> <td> U+1D516 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#150;</span> </td> </tr><tr id="entity-sfr"><td> <code title="">sfr;</code> </td> <td> U+1D530 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#176;</span> </td> </tr><tr id="entity-sfrown"><td> <code title="">sfrown;</code> </td> <td> U+02322 </td> <td> <span class="glyph" title="">&#226;&#140;&#162;</span> </td> </tr><tr id="entity-sharp"><td> <code title="">sharp;</code> </td> <td> U+0266F </td> <td> <span class="glyph" title="">&#226;&#153;&#175;</span> </td> </tr><tr id="entity-SHCHcy"><td> <code title="">SHCHcy;</code> </td> <td> U+00429 </td> <td> <span class="glyph" title="">&#208;&#169;</span> </td> </tr><tr id="entity-shchcy"><td> <code title="">shchcy;</code> </td> <td> U+00449 </td> <td> <span class="glyph" title="">&#209;&#137;</span> </td> </tr><tr id="entity-SHcy"><td> <code title="">SHcy;</code> </td> <td> U+00428 </td> <td> <span class="glyph" title="">&#208;&#168;</span> </td> </tr><tr id="entity-shcy"><td> <code title="">shcy;</code> </td> <td> U+00448 </td> <td> <span class="glyph" title="">&#209;&#136;</span> </td> </tr><tr id="entity-ShortDownArrow"><td> <code title="">ShortDownArrow;</code> </td> <td> U+02193 </td> <td> <span class="glyph" title="">&#226;&#134;&#147;</span> </td> </tr><tr id="entity-ShortLeftArrow"><td> <code title="">ShortLeftArrow;</code> </td> <td> U+02190 </td> <td> <span class="glyph" title="">&#226;&#134;&#144;</span> </td> </tr><tr id="entity-shortmid"><td> <code title="">shortmid;</code> </td> <td> U+02223 </td> <td> <span class="glyph" title="">&#226;&#136;&#163;</span> </td> </tr><tr id="entity-shortparallel"><td> <code title="">shortparallel;</code> </td> <td> U+02225 </td> <td> <span class="glyph" title="">&#226;&#136;&#165;</span> </td> </tr><tr id="entity-ShortRightArrow"><td> <code title="">ShortRightArrow;</code> </td> <td> U+02192 </td> <td> <span class="glyph" title="">&#226;&#134;&#146;</span> </td> </tr><tr id="entity-ShortUpArrow"><td> <code title="">ShortUpArrow;</code> </td> <td> U+02191 </td> <td> <span class="glyph" title="">&#226;&#134;&#145;</span> </td> </tr><tr id="entity-shy"><td> <code title="">shy;</code> </td> <td> U+000AD </td> <td> <span class="glyph" title="">&#173;</span> </td> </tr><tr class="impl" id="entity-shy-legacy"><td> <code title="">shy</code> </td> <td> U+000AD </td> <td> <span title="">&#173;</span> </td> </tr><tr id="entity-Sigma"><td> <code title="">Sigma;</code> </td> <td> U+003A3 </td> <td> <span class="glyph" title="">&#206;&#163;</span> </td> </tr><tr id="entity-sigma"><td> <code title="">sigma;</code> </td> <td> U+003C3 </td> <td> <span class="glyph" title="">&#207;&#131;</span> </td> </tr><tr id="entity-sigmaf"><td> <code title="">sigmaf;</code> </td> <td> U+003C2 </td> <td> <span class="glyph" title="">&#207;&#130;</span> </td> </tr><tr id="entity-sigmav"><td> <code title="">sigmav;</code> </td> <td> U+003C2 </td> <td> <span class="glyph" title="">&#207;&#130;</span> </td> </tr><tr id="entity-sim"><td> <code title="">sim;</code> </td> <td> U+0223C </td> <td> <span class="glyph" title="">&#226;&#136;&#188;</span> </td> </tr><tr id="entity-simdot"><td> <code title="">simdot;</code> </td> <td> U+02A6A </td> <td> <span class="glyph" title="">&#226;&#169;&#170;</span> </td> </tr><tr id="entity-sime"><td> <code title="">sime;</code> </td> <td> U+02243 </td> <td> <span class="glyph" title="">&#226;&#137;&#131;</span> </td> </tr><tr id="entity-simeq"><td> <code title="">simeq;</code> </td> <td> U+02243 </td> <td> <span class="glyph" title="">&#226;&#137;&#131;</span> </td> </tr><tr id="entity-simg"><td> <code title="">simg;</code> </td> <td> U+02A9E </td> <td> <span class="glyph" title="">&#226;&#170;&#158;</span> </td> </tr><tr id="entity-simgE"><td> <code title="">simgE;</code> </td> <td> U+02AA0 </td> <td> <span class="glyph" title="">&#226;&#170;&#160;</span> </td> </tr><tr id="entity-siml"><td> <code title="">siml;</code> </td> <td> U+02A9D </td> <td> <span class="glyph" title="">&#226;&#170;&#157;</span> </td> </tr><tr id="entity-simlE"><td> <code title="">simlE;</code> </td> <td> U+02A9F </td> <td> <span class="glyph" title="">&#226;&#170;&#159;</span> </td> </tr><tr id="entity-simne"><td> <code title="">simne;</code> </td> <td> U+02246 </td> <td> <span class="glyph" title="">&#226;&#137;&#134;</span> </td> </tr><tr id="entity-simplus"><td> <code title="">simplus;</code> </td> <td> U+02A24 </td> <td> <span class="glyph" title="">&#226;&#168;&#164;</span> </td> </tr><tr id="entity-simrarr"><td> <code title="">simrarr;</code> </td> <td> U+02972 </td> <td> <span class="glyph" title="">&#226;&#165;&#178;</span> </td> </tr><tr id="entity-slarr"><td> <code title="">slarr;</code> </td> <td> U+02190 </td> <td> <span class="glyph" title="">&#226;&#134;&#144;</span> </td> </tr><tr id="entity-SmallCircle"><td> <code title="">SmallCircle;</code> </td> <td> U+02218 </td> <td> <span class="glyph" title="">&#226;&#136;&#152;</span> </td> </tr><tr id="entity-smallsetminus"><td> <code title="">smallsetminus;</code> </td> <td> U+02216 </td> <td> <span class="glyph" title="">&#226;&#136;&#150;</span> </td> </tr><tr id="entity-smashp"><td> <code title="">smashp;</code> </td> <td> U+02A33 </td> <td> <span class="glyph" title="">&#226;&#168;&#179;</span> </td> </tr><tr id="entity-smeparsl"><td> <code title="">smeparsl;</code> </td> <td> U+029E4 </td> <td> <span class="glyph" title="">&#226;&#167;&#164;</span> </td> </tr><tr id="entity-smid"><td> <code title="">smid;</code> </td> <td> U+02223 </td> <td> <span class="glyph" title="">&#226;&#136;&#163;</span> </td> </tr><tr id="entity-smile"><td> <code title="">smile;</code> </td> <td> U+02323 </td> <td> <span class="glyph" title="">&#226;&#140;&#163;</span> </td> </tr><tr id="entity-smt"><td> <code title="">smt;</code> </td> <td> U+02AAA </td> <td> <span class="glyph" title="">&#226;&#170;&#170;</span> </td> </tr><tr id="entity-smte"><td> <code title="">smte;</code> </td> <td> U+02AAC </td> <td> <span class="glyph" title="">&#226;&#170;&#172;</span> </td> </tr><tr id="entity-smtes"><td> <code title="">smtes;</code> </td> <td> U+02AAC U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#170;&#172;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-SOFTcy"><td> <code title="">SOFTcy;</code> </td> <td> U+0042C </td> <td> <span class="glyph" title="">&#208;&#172;</span> </td> </tr><tr id="entity-softcy"><td> <code title="">softcy;</code> </td> <td> U+0044C </td> <td> <span class="glyph" title="">&#209;&#140;</span> </td> </tr><tr id="entity-sol"><td> <code title="">sol;</code> </td> <td> U+0002F </td> <td> <span class="glyph" title="">/</span> </td> </tr><tr id="entity-solb"><td> <code title="">solb;</code> </td> <td> U+029C4 </td> <td> <span class="glyph" title="">&#226;&#167;&#132;</span> </td> </tr><tr id="entity-solbar"><td> <code title="">solbar;</code> </td> <td> U+0233F </td> <td> <span class="glyph" title="">&#226;&#140;&#191;</span> </td> </tr><tr id="entity-Sopf"><td> <code title="">Sopf;</code> </td> <td> U+1D54A </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#138;</span> </td> </tr><tr id="entity-sopf"><td> <code title="">sopf;</code> </td> <td> U+1D564 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#164;</span> </td> </tr><tr id="entity-spades"><td> <code title="">spades;</code> </td> <td> U+02660 </td> <td> <span class="glyph" title="">&#226;&#153;&#160;</span> </td> </tr><tr id="entity-spadesuit"><td> <code title="">spadesuit;</code> </td> <td> U+02660 </td> <td> <span class="glyph" title="">&#226;&#153;&#160;</span> </td> </tr><tr id="entity-spar"><td> <code title="">spar;</code> </td> <td> U+02225 </td> <td> <span class="glyph" title="">&#226;&#136;&#165;</span> </td> </tr><tr id="entity-sqcap"><td> <code title="">sqcap;</code> </td> <td> U+02293 </td> <td> <span class="glyph" title="">&#226;&#138;&#147;</span> </td> </tr><tr id="entity-sqcaps"><td> <code title="">sqcaps;</code> </td> <td> U+02293 U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#138;&#147;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-sqcup"><td> <code title="">sqcup;</code> </td> <td> U+02294 </td> <td> <span class="glyph" title="">&#226;&#138;&#148;</span> </td> </tr><tr id="entity-sqcups"><td> <code title="">sqcups;</code> </td> <td> U+02294 U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#138;&#148;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-Sqrt"><td> <code title="">Sqrt;</code> </td> <td> U+0221A </td> <td> <span class="glyph" title="">&#226;&#136;&#154;</span> </td> </tr><tr id="entity-sqsub"><td> <code title="">sqsub;</code> </td> <td> U+0228F </td> <td> <span class="glyph" title="">&#226;&#138;&#143;</span> </td> </tr><tr id="entity-sqsube"><td> <code title="">sqsube;</code> </td> <td> U+02291 </td> <td> <span class="glyph" title="">&#226;&#138;&#145;</span> </td> </tr><tr id="entity-sqsubset"><td> <code title="">sqsubset;</code> </td> <td> U+0228F </td> <td> <span class="glyph" title="">&#226;&#138;&#143;</span> </td> </tr><tr id="entity-sqsubseteq"><td> <code title="">sqsubseteq;</code> </td> <td> U+02291 </td> <td> <span class="glyph" title="">&#226;&#138;&#145;</span> </td> </tr><tr id="entity-sqsup"><td> <code title="">sqsup;</code> </td> <td> U+02290 </td> <td> <span class="glyph" title="">&#226;&#138;&#144;</span> </td> </tr><tr id="entity-sqsupe"><td> <code title="">sqsupe;</code> </td> <td> U+02292 </td> <td> <span class="glyph" title="">&#226;&#138;&#146;</span> </td> </tr><tr id="entity-sqsupset"><td> <code title="">sqsupset;</code> </td> <td> U+02290 </td> <td> <span class="glyph" title="">&#226;&#138;&#144;</span> </td> </tr><tr id="entity-sqsupseteq"><td> <code title="">sqsupseteq;</code> </td> <td> U+02292 </td> <td> <span class="glyph" title="">&#226;&#138;&#146;</span> </td> </tr><tr id="entity-squ"><td> <code title="">squ;</code> </td> <td> U+025A1 </td> <td> <span class="glyph" title="">&#226;&#150;&#161;</span> </td> </tr><tr id="entity-Square"><td> <code title="">Square;</code> </td> <td> U+025A1 </td> <td> <span class="glyph" title="">&#226;&#150;&#161;</span> </td> </tr><tr id="entity-square"><td> <code title="">square;</code> </td> <td> U+025A1 </td> <td> <span class="glyph" title="">&#226;&#150;&#161;</span> </td> </tr><tr id="entity-SquareIntersection"><td> <code title="">SquareIntersection;</code> </td> <td> U+02293 </td> <td> <span class="glyph" title="">&#226;&#138;&#147;</span> </td> </tr><tr id="entity-SquareSubset"><td> <code title="">SquareSubset;</code> </td> <td> U+0228F </td> <td> <span class="glyph" title="">&#226;&#138;&#143;</span> </td> </tr><tr id="entity-SquareSubsetEqual"><td> <code title="">SquareSubsetEqual;</code> </td> <td> U+02291 </td> <td> <span class="glyph" title="">&#226;&#138;&#145;</span> </td> </tr><tr id="entity-SquareSuperset"><td> <code title="">SquareSuperset;</code> </td> <td> U+02290 </td> <td> <span class="glyph" title="">&#226;&#138;&#144;</span> </td> </tr><tr id="entity-SquareSupersetEqual"><td> <code title="">SquareSupersetEqual;</code> </td> <td> U+02292 </td> <td> <span class="glyph" title="">&#226;&#138;&#146;</span> </td> </tr><tr id="entity-SquareUnion"><td> <code title="">SquareUnion;</code> </td> <td> U+02294 </td> <td> <span class="glyph" title="">&#226;&#138;&#148;</span> </td> </tr><tr id="entity-squarf"><td> <code title="">squarf;</code> </td> <td> U+025AA </td> <td> <span class="glyph" title="">&#226;&#150;&#170;</span> </td> </tr><tr id="entity-squf"><td> <code title="">squf;</code> </td> <td> U+025AA </td> <td> <span class="glyph" title="">&#226;&#150;&#170;</span> </td> </tr><tr id="entity-srarr"><td> <code title="">srarr;</code> </td> <td> U+02192 </td> <td> <span class="glyph" title="">&#226;&#134;&#146;</span> </td> </tr><tr id="entity-Sscr"><td> <code title="">Sscr;</code> </td> <td> U+1D4AE </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#174;</span> </td> </tr><tr id="entity-sscr"><td> <code title="">sscr;</code> </td> <td> U+1D4C8 </td> <td> <span class="glyph" title="">&#240;&#157;&#147;&#136;</span> </td> </tr><tr id="entity-ssetmn"><td> <code title="">ssetmn;</code> </td> <td> U+02216 </td> <td> <span class="glyph" title="">&#226;&#136;&#150;</span> </td> </tr><tr id="entity-ssmile"><td> <code title="">ssmile;</code> </td> <td> U+02323 </td> <td> <span class="glyph" title="">&#226;&#140;&#163;</span> </td> </tr><tr id="entity-sstarf"><td> <code title="">sstarf;</code> </td> <td> U+022C6 </td> <td> <span class="glyph" title="">&#226;&#139;&#134;</span> </td> </tr><tr id="entity-Star"><td> <code title="">Star;</code> </td> <td> U+022C6 </td> <td> <span class="glyph" title="">&#226;&#139;&#134;</span> </td> </tr><tr id="entity-star"><td> <code title="">star;</code> </td> <td> U+02606 </td> <td> <span class="glyph" title="">&#226;&#152;&#134;</span> </td> </tr><tr id="entity-starf"><td> <code title="">starf;</code> </td> <td> U+02605 </td> <td> <span class="glyph" title="">&#226;&#152;&#133;</span> </td> </tr><tr id="entity-straightepsilon"><td> <code title="">straightepsilon;</code> </td> <td> U+003F5 </td> <td> <span class="glyph" title="">&#207;&#181;</span> </td> </tr><tr id="entity-straightphi"><td> <code title="">straightphi;</code> </td> <td> U+003D5 </td> <td> <span class="glyph" title="">&#207;&#149;</span> </td> </tr><tr id="entity-strns"><td> <code title="">strns;</code> </td> <td> U+000AF </td> <td> <span class="glyph" title="">&#194;&#175;</span> </td> </tr><tr id="entity-Sub"><td> <code title="">Sub;</code> </td> <td> U+022D0 </td> <td> <span class="glyph" title="">&#226;&#139;&#144;</span> </td> </tr><tr id="entity-sub"><td> <code title="">sub;</code> </td> <td> U+02282 </td> <td> <span class="glyph" title="">&#226;&#138;&#130;</span> </td> </tr><tr id="entity-subdot"><td> <code title="">subdot;</code> </td> <td> U+02ABD </td> <td> <span class="glyph" title="">&#226;&#170;&#189;</span> </td> </tr><tr id="entity-subE"><td> <code title="">subE;</code> </td> <td> U+02AC5 </td> <td> <span class="glyph" title="">&#226;&#171;&#133;</span> </td> </tr><tr id="entity-sube"><td> <code title="">sube;</code> </td> <td> U+02286 </td> <td> <span class="glyph" title="">&#226;&#138;&#134;</span> </td> </tr><tr id="entity-subedot"><td> <code title="">subedot;</code> </td> <td> U+02AC3 </td> <td> <span class="glyph" title="">&#226;&#171;&#131;</span> </td> </tr><tr id="entity-submult"><td> <code title="">submult;</code> </td> <td> U+02AC1 </td> <td> <span class="glyph" title="">&#226;&#171;&#129;</span> </td> </tr><tr id="entity-subnE"><td> <code title="">subnE;</code> </td> <td> U+02ACB </td> <td> <span class="glyph" title="">&#226;&#171;&#139;</span> </td> </tr><tr id="entity-subne"><td> <code title="">subne;</code> </td> <td> U+0228A </td> <td> <span class="glyph" title="">&#226;&#138;&#138;</span> </td> </tr><tr id="entity-subplus"><td> <code title="">subplus;</code> </td> <td> U+02ABF </td> <td> <span class="glyph" title="">&#226;&#170;&#191;</span> </td> </tr><tr id="entity-subrarr"><td> <code title="">subrarr;</code> </td> <td> U+02979 </td> <td> <span class="glyph" title="">&#226;&#165;&#185;</span> </td> </tr><tr id="entity-Subset"><td> <code title="">Subset;</code> </td> <td> U+022D0 </td> <td> <span class="glyph" title="">&#226;&#139;&#144;</span> </td> </tr><tr id="entity-subset"><td> <code title="">subset;</code> </td> <td> U+02282 </td> <td> <span class="glyph" title="">&#226;&#138;&#130;</span> </td> </tr><tr id="entity-subseteq"><td> <code title="">subseteq;</code> </td> <td> U+02286 </td> <td> <span class="glyph" title="">&#226;&#138;&#134;</span> </td> </tr><tr id="entity-subseteqq"><td> <code title="">subseteqq;</code> </td> <td> U+02AC5 </td> <td> <span class="glyph" title="">&#226;&#171;&#133;</span> </td> </tr><tr id="entity-SubsetEqual"><td> <code title="">SubsetEqual;</code> </td> <td> U+02286 </td> <td> <span class="glyph" title="">&#226;&#138;&#134;</span> </td> </tr><tr id="entity-subsetneq"><td> <code title="">subsetneq;</code> </td> <td> U+0228A </td> <td> <span class="glyph" title="">&#226;&#138;&#138;</span> </td> </tr><tr id="entity-subsetneqq"><td> <code title="">subsetneqq;</code> </td> <td> U+02ACB </td> <td> <span class="glyph" title="">&#226;&#171;&#139;</span> </td> </tr><tr id="entity-subsim"><td> <code title="">subsim;</code> </td> <td> U+02AC7 </td> <td> <span class="glyph" title="">&#226;&#171;&#135;</span> </td> </tr><tr id="entity-subsub"><td> <code title="">subsub;</code> </td> <td> U+02AD5 </td> <td> <span class="glyph" title="">&#226;&#171;&#149;</span> </td> </tr><tr id="entity-subsup"><td> <code title="">subsup;</code> </td> <td> U+02AD3 </td> <td> <span class="glyph" title="">&#226;&#171;&#147;</span> </td> </tr><tr id="entity-succ"><td> <code title="">succ;</code> </td> <td> U+0227B </td> <td> <span class="glyph" title="">&#226;&#137;&#187;</span> </td> </tr><tr id="entity-succapprox"><td> <code title="">succapprox;</code> </td> <td> U+02AB8 </td> <td> <span class="glyph" title="">&#226;&#170;&#184;</span> </td> </tr><tr id="entity-succcurlyeq"><td> <code title="">succcurlyeq;</code> </td> <td> U+0227D </td> <td> <span class="glyph" title="">&#226;&#137;&#189;</span> </td> </tr><tr id="entity-Succeeds"><td> <code title="">Succeeds;</code> </td> <td> U+0227B </td> <td> <span class="glyph" title="">&#226;&#137;&#187;</span> </td> </tr><tr id="entity-SucceedsEqual"><td> <code title="">SucceedsEqual;</code> </td> <td> U+02AB0 </td> <td> <span class="glyph" title="">&#226;&#170;&#176;</span> </td> </tr><tr id="entity-SucceedsSlantEqual"><td> <code title="">SucceedsSlantEqual;</code> </td> <td> U+0227D </td> <td> <span class="glyph" title="">&#226;&#137;&#189;</span> </td> </tr><tr id="entity-SucceedsTilde"><td> <code title="">SucceedsTilde;</code> </td> <td> U+0227F </td> <td> <span class="glyph" title="">&#226;&#137;&#191;</span> </td> </tr><tr id="entity-succeq"><td> <code title="">succeq;</code> </td> <td> U+02AB0 </td> <td> <span class="glyph" title="">&#226;&#170;&#176;</span> </td> </tr><tr id="entity-succnapprox"><td> <code title="">succnapprox;</code> </td> <td> U+02ABA </td> <td> <span class="glyph" title="">&#226;&#170;&#186;</span> </td> </tr><tr id="entity-succneqq"><td> <code title="">succneqq;</code> </td> <td> U+02AB6 </td> <td> <span class="glyph" title="">&#226;&#170;&#182;</span> </td> </tr><tr id="entity-succnsim"><td> <code title="">succnsim;</code> </td> <td> U+022E9 </td> <td> <span class="glyph" title="">&#226;&#139;&#169;</span> </td> </tr><tr id="entity-succsim"><td> <code title="">succsim;</code> </td> <td> U+0227F </td> <td> <span class="glyph" title="">&#226;&#137;&#191;</span> </td> </tr><tr id="entity-SuchThat"><td> <code title="">SuchThat;</code> </td> <td> U+0220B </td> <td> <span class="glyph" title="">&#226;&#136;&#139;</span> </td> </tr><tr id="entity-Sum"><td> <code title="">Sum;</code> </td> <td> U+02211 </td> <td> <span class="glyph" title="">&#226;&#136;&#145;</span> </td> </tr><tr id="entity-sum"><td> <code title="">sum;</code> </td> <td> U+02211 </td> <td> <span class="glyph" title="">&#226;&#136;&#145;</span> </td> </tr><tr id="entity-sung"><td> <code title="">sung;</code> </td> <td> U+0266A </td> <td> <span class="glyph" title="">&#226;&#153;&#170;</span> </td> </tr><tr id="entity-Sup"><td> <code title="">Sup;</code> </td> <td> U+022D1 </td> <td> <span class="glyph" title="">&#226;&#139;&#145;</span> </td> </tr><tr id="entity-sup"><td> <code title="">sup;</code> </td> <td> U+02283 </td> <td> <span class="glyph" title="">&#226;&#138;&#131;</span> </td> </tr><tr id="entity-sup1"><td> <code title="">sup1;</code> </td> <td> U+000B9 </td> <td> <span class="glyph" title="">&#194;&#185;</span> </td> </tr><tr class="impl" id="entity-sup1-legacy"><td> <code title="">sup1</code> </td> <td> U+000B9 </td> <td> <span title="">&#194;&#185;</span> </td> </tr><tr id="entity-sup2"><td> <code title="">sup2;</code> </td> <td> U+000B2 </td> <td> <span class="glyph" title="">&#194;&#178;</span> </td> </tr><tr class="impl" id="entity-sup2-legacy"><td> <code title="">sup2</code> </td> <td> U+000B2 </td> <td> <span title="">&#194;&#178;</span> </td> </tr><tr id="entity-sup3"><td> <code title="">sup3;</code> </td> <td> U+000B3 </td> <td> <span class="glyph" title="">&#194;&#179;</span> </td> </tr><tr class="impl" id="entity-sup3-legacy"><td> <code title="">sup3</code> </td> <td> U+000B3 </td> <td> <span title="">&#194;&#179;</span> </td> </tr><tr id="entity-supdot"><td> <code title="">supdot;</code> </td> <td> U+02ABE </td> <td> <span class="glyph" title="">&#226;&#170;&#190;</span> </td> </tr><tr id="entity-supdsub"><td> <code title="">supdsub;</code> </td> <td> U+02AD8 </td> <td> <span class="glyph" title="">&#226;&#171;&#152;</span> </td> </tr><tr id="entity-supE"><td> <code title="">supE;</code> </td> <td> U+02AC6 </td> <td> <span class="glyph" title="">&#226;&#171;&#134;</span> </td> </tr><tr id="entity-supe"><td> <code title="">supe;</code> </td> <td> U+02287 </td> <td> <span class="glyph" title="">&#226;&#138;&#135;</span> </td> </tr><tr id="entity-supedot"><td> <code title="">supedot;</code> </td> <td> U+02AC4 </td> <td> <span class="glyph" title="">&#226;&#171;&#132;</span> </td> </tr><tr id="entity-Superset"><td> <code title="">Superset;</code> </td> <td> U+02283 </td> <td> <span class="glyph" title="">&#226;&#138;&#131;</span> </td> </tr><tr id="entity-SupersetEqual"><td> <code title="">SupersetEqual;</code> </td> <td> U+02287 </td> <td> <span class="glyph" title="">&#226;&#138;&#135;</span> </td> </tr><tr id="entity-suphsol"><td> <code title="">suphsol;</code> </td> <td> U+027C9 </td> <td> <span class="glyph" title="">&#226;&#159;&#137;</span> </td> </tr><tr id="entity-suphsub"><td> <code title="">suphsub;</code> </td> <td> U+02AD7 </td> <td> <span class="glyph" title="">&#226;&#171;&#151;</span> </td> </tr><tr id="entity-suplarr"><td> <code title="">suplarr;</code> </td> <td> U+0297B </td> <td> <span class="glyph" title="">&#226;&#165;&#187;</span> </td> </tr><tr id="entity-supmult"><td> <code title="">supmult;</code> </td> <td> U+02AC2 </td> <td> <span class="glyph" title="">&#226;&#171;&#130;</span> </td> </tr><tr id="entity-supnE"><td> <code title="">supnE;</code> </td> <td> U+02ACC </td> <td> <span class="glyph" title="">&#226;&#171;&#140;</span> </td> </tr><tr id="entity-supne"><td> <code title="">supne;</code> </td> <td> U+0228B </td> <td> <span class="glyph" title="">&#226;&#138;&#139;</span> </td> </tr><tr id="entity-supplus"><td> <code title="">supplus;</code> </td> <td> U+02AC0 </td> <td> <span class="glyph" title="">&#226;&#171;&#128;</span> </td> </tr><tr id="entity-Supset"><td> <code title="">Supset;</code> </td> <td> U+022D1 </td> <td> <span class="glyph" title="">&#226;&#139;&#145;</span> </td> </tr><tr id="entity-supset"><td> <code title="">supset;</code> </td> <td> U+02283 </td> <td> <span class="glyph" title="">&#226;&#138;&#131;</span> </td> </tr><tr id="entity-supseteq"><td> <code title="">supseteq;</code> </td> <td> U+02287 </td> <td> <span class="glyph" title="">&#226;&#138;&#135;</span> </td> </tr><tr id="entity-supseteqq"><td> <code title="">supseteqq;</code> </td> <td> U+02AC6 </td> <td> <span class="glyph" title="">&#226;&#171;&#134;</span> </td> </tr><tr id="entity-supsetneq"><td> <code title="">supsetneq;</code> </td> <td> U+0228B </td> <td> <span class="glyph" title="">&#226;&#138;&#139;</span> </td> </tr><tr id="entity-supsetneqq"><td> <code title="">supsetneqq;</code> </td> <td> U+02ACC </td> <td> <span class="glyph" title="">&#226;&#171;&#140;</span> </td> </tr><tr id="entity-supsim"><td> <code title="">supsim;</code> </td> <td> U+02AC8 </td> <td> <span class="glyph" title="">&#226;&#171;&#136;</span> </td> </tr><tr id="entity-supsub"><td> <code title="">supsub;</code> </td> <td> U+02AD4 </td> <td> <span class="glyph" title="">&#226;&#171;&#148;</span> </td> </tr><tr id="entity-supsup"><td> <code title="">supsup;</code> </td> <td> U+02AD6 </td> <td> <span class="glyph" title="">&#226;&#171;&#150;</span> </td> </tr><tr id="entity-swarhk"><td> <code title="">swarhk;</code> </td> <td> U+02926 </td> <td> <span class="glyph" title="">&#226;&#164;&#166;</span> </td> </tr><tr id="entity-swArr"><td> <code title="">swArr;</code> </td> <td> U+021D9 </td> <td> <span class="glyph" title="">&#226;&#135;&#153;</span> </td> </tr><tr id="entity-swarr"><td> <code title="">swarr;</code> </td> <td> U+02199 </td> <td> <span class="glyph" title="">&#226;&#134;&#153;</span> </td> </tr><tr id="entity-swarrow"><td> <code title="">swarrow;</code> </td> <td> U+02199 </td> <td> <span class="glyph" title="">&#226;&#134;&#153;</span> </td> </tr><tr id="entity-swnwar"><td> <code title="">swnwar;</code> </td> <td> U+0292A </td> <td> <span class="glyph" title="">&#226;&#164;&#170;</span> </td> </tr><tr id="entity-szlig"><td> <code title="">szlig;</code> </td> <td> U+000DF </td> <td> <span class="glyph" title="">&#195;&#159;</span> </td> </tr><tr class="impl" id="entity-szlig-legacy"><td> <code title="">szlig</code> </td> <td> U+000DF </td> <td> <span title="">&#195;&#159;</span> </td> </tr><tr id="entity-Tab"><td> <code title="">Tab;</code> </td> <td> U+00009 </td> <td> <span class="glyph control" title="">&#226;&#144;&#137;</span> </td> </tr><tr id="entity-target"><td> <code title="">target;</code> </td> <td> U+02316 </td> <td> <span class="glyph" title="">&#226;&#140;&#150;</span> </td> </tr><tr id="entity-Tau"><td> <code title="">Tau;</code> </td> <td> U+003A4 </td> <td> <span class="glyph" title="">&#206;&#164;</span> </td> </tr><tr id="entity-tau"><td> <code title="">tau;</code> </td> <td> U+003C4 </td> <td> <span class="glyph" title="">&#207;&#132;</span> </td> </tr><tr id="entity-tbrk"><td> <code title="">tbrk;</code> </td> <td> U+023B4 </td> <td> <span class="glyph" title="">&#226;&#142;&#180;</span> </td> </tr><tr id="entity-Tcaron"><td> <code title="">Tcaron;</code> </td> <td> U+00164 </td> <td> <span class="glyph" title="">&#197;&#164;</span> </td> </tr><tr id="entity-tcaron"><td> <code title="">tcaron;</code> </td> <td> U+00165 </td> <td> <span class="glyph" title="">&#197;&#165;</span> </td> </tr><tr id="entity-Tcedil"><td> <code title="">Tcedil;</code> </td> <td> U+00162 </td> <td> <span class="glyph" title="">&#197;&#162;</span> </td> </tr><tr id="entity-tcedil"><td> <code title="">tcedil;</code> </td> <td> U+00163 </td> <td> <span class="glyph" title="">&#197;&#163;</span> </td> </tr><tr id="entity-Tcy"><td> <code title="">Tcy;</code> </td> <td> U+00422 </td> <td> <span class="glyph" title="">&#208;&#162;</span> </td> </tr><tr id="entity-tcy"><td> <code title="">tcy;</code> </td> <td> U+00442 </td> <td> <span class="glyph" title="">&#209;&#130;</span> </td> </tr><tr id="entity-tdot"><td> <code title="">tdot;</code> </td> <td> U+020DB </td> <td> <span class="glyph composition" title="">&#226;&#151;&#140;&#226;&#131;&#155;</span> </td> </tr><tr id="entity-telrec"><td> <code title="">telrec;</code> </td> <td> U+02315 </td> <td> <span class="glyph" title="">&#226;&#140;&#149;</span> </td> </tr><tr id="entity-Tfr"><td> <code title="">Tfr;</code> </td> <td> U+1D517 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#151;</span> </td> </tr><tr id="entity-tfr"><td> <code title="">tfr;</code> </td> <td> U+1D531 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#177;</span> </td> </tr><tr id="entity-there4"><td> <code title="">there4;</code> </td> <td> U+02234 </td> <td> <span class="glyph" title="">&#226;&#136;&#180;</span> </td> </tr><tr id="entity-Therefore"><td> <code title="">Therefore;</code> </td> <td> U+02234 </td> <td> <span class="glyph" title="">&#226;&#136;&#180;</span> </td> </tr><tr id="entity-therefore"><td> <code title="">therefore;</code> </td> <td> U+02234 </td> <td> <span class="glyph" title="">&#226;&#136;&#180;</span> </td> </tr><tr id="entity-Theta"><td> <code title="">Theta;</code> </td> <td> U+00398 </td> <td> <span class="glyph" title="">&#206;&#152;</span> </td> </tr><tr id="entity-theta"><td> <code title="">theta;</code> </td> <td> U+003B8 </td> <td> <span class="glyph" title="">&#206;&#184;</span> </td> </tr><tr id="entity-thetasym"><td> <code title="">thetasym;</code> </td> <td> U+003D1 </td> <td> <span class="glyph" title="">&#207;&#145;</span> </td> </tr><tr id="entity-thetav"><td> <code title="">thetav;</code> </td> <td> U+003D1 </td> <td> <span class="glyph" title="">&#207;&#145;</span> </td> </tr><tr id="entity-thickapprox"><td> <code title="">thickapprox;</code> </td> <td> U+02248 </td> <td> <span class="glyph" title="">&#226;&#137;&#136;</span> </td> </tr><tr id="entity-thicksim"><td> <code title="">thicksim;</code> </td> <td> U+0223C </td> <td> <span class="glyph" title="">&#226;&#136;&#188;</span> </td> </tr><tr id="entity-ThickSpace"><td> <code title="">ThickSpace;</code> </td> <td> U+0205F U+0200A </td> <td> <span class="glyph compound" title="">&#226;&#129;&#159;&#226;&#128;&#138;</span> </td> </tr><tr id="entity-thinsp"><td> <code title="">thinsp;</code> </td> <td> U+02009 </td> <td> <span class="glyph" title="">&#226;&#128;&#137;</span> </td> </tr><tr id="entity-ThinSpace"><td> <code title="">ThinSpace;</code> </td> <td> U+02009 </td> <td> <span class="glyph" title="">&#226;&#128;&#137;</span> </td> </tr><tr id="entity-thkap"><td> <code title="">thkap;</code> </td> <td> U+02248 </td> <td> <span class="glyph" title="">&#226;&#137;&#136;</span> </td> </tr><tr id="entity-thksim"><td> <code title="">thksim;</code> </td> <td> U+0223C </td> <td> <span class="glyph" title="">&#226;&#136;&#188;</span> </td> </tr><tr id="entity-THORN"><td> <code title="">THORN;</code> </td> <td> U+000DE </td> <td> <span class="glyph" title="">&#195;&#158;</span> </td> </tr><tr class="impl" id="entity-THORN-legacy"><td> <code title="">THORN</code> </td> <td> U+000DE </td> <td> <span title="">&#195;&#158;</span> </td> </tr><tr id="entity-thorn"><td> <code title="">thorn;</code> </td> <td> U+000FE </td> <td> <span class="glyph" title="">&#195;&#190;</span> </td> </tr><tr class="impl" id="entity-thorn-legacy"><td> <code title="">thorn</code> </td> <td> U+000FE </td> <td> <span title="">&#195;&#190;</span> </td> </tr><tr id="entity-Tilde"><td> <code title="">Tilde;</code> </td> <td> U+0223C </td> <td> <span class="glyph" title="">&#226;&#136;&#188;</span> </td> </tr><tr id="entity-tilde"><td> <code title="">tilde;</code> </td> <td> U+002DC </td> <td> <span class="glyph" title="">&#203;&#156;</span> </td> </tr><tr id="entity-TildeEqual"><td> <code title="">TildeEqual;</code> </td> <td> U+02243 </td> <td> <span class="glyph" title="">&#226;&#137;&#131;</span> </td> </tr><tr id="entity-TildeFullEqual"><td> <code title="">TildeFullEqual;</code> </td> <td> U+02245 </td> <td> <span class="glyph" title="">&#226;&#137;&#133;</span> </td> </tr><tr id="entity-TildeTilde"><td> <code title="">TildeTilde;</code> </td> <td> U+02248 </td> <td> <span class="glyph" title="">&#226;&#137;&#136;</span> </td> </tr><tr id="entity-times"><td> <code title="">times;</code> </td> <td> U+000D7 </td> <td> <span class="glyph" title="">&#195;&#151;</span> </td> </tr><tr class="impl" id="entity-times-legacy"><td> <code title="">times</code> </td> <td> U+000D7 </td> <td> <span title="">&#195;&#151;</span> </td> </tr><tr id="entity-timesb"><td> <code title="">timesb;</code> </td> <td> U+022A0 </td> <td> <span class="glyph" title="">&#226;&#138;&#160;</span> </td> </tr><tr id="entity-timesbar"><td> <code title="">timesbar;</code> </td> <td> U+02A31 </td> <td> <span class="glyph" title="">&#226;&#168;&#177;</span> </td> </tr><tr id="entity-timesd"><td> <code title="">timesd;</code> </td> <td> U+02A30 </td> <td> <span class="glyph" title="">&#226;&#168;&#176;</span> </td> </tr><tr id="entity-tint"><td> <code title="">tint;</code> </td> <td> U+0222D </td> <td> <span class="glyph" title="">&#226;&#136;&#173;</span> </td> </tr><tr id="entity-toea"><td> <code title="">toea;</code> </td> <td> U+02928 </td> <td> <span class="glyph" title="">&#226;&#164;&#168;</span> </td> </tr><tr id="entity-top"><td> <code title="">top;</code> </td> <td> U+022A4 </td> <td> <span class="glyph" title="">&#226;&#138;&#164;</span> </td> </tr><tr id="entity-topbot"><td> <code title="">topbot;</code> </td> <td> U+02336 </td> <td> <span class="glyph" title="">&#226;&#140;&#182;</span> </td> </tr><tr id="entity-topcir"><td> <code title="">topcir;</code> </td> <td> U+02AF1 </td> <td> <span class="glyph" title="">&#226;&#171;&#177;</span> </td> </tr><tr id="entity-Topf"><td> <code title="">Topf;</code> </td> <td> U+1D54B </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#139;</span> </td> </tr><tr id="entity-topf"><td> <code title="">topf;</code> </td> <td> U+1D565 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#165;</span> </td> </tr><tr id="entity-topfork"><td> <code title="">topfork;</code> </td> <td> U+02ADA </td> <td> <span class="glyph" title="">&#226;&#171;&#154;</span> </td> </tr><tr id="entity-tosa"><td> <code title="">tosa;</code> </td> <td> U+02929 </td> <td> <span class="glyph" title="">&#226;&#164;&#169;</span> </td> </tr><tr id="entity-tprime"><td> <code title="">tprime;</code> </td> <td> U+02034 </td> <td> <span class="glyph" title="">&#226;&#128;&#180;</span> </td> </tr><tr id="entity-TRADE"><td> <code title="">TRADE;</code> </td> <td> U+02122 </td> <td> <span class="glyph" title="">&#226;&#132;&#162;</span> </td> </tr><tr id="entity-trade"><td> <code title="">trade;</code> </td> <td> U+02122 </td> <td> <span class="glyph" title="">&#226;&#132;&#162;</span> </td> </tr><tr id="entity-triangle"><td> <code title="">triangle;</code> </td> <td> U+025B5 </td> <td> <span class="glyph" title="">&#226;&#150;&#181;</span> </td> </tr><tr id="entity-triangledown"><td> <code title="">triangledown;</code> </td> <td> U+025BF </td> <td> <span class="glyph" title="">&#226;&#150;&#191;</span> </td> </tr><tr id="entity-triangleleft"><td> <code title="">triangleleft;</code> </td> <td> U+025C3 </td> <td> <span class="glyph" title="">&#226;&#151;&#131;</span> </td> </tr><tr id="entity-trianglelefteq"><td> <code title="">trianglelefteq;</code> </td> <td> U+022B4 </td> <td> <span class="glyph" title="">&#226;&#138;&#180;</span> </td> </tr><tr id="entity-triangleq"><td> <code title="">triangleq;</code> </td> <td> U+0225C </td> <td> <span class="glyph" title="">&#226;&#137;&#156;</span> </td> </tr><tr id="entity-triangleright"><td> <code title="">triangleright;</code> </td> <td> U+025B9 </td> <td> <span class="glyph" title="">&#226;&#150;&#185;</span> </td> </tr><tr id="entity-trianglerighteq"><td> <code title="">trianglerighteq;</code> </td> <td> U+022B5 </td> <td> <span class="glyph" title="">&#226;&#138;&#181;</span> </td> </tr><tr id="entity-tridot"><td> <code title="">tridot;</code> </td> <td> U+025EC </td> <td> <span class="glyph" title="">&#226;&#151;&#172;</span> </td> </tr><tr id="entity-trie"><td> <code title="">trie;</code> </td> <td> U+0225C </td> <td> <span class="glyph" title="">&#226;&#137;&#156;</span> </td> </tr><tr id="entity-triminus"><td> <code title="">triminus;</code> </td> <td> U+02A3A </td> <td> <span class="glyph" title="">&#226;&#168;&#186;</span> </td> </tr><tr id="entity-TripleDot"><td> <code title="">TripleDot;</code> </td> <td> U+020DB </td> <td> <span class="glyph composition" title="">&#226;&#151;&#140;&#226;&#131;&#155;</span> </td> </tr><tr id="entity-triplus"><td> <code title="">triplus;</code> </td> <td> U+02A39 </td> <td> <span class="glyph" title="">&#226;&#168;&#185;</span> </td> </tr><tr id="entity-trisb"><td> <code title="">trisb;</code> </td> <td> U+029CD </td> <td> <span class="glyph" title="">&#226;&#167;&#141;</span> </td> </tr><tr id="entity-tritime"><td> <code title="">tritime;</code> </td> <td> U+02A3B </td> <td> <span class="glyph" title="">&#226;&#168;&#187;</span> </td> </tr><tr id="entity-trpezium"><td> <code title="">trpezium;</code> </td> <td> U+023E2 </td> <td> <span class="glyph" title="">&#226;&#143;&#162;</span> </td> </tr><tr id="entity-Tscr"><td> <code title="">Tscr;</code> </td> <td> U+1D4AF </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#175;</span> </td> </tr><tr id="entity-tscr"><td> <code title="">tscr;</code> </td> <td> U+1D4C9 </td> <td> <span class="glyph" title="">&#240;&#157;&#147;&#137;</span> </td> </tr><tr id="entity-TScy"><td> <code title="">TScy;</code> </td> <td> U+00426 </td> <td> <span class="glyph" title="">&#208;&#166;</span> </td> </tr><tr id="entity-tscy"><td> <code title="">tscy;</code> </td> <td> U+00446 </td> <td> <span class="glyph" title="">&#209;&#134;</span> </td> </tr><tr id="entity-TSHcy"><td> <code title="">TSHcy;</code> </td> <td> U+0040B </td> <td> <span class="glyph" title="">&#208;&#139;</span> </td> </tr><tr id="entity-tshcy"><td> <code title="">tshcy;</code> </td> <td> U+0045B </td> <td> <span class="glyph" title="">&#209;&#155;</span> </td> </tr><tr id="entity-Tstrok"><td> <code title="">Tstrok;</code> </td> <td> U+00166 </td> <td> <span class="glyph" title="">&#197;&#166;</span> </td> </tr><tr id="entity-tstrok"><td> <code title="">tstrok;</code> </td> <td> U+00167 </td> <td> <span class="glyph" title="">&#197;&#167;</span> </td> </tr><tr id="entity-twixt"><td> <code title="">twixt;</code> </td> <td> U+0226C </td> <td> <span class="glyph" title="">&#226;&#137;&#172;</span> </td> </tr><tr id="entity-twoheadleftarrow"><td> <code title="">twoheadleftarrow;</code> </td> <td> U+0219E </td> <td> <span class="glyph" title="">&#226;&#134;&#158;</span> </td> </tr><tr id="entity-twoheadrightarrow"><td> <code title="">twoheadrightarrow;</code> </td> <td> U+021A0 </td> <td> <span class="glyph" title="">&#226;&#134;&#160;</span> </td> </tr><tr id="entity-Uacute"><td> <code title="">Uacute;</code> </td> <td> U+000DA </td> <td> <span class="glyph" title="">&#195;&#154;</span> </td> </tr><tr class="impl" id="entity-Uacute-legacy"><td> <code title="">Uacute</code> </td> <td> U+000DA </td> <td> <span title="">&#195;&#154;</span> </td> </tr><tr id="entity-uacute"><td> <code title="">uacute;</code> </td> <td> U+000FA </td> <td> <span class="glyph" title="">&#195;&#186;</span> </td> </tr><tr class="impl" id="entity-uacute-legacy"><td> <code title="">uacute</code> </td> <td> U+000FA </td> <td> <span title="">&#195;&#186;</span> </td> </tr><tr id="entity-Uarr"><td> <code title="">Uarr;</code> </td> <td> U+0219F </td> <td> <span class="glyph" title="">&#226;&#134;&#159;</span> </td> </tr><tr id="entity-uArr"><td> <code title="">uArr;</code> </td> <td> U+021D1 </td> <td> <span class="glyph" title="">&#226;&#135;&#145;</span> </td> </tr><tr id="entity-uarr"><td> <code title="">uarr;</code> </td> <td> U+02191 </td> <td> <span class="glyph" title="">&#226;&#134;&#145;</span> </td> </tr><tr id="entity-Uarrocir"><td> <code title="">Uarrocir;</code> </td> <td> U+02949 </td> <td> <span class="glyph" title="">&#226;&#165;&#137;</span> </td> </tr><tr id="entity-Ubrcy"><td> <code title="">Ubrcy;</code> </td> <td> U+0040E </td> <td> <span class="glyph" title="">&#208;&#142;</span> </td> </tr><tr id="entity-ubrcy"><td> <code title="">ubrcy;</code> </td> <td> U+0045E </td> <td> <span class="glyph" title="">&#209;&#158;</span> </td> </tr><tr id="entity-Ubreve"><td> <code title="">Ubreve;</code> </td> <td> U+0016C </td> <td> <span class="glyph" title="">&#197;&#172;</span> </td> </tr><tr id="entity-ubreve"><td> <code title="">ubreve;</code> </td> <td> U+0016D </td> <td> <span class="glyph" title="">&#197;&#173;</span> </td> </tr><tr id="entity-Ucirc"><td> <code title="">Ucirc;</code> </td> <td> U+000DB </td> <td> <span class="glyph" title="">&#195;&#155;</span> </td> </tr><tr class="impl" id="entity-Ucirc-legacy"><td> <code title="">Ucirc</code> </td> <td> U+000DB </td> <td> <span title="">&#195;&#155;</span> </td> </tr><tr id="entity-ucirc"><td> <code title="">ucirc;</code> </td> <td> U+000FB </td> <td> <span class="glyph" title="">&#195;&#187;</span> </td> </tr><tr class="impl" id="entity-ucirc-legacy"><td> <code title="">ucirc</code> </td> <td> U+000FB </td> <td> <span title="">&#195;&#187;</span> </td> </tr><tr id="entity-Ucy"><td> <code title="">Ucy;</code> </td> <td> U+00423 </td> <td> <span class="glyph" title="">&#208;&#163;</span> </td> </tr><tr id="entity-ucy"><td> <code title="">ucy;</code> </td> <td> U+00443 </td> <td> <span class="glyph" title="">&#209;&#131;</span> </td> </tr><tr id="entity-udarr"><td> <code title="">udarr;</code> </td> <td> U+021C5 </td> <td> <span class="glyph" title="">&#226;&#135;&#133;</span> </td> </tr><tr id="entity-Udblac"><td> <code title="">Udblac;</code> </td> <td> U+00170 </td> <td> <span class="glyph" title="">&#197;&#176;</span> </td> </tr><tr id="entity-udblac"><td> <code title="">udblac;</code> </td> <td> U+00171 </td> <td> <span class="glyph" title="">&#197;&#177;</span> </td> </tr><tr id="entity-udhar"><td> <code title="">udhar;</code> </td> <td> U+0296E </td> <td> <span class="glyph" title="">&#226;&#165;&#174;</span> </td> </tr><tr id="entity-ufisht"><td> <code title="">ufisht;</code> </td> <td> U+0297E </td> <td> <span class="glyph" title="">&#226;&#165;&#190;</span> </td> </tr><tr id="entity-Ufr"><td> <code title="">Ufr;</code> </td> <td> U+1D518 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#152;</span> </td> </tr><tr id="entity-ufr"><td> <code title="">ufr;</code> </td> <td> U+1D532 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#178;</span> </td> </tr><tr id="entity-Ugrave"><td> <code title="">Ugrave;</code> </td> <td> U+000D9 </td> <td> <span class="glyph" title="">&#195;&#153;</span> </td> </tr><tr class="impl" id="entity-Ugrave-legacy"><td> <code title="">Ugrave</code> </td> <td> U+000D9 </td> <td> <span title="">&#195;&#153;</span> </td> </tr><tr id="entity-ugrave"><td> <code title="">ugrave;</code> </td> <td> U+000F9 </td> <td> <span class="glyph" title="">&#195;&#185;</span> </td> </tr><tr class="impl" id="entity-ugrave-legacy"><td> <code title="">ugrave</code> </td> <td> U+000F9 </td> <td> <span title="">&#195;&#185;</span> </td> </tr><tr id="entity-uHar"><td> <code title="">uHar;</code> </td> <td> U+02963 </td> <td> <span class="glyph" title="">&#226;&#165;&#163;</span> </td> </tr><tr id="entity-uharl"><td> <code title="">uharl;</code> </td> <td> U+021BF </td> <td> <span class="glyph" title="">&#226;&#134;&#191;</span> </td> </tr><tr id="entity-uharr"><td> <code title="">uharr;</code> </td> <td> U+021BE </td> <td> <span class="glyph" title="">&#226;&#134;&#190;</span> </td> </tr><tr id="entity-uhblk"><td> <code title="">uhblk;</code> </td> <td> U+02580 </td> <td> <span class="glyph" title="">&#226;&#150;&#128;</span> </td> </tr><tr id="entity-ulcorn"><td> <code title="">ulcorn;</code> </td> <td> U+0231C </td> <td> <span class="glyph" title="">&#226;&#140;&#156;</span> </td> </tr><tr id="entity-ulcorner"><td> <code title="">ulcorner;</code> </td> <td> U+0231C </td> <td> <span class="glyph" title="">&#226;&#140;&#156;</span> </td> </tr><tr id="entity-ulcrop"><td> <code title="">ulcrop;</code> </td> <td> U+0230F </td> <td> <span class="glyph" title="">&#226;&#140;&#143;</span> </td> </tr><tr id="entity-ultri"><td> <code title="">ultri;</code> </td> <td> U+025F8 </td> <td> <span class="glyph" title="">&#226;&#151;&#184;</span> </td> </tr><tr id="entity-Umacr"><td> <code title="">Umacr;</code> </td> <td> U+0016A </td> <td> <span class="glyph" title="">&#197;&#170;</span> </td> </tr><tr id="entity-umacr"><td> <code title="">umacr;</code> </td> <td> U+0016B </td> <td> <span class="glyph" title="">&#197;&#171;</span> </td> </tr><tr id="entity-uml"><td> <code title="">uml;</code> </td> <td> U+000A8 </td> <td> <span class="glyph" title="">&#194;&#168;</span> </td> </tr><tr class="impl" id="entity-uml-legacy"><td> <code title="">uml</code> </td> <td> U+000A8 </td> <td> <span title="">&#194;&#168;</span> </td> </tr><tr id="entity-UnderBar"><td> <code title="">UnderBar;</code> </td> <td> U+0005F </td> <td> <span class="glyph" title="">_</span> </td> </tr><tr id="entity-UnderBrace"><td> <code title="">UnderBrace;</code> </td> <td> U+023DF </td> <td> <span class="glyph" title="">&#226;&#143;&#159;</span> </td> </tr><tr id="entity-UnderBracket"><td> <code title="">UnderBracket;</code> </td> <td> U+023B5 </td> <td> <span class="glyph" title="">&#226;&#142;&#181;</span> </td> </tr><tr id="entity-UnderParenthesis"><td> <code title="">UnderParenthesis;</code> </td> <td> U+023DD </td> <td> <span class="glyph" title="">&#226;&#143;&#157;</span> </td> </tr><tr id="entity-Union"><td> <code title="">Union;</code> </td> <td> U+022C3 </td> <td> <span class="glyph" title="">&#226;&#139;&#131;</span> </td> </tr><tr id="entity-UnionPlus"><td> <code title="">UnionPlus;</code> </td> <td> U+0228E </td> <td> <span class="glyph" title="">&#226;&#138;&#142;</span> </td> </tr><tr id="entity-Uogon"><td> <code title="">Uogon;</code> </td> <td> U+00172 </td> <td> <span class="glyph" title="">&#197;&#178;</span> </td> </tr><tr id="entity-uogon"><td> <code title="">uogon;</code> </td> <td> U+00173 </td> <td> <span class="glyph" title="">&#197;&#179;</span> </td> </tr><tr id="entity-Uopf"><td> <code title="">Uopf;</code> </td> <td> U+1D54C </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#140;</span> </td> </tr><tr id="entity-uopf"><td> <code title="">uopf;</code> </td> <td> U+1D566 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#166;</span> </td> </tr><tr id="entity-UpArrow"><td> <code title="">UpArrow;</code> </td> <td> U+02191 </td> <td> <span class="glyph" title="">&#226;&#134;&#145;</span> </td> </tr><tr id="entity-Uparrow"><td> <code title="">Uparrow;</code> </td> <td> U+021D1 </td> <td> <span class="glyph" title="">&#226;&#135;&#145;</span> </td> </tr><tr id="entity-uparrow"><td> <code title="">uparrow;</code> </td> <td> U+02191 </td> <td> <span class="glyph" title="">&#226;&#134;&#145;</span> </td> </tr><tr id="entity-UpArrowBar"><td> <code title="">UpArrowBar;</code> </td> <td> U+02912 </td> <td> <span class="glyph" title="">&#226;&#164;&#146;</span> </td> </tr><tr id="entity-UpArrowDownArrow"><td> <code title="">UpArrowDownArrow;</code> </td> <td> U+021C5 </td> <td> <span class="glyph" title="">&#226;&#135;&#133;</span> </td> </tr><tr id="entity-UpDownArrow"><td> <code title="">UpDownArrow;</code> </td> <td> U+02195 </td> <td> <span class="glyph" title="">&#226;&#134;&#149;</span> </td> </tr><tr id="entity-Updownarrow"><td> <code title="">Updownarrow;</code> </td> <td> U+021D5 </td> <td> <span class="glyph" title="">&#226;&#135;&#149;</span> </td> </tr><tr id="entity-updownarrow"><td> <code title="">updownarrow;</code> </td> <td> U+02195 </td> <td> <span class="glyph" title="">&#226;&#134;&#149;</span> </td> </tr><tr id="entity-UpEquilibrium"><td> <code title="">UpEquilibrium;</code> </td> <td> U+0296E </td> <td> <span class="glyph" title="">&#226;&#165;&#174;</span> </td> </tr><tr id="entity-upharpoonleft"><td> <code title="">upharpoonleft;</code> </td> <td> U+021BF </td> <td> <span class="glyph" title="">&#226;&#134;&#191;</span> </td> </tr><tr id="entity-upharpoonright"><td> <code title="">upharpoonright;</code> </td> <td> U+021BE </td> <td> <span class="glyph" title="">&#226;&#134;&#190;</span> </td> </tr><tr id="entity-uplus"><td> <code title="">uplus;</code> </td> <td> U+0228E </td> <td> <span class="glyph" title="">&#226;&#138;&#142;</span> </td> </tr><tr id="entity-UpperLeftArrow"><td> <code title="">UpperLeftArrow;</code> </td> <td> U+02196 </td> <td> <span class="glyph" title="">&#226;&#134;&#150;</span> </td> </tr><tr id="entity-UpperRightArrow"><td> <code title="">UpperRightArrow;</code> </td> <td> U+02197 </td> <td> <span class="glyph" title="">&#226;&#134;&#151;</span> </td> </tr><tr id="entity-Upsi"><td> <code title="">Upsi;</code> </td> <td> U+003D2 </td> <td> <span class="glyph" title="">&#207;&#146;</span> </td> </tr><tr id="entity-upsi"><td> <code title="">upsi;</code> </td> <td> U+003C5 </td> <td> <span class="glyph" title="">&#207;&#133;</span> </td> </tr><tr id="entity-upsih"><td> <code title="">upsih;</code> </td> <td> U+003D2 </td> <td> <span class="glyph" title="">&#207;&#146;</span> </td> </tr><tr id="entity-Upsilon"><td> <code title="">Upsilon;</code> </td> <td> U+003A5 </td> <td> <span class="glyph" title="">&#206;&#165;</span> </td> </tr><tr id="entity-upsilon"><td> <code title="">upsilon;</code> </td> <td> U+003C5 </td> <td> <span class="glyph" title="">&#207;&#133;</span> </td> </tr><tr id="entity-UpTee"><td> <code title="">UpTee;</code> </td> <td> U+022A5 </td> <td> <span class="glyph" title="">&#226;&#138;&#165;</span> </td> </tr><tr id="entity-UpTeeArrow"><td> <code title="">UpTeeArrow;</code> </td> <td> U+021A5 </td> <td> <span class="glyph" title="">&#226;&#134;&#165;</span> </td> </tr><tr id="entity-upuparrows"><td> <code title="">upuparrows;</code> </td> <td> U+021C8 </td> <td> <span class="glyph" title="">&#226;&#135;&#136;</span> </td> </tr><tr id="entity-urcorn"><td> <code title="">urcorn;</code> </td> <td> U+0231D </td> <td> <span class="glyph" title="">&#226;&#140;&#157;</span> </td> </tr><tr id="entity-urcorner"><td> <code title="">urcorner;</code> </td> <td> U+0231D </td> <td> <span class="glyph" title="">&#226;&#140;&#157;</span> </td> </tr><tr id="entity-urcrop"><td> <code title="">urcrop;</code> </td> <td> U+0230E </td> <td> <span class="glyph" title="">&#226;&#140;&#142;</span> </td> </tr><tr id="entity-Uring"><td> <code title="">Uring;</code> </td> <td> U+0016E </td> <td> <span class="glyph" title="">&#197;&#174;</span> </td> </tr><tr id="entity-uring"><td> <code title="">uring;</code> </td> <td> U+0016F </td> <td> <span class="glyph" title="">&#197;&#175;</span> </td> </tr><tr id="entity-urtri"><td> <code title="">urtri;</code> </td> <td> U+025F9 </td> <td> <span class="glyph" title="">&#226;&#151;&#185;</span> </td> </tr><tr id="entity-Uscr"><td> <code title="">Uscr;</code> </td> <td> U+1D4B0 </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#176;</span> </td> </tr><tr id="entity-uscr"><td> <code title="">uscr;</code> </td> <td> U+1D4CA </td> <td> <span class="glyph" title="">&#240;&#157;&#147;&#138;</span> </td> </tr><tr id="entity-utdot"><td> <code title="">utdot;</code> </td> <td> U+022F0 </td> <td> <span class="glyph" title="">&#226;&#139;&#176;</span> </td> </tr><tr id="entity-Utilde"><td> <code title="">Utilde;</code> </td> <td> U+00168 </td> <td> <span class="glyph" title="">&#197;&#168;</span> </td> </tr><tr id="entity-utilde"><td> <code title="">utilde;</code> </td> <td> U+00169 </td> <td> <span class="glyph" title="">&#197;&#169;</span> </td> </tr><tr id="entity-utri"><td> <code title="">utri;</code> </td> <td> U+025B5 </td> <td> <span class="glyph" title="">&#226;&#150;&#181;</span> </td> </tr><tr id="entity-utrif"><td> <code title="">utrif;</code> </td> <td> U+025B4 </td> <td> <span class="glyph" title="">&#226;&#150;&#180;</span> </td> </tr><tr id="entity-uuarr"><td> <code title="">uuarr;</code> </td> <td> U+021C8 </td> <td> <span class="glyph" title="">&#226;&#135;&#136;</span> </td> </tr><tr id="entity-Uuml"><td> <code title="">Uuml;</code> </td> <td> U+000DC </td> <td> <span class="glyph" title="">&#195;&#156;</span> </td> </tr><tr class="impl" id="entity-Uuml-legacy"><td> <code title="">Uuml</code> </td> <td> U+000DC </td> <td> <span title="">&#195;&#156;</span> </td> </tr><tr id="entity-uuml"><td> <code title="">uuml;</code> </td> <td> U+000FC </td> <td> <span class="glyph" title="">&#195;&#188;</span> </td> </tr><tr class="impl" id="entity-uuml-legacy"><td> <code title="">uuml</code> </td> <td> U+000FC </td> <td> <span title="">&#195;&#188;</span> </td> </tr><tr id="entity-uwangle"><td> <code title="">uwangle;</code> </td> <td> U+029A7 </td> <td> <span class="glyph" title="">&#226;&#166;&#167;</span> </td> </tr><tr id="entity-vangrt"><td> <code title="">vangrt;</code> </td> <td> U+0299C </td> <td> <span class="glyph" title="">&#226;&#166;&#156;</span> </td> </tr><tr id="entity-varepsilon"><td> <code title="">varepsilon;</code> </td> <td> U+003F5 </td> <td> <span class="glyph" title="">&#207;&#181;</span> </td> </tr><tr id="entity-varkappa"><td> <code title="">varkappa;</code> </td> <td> U+003F0 </td> <td> <span class="glyph" title="">&#207;&#176;</span> </td> </tr><tr id="entity-varnothing"><td> <code title="">varnothing;</code> </td> <td> U+02205 </td> <td> <span class="glyph" title="">&#226;&#136;&#133;</span> </td> </tr><tr id="entity-varphi"><td> <code title="">varphi;</code> </td> <td> U+003D5 </td> <td> <span class="glyph" title="">&#207;&#149;</span> </td> </tr><tr id="entity-varpi"><td> <code title="">varpi;</code> </td> <td> U+003D6 </td> <td> <span class="glyph" title="">&#207;&#150;</span> </td> </tr><tr id="entity-varpropto"><td> <code title="">varpropto;</code> </td> <td> U+0221D </td> <td> <span class="glyph" title="">&#226;&#136;&#157;</span> </td> </tr><tr id="entity-vArr"><td> <code title="">vArr;</code> </td> <td> U+021D5 </td> <td> <span class="glyph" title="">&#226;&#135;&#149;</span> </td> </tr><tr id="entity-varr"><td> <code title="">varr;</code> </td> <td> U+02195 </td> <td> <span class="glyph" title="">&#226;&#134;&#149;</span> </td> </tr><tr id="entity-varrho"><td> <code title="">varrho;</code> </td> <td> U+003F1 </td> <td> <span class="glyph" title="">&#207;&#177;</span> </td> </tr><tr id="entity-varsigma"><td> <code title="">varsigma;</code> </td> <td> U+003C2 </td> <td> <span class="glyph" title="">&#207;&#130;</span> </td> </tr><tr id="entity-varsubsetneq"><td> <code title="">varsubsetneq;</code> </td> <td> U+0228A U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#138;&#138;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-varsubsetneqq"><td> <code title="">varsubsetneqq;</code> </td> <td> U+02ACB U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#171;&#139;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-varsupsetneq"><td> <code title="">varsupsetneq;</code> </td> <td> U+0228B U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#138;&#139;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-varsupsetneqq"><td> <code title="">varsupsetneqq;</code> </td> <td> U+02ACC U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#171;&#140;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-vartheta"><td> <code title="">vartheta;</code> </td> <td> U+003D1 </td> <td> <span class="glyph" title="">&#207;&#145;</span> </td> </tr><tr id="entity-vartriangleleft"><td> <code title="">vartriangleleft;</code> </td> <td> U+022B2 </td> <td> <span class="glyph" title="">&#226;&#138;&#178;</span> </td> </tr><tr id="entity-vartriangleright"><td> <code title="">vartriangleright;</code> </td> <td> U+022B3 </td> <td> <span class="glyph" title="">&#226;&#138;&#179;</span> </td> </tr><tr id="entity-Vbar"><td> <code title="">Vbar;</code> </td> <td> U+02AEB </td> <td> <span class="glyph" title="">&#226;&#171;&#171;</span> </td> </tr><tr id="entity-vBar"><td> <code title="">vBar;</code> </td> <td> U+02AE8 </td> <td> <span class="glyph" title="">&#226;&#171;&#168;</span> </td> </tr><tr id="entity-vBarv"><td> <code title="">vBarv;</code> </td> <td> U+02AE9 </td> <td> <span class="glyph" title="">&#226;&#171;&#169;</span> </td> </tr><tr id="entity-Vcy"><td> <code title="">Vcy;</code> </td> <td> U+00412 </td> <td> <span class="glyph" title="">&#208;&#146;</span> </td> </tr><tr id="entity-vcy"><td> <code title="">vcy;</code> </td> <td> U+00432 </td> <td> <span class="glyph" title="">&#208;&#178;</span> </td> </tr><tr id="entity-VDash"><td> <code title="">VDash;</code> </td> <td> U+022AB </td> <td> <span class="glyph" title="">&#226;&#138;&#171;</span> </td> </tr><tr id="entity-Vdash"><td> <code title="">Vdash;</code> </td> <td> U+022A9 </td> <td> <span class="glyph" title="">&#226;&#138;&#169;</span> </td> </tr><tr id="entity-vDash"><td> <code title="">vDash;</code> </td> <td> U+022A8 </td> <td> <span class="glyph" title="">&#226;&#138;&#168;</span> </td> </tr><tr id="entity-vdash"><td> <code title="">vdash;</code> </td> <td> U+022A2 </td> <td> <span class="glyph" title="">&#226;&#138;&#162;</span> </td> </tr><tr id="entity-Vdashl"><td> <code title="">Vdashl;</code> </td> <td> U+02AE6 </td> <td> <span class="glyph" title="">&#226;&#171;&#166;</span> </td> </tr><tr id="entity-Vee"><td> <code title="">Vee;</code> </td> <td> U+022C1 </td> <td> <span class="glyph" title="">&#226;&#139;&#129;</span> </td> </tr><tr id="entity-vee"><td> <code title="">vee;</code> </td> <td> U+02228 </td> <td> <span class="glyph" title="">&#226;&#136;&#168;</span> </td> </tr><tr id="entity-veebar"><td> <code title="">veebar;</code> </td> <td> U+022BB </td> <td> <span class="glyph" title="">&#226;&#138;&#187;</span> </td> </tr><tr id="entity-veeeq"><td> <code title="">veeeq;</code> </td> <td> U+0225A </td> <td> <span class="glyph" title="">&#226;&#137;&#154;</span> </td> </tr><tr id="entity-vellip"><td> <code title="">vellip;</code> </td> <td> U+022EE </td> <td> <span class="glyph" title="">&#226;&#139;&#174;</span> </td> </tr><tr id="entity-Verbar"><td> <code title="">Verbar;</code> </td> <td> U+02016 </td> <td> <span class="glyph" title="">&#226;&#128;&#150;</span> </td> </tr><tr id="entity-verbar"><td> <code title="">verbar;</code> </td> <td> U+0007C </td> <td> <span class="glyph" title="">|</span> </td> </tr><tr id="entity-Vert"><td> <code title="">Vert;</code> </td> <td> U+02016 </td> <td> <span class="glyph" title="">&#226;&#128;&#150;</span> </td> </tr><tr id="entity-vert"><td> <code title="">vert;</code> </td> <td> U+0007C </td> <td> <span class="glyph" title="">|</span> </td> </tr><tr id="entity-VerticalBar"><td> <code title="">VerticalBar;</code> </td> <td> U+02223 </td> <td> <span class="glyph" title="">&#226;&#136;&#163;</span> </td> </tr><tr id="entity-VerticalLine"><td> <code title="">VerticalLine;</code> </td> <td> U+0007C </td> <td> <span class="glyph" title="">|</span> </td> </tr><tr id="entity-VerticalSeparator"><td> <code title="">VerticalSeparator;</code> </td> <td> U+02758 </td> <td> <span class="glyph" title="">&#226;&#157;&#152;</span> </td> </tr><tr id="entity-VerticalTilde"><td> <code title="">VerticalTilde;</code> </td> <td> U+02240 </td> <td> <span class="glyph" title="">&#226;&#137;&#128;</span> </td> </tr><tr id="entity-VeryThinSpace"><td> <code title="">VeryThinSpace;</code> </td> <td> U+0200A </td> <td> <span class="glyph" title="">&#226;&#128;&#138;</span> </td> </tr><tr id="entity-Vfr"><td> <code title="">Vfr;</code> </td> <td> U+1D519 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#153;</span> </td> </tr><tr id="entity-vfr"><td> <code title="">vfr;</code> </td> <td> U+1D533 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#179;</span> </td> </tr><tr id="entity-vltri"><td> <code title="">vltri;</code> </td> <td> U+022B2 </td> <td> <span class="glyph" title="">&#226;&#138;&#178;</span> </td> </tr><tr id="entity-vnsub"><td> <code title="">vnsub;</code> </td> <td> U+02282 U+020D2 </td> <td> <span class="glyph compound" title="">&#226;&#138;&#130;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-vnsup"><td> <code title="">vnsup;</code> </td> <td> U+02283 U+020D2 </td> <td> <span class="glyph compound" title="">&#226;&#138;&#131;&#226;&#131;&#146;</span> </td> </tr><tr id="entity-Vopf"><td> <code title="">Vopf;</code> </td> <td> U+1D54D </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#141;</span> </td> </tr><tr id="entity-vopf"><td> <code title="">vopf;</code> </td> <td> U+1D567 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#167;</span> </td> </tr><tr id="entity-vprop"><td> <code title="">vprop;</code> </td> <td> U+0221D </td> <td> <span class="glyph" title="">&#226;&#136;&#157;</span> </td> </tr><tr id="entity-vrtri"><td> <code title="">vrtri;</code> </td> <td> U+022B3 </td> <td> <span class="glyph" title="">&#226;&#138;&#179;</span> </td> </tr><tr id="entity-Vscr"><td> <code title="">Vscr;</code> </td> <td> U+1D4B1 </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#177;</span> </td> </tr><tr id="entity-vscr"><td> <code title="">vscr;</code> </td> <td> U+1D4CB </td> <td> <span class="glyph" title="">&#240;&#157;&#147;&#139;</span> </td> </tr><tr id="entity-vsubnE"><td> <code title="">vsubnE;</code> </td> <td> U+02ACB U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#171;&#139;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-vsubne"><td> <code title="">vsubne;</code> </td> <td> U+0228A U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#138;&#138;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-vsupnE"><td> <code title="">vsupnE;</code> </td> <td> U+02ACC U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#171;&#140;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-vsupne"><td> <code title="">vsupne;</code> </td> <td> U+0228B U+0FE00 </td> <td> <span class="glyph compound" title="">&#226;&#138;&#139;&#239;&#184;&#128;</span> </td> </tr><tr id="entity-Vvdash"><td> <code title="">Vvdash;</code> </td> <td> U+022AA </td> <td> <span class="glyph" title="">&#226;&#138;&#170;</span> </td> </tr><tr id="entity-vzigzag"><td> <code title="">vzigzag;</code> </td> <td> U+0299A </td> <td> <span class="glyph" title="">&#226;&#166;&#154;</span> </td> </tr><tr id="entity-Wcirc"><td> <code title="">Wcirc;</code> </td> <td> U+00174 </td> <td> <span class="glyph" title="">&#197;&#180;</span> </td> </tr><tr id="entity-wcirc"><td> <code title="">wcirc;</code> </td> <td> U+00175 </td> <td> <span class="glyph" title="">&#197;&#181;</span> </td> </tr><tr id="entity-wedbar"><td> <code title="">wedbar;</code> </td> <td> U+02A5F </td> <td> <span class="glyph" title="">&#226;&#169;&#159;</span> </td> </tr><tr id="entity-Wedge"><td> <code title="">Wedge;</code> </td> <td> U+022C0 </td> <td> <span class="glyph" title="">&#226;&#139;&#128;</span> </td> </tr><tr id="entity-wedge"><td> <code title="">wedge;</code> </td> <td> U+02227 </td> <td> <span class="glyph" title="">&#226;&#136;&#167;</span> </td> </tr><tr id="entity-wedgeq"><td> <code title="">wedgeq;</code> </td> <td> U+02259 </td> <td> <span class="glyph" title="">&#226;&#137;&#153;</span> </td> </tr><tr id="entity-weierp"><td> <code title="">weierp;</code> </td> <td> U+02118 </td> <td> <span class="glyph" title="">&#226;&#132;&#152;</span> </td> </tr><tr id="entity-Wfr"><td> <code title="">Wfr;</code> </td> <td> U+1D51A </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#154;</span> </td> </tr><tr id="entity-wfr"><td> <code title="">wfr;</code> </td> <td> U+1D534 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#180;</span> </td> </tr><tr id="entity-Wopf"><td> <code title="">Wopf;</code> </td> <td> U+1D54E </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#142;</span> </td> </tr><tr id="entity-wopf"><td> <code title="">wopf;</code> </td> <td> U+1D568 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#168;</span> </td> </tr><tr id="entity-wp"><td> <code title="">wp;</code> </td> <td> U+02118 </td> <td> <span class="glyph" title="">&#226;&#132;&#152;</span> </td> </tr><tr id="entity-wr"><td> <code title="">wr;</code> </td> <td> U+02240 </td> <td> <span class="glyph" title="">&#226;&#137;&#128;</span> </td> </tr><tr id="entity-wreath"><td> <code title="">wreath;</code> </td> <td> U+02240 </td> <td> <span class="glyph" title="">&#226;&#137;&#128;</span> </td> </tr><tr id="entity-Wscr"><td> <code title="">Wscr;</code> </td> <td> U+1D4B2 </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#178;</span> </td> </tr><tr id="entity-wscr"><td> <code title="">wscr;</code> </td> <td> U+1D4CC </td> <td> <span class="glyph" title="">&#240;&#157;&#147;&#140;</span> </td> </tr><tr id="entity-xcap"><td> <code title="">xcap;</code> </td> <td> U+022C2 </td> <td> <span class="glyph" title="">&#226;&#139;&#130;</span> </td> </tr><tr id="entity-xcirc"><td> <code title="">xcirc;</code> </td> <td> U+025EF </td> <td> <span class="glyph" title="">&#226;&#151;&#175;</span> </td> </tr><tr id="entity-xcup"><td> <code title="">xcup;</code> </td> <td> U+022C3 </td> <td> <span class="glyph" title="">&#226;&#139;&#131;</span> </td> </tr><tr id="entity-xdtri"><td> <code title="">xdtri;</code> </td> <td> U+025BD </td> <td> <span class="glyph" title="">&#226;&#150;&#189;</span> </td> </tr><tr id="entity-Xfr"><td> <code title="">Xfr;</code> </td> <td> U+1D51B </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#155;</span> </td> </tr><tr id="entity-xfr"><td> <code title="">xfr;</code> </td> <td> U+1D535 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#181;</span> </td> </tr><tr id="entity-xhArr"><td> <code title="">xhArr;</code> </td> <td> U+027FA </td> <td> <span class="glyph" title="">&#226;&#159;&#186;</span> </td> </tr><tr id="entity-xharr"><td> <code title="">xharr;</code> </td> <td> U+027F7 </td> <td> <span class="glyph" title="">&#226;&#159;&#183;</span> </td> </tr><tr id="entity-Xi"><td> <code title="">Xi;</code> </td> <td> U+0039E </td> <td> <span class="glyph" title="">&#206;&#158;</span> </td> </tr><tr id="entity-xi"><td> <code title="">xi;</code> </td> <td> U+003BE </td> <td> <span class="glyph" title="">&#206;&#190;</span> </td> </tr><tr id="entity-xlArr"><td> <code title="">xlArr;</code> </td> <td> U+027F8 </td> <td> <span class="glyph" title="">&#226;&#159;&#184;</span> </td> </tr><tr id="entity-xlarr"><td> <code title="">xlarr;</code> </td> <td> U+027F5 </td> <td> <span class="glyph" title="">&#226;&#159;&#181;</span> </td> </tr><tr id="entity-xmap"><td> <code title="">xmap;</code> </td> <td> U+027FC </td> <td> <span class="glyph" title="">&#226;&#159;&#188;</span> </td> </tr><tr id="entity-xnis"><td> <code title="">xnis;</code> </td> <td> U+022FB </td> <td> <span class="glyph" title="">&#226;&#139;&#187;</span> </td> </tr><tr id="entity-xodot"><td> <code title="">xodot;</code> </td> <td> U+02A00 </td> <td> <span class="glyph" title="">&#226;&#168;&#128;</span> </td> </tr><tr id="entity-Xopf"><td> <code title="">Xopf;</code> </td> <td> U+1D54F </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#143;</span> </td> </tr><tr id="entity-xopf"><td> <code title="">xopf;</code> </td> <td> U+1D569 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#169;</span> </td> </tr><tr id="entity-xoplus"><td> <code title="">xoplus;</code> </td> <td> U+02A01 </td> <td> <span class="glyph" title="">&#226;&#168;&#129;</span> </td> </tr><tr id="entity-xotime"><td> <code title="">xotime;</code> </td> <td> U+02A02 </td> <td> <span class="glyph" title="">&#226;&#168;&#130;</span> </td> </tr><tr id="entity-xrArr"><td> <code title="">xrArr;</code> </td> <td> U+027F9 </td> <td> <span class="glyph" title="">&#226;&#159;&#185;</span> </td> </tr><tr id="entity-xrarr"><td> <code title="">xrarr;</code> </td> <td> U+027F6 </td> <td> <span class="glyph" title="">&#226;&#159;&#182;</span> </td> </tr><tr id="entity-Xscr"><td> <code title="">Xscr;</code> </td> <td> U+1D4B3 </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#179;</span> </td> </tr><tr id="entity-xscr"><td> <code title="">xscr;</code> </td> <td> U+1D4CD </td> <td> <span class="glyph" title="">&#240;&#157;&#147;&#141;</span> </td> </tr><tr id="entity-xsqcup"><td> <code title="">xsqcup;</code> </td> <td> U+02A06 </td> <td> <span class="glyph" title="">&#226;&#168;&#134;</span> </td> </tr><tr id="entity-xuplus"><td> <code title="">xuplus;</code> </td> <td> U+02A04 </td> <td> <span class="glyph" title="">&#226;&#168;&#132;</span> </td> </tr><tr id="entity-xutri"><td> <code title="">xutri;</code> </td> <td> U+025B3 </td> <td> <span class="glyph" title="">&#226;&#150;&#179;</span> </td> </tr><tr id="entity-xvee"><td> <code title="">xvee;</code> </td> <td> U+022C1 </td> <td> <span class="glyph" title="">&#226;&#139;&#129;</span> </td> </tr><tr id="entity-xwedge"><td> <code title="">xwedge;</code> </td> <td> U+022C0 </td> <td> <span class="glyph" title="">&#226;&#139;&#128;</span> </td> </tr><tr id="entity-Yacute"><td> <code title="">Yacute;</code> </td> <td> U+000DD </td> <td> <span class="glyph" title="">&#195;&#157;</span> </td> </tr><tr class="impl" id="entity-Yacute-legacy"><td> <code title="">Yacute</code> </td> <td> U+000DD </td> <td> <span title="">&#195;&#157;</span> </td> </tr><tr id="entity-yacute"><td> <code title="">yacute;</code> </td> <td> U+000FD </td> <td> <span class="glyph" title="">&#195;&#189;</span> </td> </tr><tr class="impl" id="entity-yacute-legacy"><td> <code title="">yacute</code> </td> <td> U+000FD </td> <td> <span title="">&#195;&#189;</span> </td> </tr><tr id="entity-YAcy"><td> <code title="">YAcy;</code> </td> <td> U+0042F </td> <td> <span class="glyph" title="">&#208;&#175;</span> </td> </tr><tr id="entity-yacy"><td> <code title="">yacy;</code> </td> <td> U+0044F </td> <td> <span class="glyph" title="">&#209;&#143;</span> </td> </tr><tr id="entity-Ycirc"><td> <code title="">Ycirc;</code> </td> <td> U+00176 </td> <td> <span class="glyph" title="">&#197;&#182;</span> </td> </tr><tr id="entity-ycirc"><td> <code title="">ycirc;</code> </td> <td> U+00177 </td> <td> <span class="glyph" title="">&#197;&#183;</span> </td> </tr><tr id="entity-Ycy"><td> <code title="">Ycy;</code> </td> <td> U+0042B </td> <td> <span class="glyph" title="">&#208;&#171;</span> </td> </tr><tr id="entity-ycy"><td> <code title="">ycy;</code> </td> <td> U+0044B </td> <td> <span class="glyph" title="">&#209;&#139;</span> </td> </tr><tr id="entity-yen"><td> <code title="">yen;</code> </td> <td> U+000A5 </td> <td> <span class="glyph" title="">&#194;&#165;</span> </td> </tr><tr class="impl" id="entity-yen-legacy"><td> <code title="">yen</code> </td> <td> U+000A5 </td> <td> <span title="">&#194;&#165;</span> </td> </tr><tr id="entity-Yfr"><td> <code title="">Yfr;</code> </td> <td> U+1D51C </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#156;</span> </td> </tr><tr id="entity-yfr"><td> <code title="">yfr;</code> </td> <td> U+1D536 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#182;</span> </td> </tr><tr id="entity-YIcy"><td> <code title="">YIcy;</code> </td> <td> U+00407 </td> <td> <span class="glyph" title="">&#208;&#135;</span> </td> </tr><tr id="entity-yicy"><td> <code title="">yicy;</code> </td> <td> U+00457 </td> <td> <span class="glyph" title="">&#209;&#151;</span> </td> </tr><tr id="entity-Yopf"><td> <code title="">Yopf;</code> </td> <td> U+1D550 </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#144;</span> </td> </tr><tr id="entity-yopf"><td> <code title="">yopf;</code> </td> <td> U+1D56A </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#170;</span> </td> </tr><tr id="entity-Yscr"><td> <code title="">Yscr;</code> </td> <td> U+1D4B4 </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#180;</span> </td> </tr><tr id="entity-yscr"><td> <code title="">yscr;</code> </td> <td> U+1D4CE </td> <td> <span class="glyph" title="">&#240;&#157;&#147;&#142;</span> </td> </tr><tr id="entity-YUcy"><td> <code title="">YUcy;</code> </td> <td> U+0042E </td> <td> <span class="glyph" title="">&#208;&#174;</span> </td> </tr><tr id="entity-yucy"><td> <code title="">yucy;</code> </td> <td> U+0044E </td> <td> <span class="glyph" title="">&#209;&#142;</span> </td> </tr><tr id="entity-Yuml"><td> <code title="">Yuml;</code> </td> <td> U+00178 </td> <td> <span class="glyph" title="">&#197;&#184;</span> </td> </tr><tr id="entity-yuml"><td> <code title="">yuml;</code> </td> <td> U+000FF </td> <td> <span class="glyph" title="">&#195;&#191;</span> </td> </tr><tr class="impl" id="entity-yuml-legacy"><td> <code title="">yuml</code> </td> <td> U+000FF </td> <td> <span title="">&#195;&#191;</span> </td> </tr><tr id="entity-Zacute"><td> <code title="">Zacute;</code> </td> <td> U+00179 </td> <td> <span class="glyph" title="">&#197;&#185;</span> </td> </tr><tr id="entity-zacute"><td> <code title="">zacute;</code> </td> <td> U+0017A </td> <td> <span class="glyph" title="">&#197;&#186;</span> </td> </tr><tr id="entity-Zcaron"><td> <code title="">Zcaron;</code> </td> <td> U+0017D </td> <td> <span class="glyph" title="">&#197;&#189;</span> </td> </tr><tr id="entity-zcaron"><td> <code title="">zcaron;</code> </td> <td> U+0017E </td> <td> <span class="glyph" title="">&#197;&#190;</span> </td> </tr><tr id="entity-Zcy"><td> <code title="">Zcy;</code> </td> <td> U+00417 </td> <td> <span class="glyph" title="">&#208;&#151;</span> </td> </tr><tr id="entity-zcy"><td> <code title="">zcy;</code> </td> <td> U+00437 </td> <td> <span class="glyph" title="">&#208;&#183;</span> </td> </tr><tr id="entity-Zdot"><td> <code title="">Zdot;</code> </td> <td> U+0017B </td> <td> <span class="glyph" title="">&#197;&#187;</span> </td> </tr><tr id="entity-zdot"><td> <code title="">zdot;</code> </td> <td> U+0017C </td> <td> <span class="glyph" title="">&#197;&#188;</span> </td> </tr><tr id="entity-zeetrf"><td> <code title="">zeetrf;</code> </td> <td> U+02128 </td> <td> <span class="glyph" title="">&#226;&#132;&#168;</span> </td> </tr><tr id="entity-ZeroWidthSpace"><td> <code title="">ZeroWidthSpace;</code> </td> <td> U+0200B </td> <td> <span class="glyph" title="">&#226;&#128;&#139;</span> </td> </tr><tr id="entity-Zeta"><td> <code title="">Zeta;</code> </td> <td> U+00396 </td> <td> <span class="glyph" title="">&#206;&#150;</span> </td> </tr><tr id="entity-zeta"><td> <code title="">zeta;</code> </td> <td> U+003B6 </td> <td> <span class="glyph" title="">&#206;&#182;</span> </td> </tr><tr id="entity-Zfr"><td> <code title="">Zfr;</code> </td> <td> U+02128 </td> <td> <span class="glyph" title="">&#226;&#132;&#168;</span> </td> </tr><tr id="entity-zfr"><td> <code title="">zfr;</code> </td> <td> U+1D537 </td> <td> <span class="glyph" title="">&#240;&#157;&#148;&#183;</span> </td> </tr><tr id="entity-ZHcy"><td> <code title="">ZHcy;</code> </td> <td> U+00416 </td> <td> <span class="glyph" title="">&#208;&#150;</span> </td> </tr><tr id="entity-zhcy"><td> <code title="">zhcy;</code> </td> <td> U+00436 </td> <td> <span class="glyph" title="">&#208;&#182;</span> </td> </tr><tr id="entity-zigrarr"><td> <code title="">zigrarr;</code> </td> <td> U+021DD </td> <td> <span class="glyph" title="">&#226;&#135;&#157;</span> </td> </tr><tr id="entity-Zopf"><td> <code title="">Zopf;</code> </td> <td> U+02124 </td> <td> <span class="glyph" title="">&#226;&#132;&#164;</span> </td> </tr><tr id="entity-zopf"><td> <code title="">zopf;</code> </td> <td> U+1D56B </td> <td> <span class="glyph" title="">&#240;&#157;&#149;&#171;</span> </td> </tr><tr id="entity-Zscr"><td> <code title="">Zscr;</code> </td> <td> U+1D4B5 </td> <td> <span class="glyph" title="">&#240;&#157;&#146;&#181;</span> </td> </tr><tr id="entity-zscr"><td> <code title="">zscr;</code> </td> <td> U+1D4CF </td> <td> <span class="glyph" title="">&#240;&#157;&#147;&#143;</span> </td> </tr><tr id="entity-zwj"><td> <code title="">zwj;</code> </td> <td> U+0200D </td> <td> <span class="glyph" title="">&#226;&#128;&#141;</span> </td> </tr><tr id="entity-zwnj"><td> <code title="">zwnj;</code> </td> <td> U+0200C </td> <td> <span class="glyph" title="">&#226;&#128;&#140;</span> </td> </tr></table><!--
1.190     sruby    29940:    If we want to add character references, Almorca suggests:
                   29941:    > I would add &sub1; (character U+2081), &sub2;
                   29942:    > (character U+2082) and &sub3; (character U+2083). They
                   29943:    > would are the equivalent to &sup1;, &sup2;, and &sup3;.
                   29944:    See also: http://www.w3.org/2003/entities/
                   29945:   --></div>
                   29946: 
                   29947:   <p>This data is also available <a href="entities.json">as a JSON
                   29948:   file</a>.</p>
                   29949: 
                   29950:   <p><i>The glyphs displayed above are non-normative. Refer to the
                   29951:   Unicode specifications for formal definitions of the characters
                   29952:   listed above.</i></p>
                   29953: 
                   29954: 
                   29955: 
                   29956:   <h2 id="the-xhtml-syntax"><span class="secno">9 </span><dfn id="xhtml">The XHTML syntax</dfn></h2>
                   29957: 
                   29958:   <p class="note">This section only describes the rules for XML
                   29959:   resources. Rules for <code><a href="#text/html">text/html</a></code> resources are discussed
                   29960:   in the section above entitled "<a href="#syntax">The HTML syntax</a>".</p>
                   29961: 
                   29962: 
                   29963:   <div class="impl">
                   29964: 
                   29965:   <h3 id="writing-xhtml-documents"><span class="secno">9.1 </span>Writing XHTML documents</h3>
                   29966: 
                   29967:   </div>
                   29968: 
                   29969:   <p>The syntax for using HTML with XML, whether in XHTML documents or
                   29970:   embedded in other XML documents, is defined in the XML and
                   29971:   Namespaces in XML specifications. <a href="#refsXML">[XML]</a> <a href="#refsXMLNS">[XMLNS]</a></p>
                   29972: 
                   29973:   <p>This specification does not define any syntax-level requirements
                   29974:   beyond those defined for XML proper.</p>
                   29975: 
                   29976:   <p>XML documents may contain a <code>DOCTYPE</code> if desired, but
                   29977:   this is not required to conform to this specification. This
                   29978:   specification does not define a public or system identifier, nor
                   29979:   provide a format DTD.</p>
                   29980: 
                   29981:   <p class="note">According to the XML specification, XML processors
                   29982:   are not guaranteed to process the external DTD subset referenced in
                   29983:   the DOCTYPE. This means, for example, that using entity references
                   29984:   for characters in XHTML documents is unsafe if they are defined in
                   29985:   an external file (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>
                   29986: 
                   29987: 
                   29988:   <div class="impl">
                   29989: 
                   29990:   <h3 id="parsing-xhtml-documents"><span class="secno">9.2 </span>Parsing XHTML documents</h3>
                   29991: 
                   29992:   <p>This section describes the relationship between XML and the DOM,
                   29993:   with a particular emphasis on how this interacts with HTML.</p>
                   29994: 
                   29995:   <p>An <dfn id="xml-parser">XML parser</dfn>, for the purposes of this specification,
                   29996:   is a construct that follows the rules given in the XML specification
                   29997:   to map a string of bytes or characters into a <code><a href="dom.html#document">Document</a></code>
                   29998:   object.</p>
                   29999: 
                   30000:   <p>An <a href="#xml-parser">XML parser</a> is either associated with a
                   30001:   <code><a href="dom.html#document">Document</a></code> object when it is created, or creates one
                   30002:   implicitly.</p>
                   30003: 
                   30004:   <p>This <code><a href="dom.html#document">Document</a></code> must then be populated with DOM nodes
                   30005:   that represent the tree structure of the input passed to the parser,
                   30006:   as defined by the XML specification, the Namespaces in XML
                   30007:   specification, and the DOM Core specification. DOM mutation events
                   30008:   must not fire for the operations that the <a href="#xml-parser">XML parser</a>
                   30009:   performs on the <code><a href="dom.html#document">Document</a></code>'s tree, but the user agent
                   30010:   must act as if elements and attributes were individually appended
                   30011:   and set respectively so as to trigger rules in this specification
                   30012:   regarding what happens when an element is inserted into a document
                   30013:   or has its attributes set. <a href="#refsXML">[XML]</a> <a href="#refsXMLNS">[XMLNS]</a> <a href="#refsDOMCORE">[DOMCORE]</a>
                   30014:   <a href="#refsDOMEVENTS">[DOMEVENTS]</a></p>
                   30015: 
                   30016:   <p>Between the time an element's start tag is parsed and the time
                   30017:   either the element's end tag is parsed or the parser detects a
                   30018:   well-formedness error, the user agent must act as if the element was
                   30019:   in a <a href="#stack-of-open-elements">stack of open elements</a>.</p>
                   30020: 
                   30021:   <p class="note">This is used by the <code><a href="the-object-element.html#the-object-element">object</a></code> element to
                   30022:   avoid instantiating plugins before the <code><a href="the-param-element.html#the-param-element">param</a></code> element
                   30023:   children have been parsed.</p>
                   30024: 
                   30025:   <p>This specification provides the following additional information
                   30026:   that user agents should use when retrieving an external entity: the
1.193     sruby    30027:   public identifiers given in the following list all correspond to <a href="data:application/xml-dtd;base64,PCFFTlRJVFkgVGFiICImI3g5OyI%2BPCFFTlRJVFkgTmV3TGluZSAiJiN4QTsiPjwhRU5USVRZIGV4Y2wgIiYjeDIxOyI%2BPCFFTlRJVFkgcXVvdCAiJiN4MjI7Ij48IUVOVElUWSBRVU9UICImI3gyMjsiPjwhRU5USVRZIG51bSAiJiN4MjM7Ij48IUVOVElUWSBkb2xsYXIgIiYjeDI0OyI%2BPCFFTlRJVFkgcGVyY250ICImI3gyNTsiPjwhRU5USVRZIGFtcCAiJiN4MjY7Ij48IUVOVElUWSBBTVAgIiYjeDI2OyI%2BPCFFTlRJVFkgYXBvcyAiJiN4Mjc7Ij48IUVOVElUWSBscGFyICImI3gyODsiPjwhRU5USVRZIHJwYXIgIiYjeDI5OyI%2BPCFFTlRJVFkgYXN0ICImI3gyQTsiPjwhRU5USVRZIG1pZGFzdCAiJiN4MkE7Ij48IUVOVElUWSBwbHVzICImI3gyQjsiPjwhRU5USVRZIGNvbW1hICImI3gyQzsiPjwhRU5USVRZIHBlcmlvZCAiJiN4MkU7Ij48IUVOVElUWSBzb2wgIiYjeDJGOyI%2BPCFFTlRJVFkgY29sb24gIiYjeDNBOyI%2BPCFFTlRJVFkgc2VtaSAiJiN4M0I7Ij48IUVOVElUWSBsdCAiJiN4M0M7Ij48IUVOVElUWSBMVCAiJiN4M0M7Ij48IUVOVElUWSBudmx0ICImI3gzQzsmI3gyMEQyOyI%2BPCFFTlRJVFkgZXF1YWxzICImI3gzRDsiPjwhRU5USVRZIGJuZSAiJiN4M0Q7JiN4MjBFNTsiPjwhRU5USVRZIGd0ICImI3gzRTsiPjwhRU5USVRZIEdUICImI3gzRTsiPjwhRU5USVRZIG52Z3QgIiYjeDNFOyYjeDIwRDI7Ij48IUVOVElUWSBxdWVzdCAiJiN4M0Y7Ij48IUVOVElUWSBjb21tYXQgIiYjeDQwOyI%2BPCFFTlRJVFkgbHNxYiAiJiN4NUI7Ij48IUVOVElUWSBsYnJhY2sgIiYjeDVCOyI%2BPCFFTlRJVFkgYnNvbCAiJiN4NUM7Ij48IUVOVElUWSByc3FiICImI3g1RDsiPjwhRU5USVRZIHJicmFjayAiJiN4NUQ7Ij48IUVOVElUWSBIYXQgIiYjeDVFOyI%2BPCFFTlRJVFkgbG93YmFyICImI3g1RjsiPjwhRU5USVRZIFVuZGVyQmFyICImI3g1RjsiPjwhRU5USVRZIGdyYXZlICImI3g2MDsiPjwhRU5USVRZIERpYWNyaXRpY2FsR3JhdmUgIiYjeDYwOyI%2BPCFFTlRJVFkgZmpsaWcgIiYjeDY2OyYjeDZBOyI%2BPCFFTlRJVFkgbGN1YiAiJiN4N0I7Ij48IUVOVElUWSBsYnJhY2UgIiYjeDdCOyI%2BPCFFTlRJVFkgdmVyYmFyICImI3g3QzsiPjwhRU5USVRZIHZlcnQgIiYjeDdDOyI%2BPCFFTlRJVFkgVmVydGljYWxMaW5lICImI3g3QzsiPjwhRU5USVRZIHJjdWIgIiYjeDdEOyI%2BPCFFTlRJVFkgcmJyYWNlICImI3g3RDsiPjwhRU5USVRZIG5ic3AgIiYjeEEwOyI%2BPCFFTlRJVFkgTm9uQnJlYWtpbmdTcGFjZSAiJiN4QTA7Ij48IUVOVElUWSBpZXhjbCAiJiN4QTE7Ij48IUVOVElUWSBjZW50ICImI3hBMjsiPjwhRU5USVRZIHBvdW5kICImI3hBMzsiPjwhRU5USVRZIGN1cnJlbiAiJiN4QTQ7Ij48IUVOVElUWSB5ZW4gIiYjeEE1OyI%2BPCFFTlRJVFkgYnJ2YmFyICImI3hBNjsiPjwhRU5USVRZIHNlY3QgIiYjeEE3OyI%2BPCFFTlRJVFkgRG90ICImI3hBODsiPjwhRU5USVRZIGRpZSAiJiN4QTg7Ij48IUVOVElUWSBEb3VibGVEb3QgIiYjeEE4OyI%2BPCFFTlRJVFkgdW1sICImI3hBODsiPjwhRU5USVRZIGNvcHkgIiYjeEE5OyI%2BPCFFTlRJVFkgQ09QWSAiJiN4QTk7Ij48IUVOVElUWSBvcmRmICImI3hBQTsiPjwhRU5USVRZIGxhcXVvICImI3hBQjsiPjwhRU5USVRZIG5vdCAiJiN4QUM7Ij48IUVOVElUWSBzaHkgIiYjeEFEOyI%2BPCFFTlRJVFkgcmVnICImI3hBRTsiPjwhRU5USVRZIGNpcmNsZWRSICImI3hBRTsiPjwhRU5USVRZIFJFRyAiJiN4QUU7Ij48IUVOVElUWSBtYWNyICImI3hBRjsiPjwhRU5USVRZIHN0cm5zICImI3hBRjsiPjwhRU5USVRZIGRlZyAiJiN4QjA7Ij48IUVOVElUWSBwbHVzbW4gIiYjeEIxOyI%2BPCFFTlRJVFkgcG0gIiYjeEIxOyI%2BPCFFTlRJVFkgUGx1c01pbnVzICImI3hCMTsiPjwhRU5USVRZIHN1cDIgIiYjeEIyOyI%2BPCFFTlRJVFkgc3VwMyAiJiN4QjM7Ij48IUVOVElUWSBhY3V0ZSAiJiN4QjQ7Ij48IUVOVElUWSBEaWFjcml0aWNhbEFjdXRlICImI3hCNDsiPjwhRU5USVRZIG1pY3JvICImI3hCNTsiPjwhRU5USVRZIHBhcmEgIiYjeEI2OyI%2BPCFFTlRJVFkgbWlkZG90ICImI3hCNzsiPjwhRU5USVRZIGNlbnRlcmRvdCAiJiN4Qjc7Ij48IUVOVElUWSBDZW50ZXJEb3QgIiYjeEI3OyI%2BPCFFTlRJVFkgY2VkaWwgIiYjeEI4OyI%2BPCFFTlRJVFkgQ2VkaWxsYSAiJiN4Qjg7Ij48IUVOVElUWSBzdXAxICImI3hCOTsiPjwhRU5USVRZIG9yZG0gIiYjeEJBOyI%2BPCFFTlRJVFkgcmFxdW8gIiYjeEJCOyI%2BPCFFTlRJVFkgZnJhYzE0ICImI3hCQzsiPjwhRU5USVRZIGZyYWMxMiAiJiN4QkQ7Ij48IUVOVElUWSBoYWxmICImI3hCRDsiPjwhRU5USVRZIGZyYWMzNCAiJiN4QkU7Ij48IUVOVElUWSBpcXVlc3QgIiYjeEJGOyI%2BPCFFTlRJVFkgQWdyYXZlICImI3hDMDsiPjwhRU5USVRZIEFhY3V0ZSAiJiN4QzE7Ij48IUVOVElUWSBBY2lyYyAiJiN4QzI7Ij48IUVOVElUWSBBdGlsZGUgIiYjeEMzOyI%2BPCFFTlRJVFkgQXVtbCAiJiN4QzQ7Ij48IUVOVElUWSBBcmluZyAiJiN4QzU7Ij48IUVOVElUWSBhbmdzdCAiJiN4QzU7Ij48IUVOVElUWSBBRWxpZyAiJiN4QzY7Ij48IUVOVElUWSBDY2VkaWwgIiYjeEM3OyI%2BPCFFTlRJVFkgRWdyYXZlICImI3hDODsiPjwhRU5USVRZIEVhY3V0ZSAiJiN4Qzk7Ij48IUVOVElUWSBFY2lyYyAiJiN4Q0E7Ij48IUVOVElUWSBFdW1sICImI3hDQjsiPjwhRU5USVRZIElncmF2ZSAiJiN4Q0M7Ij48IUVOVElUWSBJYWN1dGUgIiYjeENEOyI%2BPCFFTlRJVFkgSWNpcmMgIiYjeENFOyI%2BPCFFTlRJVFkgSXVtbCAiJiN4Q0Y7Ij48IUVOVElUWSBFVEggIiYjeEQwOyI%2BPCFFTlRJVFkgTnRpbGRlICImI3hEMTsiPjwhRU5USVRZIE9ncmF2ZSAiJiN4RDI7Ij48IUVOVElUWSBPYWN1dGUgIiYjeEQzOyI%2BPCFFTlRJVFkgT2NpcmMgIiYjeEQ0OyI%2BPCFFTlRJVFkgT3RpbGRlICImI3hENTsiPjwhRU5USVRZIE91bWwgIiYjeEQ2OyI%2BPCFFTlRJVFkgdGltZXMgIiYjeEQ3OyI%2BPCFFTlRJVFkgT3NsYXNoICImI3hEODsiPjwhRU5USVRZIFVncmF2ZSAiJiN4RDk7Ij48IUVOVElUWSBVYWN1dGUgIiYjeERBOyI%2BPCFFTlRJVFkgVWNpcmMgIiYjeERCOyI%2BPCFFTlRJVFkgVXVtbCAiJiN4REM7Ij48IUVOVElUWSBZYWN1dGUgIiYjeEREOyI%2BPCFFTlRJVFkgVEhPUk4gIiYjeERFOyI%2BPCFFTlRJVFkgc3psaWcgIiYjeERGOyI%2BPCFFTlRJVFkgYWdyYXZlICImI3hFMDsiPjwhRU5USVRZIGFhY3V0ZSAiJiN4RTE7Ij48IUVOVElUWSBhY2lyYyAiJiN4RTI7Ij48IUVOVElUWSBhdGlsZGUgIiYjeEUzOyI%2BPCFFTlRJVFkgYXVtbCAiJiN4RTQ7Ij48IUVOVElUWSBhcmluZyAiJiN4RTU7Ij48IUVOVElUWSBhZWxpZyAiJiN4RTY7Ij48IUVOVElUWSBjY2VkaWwgIiYjeEU3OyI%2BPCFFTlRJVFkgZWdyYXZlICImI3hFODsiPjwhRU5USVRZIGVhY3V0ZSAiJiN4RTk7Ij48IUVOVElUWSBlY2lyYyAiJiN4RUE7Ij48IUVOVElUWSBldW1sICImI3hFQjsiPjwhRU5USVRZIGlncmF2ZSAiJiN4RUM7Ij48IUVOVElUWSBpYWN1dGUgIiYjeEVEOyI%2BPCFFTlRJVFkgaWNpcmMgIiYjeEVFOyI%2BPCFFTlRJVFkgaXVtbCAiJiN4RUY7Ij48IUVOVElUWSBldGggIiYjeEYwOyI%2BPCFFTlRJVFkgbnRpbGRlICImI3hGMTsiPjwhRU5USVRZIG9ncmF2ZSAiJiN4RjI7Ij48IUVOVElUWSBvYWN1dGUgIiYjeEYzOyI%2BPCFFTlRJVFkgb2NpcmMgIiYjeEY0OyI%2BPCFFTlRJVFkgb3RpbGRlICImI3hGNTsiPjwhRU5USVRZIG91bWwgIiYjeEY2OyI%2BPCFFTlRJVFkgZGl2aWRlICImI3hGNzsiPjwhRU5USVRZIGRpdiAiJiN4Rjc7Ij48IUVOVElUWSBvc2xhc2ggIiYjeEY4OyI%2BPCFFTlRJVFkgdWdyYXZlICImI3hGOTsiPjwhRU5USVRZIHVhY3V0ZSAiJiN4RkE7Ij48IUVOVElUWSB1Y2lyYyAiJiN4RkI7Ij48IUVOVElUWSB1dW1sICImI3hGQzsiPjwhRU5USVRZIHlhY3V0ZSAiJiN4RkQ7Ij48IUVOVElUWSB0aG9ybiAiJiN4RkU7Ij48IUVOVElUWSB5dW1sICImI3hGRjsiPjwhRU5USVRZIEFtYWNyICImI3gxMDA7Ij48IUVOVElUWSBhbWFjciAiJiN4MTAxOyI%2BPCFFTlRJVFkgQWJyZXZlICImI3gxMDI7Ij48IUVOVElUWSBhYnJldmUgIiYjeDEwMzsiPjwhRU5USVRZIEFvZ29uICImI3gxMDQ7Ij48IUVOVElUWSBhb2dvbiAiJiN4MTA1OyI%2BPCFFTlRJVFkgQ2FjdXRlICImI3gxMDY7Ij48IUVOVElUWSBjYWN1dGUgIiYjeDEwNzsiPjwhRU5USVRZIENjaXJjICImI3gxMDg7Ij48IUVOVElUWSBjY2lyYyAiJiN4MTA5OyI%2BPCFFTlRJVFkgQ2RvdCAiJiN4MTBBOyI%2BPCFFTlRJVFkgY2RvdCAiJiN4MTBCOyI%2BPCFFTlRJVFkgQ2Nhcm9uICImI3gxMEM7Ij48IUVOVElUWSBjY2Fyb24gIiYjeDEwRDsiPjwhRU5USVRZIERjYXJvbiAiJiN4MTBFOyI%2BPCFFTlRJVFkgZGNhcm9uICImI3gxMEY7Ij48IUVOVElUWSBEc3Ryb2sgIiYjeDExMDsiPjwhRU5USVRZIGRzdHJvayAiJiN4MTExOyI%2BPCFFTlRJVFkgRW1hY3IgIiYjeDExMjsiPjwhRU5USVRZIGVtYWNyICImI3gxMTM7Ij48IUVOVElUWSBFZG90ICImI3gxMTY7Ij48IUVOVElUWSBlZG90ICImI3gxMTc7Ij48IUVOVElUWSBFb2dvbiAiJiN4MTE4OyI%2BPCFFTlRJVFkgZW9nb24gIiYjeDExOTsiPjwhRU5USVRZIEVjYXJvbiAiJiN4MTFBOyI%2BPCFFTlRJVFkgZWNhcm9uICImI3gxMUI7Ij48IUVOVElUWSBHY2lyYyAiJiN4MTFDOyI%2BPCFFTlRJVFkgZ2NpcmMgIiYjeDExRDsiPjwhRU5USVRZIEdicmV2ZSAiJiN4MTFFOyI%2BPCFFTlRJVFkgZ2JyZXZlICImI3gxMUY7Ij48IUVOVElUWSBHZG90ICImI3gxMjA7Ij48IUVOVElUWSBnZG90ICImI3gxMjE7Ij48IUVOVElUWSBHY2VkaWwgIiYjeDEyMjsiPjwhRU5USVRZIEhjaXJjICImI3gxMjQ7Ij48IUVOVElUWSBoY2lyYyAiJiN4MTI1OyI%2BPCFFTlRJVFkgSHN0cm9rICImI3gxMjY7Ij48IUVOVElUWSBoc3Ryb2sgIiYjeDEyNzsiPjwhRU5USVRZIEl0aWxkZSAiJiN4MTI4OyI%2BPCFFTlRJVFkgaXRpbGRlICImI3gxMjk7Ij48IUVOVElUWSBJbWFjciAiJiN4MTJBOyI%2BPCFFTlRJVFkgaW1hY3IgIiYjeDEyQjsiPjwhRU5USVRZIElvZ29uICImI3gxMkU7Ij48IUVOVElUWSBpb2dvbiAiJiN4MTJGOyI%2BPCFFTlRJVFkgSWRvdCAiJiN4MTMwOyI%2BPCFFTlRJVFkgaW1hdGggIiYjeDEzMTsiPjwhRU5USVRZIGlub2RvdCAiJiN4MTMxOyI%2BPCFFTlRJVFkgSUpsaWcgIiYjeDEzMjsiPjwhRU5USVRZIGlqbGlnICImI3gxMzM7Ij48IUVOVElUWSBKY2lyYyAiJiN4MTM0OyI%2BPCFFTlRJVFkgamNpcmMgIiYjeDEzNTsiPjwhRU5USVRZIEtjZWRpbCAiJiN4MTM2OyI%2BPCFFTlRJVFkga2NlZGlsICImI3gxMzc7Ij48IUVOVElUWSBrZ3JlZW4gIiYjeDEzODsiPjwhRU5USVRZIExhY3V0ZSAiJiN4MTM5OyI%2BPCFFTlRJVFkgbGFjdXRlICImI3gxM0E7Ij48IUVOVElUWSBMY2VkaWwgIiYjeDEzQjsiPjwhRU5USVRZIGxjZWRpbCAiJiN4MTNDOyI%2BPCFFTlRJVFkgTGNhcm9uICImI3gxM0Q7Ij48IUVOVElUWSBsY2Fyb24gIiYjeDEzRTsiPjwhRU5USVRZIExtaWRvdCAiJiN4MTNGOyI%2BPCFFTlRJVFkgbG1pZG90ICImI3gxNDA7Ij48IUVOVElUWSBMc3Ryb2sgIiYjeDE0MTsiPjwhRU5USVRZIGxzdHJvayAiJiN4MTQyOyI%2BPCFFTlRJVFkgTmFjdXRlICImI3gxNDM7Ij48IUVOVElUWSBuYWN1dGUgIiYjeDE0NDsiPjwhRU5USVRZIE5jZWRpbCAiJiN4MTQ1OyI%2BPCFFTlRJVFkgbmNlZGlsICImI3gxNDY7Ij48IUVOVElUWSBOY2Fyb24gIiYjeDE0NzsiPjwhRU5USVRZIG5jYXJvbiAiJiN4MTQ4OyI%2BPCFFTlRJVFkgbmFwb3MgIiYjeDE0OTsiPjwhRU5USVRZIEVORyAiJiN4MTRBOyI%2BPCFFTlRJVFkgZW5nICImI3gxNEI7Ij48IUVOVElUWSBPbWFjciAiJiN4MTRDOyI%2BPCFFTlRJVFkgb21hY3IgIiYjeDE0RDsiPjwhRU5USVRZIE9kYmxhYyAiJiN4MTUwOyI%2BPCFFTlRJVFkgb2RibGFjICImI3gxNTE7Ij48IUVOVElUWSBPRWxpZyAiJiN4MTUyOyI%2BPCFFTlRJVFkgb2VsaWcgIiYjeDE1MzsiPjwhRU5USVRZIFJhY3V0ZSAiJiN4MTU0OyI%2BPCFFTlRJVFkgcmFjdXRlICImI3gxNTU7Ij48IUVOVElUWSBSY2VkaWwgIiYjeDE1NjsiPjwhRU5USVRZIHJjZWRpbCAiJiN4MTU3OyI%2BPCFFTlRJVFkgUmNhcm9uICImI3gxNTg7Ij48IUVOVElUWSByY2Fyb24gIiYjeDE1OTsiPjwhRU5USVRZIFNhY3V0ZSAiJiN4MTVBOyI%2BPCFFTlRJVFkgc2FjdXRlICImI3gxNUI7Ij48IUVOVElUWSBTY2lyYyAiJiN4MTVDOyI%2BPCFFTlRJVFkgc2NpcmMgIiYjeDE1RDsiPjwhRU5USVRZIFNjZWRpbCAiJiN4MTVFOyI%2BPCFFTlRJVFkgc2NlZGlsICImI3gxNUY7Ij48IUVOVElUWSBTY2Fyb24gIiYjeDE2MDsiPjwhRU5USVRZIHNjYXJvbiAiJiN4MTYxOyI%2BPCFFTlRJVFkgVGNlZGlsICImI3gxNjI7Ij48IUVOVElUWSB0Y2VkaWwgIiYjeDE2MzsiPjwhRU5USVRZIFRjYXJvbiAiJiN4MTY0OyI%2BPCFFTlRJVFkgdGNhcm9uICImI3gxNjU7Ij48IUVOVElUWSBUc3Ryb2sgIiYjeDE2NjsiPjwhRU5USVRZIHRzdHJvayAiJiN4MTY3OyI%2BPCFFTlRJVFkgVXRpbGRlICImI3gxNjg7Ij48IUVOVElUWSB1dGlsZGUgIiYjeDE2OTsiPjwhRU5USVRZIFVtYWNyICImI3gxNkE7Ij48IUVOVElUWSB1bWFjciAiJiN4MTZCOyI%2BPCFFTlRJVFkgVWJyZXZlICImI3gxNkM7Ij48IUVOVElUWSB1YnJldmUgIiYjeDE2RDsiPjwhRU5USVRZIFVyaW5nICImI3gxNkU7Ij48IUVOVElUWSB1cmluZyAiJiN4MTZGOyI%2BPCFFTlRJVFkgVWRibGFjICImI3gxNzA7Ij48IUVOVElUWSB1ZGJsYWMgIiYjeDE3MTsiPjwhRU5USVRZIFVvZ29uICImI3gxNzI7Ij48IUVOVElUWSB1b2dvbiAiJiN4MTczOyI%2BPCFFTlRJVFkgV2NpcmMgIiYjeDE3NDsiPjwhRU5USVRZIHdjaXJjICImI3gxNzU7Ij48IUVOVElUWSBZY2lyYyAiJiN4MTc2OyI%2BPCFFTlRJVFkgeWNpcmMgIiYjeDE3NzsiPjwhRU5USVRZIFl1bWwgIiYjeDE3ODsiPjwhRU5USVRZIFphY3V0ZSAiJiN4MTc5OyI%2BPCFFTlRJVFkgemFjdXRlICImI3gxN0E7Ij48IUVOVElUWSBaZG90ICImI3gxN0I7Ij48IUVOVElUWSB6ZG90ICImI3gxN0M7Ij48IUVOVElUWSBaY2Fyb24gIiYjeDE3RDsiPjwhRU5USVRZIHpjYXJvbiAiJiN4MTdFOyI%2BPCFFTlRJVFkgZm5vZiAiJiN4MTkyOyI%2BPCFFTlRJVFkgaW1wZWQgIiYjeDFCNTsiPjwhRU5USVRZIGdhY3V0ZSAiJiN4MUY1OyI%2BPCFFTlRJVFkgam1hdGggIiYjeDIzNzsiPjwhRU5USVRZIGNpcmMgIiYjeDJDNjsiPjwhRU5USVRZIGNhcm9uICImI3gyQzc7Ij48IUVOVElUWSBIYWNlayAiJiN4MkM3OyI%2BPCFFTlRJVFkgYnJldmUgIiYjeDJEODsiPjwhRU5USVRZIEJyZXZlICImI3gyRDg7Ij48IUVOVElUWSBkb3QgIiYjeDJEOTsiPjwhRU5USVRZIERpYWNyaXRpY2FsRG90ICImI3gyRDk7Ij48IUVOVElUWSByaW5nICImI3gyREE7Ij48IUVOVElUWSBvZ29uICImI3gyREI7Ij48IUVOVElUWSB0aWxkZSAiJiN4MkRDOyI%2BPCFFTlRJVFkgRGlhY3JpdGljYWxUaWxkZSAiJiN4MkRDOyI%2BPCFFTlRJVFkgZGJsYWMgIiYjeDJERDsiPjwhRU5USVRZIERpYWNyaXRpY2FsRG91YmxlQWN1dGUgIiYjeDJERDsiPjwhRU5USVRZIERvd25CcmV2ZSAiJiN4MzExOyI%2BPCFFTlRJVFkgQWxwaGEgIiYjeDM5MTsiPjwhRU5USVRZIEJldGEgIiYjeDM5MjsiPjwhRU5USVRZIEdhbW1hICImI3gzOTM7Ij48IUVOVElUWSBEZWx0YSAiJiN4Mzk0OyI%2BPCFFTlRJVFkgRXBzaWxvbiAiJiN4Mzk1OyI%2BPCFFTlRJVFkgWmV0YSAiJiN4Mzk2OyI%2BPCFFTlRJVFkgRXRhICImI3gzOTc7Ij48IUVOVElUWSBUaGV0YSAiJiN4Mzk4OyI%2BPCFFTlRJVFkgSW90YSAiJiN4Mzk5OyI%2BPCFFTlRJVFkgS2FwcGEgIiYjeDM5QTsiPjwhRU5USVRZIExhbWJkYSAiJiN4MzlCOyI%2BPCFFTlRJVFkgTXUgIiYjeDM5QzsiPjwhRU5USVRZIE51ICImI3gzOUQ7Ij48IUVOVElUWSBYaSAiJiN4MzlFOyI%2BPCFFTlRJVFkgT21pY3JvbiAiJiN4MzlGOyI%2BPCFFTlRJVFkgUGkgIiYjeDNBMDsiPjwhRU5USVRZIFJobyAiJiN4M0ExOyI%2BPCFFTlRJVFkgU2lnbWEgIiYjeDNBMzsiPjwhRU5USVRZIFRhdSAiJiN4M0E0OyI%2BPCFFTlRJVFkgVXBzaWxvbiAiJiN4M0E1OyI%2BPCFFTlRJVFkgUGhpICImI3gzQTY7Ij48IUVOVElUWSBDaGkgIiYjeDNBNzsiPjwhRU5USVRZIFBzaSAiJiN4M0E4OyI%2BPCFFTlRJVFkgT21lZ2EgIiYjeDNBOTsiPjwhRU5USVRZIG9obSAiJiN4M0E5OyI%2BPCFFTlRJVFkgYWxwaGEgIiYjeDNCMTsiPjwhRU5USVRZIGJldGEgIiYjeDNCMjsiPjwhRU5USVRZIGdhbW1hICImI3gzQjM7Ij48IUVOVElUWSBkZWx0YSAiJiN4M0I0OyI%2BPCFFTlRJVFkgZXBzaSAiJiN4M0I1OyI%2BPCFFTlRJVFkgZXBzaWxvbiAiJiN4M0I1OyI%2BPCFFTlRJVFkgemV0YSAiJiN4M0I2OyI%2BPCFFTlRJVFkgZXRhICImI3gzQjc7Ij48IUVOVElUWSB0aGV0YSAiJiN4M0I4OyI%2BPCFFTlRJVFkgaW90YSAiJiN4M0I5OyI%2BPCFFTlRJVFkga2FwcGEgIiYjeDNCQTsiPjwhRU5USVRZIGxhbWJkYSAiJiN4M0JCOyI%2BPCFFTlRJVFkgbXUgIiYjeDNCQzsiPjwhRU5USVRZIG51ICImI3gzQkQ7Ij48IUVOVElUWSB4aSAiJiN4M0JFOyI%2BPCFFTlRJVFkgb21pY3JvbiAiJiN4M0JGOyI%2BPCFFTlRJVFkgcGkgIiYjeDNDMDsiPjwhRU5USVRZIHJobyAiJiN4M0MxOyI%2BPCFFTlRJVFkgc2lnbWF2ICImI3gzQzI7Ij48IUVOVElUWSB2YXJzaWdtYSAiJiN4M0MyOyI%2BPCFFTlRJVFkgc2lnbWFmICImI3gzQzI7Ij48IUVOVElUWSBzaWdtYSAiJiN4M0MzOyI%2BPCFFTlRJVFkgdGF1ICImI3gzQzQ7Ij48IUVOVElUWSB1cHNpICImI3gzQzU7Ij48IUVOVElUWSB1cHNpbG9uICImI3gzQzU7Ij48IUVOVElUWSBwaGkgIiYjeDNDNjsiPjwhRU5USVRZIGNoaSAiJiN4M0M3OyI%2BPCFFTlRJVFkgcHNpICImI3gzQzg7Ij48IUVOVElUWSBvbWVnYSAiJiN4M0M5OyI%2BPCFFTlRJVFkgdGhldGF2ICImI3gzRDE7Ij48IUVOVElUWSB2YXJ0aGV0YSAiJiN4M0QxOyI%2BPCFFTlRJVFkgdGhldGFzeW0gIiYjeDNEMTsiPjwhRU5USVRZIFVwc2kgIiYjeDNEMjsiPjwhRU5USVRZIHVwc2loICImI3gzRDI7Ij48IUVOVElUWSBzdHJhaWdodHBoaSAiJiN4M0Q1OyI%2BPCFFTlRJVFkgcGhpdiAiJiN4M0Q1OyI%2BPCFFTlRJVFkgdmFycGhpICImI3gzRDU7Ij48IUVOVElUWSBwaXYgIiYjeDNENjsiPjwhRU5USVRZIHZhcnBpICImI3gzRDY7Ij48IUVOVElUWSBHYW1tYWQgIiYjeDNEQzsiPjwhRU5USVRZIGdhbW1hZCAiJiN4M0REOyI%2BPCFFTlRJVFkgZGlnYW1tYSAiJiN4M0REOyI%2BPCFFTlRJVFkga2FwcGF2ICImI3gzRjA7Ij48IUVOVElUWSB2YXJrYXBwYSAiJiN4M0YwOyI%2BPCFFTlRJVFkgcmhvdiAiJiN4M0YxOyI%2BPCFFTlRJVFkgdmFycmhvICImI3gzRjE7Ij48IUVOVElUWSBlcHNpdiAiJiN4M0Y1OyI%2BPCFFTlRJVFkgc3RyYWlnaHRlcHNpbG9uICImI3gzRjU7Ij48IUVOVElUWSB2YXJlcHNpbG9uICImI3gzRjU7Ij48IUVOVElUWSBiZXBzaSAiJiN4M0Y2OyI%2BPCFFTlRJVFkgYmFja2Vwc2lsb24gIiYjeDNGNjsiPjwhRU5USVRZIElPY3kgIiYjeDQwMTsiPjwhRU5USVRZIERKY3kgIiYjeDQwMjsiPjwhRU5USVRZIEdKY3kgIiYjeDQwMzsiPjwhRU5USVRZIEp1a2N5ICImI3g0MDQ7Ij48IUVOVElUWSBEU2N5ICImI3g0MDU7Ij48IUVOVElUWSBJdWtjeSAiJiN4NDA2OyI%2BPCFFTlRJVFkgWUljeSAiJiN4NDA3OyI%2BPCFFTlRJVFkgSnNlcmN5ICImI3g0MDg7Ij48IUVOVElUWSBMSmN5ICImI3g0MDk7Ij48IUVOVElUWSBOSmN5ICImI3g0MEE7Ij48IUVOVElUWSBUU0hjeSAiJiN4NDBCOyI%2BPCFFTlRJVFkgS0pjeSAiJiN4NDBDOyI%2BPCFFTlRJVFkgVWJyY3kgIiYjeDQwRTsiPjwhRU5USVRZIERaY3kgIiYjeDQwRjsiPjwhRU5USVRZIEFjeSAiJiN4NDEwOyI%2BPCFFTlRJVFkgQmN5ICImI3g0MTE7Ij48IUVOVElUWSBWY3kgIiYjeDQxMjsiPjwhRU5USVRZIEdjeSAiJiN4NDEzOyI%2BPCFFTlRJVFkgRGN5ICImI3g0MTQ7Ij48IUVOVElUWSBJRWN5ICImI3g0MTU7Ij48IUVOVElUWSBaSGN5ICImI3g0MTY7Ij48IUVOVElUWSBaY3kgIiYjeDQxNzsiPjwhRU5USVRZIEljeSAiJiN4NDE4OyI%2BPCFFTlRJVFkgSmN5ICImI3g0MTk7Ij48IUVOVElUWSBLY3kgIiYjeDQxQTsiPjwhRU5USVRZIExjeSAiJiN4NDFCOyI%2BPCFFTlRJVFkgTWN5ICImI3g0MUM7Ij48IUVOVElUWSBOY3kgIiYjeDQxRDsiPjwhRU5USVRZIE9jeSAiJiN4NDFFOyI%2BPCFFTlRJVFkgUGN5ICImI3g0MUY7Ij48IUVOVElUWSBSY3kgIiYjeDQyMDsiPjwhRU5USVRZIFNjeSAiJiN4NDIxOyI%2BPCFFTlRJVFkgVGN5ICImI3g0MjI7Ij48IUVOVElUWSBVY3kgIiYjeDQyMzsiPjwhRU5USVRZIEZjeSAiJiN4NDI0OyI%2BPCFFTlRJVFkgS0hjeSAiJiN4NDI1OyI%2BPCFFTlRJVFkgVFNjeSAiJiN4NDI2OyI%2BPCFFTlRJVFkgQ0hjeSAiJiN4NDI3OyI%2BPCFFTlRJVFkgU0hjeSAiJiN4NDI4OyI%2BPCFFTlRJVFkgU0hDSGN5ICImI3g0Mjk7Ij48IUVOVElUWSBIQVJEY3kgIiYjeDQyQTsiPjwhRU5USVRZIFljeSAiJiN4NDJCOyI%2BPCFFTlRJVFkgU09GVGN5ICImI3g0MkM7Ij48IUVOVElUWSBFY3kgIiYjeDQyRDsiPjwhRU5USVRZIFlVY3kgIiYjeDQyRTsiPjwhRU5USVRZIFlBY3kgIiYjeDQyRjsiPjwhRU5USVRZIGFjeSAiJiN4NDMwOyI%2BPCFFTlRJVFkgYmN5ICImI3g0MzE7Ij48IUVOVElUWSB2Y3kgIiYjeDQzMjsiPjwhRU5USVRZIGdjeSAiJiN4NDMzOyI%2BPCFFTlRJVFkgZGN5ICImI3g0MzQ7Ij48IUVOVElUWSBpZWN5ICImI3g0MzU7Ij48IUVOVElUWSB6aGN5ICImI3g0MzY7Ij48IUVOVElUWSB6Y3kgIiYjeDQzNzsiPjwhRU5USVRZIGljeSAiJiN4NDM4OyI%2BPCFFTlRJVFkgamN5ICImI3g0Mzk7Ij48IUVOVElUWSBrY3kgIiYjeDQzQTsiPjwhRU5USVRZIGxjeSAiJiN4NDNCOyI%2BPCFFTlRJVFkgbWN5ICImI3g0M0M7Ij48IUVOVElUWSBuY3kgIiYjeDQzRDsiPjwhRU5USVRZIG9jeSAiJiN4NDNFOyI%2BPCFFTlRJVFkgcGN5ICImI3g0M0Y7Ij48IUVOVElUWSByY3kgIiYjeDQ0MDsiPjwhRU5USVRZIHNjeSAiJiN4NDQxOyI%2BPCFFTlRJVFkgdGN5ICImI3g0NDI7Ij48IUVOVElUWSB1Y3kgIiYjeDQ0MzsiPjwhRU5USVRZIGZjeSAiJiN4NDQ0OyI%2BPCFFTlRJVFkga2hjeSAiJiN4NDQ1OyI%2BPCFFTlRJVFkgdHNjeSAiJiN4NDQ2OyI%2BPCFFTlRJVFkgY2hjeSAiJiN4NDQ3OyI%2BPCFFTlRJVFkgc2hjeSAiJiN4NDQ4OyI%2BPCFFTlRJVFkgc2hjaGN5ICImI3g0NDk7Ij48IUVOVElUWSBoYXJkY3kgIiYjeDQ0QTsiPjwhRU5USVRZIHljeSAiJiN4NDRCOyI%2BPCFFTlRJVFkgc29mdGN5ICImI3g0NEM7Ij48IUVOVElUWSBlY3kgIiYjeDQ0RDsiPjwhRU5USVRZIHl1Y3kgIiYjeDQ0RTsiPjwhRU5USVRZIHlhY3kgIiYjeDQ0RjsiPjwhRU5USVRZIGlvY3kgIiYjeDQ1MTsiPjwhRU5USVRZIGRqY3kgIiYjeDQ1MjsiPjwhRU5USVRZIGdqY3kgIiYjeDQ1MzsiPjwhRU5USVRZIGp1a2N5ICImI3g0NTQ7Ij48IUVOVElUWSBkc2N5ICImI3g0NTU7Ij48IUVOVElUWSBpdWtjeSAiJiN4NDU2OyI%2BPCFFTlRJVFkgeWljeSAiJiN4NDU3OyI%2BPCFFTlRJVFkganNlcmN5ICImI3g0NTg7Ij48IUVOVElUWSBsamN5ICImI3g0NTk7Ij48IUVOVElUWSBuamN5ICImI3g0NUE7Ij48IUVOVElUWSB0c2hjeSAiJiN4NDVCOyI%2BPCFFTlRJVFkga2pjeSAiJiN4NDVDOyI%2BPCFFTlRJVFkgdWJyY3kgIiYjeDQ1RTsiPjwhRU5USVRZIGR6Y3kgIiYjeDQ1RjsiPjwhRU5USVRZIGVuc3AgIiYjeDIwMDI7Ij48IUVOVElUWSBlbXNwICImI3gyMDAzOyI%2BPCFFTlRJVFkgZW1zcDEzICImI3gyMDA0OyI%2BPCFFTlRJVFkgZW1zcDE0ICImI3gyMDA1OyI%2BPCFFTlRJVFkgbnVtc3AgIiYjeDIwMDc7Ij48IUVOVElUWSBwdW5jc3AgIiYjeDIwMDg7Ij48IUVOVElUWSB0aGluc3AgIiYjeDIwMDk7Ij48IUVOVElUWSBUaGluU3BhY2UgIiYjeDIwMDk7Ij48IUVOVElUWSBoYWlyc3AgIiYjeDIwMEE7Ij48IUVOVElUWSBWZXJ5VGhpblNwYWNlICImI3gyMDBBOyI%2BPCFFTlRJVFkgWmVyb1dpZHRoU3BhY2UgIiYjeDIwMEI7Ij48IUVOVElUWSBOZWdhdGl2ZVZlcnlUaGluU3BhY2UgIiYjeDIwMEI7Ij48IUVOVElUWSBOZWdhdGl2ZVRoaW5TcGFjZSAiJiN4MjAwQjsiPjwhRU5USVRZIE5lZ2F0aXZlTWVkaXVtU3BhY2UgIiYjeDIwMEI7Ij48IUVOVElUWSBOZWdhdGl2ZVRoaWNrU3BhY2UgIiYjeDIwMEI7Ij48IUVOVElUWSB6d25qICImI3gyMDBDOyI%2BPCFFTlRJVFkgendqICImI3gyMDBEOyI%2BPCFFTlRJVFkgbHJtICImI3gyMDBFOyI%2BPCFFTlRJVFkgcmxtICImI3gyMDBGOyI%2BPCFFTlRJVFkgaHlwaGVuICImI3gyMDEwOyI%2BPCFFTlRJVFkgZGFzaCAiJiN4MjAxMDsiPjwhRU5USVRZIG5kYXNoICImI3gyMDEzOyI%2BPCFFTlRJVFkgbWRhc2ggIiYjeDIwMTQ7Ij48IUVOVElUWSBob3JiYXIgIiYjeDIwMTU7Ij48IUVOVElUWSBWZXJiYXIgIiYjeDIwMTY7Ij48IUVOVElUWSBWZXJ0ICImI3gyMDE2OyI%2BPCFFTlRJVFkgbHNxdW8gIiYjeDIwMTg7Ij48IUVOVElUWSBPcGVuQ3VybHlRdW90ZSAiJiN4MjAxODsiPjwhRU5USVRZIHJzcXVvICImI3gyMDE5OyI%2BPCFFTlRJVFkgcnNxdW9yICImI3gyMDE5OyI%2BPCFFTlRJVFkgQ2xvc2VDdXJseVF1b3RlICImI3gyMDE5OyI%2BPCFFTlRJVFkgbHNxdW9yICImI3gyMDFBOyI%2BPCFFTlRJVFkgc2JxdW8gIiYjeDIwMUE7Ij48IUVOVElUWSBsZHF1byAiJiN4MjAxQzsiPjwhRU5USVRZIE9wZW5DdXJseURvdWJsZVF1b3RlICImI3gyMDFDOyI%2BPCFFTlRJVFkgcmRxdW8gIiYjeDIwMUQ7Ij48IUVOVElUWSByZHF1b3IgIiYjeDIwMUQ7Ij48IUVOVElUWSBDbG9zZUN1cmx5RG91YmxlUXVvdGUgIiYjeDIwMUQ7Ij48IUVOVElUWSBsZHF1b3IgIiYjeDIwMUU7Ij48IUVOVElUWSBiZHF1byAiJiN4MjAxRTsiPjwhRU5USVRZIGRhZ2dlciAiJiN4MjAyMDsiPjwhRU5USVRZIERhZ2dlciAiJiN4MjAyMTsiPjwhRU5USVRZIGRkYWdnZXIgIiYjeDIwMjE7Ij48IUVOVElUWSBidWxsICImI3gyMDIyOyI%2BPCFFTlRJVFkgYnVsbGV0ICImI3gyMDIyOyI%2BPCFFTlRJVFkgbmxkciAiJiN4MjAyNTsiPjwhRU5USVRZIGhlbGxpcCAiJiN4MjAyNjsiPjwhRU5USVRZIG1sZHIgIiYjeDIwMjY7Ij48IUVOVElUWSBwZXJtaWwgIiYjeDIwMzA7Ij48IUVOVElUWSBwZXJ0ZW5rICImI3gyMDMxOyI%2BPCFFTlRJVFkgcHJpbWUgIiYjeDIwMzI7Ij48IUVOVElUWSBQcmltZSAiJiN4MjAzMzsiPjwhRU5USVRZIHRwcmltZSAiJiN4MjAzNDsiPjwhRU5USVRZIGJwcmltZSAiJiN4MjAzNTsiPjwhRU5USVRZIGJhY2twcmltZSAiJiN4MjAzNTsiPjwhRU5USVRZIGxzYXF1byAiJiN4MjAzOTsiPjwhRU5USVRZIHJzYXF1byAiJiN4MjAzQTsiPjwhRU5USVRZIG9saW5lICImI3gyMDNFOyI%2BPCFFTlRJVFkgT3ZlckJhciAiJiN4MjAzRTsiPjwhRU5USVRZIGNhcmV0ICImI3gyMDQxOyI%2BPCFFTlRJVFkgaHlidWxsICImI3gyMDQzOyI%2BPCFFTlRJVFkgZnJhc2wgIiYjeDIwNDQ7Ij48IUVOVElUWSBic2VtaSAiJiN4MjA0RjsiPjwhRU5USVRZIHFwcmltZSAiJiN4MjA1NzsiPjwhRU5USVRZIE1lZGl1bVNwYWNlICImI3gyMDVGOyI%2BPCFFTlRJVFkgVGhpY2tTcGFjZSAiJiN4MjA1RjsmI3gyMDBBOyI%2BPCFFTlRJVFkgTm9CcmVhayAiJiN4MjA2MDsiPjwhRU5USVRZIEFwcGx5RnVuY3Rpb24gIiYjeDIwNjE7Ij48IUVOVElUWSBhZiAiJiN4MjA2MTsiPjwhRU5USVRZIEludmlzaWJsZVRpbWVzICImI3gyMDYyOyI%2BPCFFTlRJVFkgaXQgIiYjeDIwNjI7Ij48IUVOVElUWSBJbnZpc2libGVDb21tYSAiJiN4MjA2MzsiPjwhRU5USVRZIGljICImI3gyMDYzOyI%2BPCFFTlRJVFkgZXVybyAiJiN4MjBBQzsiPjwhRU5USVRZIHRkb3QgIiYjeDIwREI7Ij48IUVOVElUWSBUcmlwbGVEb3QgIiYjeDIwREI7Ij48IUVOVElUWSBEb3REb3QgIiYjeDIwREM7Ij48IUVOVElUWSBDb3BmICImI3gyMTAyOyI%2BPCFFTlRJVFkgY29tcGxleGVzICImI3gyMTAyOyI%2BPCFFTlRJVFkgaW5jYXJlICImI3gyMTA1OyI%2BPCFFTlRJVFkgZ3NjciAiJiN4MjEwQTsiPjwhRU5USVRZIGhhbWlsdCAiJiN4MjEwQjsiPjwhRU5USVRZIEhpbGJlcnRTcGFjZSAiJiN4MjEwQjsiPjwhRU5USVRZIEhzY3IgIiYjeDIxMEI7Ij48IUVOVElUWSBIZnIgIiYjeDIxMEM7Ij48IUVOVElUWSBQb2luY2FyZXBsYW5lICImI3gyMTBDOyI%2BPCFFTlRJVFkgcXVhdGVybmlvbnMgIiYjeDIxMEQ7Ij48IUVOVElUWSBIb3BmICImI3gyMTBEOyI%2BPCFFTlRJVFkgcGxhbmNraCAiJiN4MjEwRTsiPjwhRU5USVRZIHBsYW5jayAiJiN4MjEwRjsiPjwhRU5USVRZIGhiYXIgIiYjeDIxMEY7Ij48IUVOVElUWSBwbGFua3YgIiYjeDIxMEY7Ij48IUVOVElUWSBoc2xhc2ggIiYjeDIxMEY7Ij48IUVOVElUWSBJc2NyICImI3gyMTEwOyI%2BPCFFTlRJVFkgaW1hZ2xpbmUgIiYjeDIxMTA7Ij48IUVOVElUWSBpbWFnZSAiJiN4MjExMTsiPjwhRU5USVRZIEltICImI3gyMTExOyI%2BPCFFTlRJVFkgaW1hZ3BhcnQgIiYjeDIxMTE7Ij48IUVOVElUWSBJZnIgIiYjeDIxMTE7Ij48IUVOVElUWSBMc2NyICImI3gyMTEyOyI%2BPCFFTlRJVFkgbGFncmFuICImI3gyMTEyOyI%2BPCFFTlRJVFkgTGFwbGFjZXRyZiAiJiN4MjExMjsiPjwhRU5USVRZIGVsbCAiJiN4MjExMzsiPjwhRU5USVRZIE5vcGYgIiYjeDIxMTU7Ij48IUVOVElUWSBuYXR1cmFscyAiJiN4MjExNTsiPjwhRU5USVRZIG51bWVybyAiJiN4MjExNjsiPjwhRU5USVRZIGNvcHlzciAiJiN4MjExNzsiPjwhRU5USVRZIHdlaWVycCAiJiN4MjExODsiPjwhRU5USVRZIHdwICImI3gyMTE4OyI%2BPCFFTlRJVFkgUG9wZiAiJiN4MjExOTsiPjwhRU5USVRZIHByaW1lcyAiJiN4MjExOTsiPjwhRU5USVRZIHJhdGlvbmFscyAiJiN4MjExQTsiPjwhRU5USVRZIFFvcGYgIiYjeDIxMUE7Ij48IUVOVElUWSBSc2NyICImI3gyMTFCOyI%2BPCFFTlRJVFkgcmVhbGluZSAiJiN4MjExQjsiPjwhRU5USVRZIHJlYWwgIiYjeDIxMUM7Ij48IUVOVElUWSBSZSAiJiN4MjExQzsiPjwhRU5USVRZIHJlYWxwYXJ0ICImI3gyMTFDOyI%2BPCFFTlRJVFkgUmZyICImI3gyMTFDOyI%2BPCFFTlRJVFkgcmVhbHMgIiYjeDIxMUQ7Ij48IUVOVElUWSBSb3BmICImI3gyMTFEOyI%2BPCFFTlRJVFkgcnggIiYjeDIxMUU7Ij48IUVOVElUWSB0cmFkZSAiJiN4MjEyMjsiPjwhRU5USVRZIFRSQURFICImI3gyMTIyOyI%2BPCFFTlRJVFkgaW50ZWdlcnMgIiYjeDIxMjQ7Ij48IUVOVElUWSBab3BmICImI3gyMTI0OyI%2BPCFFTlRJVFkgbWhvICImI3gyMTI3OyI%2BPCFFTlRJVFkgWmZyICImI3gyMTI4OyI%2BPCFFTlRJVFkgemVldHJmICImI3gyMTI4OyI%2BPCFFTlRJVFkgaWlvdGEgIiYjeDIxMjk7Ij48IUVOVElUWSBiZXJub3UgIiYjeDIxMkM7Ij48IUVOVElUWSBCZXJub3VsbGlzICImI3gyMTJDOyI%2BPCFFTlRJVFkgQnNjciAiJiN4MjEyQzsiPjwhRU5USVRZIENmciAiJiN4MjEyRDsiPjwhRU5USVRZIENheWxleXMgIiYjeDIxMkQ7Ij48IUVOVElUWSBlc2NyICImI3gyMTJGOyI%2BPCFFTlRJVFkgRXNjciAiJiN4MjEzMDsiPjwhRU5USVRZIGV4cGVjdGF0aW9uICImI3gyMTMwOyI%2BPCFFTlRJVFkgRnNjciAiJiN4MjEzMTsiPjwhRU5USVRZIEZvdXJpZXJ0cmYgIiYjeDIxMzE7Ij48IUVOVElUWSBwaG1tYXQgIiYjeDIxMzM7Ij48IUVOVElUWSBNZWxsaW50cmYgIiYjeDIxMzM7Ij48IUVOVElUWSBNc2NyICImI3gyMTMzOyI%2BPCFFTlRJVFkgb3JkZXIgIiYjeDIxMzQ7Ij48IUVOVElUWSBvcmRlcm9mICImI3gyMTM0OyI%2BPCFFTlRJVFkgb3NjciAiJiN4MjEzNDsiPjwhRU5USVRZIGFsZWZzeW0gIiYjeDIxMzU7Ij48IUVOVElUWSBhbGVwaCAiJiN4MjEzNTsiPjwhRU5USVRZIGJldGggIiYjeDIxMzY7Ij48IUVOVElUWSBnaW1lbCAiJiN4MjEzNzsiPjwhRU5USVRZIGRhbGV0aCAiJiN4MjEzODsiPjwhRU5USVRZIENhcGl0YWxEaWZmZXJlbnRpYWxEICImI3gyMTQ1OyI%2BPCFFTlRJVFkgREQgIiYjeDIxNDU7Ij48IUVOVElUWSBEaWZmZXJlbnRpYWxEICImI3gyMTQ2OyI%2BPCFFTlRJVFkgZGQgIiYjeDIxNDY7Ij48IUVOVElUWSBFeHBvbmVudGlhbEUgIiYjeDIxNDc7Ij48IUVOVElUWSBleHBvbmVudGlhbGUgIiYjeDIxNDc7Ij48IUVOVElUWSBlZSAiJiN4MjE0NzsiPjwhRU5USVRZIEltYWdpbmFyeUkgIiYjeDIxNDg7Ij48IUVOVElUWSBpaSAiJiN4MjE0ODsiPjwhRU5USVRZIGZyYWMxMyAiJiN4MjE1MzsiPjwhRU5USVRZIGZyYWMyMyAiJiN4MjE1NDsiPjwhRU5USVRZIGZyYWMxNSAiJiN4MjE1NTsiPjwhRU5USVRZIGZyYWMyNSAiJiN4MjE1NjsiPjwhRU5USVRZIGZyYWMzNSAiJiN4MjE1NzsiPjwhRU5USVRZIGZyYWM0NSAiJiN4MjE1ODsiPjwhRU5USVRZIGZyYWMxNiAiJiN4MjE1OTsiPjwhRU5USVRZIGZyYWM1NiAiJiN4MjE1QTsiPjwhRU5USVRZIGZyYWMxOCAiJiN4MjE1QjsiPjwhRU5USVRZIGZyYWMzOCAiJiN4MjE1QzsiPjwhRU5USVRZIGZyYWM1OCAiJiN4MjE1RDsiPjwhRU5USVRZIGZyYWM3OCAiJiN4MjE1RTsiPjwhRU5USVRZIGxhcnIgIiYjeDIxOTA7Ij48IUVOVElUWSBsZWZ0YXJyb3cgIiYjeDIxOTA7Ij48IUVOVElUWSBMZWZ0QXJyb3cgIiYjeDIxOTA7Ij48IUVOVElUWSBzbGFyciAiJiN4MjE5MDsiPjwhRU5USVRZIFNob3J0TGVmdEFycm93ICImI3gyMTkwOyI%2BPCFFTlRJVFkgdWFyciAiJiN4MjE5MTsiPjwhRU5USVRZIHVwYXJyb3cgIiYjeDIxOTE7Ij48IUVOVElUWSBVcEFycm93ICImI3gyMTkxOyI%2BPCFFTlRJVFkgU2hvcnRVcEFycm93ICImI3gyMTkxOyI%2BPCFFTlRJVFkgcmFyciAiJiN4MjE5MjsiPjwhRU5USVRZIHJpZ2h0YXJyb3cgIiYjeDIxOTI7Ij48IUVOVElUWSBSaWdodEFycm93ICImI3gyMTkyOyI%2BPCFFTlRJVFkgc3JhcnIgIiYjeDIxOTI7Ij48IUVOVElUWSBTaG9ydFJpZ2h0QXJyb3cgIiYjeDIxOTI7Ij48IUVOVElUWSBkYXJyICImI3gyMTkzOyI%2BPCFFTlRJVFkgZG93bmFycm93ICImI3gyMTkzOyI%2BPCFFTlRJVFkgRG93bkFycm93ICImI3gyMTkzOyI%2BPCFFTlRJVFkgU2hvcnREb3duQXJyb3cgIiYjeDIxOTM7Ij48IUVOVElUWSBoYXJyICImI3gyMTk0OyI%2BPCFFTlRJVFkgbGVmdHJpZ2h0YXJyb3cgIiYjeDIxOTQ7Ij48IUVOVElUWSBMZWZ0UmlnaHRBcnJvdyAiJiN4MjE5NDsiPjwhRU5USVRZIHZhcnIgIiYjeDIxOTU7Ij48IUVOVElUWSB1cGRvd25hcnJvdyAiJiN4MjE5NTsiPjwhRU5USVRZIFVwRG93bkFycm93ICImI3gyMTk1OyI%2BPCFFTlRJVFkgbndhcnIgIiYjeDIxOTY7Ij48IUVOVElUWSBVcHBlckxlZnRBcnJvdyAiJiN4MjE5NjsiPjwhRU5USVRZIG53YXJyb3cgIiYjeDIxOTY7Ij48IUVOVElUWSBuZWFyciAiJiN4MjE5NzsiPjwhRU5USVRZIFVwcGVyUmlnaHRBcnJvdyAiJiN4MjE5NzsiPjwhRU5USVRZIG5lYXJyb3cgIiYjeDIxOTc7Ij48IUVOVElUWSBzZWFyciAiJiN4MjE5ODsiPjwhRU5USVRZIHNlYXJyb3cgIiYjeDIxOTg7Ij48IUVOVElUWSBMb3dlclJpZ2h0QXJyb3cgIiYjeDIxOTg7Ij48IUVOVElUWSBzd2FyciAiJiN4MjE5OTsiPjwhRU5USVRZIHN3YXJyb3cgIiYjeDIxOTk7Ij48IUVOVElUWSBMb3dlckxlZnRBcnJvdyAiJiN4MjE5OTsiPjwhRU5USVRZIG5sYXJyICImI3gyMTlBOyI%2BPCFFTlRJVFkgbmxlZnRhcnJvdyAiJiN4MjE5QTsiPjwhRU5USVRZIG5yYXJyICImI3gyMTlCOyI%2BPCFFTlRJVFkgbnJpZ2h0YXJyb3cgIiYjeDIxOUI7Ij48IUVOVElUWSByYXJydyAiJiN4MjE5RDsiPjwhRU5USVRZIHJpZ2h0c3F1aWdhcnJvdyAiJiN4MjE5RDsiPjwhRU5USVRZIG5yYXJydyAiJiN4MjE5RDsmI3gzMzg7Ij48IUVOVElUWSBMYXJyICImI3gyMTlFOyI%2BPCFFTlRJVFkgdHdvaGVhZGxlZnRhcnJvdyAiJiN4MjE5RTsiPjwhRU5USVRZIFVhcnIgIiYjeDIxOUY7Ij48IUVOVElUWSBSYXJyICImI3gyMUEwOyI%2BPCFFTlRJVFkgdHdvaGVhZHJpZ2h0YXJyb3cgIiYjeDIxQTA7Ij48IUVOVElUWSBEYXJyICImI3gyMUExOyI%2BPCFFTlRJVFkgbGFycnRsICImI3gyMUEyOyI%2BPCFFTlRJVFkgbGVmdGFycm93dGFpbCAiJiN4MjFBMjsiPjwhRU5USVRZIHJhcnJ0bCAiJiN4MjFBMzsiPjwhRU5USVRZIHJpZ2h0YXJyb3d0YWlsICImI3gyMUEzOyI%2BPCFFTlRJVFkgTGVmdFRlZUFycm93ICImI3gyMUE0OyI%2BPCFFTlRJVFkgbWFwc3RvbGVmdCAiJiN4MjFBNDsiPjwhRU5USVRZIFVwVGVlQXJyb3cgIiYjeDIxQTU7Ij48IUVOVElUWSBtYXBzdG91cCAiJiN4MjFBNTsiPjwhRU5USVRZIG1hcCAiJiN4MjFBNjsiPjwhRU5USVRZIFJpZ2h0VGVlQXJyb3cgIiYjeDIxQTY7Ij48IUVOVElUWSBtYXBzdG8gIiYjeDIxQTY7Ij48IUVOVElUWSBEb3duVGVlQXJyb3cgIiYjeDIxQTc7Ij48IUVOVElUWSBtYXBzdG9kb3duICImI3gyMUE3OyI%2BPCFFTlRJVFkgbGFycmhrICImI3gyMUE5OyI%2BPCFFTlRJVFkgaG9va2xlZnRhcnJvdyAiJiN4MjFBOTsiPjwhRU5USVRZIHJhcnJoayAiJiN4MjFBQTsiPjwhRU5USVRZIGhvb2tyaWdodGFycm93ICImI3gyMUFBOyI%2BPCFFTlRJVFkgbGFycmxwICImI3gyMUFCOyI%2BPCFFTlRJVFkgbG9vcGFycm93bGVmdCAiJiN4MjFBQjsiPjwhRU5USVRZIHJhcnJscCAiJiN4MjFBQzsiPjwhRU5USVRZIGxvb3BhcnJvd3JpZ2h0ICImI3gyMUFDOyI%2BPCFFTlRJVFkgaGFycncgIiYjeDIxQUQ7Ij48IUVOVElUWSBsZWZ0cmlnaHRzcXVpZ2Fycm93ICImI3gyMUFEOyI%2BPCFFTlRJVFkgbmhhcnIgIiYjeDIxQUU7Ij48IUVOVElUWSBubGVmdHJpZ2h0YXJyb3cgIiYjeDIxQUU7Ij48IUVOVElUWSBsc2ggIiYjeDIxQjA7Ij48IUVOVElUWSBMc2ggIiYjeDIxQjA7Ij48IUVOVElUWSByc2ggIiYjeDIxQjE7Ij48IUVOVElUWSBSc2ggIiYjeDIxQjE7Ij48IUVOVElUWSBsZHNoICImI3gyMUIyOyI%2BPCFFTlRJVFkgcmRzaCAiJiN4MjFCMzsiPjwhRU5USVRZIGNyYXJyICImI3gyMUI1OyI%2BPCFFTlRJVFkgY3VsYXJyICImI3gyMUI2OyI%2BPCFFTlRJVFkgY3VydmVhcnJvd2xlZnQgIiYjeDIxQjY7Ij48IUVOVElUWSBjdXJhcnIgIiYjeDIxQjc7Ij48IUVOVElUWSBjdXJ2ZWFycm93cmlnaHQgIiYjeDIxQjc7Ij48IUVOVElUWSBvbGFyciAiJiN4MjFCQTsiPjwhRU5USVRZIGNpcmNsZWFycm93bGVmdCAiJiN4MjFCQTsiPjwhRU5USVRZIG9yYXJyICImI3gyMUJCOyI%2BPCFFTlRJVFkgY2lyY2xlYXJyb3dyaWdodCAiJiN4MjFCQjsiPjwhRU5USVRZIGxoYXJ1ICImI3gyMUJDOyI%2BPCFFTlRJVFkgTGVmdFZlY3RvciAiJiN4MjFCQzsiPjwhRU5USVRZIGxlZnRoYXJwb29udXAgIiYjeDIxQkM7Ij48IUVOVElUWSBsaGFyZCAiJiN4MjFCRDsiPjwhRU5USVRZIGxlZnRoYXJwb29uZG93biAiJiN4MjFCRDsiPjwhRU5USVRZIERvd25MZWZ0VmVjdG9yICImI3gyMUJEOyI%2BPCFFTlRJVFkgdWhhcnIgIiYjeDIxQkU7Ij48IUVOVElUWSB1cGhhcnBvb25yaWdodCAiJiN4MjFCRTsiPjwhRU5USVRZIFJpZ2h0VXBWZWN0b3IgIiYjeDIxQkU7Ij48IUVOVElUWSB1aGFybCAiJiN4MjFCRjsiPjwhRU5USVRZIHVwaGFycG9vbmxlZnQgIiYjeDIxQkY7Ij48IUVOVElUWSBMZWZ0VXBWZWN0b3IgIiYjeDIxQkY7Ij48IUVOVElUWSByaGFydSAiJiN4MjFDMDsiPjwhRU5USVRZIFJpZ2h0VmVjdG9yICImI3gyMUMwOyI%2BPCFFTlRJVFkgcmlnaHRoYXJwb29udXAgIiYjeDIxQzA7Ij48IUVOVElUWSByaGFyZCAiJiN4MjFDMTsiPjwhRU5USVRZIHJpZ2h0aGFycG9vbmRvd24gIiYjeDIxQzE7Ij48IUVOVElUWSBEb3duUmlnaHRWZWN0b3IgIiYjeDIxQzE7Ij48IUVOVElUWSBkaGFyciAiJiN4MjFDMjsiPjwhRU5USVRZIFJpZ2h0RG93blZlY3RvciAiJiN4MjFDMjsiPjwhRU5USVRZIGRvd25oYXJwb29ucmlnaHQgIiYjeDIxQzI7Ij48IUVOVElUWSBkaGFybCAiJiN4MjFDMzsiPjwhRU5USVRZIExlZnREb3duVmVjdG9yICImI3gyMUMzOyI%2BPCFFTlRJVFkgZG93bmhhcnBvb25sZWZ0ICImI3gyMUMzOyI%2BPCFFTlRJVFkgcmxhcnIgIiYjeDIxQzQ7Ij48IUVOVElUWSByaWdodGxlZnRhcnJvd3MgIiYjeDIxQzQ7Ij48IUVOVElUWSBSaWdodEFycm93TGVmdEFycm93ICImI3gyMUM0OyI%2BPCFFTlRJVFkgdWRhcnIgIiYjeDIxQzU7Ij48IUVOVElUWSBVcEFycm93RG93bkFycm93ICImI3gyMUM1OyI%2BPCFFTlRJVFkgbHJhcnIgIiYjeDIxQzY7Ij48IUVOVElUWSBsZWZ0cmlnaHRhcnJvd3MgIiYjeDIxQzY7Ij48IUVOVElUWSBMZWZ0QXJyb3dSaWdodEFycm93ICImI3gyMUM2OyI%2BPCFFTlRJVFkgbGxhcnIgIiYjeDIxQzc7Ij48IUVOVElUWSBsZWZ0bGVmdGFycm93cyAiJiN4MjFDNzsiPjwhRU5USVRZIHV1YXJyICImI3gyMUM4OyI%2BPCFFTlRJVFkgdXB1cGFycm93cyAiJiN4MjFDODsiPjwhRU5USVRZIHJyYXJyICImI3gyMUM5OyI%2BPCFFTlRJVFkgcmlnaHRyaWdodGFycm93cyAiJiN4MjFDOTsiPjwhRU5USVRZIGRkYXJyICImI3gyMUNBOyI%2BPCFFTlRJVFkgZG93bmRvd25hcnJvd3MgIiYjeDIxQ0E7Ij48IUVOVElUWSBscmhhciAiJiN4MjFDQjsiPjwhRU5USVRZIFJldmVyc2VFcXVpbGlicml1bSAiJiN4MjFDQjsiPjwhRU5USVRZIGxlZnRyaWdodGhhcnBvb25zICImI3gyMUNCOyI%2BPCFFTlRJVFkgcmxoYXIgIiYjeDIxQ0M7Ij48IUVOVElUWSByaWdodGxlZnRoYXJwb29ucyAiJiN4MjFDQzsiPjwhRU5USVRZIEVxdWlsaWJyaXVtICImI3gyMUNDOyI%2BPCFFTlRJVFkgbmxBcnIgIiYjeDIxQ0Q7Ij48IUVOVElUWSBuTGVmdGFycm93ICImI3gyMUNEOyI%2BPCFFTlRJVFkgbmhBcnIgIiYjeDIxQ0U7Ij48IUVOVElUWSBuTGVmdHJpZ2h0YXJyb3cgIiYjeDIxQ0U7Ij48IUVOVElUWSBuckFyciAiJiN4MjFDRjsiPjwhRU5USVRZIG5SaWdodGFycm93ICImI3gyMUNGOyI%2BPCFFTlRJVFkgbEFyciAiJiN4MjFEMDsiPjwhRU5USVRZIExlZnRhcnJvdyAiJiN4MjFEMDsiPjwhRU5USVRZIERvdWJsZUxlZnRBcnJvdyAiJiN4MjFEMDsiPjwhRU5USVRZIHVBcnIgIiYjeDIxRDE7Ij48IUVOVElUWSBVcGFycm93ICImI3gyMUQxOyI%2BPCFFTlRJVFkgRG91YmxlVXBBcnJvdyAiJiN4MjFEMTsiPjwhRU5USVRZIHJBcnIgIiYjeDIxRDI7Ij48IUVOVElUWSBSaWdodGFycm93ICImI3gyMUQyOyI%2BPCFFTlRJVFkgSW1wbGllcyAiJiN4MjFEMjsiPjwhRU5USVRZIERvdWJsZVJpZ2h0QXJyb3cgIiYjeDIxRDI7Ij48IUVOVElUWSBkQXJyICImI3gyMUQzOyI%2BPCFFTlRJVFkgRG93bmFycm93ICImI3gyMUQzOyI%2BPCFFTlRJVFkgRG91YmxlRG93bkFycm93ICImI3gyMUQzOyI%2BPCFFTlRJVFkgaEFyciAiJiN4MjFENDsiPjwhRU5USVRZIExlZnRyaWdodGFycm93ICImI3gyMUQ0OyI%2BPCFFTlRJVFkgRG91YmxlTGVmdFJpZ2h0QXJyb3cgIiYjeDIxRDQ7Ij48IUVOVElUWSBpZmYgIiYjeDIxRDQ7Ij48IUVOVElUWSB2QXJyICImI3gyMUQ1OyI%2BPCFFTlRJVFkgVXBkb3duYXJyb3cgIiYjeDIxRDU7Ij48IUVOVElUWSBEb3VibGVVcERvd25BcnJvdyAiJiN4MjFENTsiPjwhRU5USVRZIG53QXJyICImI3gyMUQ2OyI%2BPCFFTlRJVFkgbmVBcnIgIiYjeDIxRDc7Ij48IUVOVElUWSBzZUFyciAiJiN4MjFEODsiPjwhRU5USVRZIHN3QXJyICImI3gyMUQ5OyI%2BPCFFTlRJVFkgbEFhcnIgIiYjeDIxREE7Ij48IUVOVElUWSBMbGVmdGFycm93ICImI3gyMURBOyI%2BPCFFTlRJVFkgckFhcnIgIiYjeDIxREI7Ij48IUVOVElUWSBScmlnaHRhcnJvdyAiJiN4MjFEQjsiPjwhRU5USVRZIHppZ3JhcnIgIiYjeDIxREQ7Ij48IUVOVElUWSBsYXJyYiAiJiN4MjFFNDsiPjwhRU5USVRZIExlZnRBcnJvd0JhciAiJiN4MjFFNDsiPjwhRU5USVRZIHJhcnJiICImI3gyMUU1OyI%2BPCFFTlRJVFkgUmlnaHRBcnJvd0JhciAiJiN4MjFFNTsiPjwhRU5USVRZIGR1YXJyICImI3gyMUY1OyI%2BPCFFTlRJVFkgRG93bkFycm93VXBBcnJvdyAiJiN4MjFGNTsiPjwhRU5USVRZIGxvYXJyICImI3gyMUZEOyI%2BPCFFTlRJVFkgcm9hcnIgIiYjeDIxRkU7Ij48IUVOVElUWSBob2FyciAiJiN4MjFGRjsiPjwhRU5USVRZIGZvcmFsbCAiJiN4MjIwMDsiPjwhRU5USVRZIEZvckFsbCAiJiN4MjIwMDsiPjwhRU5USVRZIGNvbXAgIiYjeDIyMDE7Ij48IUVOVElUWSBjb21wbGVtZW50ICImI3gyMjAxOyI%2BPCFFTlRJVFkgcGFydCAiJiN4MjIwMjsiPjwhRU5USVRZIFBhcnRpYWxEICImI3gyMjAyOyI%2BPCFFTlRJVFkgbnBhcnQgIiYjeDIyMDI7JiN4MzM4OyI%2BPCFFTlRJVFkgZXhpc3QgIiYjeDIyMDM7Ij48IUVOVElUWSBFeGlzdHMgIiYjeDIyMDM7Ij48IUVOVElUWSBuZXhpc3QgIiYjeDIyMDQ7Ij48IUVOVElUWSBOb3RFeGlzdHMgIiYjeDIyMDQ7Ij48IUVOVElUWSBuZXhpc3RzICImI3gyMjA0OyI%2BPCFFTlRJVFkgZW1wdHkgIiYjeDIyMDU7Ij48IUVOVElUWSBlbXB0eXNldCAiJiN4MjIwNTsiPjwhRU5USVRZIGVtcHR5diAiJiN4MjIwNTsiPjwhRU5USVRZIHZhcm5vdGhpbmcgIiYjeDIyMDU7Ij48IUVOVElUWSBuYWJsYSAiJiN4MjIwNzsiPjwhRU5USVRZIERlbCAiJiN4MjIwNzsiPjwhRU5USVRZIGlzaW4gIiYjeDIyMDg7Ij48IUVOVElUWSBpc2ludiAiJiN4MjIwODsiPjwhRU5USVRZIEVsZW1lbnQgIiYjeDIyMDg7Ij48IUVOVElUWSBpbiAiJiN4MjIwODsiPjwhRU5USVRZIG5vdGluICImI3gyMjA5OyI%2BPCFFTlRJVFkgTm90RWxlbWVudCAiJiN4MjIwOTsiPjwhRU5USVRZIG5vdGludmEgIiYjeDIyMDk7Ij48IUVOVElUWSBuaXYgIiYjeDIyMEI7Ij48IUVOVElUWSBSZXZlcnNlRWxlbWVudCAiJiN4MjIwQjsiPjwhRU5USVRZIG5pICImI3gyMjBCOyI%2BPCFFTlRJVFkgU3VjaFRoYXQgIiYjeDIyMEI7Ij48IUVOVElUWSBub3RuaSAiJiN4MjIwQzsiPjwhRU5USVRZIG5vdG5pdmEgIiYjeDIyMEM7Ij48IUVOVElUWSBOb3RSZXZlcnNlRWxlbWVudCAiJiN4MjIwQzsiPjwhRU5USVRZIHByb2QgIiYjeDIyMEY7Ij48IUVOVElUWSBQcm9kdWN0ICImI3gyMjBGOyI%2BPCFFTlRJVFkgY29wcm9kICImI3gyMjEwOyI%2BPCFFTlRJVFkgQ29wcm9kdWN0ICImI3gyMjEwOyI%2BPCFFTlRJVFkgc3VtICImI3gyMjExOyI%2BPCFFTlRJVFkgU3VtICImI3gyMjExOyI%2BPCFFTlRJVFkgbWludXMgIiYjeDIyMTI7Ij48IUVOVElUWSBtbnBsdXMgIiYjeDIyMTM7Ij48IUVOVElUWSBtcCAiJiN4MjIxMzsiPjwhRU5USVRZIE1pbnVzUGx1cyAiJiN4MjIxMzsiPjwhRU5USVRZIHBsdXNkbyAiJiN4MjIxNDsiPjwhRU5USVRZIGRvdHBsdXMgIiYjeDIyMTQ7Ij48IUVOVElUWSBzZXRtbiAiJiN4MjIxNjsiPjwhRU5USVRZIHNldG1pbnVzICImI3gyMjE2OyI%2BPCFFTlRJVFkgQmFja3NsYXNoICImI3gyMjE2OyI%2BPCFFTlRJVFkgc3NldG1uICImI3gyMjE2OyI%2BPCFFTlRJVFkgc21hbGxzZXRtaW51cyAiJiN4MjIxNjsiPjwhRU5USVRZIGxvd2FzdCAiJiN4MjIxNzsiPjwhRU5USVRZIGNvbXBmbiAiJiN4MjIxODsiPjwhRU5USVRZIFNtYWxsQ2lyY2xlICImI3gyMjE4OyI%2BPCFFTlRJVFkgcmFkaWMgIiYjeDIyMUE7Ij48IUVOVElUWSBTcXJ0ICImI3gyMjFBOyI%2BPCFFTlRJVFkgcHJvcCAiJiN4MjIxRDsiPjwhRU5USVRZIHByb3B0byAiJiN4MjIxRDsiPjwhRU5USVRZIFByb3BvcnRpb25hbCAiJiN4MjIxRDsiPjwhRU5USVRZIHZwcm9wICImI3gyMjFEOyI%2BPCFFTlRJVFkgdmFycHJvcHRvICImI3gyMjFEOyI%2BPCFFTlRJVFkgaW5maW4gIiYjeDIyMUU7Ij48IUVOVElUWSBhbmdydCAiJiN4MjIxRjsiPjwhRU5USVRZIGFuZyAiJiN4MjIyMDsiPjwhRU5USVRZIGFuZ2xlICImI3gyMjIwOyI%2BPCFFTlRJVFkgbmFuZyAiJiN4MjIyMDsmI3gyMEQyOyI%2BPCFFTlRJVFkgYW5nbXNkICImI3gyMjIxOyI%2BPCFFTlRJVFkgbWVhc3VyZWRhbmdsZSAiJiN4MjIyMTsiPjwhRU5USVRZIGFuZ3NwaCAiJiN4MjIyMjsiPjwhRU5USVRZIG1pZCAiJiN4MjIyMzsiPjwhRU5USVRZIFZlcnRpY2FsQmFyICImI3gyMjIzOyI%2BPCFFTlRJVFkgc21pZCAiJiN4MjIyMzsiPjwhRU5USVRZIHNob3J0bWlkICImI3gyMjIzOyI%2BPCFFTlRJVFkgbm1pZCAiJiN4MjIyNDsiPjwhRU5USVRZIE5vdFZlcnRpY2FsQmFyICImI3gyMjI0OyI%2BPCFFTlRJVFkgbnNtaWQgIiYjeDIyMjQ7Ij48IUVOVElUWSBuc2hvcnRtaWQgIiYjeDIyMjQ7Ij48IUVOVElUWSBwYXIgIiYjeDIyMjU7Ij48IUVOVElUWSBwYXJhbGxlbCAiJiN4MjIyNTsiPjwhRU5USVRZIERvdWJsZVZlcnRpY2FsQmFyICImI3gyMjI1OyI%2BPCFFTlRJVFkgc3BhciAiJiN4MjIyNTsiPjwhRU5USVRZIHNob3J0cGFyYWxsZWwgIiYjeDIyMjU7Ij48IUVOVElUWSBucGFyICImI3gyMjI2OyI%2BPCFFTlRJVFkgbnBhcmFsbGVsICImI3gyMjI2OyI%2BPCFFTlRJVFkgTm90RG91YmxlVmVydGljYWxCYXIgIiYjeDIyMjY7Ij48IUVOVElUWSBuc3BhciAiJiN4MjIyNjsiPjwhRU5USVRZIG5zaG9ydHBhcmFsbGVsICImI3gyMjI2OyI%2BPCFFTlRJVFkgYW5kICImI3gyMjI3OyI%2BPCFFTlRJVFkgd2VkZ2UgIiYjeDIyMjc7Ij48IUVOVElUWSBvciAiJiN4MjIyODsiPjwhRU5USVRZIHZlZSAiJiN4MjIyODsiPjwhRU5USVRZIGNhcCAiJiN4MjIyOTsiPjwhRU5USVRZIGNhcHMgIiYjeDIyMjk7JiN4RkUwMDsiPjwhRU5USVRZIGN1cCAiJiN4MjIyQTsiPjwhRU5USVRZIGN1cHMgIiYjeDIyMkE7JiN4RkUwMDsiPjwhRU5USVRZIGludCAiJiN4MjIyQjsiPjwhRU5USVRZIEludGVncmFsICImI3gyMjJCOyI%2BPCFFTlRJVFkgSW50ICImI3gyMjJDOyI%2BPCFFTlRJVFkgdGludCAiJiN4MjIyRDsiPjwhRU5USVRZIGlpaW50ICImI3gyMjJEOyI%2BPCFFTlRJVFkgY29uaW50ICImI3gyMjJFOyI%2BPCFFTlRJVFkgb2ludCAiJiN4MjIyRTsiPjwhRU5USVRZIENvbnRvdXJJbnRlZ3JhbCAiJiN4MjIyRTsiPjwhRU5USVRZIENvbmludCAiJiN4MjIyRjsiPjwhRU5USVRZIERvdWJsZUNvbnRvdXJJbnRlZ3JhbCAiJiN4MjIyRjsiPjwhRU5USVRZIENjb25pbnQgIiYjeDIyMzA7Ij48IUVOVElUWSBjd2ludCAiJiN4MjIzMTsiPjwhRU5USVRZIGN3Y29uaW50ICImI3gyMjMyOyI%2BPCFFTlRJVFkgQ2xvY2t3aXNlQ29udG91ckludGVncmFsICImI3gyMjMyOyI%2BPCFFTlRJVFkgYXdjb25pbnQgIiYjeDIyMzM7Ij48IUVOVElUWSBDb3VudGVyQ2xvY2t3aXNlQ29udG91ckludGVncmFsICImI3gyMjMzOyI%2BPCFFTlRJVFkgdGhlcmU0ICImI3gyMjM0OyI%2BPCFFTlRJVFkgdGhlcmVmb3JlICImI3gyMjM0OyI%2BPCFFTlRJVFkgVGhlcmVmb3JlICImI3gyMjM0OyI%2BPCFFTlRJVFkgYmVjYXVzICImI3gyMjM1OyI%2BPCFFTlRJVFkgYmVjYXVzZSAiJiN4MjIzNTsiPjwhRU5USVRZIEJlY2F1c2UgIiYjeDIyMzU7Ij48IUVOVElUWSByYXRpbyAiJiN4MjIzNjsiPjwhRU5USVRZIENvbG9uICImI3gyMjM3OyI%2BPCFFTlRJVFkgUHJvcG9ydGlvbiAiJiN4MjIzNzsiPjwhRU5USVRZIG1pbnVzZCAiJiN4MjIzODsiPjwhRU5USVRZIGRvdG1pbnVzICImI3gyMjM4OyI%2BPCFFTlRJVFkgbUREb3QgIiYjeDIyM0E7Ij48IUVOVElUWSBob210aHQgIiYjeDIyM0I7Ij48IUVOVElUWSBzaW0gIiYjeDIyM0M7Ij48IUVOVElUWSBUaWxkZSAiJiN4MjIzQzsiPjwhRU5USVRZIHRoa3NpbSAiJiN4MjIzQzsiPjwhRU5USVRZIHRoaWNrc2ltICImI3gyMjNDOyI%2BPCFFTlRJVFkgbnZzaW0gIiYjeDIyM0M7JiN4MjBEMjsiPjwhRU5USVRZIGJzaW0gIiYjeDIyM0Q7Ij48IUVOVElUWSBiYWNrc2ltICImI3gyMjNEOyI%2BPCFFTlRJVFkgcmFjZSAiJiN4MjIzRDsmI3gzMzE7Ij48IUVOVElUWSBhYyAiJiN4MjIzRTsiPjwhRU5USVRZIG1zdHBvcyAiJiN4MjIzRTsiPjwhRU5USVRZIGFjRSAiJiN4MjIzRTsmI3gzMzM7Ij48IUVOVElUWSBhY2QgIiYjeDIyM0Y7Ij48IUVOVElUWSB3cmVhdGggIiYjeDIyNDA7Ij48IUVOVElUWSBWZXJ0aWNhbFRpbGRlICImI3gyMjQwOyI%2BPCFFTlRJVFkgd3IgIiYjeDIyNDA7Ij48IUVOVElUWSBuc2ltICImI3gyMjQxOyI%2BPCFFTlRJVFkgTm90VGlsZGUgIiYjeDIyNDE7Ij48IUVOVElUWSBlc2ltICImI3gyMjQyOyI%2BPCFFTlRJVFkgRXF1YWxUaWxkZSAiJiN4MjI0MjsiPjwhRU5USVRZIGVxc2ltICImI3gyMjQyOyI%2BPCFFTlRJVFkgTm90RXF1YWxUaWxkZSAiJiN4MjI0MjsmI3gzMzg7Ij48IUVOVElUWSBuZXNpbSAiJiN4MjI0MjsmI3gzMzg7Ij48IUVOVElUWSBzaW1lICImI3gyMjQzOyI%2BPCFFTlRJVFkgVGlsZGVFcXVhbCAiJiN4MjI0MzsiPjwhRU5USVRZIHNpbWVxICImI3gyMjQzOyI%2BPCFFTlRJVFkgbnNpbWUgIiYjeDIyNDQ7Ij48IUVOVElUWSBuc2ltZXEgIiYjeDIyNDQ7Ij48IUVOVElUWSBOb3RUaWxkZUVxdWFsICImI3gyMjQ0OyI%2BPCFFTlRJVFkgY29uZyAiJiN4MjI0NTsiPjwhRU5USVRZIFRpbGRlRnVsbEVxdWFsICImI3gyMjQ1OyI%2BPCFFTlRJVFkgc2ltbmUgIiYjeDIyNDY7Ij48IUVOVElUWSBuY29uZyAiJiN4MjI0NzsiPjwhRU5USVRZIE5vdFRpbGRlRnVsbEVxdWFsICImI3gyMjQ3OyI%2BPCFFTlRJVFkgYXN5bXAgIiYjeDIyNDg7Ij48IUVOVElUWSBhcCAiJiN4MjI0ODsiPjwhRU5USVRZIFRpbGRlVGlsZGUgIiYjeDIyNDg7Ij48IUVOVElUWSBhcHByb3ggIiYjeDIyNDg7Ij48IUVOVElUWSB0aGthcCAiJiN4MjI0ODsiPjwhRU5USVRZIHRoaWNrYXBwcm94ICImI3gyMjQ4OyI%2BPCFFTlRJVFkgbmFwICImI3gyMjQ5OyI%2BPCFFTlRJVFkgTm90VGlsZGVUaWxkZSAiJiN4MjI0OTsiPjwhRU5USVRZIG5hcHByb3ggIiYjeDIyNDk7Ij48IUVOVElUWSBhcGUgIiYjeDIyNEE7Ij48IUVOVElUWSBhcHByb3hlcSAiJiN4MjI0QTsiPjwhRU5USVRZIGFwaWQgIiYjeDIyNEI7Ij48IUVOVElUWSBuYXBpZCAiJiN4MjI0QjsmI3gzMzg7Ij48IUVOVElUWSBiY29uZyAiJiN4MjI0QzsiPjwhRU5USVRZIGJhY2tjb25nICImI3gyMjRDOyI%2BPCFFTlRJVFkgYXN5bXBlcSAiJiN4MjI0RDsiPjwhRU5USVRZIEN1cENhcCAiJiN4MjI0RDsiPjwhRU5USVRZIG52YXAgIiYjeDIyNEQ7JiN4MjBEMjsiPjwhRU5USVRZIGJ1bXAgIiYjeDIyNEU7Ij48IUVOVElUWSBIdW1wRG93bkh1bXAgIiYjeDIyNEU7Ij48IUVOVElUWSBCdW1wZXEgIiYjeDIyNEU7Ij48IUVOVElUWSBOb3RIdW1wRG93bkh1bXAgIiYjeDIyNEU7JiN4MzM4OyI%2BPCFFTlRJVFkgbmJ1bXAgIiYjeDIyNEU7JiN4MzM4OyI%2BPCFFTlRJVFkgYnVtcGUgIiYjeDIyNEY7Ij48IUVOVElUWSBIdW1wRXF1YWwgIiYjeDIyNEY7Ij48IUVOVElUWSBidW1wZXEgIiYjeDIyNEY7Ij48IUVOVElUWSBuYnVtcGUgIiYjeDIyNEY7JiN4MzM4OyI%2BPCFFTlRJVFkgTm90SHVtcEVxdWFsICImI3gyMjRGOyYjeDMzODsiPjwhRU5USVRZIGVzZG90ICImI3gyMjUwOyI%2BPCFFTlRJVFkgRG90RXF1YWwgIiYjeDIyNTA7Ij48IUVOVElUWSBkb3RlcSAiJiN4MjI1MDsiPjwhRU5USVRZIG5lZG90ICImI3gyMjUwOyYjeDMzODsiPjwhRU5USVRZIGVEb3QgIiYjeDIyNTE7Ij48IUVOVElUWSBkb3RlcWRvdCAiJiN4MjI1MTsiPjwhRU5USVRZIGVmRG90ICImI3gyMjUyOyI%2BPCFFTlRJVFkgZmFsbGluZ2RvdHNlcSAiJiN4MjI1MjsiPjwhRU5USVRZIGVyRG90ICImI3gyMjUzOyI%2BPCFFTlRJVFkgcmlzaW5nZG90c2VxICImI3gyMjUzOyI%2BPCFFTlRJVFkgY29sb25lICImI3gyMjU0OyI%2BPCFFTlRJVFkgY29sb25lcSAiJiN4MjI1NDsiPjwhRU5USVRZIEFzc2lnbiAiJiN4MjI1NDsiPjwhRU5USVRZIGVjb2xvbiAiJiN4MjI1NTsiPjwhRU5USVRZIGVxY29sb24gIiYjeDIyNTU7Ij48IUVOVElUWSBlY2lyICImI3gyMjU2OyI%2BPCFFTlRJVFkgZXFjaXJjICImI3gyMjU2OyI%2BPCFFTlRJVFkgY2lyZSAiJiN4MjI1NzsiPjwhRU5USVRZIGNpcmNlcSAiJiN4MjI1NzsiPjwhRU5USVRZIHdlZGdlcSAiJiN4MjI1OTsiPjwhRU5USVRZIHZlZWVxICImI3gyMjVBOyI%2BPCFFTlRJVFkgdHJpZSAiJiN4MjI1QzsiPjwhRU5USVRZIHRyaWFuZ2xlcSAiJiN4MjI1QzsiPjwhRU5USVRZIGVxdWVzdCAiJiN4MjI1RjsiPjwhRU5USVRZIHF1ZXN0ZXEgIiYjeDIyNUY7Ij48IUVOVElUWSBuZSAiJiN4MjI2MDsiPjwhRU5USVRZIE5vdEVxdWFsICImI3gyMjYwOyI%2BPCFFTlRJVFkgZXF1aXYgIiYjeDIyNjE7Ij48IUVOVElUWSBDb25ncnVlbnQgIiYjeDIyNjE7Ij48IUVOVElUWSBibmVxdWl2ICImI3gyMjYxOyYjeDIwRTU7Ij48IUVOVElUWSBuZXF1aXYgIiYjeDIyNjI7Ij48IUVOVElUWSBOb3RDb25ncnVlbnQgIiYjeDIyNjI7Ij48IUVOVElUWSBsZSAiJiN4MjI2NDsiPjwhRU5USVRZIGxlcSAiJiN4MjI2NDsiPjwhRU5USVRZIG52bGUgIiYjeDIyNjQ7JiN4MjBEMjsiPjwhRU5USVRZIGdlICImI3gyMjY1OyI%2BPCFFTlRJVFkgR3JlYXRlckVxdWFsICImI3gyMjY1OyI%2BPCFFTlRJVFkgZ2VxICImI3gyMjY1OyI%2BPCFFTlRJVFkgbnZnZSAiJiN4MjI2NTsmI3gyMEQyOyI%2BPCFFTlRJVFkgbEUgIiYjeDIyNjY7Ij48IUVOVElUWSBMZXNzRnVsbEVxdWFsICImI3gyMjY2OyI%2BPCFFTlRJVFkgbGVxcSAiJiN4MjI2NjsiPjwhRU5USVRZIG5sRSAiJiN4MjI2NjsmI3gzMzg7Ij48IUVOVElUWSBubGVxcSAiJiN4MjI2NjsmI3gzMzg7Ij48IUVOVElUWSBnRSAiJiN4MjI2NzsiPjwhRU5USVRZIEdyZWF0ZXJGdWxsRXF1YWwgIiYjeDIyNjc7Ij48IUVOVElUWSBnZXFxICImI3gyMjY3OyI%2BPCFFTlRJVFkgbmdFICImI3gyMjY3OyYjeDMzODsiPjwhRU5USVRZIG5nZXFxICImI3gyMjY3OyYjeDMzODsiPjwhRU5USVRZIE5vdEdyZWF0ZXJGdWxsRXF1YWwgIiYjeDIyNjc7JiN4MzM4OyI%2BPCFFTlRJVFkgbG5FICImI3gyMjY4OyI%2BPCFFTlRJVFkgbG5lcXEgIiYjeDIyNjg7Ij48IUVOVElUWSBsdm5FICImI3gyMjY4OyYjeEZFMDA7Ij48IUVOVElUWSBsdmVydG5lcXEgIiYjeDIyNjg7JiN4RkUwMDsiPjwhRU5USVRZIGduRSAiJiN4MjI2OTsiPjwhRU5USVRZIGduZXFxICImI3gyMjY5OyI%2BPCFFTlRJVFkgZ3ZuRSAiJiN4MjI2OTsmI3hGRTAwOyI%2BPCFFTlRJVFkgZ3ZlcnRuZXFxICImI3gyMjY5OyYjeEZFMDA7Ij48IUVOVElUWSBMdCAiJiN4MjI2QTsiPjwhRU5USVRZIE5lc3RlZExlc3NMZXNzICImI3gyMjZBOyI%2BPCFFTlRJVFkgbGwgIiYjeDIyNkE7Ij48IUVOVElUWSBuTHR2ICImI3gyMjZBOyYjeDMzODsiPjwhRU5USVRZIE5vdExlc3NMZXNzICImI3gyMjZBOyYjeDMzODsiPjwhRU5USVRZIG5MdCAiJiN4MjI2QTsmI3gyMEQyOyI%2BPCFFTlRJVFkgR3QgIiYjeDIyNkI7Ij48IUVOVElUWSBOZXN0ZWRHcmVhdGVyR3JlYXRlciAiJiN4MjI2QjsiPjwhRU5USVRZIGdnICImI3gyMjZCOyI%2BPCFFTlRJVFkgbkd0diAiJiN4MjI2QjsmI3gzMzg7Ij48IUVOVElUWSBOb3RHcmVhdGVyR3JlYXRlciAiJiN4MjI2QjsmI3gzMzg7Ij48IUVOVElUWSBuR3QgIiYjeDIyNkI7JiN4MjBEMjsiPjwhRU5USVRZIHR3aXh0ICImI3gyMjZDOyI%2BPCFFTlRJVFkgYmV0d2VlbiAiJiN4MjI2QzsiPjwhRU5USVRZIE5vdEN1cENhcCAiJiN4MjI2RDsiPjwhRU5USVRZIG5sdCAiJiN4MjI2RTsiPjwhRU5USVRZIE5vdExlc3MgIiYjeDIyNkU7Ij48IUVOVElUWSBubGVzcyAiJiN4MjI2RTsiPjwhRU5USVRZIG5ndCAiJiN4MjI2RjsiPjwhRU5USVRZIE5vdEdyZWF0ZXIgIiYjeDIyNkY7Ij48IUVOVElUWSBuZ3RyICImI3gyMjZGOyI%2BPCFFTlRJVFkgbmxlICImI3gyMjcwOyI%2BPCFFTlRJVFkgTm90TGVzc0VxdWFsICImI3gyMjcwOyI%2BPCFFTlRJVFkgbmxlcSAiJiN4MjI3MDsiPjwhRU5USVRZIG5nZSAiJiN4MjI3MTsiPjwhRU5USVRZIE5vdEdyZWF0ZXJFcXVhbCAiJiN4MjI3MTsiPjwhRU5USVRZIG5nZXEgIiYjeDIyNzE7Ij48IUVOVElUWSBsc2ltICImI3gyMjcyOyI%2BPCFFTlRJVFkgTGVzc1RpbGRlICImI3gyMjcyOyI%2BPCFFTlRJVFkgbGVzc3NpbSAiJiN4MjI3MjsiPjwhRU5USVRZIGdzaW0gIiYjeDIyNzM7Ij48IUVOVElUWSBndHJzaW0gIiYjeDIyNzM7Ij48IUVOVElUWSBHcmVhdGVyVGlsZGUgIiYjeDIyNzM7Ij48IUVOVElUWSBubHNpbSAiJiN4MjI3NDsiPjwhRU5USVRZIE5vdExlc3NUaWxkZSAiJiN4MjI3NDsiPjwhRU5USVRZIG5nc2ltICImI3gyMjc1OyI%2BPCFFTlRJVFkgTm90R3JlYXRlclRpbGRlICImI3gyMjc1OyI%2BPCFFTlRJVFkgbGcgIiYjeDIyNzY7Ij48IUVOVElUWSBsZXNzZ3RyICImI3gyMjc2OyI%2BPCFFTlRJVFkgTGVzc0dyZWF0ZXIgIiYjeDIyNzY7Ij48IUVOVElUWSBnbCAiJiN4MjI3NzsiPjwhRU5USVRZIGd0cmxlc3MgIiYjeDIyNzc7Ij48IUVOVElUWSBHcmVhdGVyTGVzcyAiJiN4MjI3NzsiPjwhRU5USVRZIG50bGcgIiYjeDIyNzg7Ij48IUVOVElUWSBOb3RMZXNzR3JlYXRlciAiJiN4MjI3ODsiPjwhRU5USVRZIG50Z2wgIiYjeDIyNzk7Ij48IUVOVElUWSBOb3RHcmVhdGVyTGVzcyAiJiN4MjI3OTsiPjwhRU5USVRZIHByICImI3gyMjdBOyI%2BPCFFTlRJVFkgUHJlY2VkZXMgIiYjeDIyN0E7Ij48IUVOVElUWSBwcmVjICImI3gyMjdBOyI%2BPCFFTlRJVFkgc2MgIiYjeDIyN0I7Ij48IUVOVElUWSBTdWNjZWVkcyAiJiN4MjI3QjsiPjwhRU5USVRZIHN1Y2MgIiYjeDIyN0I7Ij48IUVOVElUWSBwcmN1ZSAiJiN4MjI3QzsiPjwhRU5USVRZIFByZWNlZGVzU2xhbnRFcXVhbCAiJiN4MjI3QzsiPjwhRU5USVRZIHByZWNjdXJseWVxICImI3gyMjdDOyI%2BPCFFTlRJVFkgc2NjdWUgIiYjeDIyN0Q7Ij48IUVOVElUWSBTdWNjZWVkc1NsYW50RXF1YWwgIiYjeDIyN0Q7Ij48IUVOVElUWSBzdWNjY3VybHllcSAiJiN4MjI3RDsiPjwhRU5USVRZIHByc2ltICImI3gyMjdFOyI%2BPCFFTlRJVFkgcHJlY3NpbSAiJiN4MjI3RTsiPjwhRU5USVRZIFByZWNlZGVzVGlsZGUgIiYjeDIyN0U7Ij48IUVOVElUWSBzY3NpbSAiJiN4MjI3RjsiPjwhRU5USVRZIHN1Y2NzaW0gIiYjeDIyN0Y7Ij48IUVOVElUWSBTdWNjZWVkc1RpbGRlICImI3gyMjdGOyI%2BPCFFTlRJVFkgTm90U3VjY2VlZHNUaWxkZSAiJiN4MjI3RjsmI3gzMzg7Ij48IUVOVElUWSBucHIgIiYjeDIyODA7Ij48IUVOVElUWSBucHJlYyAiJiN4MjI4MDsiPjwhRU5USVRZIE5vdFByZWNlZGVzICImI3gyMjgwOyI%2BPCFFTlRJVFkgbnNjICImI3gyMjgxOyI%2BPCFFTlRJVFkgbnN1Y2MgIiYjeDIyODE7Ij48IUVOVElUWSBOb3RTdWNjZWVkcyAiJiN4MjI4MTsiPjwhRU5USVRZIHN1YiAiJiN4MjI4MjsiPjwhRU5USVRZIHN1YnNldCAiJiN4MjI4MjsiPjwhRU5USVRZIHZuc3ViICImI3gyMjgyOyYjeDIwRDI7Ij48IUVOVElUWSBuc3Vic2V0ICImI3gyMjgyOyYjeDIwRDI7Ij48IUVOVElUWSBOb3RTdWJzZXQgIiYjeDIyODI7JiN4MjBEMjsiPjwhRU5USVRZIHN1cCAiJiN4MjI4MzsiPjwhRU5USVRZIHN1cHNldCAiJiN4MjI4MzsiPjwhRU5USVRZIFN1cGVyc2V0ICImI3gyMjgzOyI%2BPCFFTlRJVFkgdm5zdXAgIiYjeDIyODM7JiN4MjBEMjsiPjwhRU5USVRZIG5zdXBzZXQgIiYjeDIyODM7JiN4MjBEMjsiPjwhRU5USVRZIE5vdFN1cGVyc2V0ICImI3gyMjgzOyYjeDIwRDI7Ij48IUVOVElUWSBuc3ViICImI3gyMjg0OyI%2BPCFFTlRJVFkgbnN1cCAiJiN4MjI4NTsiPjwhRU5USVRZIHN1YmUgIiYjeDIyODY7Ij48IUVOVElUWSBTdWJzZXRFcXVhbCAiJiN4MjI4NjsiPjwhRU5USVRZIHN1YnNldGVxICImI3gyMjg2OyI%2BPCFFTlRJVFkgc3VwZSAiJiN4MjI4NzsiPjwhRU5USVRZIHN1cHNldGVxICImI3gyMjg3OyI%2BPCFFTlRJVFkgU3VwZXJzZXRFcXVhbCAiJiN4MjI4NzsiPjwhRU5USVRZIG5zdWJlICImI3gyMjg4OyI%2BPCFFTlRJVFkgbnN1YnNldGVxICImI3gyMjg4OyI%2BPCFFTlRJVFkgTm90U3Vic2V0RXF1YWwgIiYjeDIyODg7Ij48IUVOVElUWSBuc3VwZSAiJiN4MjI4OTsiPjwhRU5USVRZIG5zdXBzZXRlcSAiJiN4MjI4OTsiPjwhRU5USVRZIE5vdFN1cGVyc2V0RXF1YWwgIiYjeDIyODk7Ij48IUVOVElUWSBzdWJuZSAiJiN4MjI4QTsiPjwhRU5USVRZIHN1YnNldG5lcSAiJiN4MjI4QTsiPjwhRU5USVRZIHZzdWJuZSAiJiN4MjI4QTsmI3hGRTAwOyI%2BPCFFTlRJVFkgdmFyc3Vic2V0bmVxICImI3gyMjhBOyYjeEZFMDA7Ij48IUVOVElUWSBzdXBuZSAiJiN4MjI4QjsiPjwhRU5USVRZIHN1cHNldG5lcSAiJiN4MjI4QjsiPjwhRU5USVRZIHZzdXBuZSAiJiN4MjI4QjsmI3hGRTAwOyI%2BPCFFTlRJVFkgdmFyc3Vwc2V0bmVxICImI3gyMjhCOyYjeEZFMDA7Ij48IUVOVElUWSBjdXBkb3QgIiYjeDIyOEQ7Ij48IUVOVElUWSB1cGx1cyAiJiN4MjI4RTsiPjwhRU5USVRZIFVuaW9uUGx1cyAiJiN4MjI4RTsiPjwhRU5USVRZIHNxc3ViICImI3gyMjhGOyI%2BPCFFTlRJVFkgU3F1YXJlU3Vic2V0ICImI3gyMjhGOyI%2BPCFFTlRJVFkgc3FzdWJzZXQgIiYjeDIyOEY7Ij48IUVOVElUWSBOb3RTcXVhcmVTdWJzZXQgIiYjeDIyOEY7JiN4MzM4OyI%2BPCFFTlRJVFkgc3FzdXAgIiYjeDIyOTA7Ij48IUVOVElUWSBTcXVhcmVTdXBlcnNldCAiJiN4MjI5MDsiPjwhRU5USVRZIHNxc3Vwc2V0ICImI3gyMjkwOyI%2BPCFFTlRJVFkgTm90U3F1YXJlU3VwZXJzZXQgIiYjeDIyOTA7JiN4MzM4OyI%2BPCFFTlRJVFkgc3FzdWJlICImI3gyMjkxOyI%2BPCFFTlRJVFkgU3F1YXJlU3Vic2V0RXF1YWwgIiYjeDIyOTE7Ij48IUVOVElUWSBzcXN1YnNldGVxICImI3gyMjkxOyI%2BPCFFTlRJVFkgc3FzdXBlICImI3gyMjkyOyI%2BPCFFTlRJVFkgU3F1YXJlU3VwZXJzZXRFcXVhbCAiJiN4MjI5MjsiPjwhRU5USVRZIHNxc3Vwc2V0ZXEgIiYjeDIyOTI7Ij48IUVOVElUWSBzcWNhcCAiJiN4MjI5MzsiPjwhRU5USVRZIFNxdWFyZUludGVyc2VjdGlvbiAiJiN4MjI5MzsiPjwhRU5USVRZIHNxY2FwcyAiJiN4MjI5MzsmI3hGRTAwOyI%2BPCFFTlRJVFkgc3FjdXAgIiYjeDIyOTQ7Ij48IUVOVElUWSBTcXVhcmVVbmlvbiAiJiN4MjI5NDsiPjwhRU5USVRZIHNxY3VwcyAiJiN4MjI5NDsmI3hGRTAwOyI%2BPCFFTlRJVFkgb3BsdXMgIiYjeDIyOTU7Ij48IUVOVElUWSBDaXJjbGVQbHVzICImI3gyMjk1OyI%2BPCFFTlRJVFkgb21pbnVzICImI3gyMjk2OyI%2BPCFFTlRJVFkgQ2lyY2xlTWludXMgIiYjeDIyOTY7Ij48IUVOVElUWSBvdGltZXMgIiYjeDIyOTc7Ij48IUVOVElUWSBDaXJjbGVUaW1lcyAiJiN4MjI5NzsiPjwhRU5USVRZIG9zb2wgIiYjeDIyOTg7Ij48IUVOVElUWSBvZG90ICImI3gyMjk5OyI%2BPCFFTlRJVFkgQ2lyY2xlRG90ICImI3gyMjk5OyI%2BPCFFTlRJVFkgb2NpciAiJiN4MjI5QTsiPjwhRU5USVRZIGNpcmNsZWRjaXJjICImI3gyMjlBOyI%2BPCFFTlRJVFkgb2FzdCAiJiN4MjI5QjsiPjwhRU5USVRZIGNpcmNsZWRhc3QgIiYjeDIyOUI7Ij48IUVOVElUWSBvZGFzaCAiJiN4MjI5RDsiPjwhRU5USVRZIGNpcmNsZWRkYXNoICImI3gyMjlEOyI%2BPCFFTlRJVFkgcGx1c2IgIiYjeDIyOUU7Ij48IUVOVElUWSBib3hwbHVzICImI3gyMjlFOyI%2BPCFFTlRJVFkgbWludXNiICImI3gyMjlGOyI%2BPCFFTlRJVFkgYm94bWludXMgIiYjeDIyOUY7Ij48IUVOVElUWSB0aW1lc2IgIiYjeDIyQTA7Ij48IUVOVElUWSBib3h0aW1lcyAiJiN4MjJBMDsiPjwhRU5USVRZIHNkb3RiICImI3gyMkExOyI%2BPCFFTlRJVFkgZG90c3F1YXJlICImI3gyMkExOyI%2BPCFFTlRJVFkgdmRhc2ggIiYjeDIyQTI7Ij48IUVOVElUWSBSaWdodFRlZSAiJiN4MjJBMjsiPjwhRU5USVRZIGRhc2h2ICImI3gyMkEzOyI%2BPCFFTlRJVFkgTGVmdFRlZSAiJiN4MjJBMzsiPjwhRU5USVRZIHRvcCAiJiN4MjJBNDsiPjwhRU5USVRZIERvd25UZWUgIiYjeDIyQTQ7Ij48IUVOVElUWSBib3R0b20gIiYjeDIyQTU7Ij48IUVOVElUWSBib3QgIiYjeDIyQTU7Ij48IUVOVElUWSBwZXJwICImI3gyMkE1OyI%2BPCFFTlRJVFkgVXBUZWUgIiYjeDIyQTU7Ij48IUVOVElUWSBtb2RlbHMgIiYjeDIyQTc7Ij48IUVOVElUWSB2RGFzaCAiJiN4MjJBODsiPjwhRU5USVRZIERvdWJsZVJpZ2h0VGVlICImI3gyMkE4OyI%2BPCFFTlRJVFkgVmRhc2ggIiYjeDIyQTk7Ij48IUVOVElUWSBWdmRhc2ggIiYjeDIyQUE7Ij48IUVOVElUWSBWRGFzaCAiJiN4MjJBQjsiPjwhRU5USVRZIG52ZGFzaCAiJiN4MjJBQzsiPjwhRU5USVRZIG52RGFzaCAiJiN4MjJBRDsiPjwhRU5USVRZIG5WZGFzaCAiJiN4MjJBRTsiPjwhRU5USVRZIG5WRGFzaCAiJiN4MjJBRjsiPjwhRU5USVRZIHBydXJlbCAiJiN4MjJCMDsiPjwhRU5USVRZIHZsdHJpICImI3gyMkIyOyI%2BPCFFTlRJVFkgdmFydHJpYW5nbGVsZWZ0ICImI3gyMkIyOyI%2BPCFFTlRJVFkgTGVmdFRyaWFuZ2xlICImI3gyMkIyOyI%2BPCFFTlRJVFkgdnJ0cmkgIiYjeDIyQjM7Ij48IUVOVElUWSB2YXJ0cmlhbmdsZXJpZ2h0ICImI3gyMkIzOyI%2BPCFFTlRJVFkgUmlnaHRUcmlhbmdsZSAiJiN4MjJCMzsiPjwhRU5USVRZIGx0cmllICImI3gyMkI0OyI%2BPCFFTlRJVFkgdHJpYW5nbGVsZWZ0ZXEgIiYjeDIyQjQ7Ij48IUVOVElUWSBMZWZ0VHJpYW5nbGVFcXVhbCAiJiN4MjJCNDsiPjwhRU5USVRZIG52bHRyaWUgIiYjeDIyQjQ7JiN4MjBEMjsiPjwhRU5USVRZIHJ0cmllICImI3gyMkI1OyI%2BPCFFTlRJVFkgdHJpYW5nbGVyaWdodGVxICImI3gyMkI1OyI%2BPCFFTlRJVFkgUmlnaHRUcmlhbmdsZUVxdWFsICImI3gyMkI1OyI%2BPCFFTlRJVFkgbnZydHJpZSAiJiN4MjJCNTsmI3gyMEQyOyI%2BPCFFTlRJVFkgb3JpZ29mICImI3gyMkI2OyI%2BPCFFTlRJVFkgaW1vZiAiJiN4MjJCNzsiPjwhRU5USVRZIG11bWFwICImI3gyMkI4OyI%2BPCFFTlRJVFkgbXVsdGltYXAgIiYjeDIyQjg7Ij48IUVOVElUWSBoZXJjb24gIiYjeDIyQjk7Ij48IUVOVElUWSBpbnRjYWwgIiYjeDIyQkE7Ij48IUVOVElUWSBpbnRlcmNhbCAiJiN4MjJCQTsiPjwhRU5USVRZIHZlZWJhciAiJiN4MjJCQjsiPjwhRU5USVRZIGJhcnZlZSAiJiN4MjJCRDsiPjwhRU5USVRZIGFuZ3J0dmIgIiYjeDIyQkU7Ij48IUVOVElUWSBscnRyaSAiJiN4MjJCRjsiPjwhRU5USVRZIHh3ZWRnZSAiJiN4MjJDMDsiPjwhRU5USVRZIFdlZGdlICImI3gyMkMwOyI%2BPCFFTlRJVFkgYmlnd2VkZ2UgIiYjeDIyQzA7Ij48IUVOVElUWSB4dmVlICImI3gyMkMxOyI%2BPCFFTlRJVFkgVmVlICImI3gyMkMxOyI%2BPCFFTlRJVFkgYmlndmVlICImI3gyMkMxOyI%2BPCFFTlRJVFkgeGNhcCAiJiN4MjJDMjsiPjwhRU5USVRZIEludGVyc2VjdGlvbiAiJiN4MjJDMjsiPjwhRU5USVRZIGJpZ2NhcCAiJiN4MjJDMjsiPjwhRU5USVRZIHhjdXAgIiYjeDIyQzM7Ij48IUVOVElUWSBVbmlvbiAiJiN4MjJDMzsiPjwhRU5USVRZIGJpZ2N1cCAiJiN4MjJDMzsiPjwhRU5USVRZIGRpYW0gIiYjeDIyQzQ7Ij48IUVOVElUWSBkaWFtb25kICImI3gyMkM0OyI%2BPCFFTlRJVFkgRGlhbW9uZCAiJiN4MjJDNDsiPjwhRU5USVRZIHNkb3QgIiYjeDIyQzU7Ij48IUVOVElUWSBzc3RhcmYgIiYjeDIyQzY7Ij48IUVOVElUWSBTdGFyICImI3gyMkM2OyI%2BPCFFTlRJVFkgZGl2b254ICImI3gyMkM3OyI%2BPCFFTlRJVFkgZGl2aWRlb250aW1lcyAiJiN4MjJDNzsiPjwhRU5USVRZIGJvd3RpZSAiJiN4MjJDODsiPjwhRU5USVRZIGx0aW1lcyAiJiN4MjJDOTsiPjwhRU5USVRZIHJ0aW1lcyAiJiN4MjJDQTsiPjwhRU5USVRZIGx0aHJlZSAiJiN4MjJDQjsiPjwhRU5USVRZIGxlZnR0aHJlZXRpbWVzICImI3gyMkNCOyI%2BPCFFTlRJVFkgcnRocmVlICImI3gyMkNDOyI%2BPCFFTlRJVFkgcmlnaHR0aHJlZXRpbWVzICImI3gyMkNDOyI%2BPCFFTlRJVFkgYnNpbWUgIiYjeDIyQ0Q7Ij48IUVOVElUWSBiYWNrc2ltZXEgIiYjeDIyQ0Q7Ij48IUVOVElUWSBjdXZlZSAiJiN4MjJDRTsiPjwhRU5USVRZIGN1cmx5dmVlICImI3gyMkNFOyI%2BPCFFTlRJVFkgY3V3ZWQgIiYjeDIyQ0Y7Ij48IUVOVElUWSBjdXJseXdlZGdlICImI3gyMkNGOyI%2BPCFFTlRJVFkgU3ViICImI3gyMkQwOyI%2BPCFFTlRJVFkgU3Vic2V0ICImI3gyMkQwOyI%2BPCFFTlRJVFkgU3VwICImI3gyMkQxOyI%2BPCFFTlRJVFkgU3Vwc2V0ICImI3gyMkQxOyI%2BPCFFTlRJVFkgQ2FwICImI3gyMkQyOyI%2BPCFFTlRJVFkgQ3VwICImI3gyMkQzOyI%2BPCFFTlRJVFkgZm9yayAiJiN4MjJENDsiPjwhRU5USVRZIHBpdGNoZm9yayAiJiN4MjJENDsiPjwhRU5USVRZIGVwYXIgIiYjeDIyRDU7Ij48IUVOVElUWSBsdGRvdCAiJiN4MjJENjsiPjwhRU5USVRZIGxlc3Nkb3QgIiYjeDIyRDY7Ij48IUVOVElUWSBndGRvdCAiJiN4MjJENzsiPjwhRU5USVRZIGd0cmRvdCAiJiN4MjJENzsiPjwhRU5USVRZIExsICImI3gyMkQ4OyI%2BPCFFTlRJVFkgbkxsICImI3gyMkQ4OyYjeDMzODsiPjwhRU5USVRZIEdnICImI3gyMkQ5OyI%2BPCFFTlRJVFkgZ2dnICImI3gyMkQ5OyI%2BPCFFTlRJVFkgbkdnICImI3gyMkQ5OyYjeDMzODsiPjwhRU5USVRZIGxlZyAiJiN4MjJEQTsiPjwhRU5USVRZIExlc3NFcXVhbEdyZWF0ZXIgIiYjeDIyREE7Ij48IUVOVElUWSBsZXNzZXFndHIgIiYjeDIyREE7Ij48IUVOVElUWSBsZXNnICImI3gyMkRBOyYjeEZFMDA7Ij48IUVOVElUWSBnZWwgIiYjeDIyREI7Ij48IUVOVElUWSBndHJlcWxlc3MgIiYjeDIyREI7Ij48IUVOVElUWSBHcmVhdGVyRXF1YWxMZXNzICImI3gyMkRCOyI%2BPCFFTlRJVFkgZ2VzbCAiJiN4MjJEQjsmI3hGRTAwOyI%2BPCFFTlRJVFkgY3VlcHIgIiYjeDIyREU7Ij48IUVOVElUWSBjdXJseWVxcHJlYyAiJiN4MjJERTsiPjwhRU5USVRZIGN1ZXNjICImI3gyMkRGOyI%2BPCFFTlRJVFkgY3VybHllcXN1Y2MgIiYjeDIyREY7Ij48IUVOVElUWSBucHJjdWUgIiYjeDIyRTA7Ij48IUVOVElUWSBOb3RQcmVjZWRlc1NsYW50RXF1YWwgIiYjeDIyRTA7Ij48IUVOVElUWSBuc2NjdWUgIiYjeDIyRTE7Ij48IUVOVElUWSBOb3RTdWNjZWVkc1NsYW50RXF1YWwgIiYjeDIyRTE7Ij48IUVOVElUWSBuc3FzdWJlICImI3gyMkUyOyI%2BPCFFTlRJVFkgTm90U3F1YXJlU3Vic2V0RXF1YWwgIiYjeDIyRTI7Ij48IUVOVElUWSBuc3FzdXBlICImI3gyMkUzOyI%2BPCFFTlRJVFkgTm90U3F1YXJlU3VwZXJzZXRFcXVhbCAiJiN4MjJFMzsiPjwhRU5USVRZIGxuc2ltICImI3gyMkU2OyI%2BPCFFTlRJVFkgZ25zaW0gIiYjeDIyRTc7Ij48IUVOVElUWSBwcm5zaW0gIiYjeDIyRTg7Ij48IUVOVElUWSBwcmVjbnNpbSAiJiN4MjJFODsiPjwhRU5USVRZIHNjbnNpbSAiJiN4MjJFOTsiPjwhRU5USVRZIHN1Y2Nuc2ltICImI3gyMkU5OyI%2BPCFFTlRJVFkgbmx0cmkgIiYjeDIyRUE7Ij48IUVOVElUWSBudHJpYW5nbGVsZWZ0ICImI3gyMkVBOyI%2BPCFFTlRJVFkgTm90TGVmdFRyaWFuZ2xlICImI3gyMkVBOyI%2BPCFFTlRJVFkgbnJ0cmkgIiYjeDIyRUI7Ij48IUVOVElUWSBudHJpYW5nbGVyaWdodCAiJiN4MjJFQjsiPjwhRU5USVRZIE5vdFJpZ2h0VHJpYW5nbGUgIiYjeDIyRUI7Ij48IUVOVElUWSBubHRyaWUgIiYjeDIyRUM7Ij48IUVOVElUWSBudHJpYW5nbGVsZWZ0ZXEgIiYjeDIyRUM7Ij48IUVOVElUWSBOb3RMZWZ0VHJpYW5nbGVFcXVhbCAiJiN4MjJFQzsiPjwhRU5USVRZIG5ydHJpZSAiJiN4MjJFRDsiPjwhRU5USVRZIG50cmlhbmdsZXJpZ2h0ZXEgIiYjeDIyRUQ7Ij48IUVOVElUWSBOb3RSaWdodFRyaWFuZ2xlRXF1YWwgIiYjeDIyRUQ7Ij48IUVOVElUWSB2ZWxsaXAgIiYjeDIyRUU7Ij48IUVOVElUWSBjdGRvdCAiJiN4MjJFRjsiPjwhRU5USVRZIHV0ZG90ICImI3gyMkYwOyI%2BPCFFTlRJVFkgZHRkb3QgIiYjeDIyRjE7Ij48IUVOVElUWSBkaXNpbiAiJiN4MjJGMjsiPjwhRU5USVRZIGlzaW5zdiAiJiN4MjJGMzsiPjwhRU5USVRZIGlzaW5zICImI3gyMkY0OyI%2BPCFFTlRJVFkgaXNpbmRvdCAiJiN4MjJGNTsiPjwhRU5USVRZIG5vdGluZG90ICImI3gyMkY1OyYjeDMzODsiPjwhRU5USVRZIG5vdGludmMgIiYjeDIyRjY7Ij48IUVOVElUWSBub3RpbnZiICImI3gyMkY3OyI%2BPCFFTlRJVFkgaXNpbkUgIiYjeDIyRjk7Ij48IUVOVElUWSBub3RpbkUgIiYjeDIyRjk7JiN4MzM4OyI%2BPCFFTlRJVFkgbmlzZCAiJiN4MjJGQTsiPjwhRU5USVRZIHhuaXMgIiYjeDIyRkI7Ij48IUVOVElUWSBuaXMgIiYjeDIyRkM7Ij48IUVOVElUWSBub3RuaXZjICImI3gyMkZEOyI%2BPCFFTlRJVFkgbm90bml2YiAiJiN4MjJGRTsiPjwhRU5USVRZIGJhcndlZCAiJiN4MjMwNTsiPjwhRU5USVRZIGJhcndlZGdlICImI3gyMzA1OyI%2BPCFFTlRJVFkgQmFyd2VkICImI3gyMzA2OyI%2BPCFFTlRJVFkgZG91YmxlYmFyd2VkZ2UgIiYjeDIzMDY7Ij48IUVOVElUWSBsY2VpbCAiJiN4MjMwODsiPjwhRU5USVRZIExlZnRDZWlsaW5nICImI3gyMzA4OyI%2BPCFFTlRJVFkgcmNlaWwgIiYjeDIzMDk7Ij48IUVOVElUWSBSaWdodENlaWxpbmcgIiYjeDIzMDk7Ij48IUVOVElUWSBsZmxvb3IgIiYjeDIzMEE7Ij48IUVOVElUWSBMZWZ0Rmxvb3IgIiYjeDIzMEE7Ij48IUVOVElUWSByZmxvb3IgIiYjeDIzMEI7Ij48IUVOVElUWSBSaWdodEZsb29yICImI3gyMzBCOyI%2BPCFFTlRJVFkgZHJjcm9wICImI3gyMzBDOyI%2BPCFFTlRJVFkgZGxjcm9wICImI3gyMzBEOyI%2BPCFFTlRJVFkgdXJjcm9wICImI3gyMzBFOyI%2BPCFFTlRJVFkgdWxjcm9wICImI3gyMzBGOyI%2BPCFFTlRJVFkgYm5vdCAiJiN4MjMxMDsiPjwhRU5USVRZIHByb2ZsaW5lICImI3gyMzEyOyI%2BPCFFTlRJVFkgcHJvZnN1cmYgIiYjeDIzMTM7Ij48IUVOVElUWSB0ZWxyZWMgIiYjeDIzMTU7Ij48IUVOVElUWSB0YXJnZXQgIiYjeDIzMTY7Ij48IUVOVElUWSB1bGNvcm4gIiYjeDIzMUM7Ij48IUVOVElUWSB1bGNvcm5lciAiJiN4MjMxQzsiPjwhRU5USVRZIHVyY29ybiAiJiN4MjMxRDsiPjwhRU5USVRZIHVyY29ybmVyICImI3gyMzFEOyI%2BPCFFTlRJVFkgZGxjb3JuICImI3gyMzFFOyI%2BPCFFTlRJVFkgbGxjb3JuZXIgIiYjeDIzMUU7Ij48IUVOVElUWSBkcmNvcm4gIiYjeDIzMUY7Ij48IUVOVElUWSBscmNvcm5lciAiJiN4MjMxRjsiPjwhRU5USVRZIGZyb3duICImI3gyMzIyOyI%2BPCFFTlRJVFkgc2Zyb3duICImI3gyMzIyOyI%2BPCFFTlRJVFkgc21pbGUgIiYjeDIzMjM7Ij48IUVOVElUWSBzc21pbGUgIiYjeDIzMjM7Ij48IUVOVElUWSBjeWxjdHkgIiYjeDIzMkQ7Ij48IUVOVElUWSBwcm9mYWxhciAiJiN4MjMyRTsiPjwhRU5USVRZIHRvcGJvdCAiJiN4MjMzNjsiPjwhRU5USVRZIG92YmFyICImI3gyMzNEOyI%2BPCFFTlRJVFkgc29sYmFyICImI3gyMzNGOyI%2BPCFFTlRJVFkgYW5nemFyciAiJiN4MjM3QzsiPjwhRU5USVRZIGxtb3VzdCAiJiN4MjNCMDsiPjwhRU5USVRZIGxtb3VzdGFjaGUgIiYjeDIzQjA7Ij48IUVOVElUWSBybW91c3QgIiYjeDIzQjE7Ij48IUVOVElUWSBybW91c3RhY2hlICImI3gyM0IxOyI%2BPCFFTlRJVFkgdGJyayAiJiN4MjNCNDsiPjwhRU5USVRZIE92ZXJCcmFja2V0ICImI3gyM0I0OyI%2BPCFFTlRJVFkgYmJyayAiJiN4MjNCNTsiPjwhRU5USVRZIFVuZGVyQnJhY2tldCAiJiN4MjNCNTsiPjwhRU5USVRZIGJicmt0YnJrICImI3gyM0I2OyI%2BPCFFTlRJVFkgT3ZlclBhcmVudGhlc2lzICImI3gyM0RDOyI%2BPCFFTlRJVFkgVW5kZXJQYXJlbnRoZXNpcyAiJiN4MjNERDsiPjwhRU5USVRZIE92ZXJCcmFjZSAiJiN4MjNERTsiPjwhRU5USVRZIFVuZGVyQnJhY2UgIiYjeDIzREY7Ij48IUVOVElUWSB0cnBleml1bSAiJiN4MjNFMjsiPjwhRU5USVRZIGVsaW50ZXJzICImI3gyM0U3OyI%2BPCFFTlRJVFkgYmxhbmsgIiYjeDI0MjM7Ij48IUVOVElUWSBvUyAiJiN4MjRDODsiPjwhRU5USVRZIGNpcmNsZWRTICImI3gyNEM4OyI%2BPCFFTlRJVFkgYm94aCAiJiN4MjUwMDsiPjwhRU5USVRZIEhvcml6b250YWxMaW5lICImI3gyNTAwOyI%2BPCFFTlRJVFkgYm94diAiJiN4MjUwMjsiPjwhRU5USVRZIGJveGRyICImI3gyNTBDOyI%2BPCFFTlRJVFkgYm94ZGwgIiYjeDI1MTA7Ij48IUVOVElUWSBib3h1ciAiJiN4MjUxNDsiPjwhRU5USVRZIGJveHVsICImI3gyNTE4OyI%2BPCFFTlRJVFkgYm94dnIgIiYjeDI1MUM7Ij48IUVOVElUWSBib3h2bCAiJiN4MjUyNDsiPjwhRU5USVRZIGJveGhkICImI3gyNTJDOyI%2BPCFFTlRJVFkgYm94aHUgIiYjeDI1MzQ7Ij48IUVOVElUWSBib3h2aCAiJiN4MjUzQzsiPjwhRU5USVRZIGJveEggIiYjeDI1NTA7Ij48IUVOVElUWSBib3hWICImI3gyNTUxOyI%2BPCFFTlRJVFkgYm94ZFIgIiYjeDI1NTI7Ij48IUVOVElUWSBib3hEciAiJiN4MjU1MzsiPjwhRU5USVRZIGJveERSICImI3gyNTU0OyI%2BPCFFTlRJVFkgYm94ZEwgIiYjeDI1NTU7Ij48IUVOVElUWSBib3hEbCAiJiN4MjU1NjsiPjwhRU5USVRZIGJveERMICImI3gyNTU3OyI%2BPCFFTlRJVFkgYm94dVIgIiYjeDI1NTg7Ij48IUVOVElUWSBib3hVciAiJiN4MjU1OTsiPjwhRU5USVRZIGJveFVSICImI3gyNTVBOyI%2BPCFFTlRJVFkgYm94dUwgIiYjeDI1NUI7Ij48IUVOVElUWSBib3hVbCAiJiN4MjU1QzsiPjwhRU5USVRZIGJveFVMICImI3gyNTVEOyI%2BPCFFTlRJVFkgYm94dlIgIiYjeDI1NUU7Ij48IUVOVElUWSBib3hWciAiJiN4MjU1RjsiPjwhRU5USVRZIGJveFZSICImI3gyNTYwOyI%2BPCFFTlRJVFkgYm94dkwgIiYjeDI1NjE7Ij48IUVOVElUWSBib3hWbCAiJiN4MjU2MjsiPjwhRU5USVRZIGJveFZMICImI3gyNTYzOyI%2BPCFFTlRJVFkgYm94SGQgIiYjeDI1NjQ7Ij48IUVOVElUWSBib3hoRCAiJiN4MjU2NTsiPjwhRU5USVRZIGJveEhEICImI3gyNTY2OyI%2BPCFFTlRJVFkgYm94SHUgIiYjeDI1Njc7Ij48IUVOVElUWSBib3hoVSAiJiN4MjU2ODsiPjwhRU5USVRZIGJveEhVICImI3gyNTY5OyI%2BPCFFTlRJVFkgYm94dkggIiYjeDI1NkE7Ij48IUVOVElUWSBib3hWaCAiJiN4MjU2QjsiPjwhRU5USVRZIGJveFZIICImI3gyNTZDOyI%2BPCFFTlRJVFkgdWhibGsgIiYjeDI1ODA7Ij48IUVOVElUWSBsaGJsayAiJiN4MjU4NDsiPjwhRU5USVRZIGJsb2NrICImI3gyNTg4OyI%2BPCFFTlRJVFkgYmxrMTQgIiYjeDI1OTE7Ij48IUVOVElUWSBibGsxMiAiJiN4MjU5MjsiPjwhRU5USVRZIGJsazM0ICImI3gyNTkzOyI%2BPCFFTlRJVFkgc3F1ICImI3gyNUExOyI%2BPCFFTlRJVFkgc3F1YXJlICImI3gyNUExOyI%2BPCFFTlRJVFkgU3F1YXJlICImI3gyNUExOyI%2BPCFFTlRJVFkgc3F1ZiAiJiN4MjVBQTsiPjwhRU5USVRZIHNxdWFyZiAiJiN4MjVBQTsiPjwhRU5USVRZIGJsYWNrc3F1YXJlICImI3gyNUFBOyI%2BPCFFTlRJVFkgRmlsbGVkVmVyeVNtYWxsU3F1YXJlICImI3gyNUFBOyI%2BPCFFTlRJVFkgRW1wdHlWZXJ5U21hbGxTcXVhcmUgIiYjeDI1QUI7Ij48IUVOVElUWSByZWN0ICImI3gyNUFEOyI%2BPCFFTlRJVFkgbWFya2VyICImI3gyNUFFOyI%2BPCFFTlRJVFkgZmx0bnMgIiYjeDI1QjE7Ij48IUVOVElUWSB4dXRyaSAiJiN4MjVCMzsiPjwhRU5USVRZIGJpZ3RyaWFuZ2xldXAgIiYjeDI1QjM7Ij48IUVOVElUWSB1dHJpZiAiJiN4MjVCNDsiPjwhRU5USVRZIGJsYWNrdHJpYW5nbGUgIiYjeDI1QjQ7Ij48IUVOVElUWSB1dHJpICImI3gyNUI1OyI%2BPCFFTlRJVFkgdHJpYW5nbGUgIiYjeDI1QjU7Ij48IUVOVElUWSBydHJpZiAiJiN4MjVCODsiPjwhRU5USVRZIGJsYWNrdHJpYW5nbGVyaWdodCAiJiN4MjVCODsiPjwhRU5USVRZIHJ0cmkgIiYjeDI1Qjk7Ij48IUVOVElUWSB0cmlhbmdsZXJpZ2h0ICImI3gyNUI5OyI%2BPCFFTlRJVFkgeGR0cmkgIiYjeDI1QkQ7Ij48IUVOVElUWSBiaWd0cmlhbmdsZWRvd24gIiYjeDI1QkQ7Ij48IUVOVElUWSBkdHJpZiAiJiN4MjVCRTsiPjwhRU5USVRZIGJsYWNrdHJpYW5nbGVkb3duICImI3gyNUJFOyI%2BPCFFTlRJVFkgZHRyaSAiJiN4MjVCRjsiPjwhRU5USVRZIHRyaWFuZ2xlZG93biAiJiN4MjVCRjsiPjwhRU5USVRZIGx0cmlmICImI3gyNUMyOyI%2BPCFFTlRJVFkgYmxhY2t0cmlhbmdsZWxlZnQgIiYjeDI1QzI7Ij48IUVOVElUWSBsdHJpICImI3gyNUMzOyI%2BPCFFTlRJVFkgdHJpYW5nbGVsZWZ0ICImI3gyNUMzOyI%2BPCFFTlRJVFkgbG96ICImI3gyNUNBOyI%2BPCFFTlRJVFkgbG96ZW5nZSAiJiN4MjVDQTsiPjwhRU5USVRZIGNpciAiJiN4MjVDQjsiPjwhRU5USVRZIHRyaWRvdCAiJiN4MjVFQzsiPjwhRU5USVRZIHhjaXJjICImI3gyNUVGOyI%2BPCFFTlRJVFkgYmlnY2lyYyAiJiN4MjVFRjsiPjwhRU5USVRZIHVsdHJpICImI3gyNUY4OyI%2BPCFFTlRJVFkgdXJ0cmkgIiYjeDI1Rjk7Ij48IUVOVElUWSBsbHRyaSAiJiN4MjVGQTsiPjwhRU5USVRZIEVtcHR5U21hbGxTcXVhcmUgIiYjeDI1RkI7Ij48IUVOVElUWSBGaWxsZWRTbWFsbFNxdWFyZSAiJiN4MjVGQzsiPjwhRU5USVRZIHN0YXJmICImI3gyNjA1OyI%2BPCFFTlRJVFkgYmlnc3RhciAiJiN4MjYwNTsiPjwhRU5USVRZIHN0YXIgIiYjeDI2MDY7Ij48IUVOVElUWSBwaG9uZSAiJiN4MjYwRTsiPjwhRU5USVRZIGZlbWFsZSAiJiN4MjY0MDsiPjwhRU5USVRZIG1hbGUgIiYjeDI2NDI7Ij48IUVOVElUWSBzcGFkZXMgIiYjeDI2NjA7Ij48IUVOVElUWSBzcGFkZXN1aXQgIiYjeDI2NjA7Ij48IUVOVElUWSBjbHVicyAiJiN4MjY2MzsiPjwhRU5USVRZIGNsdWJzdWl0ICImI3gyNjYzOyI%2BPCFFTlRJVFkgaGVhcnRzICImI3gyNjY1OyI%2BPCFFTlRJVFkgaGVhcnRzdWl0ICImI3gyNjY1OyI%2BPCFFTlRJVFkgZGlhbXMgIiYjeDI2NjY7Ij48IUVOVElUWSBkaWFtb25kc3VpdCAiJiN4MjY2NjsiPjwhRU5USVRZIHN1bmcgIiYjeDI2NkE7Ij48IUVOVElUWSBmbGF0ICImI3gyNjZEOyI%2BPCFFTlRJVFkgbmF0dXIgIiYjeDI2NkU7Ij48IUVOVElUWSBuYXR1cmFsICImI3gyNjZFOyI%2BPCFFTlRJVFkgc2hhcnAgIiYjeDI2NkY7Ij48IUVOVElUWSBjaGVjayAiJiN4MjcxMzsiPjwhRU5USVRZIGNoZWNrbWFyayAiJiN4MjcxMzsiPjwhRU5USVRZIGNyb3NzICImI3gyNzE3OyI%2BPCFFTlRJVFkgbWFsdCAiJiN4MjcyMDsiPjwhRU5USVRZIG1hbHRlc2UgIiYjeDI3MjA7Ij48IUVOVElUWSBzZXh0ICImI3gyNzM2OyI%2BPCFFTlRJVFkgVmVydGljYWxTZXBhcmF0b3IgIiYjeDI3NTg7Ij48IUVOVElUWSBsYmJyayAiJiN4Mjc3MjsiPjwhRU5USVRZIHJiYnJrICImI3gyNzczOyI%2BPCFFTlRJVFkgYnNvbGhzdWIgIiYjeDI3Qzg7Ij48IUVOVElUWSBzdXBoc29sICImI3gyN0M5OyI%2BPCFFTlRJVFkgbG9icmsgIiYjeDI3RTY7Ij48IUVOVElUWSBMZWZ0RG91YmxlQnJhY2tldCAiJiN4MjdFNjsiPjwhRU5USVRZIHJvYnJrICImI3gyN0U3OyI%2BPCFFTlRJVFkgUmlnaHREb3VibGVCcmFja2V0ICImI3gyN0U3OyI%2BPCFFTlRJVFkgbGFuZyAiJiN4MjdFODsiPjwhRU5USVRZIExlZnRBbmdsZUJyYWNrZXQgIiYjeDI3RTg7Ij48IUVOVElUWSBsYW5nbGUgIiYjeDI3RTg7Ij48IUVOVElUWSByYW5nICImI3gyN0U5OyI%2BPCFFTlRJVFkgUmlnaHRBbmdsZUJyYWNrZXQgIiYjeDI3RTk7Ij48IUVOVElUWSByYW5nbGUgIiYjeDI3RTk7Ij48IUVOVElUWSBMYW5nICImI3gyN0VBOyI%2BPCFFTlRJVFkgUmFuZyAiJiN4MjdFQjsiPjwhRU5USVRZIGxvYW5nICImI3gyN0VDOyI%2BPCFFTlRJVFkgcm9hbmcgIiYjeDI3RUQ7Ij48IUVOVElUWSB4bGFyciAiJiN4MjdGNTsiPjwhRU5USVRZIGxvbmdsZWZ0YXJyb3cgIiYjeDI3RjU7Ij48IUVOVElUWSBMb25nTGVmdEFycm93ICImI3gyN0Y1OyI%2BPCFFTlRJVFkgeHJhcnIgIiYjeDI3RjY7Ij48IUVOVElUWSBsb25ncmlnaHRhcnJvdyAiJiN4MjdGNjsiPjwhRU5USVRZIExvbmdSaWdodEFycm93ICImI3gyN0Y2OyI%2BPCFFTlRJVFkgeGhhcnIgIiYjeDI3Rjc7Ij48IUVOVElUWSBsb25nbGVmdHJpZ2h0YXJyb3cgIiYjeDI3Rjc7Ij48IUVOVElUWSBMb25nTGVmdFJpZ2h0QXJyb3cgIiYjeDI3Rjc7Ij48IUVOVElUWSB4bEFyciAiJiN4MjdGODsiPjwhRU5USVRZIExvbmdsZWZ0YXJyb3cgIiYjeDI3Rjg7Ij48IUVOVElUWSBEb3VibGVMb25nTGVmdEFycm93ICImI3gyN0Y4OyI%2BPCFFTlRJVFkgeHJBcnIgIiYjeDI3Rjk7Ij48IUVOVElUWSBMb25ncmlnaHRhcnJvdyAiJiN4MjdGOTsiPjwhRU5USVRZIERvdWJsZUxvbmdSaWdodEFycm93ICImI3gyN0Y5OyI%2BPCFFTlRJVFkgeGhBcnIgIiYjeDI3RkE7Ij48IUVOVElUWSBMb25nbGVmdHJpZ2h0YXJyb3cgIiYjeDI3RkE7Ij48IUVOVElUWSBEb3VibGVMb25nTGVmdFJpZ2h0QXJyb3cgIiYjeDI3RkE7Ij48IUVOVElUWSB4bWFwICImI3gyN0ZDOyI%2BPCFFTlRJVFkgbG9uZ21hcHN0byAiJiN4MjdGQzsiPjwhRU5USVRZIGR6aWdyYXJyICImI3gyN0ZGOyI%2BPCFFTlRJVFkgbnZsQXJyICImI3gyOTAyOyI%2BPCFFTlRJVFkgbnZyQXJyICImI3gyOTAzOyI%2BPCFFTlRJVFkgbnZIYXJyICImI3gyOTA0OyI%2BPCFFTlRJVFkgTWFwICImI3gyOTA1OyI%2BPCFFTlRJVFkgbGJhcnIgIiYjeDI5MEM7Ij48IUVOVElUWSByYmFyciAiJiN4MjkwRDsiPjwhRU5USVRZIGJrYXJvdyAiJiN4MjkwRDsiPjwhRU5USVRZIGxCYXJyICImI3gyOTBFOyI%2BPCFFTlRJVFkgckJhcnIgIiYjeDI5MEY7Ij48IUVOVElUWSBkYmthcm93ICImI3gyOTBGOyI%2BPCFFTlRJVFkgUkJhcnIgIiYjeDI5MTA7Ij48IUVOVElUWSBkcmJrYXJvdyAiJiN4MjkxMDsiPjwhRU5USVRZIEREb3RyYWhkICImI3gyOTExOyI%2BPCFFTlRJVFkgVXBBcnJvd0JhciAiJiN4MjkxMjsiPjwhRU5USVRZIERvd25BcnJvd0JhciAiJiN4MjkxMzsiPjwhRU5USVRZIFJhcnJ0bCAiJiN4MjkxNjsiPjwhRU5USVRZIGxhdGFpbCAiJiN4MjkxOTsiPjwhRU5USVRZIHJhdGFpbCAiJiN4MjkxQTsiPjwhRU5USVRZIGxBdGFpbCAiJiN4MjkxQjsiPjwhRU5USVRZIHJBdGFpbCAiJiN4MjkxQzsiPjwhRU5USVRZIGxhcnJmcyAiJiN4MjkxRDsiPjwhRU5USVRZIHJhcnJmcyAiJiN4MjkxRTsiPjwhRU5USVRZIGxhcnJiZnMgIiYjeDI5MUY7Ij48IUVOVElUWSByYXJyYmZzICImI3gyOTIwOyI%2BPCFFTlRJVFkgbndhcmhrICImI3gyOTIzOyI%2BPCFFTlRJVFkgbmVhcmhrICImI3gyOTI0OyI%2BPCFFTlRJVFkgc2VhcmhrICImI3gyOTI1OyI%2BPCFFTlRJVFkgaGtzZWFyb3cgIiYjeDI5MjU7Ij48IUVOVElUWSBzd2FyaGsgIiYjeDI5MjY7Ij48IUVOVElUWSBoa3N3YXJvdyAiJiN4MjkyNjsiPjwhRU5USVRZIG53bmVhciAiJiN4MjkyNzsiPjwhRU5USVRZIG5lc2VhciAiJiN4MjkyODsiPjwhRU5USVRZIHRvZWEgIiYjeDI5Mjg7Ij48IUVOVElUWSBzZXN3YXIgIiYjeDI5Mjk7Ij48IUVOVElUWSB0b3NhICImI3gyOTI5OyI%2BPCFFTlRJVFkgc3dud2FyICImI3gyOTJBOyI%2BPCFFTlRJVFkgcmFycmMgIiYjeDI5MzM7Ij48IUVOVElUWSBucmFycmMgIiYjeDI5MzM7JiN4MzM4OyI%2BPCFFTlRJVFkgY3VkYXJyciAiJiN4MjkzNTsiPjwhRU5USVRZIGxkY2EgIiYjeDI5MzY7Ij48IUVOVElUWSByZGNhICImI3gyOTM3OyI%2BPCFFTlRJVFkgY3VkYXJybCAiJiN4MjkzODsiPjwhRU5USVRZIGxhcnJwbCAiJiN4MjkzOTsiPjwhRU5USVRZIGN1cmFycm0gIiYjeDI5M0M7Ij48IUVOVElUWSBjdWxhcnJwICImI3gyOTNEOyI%2BPCFFTlRJVFkgcmFycnBsICImI3gyOTQ1OyI%2BPCFFTlRJVFkgaGFycmNpciAiJiN4Mjk0ODsiPjwhRU5USVRZIFVhcnJvY2lyICImI3gyOTQ5OyI%2BPCFFTlRJVFkgbHVyZHNoYXIgIiYjeDI5NEE7Ij48IUVOVElUWSBsZHJ1c2hhciAiJiN4Mjk0QjsiPjwhRU5USVRZIExlZnRSaWdodFZlY3RvciAiJiN4Mjk0RTsiPjwhRU5USVRZIFJpZ2h0VXBEb3duVmVjdG9yICImI3gyOTRGOyI%2BPCFFTlRJVFkgRG93bkxlZnRSaWdodFZlY3RvciAiJiN4Mjk1MDsiPjwhRU5USVRZIExlZnRVcERvd25WZWN0b3IgIiYjeDI5NTE7Ij48IUVOVElUWSBMZWZ0VmVjdG9yQmFyICImI3gyOTUyOyI%2BPCFFTlRJVFkgUmlnaHRWZWN0b3JCYXIgIiYjeDI5NTM7Ij48IUVOVElUWSBSaWdodFVwVmVjdG9yQmFyICImI3gyOTU0OyI%2BPCFFTlRJVFkgUmlnaHREb3duVmVjdG9yQmFyICImI3gyOTU1OyI%2BPCFFTlRJVFkgRG93bkxlZnRWZWN0b3JCYXIgIiYjeDI5NTY7Ij48IUVOVElUWSBEb3duUmlnaHRWZWN0b3JCYXIgIiYjeDI5NTc7Ij48IUVOVElUWSBMZWZ0VXBWZWN0b3JCYXIgIiYjeDI5NTg7Ij48IUVOVElUWSBMZWZ0RG93blZlY3RvckJhciAiJiN4Mjk1OTsiPjwhRU5USVRZIExlZnRUZWVWZWN0b3IgIiYjeDI5NUE7Ij48IUVOVElUWSBSaWdodFRlZVZlY3RvciAiJiN4Mjk1QjsiPjwhRU5USVRZIFJpZ2h0VXBUZWVWZWN0b3IgIiYjeDI5NUM7Ij48IUVOVElUWSBSaWdodERvd25UZWVWZWN0b3IgIiYjeDI5NUQ7Ij48IUVOVElUWSBEb3duTGVmdFRlZVZlY3RvciAiJiN4Mjk1RTsiPjwhRU5USVRZIERvd25SaWdodFRlZVZlY3RvciAiJiN4Mjk1RjsiPjwhRU5USVRZIExlZnRVcFRlZVZlY3RvciAiJiN4Mjk2MDsiPjwhRU5USVRZIExlZnREb3duVGVlVmVjdG9yICImI3gyOTYxOyI%2BPCFFTlRJVFkgbEhhciAiJiN4Mjk2MjsiPjwhRU5USVRZIHVIYXIgIiYjeDI5NjM7Ij48IUVOVElUWSBySGFyICImI3gyOTY0OyI%2BPCFFTlRJVFkgZEhhciAiJiN4Mjk2NTsiPjwhRU5USVRZIGx1cnVoYXIgIiYjeDI5NjY7Ij48IUVOVElUWSBsZHJkaGFyICImI3gyOTY3OyI%2BPCFFTlRJVFkgcnVsdWhhciAiJiN4Mjk2ODsiPjwhRU5USVRZIHJkbGRoYXIgIiYjeDI5Njk7Ij48IUVOVElUWSBsaGFydWwgIiYjeDI5NkE7Ij48IUVOVElUWSBsbGhhcmQgIiYjeDI5NkI7Ij48IUVOVElUWSByaGFydWwgIiYjeDI5NkM7Ij48IUVOVElUWSBscmhhcmQgIiYjeDI5NkQ7Ij48IUVOVElUWSB1ZGhhciAiJiN4Mjk2RTsiPjwhRU5USVRZIFVwRXF1aWxpYnJpdW0gIiYjeDI5NkU7Ij48IUVOVElUWSBkdWhhciAiJiN4Mjk2RjsiPjwhRU5USVRZIFJldmVyc2VVcEVxdWlsaWJyaXVtICImI3gyOTZGOyI%2BPCFFTlRJVFkgUm91bmRJbXBsaWVzICImI3gyOTcwOyI%2BPCFFTlRJVFkgZXJhcnIgIiYjeDI5NzE7Ij48IUVOVElUWSBzaW1yYXJyICImI3gyOTcyOyI%2BPCFFTlRJVFkgbGFycnNpbSAiJiN4Mjk3MzsiPjwhRU5USVRZIHJhcnJzaW0gIiYjeDI5NzQ7Ij48IUVOVElUWSByYXJyYXAgIiYjeDI5NzU7Ij48IUVOVElUWSBsdGxhcnIgIiYjeDI5NzY7Ij48IUVOVElUWSBndHJhcnIgIiYjeDI5Nzg7Ij48IUVOVElUWSBzdWJyYXJyICImI3gyOTc5OyI%2BPCFFTlRJVFkgc3VwbGFyciAiJiN4Mjk3QjsiPjwhRU5USVRZIGxmaXNodCAiJiN4Mjk3QzsiPjwhRU5USVRZIHJmaXNodCAiJiN4Mjk3RDsiPjwhRU5USVRZIHVmaXNodCAiJiN4Mjk3RTsiPjwhRU5USVRZIGRmaXNodCAiJiN4Mjk3RjsiPjwhRU5USVRZIGxvcGFyICImI3gyOTg1OyI%2BPCFFTlRJVFkgcm9wYXIgIiYjeDI5ODY7Ij48IUVOVElUWSBsYnJrZSAiJiN4Mjk4QjsiPjwhRU5USVRZIHJicmtlICImI3gyOThDOyI%2BPCFFTlRJVFkgbGJya3NsdSAiJiN4Mjk4RDsiPjwhRU5USVRZIHJicmtzbGQgIiYjeDI5OEU7Ij48IUVOVElUWSBsYnJrc2xkICImI3gyOThGOyI%2BPCFFTlRJVFkgcmJya3NsdSAiJiN4Mjk5MDsiPjwhRU5USVRZIGxhbmdkICImI3gyOTkxOyI%2BPCFFTlRJVFkgcmFuZ2QgIiYjeDI5OTI7Ij48IUVOVElUWSBscGFybHQgIiYjeDI5OTM7Ij48IUVOVElUWSBycGFyZ3QgIiYjeDI5OTQ7Ij48IUVOVElUWSBndGxQYXIgIiYjeDI5OTU7Ij48IUVOVElUWSBsdHJQYXIgIiYjeDI5OTY7Ij48IUVOVElUWSB2emlnemFnICImI3gyOTlBOyI%2BPCFFTlRJVFkgdmFuZ3J0ICImI3gyOTlDOyI%2BPCFFTlRJVFkgYW5ncnR2YmQgIiYjeDI5OUQ7Ij48IUVOVElUWSBhbmdlICImI3gyOUE0OyI%2BPCFFTlRJVFkgcmFuZ2UgIiYjeDI5QTU7Ij48IUVOVElUWSBkd2FuZ2xlICImI3gyOUE2OyI%2BPCFFTlRJVFkgdXdhbmdsZSAiJiN4MjlBNzsiPjwhRU5USVRZIGFuZ21zZGFhICImI3gyOUE4OyI%2BPCFFTlRJVFkgYW5nbXNkYWIgIiYjeDI5QTk7Ij48IUVOVElUWSBhbmdtc2RhYyAiJiN4MjlBQTsiPjwhRU5USVRZIGFuZ21zZGFkICImI3gyOUFCOyI%2BPCFFTlRJVFkgYW5nbXNkYWUgIiYjeDI5QUM7Ij48IUVOVElUWSBhbmdtc2RhZiAiJiN4MjlBRDsiPjwhRU5USVRZIGFuZ21zZGFnICImI3gyOUFFOyI%2BPCFFTlRJVFkgYW5nbXNkYWggIiYjeDI5QUY7Ij48IUVOVElUWSBiZW1wdHl2ICImI3gyOUIwOyI%2BPCFFTlRJVFkgZGVtcHR5diAiJiN4MjlCMTsiPjwhRU5USVRZIGNlbXB0eXYgIiYjeDI5QjI7Ij48IUVOVElUWSByYWVtcHR5diAiJiN4MjlCMzsiPjwhRU5USVRZIGxhZW1wdHl2ICImI3gyOUI0OyI%2BPCFFTlRJVFkgb2hiYXIgIiYjeDI5QjU7Ij48IUVOVElUWSBvbWlkICImI3gyOUI2OyI%2BPCFFTlRJVFkgb3BhciAiJiN4MjlCNzsiPjwhRU5USVRZIG9wZXJwICImI3gyOUI5OyI%2BPCFFTlRJVFkgb2xjcm9zcyAiJiN4MjlCQjsiPjwhRU5USVRZIG9kc29sZCAiJiN4MjlCQzsiPjwhRU5USVRZIG9sY2lyICImI3gyOUJFOyI%2BPCFFTlRJVFkgb2ZjaXIgIiYjeDI5QkY7Ij48IUVOVElUWSBvbHQgIiYjeDI5QzA7Ij48IUVOVElUWSBvZ3QgIiYjeDI5QzE7Ij48IUVOVElUWSBjaXJzY2lyICImI3gyOUMyOyI%2BPCFFTlRJVFkgY2lyRSAiJiN4MjlDMzsiPjwhRU5USVRZIHNvbGIgIiYjeDI5QzQ7Ij48IUVOVElUWSBic29sYiAiJiN4MjlDNTsiPjwhRU5USVRZIGJveGJveCAiJiN4MjlDOTsiPjwhRU5USVRZIHRyaXNiICImI3gyOUNEOyI%2BPCFFTlRJVFkgcnRyaWx0cmkgIiYjeDI5Q0U7Ij48IUVOVElUWSBMZWZ0VHJpYW5nbGVCYXIgIiYjeDI5Q0Y7Ij48IUVOVElUWSBOb3RMZWZ0VHJpYW5nbGVCYXIgIiYjeDI5Q0Y7JiN4MzM4OyI%2BPCFFTlRJVFkgUmlnaHRUcmlhbmdsZUJhciAiJiN4MjlEMDsiPjwhRU5USVRZIE5vdFJpZ2h0VHJpYW5nbGVCYXIgIiYjeDI5RDA7JiN4MzM4OyI%2BPCFFTlRJVFkgaWluZmluICImI3gyOURDOyI%2BPCFFTlRJVFkgaW5maW50aWUgIiYjeDI5REQ7Ij48IUVOVElUWSBudmluZmluICImI3gyOURFOyI%2BPCFFTlRJVFkgZXBhcnNsICImI3gyOUUzOyI%2BPCFFTlRJVFkgc21lcGFyc2wgIiYjeDI5RTQ7Ij48IUVOVElUWSBlcXZwYXJzbCAiJiN4MjlFNTsiPjwhRU5USVRZIGxvemYgIiYjeDI5RUI7Ij48IUVOVElUWSBibGFja2xvemVuZ2UgIiYjeDI5RUI7Ij48IUVOVElUWSBSdWxlRGVsYXllZCAiJiN4MjlGNDsiPjwhRU5USVRZIGRzb2wgIiYjeDI5RjY7Ij48IUVOVElUWSB4b2RvdCAiJiN4MkEwMDsiPjwhRU5USVRZIGJpZ29kb3QgIiYjeDJBMDA7Ij48IUVOVElUWSB4b3BsdXMgIiYjeDJBMDE7Ij48IUVOVElUWSBiaWdvcGx1cyAiJiN4MkEwMTsiPjwhRU5USVRZIHhvdGltZSAiJiN4MkEwMjsiPjwhRU5USVRZIGJpZ290aW1lcyAiJiN4MkEwMjsiPjwhRU5USVRZIHh1cGx1cyAiJiN4MkEwNDsiPjwhRU5USVRZIGJpZ3VwbHVzICImI3gyQTA0OyI%2BPCFFTlRJVFkgeHNxY3VwICImI3gyQTA2OyI%2BPCFFTlRJVFkgYmlnc3FjdXAgIiYjeDJBMDY7Ij48IUVOVElUWSBxaW50ICImI3gyQTBDOyI%2BPCFFTlRJVFkgaWlpaW50ICImI3gyQTBDOyI%2BPCFFTlRJVFkgZnBhcnRpbnQgIiYjeDJBMEQ7Ij48IUVOVElUWSBjaXJmbmludCAiJiN4MkExMDsiPjwhRU5USVRZIGF3aW50ICImI3gyQTExOyI%2BPCFFTlRJVFkgcnBwb2xpbnQgIiYjeDJBMTI7Ij48IUVOVElUWSBzY3BvbGludCAiJiN4MkExMzsiPjwhRU5USVRZIG5wb2xpbnQgIiYjeDJBMTQ7Ij48IUVOVElUWSBwb2ludGludCAiJiN4MkExNTsiPjwhRU5USVRZIHF1YXRpbnQgIiYjeDJBMTY7Ij48IUVOVElUWSBpbnRsYXJoayAiJiN4MkExNzsiPjwhRU5USVRZIHBsdXNjaXIgIiYjeDJBMjI7Ij48IUVOVElUWSBwbHVzYWNpciAiJiN4MkEyMzsiPjwhRU5USVRZIHNpbXBsdXMgIiYjeDJBMjQ7Ij48IUVOVElUWSBwbHVzZHUgIiYjeDJBMjU7Ij48IUVOVElUWSBwbHVzc2ltICImI3gyQTI2OyI%2BPCFFTlRJVFkgcGx1c3R3byAiJiN4MkEyNzsiPjwhRU5USVRZIG1jb21tYSAiJiN4MkEyOTsiPjwhRU5USVRZIG1pbnVzZHUgIiYjeDJBMkE7Ij48IUVOVElUWSBsb3BsdXMgIiYjeDJBMkQ7Ij48IUVOVElUWSByb3BsdXMgIiYjeDJBMkU7Ij48IUVOVElUWSBDcm9zcyAiJiN4MkEyRjsiPjwhRU5USVRZIHRpbWVzZCAiJiN4MkEzMDsiPjwhRU5USVRZIHRpbWVzYmFyICImI3gyQTMxOyI%2BPCFFTlRJVFkgc21hc2hwICImI3gyQTMzOyI%2BPCFFTlRJVFkgbG90aW1lcyAiJiN4MkEzNDsiPjwhRU5USVRZIHJvdGltZXMgIiYjeDJBMzU7Ij48IUVOVElUWSBvdGltZXNhcyAiJiN4MkEzNjsiPjwhRU5USVRZIE90aW1lcyAiJiN4MkEzNzsiPjwhRU5USVRZIG9kaXYgIiYjeDJBMzg7Ij48IUVOVElUWSB0cmlwbHVzICImI3gyQTM5OyI%2BPCFFTlRJVFkgdHJpbWludXMgIiYjeDJBM0E7Ij48IUVOVElUWSB0cml0aW1lICImI3gyQTNCOyI%2BPCFFTlRJVFkgaXByb2QgIiYjeDJBM0M7Ij48IUVOVElUWSBpbnRwcm9kICImI3gyQTNDOyI%2BPCFFTlRJVFkgYW1hbGcgIiYjeDJBM0Y7Ij48IUVOVElUWSBjYXBkb3QgIiYjeDJBNDA7Ij48IUVOVElUWSBuY3VwICImI3gyQTQyOyI%2BPCFFTlRJVFkgbmNhcCAiJiN4MkE0MzsiPjwhRU5USVRZIGNhcGFuZCAiJiN4MkE0NDsiPjwhRU5USVRZIGN1cG9yICImI3gyQTQ1OyI%2BPCFFTlRJVFkgY3VwY2FwICImI3gyQTQ2OyI%2BPCFFTlRJVFkgY2FwY3VwICImI3gyQTQ3OyI%2BPCFFTlRJVFkgY3VwYnJjYXAgIiYjeDJBNDg7Ij48IUVOVElUWSBjYXBicmN1cCAiJiN4MkE0OTsiPjwhRU5USVRZIGN1cGN1cCAiJiN4MkE0QTsiPjwhRU5USVRZIGNhcGNhcCAiJiN4MkE0QjsiPjwhRU5USVRZIGNjdXBzICImI3gyQTRDOyI%2BPCFFTlRJVFkgY2NhcHMgIiYjeDJBNEQ7Ij48IUVOVElUWSBjY3Vwc3NtICImI3gyQTUwOyI%2BPCFFTlRJVFkgQW5kICImI3gyQTUzOyI%2BPCFFTlRJVFkgT3IgIiYjeDJBNTQ7Ij48IUVOVElUWSBhbmRhbmQgIiYjeDJBNTU7Ij48IUVOVElUWSBvcm9yICImI3gyQTU2OyI%2BPCFFTlRJVFkgb3JzbG9wZSAiJiN4MkE1NzsiPjwhRU5USVRZIGFuZHNsb3BlICImI3gyQTU4OyI%2BPCFFTlRJVFkgYW5kdiAiJiN4MkE1QTsiPjwhRU5USVRZIG9ydiAiJiN4MkE1QjsiPjwhRU5USVRZIGFuZGQgIiYjeDJBNUM7Ij48IUVOVElUWSBvcmQgIiYjeDJBNUQ7Ij48IUVOVElUWSB3ZWRiYXIgIiYjeDJBNUY7Ij48IUVOVElUWSBzZG90ZSAiJiN4MkE2NjsiPjwhRU5USVRZIHNpbWRvdCAiJiN4MkE2QTsiPjwhRU5USVRZIGNvbmdkb3QgIiYjeDJBNkQ7Ij48IUVOVElUWSBuY29uZ2RvdCAiJiN4MkE2RDsmI3gzMzg7Ij48IUVOVElUWSBlYXN0ZXIgIiYjeDJBNkU7Ij48IUVOVElUWSBhcGFjaXIgIiYjeDJBNkY7Ij48IUVOVElUWSBhcEUgIiYjeDJBNzA7Ij48IUVOVElUWSBuYXBFICImI3gyQTcwOyYjeDMzODsiPjwhRU5USVRZIGVwbHVzICImI3gyQTcxOyI%2BPCFFTlRJVFkgcGx1c2UgIiYjeDJBNzI7Ij48IUVOVElUWSBFc2ltICImI3gyQTczOyI%2BPCFFTlRJVFkgQ29sb25lICImI3gyQTc0OyI%2BPCFFTlRJVFkgRXF1YWwgIiYjeDJBNzU7Ij48IUVOVElUWSBlRERvdCAiJiN4MkE3NzsiPjwhRU5USVRZIGRkb3RzZXEgIiYjeDJBNzc7Ij48IUVOVElUWSBlcXVpdkREICImI3gyQTc4OyI%2BPCFFTlRJVFkgbHRjaXIgIiYjeDJBNzk7Ij48IUVOVElUWSBndGNpciAiJiN4MkE3QTsiPjwhRU5USVRZIGx0cXVlc3QgIiYjeDJBN0I7Ij48IUVOVElUWSBndHF1ZXN0ICImI3gyQTdDOyI%2BPCFFTlRJVFkgbGVzICImI3gyQTdEOyI%2BPCFFTlRJVFkgTGVzc1NsYW50RXF1YWwgIiYjeDJBN0Q7Ij48IUVOVElUWSBsZXFzbGFudCAiJiN4MkE3RDsiPjwhRU5USVRZIG5sZXMgIiYjeDJBN0Q7JiN4MzM4OyI%2BPCFFTlRJVFkgTm90TGVzc1NsYW50RXF1YWwgIiYjeDJBN0Q7JiN4MzM4OyI%2BPCFFTlRJVFkgbmxlcXNsYW50ICImI3gyQTdEOyYjeDMzODsiPjwhRU5USVRZIGdlcyAiJiN4MkE3RTsiPjwhRU5USVRZIEdyZWF0ZXJTbGFudEVxdWFsICImI3gyQTdFOyI%2BPCFFTlRJVFkgZ2Vxc2xhbnQgIiYjeDJBN0U7Ij48IUVOVElUWSBuZ2VzICImI3gyQTdFOyYjeDMzODsiPjwhRU5USVRZIE5vdEdyZWF0ZXJTbGFudEVxdWFsICImI3gyQTdFOyYjeDMzODsiPjwhRU5USVRZIG5nZXFzbGFudCAiJiN4MkE3RTsmI3gzMzg7Ij48IUVOVElUWSBsZXNkb3QgIiYjeDJBN0Y7Ij48IUVOVElUWSBnZXNkb3QgIiYjeDJBODA7Ij48IUVOVElUWSBsZXNkb3RvICImI3gyQTgxOyI%2BPCFFTlRJVFkgZ2VzZG90byAiJiN4MkE4MjsiPjwhRU5USVRZIGxlc2RvdG9yICImI3gyQTgzOyI%2BPCFFTlRJVFkgZ2VzZG90b2wgIiYjeDJBODQ7Ij48IUVOVElUWSBsYXAgIiYjeDJBODU7Ij48IUVOVElUWSBsZXNzYXBwcm94ICImI3gyQTg1OyI%2BPCFFTlRJVFkgZ2FwICImI3gyQTg2OyI%2BPCFFTlRJVFkgZ3RyYXBwcm94ICImI3gyQTg2OyI%2BPCFFTlRJVFkgbG5lICImI3gyQTg3OyI%2BPCFFTlRJVFkgbG5lcSAiJiN4MkE4NzsiPjwhRU5USVRZIGduZSAiJiN4MkE4ODsiPjwhRU5USVRZIGduZXEgIiYjeDJBODg7Ij48IUVOVElUWSBsbmFwICImI3gyQTg5OyI%2BPCFFTlRJVFkgbG5hcHByb3ggIiYjeDJBODk7Ij48IUVOVElUWSBnbmFwICImI3gyQThBOyI%2BPCFFTlRJVFkgZ25hcHByb3ggIiYjeDJBOEE7Ij48IUVOVElUWSBsRWcgIiYjeDJBOEI7Ij48IUVOVElUWSBsZXNzZXFxZ3RyICImI3gyQThCOyI%2BPCFFTlRJVFkgZ0VsICImI3gyQThDOyI%2BPCFFTlRJVFkgZ3RyZXFxbGVzcyAiJiN4MkE4QzsiPjwhRU5USVRZIGxzaW1lICImI3gyQThEOyI%2BPCFFTlRJVFkgZ3NpbWUgIiYjeDJBOEU7Ij48IUVOVElUWSBsc2ltZyAiJiN4MkE4RjsiPjwhRU5USVRZIGdzaW1sICImI3gyQTkwOyI%2BPCFFTlRJVFkgbGdFICImI3gyQTkxOyI%2BPCFFTlRJVFkgZ2xFICImI3gyQTkyOyI%2BPCFFTlRJVFkgbGVzZ2VzICImI3gyQTkzOyI%2BPCFFTlRJVFkgZ2VzbGVzICImI3gyQTk0OyI%2BPCFFTlRJVFkgZWxzICImI3gyQTk1OyI%2BPCFFTlRJVFkgZXFzbGFudGxlc3MgIiYjeDJBOTU7Ij48IUVOVElUWSBlZ3MgIiYjeDJBOTY7Ij48IUVOVElUWSBlcXNsYW50Z3RyICImI3gyQTk2OyI%2BPCFFTlRJVFkgZWxzZG90ICImI3gyQTk3OyI%2BPCFFTlRJVFkgZWdzZG90ICImI3gyQTk4OyI%2BPCFFTlRJVFkgZWwgIiYjeDJBOTk7Ij48IUVOVElUWSBlZyAiJiN4MkE5QTsiPjwhRU5USVRZIHNpbWwgIiYjeDJBOUQ7Ij48IUVOVElUWSBzaW1nICImI3gyQTlFOyI%2BPCFFTlRJVFkgc2ltbEUgIiYjeDJBOUY7Ij48IUVOVElUWSBzaW1nRSAiJiN4MkFBMDsiPjwhRU5USVRZIExlc3NMZXNzICImI3gyQUExOyI%2BPCFFTlRJVFkgTm90TmVzdGVkTGVzc0xlc3MgIiYjeDJBQTE7JiN4MzM4OyI%2BPCFFTlRJVFkgR3JlYXRlckdyZWF0ZXIgIiYjeDJBQTI7Ij48IUVOVElUWSBOb3ROZXN0ZWRHcmVhdGVyR3JlYXRlciAiJiN4MkFBMjsmI3gzMzg7Ij48IUVOVElUWSBnbGogIiYjeDJBQTQ7Ij48IUVOVElUWSBnbGEgIiYjeDJBQTU7Ij48IUVOVElUWSBsdGNjICImI3gyQUE2OyI%2BPCFFTlRJVFkgZ3RjYyAiJiN4MkFBNzsiPjwhRU5USVRZIGxlc2NjICImI3gyQUE4OyI%2BPCFFTlRJVFkgZ2VzY2MgIiYjeDJBQTk7Ij48IUVOVElUWSBzbXQgIiYjeDJBQUE7Ij48IUVOVElUWSBsYXQgIiYjeDJBQUI7Ij48IUVOVElUWSBzbXRlICImI3gyQUFDOyI%2BPCFFTlRJVFkgc210ZXMgIiYjeDJBQUM7JiN4RkUwMDsiPjwhRU5USVRZIGxhdGUgIiYjeDJBQUQ7Ij48IUVOVElUWSBsYXRlcyAiJiN4MkFBRDsmI3hGRTAwOyI%2BPCFFTlRJVFkgYnVtcEUgIiYjeDJBQUU7Ij48IUVOVElUWSBwcmUgIiYjeDJBQUY7Ij48IUVOVElUWSBwcmVjZXEgIiYjeDJBQUY7Ij48IUVOVElUWSBQcmVjZWRlc0VxdWFsICImI3gyQUFGOyI%2BPCFFTlRJVFkgbnByZSAiJiN4MkFBRjsmI3gzMzg7Ij48IUVOVElUWSBucHJlY2VxICImI3gyQUFGOyYjeDMzODsiPjwhRU5USVRZIE5vdFByZWNlZGVzRXF1YWwgIiYjeDJBQUY7JiN4MzM4OyI%2BPCFFTlRJVFkgc2NlICImI3gyQUIwOyI%2BPCFFTlRJVFkgc3VjY2VxICImI3gyQUIwOyI%2BPCFFTlRJVFkgU3VjY2VlZHNFcXVhbCAiJiN4MkFCMDsiPjwhRU5USVRZIG5zY2UgIiYjeDJBQjA7JiN4MzM4OyI%2BPCFFTlRJVFkgbnN1Y2NlcSAiJiN4MkFCMDsmI3gzMzg7Ij48IUVOVElUWSBOb3RTdWNjZWVkc0VxdWFsICImI3gyQUIwOyYjeDMzODsiPjwhRU5USVRZIHByRSAiJiN4MkFCMzsiPjwhRU5USVRZIHNjRSAiJiN4MkFCNDsiPjwhRU5USVRZIHBybkUgIiYjeDJBQjU7Ij48IUVOVElUWSBwcmVjbmVxcSAiJiN4MkFCNTsiPjwhRU5USVRZIHNjbkUgIiYjeDJBQjY7Ij48IUVOVElUWSBzdWNjbmVxcSAiJiN4MkFCNjsiPjwhRU5USVRZIHByYXAgIiYjeDJBQjc7Ij48IUVOVElUWSBwcmVjYXBwcm94ICImI3gyQUI3OyI%2BPCFFTlRJVFkgc2NhcCAiJiN4MkFCODsiPjwhRU5USVRZIHN1Y2NhcHByb3ggIiYjeDJBQjg7Ij48IUVOVElUWSBwcm5hcCAiJiN4MkFCOTsiPjwhRU5USVRZIHByZWNuYXBwcm94ICImI3gyQUI5OyI%2BPCFFTlRJVFkgc2NuYXAgIiYjeDJBQkE7Ij48IUVOVElUWSBzdWNjbmFwcHJveCAiJiN4MkFCQTsiPjwhRU5USVRZIFByICImI3gyQUJCOyI%2BPCFFTlRJVFkgU2MgIiYjeDJBQkM7Ij48IUVOVElUWSBzdWJkb3QgIiYjeDJBQkQ7Ij48IUVOVElUWSBzdXBkb3QgIiYjeDJBQkU7Ij48IUVOVElUWSBzdWJwbHVzICImI3gyQUJGOyI%2BPCFFTlRJVFkgc3VwcGx1cyAiJiN4MkFDMDsiPjwhRU5USVRZIHN1Ym11bHQgIiYjeDJBQzE7Ij48IUVOVElUWSBzdXBtdWx0ICImI3gyQUMyOyI%2BPCFFTlRJVFkgc3ViZWRvdCAiJiN4MkFDMzsiPjwhRU5USVRZIHN1cGVkb3QgIiYjeDJBQzQ7Ij48IUVOVElUWSBzdWJFICImI3gyQUM1OyI%2BPCFFTlRJVFkgc3Vic2V0ZXFxICImI3gyQUM1OyI%2BPCFFTlRJVFkgbnN1YkUgIiYjeDJBQzU7JiN4MzM4OyI%2BPCFFTlRJVFkgbnN1YnNldGVxcSAiJiN4MkFDNTsmI3gzMzg7Ij48IUVOVElUWSBzdXBFICImI3gyQUM2OyI%2BPCFFTlRJVFkgc3Vwc2V0ZXFxICImI3gyQUM2OyI%2BPCFFTlRJVFkgbnN1cEUgIiYjeDJBQzY7JiN4MzM4OyI%2BPCFFTlRJVFkgbnN1cHNldGVxcSAiJiN4MkFDNjsmI3gzMzg7Ij48IUVOVElUWSBzdWJzaW0gIiYjeDJBQzc7Ij48IUVOVElUWSBzdXBzaW0gIiYjeDJBQzg7Ij48IUVOVElUWSBzdWJuRSAiJiN4MkFDQjsiPjwhRU5USVRZIHN1YnNldG5lcXEgIiYjeDJBQ0I7Ij48IUVOVElUWSB2c3VibkUgIiYjeDJBQ0I7JiN4RkUwMDsiPjwhRU5USVRZIHZhcnN1YnNldG5lcXEgIiYjeDJBQ0I7JiN4RkUwMDsiPjwhRU5USVRZIHN1cG5FICImI3gyQUNDOyI%2BPCFFTlRJVFkgc3Vwc2V0bmVxcSAiJiN4MkFDQzsiPjwhRU5USVRZIHZzdXBuRSAiJiN4MkFDQzsmI3hGRTAwOyI%2BPCFFTlRJVFkgdmFyc3Vwc2V0bmVxcSAiJiN4MkFDQzsmI3hGRTAwOyI%2BPCFFTlRJVFkgY3N1YiAiJiN4MkFDRjsiPjwhRU5USVRZIGNzdXAgIiYjeDJBRDA7Ij48IUVOVElUWSBjc3ViZSAiJiN4MkFEMTsiPjwhRU5USVRZIGNzdXBlICImI3gyQUQyOyI%2BPCFFTlRJVFkgc3Vic3VwICImI3gyQUQzOyI%2BPCFFTlRJVFkgc3Vwc3ViICImI3gyQUQ0OyI%2BPCFFTlRJVFkgc3Vic3ViICImI3gyQUQ1OyI%2BPCFFTlRJVFkgc3Vwc3VwICImI3gyQUQ2OyI%2BPCFFTlRJVFkgc3VwaHN1YiAiJiN4MkFENzsiPjwhRU5USVRZIHN1cGRzdWIgIiYjeDJBRDg7Ij48IUVOVElUWSBmb3JrdiAiJiN4MkFEOTsiPjwhRU5USVRZIHRvcGZvcmsgIiYjeDJBREE7Ij48IUVOVElUWSBtbGNwICImI3gyQURCOyI%2BPCFFTlRJVFkgRGFzaHYgIiYjeDJBRTQ7Ij48IUVOVElUWSBEb3VibGVMZWZ0VGVlICImI3gyQUU0OyI%2BPCFFTlRJVFkgVmRhc2hsICImI3gyQUU2OyI%2BPCFFTlRJVFkgQmFydiAiJiN4MkFFNzsiPjwhRU5USVRZIHZCYXIgIiYjeDJBRTg7Ij48IUVOVElUWSB2QmFydiAiJiN4MkFFOTsiPjwhRU5USVRZIFZiYXIgIiYjeDJBRUI7Ij48IUVOVElUWSBOb3QgIiYjeDJBRUM7Ij48IUVOVElUWSBiTm90ICImI3gyQUVEOyI%2BPCFFTlRJVFkgcm5taWQgIiYjeDJBRUU7Ij48IUVOVElUWSBjaXJtaWQgIiYjeDJBRUY7Ij48IUVOVElUWSBtaWRjaXIgIiYjeDJBRjA7Ij48IUVOVElUWSB0b3BjaXIgIiYjeDJBRjE7Ij48IUVOVElUWSBuaHBhciAiJiN4MkFGMjsiPjwhRU5USVRZIHBhcnNpbSAiJiN4MkFGMzsiPjwhRU5USVRZIHBhcnNsICImI3gyQUZEOyI%2BPCFFTlRJVFkgbnBhcnNsICImI3gyQUZEOyYjeDIwRTU7Ij48IUVOVElUWSBmZmxpZyAiJiN4RkIwMDsiPjwhRU5USVRZIGZpbGlnICImI3hGQjAxOyI%2BPCFFTlRJVFkgZmxsaWcgIiYjeEZCMDI7Ij48IUVOVElUWSBmZmlsaWcgIiYjeEZCMDM7Ij48IUVOVElUWSBmZmxsaWcgIiYjeEZCMDQ7Ij48IUVOVElUWSBBc2NyICImI3gxRDQ5QzsiPjwhRU5USVRZIENzY3IgIiYjeDFENDlFOyI%2BPCFFTlRJVFkgRHNjciAiJiN4MUQ0OUY7Ij48IUVOVElUWSBHc2NyICImI3gxRDRBMjsiPjwhRU5USVRZIEpzY3IgIiYjeDFENEE1OyI%2BPCFFTlRJVFkgS3NjciAiJiN4MUQ0QTY7Ij48IUVOVElUWSBOc2NyICImI3gxRDRBOTsiPjwhRU5USVRZIE9zY3IgIiYjeDFENEFBOyI%2BPCFFTlRJVFkgUHNjciAiJiN4MUQ0QUI7Ij48IUVOVElUWSBRc2NyICImI3gxRDRBQzsiPjwhRU5USVRZIFNzY3IgIiYjeDFENEFFOyI%2BPCFFTlRJVFkgVHNjciAiJiN4MUQ0QUY7Ij48IUVOVElUWSBVc2NyICImI3gxRDRCMDsiPjwhRU5USVRZIFZzY3IgIiYjeDFENEIxOyI%2BPCFFTlRJVFkgV3NjciAiJiN4MUQ0QjI7Ij48IUVOVElUWSBYc2NyICImI3gxRDRCMzsiPjwhRU5USVRZIFlzY3IgIiYjeDFENEI0OyI%2BPCFFTlRJVFkgWnNjciAiJiN4MUQ0QjU7Ij48IUVOVElUWSBhc2NyICImI3gxRDRCNjsiPjwhRU5USVRZIGJzY3IgIiYjeDFENEI3OyI%2BPCFFTlRJVFkgY3NjciAiJiN4MUQ0Qjg7Ij48IUVOVElUWSBkc2NyICImI3gxRDRCOTsiPjwhRU5USVRZIGZzY3IgIiYjeDFENEJCOyI%2BPCFFTlRJVFkgaHNjciAiJiN4MUQ0QkQ7Ij48IUVOVElUWSBpc2NyICImI3gxRDRCRTsiPjwhRU5USVRZIGpzY3IgIiYjeDFENEJGOyI%2BPCFFTlRJVFkga3NjciAiJiN4MUQ0QzA7Ij48IUVOVElUWSBsc2NyICImI3gxRDRDMTsiPjwhRU5USVRZIG1zY3IgIiYjeDFENEMyOyI%2BPCFFTlRJVFkgbnNjciAiJiN4MUQ0QzM7Ij48IUVOVElUWSBwc2NyICImI3gxRDRDNTsiPjwhRU5USVRZIHFzY3IgIiYjeDFENEM2OyI%2BPCFFTlRJVFkgcnNjciAiJiN4MUQ0Qzc7Ij48IUVOVElUWSBzc2NyICImI3gxRDRDODsiPjwhRU5USVRZIHRzY3IgIiYjeDFENEM5OyI%2BPCFFTlRJVFkgdXNjciAiJiN4MUQ0Q0E7Ij48IUVOVElUWSB2c2NyICImI3gxRDRDQjsiPjwhRU5USVRZIHdzY3IgIiYjeDFENENDOyI%2BPCFFTlRJVFkgeHNjciAiJiN4MUQ0Q0Q7Ij48IUVOVElUWSB5c2NyICImI3gxRDRDRTsiPjwhRU5USVRZIHpzY3IgIiYjeDFENENGOyI%2BPCFFTlRJVFkgQWZyICImI3gxRDUwNDsiPjwhRU5USVRZIEJmciAiJiN4MUQ1MDU7Ij48IUVOVElUWSBEZnIgIiYjeDFENTA3OyI%2BPCFFTlRJVFkgRWZyICImI3gxRDUwODsiPjwhRU5USVRZIEZmciAiJiN4MUQ1MDk7Ij48IUVOVElUWSBHZnIgIiYjeDFENTBBOyI%2BPCFFTlRJVFkgSmZyICImI3gxRDUwRDsiPjwhRU5USVRZIEtmciAiJiN4MUQ1MEU7Ij48IUVOVElUWSBMZnIgIiYjeDFENTBGOyI%2BPCFFTlRJVFkgTWZyICImI3gxRDUxMDsiPjwhRU5USVRZIE5mciAiJiN4MUQ1MTE7Ij48IUVOVElUWSBPZnIgIiYjeDFENTEyOyI%2BPCFFTlRJVFkgUGZyICImI3gxRDUxMzsiPjwhRU5USVRZIFFmciAiJiN4MUQ1MTQ7Ij48IUVOVElUWSBTZnIgIiYjeDFENTE2OyI%2BPCFFTlRJVFkgVGZyICImI3gxRDUxNzsiPjwhRU5USVRZIFVmciAiJiN4MUQ1MTg7Ij48IUVOVElUWSBWZnIgIiYjeDFENTE5OyI%2BPCFFTlRJVFkgV2ZyICImI3gxRDUxQTsiPjwhRU5USVRZIFhmciAiJiN4MUQ1MUI7Ij48IUVOVElUWSBZZnIgIiYjeDFENTFDOyI%2BPCFFTlRJVFkgYWZyICImI3gxRDUxRTsiPjwhRU5USVRZIGJmciAiJiN4MUQ1MUY7Ij48IUVOVElUWSBjZnIgIiYjeDFENTIwOyI%2BPCFFTlRJVFkgZGZyICImI3gxRDUyMTsiPjwhRU5USVRZIGVmciAiJiN4MUQ1MjI7Ij48IUVOVElUWSBmZnIgIiYjeDFENTIzOyI%2BPCFFTlRJVFkgZ2ZyICImI3gxRDUyNDsiPjwhRU5USVRZIGhmciAiJiN4MUQ1MjU7Ij48IUVOVElUWSBpZnIgIiYjeDFENTI2OyI%2BPCFFTlRJVFkgamZyICImI3gxRDUyNzsiPjwhRU5USVRZIGtmciAiJiN4MUQ1Mjg7Ij48IUVOVElUWSBsZnIgIiYjeDFENTI5OyI%2BPCFFTlRJVFkgbWZyICImI3gxRDUyQTsiPjwhRU5USVRZIG5mciAiJiN4MUQ1MkI7Ij48IUVOVElUWSBvZnIgIiYjeDFENTJDOyI%2BPCFFTlRJVFkgcGZyICImI3gxRDUyRDsiPjwhRU5USVRZIHFmciAiJiN4MUQ1MkU7Ij48IUVOVElUWSByZnIgIiYjeDFENTJGOyI%2BPCFFTlRJVFkgc2ZyICImI3gxRDUzMDsiPjwhRU5USVRZIHRmciAiJiN4MUQ1MzE7Ij48IUVOVElUWSB1ZnIgIiYjeDFENTMyOyI%2BPCFFTlRJVFkgdmZyICImI3gxRDUzMzsiPjwhRU5USVRZIHdmciAiJiN4MUQ1MzQ7Ij48IUVOVElUWSB4ZnIgIiYjeDFENTM1OyI%2BPCFFTlRJVFkgeWZyICImI3gxRDUzNjsiPjwhRU5USVRZIHpmciAiJiN4MUQ1Mzc7Ij48IUVOVElUWSBBb3BmICImI3gxRDUzODsiPjwhRU5USVRZIEJvcGYgIiYjeDFENTM5OyI%2BPCFFTlRJVFkgRG9wZiAiJiN4MUQ1M0I7Ij48IUVOVElUWSBFb3BmICImI3gxRDUzQzsiPjwhRU5USVRZIEZvcGYgIiYjeDFENTNEOyI%2BPCFFTlRJVFkgR29wZiAiJiN4MUQ1M0U7Ij48IUVOVElUWSBJb3BmICImI3gxRDU0MDsiPjwhRU5USVRZIEpvcGYgIiYjeDFENTQxOyI%2BPCFFTlRJVFkgS29wZiAiJiN4MUQ1NDI7Ij48IUVOVElUWSBMb3BmICImI3gxRDU0MzsiPjwhRU5USVRZIE1vcGYgIiYjeDFENTQ0OyI%2BPCFFTlRJVFkgT29wZiAiJiN4MUQ1NDY7Ij48IUVOVElUWSBTb3BmICImI3gxRDU0QTsiPjwhRU5USVRZIFRvcGYgIiYjeDFENTRCOyI%2BPCFFTlRJVFkgVW9wZiAiJiN4MUQ1NEM7Ij48IUVOVElUWSBWb3BmICImI3gxRDU0RDsiPjwhRU5USVRZIFdvcGYgIiYjeDFENTRFOyI%2BPCFFTlRJVFkgWG9wZiAiJiN4MUQ1NEY7Ij48IUVOVElUWSBZb3BmICImI3gxRDU1MDsiPjwhRU5USVRZIGFvcGYgIiYjeDFENTUyOyI%2BPCFFTlRJVFkgYm9wZiAiJiN4MUQ1NTM7Ij48IUVOVElUWSBjb3BmICImI3gxRDU1NDsiPjwhRU5USVRZIGRvcGYgIiYjeDFENTU1OyI%2BPCFFTlRJVFkgZW9wZiAiJiN4MUQ1NTY7Ij48IUVOVElUWSBmb3BmICImI3gxRDU1NzsiPjwhRU5USVRZIGdvcGYgIiYjeDFENTU4OyI%2BPCFFTlRJVFkgaG9wZiAiJiN4MUQ1NTk7Ij48IUVOVElUWSBpb3BmICImI3gxRDU1QTsiPjwhRU5USVRZIGpvcGYgIiYjeDFENTVCOyI%2BPCFFTlRJVFkga29wZiAiJiN4MUQ1NUM7Ij48IUVOVElUWSBsb3BmICImI3gxRDU1RDsiPjwhRU5USVRZIG1vcGYgIiYjeDFENTVFOyI%2BPCFFTlRJVFkgbm9wZiAiJiN4MUQ1NUY7Ij48IUVOVElUWSBvb3BmICImI3gxRDU2MDsiPjwhRU5USVRZIHBvcGYgIiYjeDFENTYxOyI%2BPCFFTlRJVFkgcW9wZiAiJiN4MUQ1NjI7Ij48IUVOVElUWSByb3BmICImI3gxRDU2MzsiPjwhRU5USVRZIHNvcGYgIiYjeDFENTY0OyI%2BPCFFTlRJVFkgdG9wZiAiJiN4MUQ1NjU7Ij48IUVOVElUWSB1b3BmICImI3gxRDU2NjsiPjwhRU5USVRZIHZvcGYgIiYjeDFENTY3OyI%2BPCFFTlRJVFkgd29wZiAiJiN4MUQ1Njg7Ij48IUVOVElUWSB4b3BmICImI3gxRDU2OTsiPjwhRU5USVRZIHlvcGYgIiYjeDFENTZBOyI%2BPCFFTlRJVFkgem9wZiAiJiN4MUQ1NkI7Ij4%3D">the URL given by this
1.190     sruby    30028:   link</a>. (This URL is a DTD containing the entity reference
                   30029:   declarations for the names listed in the <a href="#named-character-references">named character
                   30030:   references</a> section.)</p>
                   30031: 
                   30032:   <ul class="brief"><li><code title="">-//W3C//DTD&#160;XHTML&#160;1.0&#160;Transitional//EN</code></li>
                   30033:    <li><code title="">-//W3C//DTD&#160;XHTML&#160;1.1//EN</code></li>
                   30034:    <li><code title="">-//W3C//DTD&#160;XHTML&#160;1.0&#160;Strict//EN</code></li>
                   30035:    <li><code title="">-//W3C//DTD&#160;XHTML&#160;1.0&#160;Frameset//EN</code></li>
                   30036:    <li><code title="">-//W3C//DTD&#160;XHTML&#160;Basic&#160;1.0//EN</code></li>
                   30037:    <li><code title="">-//W3C//DTD&#160;XHTML&#160;1.1&#160;plus&#160;MathML&#160;2.0//EN</code></li>
                   30038:    <li><code title="">-//W3C//DTD&#160;XHTML&#160;1.1&#160;plus&#160;MathML&#160;2.0&#160;plus&#160;SVG&#160;1.1//EN</code></li>
                   30039:    <li><code title="">-//W3C//DTD&#160;MathML&#160;2.0//EN</code></li>
                   30040:    <li><code title="">-//WAPFORUM//DTD&#160;XHTML&#160;Mobile&#160;1.0//EN</code></li>
                   30041:   </ul><p>Furthermore, user agents should attempt to retrieve the above
                   30042:   external entity's content when one of the above public identifiers
                   30043:   is used, and should not attempt to retrieve any other external
                   30044:   entity's content.</p>
                   30045: 
                   30046:   <p class="note">This is not strictly a <a href="introduction.html#willful-violation" title="willful
                   30047:   violation">violation</a> of the XML specification, but it does
                   30048:   contradict the spirit of the XML specification's requirements. This
                   30049:   is motivated by a desire for user agents to all handle entities in
                   30050:   an interoperable fashion without requiring any network access for
                   30051:   handling external subsets. <a href="#refsXML">[XML]</a></p>
                   30052: 
                   30053:   <p id="scriptTagXML">When an <a href="#xml-parser">XML parser</a> creates a
                   30054:   <code><a href="the-script-element.html#the-script-element">script</a></code> element, it must be marked as being
                   30055:   <a href="the-script-element.html#parser-inserted">"parser-inserted"</a> and its <a href="the-script-element.html#force-async">"force-async"</a>
                   30056:   flag must be unset. If the parser was originally created for the
                   30057:   <a href="#xml-fragment-parsing-algorithm">XML fragment parsing algorithm</a>, then the element must
                   30058:   be marked as <a href="the-script-element.html#already-started">"already started"</a> also. When the element's
                   30059:   end tag is parsed, the user agent must <a href="#provide-a-stable-state">provide a stable
                   30060:   state</a>, and then <a href="the-script-element.html#prepare-a-script" title="prepare a script">prepare</a>
                   30061:   the <code><a href="the-script-element.html#the-script-element">script</a></code> element. If this causes there to be a
                   30062:   <a href="the-script-element.html#pending-parsing-blocking-script">pending parsing-blocking script</a>, then the user agent
                   30063:   must run the following steps:</p>
                   30064: 
                   30065:   <ol><li><p>Block this instance of the <a href="#xml-parser">XML parser</a>, such
                   30066:    that the <a href="#event-loop">event loop</a> will not run <a href="#concept-task" title="concept-task">tasks</a> that invoke it.</p></li>
                   30067: 
                   30068:    <li><p><a href="#spin-the-event-loop">Spin the event loop</a> until the parser's
                   30069:    <code><a href="dom.html#document">Document</a></code> <a href="styling.html#has-no-style-sheet-that-is-blocking-scripts">has no style sheet that is blocking
                   30070:    scripts</a> and the <a href="the-script-element.html#pending-parsing-blocking-script">pending parsing-blocking
                   30071:    script</a>'s <a href="the-script-element.html#ready-to-be-parser-executed">"ready to be parser-executed"</a> flag is
                   30072:    set.</p></li>
                   30073: 
                   30074:    <li><p>Unblock this instance of the <a href="#xml-parser">XML parser</a>, such
                   30075:    that <a href="#concept-task" title="concept-task">tasks</a> that invoke it can
                   30076:    again be run.</p></li>
                   30077: 
                   30078:    <li><p><a href="the-script-element.html#execute-the-script-block" title="execute the script block">Execute</a> the
                   30079:    <a href="the-script-element.html#pending-parsing-blocking-script">pending parsing-blocking script</a>.</p></li>
                   30080: 
                   30081:    <li><p>There is no longer a <a href="the-script-element.html#pending-parsing-blocking-script">pending parsing-blocking
                   30082:    script</a>.</p></li>
                   30083: 
                   30084:   </ol><p class="note">Since the <code title="dom-document-write"><a href="dynamic-markup-insertion.html#dom-document-write">document.write()</a></code> API is not
                   30085:   available for <a href="infrastructure.html#xml-documents">XML documents</a>, much of the complexity in
                   30086:   the <a href="#html-parser">HTML parser</a> is not needed in the <a href="#xml-parser">XML
                   30087:   parser</a>.</p>
                   30088: 
                   30089:   <p>Certain algorithms in this specification <dfn id="feed-the-parser" title="feed the
                   30090:   parser">spoon-feed the parser</dfn> characters one string at a
                   30091:   time. In such cases, the <a href="#xml-parser">XML parser</a> must act as it
                   30092:   would have if faced with a single string consisting of the
                   30093:   concatenation of all those characters.</p>
                   30094: 
                   30095:   <p>When an <a href="#xml-parser">XML parser</a> reaches the end of its input, it
                   30096:   must <a href="#stop-parsing">stop parsing</a>, following the same rules as the
                   30097:   <a href="#html-parser">HTML parser</a>. An <a href="#xml-parser">XML parser</a> can also be
                   30098:   <a href="#abort-a-parser" title="abort a parser">aborted</a>, which must again by
                   30099:   done in the same way as for an <a href="#html-parser">HTML parser</a>.</p>
                   30100: 
                   30101:   <p>For the purposes of conformance checkers, if a resource is
                   30102:   determined to be in <a href="#the-xhtml-syntax">the XHTML syntax</a>, then it is an
                   30103:   <a href="infrastructure.html#xml-documents" title="XML documents">XML document</a>.</p>
                   30104: 
                   30105: 
                   30106: 
                   30107:   <h3 id="serializing-xhtml-fragments"><span class="secno">9.3 </span>Serializing XHTML fragments</h3>
                   30108: 
                   30109:   <p>The <dfn id="xml-fragment-serialization-algorithm">XML fragment serialization algorithm</dfn> for a
                   30110:   <code><a href="dom.html#document">Document</a></code> or <code><a href="infrastructure.html#element">Element</a></code> node either returns a
                   30111:   fragment of XML that represents that node or throws an
                   30112:   exception.</p>
                   30113: 
                   30114:   <p>For <code><a href="dom.html#document">Document</a></code>s, the algorithm must return a string in
                   30115:   the form of a <a href="http://www.w3.org/TR/xml/#sec-well-formed">document
                   30116:   entity</a>, if none of the error cases below apply.</p>
                   30117: 
                   30118:   <p>For <code><a href="infrastructure.html#element">Element</a></code>s, the algorithm must return a string in
                   30119:   the form of an <a href="http://www.w3.org/TR/xml/#wf-entities">internal general parsed
                   30120:   entity</a>, if none of the error cases below apply.</p>
                   30121: 
                   30122:   <p>In both cases, the string returned must be XML
                   30123:   namespace-well-formed and must be an isomorphic serialization of all
                   30124:   of that node's child nodes, in <a href="infrastructure.html#tree-order">tree order</a>. User agents
                   30125:   may adjust prefixes and namespace declarations in the serialization
                   30126:   (and indeed might be forced to do so in some cases to obtain
                   30127:   namespace-well-formed XML). User agents may use a combination of
                   30128:   regular text and character references to represent
                   30129:   <code><a href="infrastructure.html#text-0">Text</a></code> nodes in the DOM.</p>
                   30130: 
                   30131:   <p>For <code><a href="infrastructure.html#element">Element</a></code>s, if any of the elements in the
                   30132:   serialization are in no namespace, the default namespace in scope
                   30133:   for those elements must be explicitly declared as the empty
                   30134:   string.<!-- because otherwise round-tripping might break since it'll
                   30135:   pick up the surrounding default ns when setting --> (This doesn't
                   30136:   apply in the <code><a href="dom.html#document">Document</a></code> case.) <a href="#refsXML">[XML]</a> <a href="#refsXMLNS">[XMLNS]</a></p>
                   30137: 
                   30138:   <p>For the purposes of this section, an internal general parsed
                   30139:   entity is considered XML namespace-well-formed if a document
                   30140:   consisting of an element with no namespace declarations whose
                   30141:   contents are the internal general parsed entity would itself be XML
                   30142:   namespace-well-formed.</p>
                   30143: 
                   30144:   <p>If any of the following error cases are found in the DOM subtree
                   30145:   being serialized, then the algorithm must throw an
                   30146:   <code><a href="infrastructure.html#invalidstateerror">InvalidStateError</a></code> exception instead of returning a
                   30147:   string:</p>
                   30148: 
                   30149:   <ul><li>A <code><a href="dom.html#document">Document</a></code> node with no child element nodes.</li>
                   30150: 
                   30151:    <li>A <code><a href="infrastructure.html#documenttype">DocumentType</a></code> node that has an external subset
                   30152:    public identifier that contains characters that are not matched by
                   30153:    the XML <code title="">PubidChar</code> production. <a href="#refsXML">[XML]</a></li>
                   30154: 
                   30155:    <li>A <code><a href="infrastructure.html#documenttype">DocumentType</a></code> node that has an external subset
                   30156:    system identifier that contains both a """ (U+0022)
                   30157:    and a "'" (U+0027) or that contains characters that are
                   30158:    not matched by the XML <code title="">Char</code> production. <a href="#refsXML">[XML]</a></li>
                   30159: 
                   30160:    <li>A node with a <!--prefix or--> local name containing a ":" (U+003A).</li> <!--(prefixes can get adjusted, so this isn't an
                   30161:    excuse) -->
                   30162: 
                   30163:    <li>A node with a <!--prefix or--> local name that does not match
                   30164:    the XML <code title="">Name</code> production. <a href="#refsXML">[XML]</a></li> <!--(again, prefixes can get
                   30165:    adjusted, so this isn't an excuse) -->
                   30166: 
                   30167:    <li>An <code><a href="infrastructure.html#attr">Attr</a></code> node with no namespace whose local name is
                   30168:    the lowercase string "<code title="">xmlns</code>". <a href="#refsXMLNS">[XMLNS]</a></li>
                   30169: 
                   30170:    <li>An <code><a href="infrastructure.html#element">Element</a></code> node with two or more attributes with
                   30171:    the same local name and namespace.</li>
                   30172: 
                   30173:    <li>An <code><a href="infrastructure.html#attr">Attr</a></code> node, <code><a href="infrastructure.html#text-0">Text</a></code> node,
                   30174:    <code><a href="infrastructure.html#comment-0">Comment</a></code> node, or <code><a href="infrastructure.html#processinginstruction">ProcessingInstruction</a></code>
                   30175:    node whose data contains characters that are not matched by the XML
                   30176:    <code title="">Char</code> production. <a href="#refsXML">[XML]</a></li>
                   30177: 
                   30178:    <li>A <code><a href="infrastructure.html#comment-0">Comment</a></code> node whose data contains two adjacent
                   30179:    "-" (U+002D) characters or ends with such a
                   30180:    character.</li>
                   30181: 
                   30182:    <li>A <code><a href="infrastructure.html#processinginstruction">ProcessingInstruction</a></code> node whose target name is
                   30183:    an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">xml</code>".</li>
                   30184: 
                   30185:    <li>A <code><a href="infrastructure.html#processinginstruction">ProcessingInstruction</a></code> node whose target name
                   30186:    contains a ":" (U+003A).</li>
                   30187: 
                   30188:    <li>A <code><a href="infrastructure.html#processinginstruction">ProcessingInstruction</a></code> node whose data contains
                   30189:    the string "<code title="">?&gt;</code>".</li>
                   30190: 
                   30191:   </ul><p class="note">These are the only ways to make a DOM
                   30192:   unserializable. The DOM enforces all the other XML constraints; for
                   30193:   example, trying to append two elements to a <code><a href="dom.html#document">Document</a></code>
                   30194:   node will throw a <code><a href="infrastructure.html#hierarchyrequesterror">HierarchyRequestError</a></code> exception.</p>
                   30195: 
                   30196: 
                   30197: 
                   30198:   <h3 id="parsing-xhtml-fragments"><span class="secno">9.4 </span>Parsing XHTML fragments</h3>
                   30199: 
                   30200:   <p>The <dfn id="xml-fragment-parsing-algorithm">XML fragment parsing algorithm</dfn> either returns a
                   30201:   <code><a href="dom.html#document">Document</a></code> or throws a <code><a href="infrastructure.html#syntaxerror">SyntaxError</a></code> exception.
                   30202:   Given a string <var title="">input</var> and an optional context
                   30203:   element <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var>, the
                   30204:   algorithm is as follows:</p>
                   30205: 
                   30206:   <ol><li>
                   30207: 
                   30208:     <p>Create a new <a href="#xml-parser">XML parser</a>.</p>
                   30209: 
                   30210:    </li>
                   30211: 
                   30212:    <li>
                   30213: 
                   30214:     <p>If there is a <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var> element,
                   30215:     <a href="#feed-the-parser">feed the parser</a> just created the string corresponding
                   30216:     to the start tag of that element, declaring all the namespace
                   30217:     prefixes that are in scope on that element in the DOM, as well as
                   30218:     declaring the default namespace (if any) that is in scope on that
                   30219:     element in the DOM.</p>
                   30220: 
                   30221:     <p>A namespace prefix is in scope if the DOM Core <code title="">lookupNamespaceURI()</code> method on the element would
                   30222:     return a non-null value for that prefix.</p>
                   30223: 
                   30224:     <p>The default namespace is the namespace for which the DOM Core
                   30225:     <code title="">isDefaultNamespace()</code> method on the element
                   30226:     would return true.</p>
                   30227: 
                   30228:     <p class="note">If there is a <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var> element, no <code title="">DOCTYPE</code> is passed to the parser, and therefore no
                   30229:     external subset is referenced, and therefore no entities will be
                   30230:     recognized.</p>
                   30231: 
                   30232:    </li>
                   30233: 
                   30234:    <li>
                   30235: 
                   30236:     <p><a href="#feed-the-parser">Feed the parser</a> just created the string <var title="">input</var>.</p>
                   30237: 
                   30238:    </li>
                   30239: 
                   30240:    <li>
                   30241: 
                   30242:     <p>If there is a <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var> element,
                   30243:     <a href="#feed-the-parser">feed the parser</a> just created the string corresponding
                   30244:     to the end tag of that element.</p>
                   30245: 
                   30246:    </li>
                   30247: 
                   30248:    <li>
                   30249: 
                   30250:     <p>If there is an XML well-formedness or XML namespace
                   30251:     well-formedness error, then throw a <code><a href="infrastructure.html#syntaxerror">SyntaxError</a></code>
                   30252:     exception and abort these steps.</p>
                   30253: 
                   30254:    </li>
                   30255: 
                   30256:    <li>
                   30257: 
                   30258:     <p>If there is a <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var> element, and the
                   30259:     root element of the resulting <code><a href="dom.html#document">Document</a></code> has any
                   30260:     sibling nodes, then throw a <code><a href="infrastructure.html#syntaxerror">SyntaxError</a></code> exception and
                   30261:     abort these steps.</p>
                   30262: 
                   30263:     <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1443 -->
                   30264: 
                   30265:    </li>
                   30266: 
                   30267:    <li>
                   30268: 
                   30269:     <p>If there is a <var title="concept-frag-parse-context"><a href="#concept-frag-parse-context">context</a></var> element, then
                   30270:     return the child nodes of the root element of the resulting
                   30271:     <code><a href="dom.html#document">Document</a></code>, in <a href="infrastructure.html#tree-order">tree order</a>.</p>
                   30272: 
                   30273:     <p>Otherwise, return the children of the <code><a href="dom.html#document">Document</a></code>
                   30274:     object, in <a href="infrastructure.html#tree-order">tree order</a>.</p>
                   30275: 
                   30276:    </li>
                   30277: 
                   30278:   </ol></div>
                   30279: 
                   30280: 
                   30281: <!--TOPIC:Rendering-->
                   30282: 
                   30283:   <div class="impl">
                   30284: 
                   30285:   <h2 id="rendering"><span class="secno">10 </span>Rendering</h2>
                   30286: 
                   30287:   <p><i>User agents are not required to present HTML documents in any
                   30288:   particular way. However, this section provides a set of suggestions
                   30289:   for rendering HTML documents that, if followed, are likely to lead
                   30290:   to a user experience that closely resembles the experience intended
                   30291:   by the documents' authors. So as to avoid confusion regarding the
                   30292:   normativity of this section, RFC2119 terms have not been used.
                   30293:   Instead, the term "expected" is used to indicate behavior that will
                   30294:   lead to this experience. For the purposes of conformance for user
                   30295:   agents designated as <a href="infrastructure.html#renderingUA">supporting the suggested
                   30296:   default rendering</a>, the term "expected" in this section has the
                   30297:   same conformance implications as the RFC2119-defined term
                   30298:   "must".</i></p>
                   30299: 
                   30300: 
                   30301:   <h3 id="introduction-8"><span class="secno">10.1 </span>Introduction</h3>
                   30302: 
                   30303:   <p>In general, user agents are expected to support CSS, and many of
                   30304:   the suggestions in this section are expressed in CSS terms. User
                   30305:   agents that use other presentation mechanisms can derive their
                   30306:   expected behavior by translating from the CSS rules given in this
                   30307:   section.</p>
                   30308: 
                   30309:   <p>In the absence of style-layer rules to the contrary (e.g. author
                   30310:   style sheets), user agents are expected to render an element so that
                   30311:   it conveys to the user the meaning that the element
                   30312:   <dfn id="represents">represents</dfn>, as described by this specification.</p>
                   30313: 
                   30314:   <p>The suggestions in this section generally assume a visual output
                   30315:   medium with a resolution of 96dpi or greater, but HTML is intended
                   30316:   to apply to multiple media (it is a <i>media-independent</i>
                   30317:   language). User agent implementors are encouraged to adapt the
                   30318:   suggestions in this section to their target media.</p>
                   30319: 
                   30320:   <hr><p>An element is <dfn id="being-rendered">being rendered</dfn> if it is <a href="infrastructure.html#in-a-document">in a
                   30321:   <code>Document</code></a>, either its parent node is itself
                   30322:   <a href="#being-rendered">being rendered</a> or it is the <code><a href="dom.html#document">Document</a></code> node,
                   30323:   and it is not explicitly excluded from the rendering using either:</p>
                   30324:   <ul class="brief"><li>the CSS 'display' property's 'none' value, or</li>
                   30325:    <li>the 'visibility' property's 'collapse' value unless it is being treated as equivalent to the 'hidden' value, or</li>
                   30326:    <li>some equivalent in other styling languages.</li>
                   30327:   </ul><p class="note">Just being off-screen does not mean the element is
                   30328:   not <a href="#being-rendered">being rendered</a>. The presence of the <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> attribute normally means the
                   30329:   element is not <a href="#being-rendered">being rendered</a>, though this might be
                   30330:   overridden by the style sheets.</p>
                   30331: 
                   30332:   <hr><p>User agents that do not honor author-level CSS style sheets are
                   30333:   nonetheless expected to act as if they applied the CSS rules given
                   30334:   in these sections in a manner consistent with this specification and
                   30335:   the relevant CSS and Unicode specifications. <a href="#refsCSS">[CSS]</a> <a href="#refsUNICODE">[UNICODE]</a> <a href="#refsBIDI">[BIDI]</a></p>
                   30336: 
                   30337:   <p class="note">This is especially important for issues relating to
                   30338:   the 'display', 'unicode-bidi', and 'direction' properties.</p>
                   30339: 
                   30340: 
                   30341: 
                   30342:   <h3 id="the-css-user-agent-style-sheet-and-presentational-hints"><span class="secno">10.2 </span>The CSS user agent style sheet and presentational hints</h3>
                   30343: 
                   30344:   <p>The CSS rules given in these subsections are, except where
                   30345:   otherwise specified, expected to be used as part of the user-agent
                   30346:   level style sheet defaults for all documents that contain <a href="infrastructure.html#html-elements">HTML
                   30347:   elements</a>.</p>
                   30348: 
                   30349:   <p>Some rules are intended for the author-level zero-specificity
                   30350:   presentational hints part of the CSS cascade; these are explicitly
                   30351:   called out as <dfn id="presentational-hints">presentational hints</dfn>.</p>
                   30352: 
                   30353:   <p>Some of the rules regarding left and right margins are given here
                   30354:   as appropriate for elements whose 'direction' property is 'ltr', and
                   30355:   are expected to be flipped around on elements whose 'direction'
                   30356:   property is 'rtl'. These are marked "<dfn id="ltr-specific">LTR-specific</dfn>".</p>
                   30357: 
                   30358:   <p class="note">These markings only affect the handling of attribute
                   30359:   <em>values</em>, not attribute names or element names.</p>
                   30360: 
                   30361:   <hr><p>When the text below says that an attribute <var title="">attribute</var> on an element <var title="">element</var>
                   30362:   <dfn id="maps-to-the-pixel-length-property">maps to the pixel length property</dfn> (or properties) <var title="">properties</var>, it means that if <var title="">element</var> has an attribute <var title="">attribute</var> set, and parsing that attribute's value
                   30363:   using the <a href="common-microsyntaxes.html#rules-for-parsing-non-negative-integers">rules for parsing non-negative integers</a>
                   30364:   doesn't generate an error, then the user agent is expected to use
                   30365:   the parsed value as a pixel length for a <a href="#presentational-hints" title="presentational
                   30366:   hints">presentational hint</a> for <var title="">properties</var>.</p>
                   30367: 
                   30368:   <p>When the text below says that an attribute <var title="">attribute</var> on an element <var title="">element</var>
                   30369:   <dfn id="maps-to-the-dimension-property">maps to the dimension property</dfn> (or properties) <var title="">properties</var>, it means that if <var title="">element</var> has an attribute <var title="">attribute</var> set, and parsing that attribute's value
                   30370:   using the <a href="common-microsyntaxes.html#rules-for-parsing-dimension-values">rules for parsing dimension values</a> doesn't
                   30371:   generate an error, then the user agent is expected to use the parsed
                   30372:   dimension as the value for a <a href="#presentational-hints" title="presentational
                   30373:   hints">presentational hint</a> for <var title="">properties</var>, with the value given as a pixel length if
                   30374:   the dimension was an integer, and with the value given as a
                   30375:   percentage if the dimension was a percentage.</p>
                   30376: 
                   30377:   <p>When a user agent is to <dfn id="align-descendants">align descendants</dfn> of a node,
                   30378:   the user agent is expected to align only those descendants that have
                   30379:   both their 'margin-left' and 'margin-right' properties computing to
                   30380:   a value other than 'auto', that are over-constrained and that have
                   30381:   one of those two margins with a used value forced to a greater
                   30382:   value, and that do not themselves have an applicable <code title="attr-align">align</code> attribute. When multiple elements
                   30383:   are to <a href="#align-descendants" title="align descendants">align</a> a particular
                   30384:   descendant, the most deeply nested such element is expected to
                   30385:   override the others. Aligned elements are expected to be aligned by
                   30386:   having the used values of their left and right margins be set
                   30387:   accordingly.</p>
                   30388: 
                   30389: 
                   30390: 
                   30391:   <h3 id="non-replaced-elements"><span class="secno">10.3 </span>Non-replaced elements</h3>
                   30392: 
                   30393: 
                   30394:   <h4 id="hidden-elements"><span class="secno">10.3.1 </span>Hidden elements</h4>
                   30395: 
                   30396:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   30397: 
                   30398: [hidden], area, base, basefont, command, datalist, head,
                   30399: input[type=hidden i], link, menu[type=context i], meta, noembed, noframes,
                   30400: param, rp, script, source, style, track, title {
                   30401:   display: none;
                   30402: }</pre>
                   30403: 
                   30404:   <p>The user agent is expected to force the 'display' property of
                   30405:   <code><a href="the-noscript-element.html#the-noscript-element">noscript</a></code> elements for whom <a href="#concept-n-script" title="concept-n-script">scripting is enabled</a> to compute to
                   30406:   'none', irrespective of CSS rules.</p>
                   30407: 
                   30408: 
                   30409:   <h4 id="the-page"><span class="secno">10.3.2 </span>The page</h4>
                   30410: 
                   30411:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   30412: 
                   30413: html, body { display: block; }</pre>
                   30414: 
                   30415: 
                   30416:   <!-- body { margin: 8px; } -->
                   30417: 
                   30418:   <p>For each property in the table below, given a <code><a href="the-body-element.html#the-body-element">body</a></code>
                   30419:   element, the first attribute that exists <a href="#maps-to-the-pixel-length-property">maps to the pixel
                   30420:   length property</a> on the <code><a href="the-body-element.html#the-body-element">body</a></code> element. If none of
                   30421:   the attributes for a property are found, or if the value of the
                   30422:   attribute that was found cannot be parsed successfully, then, if the
                   30423:   <code><a href="the-body-element.html#the-body-element">body</a></code> element's <code><a href="dom.html#document">Document</a></code>'s <a href="#browsing-context">browsing
                   30424:   context</a> does not have its <a href="the-iframe-element.html#seamless-browsing-context-flag">seamless browsing context
                   30425:   flag</a> set, a default value of 8px is expected to be used for
                   30426:   that property instead.</p>
                   30427: 
                   30428:   <table><thead><tr><th>Property
                   30429:      </th><th>Source
                   30430:    </th></tr></thead><tbody><tr><td rowspan="3">'margin-top'
                   30431:      </td><td><code><a href="the-body-element.html#the-body-element">body</a></code> element's <code title="attr-body-marginheight"><a href="#attr-body-marginheight">marginheight</a></code> attribute
                   30432:     </td></tr><tr><td>The <code><a href="the-body-element.html#the-body-element">body</a></code> element's <a href="#container-frame-element">container frame element</a>'s <code title="attr-iframe-marginheight"><a href="#attr-iframe-marginheight">marginheight</a></code> attribute
                   30433:     </td></tr><tr><td><code><a href="the-body-element.html#the-body-element">body</a></code> element's <code title="attr-body-topmargin">topmargin</code> attribute
                   30434:    </td></tr></tbody><tbody><tr><td rowspan="3">'margin-right'
                   30435:      </td><td><code><a href="the-body-element.html#the-body-element">body</a></code> element's <code title="attr-body-marginwidth"><a href="#attr-body-marginwidth">marginwidth</a></code> attribute
                   30436:     </td></tr><tr><td>The <code><a href="the-body-element.html#the-body-element">body</a></code> element's <a href="#container-frame-element">container frame element</a>'s <code title="attr-iframe-marginwidth"><a href="#attr-iframe-marginwidth">marginwidth</a></code> attribute
                   30437:     </td></tr><tr><td><code><a href="the-body-element.html#the-body-element">body</a></code> element's <code title="attr-body-rightmargin">rightmargin</code> attribute
                   30438:    </td></tr></tbody><tbody><tr><td rowspan="3">'margin-bottom'
                   30439:      </td><td><code><a href="the-body-element.html#the-body-element">body</a></code> element's <code title="attr-body-marginheight"><a href="#attr-body-marginheight">marginheight</a></code> attribute
                   30440:     </td></tr><tr><td>The <code><a href="the-body-element.html#the-body-element">body</a></code> element's <a href="#container-frame-element">container frame element</a>'s <code title="attr-iframe-marginheight"><a href="#attr-iframe-marginheight">marginheight</a></code> attribute
                   30441:     </td></tr><tr><td><code><a href="the-body-element.html#the-body-element">body</a></code> element's <code title="attr-body-bottommargin">bottommargin</code> attribute
                   30442:    </td></tr></tbody><tbody><tr><td rowspan="3">'margin-left'
                   30443:      </td><td><code><a href="the-body-element.html#the-body-element">body</a></code> element's <code title="attr-body-marginwidth"><a href="#attr-body-marginwidth">marginwidth</a></code> attribute
                   30444:     </td></tr><tr><td>The <code><a href="the-body-element.html#the-body-element">body</a></code> element's <a href="#container-frame-element">container frame element</a>'s <code title="attr-iframe-marginwidth"><a href="#attr-iframe-marginwidth">marginwidth</a></code> attribute
                   30445:     </td></tr><tr><td><code><a href="the-body-element.html#the-body-element">body</a></code> element's <code title="attr-body-leftmargin">leftmargin</code> attribute
                   30446:   </td></tr></tbody></table><p>If the <code><a href="the-body-element.html#the-body-element">body</a></code> element's <code><a href="dom.html#document">Document</a></code>'s
                   30447:   <a href="#browsing-context">browsing context</a> is a <a href="#nested-browsing-context">nested browsing
                   30448:   context</a>, and the <a href="#browsing-context-container">browsing context container</a> of
                   30449:   that <a href="#nested-browsing-context">nested browsing context</a> is a <code><a href="#frame">frame</a></code> or
                   30450:   <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> element, then the <dfn id="container-frame-element">container frame
                   30451:   element</dfn> of the <code><a href="the-body-element.html#the-body-element">body</a></code> element is that
                   30452:   <code><a href="#frame">frame</a></code> or <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> element. Otherwise, there
                   30453:   is no <a href="#container-frame-element">container frame element</a>.</p>
                   30454: 
                   30455:   <p class="warning">The above requirements imply that a page can
                   30456:   change the margins of another page (including one from another
                   30457:   <a href="#origin-0">origin</a>) using, for example, an
                   30458:   <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>. This is potentially a security risk, as it
                   30459:   might in some cases allow an attack to contrive a situation in which
                   30460:   a page is rendered not as the author intended, possibly for the
                   30461:   purposes of phishing or otherwise misleading the user.</p>
                   30462: 
                   30463:   <hr><p>If the <code><a href="dom.html#document">Document</a></code> has a <a href="infrastructure.html#root-element">root element</a>, and
                   30464:   the <code><a href="dom.html#document">Document</a></code>'s <a href="#browsing-context">browsing context</a> is a
                   30465:   <a href="#nested-browsing-context">nested browsing context</a>, and the <a href="#browsing-context-container">browsing context
                   30466:   container</a> of that <a href="#nested-browsing-context">nested browsing context</a> is a
                   30467:   <code><a href="#frame">frame</a></code> or <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> element, and that element
                   30468:   has a <code title="attr-frames-scrolling">scrolling</code>
                   30469:   attribute, then the user agent is expected to compare the value of
                   30470:   the attribute in an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> manner to
                   30471:   the values in the first column of the following table, and if one of
                   30472:   them matches, then the user agent is expected to treat that
                   30473:   attribute as a <a href="#presentational-hints" title="presentational hints">presentational
                   30474:   hint</a> for the aforementioned root element's 'overflow'
                   30475:   property, setting it to the value given in the corresponding cell on
                   30476:   the same row in the second column:</p>
                   30477: 
                   30478:   <table><thead><tr><th> Attribute value
                   30479:      </th><th> 'overflow' value
                   30480:    </th></tr></thead><tbody><tr><td><code title="">on</code>
                   30481:      </td><td>'scroll'
                   30482:     </td></tr><tr><td><code title="">scroll</code>
                   30483:      </td><td>'scroll'
                   30484:     </td></tr><tr><td><code title="">yes</code>
                   30485:      </td><td>'scroll'
                   30486:     </td></tr><tr><td><code title="">off</code>
                   30487:      </td><td>'hidden'
                   30488:     </td></tr><tr><td><code title="">noscroll</code>
                   30489:      </td><td>'hidden'
                   30490:     </td></tr><tr><td><code title="">no</code>
                   30491:      </td><td>'hidden'
                   30492:     </td></tr><tr><td><code title="">auto</code>
                   30493:      </td><td>'auto'
                   30494:   </td></tr></tbody></table><hr><p>When a <code><a href="dom.html#document">Document</a></code> is in <a href="infrastructure.html#quirks-mode">quirks mode</a>,
                   30495:   vertical margins on <a href="infrastructure.html#html-elements">HTML elements</a> at the top or bottom
                   30496:   of <code><a href="the-body-element.html#the-body-element">body</a></code> elements are expected to be collapsed to
                   30497:   zero.</p>
                   30498: 
                   30499:   <hr><p>When a <code><a href="the-body-element.html#the-body-element">body</a></code> element has a <code title="attr-background"><a href="#attr-background">background</a></code> attribute set to a
                   30500:   non-empty value, the new value is expected to be <a href="urls.html#resolve-a-url" title="resolve a url">resolved</a> relative to the element, and
                   30501:   if this is successful, the user agent is expected to treat the
                   30502:   attribute as a <a href="#presentational-hints" title="presentational hints">presentational
                   30503:   hint</a> setting the element's 'background-image' property to the
                   30504:   resulting <a href="urls.html#absolute-url">absolute URL</a>.</p>
                   30505: 
                   30506:   <p>When a <code><a href="the-body-element.html#the-body-element">body</a></code> element has a <code title="attr-body-bgcolor"><a href="#attr-body-bgcolor">bgcolor</a></code> attribute set, the new
                   30507:   value is expected to be parsed using the <a href="common-microsyntaxes.html#rules-for-parsing-a-legacy-color-value">rules for parsing a
                   30508:   legacy color value</a>, and if that does not return an error, the
                   30509:   user agent is expected to treat the attribute as a <a href="#presentational-hints" title="presentational hints">presentational hint</a> setting the
                   30510:   element's 'background-color' property to the resulting color.</p>
                   30511: 
                   30512:   <p>When a <code><a href="the-body-element.html#the-body-element">body</a></code> element has a <code title="attr-body-text"><a href="#attr-body-text">text</a></code> attribute, its value is expected
                   30513:   to be parsed using the <a href="common-microsyntaxes.html#rules-for-parsing-a-legacy-color-value">rules for parsing a legacy color
                   30514:   value</a>, and if that does not return an error, the user
                   30515:   agent is expected to treat the attribute as a <a href="#presentational-hints" title="presentational hints">presentational hint</a> setting the
                   30516:   element's 'color' property to the resulting color.</p>
                   30517: 
                   30518:   <p>When a <code><a href="the-body-element.html#the-body-element">body</a></code> element has a <code title="attr-body-link"><a href="#attr-body-link">link</a></code> attribute, its value is expected
                   30519:   to be parsed using the <a href="common-microsyntaxes.html#rules-for-parsing-a-legacy-color-value">rules for parsing a legacy color
                   30520:   value</a>, and if that does not return an error, the user agent
                   30521:   is expected to treat the attribute as a <a href="#presentational-hints" title="presentational
                   30522:   hints">presentational hint</a> setting the 'color' property of
                   30523:   any element in the <code><a href="dom.html#document">Document</a></code> matching the ':link'
                   30524:   pseudo-class to the resulting color.</p>
                   30525: 
                   30526:   <p>When a <code><a href="the-body-element.html#the-body-element">body</a></code> element has a <code title="attr-body-vlink"><a href="#attr-body-vlink">vlink</a></code> attribute, its value is
                   30527:   expected to be parsed using the <a href="common-microsyntaxes.html#rules-for-parsing-a-legacy-color-value">rules for parsing a legacy
                   30528:   color value</a>, and if that does not return an error, the user
                   30529:   agent is expected to treat the attribute as a <a href="#presentational-hints" title="presentational hints">presentational hint</a> setting the
                   30530:   'color' property of any element in the <code><a href="dom.html#document">Document</a></code>
                   30531:   matching the ':visited' pseudo-class to the resulting color.</p>
                   30532: 
                   30533:   <p>When a <code><a href="the-body-element.html#the-body-element">body</a></code> element has a <code title="attr-body-alink"><a href="#attr-body-alink">alink</a></code> attribute, its value is
                   30534:   expected to be parsed using the <a href="common-microsyntaxes.html#rules-for-parsing-a-legacy-color-value">rules for parsing a legacy
                   30535:   color value</a>, and if that does not return an error, the user
                   30536:   agent is expected to treat the attribute as a <a href="#presentational-hints" title="presentational hints">presentational hint</a> setting the
                   30537:   'color' property of any element in the <code><a href="dom.html#document">Document</a></code>
                   30538:   matching the ':active' pseudo-class and either the ':link'
                   30539:   pseudo-class or the ':visited' pseudo-class to the resulting
                   30540:   color.</p>
                   30541: 
                   30542: 
                   30543: 
                   30544:   <h4 id="flow-content-0"><span class="secno">10.3.3 </span>Flow content</h4>
                   30545: 
                   30546:   <!-- del, ins, and map are inline. -->
                   30547: 
                   30548:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   30549: 
                   30550: address, blockquote, center, div, figure, figcaption, footer, form,
                   30551: header, hr, legend, listing, p, plaintext, pre, summary, xmp {
                   30552:   display: block;<!-- see also unicode-bidi: isolate rules-->
                   30553: }
                   30554: 
                   30555: blockquote, figure, listing, p, plaintext, pre, xmp {
                   30556:   margin-top: 1em; margin-bottom: 1em;
                   30557: }
                   30558: 
                   30559: blockquote, figure { margin-left: 40px; margin-right: 40px; }
                   30560: 
                   30561: address { font-style: italic; }
                   30562: listing, plaintext, pre, xmp {
                   30563:   font-family: monospace; white-space: pre;
                   30564: }
                   30565: 
                   30566: dialog:not([open]) { display: none; }
                   30567: dialog {
                   30568:   position: absolute;
                   30569:   left: 0; right: 0;
                   30570:   margin: auto;
                   30571:   border: solid;
                   30572:   padding: 1em;
                   30573:   background: white;
                   30574:   color: black;
                   30575: }
                   30576: dialog::backdrop { background: rgba(0,0,0,0.1); }</pre>
                   30577: 
                   30578:   <p>The following rules are also expected to apply, as
                   30579:   <a href="#presentational-hints">presentational hints</a>:</p>
                   30580: 
                   30581:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   30582: 
                   30583: pre[wrap] { white-space: pre-wrap; }</pre>
                   30584: 
                   30585:   <p>In <a href="infrastructure.html#quirks-mode">quirks mode</a>, the following rules are also
                   30586:   expected to apply:</p>
                   30587: 
                   30588:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   30589: 
                   30590: form { margin-bottom: 1em; }</pre>
                   30591: 
                   30592:   <hr><p>The <code><a href="#center">center</a></code> element, and the <code><a href="the-div-element.html#the-div-element">div</a></code> element
                   30593:   when it has an <code title="attr-div-align"><a href="#attr-div-align">align</a></code> attribute
                   30594:   whose value is an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for
                   30595:   either the string "<code title="">center</code>" or the string
                   30596:   "<code title="">middle</code>", are expected to center text within
                   30597:   themselves, as if they had their 'text-align' property set to
                   30598:   'center' in a <a href="#presentational-hints" title="presentational hints">presentational
                   30599:   hint</a>, and to <a href="#align-descendants">align descendants</a> to the
                   30600:   center.</p>
                   30601: 
                   30602:   <p>The <code><a href="the-div-element.html#the-div-element">div</a></code> element, when it has an <code title="attr-align">align</code> attribute whose value is an
                   30603:   <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">left</code>", is expected to left-align text within itself,
                   30604:   as if it had its 'text-align' property set to 'left' in a <a href="#presentational-hints" title="presentational hints">presentational hint</a>, and to
                   30605:   <a href="#align-descendants">align descendants</a> to the left.</p>
                   30606: 
                   30607:   <p>The <code><a href="the-div-element.html#the-div-element">div</a></code> element, when it has an <code title="attr-align">align</code> attribute whose value is an
                   30608:   <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">right</code>", is expected to right-align text within
                   30609:   itself, as if it had its 'text-align' property set to 'right' in a
                   30610:   <a href="#presentational-hints" title="presentational hints">presentational hint</a>, and
                   30611:   to <a href="#align-descendants">align descendants</a> to the right.</p>
                   30612: 
                   30613:   <p>The <code><a href="the-div-element.html#the-div-element">div</a></code> element, when it has an <code title="attr-align">align</code> attribute whose value is an
                   30614:   <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">justify</code>", is expected to full-justify text within
                   30615:   itself, as if it had its 'text-align' property set to 'justify' in a
                   30616:   <a href="#presentational-hints" title="presentational hints">presentational hint</a>, and
                   30617:   to <a href="#align-descendants">align descendants</a> to the left.</p>
                   30618: 
                   30619: 
                   30620: 
                   30621:   <h4 id="phrasing-content-0"><span class="secno">10.3.4 </span>Phrasing content</h4>
                   30622: 
                   30623:   <p class="critical">The rule for <code><a href="the-b-element.html#the-b-element">b</a></code> and
                   30624:   <code><a href="the-strong-element.html#the-strong-element">strong</a></code> elements below might change (to 'bolder' instead
                   30625:   of 'bold'). See <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=12154">W3C bug
                   30626:   12154</a>. Implementation feedback is desired.</p>
                   30627: 
                   30628:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   30629: 
                   30630: cite, dfn, em, i, var { font-style: italic; }
                   30631: b, strong { font-weight: bold; }
                   30632: code, kbd, samp, tt { font-family: monospace; }
                   30633: big { font-size: larger; }
                   30634: small { font-size: smaller; }
                   30635: 
                   30636: sub { vertical-align: sub; }
                   30637: sup { vertical-align: super; }
                   30638: sub, sup { line-height: normal; font-size: smaller; }
                   30639: 
                   30640: ruby { display: ruby; }
                   30641: rt { display: ruby-text; }
                   30642: 
                   30643: :link { color: #0000EE; }
                   30644: :visited { color: #551A8B; }
                   30645: :link, :visited { text-decoration: underline; }
                   30646: a:link[rel~=help], a:visited[rel~=help],
                   30647: area:link[rel~=help], area:visited[rel~=help] { cursor: help; }
                   30648: 
                   30649: :focus { outline: auto; }
                   30650: 
                   30651: mark { background: yellow; color: black; } /* this color is just a suggestion and can be changed based on implementation feedback */
                   30652: 
                   30653: abbr[title], acronym[title] { text-decoration: dotted underline; }<!-- CSS3 http://dev.w3.org/csswg/css3-text/#text-decoration-style -->
                   30654: ins, u { text-decoration: underline; }
                   30655: del, s, strike { text-decoration: line-through; }
                   30656: blink { text-decoration: blink; }
                   30657: 
                   30658: q::before { content: open-quote; }
                   30659: q::after { content: close-quote; }
                   30660: 
                   30661: br { content: '\A'; white-space: pre; }
                   30662: nobr { white-space: nowrap; }
                   30663: wbr { content: '\200B'; }
                   30664: nobr wbr { white-space: normal; }</pre>
                   30665: 
                   30666:   <p>The following rules are also expected to apply, as
                   30667:   <a href="#presentational-hints">presentational hints</a>:</p>
                   30668: 
                   30669:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   30670: 
                   30671: br[clear=left i] { clear: left; }
                   30672: br[clear=right i] { clear: right; }
                   30673: br[clear=all i], br[clear=both i] { clear: both; }</pre>
                   30674: 
                   30675:   <p>For the purposes of the CSS ruby model, runs of children of
                   30676:   <code><a href="the-ruby-element.html#the-ruby-element">ruby</a></code> elements that are not <code><a href="the-rt-element.html#the-rt-element">rt</a></code> or
                   30677:   <code><a href="the-rp-element.html#the-rp-element">rp</a></code> elements are expected to be wrapped in anonymous
                   30678:   boxes whose 'display' property has the value 'ruby-base'. <a href="#refsCSSRUBY">[CSSRUBY]</a></p>
                   30679: 
                   30680:   <p>When a particular part of a ruby has more than one annotation,
                   30681:   the annotations should be distributed on both sides of the base text
                   30682:   so as to minimise the stacking of ruby annotations on one side.</p>
                   30683: 
                   30684:   <p class="note">When it becomes possible to do so, the preceding
                   30685:   requirement will be updated to be expressed in terms of CSS ruby.
                   30686:   (Currently, CSS ruby does not handle nested <code><a href="the-ruby-element.html#the-ruby-element">ruby</a></code>
                   30687:   elements or multiple sequential <code><a href="the-rt-element.html#the-rt-element">rt</a></code> elements, which is
                   30688:   how this semantic is expressed.)</p>
                   30689: 
                   30690:   <p>User agents that do not support correct ruby rendering are
                   30691:   expected to render parentheses around the text of <code><a href="the-rt-element.html#the-rt-element">rt</a></code>
                   30692:   elements in the absence of <code><a href="the-rp-element.html#the-rp-element">rp</a></code> elements.</p>
                   30693: 
                   30694:   <hr><p>User agents are expected to
                   30695:   support the 'clear' property on inline elements (in order to render
                   30696:   <code><a href="the-br-element.html#the-br-element">br</a></code> elements with <code title="attr-br-clear"><a href="#attr-br-clear">clear</a></code> attributes) in the manner
                   30697:   described in the non-normative note to this effect in CSS2.1.</p>
                   30698:   <!-- section 9.5.2 of CSS2.1 -->
                   30699: 
                   30700:   <p>The initial value for the 'color' property is expected to be
                   30701:   black. The initial value for the 'background-color' property is
                   30702:   expected to be 'transparent'. The canvas' background is expected to
                   30703:   be white.</p>
                   30704: 
                   30705:   <hr><p>When a <code><a href="#font">font</a></code> element has a <code title="attr-font-color">color</code> attribute, its value is
                   30706:   expected to be parsed using the <a href="common-microsyntaxes.html#rules-for-parsing-a-legacy-color-value">rules for parsing a legacy
                   30707:   color value</a>, and if that does not return an error, the user
                   30708:   agent is expected to treat the attribute as a <a href="#presentational-hints" title="presentational hints">presentational hint</a> setting the
                   30709:   element's 'color' property to the resulting color.</p>
                   30710: 
                   30711:   <p>When a <code><a href="#font">font</a></code> element has a <code title="attr-font-face">face</code> attribute, the user agent is
                   30712:   expected to treat the attribute as a <a href="#presentational-hints" title="presentational
                   30713:   hints">presentational hint</a> setting the element's
                   30714:   'font-family' property to the attribute's value.</p>
                   30715: 
                   30716:   <!-- (Apparently only IE supports this?) (Note: if you add this
                   30717:   back, make sure to define which of 'size' vs 'pointsize' wins.)
                   30718: 
                   30719:   <p>When a <code>font</code> element has a <code
                   30720:   title="attr-font-pointsize">pointsize</code> attribute, the user
                   30721:   agent is expected to parse that attribute's value using the
                   30722:   <span>rules for parsing non-negative integers</span>, and if this
                   30723:   doesn't generate an error, then the user agent is expected to use
                   30724:   the parsed value as a <em>point</em> length for a <span
                   30725:   title="presentational hints">presentational hint</span> for the
                   30726:   'font-size' property on the element.</p>
                   30727:   -->
                   30728: 
                   30729:   <p>When a <code><a href="#font">font</a></code> element has a <code title="attr-font-size">size</code> attribute, the user agent is
                   30730:   expected to use the following steps, known as the <dfn id="rules-for-parsing-a-legacy-font-size">rules for
                   30731:   parsing a legacy font size</dfn>, to treat the attribute as a <a href="#presentational-hints" title="presentational hints">presentational hint</a> setting the
                   30732:   element's 'font-size' property:</p>
                   30733: 
                   30734:   <ol><li><p>Let <var title="">input</var> be the attribute's
                   30735:    value.</p></li>
                   30736: 
                   30737:    <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
                   30738:    string.</p></li>
                   30739: 
                   30740:    <li><p><a href="common-microsyntaxes.html#skip-whitespace">Skip whitespace</a>.</p></li>
                   30741: 
                   30742:    <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, there is no <a href="#presentational-hints" title="presentational
                   30743:    hints">presentational hint</a>. Abort these steps.</p></li>
                   30744: 
                   30745:    <li><p>If the character at <var title="">position</var> is a "+" (U+002B) character, then let <var title="">mode</var> be
                   30746:    <i>relative-plus</i>, and advance <var title="">position</var> to
                   30747:    the next character. Otherwise, if the character at <var title="">position</var> is a "-" (U+002D) character,
                   30748:    then let <var title="">mode</var> be <i>relative-minus</i>, and
                   30749:    advance <var title="">position</var> to the next
                   30750:    character. Otherwise, let <var title="">mode</var> be
                   30751:    <i>absolute</i>.</p></li>
                   30752: 
                   30753:    <li><p><a href="common-microsyntaxes.html#collect-a-sequence-of-characters">Collect a sequence of characters</a> in the range
                   30754:    <a href="common-microsyntaxes.html#ascii-digits">ASCII digits</a>, and let the
                   30755:    resulting sequence be <var title="">digits</var>.</p></li>
                   30756: 
                   30757:    <li><p>If <var title="">digits</var> is the empty string, there is
                   30758:    no <a href="#presentational-hints" title="presentational hints">presentational
                   30759:    hint</a>. Abort these steps.</p></li>
                   30760: 
                   30761:    <li><p>Interpret <var title="">digits</var> as a base-ten
                   30762:    integer. Let <var title="">value</var> be the resulting
                   30763:    number.</p></li>
                   30764: 
                   30765:    <li>
                   30766: 
                   30767:     <!-- basefont support would go here, but we removed it -->
                   30768: 
                   30769:     <p>If <var title="">mode</var> is <i>relative-plus</i>, then
                   30770:     increment <var title="">value</var> by 3. If <var title="">mode</var> is <i>relative-minus</i>, then let <var title="">value</var> be the result of subtracting <var title="">value</var> from 3.</p>
                   30771: 
                   30772:    </li>
                   30773: 
                   30774:    <li><p>If <var title="">value</var> is greater than 7, let it be
                   30775:    7.</p></li>
                   30776: 
                   30777:    <li><p>If <var title="">value</var> is less than 1, let it be
                   30778:    1.</p></li>
                   30779: 
                   30780:    <li>
                   30781: 
                   30782:     <p>Set 'font-size' to the keyword corresponding to the value of
                   30783:     <var title="">value</var> according to the following table:</p>
                   30784: 
                   30785:     <table><thead><tr><th><var title="">value</var>
                   30786:        </th><th>'font-size' keyword
                   30787:        </th><th>Notes
                   30788:      </th></tr></thead><tbody><tr><td>1
                   30789:        </td><td>x-small
                   30790:        </td><td>
                   30791:       </td></tr><tr><td>2
                   30792:        </td><td>small
                   30793:        </td><td>
                   30794:       </td></tr><tr><td>3
                   30795:        </td><td>medium
                   30796:        </td><td>
                   30797:       </td></tr><tr><td>4
                   30798:        </td><td>large
                   30799:        </td><td>
                   30800:       </td></tr><tr><td>5
                   30801:        </td><td>x-large
                   30802:        </td><td>
                   30803:       </td></tr><tr><td>6
                   30804:        </td><td>xx-large
                   30805:        </td><td>
                   30806:       </td></tr><tr><td>7
                   30807:        </td><td>x<!---->xx-large
                   30808:        </td><td><i>see below</i>
                   30809:     </td></tr></tbody></table><p>The 'x<!---->xx-large' value is a non-CSS value used here to
                   30810:     indicate a font size 50% larger than 'xx-large'.</p>
                   30811: 
                   30812:    </li>
                   30813: 
                   30814:   </ol><h4 id="bidirectional-text"><span class="secno">10.3.5 </span>Bidirectional text</h4>
                   30815: 
                   30816:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   30817: 
                   30818: :dir(ltr) { direction: ltr; }
                   30819: :dir(rtl) { direction: rtl; }
                   30820: 
                   30821: address, blockquote, center, div, figure, figcaption, footer, form,
                   30822: header, hr, legend, listing, p, plaintext, pre, summary, xmp, article,
                   30823: aside, h1, h2, h3, h4, h5, h6, hgroup, nav, section, table, caption,
                   30824: colgroup, col, thead, tbody, tfoot, tr, td, th, dir, dd, dl, dt, menu,
                   30825: ol, ul, li {
                   30826:   unicode-bidi: isolate;<!-- basically anything that is display:block-like -->
                   30827: }
                   30828: 
                   30829: :matches([dir=ltr i], [dir=rtl i], [dir=auto i]):not(address):not(blockquote
                   30830: ):not(center):not(div):not(figure):not(figcaption):not(footer):not(form
                   30831: ):not(header):not(hr):not(legend):not(listing):not(p):not(plaintext):not(pre
                   30832: ):not(summary):not(xmp):not(article):not(aside):not(h1):not(h2):not(h3):not(h4
                   30833: ):not(h5):not(h6):not(hgroup):not(nav):not(section):not(table):not(caption
                   30834: ):not(colgroup):not(col):not(thead):not(tbody):not(tfoot):not(tr):not(td
                   30835: ):not(th):not(dir):not(dd):not(dl):not(dt):not(menu):not(ol):not(ul):not(li) {
                   30836:   unicode-bidi: embed;
                   30837: }
                   30838: 
                   30839: bdi, bdi:matches([dir=ltr i], [dir=rtl i]),
                   30840: output, output:matches([dir=ltr i], [dir=rtl i]),
                   30841: [dir=auto i] {
                   30842:   unicode-bidi: isolate;
                   30843: }
                   30844: 
                   30845: bdo, bdo:matches([dir=ltr i], [dir=rtl i]) { unicode-bidi: bidi-override; }
                   30846: bdo[dir=auto i] { unicode-bidi: isolate-override; }
                   30847: 
                   30848: textarea[dir=auto i], pre[dir=auto i] { unicode-bidi: plaintext; }</pre>
                   30849: 
                   30850: 
                   30851:   <h4 id="quotes"><span class="secno">10.3.6 </span>Quotes</h4>
                   30852: 
                   30853:   <p>This block is automatically generated from the Unicode Common
                   30854:   Locale Data Repository. <a href="#refsCLDR">[CLDR]</a></p>
                   30855: 
                   30856:   <p>User agents are expected to use either the block below (which
                   30857:   will be regularly updated) or to automatically generate their own
                   30858:   copy directly from the source material. The language codes are
                   30859:   derived from the CLDR file names. The quotes are derived from the
                   30860:   <code title="">delimiter</code> blocks, with fallback handled as
                   30861:   specified in the CLDR documentation.</p>
                   30862: 
                   30863:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   30864: 
1.193     sruby    30865: &#239;&#187;&#191;:root                                                         { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30866: :root:lang(af),       :not(:lang(af)) &gt; :lang(af)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30867: :root:lang(agq),      :not(:lang(agq)) &gt; :lang(agq)           { quotes: '\201e' '\201d' '\201a' '\2019' } /* &#226;&#128;&#158; &#226;&#128;&#157; &#226;&#128;&#154; &#226;&#128;&#153; */
                   30868: :root:lang(ak),       :not(:lang(ak)) &gt; :lang(ak)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30869: :root:lang(am),       :not(:lang(am)) &gt; :lang(am)             { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#185; &#226;&#128;&#186; */
                   30870: :root:lang(ar),       :not(:lang(ar)) &gt; :lang(ar)             { quotes: '\201d' '\201c' '\2019' '\2018' } /* &#226;&#128;&#157; &#226;&#128;&#156; &#226;&#128;&#153; &#226;&#128;&#152; */
                   30871: :root:lang(asa),      :not(:lang(asa)) &gt; :lang(asa)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30872: :root:lang(az-Cyrl),  :not(:lang(az-Cyrl)) &gt; :lang(az-Cyrl)   { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#185; &#226;&#128;&#186; */
                   30873: :root:lang(bas),      :not(:lang(bas)) &gt; :lang(bas)           { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#158; &#226;&#128;&#156; */
                   30874: :root:lang(bem),      :not(:lang(bem)) &gt; :lang(bem)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30875: :root:lang(bez),      :not(:lang(bez)) &gt; :lang(bez)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30876: :root:lang(bg),       :not(:lang(bg)) &gt; :lang(bg)             { quotes: '\201e' '\201c' '\201a' '\2018' } /* &#226;&#128;&#158; &#226;&#128;&#156; &#226;&#128;&#154; &#226;&#128;&#152; */
                   30877: :root:lang(bm),       :not(:lang(bm)) &gt; :lang(bm)             { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#156; &#226;&#128;&#157; */
                   30878: :root:lang(bn),       :not(:lang(bn)) &gt; :lang(bn)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30879: :root:lang(br),       :not(:lang(br)) &gt; :lang(br)             { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#185; &#226;&#128;&#186; */
                   30880: :root:lang(brx),      :not(:lang(brx)) &gt; :lang(brx)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30881: :root:lang(bs-Cyrl),  :not(:lang(bs-Cyrl)) &gt; :lang(bs-Cyrl)   { quotes: '\201e' '\201c' '\201a' '\2018' } /* &#226;&#128;&#158; &#226;&#128;&#156; &#226;&#128;&#154; &#226;&#128;&#152; */
                   30882: :root:lang(ca),       :not(:lang(ca)) &gt; :lang(ca)             { quotes: '\201c' '\201d' '\00ab' '\00bb' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#194;&#171; &#194;&#187; */
                   30883: :root:lang(cgg),      :not(:lang(cgg)) &gt; :lang(cgg)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30884: :root:lang(chr),      :not(:lang(chr)) &gt; :lang(chr)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30885: :root:lang(cs),       :not(:lang(cs)) &gt; :lang(cs)             { quotes: '\201e' '\201c' '\201a' '\2018' } /* &#226;&#128;&#158; &#226;&#128;&#156; &#226;&#128;&#154; &#226;&#128;&#152; */
                   30886: :root:lang(da),       :not(:lang(da)) &gt; :lang(da)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30887: :root:lang(dav),      :not(:lang(dav)) &gt; :lang(dav)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30888: :root:lang(de),       :not(:lang(de)) &gt; :lang(de)             { quotes: '\201e' '\201c' '\201a' '\2018' } /* &#226;&#128;&#158; &#226;&#128;&#156; &#226;&#128;&#154; &#226;&#128;&#152; */
                   30889: :root:lang(de-CH),    :not(:lang(de-CH)) &gt; :lang(de-CH)       { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#185; &#226;&#128;&#186; */
                   30890: :root:lang(dje),      :not(:lang(dje)) &gt; :lang(dje)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30891: :root:lang(dua),      :not(:lang(dua)) &gt; :lang(dua)           { quotes: '\00ab' '\00bb' '\2018' '\2019' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30892: :root:lang(dyo),      :not(:lang(dyo)) &gt; :lang(dyo)           { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#156; &#226;&#128;&#157; */
                   30893: :root:lang(dz),       :not(:lang(dz)) &gt; :lang(dz)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30894: :root:lang(ebu),      :not(:lang(ebu)) &gt; :lang(ebu)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30895: :root:lang(ee),       :not(:lang(ee)) &gt; :lang(ee)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30896: :root:lang(el),       :not(:lang(el)) &gt; :lang(el)             { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#156; &#226;&#128;&#157; */
                   30897: :root:lang(en),       :not(:lang(en)) &gt; :lang(en)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30898: :root:lang(es),       :not(:lang(es)) &gt; :lang(es)             { quotes: '\201c' '\201d' '\00ab' '\00bb' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#194;&#171; &#194;&#187; */
                   30899: :root:lang(et),       :not(:lang(et)) &gt; :lang(et)             { quotes: '\201e' '\201c' '\201a' '\2018' } /* &#226;&#128;&#158; &#226;&#128;&#156; &#226;&#128;&#154; &#226;&#128;&#152; */
                   30900: :root:lang(eu),       :not(:lang(eu)) &gt; :lang(eu)             { quotes: '\201c' '\201d' '\00ab' '\00bb' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#194;&#171; &#194;&#187; */
                   30901: :root:lang(ewo),      :not(:lang(ewo)) &gt; :lang(ewo)           { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#156; &#226;&#128;&#157; */
                   30902: :root:lang(fa),       :not(:lang(fa)) &gt; :lang(fa)             { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#185; &#226;&#128;&#186; */
                   30903: :root:lang(ff),       :not(:lang(ff)) &gt; :lang(ff)             { quotes: '\201e' '\201d' '\201a' '\2019' } /* &#226;&#128;&#158; &#226;&#128;&#157; &#226;&#128;&#154; &#226;&#128;&#153; */
                   30904: :root:lang(fi),       :not(:lang(fi)) &gt; :lang(fi)             { quotes: '\201d' '\201d' '\2019' '\2019' } /* &#226;&#128;&#157; &#226;&#128;&#157; &#226;&#128;&#153; &#226;&#128;&#153; */
                   30905: :root:lang(fr),       :not(:lang(fr)) &gt; :lang(fr)             { quotes: '\00ab' '\00bb' '\00ab' '\00bb' } /* &#194;&#171; &#194;&#187; &#194;&#171; &#194;&#187; */
                   30906: :root:lang(fr-CA),    :not(:lang(fr-CA)) &gt; :lang(fr-CA)       { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#185; &#226;&#128;&#186; */
                   30907: :root:lang(fr-CH),    :not(:lang(fr-CH)) &gt; :lang(fr-CH)       { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#185; &#226;&#128;&#186; */
                   30908: :root:lang(gsw),      :not(:lang(gsw)) &gt; :lang(gsw)           { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#185; &#226;&#128;&#186; */
                   30909: :root:lang(gu),       :not(:lang(gu)) &gt; :lang(gu)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30910: :root:lang(guz),      :not(:lang(guz)) &gt; :lang(guz)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30911: :root:lang(ha),       :not(:lang(ha)) &gt; :lang(ha)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30912: :root:lang(he),       :not(:lang(he)) &gt; :lang(he)             { quotes: '\0022' '\0022' '\0027' '\0027' } /* " " ' ' */
                   30913: :root:lang(hi),       :not(:lang(hi)) &gt; :lang(hi)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30914: :root:lang(hr),       :not(:lang(hr)) &gt; :lang(hr)             { quotes: '\201e' '\201c' '\201a' '\2018' } /* &#226;&#128;&#158; &#226;&#128;&#156; &#226;&#128;&#154; &#226;&#128;&#152; */
                   30915: :root:lang(hu),       :not(:lang(hu)) &gt; :lang(hu)             { quotes: '\201e' '\201d' '\00bb' '\00ab' } /* &#226;&#128;&#158; &#226;&#128;&#157; &#194;&#187; &#194;&#171; */
                   30916: :root:lang(id),       :not(:lang(id)) &gt; :lang(id)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30917: :root:lang(ig),       :not(:lang(ig)) &gt; :lang(ig)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30918: :root:lang(it),       :not(:lang(it)) &gt; :lang(it)             { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#156; &#226;&#128;&#157; */
                   30919: :root:lang(ja),       :not(:lang(ja)) &gt; :lang(ja)             { quotes: '\300c' '\300d' '\300e' '\300f' } /* &#227;&#128;&#140; &#227;&#128;&#141; &#227;&#128;&#142; &#227;&#128;&#143; */
                   30920: :root:lang(jgo),      :not(:lang(jgo)) &gt; :lang(jgo)           { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#185; &#226;&#128;&#186; */
                   30921: :root:lang(jmc),      :not(:lang(jmc)) &gt; :lang(jmc)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30922: :root:lang(kab),      :not(:lang(kab)) &gt; :lang(kab)           { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#156; &#226;&#128;&#157; */
                   30923: :root:lang(kam),      :not(:lang(kam)) &gt; :lang(kam)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30924: :root:lang(kde),      :not(:lang(kde)) &gt; :lang(kde)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30925: :root:lang(kea),      :not(:lang(kea)) &gt; :lang(kea)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30926: :root:lang(khq),      :not(:lang(khq)) &gt; :lang(khq)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30927: :root:lang(ki),       :not(:lang(ki)) &gt; :lang(ki)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30928: :root:lang(kkj),      :not(:lang(kkj)) &gt; :lang(kkj)           { quotes: '\00ab' '\00bb' '\2039' '\203a' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#185; &#226;&#128;&#186; */
                   30929: :root:lang(kln),      :not(:lang(kln)) &gt; :lang(kln)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30930: :root:lang(km),       :not(:lang(km)) &gt; :lang(km)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30931: :root:lang(kn),       :not(:lang(kn)) &gt; :lang(kn)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30932: :root:lang(ko),       :not(:lang(ko)) &gt; :lang(ko)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30933: :root:lang(ksb),      :not(:lang(ksb)) &gt; :lang(ksb)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30934: :root:lang(ksf),      :not(:lang(ksf)) &gt; :lang(ksf)           { quotes: '\00ab' '\00bb' '\2018' '\2019' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30935: :root:lang(lag),      :not(:lang(lag)) &gt; :lang(lag)           { quotes: '\201d' '\201d' '\2019' '\2019' } /* &#226;&#128;&#157; &#226;&#128;&#157; &#226;&#128;&#153; &#226;&#128;&#153; */
                   30936: :root:lang(lg),       :not(:lang(lg)) &gt; :lang(lg)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30937: :root:lang(ln),       :not(:lang(ln)) &gt; :lang(ln)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30938: :root:lang(lo),       :not(:lang(lo)) &gt; :lang(lo)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30939: :root:lang(lt),       :not(:lang(lt)) &gt; :lang(lt)             { quotes: '\201e' '\201c' '\201e' '\201c' } /* &#226;&#128;&#158; &#226;&#128;&#156; &#226;&#128;&#158; &#226;&#128;&#156; */
                   30940: :root:lang(lu),       :not(:lang(lu)) &gt; :lang(lu)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30941: :root:lang(luo),      :not(:lang(luo)) &gt; :lang(luo)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30942: :root:lang(luy),      :not(:lang(luy)) &gt; :lang(luy)           { quotes: '\201e' '\201c' '\201a' '\2018' } /* &#226;&#128;&#158; &#226;&#128;&#156; &#226;&#128;&#154; &#226;&#128;&#152; */
                   30943: :root:lang(lv),       :not(:lang(lv)) &gt; :lang(lv)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30944: :root:lang(mas),      :not(:lang(mas)) &gt; :lang(mas)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30945: :root:lang(mer),      :not(:lang(mer)) &gt; :lang(mer)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30946: :root:lang(mfe),      :not(:lang(mfe)) &gt; :lang(mfe)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30947: :root:lang(mg),       :not(:lang(mg)) &gt; :lang(mg)             { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#156; &#226;&#128;&#157; */
                   30948: :root:lang(mgo),      :not(:lang(mgo)) &gt; :lang(mgo)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30949: :root:lang(mk),       :not(:lang(mk)) &gt; :lang(mk)             { quotes: '\201e' '\201c' '\201a' '\2018' } /* &#226;&#128;&#158; &#226;&#128;&#156; &#226;&#128;&#154; &#226;&#128;&#152; */
                   30950: :root:lang(ml),       :not(:lang(ml)) &gt; :lang(ml)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30951: :root:lang(mr),       :not(:lang(mr)) &gt; :lang(mr)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30952: :root:lang(ms),       :not(:lang(ms)) &gt; :lang(ms)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30953: :root:lang(mua),      :not(:lang(mua)) &gt; :lang(mua)           { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#156; &#226;&#128;&#157; */
                   30954: :root:lang(my),       :not(:lang(my)) &gt; :lang(my)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30955: :root:lang(naq),      :not(:lang(naq)) &gt; :lang(naq)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30956: :root:lang(nb),       :not(:lang(nb)) &gt; :lang(nb)             { quotes: '\00ab' '\00bb' '\2018' '\2019' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30957: :root:lang(nd),       :not(:lang(nd)) &gt; :lang(nd)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30958: :root:lang(nl),       :not(:lang(nl)) &gt; :lang(nl)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30959: :root:lang(nmg),      :not(:lang(nmg)) &gt; :lang(nmg)           { quotes: '\201e' '\201d' '\00ab' '\00bb' } /* &#226;&#128;&#158; &#226;&#128;&#157; &#194;&#171; &#194;&#187; */
                   30960: :root:lang(nn),       :not(:lang(nn)) &gt; :lang(nn)             { quotes: '\00ab' '\00bb' '\2018' '\2019' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30961: :root:lang(nnh),      :not(:lang(nnh)) &gt; :lang(nnh)           { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#156; &#226;&#128;&#157; */
                   30962: :root:lang(nus),      :not(:lang(nus)) &gt; :lang(nus)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30963: :root:lang(nyn),      :not(:lang(nyn)) &gt; :lang(nyn)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30964: :root:lang(pl),       :not(:lang(pl)) &gt; :lang(pl)             { quotes: '\201e' '\201d' '\00ab' '\00bb' } /* &#226;&#128;&#158; &#226;&#128;&#157; &#194;&#171; &#194;&#187; */
                   30965: :root:lang(pt),       :not(:lang(pt)) &gt; :lang(pt)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30966: :root:lang(pt-PT),    :not(:lang(pt-PT)) &gt; :lang(pt-PT)       { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#156; &#226;&#128;&#157; */
                   30967: :root:lang(rn),       :not(:lang(rn)) &gt; :lang(rn)             { quotes: '\201d' '\201d' '\2019' '\2019' } /* &#226;&#128;&#157; &#226;&#128;&#157; &#226;&#128;&#153; &#226;&#128;&#153; */
                   30968: :root:lang(ro),       :not(:lang(ro)) &gt; :lang(ro)             { quotes: '\201e' '\201d' '\00ab' '\00bb' } /* &#226;&#128;&#158; &#226;&#128;&#157; &#194;&#171; &#194;&#187; */
                   30969: :root:lang(rof),      :not(:lang(rof)) &gt; :lang(rof)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30970: :root:lang(ru),       :not(:lang(ru)) &gt; :lang(ru)             { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#158; &#226;&#128;&#156; */
                   30971: :root:lang(rw),       :not(:lang(rw)) &gt; :lang(rw)             { quotes: '\00ab' '\00bb' '\2018' '\2019' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30972: :root:lang(rwk),      :not(:lang(rwk)) &gt; :lang(rwk)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30973: :root:lang(saq),      :not(:lang(saq)) &gt; :lang(saq)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30974: :root:lang(sbp),      :not(:lang(sbp)) &gt; :lang(sbp)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30975: :root:lang(seh),      :not(:lang(seh)) &gt; :lang(seh)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30976: :root:lang(ses),      :not(:lang(ses)) &gt; :lang(ses)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30977: :root:lang(sg),       :not(:lang(sg)) &gt; :lang(sg)             { quotes: '\00ab' '\00bb' '\201c' '\201d' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#156; &#226;&#128;&#157; */
                   30978: :root:lang(shi),      :not(:lang(shi)) &gt; :lang(shi)           { quotes: '\00ab' '\00bb' '\201e' '\201d' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#158; &#226;&#128;&#157; */
                   30979: :root:lang(shi-Latn), :not(:lang(shi-Latn)) &gt; :lang(shi-Latn) { quotes: '\00ab' '\00bb' '\201e' '\201d' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#158; &#226;&#128;&#157; */
                   30980: :root:lang(si),       :not(:lang(si)) &gt; :lang(si)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30981: :root:lang(sk),       :not(:lang(sk)) &gt; :lang(sk)             { quotes: '\201e' '\201c' '\201a' '\2018' } /* &#226;&#128;&#158; &#226;&#128;&#156; &#226;&#128;&#154; &#226;&#128;&#152; */
                   30982: :root:lang(sl),       :not(:lang(sl)) &gt; :lang(sl)             { quotes: '\201e' '\201c' '\201a' '\2018' } /* &#226;&#128;&#158; &#226;&#128;&#156; &#226;&#128;&#154; &#226;&#128;&#152; */
                   30983: :root:lang(sn),       :not(:lang(sn)) &gt; :lang(sn)             { quotes: '\201d' '\201d' '\2019' '\2019' } /* &#226;&#128;&#157; &#226;&#128;&#157; &#226;&#128;&#153; &#226;&#128;&#153; */
                   30984: :root:lang(so),       :not(:lang(so)) &gt; :lang(so)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30985: :root:lang(sq),       :not(:lang(sq)) &gt; :lang(sq)             { quotes: '\201e' '\201c' '\201a' '\2018' } /* &#226;&#128;&#158; &#226;&#128;&#156; &#226;&#128;&#154; &#226;&#128;&#152; */
                   30986: :root:lang(sr),       :not(:lang(sr)) &gt; :lang(sr)             { quotes: '\201e' '\201c' '\201a' '\2018' } /* &#226;&#128;&#158; &#226;&#128;&#156; &#226;&#128;&#154; &#226;&#128;&#152; */
                   30987: :root:lang(sr-Latn),  :not(:lang(sr-Latn)) &gt; :lang(sr-Latn)   { quotes: '\201e' '\201c' '\201a' '\2018' } /* &#226;&#128;&#158; &#226;&#128;&#156; &#226;&#128;&#154; &#226;&#128;&#152; */
                   30988: :root:lang(sv),       :not(:lang(sv)) &gt; :lang(sv)             { quotes: '\201d' '\201d' '\2019' '\2019' } /* &#226;&#128;&#157; &#226;&#128;&#157; &#226;&#128;&#153; &#226;&#128;&#153; */
                   30989: :root:lang(sw),       :not(:lang(sw)) &gt; :lang(sw)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30990: :root:lang(swc),      :not(:lang(swc)) &gt; :lang(swc)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30991: :root:lang(ta),       :not(:lang(ta)) &gt; :lang(ta)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30992: :root:lang(te),       :not(:lang(te)) &gt; :lang(te)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30993: :root:lang(teo),      :not(:lang(teo)) &gt; :lang(teo)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30994: :root:lang(th),       :not(:lang(th)) &gt; :lang(th)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30995: :root:lang(ti-ER),    :not(:lang(ti-ER)) &gt; :lang(ti-ER)       { quotes: '\2018' '\2019' '\201c' '\201d' } /* &#226;&#128;&#152; &#226;&#128;&#153; &#226;&#128;&#156; &#226;&#128;&#157; */
                   30996: :root:lang(to),       :not(:lang(to)) &gt; :lang(to)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30997: :root:lang(tr),       :not(:lang(tr)) &gt; :lang(tr)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30998: :root:lang(twq),      :not(:lang(twq)) &gt; :lang(twq)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   30999: :root:lang(tzm),      :not(:lang(tzm)) &gt; :lang(tzm)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   31000: :root:lang(uk),       :not(:lang(uk)) &gt; :lang(uk)             { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* &#194;&#171; &#194;&#187; &#226;&#128;&#158; &#226;&#128;&#156; */
                   31001: :root:lang(ur),       :not(:lang(ur)) &gt; :lang(ur)             { quotes: '\201d' '\201c' '\2019' '\2018' } /* &#226;&#128;&#157; &#226;&#128;&#156; &#226;&#128;&#153; &#226;&#128;&#152; */
                   31002: :root:lang(vai),      :not(:lang(vai)) &gt; :lang(vai)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   31003: :root:lang(vai-Latn), :not(:lang(vai-Latn)) &gt; :lang(vai-Latn) { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   31004: :root:lang(vi),       :not(:lang(vi)) &gt; :lang(vi)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   31005: :root:lang(vun),      :not(:lang(vun)) &gt; :lang(vun)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   31006: :root:lang(xh),       :not(:lang(xh)) &gt; :lang(xh)             { quotes: '\2018' '\2019' '\201c' '\201d' } /* &#226;&#128;&#152; &#226;&#128;&#153; &#226;&#128;&#156; &#226;&#128;&#157; */
                   31007: :root:lang(xog),      :not(:lang(xog)) &gt; :lang(xog)           { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   31008: :root:lang(yav),      :not(:lang(yav)) &gt; :lang(yav)           { quotes: '\00ab' '\00bb' '\00ab' '\00bb' } /* &#194;&#171; &#194;&#187; &#194;&#171; &#194;&#187; */
                   31009: :root:lang(yo),       :not(:lang(yo)) &gt; :lang(yo)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   31010: :root:lang(zh),       :not(:lang(zh)) &gt; :lang(zh)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   31011: :root:lang(zh-Hant),  :not(:lang(zh-Hant)) &gt; :lang(zh-Hant)   { quotes: '\300c' '\300d' '\300e' '\300f' } /* &#227;&#128;&#140; &#227;&#128;&#141; &#227;&#128;&#142; &#227;&#128;&#143; */
                   31012: :root:lang(zu),       :not(:lang(zu)) &gt; :lang(zu)             { quotes: '\201c' '\201d' '\2018' '\2019' } /* &#226;&#128;&#156; &#226;&#128;&#157; &#226;&#128;&#152; &#226;&#128;&#153; */
                   31013: </pre>  
1.190     sruby    31014: 
                   31015: 
                   31016:   <h4 id="sections-and-headings"><span class="secno">10.3.7 </span>Sections and headings</h4>
                   31017: 
                   31018:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31019: 
                   31020: article, aside, h1, h2, h3, h4, h5, h6, hgroup, nav, section {
                   31021:   display: block;<!-- see also unicode-bidi: isolate rules-->
                   31022: }
                   31023: 
                   31024: h1 { margin-top: 0.67em; margin-bottom: 0.67em; font-size: 2.00em; font-weight: bold; }
                   31025: h2 { margin-top: 0.83em; margin-bottom: 0.83em; font-size: 1.50em; font-weight: bold; }
                   31026: h3 { margin-top: 1.00em; margin-bottom: 1.00em; font-size: 1.17em; font-weight: bold; }
                   31027: h4 { margin-top: 1.33em; margin-bottom: 1.33em; font-size: 1.00em; font-weight: bold; }
                   31028: h5 { margin-top: 1.67em; margin-bottom: 1.67em; font-size: 0.83em; font-weight: bold; }
                   31029: h6 { margin-top: 2.33em; margin-bottom: 2.33em; font-size: 0.67em; font-weight: bold; }</pre>
                   31030: 
                   31031:   <p>The <code><a href="the-article-element.html#the-article-element">article</a></code>, <code><a href="the-aside-element.html#the-aside-element">aside</a></code>, <code><a href="the-nav-element.html#the-nav-element">nav</a></code>,
                   31032:   and <code><a href="the-section-element.html#the-section-element">section</a></code> elements are expected to affect the margins
                   31033:   and font size of <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h1</a></code> elements, based on the nesting
                   31034:   depth. If <var title="">x</var> is a selector that matches elements
                   31035:   that are either <code><a href="the-article-element.html#the-article-element">article</a></code>, <code><a href="the-aside-element.html#the-aside-element">aside</a></code>,
                   31036:   <code><a href="the-nav-element.html#the-nav-element">nav</a></code>, or <code><a href="the-section-element.html#the-section-element">section</a></code> elements, then the
                   31037:   following rules capture what is expected:</p>
                   31038: 
                   31039:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31040: 
                   31041: <var title="">x</var> h1 { margin-top: 0.83em; margin-bottom: 0.83em; font-size: 1.50em; }
                   31042: <var title="">x</var> <var title="">x</var> h1 { margin-top: 1.00em; margin-bottom: 1.00em; font-size: 1.17em; }
                   31043: <var title="">x</var> <var title="">x</var> <var title="">x</var> h1 { margin-top: 1.33em; margin-bottom: 1.33em; font-size: 1.00em; }
                   31044: <var title="">x</var> <var title="">x</var> <var title="">x</var> <var title="">x</var> h1 { margin-top: 1.67em; margin-bottom: 1.67em; font-size: 0.83em; }
                   31045: <var title="">x</var> <var title="">x</var> <var title="">x</var> <var title="">x</var> <var title="">x</var> h1 { margin-top: 2.33em; margin-bottom: 2.33em; font-size: 0.67em; }</pre>
                   31046: 
                   31047: 
                   31048: 
                   31049:   <h4 id="lists"><span class="secno">10.3.8 </span>Lists</h4>
                   31050: 
                   31051:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31052: 
                   31053: dir, dd, dl, dt, menu, ol, ul { display: block; }<!-- see also unicode-bidi:isolate rules -->
                   31054: li { display: list-item; }<!-- see also unicode-bidi:isolate rules -->
                   31055: 
                   31056: dir, dl, menu, ol, ul { margin-top: 1em; margin-bottom: 1em; }
                   31057: 
                   31058: dir dir, dir dl, dir menu, dir ol, dir ul,
                   31059: dl dir, dl dl, dl menu, dl ol, dl ul,
                   31060: menu dir, menu dl, menu menu, menu ol, menu ul,
                   31061: ol dir, ol dl, ol menu, ol ol, ol ul,
                   31062: ul dir, ul dl, ul menu, ul ol, ul ul {
                   31063:   margin-top: 0; margin-bottom: 0;
                   31064: }
                   31065: 
                   31066: dd { margin-left: 40px; } /* <a href="#ltr-specific">LTR-specific</a>: use 'margin-right' for rtl elements */
                   31067: dir, menu, ol, ul { padding-left: 40px; } /* <a href="#ltr-specific">LTR-specific</a>: use 'padding-right' for rtl elements */
                   31068: 
                   31069: ol { list-style-type: decimal; }
                   31070: 
                   31071: dir, menu, ul { list-style-type: disc; }
                   31072: 
                   31073: dir dl, dir menu, dir ul,
                   31074: menu dl, menu menu, menu ul,
                   31075: ol dl, ol menu, ol ul,
                   31076: ul dl, ul menu, ul ul {
                   31077:   list-style-type: circle;
                   31078: }
                   31079: 
                   31080: dir dir dl, dir dir menu, dir dir ul,
                   31081: dir menu dl, dir menu menu, dir menu ul,
                   31082: dir ol dl, dir ol menu, dir ol ul,
                   31083: dir ul dl, dir ul menu, dir ul ul,
                   31084: menu dir dl, menu dir menu, menu dir ul,
                   31085: menu menu dl, menu menu menu, menu menu ul,
                   31086: menu ol dl, menu ol menu, menu ol ul,
                   31087: menu ul dl, menu ul menu, menu ul ul,
                   31088: ol dir dl, ol dir menu, ol dir ul,
                   31089: ol menu dl, ol menu menu, ol menu ul,
                   31090: ol ol dl, ol ol menu, ol ol ul,
                   31091: ol ul dl, ol ul menu, ol ul ul,
                   31092: ul dir dl, ul dir menu, ul dir ul,
                   31093: ul menu dl, ul menu menu, ul menu ul,
                   31094: ul ol dl, ul ol menu, ul ol ul,
                   31095: ul ul dl, ul ul menu, ul ul ul {
                   31096:   list-style-type: square;
                   31097: }</pre>
                   31098: 
                   31099:   <p id="decohints">The following rules are also expected to apply, as
                   31100:   <a href="#presentational-hints">presentational hints</a>:</p>
                   31101: 
                   31102:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31103: 
                   31104: ol[type=1], li[type=1] { list-style-type: decimal; }
                   31105: ol[type=a], li[type=a] { list-style-type: lower-alpha; }
                   31106: ol[type=A], li[type=A] { list-style-type: upper-alpha; }
                   31107: ol[type=i], li[type=i] { list-style-type: lower-roman; }
                   31108: ol[type=I], li[type=I] { list-style-type: upper-roman; }
                   31109: ul[type=disc i], li[type=disc i] { list-style-type: disc; }
                   31110: ul[type=circle i], li[type=circle i] { list-style-type: circle; }
                   31111: ul[type=square i], li[type=square i] { list-style-type: square; }</pre>
                   31112: 
                   31113:   <p>When rendering <code><a href="the-li-element.html#the-li-element">li</a></code> elements, user agents are expected
                   31114:   to use the <a href="the-li-element.html#ordinal-value">ordinal value</a> of the <code><a href="the-li-element.html#the-li-element">li</a></code> element
                   31115:   to render the counter in the list item marker.</p>
                   31116: 
                   31117: 
                   31118:   <h4 id="tables"><span class="secno">10.3.9 </span>Tables</h4>
                   31119: 
                   31120:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31121: 
                   31122: table { display: table; }<!-- see also unicode-bidi:isolate rules -->
                   31123: caption { display: table-caption; }<!-- see also unicode-bidi:isolate rules -->
                   31124: colgroup, colgroup[hidden] { display: table-column-group; }<!-- see also unicode-bidi:isolate rules -->
                   31125: col, col[hidden] { display: table-column; }<!-- see also unicode-bidi:isolate rules -->
                   31126: thead, thead[hidden] { display: table-header-group; }<!-- see also unicode-bidi:isolate rules -->
                   31127: tbody, tbody[hidden] { display: table-row-group; }<!-- see also unicode-bidi:isolate rules -->
                   31128: tfoot, tfoot[hidden] { display: table-footer-group; }<!-- see also unicode-bidi:isolate rules -->
                   31129: tr, tr[hidden] { display: table-row; }<!-- see also unicode-bidi:isolate rules -->
                   31130: td, th, td[hidden], th[hidden] { display: table-cell; }<!-- see also unicode-bidi:isolate rules -->
                   31131: 
                   31132: colgroup[hidden], col[hidden], thead[hidden], tbody[hidden],
                   31133: tfoot[hidden], tr[hidden], td[hidden], th[hidden] {
                   31134:   visibility: collapse;
                   31135: }
                   31136: 
                   31137: table {
                   31138:   border-spacing: 2px;
                   31139:   border-collapse: separate;
                   31140:   text-indent: initial;
                   31141: }
                   31142: td, th { padding: 1px; }
                   31143: th { font-weight: bold; }
                   31144: 
                   31145: thead, tbody, tfoot, table &gt; tr { vertical-align: middle; }
                   31146: tr, td, th { vertical-align: inherit; }
                   31147: 
                   31148: table, td, th { border-color: gray; }
                   31149: thead, tbody, tfoot, tr { border-color: inherit; }
                   31150: table[rules=none i], table[rules=groups i], table[rules=rows i],
                   31151: table[rules=cols i], table[rules=all i], table[frame=void i],
                   31152: table[frame=above i], table[frame=below i], table[frame=hsides i],
                   31153: table[frame=lhs i], table[frame=rhs i], table[frame=vsides i],
                   31154: table[frame=box i], table[frame=border i],
                   31155: table[rules=none i] &gt; tr &gt; td, table[rules=none i] &gt; tr &gt; th,
                   31156: table[rules=groups i] &gt; tr &gt; td, table[rules=groups i] &gt; tr &gt; th,
                   31157: table[rules=rows i] &gt; tr &gt; td, table[rules=rows i] &gt; tr &gt; th,
                   31158: table[rules=cols i] &gt; tr &gt; td, table[rules=cols i] &gt; tr &gt; th,
                   31159: table[rules=all i] &gt; tr &gt; td, table[rules=all i] &gt; tr &gt; th,
                   31160: table[rules=none i] &gt; thead &gt; tr &gt; td, table[rules=none i] &gt; thead &gt; tr &gt; th,
                   31161: table[rules=groups i] &gt; thead &gt; tr &gt; td, table[rules=groups i] &gt; thead &gt; tr &gt; th,
                   31162: table[rules=rows i] &gt; thead &gt; tr &gt; td, table[rules=rows i] &gt; thead &gt; tr &gt; th,
                   31163: table[rules=cols i] &gt; thead &gt; tr &gt; td, table[rules=cols i] &gt; thead &gt; tr &gt; th,
                   31164: table[rules=all i] &gt; thead &gt; tr &gt; td, table[rules=all i] &gt; thead &gt; tr &gt; th,
                   31165: table[rules=none i] &gt; tbody &gt; tr &gt; td, table[rules=none i] &gt; tbody &gt; tr &gt; th,
                   31166: table[rules=groups i] &gt; tbody &gt; tr &gt; td, table[rules=groups i] &gt; tbody &gt; tr &gt; th,
                   31167: table[rules=rows i] &gt; tbody &gt; tr &gt; td, table[rules=rows i] &gt; tbody &gt; tr &gt; th,
                   31168: table[rules=cols i] &gt; tbody &gt; tr &gt; td, table[rules=cols i] &gt; tbody &gt; tr &gt; th,
                   31169: table[rules=all i] &gt; tbody &gt; tr &gt; td, table[rules=all i] &gt; tbody &gt; tr &gt; th,
                   31170: table[rules=none i] &gt; tfoot &gt; tr &gt; td, table[rules=none i] &gt; tfoot &gt; tr &gt; th,
                   31171: table[rules=groups i] &gt; tfoot &gt; tr &gt; td, table[rules=groups i] &gt; tfoot &gt; tr &gt; th,
                   31172: table[rules=rows i] &gt; tfoot &gt; tr &gt; td, table[rules=rows i] &gt; tfoot &gt; tr &gt; th,
                   31173: table[rules=cols i] &gt; tfoot &gt; tr &gt; td, table[rules=cols i] &gt; tfoot &gt; tr &gt; th,
                   31174: table[rules=all i] &gt; tfoot &gt; tr &gt; td, table[rules=all i] &gt; tfoot &gt; tr &gt; th {
                   31175:   border-color: black;
                   31176: }</pre>
                   31177: 
                   31178:   <p>The following rules are also expected to apply, as
                   31179:   <a href="#presentational-hints">presentational hints</a>:</p>
                   31180: 
                   31181:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31182: 
                   31183: table[align=left i] { float: left; }
                   31184: table[align=right i] { float: right; }
                   31185: table[align=center i] { margin-left: auto; margin-right: auto; }
                   31186: thead[align=absmiddle i], tbody[align=absmiddle i], tfoot[align=absmiddle i],
                   31187: tr[align=absmiddle i], td[align=absmiddle i], th[align=absmiddle i] {
                   31188:   text-align: center;
                   31189: }
                   31190: 
                   31191: caption[align=bottom i] { caption-side: bottom; }
                   31192: p[align=left i], h1[align=left i], h2[align=left i], h3[align=left i],
                   31193: h4[align=left i], h5[align=left i], h6[align=left i] {
                   31194:   text-align: left;
                   31195: }
                   31196: p[align=right i], h1[align=right i], h2[align=right i], h3[align=right i],
                   31197: h4[align=right i], h5[align=right i], h6[align=right i] {
                   31198:   text-align: right;
                   31199: }
                   31200: p[align=center i], h1[align=center i], h2[align=center i], h3[align=center i],
                   31201: h4[align=center i], h5[align=center i], h6[align=center i] {
                   31202:   text-align: center;
                   31203: }
                   31204: p[align=justify i], h1[align=justify i], h2[align=justify i], h3[align=justify i],
                   31205: h4[align=justify i], h5[align=justify i], h6[align=justify i] {
                   31206:   text-align: justify;
                   31207: }
                   31208: thead[valign=top i], tbody[valign=top i], tfoot[valign=top i],
                   31209: tr[valign=top i], td[valign=top i], th[valign=top i] {
                   31210:   vertical-align: top;
                   31211: }
                   31212: thead[valign=middle i], tbody[valign=middle i], tfoot[valign=middle i],
                   31213: tr[valign=middle i], td[valign=middle i], th[valign=middle i] {
                   31214:   vertical-align: middle;
                   31215: }
                   31216: thead[valign=bottom i], tbody[valign=bottom i], tfoot[valign=bottom i],
                   31217: tr[valign=bottom i], td[valign=bottom i], th[valign=bottom i] {
                   31218:   vertical-align: bottom;
                   31219: }
                   31220: thead[valign=baseline i], tbody[valign=baseline i], tfoot[valign=baseline i],
                   31221: tr[valign=baseline i], td[valign=baseline i], th[valign=baseline i] {
                   31222:   vertical-align: baseline;
                   31223: }
                   31224: 
                   31225: td[nowrap], th[nowrap] { white-space: nowrap; }
                   31226: 
                   31227: table[rules=none i], table[rules=groups i], table[rules=rows i],
                   31228: table[rules=cols i], table[rules=all i] {
                   31229:   border-style: hidden;
                   31230:   border-collapse: collapse;
                   31231: }
                   31232: table[border] { border-style: outset; } /* <a href="#magic-border-selector">only if border is not equivalent to zero</a> */
                   31233: table[frame=void i] { border-style: hidden; }
                   31234: table[frame=above i] { border-style: outset hidden hidden hidden; }
                   31235: table[frame=below i] { border-style: hidden hidden outset hidden; }
                   31236: table[frame=hsides i] { border-style: outset hidden outset hidden; }
                   31237: table[frame=lhs i] { border-style: hidden hidden hidden outset; }
                   31238: table[frame=rhs i] { border-style: hidden outset hidden hidden; }
                   31239: table[frame=vsides i] { border-style: hidden outset; }
                   31240: table[frame=box i], table[frame=border i] { border-style: outset; }
                   31241: 
                   31242: table[border] &gt; tr &gt; td, table[border] &gt; tr &gt; th,
                   31243: table[border] &gt; thead &gt; tr &gt; td, table[border] &gt; thead &gt; tr &gt; th,
                   31244: table[border] &gt; tbody &gt; tr &gt; td, table[border] &gt; tbody &gt; tr &gt; th,
                   31245: table[border] &gt; tfoot &gt; tr &gt; td, table[border] &gt; tfoot &gt; tr &gt; th {
                   31246:   /* <a href="#magic-border-selector">only if border is not equivalent to zero</a> */
                   31247:   border-width: 1px;
                   31248:   border-style: inset;
                   31249: }
                   31250: table[rules=none i] &gt; tr &gt; td, table[rules=none i] &gt; tr &gt; th,
                   31251: table[rules=none i] &gt; thead &gt; tr &gt; td, table[rules=none i] &gt; thead &gt; tr &gt; th,
                   31252: table[rules=none i] &gt; tbody &gt; tr &gt; td, table[rules=none i] &gt; tbody &gt; tr &gt; th,
                   31253: table[rules=none i] &gt; tfoot &gt; tr &gt; td, table[rules=none i] &gt; tfoot &gt; tr &gt; th,
                   31254: table[rules=groups i] &gt; tr &gt; td, table[rules=groups i] &gt; tr &gt; th,
                   31255: table[rules=groups i] &gt; thead &gt; tr &gt; td, table[rules=groups i] &gt; thead &gt; tr &gt; th,
                   31256: table[rules=groups i] &gt; tbody &gt; tr &gt; td, table[rules=groups i] &gt; tbody &gt; tr &gt; th,
                   31257: table[rules=groups i] &gt; tfoot &gt; tr &gt; td, table[rules=groups i] &gt; tfoot &gt; tr &gt; th,
                   31258: table[rules=rows i] &gt; tr &gt; td, table[rules=rows i] &gt; tr &gt; th,
                   31259: table[rules=rows i] &gt; thead &gt; tr &gt; td, table[rules=rows i] &gt; thead &gt; tr &gt; th,
                   31260: table[rules=rows i] &gt; tbody &gt; tr &gt; td, table[rules=rows i] &gt; tbody &gt; tr &gt; th,
                   31261: table[rules=rows i] &gt; tfoot &gt; tr &gt; td, table[rules=rows i] &gt; tfoot &gt; tr &gt; th {
                   31262:   border-width: 1px;
                   31263:   border-style: none;
                   31264: }
                   31265: table[rules=cols i] &gt; tr &gt; td, table[rules=cols i] &gt; tr &gt; th,
                   31266: table[rules=cols i] &gt; thead &gt; tr &gt; td, table[rules=cols i] &gt; thead &gt; tr &gt; th,
                   31267: table[rules=cols i] &gt; tbody &gt; tr &gt; td, table[rules=cols i] &gt; tbody &gt; tr &gt; th,
                   31268: table[rules=cols i] &gt; tfoot &gt; tr &gt; td, table[rules=cols i] &gt; tfoot &gt; tr &gt; th {
                   31269:   border-width: 1px;
                   31270:   border-style: none solid;
                   31271: }
                   31272: table[rules=all i] &gt; tr &gt; td, table[rules=all i] &gt; tr &gt; th,
                   31273: table[rules=all i] &gt; thead &gt; tr &gt; td, table[rules=all i] &gt; thead &gt; tr &gt; th,
                   31274: table[rules=all i] &gt; tbody &gt; tr &gt; td, table[rules=all i] &gt; tbody &gt; tr &gt; th,
                   31275: table[rules=all i] &gt; tfoot &gt; tr &gt; td, table[rules=all i] &gt; tfoot &gt; tr &gt; th {
                   31276:   border-width: 1px;
                   31277:   border-style: solid;
                   31278: }
                   31279: 
                   31280: table[rules=groups i] &gt; colgroup {
                   31281:   border-left-width: 1px;
                   31282:   border-left-style: solid;
                   31283:   border-right-width: 1px;
                   31284:   border-right-style: solid;
                   31285: }
                   31286: table[rules=groups i] &gt; thead,
                   31287: table[rules=groups i] &gt; tbody,
                   31288: table[rules=groups i] &gt; tfoot {
                   31289:   border-top-width: 1px;
                   31290:   border-top-style: solid;
                   31291:   border-bottom-width: 1px;
                   31292:   border-bottom-style: solid;
                   31293: }
                   31294: 
                   31295: table[rules=rows i] &gt; tr, table[rules=rows i] &gt; thead &gt; tr,
                   31296: table[rules=rows i] &gt; tbody &gt; tr, table[rules=rows i] &gt; tfoot &gt; tr {
                   31297:   border-top-width: 1px;
                   31298:   border-top-style: solid;
                   31299:   border-bottom-width: 1px;
                   31300:   border-bottom-style: solid;
                   31301: }</pre>
                   31302: 
                   31303: <!--
                   31304:  Demos that the above (and prose below) must explain:
                   31305:    http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1191
                   31306:    http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1194
                   31307:    http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1195
                   31308:    http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1196
                   31309:    http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1197
                   31310:    http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1199
                   31311:    http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1200
                   31312:    http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1201
                   31313:    http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1209
                   31314: -->
                   31315: 
                   31316: 
                   31317:   <p>In <a href="infrastructure.html#quirks-mode">quirks mode</a>, the following rules are also
                   31318:   expected to apply:</p>
                   31319: 
                   31320:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31321: 
                   31322: table {
                   31323:   font-weight: initial;
                   31324:   font-style: initial;
                   31325:   font-variant: initial;
                   31326:   font-size: initial;
                   31327:   line-height: initial;
                   31328:   white-space: initial;
                   31329:   text-align: initial;
                   31330: }</pre>
                   31331: 
                   31332:   <hr><p>For the purposes of the CSS table model, the <code><a href="the-col-element.html#the-col-element">col</a></code>
                   31333:   element is expected to be treated as if it was present as many times
                   31334:   as its <code title="attr-col-span"><a href="the-col-element.html#attr-col-span">span</a></code> attribute <a href="common-microsyntaxes.html#rules-for-parsing-non-negative-integers" title="rules for parsing non-negative
                   31335:   integers">specifies</a>.</p>
                   31336: 
                   31337:   <p>For the purposes of the CSS table model, the
                   31338:   <code><a href="the-colgroup-element.html#the-colgroup-element">colgroup</a></code> element, if it contains no <code><a href="the-col-element.html#the-col-element">col</a></code>
                   31339:   element, is expected to be treated as if it had as many such
                   31340:   children as its <code title="attr-colgroup-span"><a href="the-colgroup-element.html#attr-colgroup-span">span</a></code>
                   31341:   attribute <a href="common-microsyntaxes.html#rules-for-parsing-non-negative-integers" title="rules for parsing non-negative
                   31342:   integers">specifies</a>.</p>
                   31343: 
                   31344:   <p>For the purposes of the CSS table model, the <code title="attr-tdth-colspan"><a href="attributes-common-to-td-and-th-elements.html#attr-tdth-colspan">colspan</a></code> and <code title="attr-tdth-rowspan"><a href="attributes-common-to-td-and-th-elements.html#attr-tdth-rowspan">rowspan</a></code> attributes on
                   31345:   <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements are expected to <a href="common-microsyntaxes.html#rules-for-parsing-non-negative-integers" title="rules for parsing non-negative integers">provide</a> the
                   31346:   <i>special knowledge</i> regarding cells spanning rows and
                   31347:   columns.</p>
                   31348: 
                   31349:   <p>In <a href="infrastructure.html#html-documents">HTML documents</a>, the user agent is expected to
                   31350:   force the 'display' property of <code><a href="the-form-element.html#the-form-element">form</a></code> elements that are
                   31351:   children of <code><a href="the-table-element.html#the-table-element">table</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>,
                   31352:   <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>, or <code><a href="the-tr-element.html#the-tr-element">tr</a></code> elements
                   31353:   to compute to 'none', irrespective of CSS rules.</p>
                   31354: 
                   31355:   <hr><p>The <code><a href="the-table-element.html#the-table-element">table</a></code> element's <code title="attr-table-cellspacing"><a href="#attr-table-cellspacing">cellspacing</a></code> attribute
                   31356:   <a href="#maps-to-the-pixel-length-property">maps to the pixel length property</a> 'border-spacing' on the
                   31357:   element.</p>
                   31358: 
                   31359:   <p>The <code><a href="the-table-element.html#the-table-element">table</a></code> element's <code title="attr-table-cellpadding"><a href="#attr-table-cellpadding">cellpadding</a></code> attribute <a href="#maps-to-the-pixel-length-property" title="maps to the pixel length property">maps to the pixel length
                   31360:   properties</a> 'padding-top', 'padding-right', 'padding-bottom',
                   31361:   and 'padding-left' of any <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code>
                   31362:   elements that have corresponding <a href="attributes-common-to-td-and-th-elements.html#concept-cell" title="concept-cell">cells</a> in the <a href="attributes-common-to-td-and-th-elements.html#concept-table" title="concept-table">table</a> corresponding to the
                   31363:   <code><a href="the-table-element.html#the-table-element">table</a></code> element.</p>
                   31364: 
                   31365:   <p>The <code><a href="the-table-element.html#the-table-element">table</a></code> element's <code title="attr-table-hspace">hspace</code> attribute <a href="#maps-to-the-dimension-property" title="maps
                   31366:   to the dimension property">maps to the dimension properties</a>
                   31367:   'margin-left' and 'margin-right' on the <code><a href="the-table-element.html#the-table-element">table</a></code>
                   31368:   element.</p>
                   31369: 
                   31370:   <p>The <code><a href="the-table-element.html#the-table-element">table</a></code> element's <code title="attr-table-vspace">vspace</code> attribute <a href="#maps-to-the-dimension-property" title="maps
                   31371:   to the dimension property">maps to the dimension properties</a>
                   31372:   'margin-top' and 'margin-bottom' on the <code><a href="the-table-element.html#the-table-element">table</a></code>
                   31373:   element.</p>
                   31374: 
                   31375:   <p>The <code><a href="the-table-element.html#the-table-element">table</a></code> element's <code title="attr-table-height">height</code> attribute <a href="#maps-to-the-dimension-property">maps to the
                   31376:   dimension property</a> 'height' on the <code><a href="the-table-element.html#the-table-element">table</a></code>
                   31377:   element.</p>
                   31378: 
                   31379:   <p>The <code><a href="the-table-element.html#the-table-element">table</a></code> element's <code title="attr-table-width"><a href="#attr-table-width">width</a></code> attribute <a href="#maps-to-the-dimension-property">maps to the
                   31380:   dimension property</a> 'width' on the <code><a href="the-table-element.html#the-table-element">table</a></code>
                   31381:   element.</p>
                   31382: 
                   31383:   <p>The <code><a href="the-col-element.html#the-col-element">col</a></code> element's <code title="attr-col-width"><a href="#attr-col-width">width</a></code> attribute <a href="#maps-to-the-dimension-property">maps to the
                   31384:   dimension property</a> 'width' on the <code><a href="the-col-element.html#the-col-element">col</a></code>
                   31385:   element.</p>
                   31386: 
                   31387:   <p>The <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element's <code title="attr-tr-height">height</code> attribute <a href="#maps-to-the-dimension-property">maps to the
                   31388:   dimension property</a> 'height' on the <code><a href="the-tr-element.html#the-tr-element">tr</a></code>
                   31389:   element.</p>
                   31390: 
                   31391:   <p>The <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements' <code title="attr-tdth-height"><a href="#attr-tdth-height">height</a></code> attributes <a href="#maps-to-the-dimension-property" title="maps
                   31392:   to the dimension property">map to the dimension property</a> 'height'
                   31393:   on the element.</p>
                   31394: 
                   31395:   <p>The <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements' <code title="attr-tdth-width"><a href="#attr-tdth-width">width</a></code> attributes <a href="#maps-to-the-dimension-property" title="maps
                   31396:   to the dimension property">map to the dimension property</a> 'width'
                   31397:   on the element.</p>
                   31398: 
                   31399:   <p>When a <code><a href="dom.html#document">Document</a></code> is in <a href="infrastructure.html#quirks-mode">quirks mode</a>,
                   31400:   vertical margins on <a href="infrastructure.html#html-elements">HTML elements</a> at the top or bottom
                   31401:   of <code><a href="the-td-element.html#the-td-element">td</a></code> or <code><a href="the-th-element.html#the-th-element">th</a></code> elements are expected to be
                   31402:   collapsed to zero.</p>
                   31403: 
                   31404:   <hr><p>The <code><a href="the-caption-element.html#the-caption-element">caption</a></code> element unless specified otherwise
                   31405:   below, and the <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>,
                   31406:   <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>, <code><a href="the-tr-element.html#the-tr-element">tr</a></code>, <code><a href="the-td-element.html#the-td-element">td</a></code>, and
                   31407:   <code><a href="the-th-element.html#the-th-element">th</a></code> elements when they have an <code title="attr-div-align"><a href="#attr-div-align">align</a></code> attribute whose value is an
                   31408:   <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for either the string
                   31409:   "<code title="">center</code>" or the string "<code title="">middle</code>", are expected to center text within
                   31410:   themselves, as if they had their 'text-align' property set to
                   31411:   'center' in a <a href="#presentational-hints" title="presentational hints">presentational
                   31412:   hint</a>, and to <a href="#align-descendants">align descendants</a> to the
                   31413:   center.</p>
                   31414: 
                   31415:   <p>The <code><a href="the-caption-element.html#the-caption-element">caption</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>,
                   31416:   <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>, <code><a href="the-tr-element.html#the-tr-element">tr</a></code>, <code><a href="the-td-element.html#the-td-element">td</a></code>, and
                   31417:   <code><a href="the-th-element.html#the-th-element">th</a></code> elements, when they have an <code title="attr-align">align</code> attribute whose value is an
                   31418:   <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">left</code>", are expected to left-align text within
                   31419:   themselves, as if they had their 'text-align' property set to 'left'
                   31420:   in a <a href="#presentational-hints" title="presentational hints">presentational hint</a>,
                   31421:   and to <a href="#align-descendants">align descendants</a> to the left.</p>
                   31422: 
                   31423:   <p>The <code><a href="the-caption-element.html#the-caption-element">caption</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>,
                   31424:   <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>, <code><a href="the-tr-element.html#the-tr-element">tr</a></code>, <code><a href="the-td-element.html#the-td-element">td</a></code>, and
                   31425:   <code><a href="the-th-element.html#the-th-element">th</a></code> elements, when they have an <code title="attr-align">align</code> attribute whose value is an
                   31426:   <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">right</code>", are expected to right-align text within
                   31427:   themselves, as if they had their 'text-align' property set to
                   31428:   'right' in a <a href="#presentational-hints" title="presentational hints">presentational
                   31429:   hint</a>, and to <a href="#align-descendants">align descendants</a> to the right.</p>
                   31430: 
                   31431:   <p>The <code><a href="the-caption-element.html#the-caption-element">caption</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>,
                   31432:   <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>, <code><a href="the-tr-element.html#the-tr-element">tr</a></code>, <code><a href="the-td-element.html#the-td-element">td</a></code>, and
                   31433:   <code><a href="the-th-element.html#the-th-element">th</a></code> elements, when they have an <code title="attr-align">align</code> attribute whose value is an
                   31434:   <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">justify</code>", are expected to full-justify text within
                   31435:   themselves, as if they had their 'text-align' property set to
                   31436:   'justify' in a <a href="#presentational-hints" title="presentational hints">presentational
                   31437:   hint</a>, and to <a href="#align-descendants">align descendants</a> to the left.</p>
                   31438: 
                   31439:   <p>User agents are expected to have a rule in their user agent
                   31440:   stylesheet that matches <code><a href="the-th-element.html#the-th-element">th</a></code> elements that have a parent
                   31441:   node whose computed value for the 'text-align' property is its
                   31442:   initial value, whose declaration block consists of just a single
                   31443:   declaration that sets the 'text-align' property to the value
                   31444:   'center'.</p> <!-- q.v. '-moz-center-or-inherit' -->
                   31445: 
                   31446:   <hr><p>When a <code><a href="the-table-element.html#the-table-element">table</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>,
                   31447:   <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>, <code><a href="the-tr-element.html#the-tr-element">tr</a></code>,
                   31448:   <code><a href="the-td-element.html#the-td-element">td</a></code>, or <code><a href="the-th-element.html#the-th-element">th</a></code> element has a <code title="attr-background"><a href="#attr-background">background</a></code> attribute set to a
                   31449:   non-empty value, the new value is expected to be <a href="urls.html#resolve-a-url" title="resolve a url">resolved</a> relative to the element, and
                   31450:   if this is successful, the user agent is expected to treat the
                   31451:   attribute as a <a href="#presentational-hints" title="presentational hints">presentational
                   31452:   hint</a> setting the element's 'background-image' property to the
                   31453:   resulting <a href="urls.html#absolute-url">absolute URL</a>.</p>
                   31454: 
                   31455:   <p>When a <code><a href="the-table-element.html#the-table-element">table</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>,
                   31456:   <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>, <code><a href="the-tr-element.html#the-tr-element">tr</a></code>,
                   31457:   <code><a href="the-td-element.html#the-td-element">td</a></code>, or <code><a href="the-th-element.html#the-th-element">th</a></code> element has a <code title="">bgcolor</code> attribute set, the new value is expected to
                   31458:   be parsed using the <a href="common-microsyntaxes.html#rules-for-parsing-a-legacy-color-value">rules for parsing a legacy color
                   31459:   value</a>, and if that does not return an error, the user agent
                   31460:   is expected to treat the attribute as a <a href="#presentational-hints" title="presentational
                   31461:   hints">presentational hint</a> setting the element's
                   31462:   'background-color' property to the resulting color.</p>
                   31463: 
                   31464:   <p>When a <code><a href="the-table-element.html#the-table-element">table</a></code> element has a <code title="attr-table-bordercolor">bordercolor</code> attribute, its
                   31465:   value is expected to be parsed using the <a href="common-microsyntaxes.html#rules-for-parsing-a-legacy-color-value">rules for parsing a
                   31466:   legacy color value</a>, and if that does not return an error, the
                   31467:   user agent is expected to treat the attribute as a <a href="#presentational-hints" title="presentational hints">presentational hint</a> setting the
                   31468:   element's 'border-top-color', 'border-right-color',
                   31469:   'border-bottom-color', and 'border-right-color' properties to the
                   31470:   resulting color.</p>
                   31471: 
                   31472:   <hr><p>The <code><a href="the-table-element.html#the-table-element">table</a></code> element's <code title="attr-table-border"><a href="the-table-element.html#attr-table-border">border</a></code> attribute <a href="#maps-to-the-pixel-length-property" title="maps
                   31473:   to the pixel length property">maps to the pixel length
                   31474:   properties</a> 'border-top-width', 'border-right-width',
                   31475:   'border-bottom-width', 'border-left-width' on the element. If the
                   31476:   attribute is present but parsing the attribute's value using the
                   31477:   <a href="common-microsyntaxes.html#rules-for-parsing-non-negative-integers">rules for parsing non-negative integers</a> generates an
                   31478:   error, a default value of 1px is expected to be used for that
                   31479:   property instead.</p>
                   31480: 
                   31481:   <p>Rules marked "<dfn id="magic-border-selector">only if border is
                   31482:   not equivalent to zero</dfn>" in the CSS block above is expected to
                   31483:   only be applied if the <code title="attr-table-border"><a href="the-table-element.html#attr-table-border">border</a></code>
                   31484:   attribute mentioned in the selectors for the rule is not only
                   31485:   present but, when parsed using the <a href="common-microsyntaxes.html#rules-for-parsing-non-negative-integers">rules for parsing
                   31486:   non-negative integers</a>, is also found to have a value other
                   31487:   than zero or to generate an error.</p>
                   31488: 
                   31489:   <hr><p>In <a href="infrastructure.html#quirks-mode">quirks mode</a>, a <code><a href="the-td-element.html#the-td-element">td</a></code> element or a
                   31490:   <code><a href="the-th-element.html#the-th-element">th</a></code> element that has a <code title="attr-tdth-nowrap"><a href="#attr-tdth-nowrap">nowrap</a></code> attribute but also has a
                   31491:   <code title="attr-tdth-width"><a href="#attr-tdth-width">width</a></code> attribute whose value,
                   31492:   when parsed using the <a href="common-microsyntaxes.html#rules-for-parsing-dimension-values">rules for parsing dimension
                   31493:   values</a>, is found to be a length (not an error or a number
                   31494:   classified as a percentage), is expected to have a <a href="#presentational-hints" title="presentational hints">presentational hint</a> setting the
                   31495:   element's 'white-space' property to 'normal', overriding the rule in
                   31496:   the CSS block above that sets it to 'nowrap'.</p>
                   31497:   <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1793 -->
                   31498:   <!-- note that the "rules for parsing dimension values" can't return 0, if the value is "0" they treat it as an error -->
                   31499: 
                   31500: 
                   31501:   <h4 id="form-controls"><span class="secno">10.3.10 </span>Form controls</h4>
                   31502: 
                   31503:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31504: 
                   31505: input, select, option, optgroup, button, textarea, keygen {
                   31506:   text-indent: initial;
                   31507: }
                   31508: 
                   31509: textarea { white-space: pre-wrap; }
                   31510: </pre>
                   31511: 
                   31512:   <p>In <a href="infrastructure.html#quirks-mode">quirks mode</a>, the following rules are also
                   31513:   expected to apply:</p>
                   31514: 
                   31515:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31516: 
                   31517: input { box-sizing: border-box; }</pre>
                   31518: 
                   31519:   <p>Each kind of form control is also given a specific default
                   31520:   binding, as described in subsequent sections, which implements the
                   31521:   look and feel of the control.</p>
                   31522: 
                   31523: 
                   31524: 
                   31525:   <h4 id="the-hr-element-0"><span class="secno">10.3.11 </span>The <code><a href="the-hr-element.html#the-hr-element">hr</a></code> element</h4>
                   31526: 
                   31527:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31528: 
                   31529: hr { color: gray; border-style: inset; border-width: 1px; margin: 0.5em auto; }</pre>
                   31530: 
                   31531:   <p>The following rules are also expected to apply, as
                   31532:   <a href="#presentational-hints">presentational hints</a>:</p>
                   31533: 
                   31534:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31535: 
                   31536: hr[align=left] { margin-left: 0; margin-right: auto; }
                   31537: hr[align=right] { margin-left: auto; margin-right: 0; }
                   31538: hr[align=center] { margin-left: auto; margin-right: auto; }
                   31539: hr[color], hr[noshade] { border-style: solid; }</pre>
                   31540: 
                   31541:   <p>If an <code><a href="the-hr-element.html#the-hr-element">hr</a></code> element has either a <code title="attr-hr-color"><a href="#attr-hr-color">color</a></code> attribute or a <code title="attr-hr-noshade"><a href="#attr-hr-noshade">noshade</a></code> attribute, and furthermore
                   31542:   also has a <code title="attr-hr-size"><a href="#attr-hr-size">size</a></code> attribute, and
                   31543:   parsing that attribute's value using the <a href="common-microsyntaxes.html#rules-for-parsing-non-negative-integers">rules for parsing
                   31544:   non-negative integers</a> doesn't generate an error, then the
                   31545:   user agent is expected to use the parsed value divided by two as a
                   31546:   pixel length for <a href="#presentational-hints">presentational hints</a> for the properties
                   31547:   'border-top-width', 'border-right-width', 'border-bottom-width', and
                   31548:   'border-left-width' on the element.</p>
                   31549: 
                   31550:   <p>Otherwise, if an <code><a href="the-hr-element.html#the-hr-element">hr</a></code> element has neither a <code title="attr-hr-color"><a href="#attr-hr-color">color</a></code> attribute nor a <code title="attr-hr-noshade"><a href="#attr-hr-noshade">noshade</a></code> attribute, but does have a
                   31551:   <code title="attr-hr-size"><a href="#attr-hr-size">size</a></code> attribute, and parsing that
                   31552:   attribute's value using the <a href="common-microsyntaxes.html#rules-for-parsing-non-negative-integers">rules for parsing non-negative
                   31553:   integers</a> doesn't generate an error, then: if the parsed value
                   31554:   is one, then the user agent is expected to use the attribute as a
                   31555:   <a href="#presentational-hints" title="presentational hints">presentational hint</a>
                   31556:   setting the element's 'border-bottom-width' to 0; otherwise, if the
                   31557:   parsed value is greater than one, then the user agent is expected to
                   31558:   use the parsed value minus two as a pixel length for
                   31559:   <a href="#presentational-hints">presentational hints</a> for the 'height' property on the
                   31560:   element.</p>
                   31561: 
                   31562:   <p>The <code title="attr-hr-width"><a href="#attr-hr-width">width</a></code> attribute on an
                   31563:   <code><a href="the-hr-element.html#the-hr-element">hr</a></code> element <a href="#maps-to-the-dimension-property">maps to the dimension property</a>
                   31564:   'width' on the element.</p>
                   31565: 
                   31566:   <p>When an <code><a href="the-hr-element.html#the-hr-element">hr</a></code> element has a <code title="attr-hr-color"><a href="#attr-hr-color">color</a></code> attribute, its value is expected
                   31567:   to be parsed using the <a href="common-microsyntaxes.html#rules-for-parsing-a-legacy-color-value">rules for parsing a legacy color
                   31568:   value</a>, and if that does not return an error, the user agent
                   31569:   is expected to treat the attribute as a <a href="#presentational-hints" title="presentational
                   31570:   hints">presentational hint</a> setting the element's 'color'
                   31571:   property to the resulting color.</p>
                   31572: 
                   31573: 
                   31574: 
                   31575:   <h4 id="the-fieldset-element-0"><span class="secno">10.3.12 </span>The <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code> element</h4>
                   31576: 
                   31577:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31578: 
                   31579: fieldset {
                   31580:   margin-left: 2px; margin-right: 2px;
                   31581:   border: groove 2px ThreeDFace;
                   31582:   padding: 0.35em 0.625em 0.75em;
                   31583: }</pre>
                   31584: 
                   31585:   <p>The <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code> element is expected to establish a new
                   31586:   block formatting context.</p>
                   31587: 
                   31588:   <p>If the <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code> element has a child that matches the
                   31589:   conditions in the list below, then the first such child is the
                   31590:   <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code> element's <dfn id="rendered-legend">rendered legend</dfn>:</p>
                   31591: 
                   31592:   <ul class="brief"><li>The child is a <code><a href="the-legend-element.html#the-legend-element">legend</a></code> element.</li>
                   31593: 
                   31594:    <li>The child is not out-of-flow (e.g. not absolutely positioned or floated).</li>
                   31595: 
                   31596:    <li>The child is generating a box (e.g. it is not 'display:none').</li>
                   31597: 
                   31598:   </ul><p>A <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code> element's <a href="#rendered-legend">rendered legend</a>,
                   31599:   if any, is expected to be rendered over the top border edge of the
                   31600:   <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code> element as a 'block' box (overriding any
                   31601:   explicit 'display' value). In the absence of an explicit width, the
                   31602:   box should shrink-wrap. If the <code><a href="the-legend-element.html#the-legend-element">legend</a></code> element in
                   31603:   question has an <code title="attr-legend-align"><a href="#attr-legend-align">align</a></code>
                   31604:   attribute, and its value is an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a>
                   31605:   match for one of the strings in the first column of the following
                   31606:   table, then the <code><a href="the-legend-element.html#the-legend-element">legend</a></code> is expected to be rendered
                   31607:   horizontally aligned over the border edge in the position given in
                   31608:   the corresponding cell on the same row in the second column. If the
                   31609:   attribute is absent or has a value that doesn't match any of the
                   31610:   cases in the table, then the position is expected to be on the right
                   31611:   if the 'direction' property on this element has a computed value of
                   31612:   'rtl', and on the left otherwise.</p>
                   31613: 
                   31614:   <table><thead><tr><th>Attribute value
                   31615:      </th><th>Alignment position
                   31616:    </th></tr></thead><tbody><tr><td><code title="">left</code>
                   31617:      </td><td>On the left
                   31618:     </td></tr><tr><td><code title="">right</code>
                   31619:      </td><td>On the right
                   31620:     </td></tr><tr><td><code title="">center</code>
                   31621:      </td><td>In the middle
                   31622:   </td></tr></tbody></table><h3 id="replaced-elements"><span class="secno">10.4 </span>Replaced elements</h3>
                   31623: 
                   31624:   <h4 id="embedded-content-1"><span class="secno">10.4.1 </span>Embedded content</h4>
                   31625: 
                   31626:   <p>The <code><a href="the-embed-element.html#the-embed-element">embed</a></code>, <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>, and
                   31627:   <code><a href="the-video-element.html#the-video-element">video</a></code> elements are expected to be treated as replaced
                   31628:   elements.</p>
                   31629: 
                   31630:   <p>A <code><a href="the-canvas-element.html#the-canvas-element">canvas</a></code> element that <a href="#represents">represents</a>
                   31631:   <a href="content-models.html#embedded-content-2">embedded content</a> is expected to be treated as a
                   31632:   replaced element. Other <code><a href="the-canvas-element.html#the-canvas-element">canvas</a></code> elements are expected to
                   31633:   be treated as ordinary elements in the rendering model.</p>
                   31634: 
                   31635:   <p>An <code><a href="the-object-element.html#the-object-element">object</a></code> element that <a href="#represents">represents</a> an
                   31636:   image, plugin, or <a href="#nested-browsing-context">nested browsing context</a> is expected
                   31637:   to be treated as a replaced element. Other <code><a href="the-object-element.html#the-object-element">object</a></code>
                   31638:   elements are expected to be treated as ordinary elements in the
                   31639:   rendering model.</p>
                   31640: 
                   31641:   <p>An <code><a href="#the-applet-element">applet</a></code> element that <a href="#represents">represents</a> a
                   31642:   <a href="infrastructure.html#plugin">plugin</a> is expected to be treated as a replaced
                   31643:   element. Other <code><a href="#the-applet-element">applet</a></code> elements are expected to be
                   31644:   treated as ordinary elements in the rendering model.</p>
                   31645: 
                   31646:   <p>The <code><a href="the-audio-element.html#the-audio-element">audio</a></code> element, when it is <a href="media-elements.html#expose-a-user-interface-to-the-user" title="expose a
                   31647:   user interface to the user">exposing a user interface</a>, is
                   31648:   expected to be treated as a replaced element about one line high, as
                   31649:   wide as is necessary to expose the user agent's user interface
                   31650:   features. When an <code><a href="the-audio-element.html#the-audio-element">audio</a></code> element is not <a href="media-elements.html#expose-a-user-interface-to-the-user" title="expose a user interface to the user">exposing a user
                   31651:   interface</a>, the user agent is expected to force its 'display'
                   31652:   property to compute to 'none', irrespective of CSS rules.</p>
                   31653: 
                   31654:   <p>Whether a <code><a href="the-video-element.html#the-video-element">video</a></code> element is <a href="media-elements.html#expose-a-user-interface-to-the-user" title="expose a
                   31655:   user interface to the user">exposing a user interface</a> is not
                   31656:   expected to affect the size of the rendering; controls are expected
                   31657:   to be overlaid above the page content without causing any layout
                   31658:   changes, and are expected to disappear when the user does not need
                   31659:   them.</p>
                   31660: 
                   31661:   <p>When a <code><a href="the-video-element.html#the-video-element">video</a></code> element represents a poster frame or
                   31662:   frame of video, the poster frame or frame of video is expected to be
                   31663:   rendered at the largest size that maintains the aspect ratio of that
                   31664:   poster frame or frame of video without being taller or wider than
                   31665:   the <code><a href="the-video-element.html#the-video-element">video</a></code> element itself, and is expected to be
                   31666:   centered in the <code><a href="the-video-element.html#the-video-element">video</a></code> element.</p>
                   31667: 
                   31668:   <p>Any subtitles or captions are expected to be overlayed directly
                   31669:   on top of their <code><a href="the-video-element.html#the-video-element">video</a></code> element, as defined by the
                   31670:   relevant rendering rules; for <a href="infrastructure.html#webvtt">WebVTT</a>, those are the
                   31671:   <a href="infrastructure.html#webvtt-cue-text-rendering-rules">WebVTT cue text rendering rules</a>. <a href="#refsWEBVTT">[WEBVTT]</a></p>
                   31672: 
                   31673:   <p>When the user agent starts <a href="media-elements.html#expose-a-user-interface-to-the-user" title="expose a user interface
                   31674:   to the user">exposing a user interface</a> for a
                   31675:   <code><a href="the-video-element.html#the-video-element">video</a></code> element, the user agent should run the
                   31676:   <a href="media-elements.html#rules-for-updating-the-text-track-rendering">rules for updating the text track rendering</a> of each of
                   31677:   the <a href="media-elements.html#text-track" title="text track">text tracks</a> in the
                   31678:   <code><a href="the-video-element.html#the-video-element">video</a></code> element's <a href="media-elements.html#list-of-text-tracks">list of text tracks</a> that
                   31679:   are <a href="media-elements.html#text-track-showing" title="text track showing">showing</a> (e.g., for <a href="media-elements.html#text-track" title="text track">text tracks</a> based on <a href="infrastructure.html#webvtt">WebVTT</a>,
                   31680:   the <a href="infrastructure.html#rules-for-updating-the-display-of-webvtt-text-tracks">rules for updating the display of WebVTT text
                   31681:   tracks</a>). <a href="#refsWEBVTT">[WEBVTT]</a></p>
                   31682: 
                   31683:   <p class="note">Resizing <code><a href="the-video-element.html#the-video-element">video</a></code> and <code><a href="the-canvas-element.html#the-canvas-element">canvas</a></code>
                   31684:   elements does not interrupt video playback or clear the canvas.</p>
                   31685: 
                   31686:   <hr><p>The following CSS rules are expected to apply:</p>
                   31687: 
                   31688:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31689: 
                   31690: iframe:not([seamless]) { border: 2px inset; }
                   31691: iframe[seamless] { display: block; }
                   31692: <span id="video-object-fit">video { object-fit: contain; }</span></pre>
                   31693: 
                   31694:   </div>
                   31695: 
                   31696: 
                   31697: 
                   31698: 
                   31699: <!--TOPIC:Rendering-->
                   31700:   <div class="impl">
                   31701: 
                   31702:   <h4 id="images"><span class="secno">10.4.2 </span>Images</h4>
                   31703: 
                   31704:   <p>When an <code><a href="the-img-element.html#the-img-element">img</a></code> element or an <code><a href="the-input-element.html#the-input-element">input</a></code> element
                   31705:   when its <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in
                   31706:   the <a href="states-of-the-type-attribute.html#image-button-state-(type=image)" title="attr-input-type-image">Image Button</a> state
                   31707:   <a href="#represents">represents</a> an image, it is expected to be treated as a
                   31708:   replaced element.</p>
                   31709: 
                   31710:   <p>When an <code><a href="the-img-element.html#the-img-element">img</a></code> element or an <code><a href="the-input-element.html#the-input-element">input</a></code> element
                   31711:   when its <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in
                   31712:   the <a href="states-of-the-type-attribute.html#image-button-state-(type=image)" title="attr-input-type-image">Image Button</a> state
                   31713:   does not <a href="#represents" title="represents">represent</a> an image, but the
                   31714:   element already has intrinsic dimensions (e.g. from the
                   31715:   <a href="dimension-attributes.html#dimension-attributes">dimension attributes</a> or CSS rules), and either the user
                   31716:   agent has reason to believe that the image will become <i title="img-available"><a href="the-img-element.html#img-available">available</a></i><!--input-img-available also-->
                   31717:   and be rendered in due course or the <code><a href="dom.html#document">Document</a></code> is in
                   31718:   <a href="infrastructure.html#quirks-mode">quirks mode</a>, the element is expected to be treated as a
                   31719:   replaced element whose content is the text that the element
                   31720:   represents, if any, optionally alongside an icon indicating that the
                   31721:   image is being obtained. For <code><a href="the-input-element.html#the-input-element">input</a></code> elements, the text
                   31722:   is expected to appear button-like to indicate that the element is a
                   31723:   <a href="forms.html#concept-button" title="concept-button">button</a>.</p>
                   31724: 
                   31725:   <p>When an <code><a href="the-img-element.html#the-img-element">img</a></code> element <a href="#represents">represents</a> some
                   31726:   text and the user agent does not expect this to change, the element
                   31727:   is expected to be treated as a non-replaced phrasing element whose
                   31728:   content is the text, optionally with an icon indicating that an
                   31729:   image is missing.</p>
                   31730: 
                   31731:   <p>When an <code><a href="the-img-element.html#the-img-element">img</a></code> element <a href="#represents">represents</a> nothing
                   31732:   and the user agent does not expect this to change, the element is
                   31733:   expected to not be rendered at all.</p>
                   31734: 
                   31735:   <p>When an <code><a href="the-img-element.html#the-img-element">img</a></code> element might be a key part of the
                   31736:   content, but neither the image nor any kind of alternative text is
                   31737:   available, and the user agent does not expect this to change, the
                   31738:   element is expected to be treated as a non-replaced phrasing element
                   31739:   whose content is an icon indicating that an image is missing.</p>
                   31740:   <!-- there's also a should requirement for this case in the <img>
                   31741:   section itself -->
                   31742: 
                   31743:   <p>When an <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#image-button-state-(type=image)" title="attr-input-type-image">Image Button</a> state does not
                   31744:   <a href="#represents" title="represents">represent</a> an image and the user
                   31745:   agent does not expect this to change, the element is expected to be
                   31746:   treated as a replaced element consisting of a button whose content
                   31747:   is the element's alternative text. The intrinsic dimensions of the
                   31748:   button are expected to be about one line in height and whatever
                   31749:   width is necessary to render the text on one line.</p>
                   31750: 
                   31751:   <p>The icons mentioned above are expected to be relatively small so
                   31752:   as not to disrupt most text but be easily clickable. In a visual
                   31753:   environment, for instance, icons could be 16 pixels by 16 pixels
                   31754:   square, or 1em by 1em if the images are scalable. In an audio
                   31755:   environment, the icon could be a short bleep. The icons are intended
                   31756:   to indicate to the user that they can be used to get to whatever
                   31757:   options the UA provides for images, and, where appropriate, are
                   31758:   expected to provide access to the context menu that would have come
                   31759:   up if the user interacted with the actual image.</p>
                   31760: 
                   31761:   <hr><p>All animated images with the same <a href="urls.html#absolute-url">absolute URL</a> and
                   31762:   the same image data are expected to be rendered synchronized to the
                   31763:   same timeline as a group, with the timeline starting at the time of
                   31764:   the most recent addition to the group.</p>
                   31765: 
                   31766:   <p class="note">In other words, the animation loop of an animated
                   31767:   image is restarted each time another image with the same
                   31768:   <a href="urls.html#absolute-url">absolute URL</a> and image data begins to animate, e.g.
                   31769:   after being inserted into the document.</p>
                   31770: 
                   31771:   <hr><p>The following CSS rules are expected to apply when the
                   31772:   <code><a href="dom.html#document">Document</a></code> is in <a href="infrastructure.html#quirks-mode">quirks mode</a>:</p>
                   31773: 
                   31774:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31775: 
                   31776: img[align=left i] { margin-right: 3px; }
                   31777: img[align=right i] { margin-left: 3px; }</pre>
                   31778: 
                   31779:   </div>
                   31780: 
                   31781: 
                   31782:   <div class="impl">
                   31783: 
                   31784:   <h4 id="attributes-for-embedded-content-and-images"><span class="secno">10.4.3 </span>Attributes for embedded content and images</h4>
                   31785: 
                   31786:   <p>The following CSS rules are expected to apply as
                   31787:   <a href="#presentational-hints">presentational hints</a>:</p>
                   31788: 
                   31789:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31790: 
                   31791: iframe[frameborder=0], iframe[frameborder=no i] { border: none; }
                   31792: 
                   31793: applet[align=left i], embed[align=left i], iframe[align=left i],
                   31794: img[align=left i], input[type=image i][align=left i], object[align=left i] {
                   31795:   float: left;
                   31796: }
                   31797: 
                   31798: applet[align=right i], embed[align=right i], iframe[align=right i],
                   31799: img[align=right i], input[type=image i][align=right i], object[align=right i] {
                   31800:   float: right;
                   31801: }
                   31802: 
                   31803: applet[align=top i], embed[align=top i], iframe[align=top i],
                   31804: img[align=top i], input[type=image i][align=top i], object[align=top i] {
                   31805:   vertical-align: top;
                   31806: }
                   31807: 
                   31808: applet[align=baseline i], embed[align=baseline i], iframe[align=baseline i],
                   31809: img[align=baseline i], input[type=image i][align=baseline i], object[align=baseline i] {
                   31810:   vertical-align: baseline;
                   31811: }
                   31812: 
                   31813: applet[align=texttop i], embed[align=texttop i], iframe[align=texttop i],
                   31814: img[align=texttop i], input[type=image i][align=texttop i], object[align=texttop i] {
                   31815:   vertical-align: text-top;
                   31816: }
                   31817: 
                   31818: applet[align=absmiddle i], embed[align=absmiddle i], iframe[align=absmiddle i],
                   31819: img[align=absmiddle i], input[type=image i][align=absmiddle i], object[align=absmiddle i],
                   31820: applet[align=abscenter i], embed[align=abscenter i], iframe[align=abscenter i],
                   31821: img[align=abscenter i], input[type=image i][align=abscenter i], object[align=abscenter i] {
                   31822:   vertical-align: middle;
                   31823: }
                   31824: 
                   31825: applet[align=bottom i], embed[align=bottom i], iframe[align=bottom i],
                   31826: img[align=bottom i], input[type=image i][align=bottom i],
                   31827: object[align=bottom i] {
                   31828:   vertical-align: bottom;
                   31829: }</pre>
                   31830: 
                   31831:   <p>When an <code><a href="#the-applet-element">applet</a></code>, <code><a href="the-embed-element.html#the-embed-element">embed</a></code>,
                   31832:   <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>, <code><a href="the-img-element.html#the-img-element">img</a></code>, or <code><a href="the-object-element.html#the-object-element">object</a></code>
                   31833:   element, or an <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#image-button-state-(type=image)" title="attr-input-type-image">Image Button</a> state, has an
                   31834:   <code title="attr-dim-align">align</code> attribute whose value is
                   31835:   an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">center</code>" or the string "<code title="">middle</code>", the user agent is expected to act as if the
                   31836:   element's 'vertical-align' property was set to a value that aligns
                   31837:   the vertical middle of the element with the parent element's
                   31838:   baseline.</p>
                   31839: 
                   31840:   <p>The <code title="attr-dim-hspace">hspace</code> attribute of
                   31841:   <code><a href="#the-applet-element">applet</a></code>, <code><a href="the-embed-element.html#the-embed-element">embed</a></code>, <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>,
                   31842:   <code><a href="the-img-element.html#the-img-element">img</a></code>, or <code><a href="the-object-element.html#the-object-element">object</a></code> elements, and
                   31843:   <code><a href="the-input-element.html#the-input-element">input</a></code> elements with a <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute in the <a href="states-of-the-type-attribute.html#image-button-state-(type=image)" title="attr-input-type-image">Image Button</a> state, <a href="#maps-to-the-dimension-property" title="maps to the dimension property">maps to the dimension
                   31844:   properties</a> 'margin-left' and 'margin-right' on the
                   31845:   element.</p>
                   31846: 
                   31847:   <p>The <code title="attr-dim-vspace">vspace</code> attribute of
                   31848:   <code><a href="#the-applet-element">applet</a></code>, <code><a href="the-embed-element.html#the-embed-element">embed</a></code>, <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>,
                   31849:   <code><a href="the-img-element.html#the-img-element">img</a></code>, or <code><a href="the-object-element.html#the-object-element">object</a></code> elements, and
                   31850:   <code><a href="the-input-element.html#the-input-element">input</a></code> elements with a <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute in the <a href="states-of-the-type-attribute.html#image-button-state-(type=image)" title="attr-input-type-image">Image Button</a> state, <a href="#maps-to-the-dimension-property" title="maps to the dimension property">maps to the dimension
                   31851:   properties</a> 'margin-top' and 'margin-bottom' on the
                   31852:   element.</p>
                   31853: 
                   31854:   <p>When an <code><a href="the-img-element.html#the-img-element">img</a></code> element, <code><a href="the-object-element.html#the-object-element">object</a></code> element, or
                   31855:   <code><a href="the-input-element.html#the-input-element">input</a></code> element with a <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute in the <a href="states-of-the-type-attribute.html#image-button-state-(type=image)" title="attr-input-type-image">Image Button</a> state is contained
                   31856:   within a <a href="#hyperlink">hyperlink</a> and has a <code title="attr-dim-border">border</code> attribute whose value, when
                   31857:   parsed using the <a href="common-microsyntaxes.html#rules-for-parsing-non-negative-integers">rules for parsing non-negative
                   31858:   integers</a>, is found to be a number greater than zero, the user
                   31859:   agent is expected to use the parsed value for eight
                   31860:   <a href="#presentational-hints">presentational hints</a>: four setting the parsed value as
                   31861:   a pixel length for the element's 'border-top-width',
                   31862:   'border-right-width', 'border-bottom-width', and 'border-left-width'
                   31863:   properties, and four setting the element's 'border-top-style',
                   31864:   'border-right-style', 'border-bottom-style', and 'border-left-style'
                   31865:   properties to the value 'solid'.</p>
                   31866: 
                   31867:   <p id="dimRendering">The <code title="attr-dim-width"><a href="dimension-attributes.html#attr-dim-width">width</a></code>
                   31868:   and <code title="attr-dim-height"><a href="dimension-attributes.html#attr-dim-height">height</a></code> attributes on
                   31869:   <code><a href="#the-applet-element">applet</a></code>, <code><a href="the-embed-element.html#the-embed-element">embed</a></code>, <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>,
                   31870:   <code><a href="the-img-element.html#the-img-element">img</a></code>, <code><a href="the-object-element.html#the-object-element">object</a></code> or <code><a href="the-video-element.html#the-video-element">video</a></code>
                   31871:   elements, and <code><a href="the-input-element.html#the-input-element">input</a></code> elements with a <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute in the <a href="states-of-the-type-attribute.html#image-button-state-(type=image)" title="attr-input-type-image">Image Button</a> state, <a href="#maps-to-the-dimension-property" title="maps to the dimension property">map to the dimension
                   31872:   properties</a> 'width' and 'height' on the element
                   31873:   respectively.</p>
                   31874: 
                   31875:   </div>
                   31876: 
                   31877: 
                   31878:   <div class="impl">
                   31879: 
                   31880:   <h4 id="image-maps-0"><span class="secno">10.4.4 </span>Image maps</h4>
                   31881: 
                   31882:   <p>Shapes on an <a href="image-maps.html#image-map">image map</a> are expected to act, for the
                   31883:   purpose of the CSS cascade, as elements independent of the original
                   31884:   <code><a href="the-area-element.html#the-area-element">area</a></code> element that happen to match the same style rules
                   31885:   but inherit from the <code><a href="the-img-element.html#the-img-element">img</a></code> or <code><a href="the-object-element.html#the-object-element">object</a></code>
                   31886:   element.</p>
                   31887: 
                   31888:   <p>For the purposes of the rendering, only the 'cursor' property is
                   31889:   expected to have any effect on the shape.</p>
                   31890: 
                   31891:   <p class="example">Thus, for example, if an <code><a href="the-area-element.html#the-area-element">area</a></code>
                   31892:   element has a <code title="attr-style"><a href="global-attributes.html#the-style-attribute">style</a></code> attribute that
                   31893:   sets the 'cursor' property to 'help', then when the user designates
                   31894:   that shape, the cursor would change to a Help cursor.</p>
                   31895: 
                   31896:   <p class="example">Similarly, if an <code><a href="the-area-element.html#the-area-element">area</a></code> element had a
                   31897:   CSS rule that set its 'cursor' property to 'inherit' (or if no rule
                   31898:   setting the 'cursor' property matched the element at all), the
                   31899:   shape's cursor would be inherited from the <code><a href="the-img-element.html#the-img-element">img</a></code> or
                   31900:   <code><a href="the-object-element.html#the-object-element">object</a></code> element of the <a href="image-maps.html#image-map">image map</a>, not from
                   31901:   the parent of the <code><a href="the-area-element.html#the-area-element">area</a></code> element.</p>
                   31902: 
                   31903:   </div>
                   31904: 
                   31905: 
                   31906:   <div class="impl">
                   31907: 
                   31908:   <h4 id="toolbars-0"><span class="secno">10.4.5 </span>Toolbars</h4>
                   31909: 
                   31910:   <p>When a <code><a href="#the-menu-element">menu</a></code> element's <code title="attr-menu-type"><a href="#attr-menu-type">type</a></code> attribute is in the <a href="#toolbar-state" title="toolbar state">toolbar</a> state, the element is
                   31911:   expected to be treated as a replaced element with a height about two
                   31912:   lines high and a width derived from the contents of the element.</p>
                   31913: 
                   31914:   <p>The element is expected to have, by default, the appearance of a
                   31915:   toolbar on the user agent's platform. It is expected to contain the
                   31916:   menu that is <a href="#building-menus-and-toolbars" title="building menus and toolbars">built</a>
                   31917:   from the element.</p>
                   31918: 
                   31919:   </div>
                   31920: 
                   31921: 
                   31922:   <div class="impl">
                   31923: 
                   31924:   <h3 id="bindings"><span class="secno">10.5 </span>Bindings</h3>
                   31925: 
                   31926:   <h4 id="introduction-9"><span class="secno">10.5.1 </span>Introduction</h4>
                   31927: 
                   31928:   <p>A number of elements have their rendering defined in terms of the
                   31929:   'binding' property. <a href="#refsBECSS">[BECSS]</a></p>
                   31930: 
                   31931:   <p>The CSS snippets below set the 'binding' property to a
                   31932:   user-agent-defined value, represented below by keywords like <code title=""><i title="">button</i></code>. The rules then described for
                   31933:   these bindings are only expected to apply if the element's 'binding'
                   31934:   property has not been overridden (e.g. by the author) to have
                   31935:   another value.</p>
                   31936: 
                   31937:   <p>Exactly how the bindings are implemented is not specified by this
                   31938:   specification. User agents are encouraged to make their bindings set
                   31939:   the 'appearance' CSS property appropriately to achieve
                   31940:   platform-native appearances for widgets, and are expected to
                   31941:   implement any relevant animations, etc, that are appropriate for the
                   31942:   platform. <a href="#refsCSSUI">[CSSUI]</a></p>
                   31943: 
                   31944:   </div>
                   31945: 
                   31946: 
                   31947:   <div class="impl">
                   31948: 
                   31949:   <h4 id="the-button-element-0"><span class="secno">10.5.2 </span>The <code><a href="the-button-element.html#the-button-element">button</a></code> element</h4>
                   31950: 
                   31951:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31952: 
                   31953: button { binding: <i title="">button</i>; }</pre>
                   31954: 
                   31955:   <p>When the <i title="">button</i> binding applies to a
                   31956:   <code><a href="the-button-element.html#the-button-element">button</a></code> element, the element is expected to render as an
                   31957:   'inline-block' box rendered as a button whose contents are the
                   31958:   contents of the element.</p>
                   31959: 
                   31960:   </div>
                   31961: 
                   31962: 
                   31963:   <div class="impl">
                   31964: 
                   31965:   <h4 id="the-details-element-0"><span class="secno">10.5.3 </span>The <code><a href="#the-details-element">details</a></code> element</h4>
                   31966: 
                   31967:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   31968: 
                   31969: details { binding: <i title="">details</i>; }</pre>
                   31970: 
                   31971:   <p>When the <i title="">details</i> binding applies to a
                   31972:   <code><a href="#the-details-element">details</a></code> element, the element is expected to render as a
                   31973:   'block' box with its 'padding-left' property set to '40px' for
                   31974:   left-to-right elements (<a href="#ltr-specific">LTR-specific</a>) and with its
                   31975:   'padding-right' property set to '40px' for right-to-left
                   31976:   elements. The element's shadow tree is expected to take the
                   31977:   element's first child <code><a href="#the-summary-element">summary</a></code> element, if any, and
                   31978:   place it in a first 'block' box container, and then take the
                   31979:   element's remaining descendants, if any, and place them in a second
                   31980:   'block' box container.</p>
                   31981: 
                   31982:   <p>The first container is expected to contain at least one line box,
                   31983:   and that line box is expected to contain a disclosure widget
                   31984:   (typically a triangle), horizontally positioned within the left
                   31985:   padding of the <code><a href="#the-details-element">details</a></code> element. That widget is expected
                   31986:   to allow the user to request that the details be shown or
                   31987:   hidden.</p>
                   31988: 
                   31989:   <p>The second container is expected to have its 'overflow' property
                   31990:   set to 'hidden'. When the <code><a href="#the-details-element">details</a></code> element does not have
                   31991:   an <code title="attr-details-open"><a href="#attr-details-open">open</a></code> attribute, this
                   31992:   second container is expected to be removed from the rendering.</p>
                   31993: 
                   31994:   <!-- http://mail.gnome.org/archives/usability/2006-June/msg00015.html -->
                   31995: 
                   31996:   </div>
                   31997: 
                   31998:   <div class="impl">
                   31999: 
                   32000:   <h4 id="the-input-element-as-a-text-entry-widget"><span class="secno">10.5.4 </span>The <code><a href="the-input-element.html#the-input-element">input</a></code> element as a text entry widget</h4>
                   32001: 
                   32002:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   32003: 
                   32004: input { binding: <i title="">input-textfield</i>; }
                   32005: input[type=password i] { binding: <i title="">input-password</i>; }
                   32006: /* later rules override this for other values of type="" */</pre>
                   32007: 
                   32008:   <p>When the <i title="">input-textfield</i> binding applies to an
                   32009:   <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#text-(type=text)-state-and-search-state-(type=search)" title="attr-input-type-text">Text</a>, <a href="states-of-the-type-attribute.html#text-(type=text)-state-and-search-state-(type=search)" title="attr-input-type-search">Search</a>, <a href="states-of-the-type-attribute.html#telephone-state-(type=tel)" title="attr-input-type-tel">Telephone</a>, <a href="states-of-the-type-attribute.html#url-state-(type=url)" title="attr-input-type-url">URL</a>, or <a href="states-of-the-type-attribute.html#e-mail-state-(type=email)" title="attr-input-type-email">E-mail</a> state, the element is
                   32010:   expected to render as an 'inline-block' box rendered as a text
                   32011:   field.</p>
                   32012: 
                   32013:   <p>When the <i title="">input-password</i> binding applies, to an
                   32014:   <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#password-state-(type=password)" title="attr-input-type-password">Password</a> state, the element
                   32015:   is expected to render as an 'inline-block' box rendered as a text
                   32016:   field whose contents are obscured.</p>
                   32017: 
                   32018:   <p>If an <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in one of the above
                   32019:   states has a <code title="attr-input-size"><a href="common-input-element-attributes.html#attr-input-size">size</a></code> attribute,
                   32020:   and parsing that attribute's value using the <a href="common-microsyntaxes.html#rules-for-parsing-non-negative-integers">rules for parsing
                   32021:   non-negative integers</a> doesn't generate an error, then the
                   32022:   user agent is expected to use the attribute as a <a href="#presentational-hints" title="presentational hints">presentational hint</a> for the
                   32023:   'width' property on the element, with the value obtained from
                   32024:   applying the <a href="#converting-a-character-width-to-pixels">converting a character width to pixels</a>
                   32025:   algorithm to the value of the attribute.</p>
                   32026: 
                   32027:   <p>If an <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in one of the above
                   32028:   states does <em>not</em> have a <code title="attr-input-size"><a href="common-input-element-attributes.html#attr-input-size">size</a></code> attribute, then the user agent
                   32029:   is expected to act as if it had a user-agent-level style sheet rule
                   32030:   setting the 'width' property on the element to the value obtained
                   32031:   from applying the <a href="#converting-a-character-width-to-pixels">converting a character width to
                   32032:   pixels</a> algorithm to the number 20.</p>
                   32033: 
                   32034:   <p>The <dfn id="converting-a-character-width-to-pixels">converting a character width to pixels</dfn> algorithm
                   32035:   returns <span title="">(<var title="">size</var>-1)&#215;<var title="">avg</var>&#160;+&#160;<var title="">max</var></span>, where
                   32036:   <var title="">size</var> is the character width to convert, <var title="">avg</var> is the average character width of the primary
                   32037:   font for the element for which the algorithm is being run, in
                   32038:   pixels, and <var title="">max</var> is the maximum character width
                   32039:   of that same font, also in pixels. (The element's 'letter-spacing'
                   32040:   property does not affect the result.)</p>
                   32041: 
                   32042:   </div>
                   32043: 
                   32044: 
                   32045:   <div class="impl">
                   32046: 
                   32047:   <h4 id="the-input-element-as-domain-specific-widgets"><span class="secno">10.5.5 </span>The <code><a href="the-input-element.html#the-input-element">input</a></code> element as domain-specific widgets</h4>
                   32048: 
                   32049:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   32050: 
                   32051: input[type=datetime i] { binding: <i title="">input-datetime</i>; }
                   32052: input[type=date i] { binding: <i title="">input-date</i>; }
                   32053: input[type=month i] { binding: <i title="">input-month</i>; }
                   32054: input[type=week i] { binding: <i title="">input-week</i>; }
                   32055: input[type=time i] { binding: <i title="">input-time</i>; }
                   32056: input[type=datetime-local i] { binding: <i title="">input-datetime-local</i>; }
                   32057: input[type=number i] { binding: <i title="">input-number</i>; }</pre>
                   32058: 
                   32059:   <p>When the <i title="">input-datetime</i> binding applies to an
                   32060:   <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#date-and-time-state-(type=datetime)" title="attr-input-type-datetime">Date and Time</a> state, the
                   32061:   element is expected to render as an 'inline-block' box depicting a
                   32062:   Date and Time control.</p>
                   32063: 
                   32064:   <p>When the <i title="">input-date</i> binding applies to an
                   32065:   <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#date-state-(type=date)" title="attr-input-type-date">Date</a> state, the element is
                   32066:   expected to render as an 'inline-block' box depicting a Date
                   32067:   control.</p>
                   32068: 
                   32069:   <p>When the <i title="">input-month</i> binding applies to an
                   32070:   <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#month-state-(type=month)" title="attr-input-type-month">Month</a> state, the element is
                   32071:   expected to render as an 'inline-block' box depicting a Month
                   32072:   control.</p>
                   32073: 
                   32074:   <p>When the <i title="">input-week</i> binding applies to an
                   32075:   <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#week-state-(type=week)" title="attr-input-type-week">Week</a> state, the element is
                   32076:   expected to render as an 'inline-block' box depicting a Week
                   32077:   control.</p>
                   32078: 
                   32079:   <p>When the <i title="">input-time</i> binding applies to an
                   32080:   <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#time-state-(type=time)" title="attr-input-type-time">Time</a> state, the element is
                   32081:   expected to render as an 'inline-block' box depicting a Time
                   32082:   control.</p>
                   32083: 
                   32084:   <p>When the <i title="">input-datetime-local</i> binding applies to an
                   32085:   <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#local-date-and-time-state-(type=datetime-local)" title="attr-input-type-datetime-local">Local Date and Time</a>
                   32086:   state, the element is expected to render as an 'inline-block' box
                   32087:   depicting a Local Date and Time control.</p>
                   32088: 
                   32089:   <p>When the <i title="">input-number</i> binding applies to an
                   32090:   <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#number-state-(type=number)" title="attr-input-type-number">Number</a> state, the element is
                   32091:   expected to render as an 'inline-block' box depicting a Number
                   32092:   control.</p>
                   32093: 
                   32094:   <p>These controls are all expected to be about one line high, and
                   32095:   about as wide as necessary to show the widest possible value.</p>
                   32096: 
                   32097:   </div>
                   32098: 
                   32099: 
                   32100:   <div class="impl">
                   32101: 
                   32102:   <h4 id="the-input-element-as-a-range-control"><span class="secno">10.5.6 </span>The <code><a href="the-input-element.html#the-input-element">input</a></code> element as a range control</h4>
                   32103: 
                   32104:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   32105: 
                   32106: input[type=range i] { binding: <i title="">input-range</i>; }</pre>
                   32107: 
                   32108:   <p>When the <i title="">input-range</i> binding applies to an
                   32109:   <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#range-state-(type=range)" title="attr-input-type-range">Range</a> state, the element is
                   32110:   expected to render as an 'inline-block' box depicting a slider
                   32111:   control.</p>
                   32112: 
                   32113:   <p>When the control is wider than it is tall (or square), the
                   32114:   control is expected to be a horizontal slider, with the lowest value
                   32115:   on the right if the 'direction' property on this element has a
                   32116:   computed value of 'rtl', and on the left otherwise. When the control
                   32117:   is taller than it is wide, it is expected to be a vertical slider,
                   32118:   with the lowest value on the bottom.</p>
                   32119: 
                   32120:   <p>Predefined suggested values (provided by the <code title="attr-input-list"><a href="common-input-element-attributes.html#attr-input-list">list</a></code> attribute) are expected to be
                   32121:   shown as tick marks on the slider, which the slider can snap to.</p>
                   32122: 
                   32123:   <p>User agents are expected to use the used value of the 'direction'
                   32124:   property on the element to determine the direction in which the
                   32125:   slider operates. Typically, a left-to-right ('ltr') horizontal
                   32126:   control would have the lowest value on the left and the highest
                   32127:   value on the right, and vice versa.</p>
                   32128: 
                   32129:   </div>
                   32130: 
                   32131: 
                   32132:   <div class="impl">
                   32133: 
                   32134:   <h4 id="the-input-element-as-a-color-well"><span class="secno">10.5.7 </span>The <code><a href="the-input-element.html#the-input-element">input</a></code> element as a color well</h4>
                   32135: 
                   32136:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   32137: 
                   32138: input[type=color i] { binding: <i title="">input-color</i>; }</pre>
                   32139: 
                   32140:   <p>When the <i title="">input-color</i> binding applies to an
                   32141:   <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#color-state-(type=color)" title="attr-input-type-color">Color</a> state, the element is
                   32142:   expected to render as an 'inline-block' box depicting a color well,
                   32143:   which, when activated, provides the user with a color picker (e.g. a
                   32144:   color wheel or color palette) from which the color can be
                   32145:   changed.</p>
                   32146: 
                   32147:   <p>Predefined suggested values (provided by the <code title="attr-input-list"><a href="common-input-element-attributes.html#attr-input-list">list</a></code> attribute) are expected to be
                   32148:   shown in the color picker interface, not on the color well
                   32149:   itself.</p>
                   32150: 
                   32151:   </div>
                   32152: 
                   32153: 
                   32154:   <div class="impl">
                   32155: 
                   32156:   <h4 id="the-input-element-as-a-checkbox-and-radio-button-widgets"><span class="secno">10.5.8 </span>The <code><a href="the-input-element.html#the-input-element">input</a></code> element as a checkbox and radio button widgets</h4>
                   32157: 
                   32158:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   32159: 
                   32160: input[type=checkbox i] { binding: <i title="">input-checkbox</i>; }
                   32161: input[type=radio i] { binding: <i title="">input-radio</i>; }</pre>
                   32162: 
                   32163:   <p>When the <i title="">input-checkbox</i> binding applies to an
                   32164:   <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#checkbox-state-(type=checkbox)" title="attr-input-type-checkbox">Checkbox</a> state, the element
                   32165:   is expected to render as an 'inline-block' box containing a single
                   32166:   checkbox control, with no label.</p>
                   32167: 
                   32168:   <p>When the <i title="">input-radio</i> binding applies to an
                   32169:   <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#radio-button-state-(type=radio)" title="attr-input-type-radio">Radio Button</a> state, the element
                   32170:   is expected to render as an 'inline-block' box containing a single
                   32171:   radio button control, with no label.</p>
                   32172: 
                   32173:   </div>
                   32174: 
                   32175: 
                   32176:   <div class="impl">
                   32177: 
                   32178:   <h4 id="the-input-element-as-a-file-upload-control"><span class="secno">10.5.9 </span>The <code><a href="the-input-element.html#the-input-element">input</a></code> element as a file upload control</h4>
                   32179: 
                   32180:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   32181: 
                   32182: input[type=file i] { binding: <i title="">input-file</i>; }</pre>
                   32183: 
                   32184:   <p>When the <i title="">input-file</i> binding applies to an
                   32185:   <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#file-upload-state-(type=file)" title="attr-input-type-file">File Upload</a> state, the element
                   32186:   is expected to render as an 'inline-block' box containing a span of
                   32187:   text giving the filename(s) of the <a href="states-of-the-type-attribute.html#concept-input-type-file-selected" title="concept-input-type-file-selected">selected files</a>, if
                   32188:   any, followed by a button that, when activated, provides the user
                   32189:   with a file picker from which the selection can be changed.</p>
                   32190: 
                   32191:   </div>
                   32192: 
                   32193: 
                   32194:   <div class="impl">
                   32195: 
                   32196:   <h4 id="the-input-element-as-a-button"><span class="secno">10.5.10 </span>The <code><a href="the-input-element.html#the-input-element">input</a></code> element as a button</h4>
                   32197: 
                   32198:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   32199: 
                   32200: input[type=submit i], input[type=reset i], input[type=button i] {
                   32201:   binding: <i title="">input-button</i>;
                   32202: }</pre>
                   32203: 
                   32204:   <p>When the <i title="">input-button</i> binding applies to an
                   32205:   <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#submit-button-state-(type=submit)" title="attr-input-type-submit">Submit Button</a>, <a href="states-of-the-type-attribute.html#reset-button-state-(type=reset)" title="attr-input-type-reset">Reset Button</a>, or <a href="states-of-the-type-attribute.html#button-state-(type=button)" title="attr-input-type-button">Button</a> state, the element is
                   32206:   expected to render as an 'inline-block' box rendered as a button,
                   32207:   about one line high, containing the contents of the element's <code title="attr-input-value"><a href="the-input-element.html#attr-input-value">value</a></code> attribute, if any, or text
                   32208:   derived from the element's <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code>
                   32209:   attribute in a user-agent-defined (and probably locale-specific)
                   32210:   fashion, if not.</p>
                   32211: 
                   32212:   </div>
                   32213: 
                   32214: 
                   32215:   <div class="impl">
                   32216: 
                   32217:   <h4 id="the-marquee-element"><span class="secno">10.5.11 </span>The <code><a href="#the-marquee-element-0">marquee</a></code> element</h4>
                   32218: 
                   32219:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   32220: 
                   32221: marquee { binding: <i title="">marquee</i>; }</pre>
                   32222: 
                   32223:   <p>When the <i title="">marquee</i> binding applies to a
                   32224:   <code><a href="#the-marquee-element-0">marquee</a></code> element, while the element is <a href="#concept-marquee-on" title="concept-marquee-on">turned on</a>, the element is expected
                   32225:   to render in an animated fashion according to its attributes as
                   32226:   follows:</p>
                   32227: 
                   32228:   <dl><dt>If the element's <code title="attr-marquee-behavior"><a href="#attr-marquee-behavior">behavior</a></code> attribute is in the
                   32229:    <a href="#attr-marquee-behavior-scroll" title="attr-marquee-behavior-scroll">scroll</a> state</dt>
                   32230: 
                   32231:    <dd>
                   32232: 
                   32233:     <p>Slide the contents of the element in the direction described by
                   32234:     the <code title="attr-marquee-direction"><a href="#attr-marquee-direction">direction</a></code>
                   32235:     attribute as defined below, such that it begins off the start side
                   32236:     of the <code><a href="#the-marquee-element-0">marquee</a></code>, and ends flush with the inner end
                   32237:     side.</p>
                   32238: 
                   32239:     <p class="example">For example, if the <code title="attr-marquee-direction"><a href="#attr-marquee-direction">direction</a></code> attribute is <a href="#attr-marquee-direction-left" title="attr-marquee-direction-left">left</a> (the default),
                   32240:     then the contents would start such that their left edge are off
                   32241:     the side of the right edge of the <code><a href="#the-marquee-element-0">marquee</a></code>'s content
                   32242:     area, and the contents would then slide up to the point where the
                   32243:     left edge of the contents are flush with the left inner edge of
                   32244:     the <code><a href="#the-marquee-element-0">marquee</a></code>'s content area.</p>
                   32245: 
                   32246:     <p>Once the animation has ended, the user agent is expected to
                   32247:     <a href="#increment-the-marquee-current-loop-index">increment the marquee current loop index</a>. If the
                   32248:     element is still <a href="#concept-marquee-on" title="concept-marquee-on">turned on</a>
                   32249:     after this, then the user agent is expected to restart the
                   32250:     animation.</p>
                   32251: 
                   32252:    </dd>
                   32253: 
                   32254:    <dt>If the element's <code title="attr-marquee-behavior"><a href="#attr-marquee-behavior">behavior</a></code> attribute is in the
                   32255:    <a href="#attr-marquee-behavior-slide" title="attr-marquee-behavior-slide">slide</a> state</dt>
                   32256: 
                   32257:    <dd>
                   32258: 
                   32259:     <p>Slide the contents of the element in the direction described by
                   32260:     the <code title="attr-marquee-direction"><a href="#attr-marquee-direction">direction</a></code>
                   32261:     attribute as defined below, such that it begins off the start side
                   32262:     of the <code><a href="#the-marquee-element-0">marquee</a></code>, and ends off the end side of the
                   32263:     <code><a href="#the-marquee-element-0">marquee</a></code>.</p>
                   32264: 
                   32265:     <p class="example">For example, if the <code title="attr-marquee-direction"><a href="#attr-marquee-direction">direction</a></code> attribute is <a href="#attr-marquee-direction-left" title="attr-marquee-direction-left">left</a> (the default),
                   32266:     then the contents would start such that their left edge are off
                   32267:     the side of the right edge of the <code><a href="#the-marquee-element-0">marquee</a></code>'s content
                   32268:     area, and the contents would then slide up to the point where the
                   32269:     <em>right</em> edge of the contents are flush with the left inner
                   32270:     edge of the <code><a href="#the-marquee-element-0">marquee</a></code>'s content area.</p>
                   32271: 
                   32272:     <p>Once the animation has ended, the user agent is expected to
                   32273:     <a href="#increment-the-marquee-current-loop-index">increment the marquee current loop index</a>. If the
                   32274:     element is still <a href="#concept-marquee-on" title="concept-marquee-on">turned on</a>
                   32275:     after this, then the user agent is expected to restart the
                   32276:     animation.</p>
                   32277: 
                   32278:    </dd>
                   32279: 
                   32280:    <dt>If the element's <code title="attr-marquee-behavior"><a href="#attr-marquee-behavior">behavior</a></code> attribute is in the
                   32281:    <a href="#attr-marquee-behavior-alternate" title="attr-marquee-behavior-alternate">alternate</a>
                   32282:    state</dt>
                   32283: 
                   32284:    <dd>
                   32285: 
                   32286:     <p>When the <a href="#marquee-current-loop-index">marquee current loop index</a> is even (or
                   32287:     zero), slide the contents of the element in the direction
                   32288:     described by the <code title="attr-marquee-direction"><a href="#attr-marquee-direction">direction</a></code> attribute as
                   32289:     defined below, such that it begins flush with the start side of
                   32290:     the <code><a href="#the-marquee-element-0">marquee</a></code>, and ends flush with the end side of the
                   32291:     <code><a href="#the-marquee-element-0">marquee</a></code>.</p>
                   32292: 
                   32293:     <p>When the <a href="#marquee-current-loop-index">marquee current loop index</a> is odd, slide
                   32294:     the contents of the element in the opposite direction than that
                   32295:     described by the <code title="attr-marquee-direction"><a href="#attr-marquee-direction">direction</a></code> attribute as
                   32296:     defined below, such that it begins flush with the end side of the
                   32297:     <code><a href="#the-marquee-element-0">marquee</a></code>, and ends flush with the start side of the
                   32298:     <code><a href="#the-marquee-element-0">marquee</a></code>.</p>
                   32299: 
                   32300:     <p class="example">For example, if the <code title="attr-marquee-direction"><a href="#attr-marquee-direction">direction</a></code> attribute is <a href="#attr-marquee-direction-left" title="attr-marquee-direction-left">left</a> (the default),
                   32301:     then the contents would with their right edge flush with the right
                   32302:     inner edge of the <code><a href="#the-marquee-element-0">marquee</a></code>'s content area, and the
                   32303:     contents would then slide up to the point where the <em>left</em>
                   32304:     edge of the contents are flush with the left inner edge of the
                   32305:     <code><a href="#the-marquee-element-0">marquee</a></code>'s content area.</p>
                   32306: 
                   32307:     <p>Once the animation has ended, the user agent is expected to
                   32308:     <a href="#increment-the-marquee-current-loop-index">increment the marquee current loop index</a>. If the
                   32309:     element is still <a href="#concept-marquee-on" title="concept-marquee-on">turned on</a>
                   32310:     after this, then the user agent is expected to continue the
                   32311:     animation.</p>
                   32312: 
                   32313:    </dd>
                   32314: 
                   32315:   </dl><p>The <code title="attr-marquee-direction"><a href="#attr-marquee-direction">direction</a></code>
                   32316:   attribute has the meanings described in the following table:</p>
                   32317: 
                   32318:   <table><thead><tr><th><code title="attr-marquee-direction"><a href="#attr-marquee-direction">direction</a></code> attribute state
                   32319:      </th><th>Direction of animation
                   32320:      </th><th>Start edge
                   32321:      </th><th>End edge
                   32322:      </th><th>Opposite direction
                   32323:    </th></tr></thead><tbody><tr><td><a href="#attr-marquee-direction-left" title="attr-marquee-direction-left">left</a>
                   32324:      </td><td>&#8592; Right to left
                   32325:      </td><td>Right
                   32326:      </td><td>Left
                   32327:      </td><td>&#8594; Left to Right
                   32328:     </td></tr><tr><td><a href="#attr-marquee-direction-right" title="attr-marquee-direction-right">right</a>
                   32329:      </td><td>&#8594; Left to Right
                   32330:      </td><td>Left
                   32331:      </td><td>Right
                   32332:      </td><td>&#8592; Right to left
                   32333:     </td></tr><tr><td><a href="#attr-marquee-direction-up" title="attr-marquee-direction-up">up</a>
                   32334:      </td><td>&#8593; Up (Bottom to Top)
                   32335:      </td><td>Bottom
                   32336:      </td><td>Top
                   32337:      </td><td>&#8595; Down (Top to Bottom)
                   32338:     </td></tr><tr><td><a href="#attr-marquee-direction-down" title="attr-marquee-direction-down">down</a>
                   32339:      </td><td>&#8595; Down (Top to Bottom)
                   32340:      </td><td>Top
                   32341:      </td><td>Bottom
                   32342:      </td><td>&#8593; Up (Bottom to Top)
                   32343:   </td></tr></tbody></table><p>In any case, the animation should proceed such that there is a
                   32344:   delay given by the <a href="#marquee-scroll-interval">marquee scroll interval</a> between each
                   32345:   frame, and such that the content moves at most the distance given by
                   32346:   the <a href="#marquee-scroll-distance">marquee scroll distance</a> with each frame.</p>
                   32347: 
                   32348:   <p>When a <code><a href="#the-marquee-element-0">marquee</a></code> element has a <code title="attr-marquee-bgcolor">bgcolor</code> attribute set, the value
                   32349:   is expected to be parsed using the <a href="common-microsyntaxes.html#rules-for-parsing-a-legacy-color-value">rules for parsing a legacy
                   32350:   color value</a>, and if that does not return an error, the user
                   32351:   agent is expected to treat the attribute as a <a href="#presentational-hints" title="presentational hints">presentational hint</a> setting the
                   32352:   element's 'background-color' property to the resulting color.</p>
                   32353: 
                   32354:   <p>The <code title="attr-marquee-width">width</code> and <code title="attr-marquee-height">height</code> attributes on a
                   32355:   <code><a href="#the-marquee-element-0">marquee</a></code> element <a href="#maps-to-the-dimension-property" title="maps to the dimension
                   32356:   property">map to the dimension properties</a> 'width' and
                   32357:   'height' on the element respectively.</p>
                   32358: 
                   32359:   <p>The intrinsic height of a <code><a href="#the-marquee-element-0">marquee</a></code> element with its
                   32360:   <code title="attr-marquee-direction"><a href="#attr-marquee-direction">direction</a></code> attribute in
                   32361:   the <a href="#attr-marquee-direction-up" title="attr-marquee-direction-up">up</a> or <a href="#attr-marquee-direction-down" title="attr-marquee-direction-down">down</a> states is 200 CSS
                   32362:   pixels.</p>
                   32363: 
                   32364:   <p>The <code title="attr-marquee-vspace">vspace</code> attribute of
                   32365:   a <code><a href="#the-marquee-element-0">marquee</a></code> element <a href="#maps-to-the-dimension-property" title="maps to the dimension
                   32366:   property">maps to the dimension properties</a> 'margin-top' and
                   32367:   'margin-bottom' on the element. The <code title="attr-marquee-hspace">hspace</code> attribute of a
                   32368:   <code><a href="#the-marquee-element-0">marquee</a></code> element <a href="#maps-to-the-dimension-property" title="maps to the dimension
                   32369:   property">maps to the dimension properties</a> 'margin-left' and
                   32370:   'margin-right' on the element.</p>
                   32371: 
                   32372:   <p>The 'overflow' property on the <code><a href="#the-marquee-element-0">marquee</a></code> element is
                   32373:   expected to be ignored; overflow is expected to always be
                   32374:   hidden.</p>
                   32375: 
                   32376:   </div>
                   32377: 
                   32378: 
                   32379:   <div class="impl">
                   32380: 
                   32381:   <h4 id="the-meter-element-0"><span class="secno">10.5.12 </span>The <code><a href="the-meter-element.html#the-meter-element">meter</a></code> element</h4>
                   32382: 
                   32383:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   32384: 
                   32385: meter { binding: <i title="">meter</i>; }</pre>
                   32386: 
                   32387:   <p>When the <i title="">meter</i> binding applies to a
                   32388:   <code><a href="the-meter-element.html#the-meter-element">meter</a></code> element, the element is expected to render as an
                   32389:   'inline-block' box with a 'height' of '1em' and a 'width' of '5em',
                   32390:   a 'vertical-align' of '-0.2em', and with its contents depicting a
                   32391:   gauge.</p>
                   32392: 
                   32393:   <p>When the element is wider than it is tall (or square), the
                   32394:   depiction is expected to be of a horizontal gauge, with the minimum
                   32395:   value on the right if the 'direction' property on this element has a
                   32396:   computed value of 'rtl', and on the left otherwise. When the element
                   32397:   is taller than it is wide, it is expected to depict a vertical
                   32398:   gauge, with the minimum value on the bottom.</p>
                   32399: 
                   32400:   <p>User agents are expected to use a presentation consistent with
                   32401:   platform conventions for gauges, if any.</p>
                   32402: 
                   32403:   <p class="note">Requirements for what must be depicted in the gauge
                   32404:   are included in the definition of the <code><a href="the-meter-element.html#the-meter-element">meter</a></code>
                   32405:   element.</p>
                   32406: 
                   32407:   </div>
                   32408: 
                   32409: 
                   32410:   <div class="impl">
                   32411: 
                   32412:   <h4 id="the-progress-element-0"><span class="secno">10.5.13 </span>The <code><a href="the-progress-element.html#the-progress-element">progress</a></code> element</h4>
                   32413: 
                   32414:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   32415: 
                   32416: progress { binding: <i title="">progress</i>; }</pre>
                   32417: 
                   32418:   <p>When the <i title="">progress</i> binding applies to a
                   32419:   <code><a href="the-progress-element.html#the-progress-element">progress</a></code> element, the element is expected to render as
                   32420:   an 'inline-block' box with a 'height' of '1em' and a 'width' of
                   32421:   '10em', and a 'vertical-align' of '-0.2em'.</p>
                   32422: 
                   32423:   <!-- http://software.hixie.ch/utilities/js/canvas/?c.clearRect(0%2C%200%2C%20640%2C%20480)%3B%0Ac.save()%3B%0Atry%20{%0A%20%20c.fillStyle%20%3D%20'black'%3B%0A%20%20c.font%20%3D%20'8px%20sans-serif'%3B%0A%20%20c.fillText('Wide'%2C%2043%2C105)%3B%0A%20%20c.fillText('Tall'%2C%20100%2C105)%3B%0A%20%20c.fillText('Square'%2C%20128%2C105)%3B%0A%20%20c.font%20%3D%20'700%2010px%20sans-serif'%3B%0A%20%20c.fillText('Progress%20Bars'%2C%2013%2C30)%3B%0A%20%20c.font%20%3D%20'100%2010px%20sans-serif'%3B%0A%20%20c.fillText('(80%25)'%2C%2037%2C45)%3B%0A%20%20c.beginPath()%3B%0A%20%20var%20g%20%3D%20c.createLinearGradient(10%2C0%2C80%2C0)%3B%0A%20%20g.addColorStop(0%2C%20'%2300FF00')%3B%0A%20%20g.addColorStop(0.8%2C%20'%2300FF00')%3B%0A%20%20g.addColorStop(0.9%2C%20'%23FFFF00')%3B%0A%20%20c.fillStyle%20%3D%20g%3B%0A%20%20c.rect(10%2C80%2C80%2C15)%3B%0A%20%20c.fill()%3B%0A%20%20c.strokeStyle%20%3D%20'black'%3B%0A%20%20c.stroke()%3B%0A%20%20c.beginPath()%3B%0A%20%20var%20g%20%3D%20c.createLinearGradient(0%2C80%2C0%2C20)%3B%0A%20%20g.addColorStop(0%2C%20'%2300FF00')%3B%0A%20%20g.addColorStop(0.75%2C%20'%2300FF00')%3B%0A%20%20g.addColorStop(0.85%2C%20'%23FFFF00')%3B%0A%20%20c.fillStyle%20%3D%20g%3B%0A%20%20c.rect(100%2C15%2C15%2C80)%3B%0A%20%20c.fill()%3B%0A%20%20c.strokeStyle%20%3D%20'black'%3B%0A%20%20c.stroke()%3B%0A%0A%20%20c.beginPath()%3B%0A%20%20c.fillStyle%20%3D%20'yellow'%3B%0A%20%20c.arc(140%2C80%2C15%2C0%2C2*Math.PI%2C%20true)%3B%0A%20%20c.fill()%3B%0A%20%20c.beginPath()%3B%0A%20%20c.fillStyle%20%3D%20'lime'%3B%0A%20%20c.moveTo(140%2C80)%3B%0A%20%20c.arc(140%2C80%2C15%2C-Math.PI%2F2%2C1.2*Math.PI%2C%20false)%3B%0A%20%20c.fill()%3B%0A%20%20c.beginPath()%3B%0A%20%20c.arc(140%2C80%2C15%2C0%2C2*Math.PI%2C%20true)%3B%0A%20%20c.strokeStyle%20%3D%20'black'%3B%0A%20%20c.stroke()%3B%0A}%20finally%20{%0A%20%20c.restore()%3B%0A}%0A -->
                   32424: 
                   32425:   <p> <img alt="" class="extra" src="images/sample-progress.png">
                   32426:   When the element is wider than it is tall, the element is
                   32427:   expected to be depicted as a horizontal progress bar, with the start
                   32428:   on the right and the end on the left if the 'direction' property on
                   32429:   this element has a computed value of 'rtl', and with the start on
                   32430:   the left and the end on the right otherwise. When the element is
                   32431:   taller than it is wide, it is expected to depicted as a vertical
                   32432:   progress bar, with the lowest value on the bottom. When the element
                   32433:   is square, it is expected to be depicted as a direction-independent
                   32434:   progress widget (e.g. a circular progress ring).</p>
                   32435: 
                   32436:   <p>User agents are expected to use a presentation consistent with
                   32437:   platform conventions for progress bars. In particular, user agents
                   32438:   are expected to use different presentations for determinate and
                   32439:   indeterminate progress bars. User agents are also expected to vary
                   32440:   the presentation based on the dimensions of the element.</p>
                   32441: 
                   32442:   <p class="example">For example, on some platforms for showing
                   32443:   indeterminate progress there is an asynchronous progress indicator
                   32444:   with square dimensions, which could be used when the element is
                   32445:   square, and an indeterminate progress bar, which could be used when
                   32446:   the element is wide.</p>
                   32447: 
                   32448:   <p class="note">Requirements for how to determine if the progress
                   32449:   bar is determinate or indeterminate, and what progress a determinate
                   32450:   progress bar is to show, are included in the definition of the
                   32451:   <code><a href="the-progress-element.html#the-progress-element">progress</a></code> element.</p>
                   32452: 
                   32453:   </div>
                   32454: 
                   32455: 
                   32456:   <div class="impl">
                   32457: 
                   32458:   <h4 id="the-select-element-0"><span class="secno">10.5.14 </span>The <code><a href="the-select-element.html#the-select-element">select</a></code> element</h4>
                   32459: 
                   32460:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   32461: 
                   32462: select { binding: <i title="">select</i>; }</pre>
                   32463: 
                   32464:   <p>When the <i title="">select</i> binding applies to a
                   32465:   <code><a href="the-select-element.html#the-select-element">select</a></code> element whose <code title="attr-select-multiple"><a href="the-select-element.html#attr-select-multiple">multiple</a></code> attribute is present,
                   32466:   the element is expected to render as a multi-select list box.</p>
                   32467: 
                   32468:   <p>When the <i title="">select</i> binding applies to a
                   32469:   <code><a href="the-select-element.html#the-select-element">select</a></code> element whose <code title="attr-select-multiple"><a href="the-select-element.html#attr-select-multiple">multiple</a></code> attribute is absent,
                   32470:   and the element's <a href="the-select-element.html#concept-select-size" title="concept-select-size">display
                   32471:   size</a> is greater than 1, the element is expected to render as
                   32472:   a single-select list box.</p>
                   32473: 
                   32474:   <p>When the element renders as a list box, it is expected to render
                   32475:   as an 'inline-block' box whose 'height' is the height necessary to
                   32476:   contain as many rows for items as given by the element's <a href="the-select-element.html#concept-select-size" title="concept-select-size">display size</a>, or four rows if the
                   32477:   attribute is absent, and whose 'width' is the <a href="#width-of-the-select's-labels">width of the
                   32478:   <code>select</code>'s labels</a> plus the width of a
                   32479:   scrollbar.</p>
                   32480: 
                   32481:   <p>When the <i title="">select</i> binding applies to a
                   32482:   <code><a href="the-select-element.html#the-select-element">select</a></code> element whose <code title="attr-select-multiple"><a href="the-select-element.html#attr-select-multiple">multiple</a></code> attribute is absent,
                   32483:   and the element's <a href="the-select-element.html#concept-select-size" title="concept-select-size">display
                   32484:   size</a> is 1, the element is expected to render as a one-line
                   32485:   drop down box whose width is the <a href="#width-of-the-select's-labels">width of the
                   32486:   <code>select</code>'s labels</a>.</p>
                   32487: 
                   32488:   <p>In either case (list box or drop-down box), the element's items
                   32489:   are expected to be the element's <a href="the-select-element.html#concept-select-option-list" title="concept-select-option-list">list of options</a>, with the
                   32490:   element's <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code> element children providing headers
                   32491:   for groups of options where applicable.</p>
                   32492: 
                   32493:   <p>An <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code> element is expected to be rendered by
                   32494:   displaying the element's <code title="attr-optgroup-label"><a href="the-optgroup-element.html#attr-optgroup-label">label</a></code> attribute.</p>
                   32495: 
                   32496:   <p>An <code><a href="the-option-element.html#the-option-element">option</a></code> element is expected to be rendered by
                   32497:   displaying the element's <a href="the-option-element.html#concept-option-label" title="concept-option-label">label</a>, indented under its
                   32498:   <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code> element if it has one.</p>
                   32499: 
                   32500:   <p>The <dfn id="width-of-the-select's-labels">width of the <code>select</code>'s labels</dfn> is the
                   32501:   wider of the width necessary to render the widest
                   32502:   <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code>, and the width necessary to render the widest
                   32503:   <code><a href="the-option-element.html#the-option-element">option</a></code> element in the element's <a href="the-select-element.html#concept-select-option-list" title="concept-select-option-list">list of options</a> (including
                   32504:   its indent, if any).</p>
                   32505: 
                   32506:   <p>If a <code><a href="the-select-element.html#the-select-element">select</a></code> element contains a <a href="the-select-element.html#placeholder-label-option">placeholder
                   32507:   label option</a>, the user agent is expected to render that
                   32508:   <code><a href="the-option-element.html#the-option-element">option</a></code> in a manner that conveys that it is a label,
                   32509:   rather than a valid option of the control. This can include
                   32510:   preventing the <a href="the-select-element.html#placeholder-label-option">placeholder label option</a> from being
                   32511:   explicitly selected by the user. When the <a href="the-select-element.html#placeholder-label-option">placeholder label
                   32512:   option</a>'s <a href="the-option-element.html#concept-option-selectedness" title="concept-option-selectedness">selectedness</a> is true, the
                   32513:   control is expected to be displayed in a fashion that indicates that
                   32514:   no valid option is currently selected.</p>
                   32515: 
                   32516:   <p>User agents are expected to render the labels in a
                   32517:   <code><a href="the-select-element.html#the-select-element">select</a></code> in such a manner that any alignment remains
                   32518:   consistent whether the label is being displayed as part of the page
                   32519:   or in a menu control.</p>
                   32520: 
                   32521:   </div>
                   32522: 
                   32523: 
                   32524:   <div class="impl">
                   32525: 
                   32526:   <h4 id="the-textarea-element-0"><span class="secno">10.5.15 </span>The <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> element</h4>
                   32527: 
                   32528:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   32529: 
                   32530: textarea { binding: <i title="">textarea</i>; white-space: pre-wrap; }</pre>
                   32531: 
                   32532:   <p>When the <i title="">textarea</i> binding applies to a
                   32533:   <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> element, the element is expected to render as
                   32534:   an 'inline-block' box rendered as a multiline text field.</p>
                   32535: 
                   32536:   <p>If the element has a <code title="attr-textarea-cols"><a href="the-textarea-element.html#attr-textarea-cols">cols</a></code>
                   32537:   attribute, and parsing that attribute's value using the <a href="common-microsyntaxes.html#rules-for-parsing-non-negative-integers">rules
                   32538:   for parsing non-negative integers</a> doesn't generate an error,
                   32539:   then the user agent is expected to use the attribute as a <a href="#presentational-hints" title="presentational hints">presentational hint</a> for the
                   32540:   'width' property on the element, with the value being the
                   32541:   <a href="#textarea-effective-width">textarea effective width</a> (as defined below). Otherwise,
                   32542:   the user agent is expected to act as if it had a user-agent-level
                   32543:   style sheet rule setting the 'width' property on the element to the
                   32544:   <a href="#textarea-effective-width">textarea effective width</a>.</p>
                   32545: 
                   32546:   <p>The <dfn id="textarea-effective-width">textarea effective width</dfn> of a
                   32547:   <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> element is <span><var title="">size</var>&#215;<var title="">avg</var>&#160;+&#160;<var title="">sbw</var></span>, where <var title="">size</var> is the
                   32548:   element's <a href="the-textarea-element.html#attr-textarea-cols-value" title="attr-textarea-cols-value">character
                   32549:   width</a>, <var title="">avg</var> is the average character width
                   32550:   of the primary font of the element, in CSS pixels, and <var title="">sbw</var> is the width of a scroll bar, in CSS pixels. (The
                   32551:   element's 'letter-spacing' property does not affect the result.)</p>
                   32552: 
                   32553:   <p>If the element has a <code title="attr-textarea-rows"><a href="the-textarea-element.html#attr-textarea-rows">rows</a></code>
                   32554:   attribute, and parsing that attribute's value using the <a href="common-microsyntaxes.html#rules-for-parsing-non-negative-integers">rules
                   32555:   for parsing non-negative integers</a> doesn't generate an error,
                   32556:   then the user agent is expected to use the attribute as a <a href="#presentational-hints" title="presentational hints">presentational hint</a> for the
                   32557:   'height' property on the element, with the value being the
                   32558:   <a href="#textarea-effective-height">textarea effective height</a> (as defined
                   32559:   below). Otherwise, the user agent is expected to act as if it had a
                   32560:   user-agent-level style sheet rule setting the 'height' property on
                   32561:   the element to the <a href="#textarea-effective-height">textarea effective height</a>.</p>
                   32562: 
                   32563:   <p>The <dfn id="textarea-effective-height">textarea effective height</dfn> of a
                   32564:   <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> element is the height in CSS pixels of the
                   32565:   number of lines specified the element's <a href="the-textarea-element.html#attr-textarea-rows-value" title="attr-textarea-rows-value">character height</a>, plus the
                   32566:   height of a scrollbar in CSS pixels.</p>
                   32567: 
                   32568:   <p>User agents are expected to apply the 'white-space' CSS property
                   32569:   to <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> elements. For historical reasons, if the
                   32570:   element has a <code title="attr-textarea-wrap"><a href="the-textarea-element.html#attr-textarea-wrap">wrap</a></code> attribute
                   32571:   whose value is an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the
                   32572:   string "<code title="attr-textarea-wrap-off">off</code>", then the
                   32573:   user agent is expected to treat the attribute as a <a href="#presentational-hints" title="presentational hints">presentational hint</a> setting the
                   32574:   element's 'white-space' property to 'pre'.</p>
                   32575: 
                   32576:   </div>
                   32577: 
                   32578: 
                   32579:   <div class="impl">
                   32580: 
                   32581:   <h4 id="the-keygen-element-0"><span class="secno">10.5.16 </span>The <code><a href="the-keygen-element.html#the-keygen-element">keygen</a></code> element</h4>
                   32582: 
                   32583:   <pre class="css">@namespace url(http://www.w3.org/1999/xhtml);
                   32584: 
                   32585: keygen { binding: <i title="">keygen</i>; }</pre>
                   32586: 
                   32587:   <p>When the <i title="">keygen</i> binding applies to a
                   32588:   <code><a href="the-keygen-element.html#the-keygen-element">keygen</a></code> element, the element is expected to render as an
                   32589:   'inline-block' box containing a user interface to configure the key
                   32590:   pair to be generated.</p>
                   32591: 
                   32592:   </div>
                   32593: 
                   32594: 
                   32595: 
                   32596:   <div class="impl">
                   32597: 
                   32598:   <h3 id="frames-and-framesets"><span class="secno">10.6 </span>Frames and framesets</h3>
                   32599: 
                   32600:   <p>When an <code><a href="the-html-element.html#the-html-element">html</a></code> element's <a href="dom.html#the-body-element-0" title="the body
                   32601:   element">body element</a> is actually a <code><a href="#frameset">frameset</a></code>
                   32602:   element, the user agent is expected to render the
                   32603:   <code><a href="#frameset">frameset</a></code> element as described below across the surface
                   32604:   of the viewport, instead of applying the usual CSS rendering
                   32605:   rules.</p>
                   32606: 
                   32607:   <p>When rendering a <code><a href="#frameset">frameset</a></code> on a surface, the user
                   32608:   agent is expected to use the following layout algorithm:</p>
                   32609: 
                   32610:   <ol><li>
                   32611: 
                   32612:     <p>The <var title="">cols</var> and <var title="">rows</var>
                   32613:     variables are lists of zero or more pairs consisting of a number
                   32614:     and a unit, the unit being one of <i>percentage</i>,
                   32615:     <i>relative</i>, and <i>absolute</i>.</p>
                   32616: 
                   32617:     <p>Use the <a href="common-microsyntaxes.html#rules-for-parsing-a-list-of-dimensions">rules for parsing a list of dimensions</a> to
                   32618:     parse the value of the element's <code title="attr-frameset-cols">cols</code> attribute, if there is
                   32619:     one. Let <var title="">cols</var> be the result, or an empty list
                   32620:     if there is no such attribute.</p>
                   32621: 
                   32622:     <p>Use the <a href="common-microsyntaxes.html#rules-for-parsing-a-list-of-dimensions">rules for parsing a list of dimensions</a> to
                   32623:     parse the value of the element's <code title="attr-frameset-rows">rows</code> attribute, if there is
                   32624:     one. Let <var title="">rows</var> be the result, or an empty list
                   32625:     if there is no such attribute.</p>
                   32626: 
                   32627:    </li>
                   32628: 
                   32629:    <li>
                   32630: 
                   32631:     <p>For any of the entries in <var title="">cols</var> or <var title="">rows</var> that have the number zero and the unit
                   32632:     <i>relative</i>, change the entry's number to one.</p>
                   32633: 
                   32634:    </li>
                   32635: 
                   32636:    <li>
                   32637: 
                   32638:     <p>If <var title="">cols</var> has no entries, then add a single
                   32639:     entry consisting of the value 1 and the unit <i>relative</i> to
                   32640:     <var title="">cols</var>.</p>
                   32641: 
                   32642:     <p>If <var title="">rows</var> has no entries, then add a single
                   32643:     entry consisting of the value 1 and the unit <i>relative</i> to
                   32644:     <var title="">rows</var>.</p>
                   32645: 
                   32646:    </li>
                   32647: 
                   32648:    <li>
                   32649: 
                   32650:     <p>Invoke the algorithm defined below to <a href="#convert-a-list-of-dimensions-to-a-list-of-pixel-values">convert a list of
                   32651:     dimensions to a list of pixel values</a> using <var title="">cols</var> as the input list, and the width of the
                   32652:     surface that the <code><a href="#frameset">frameset</a></code> is being rendered into, in
                   32653:     CSS pixels, as the input dimension. Let <var title="">sized
                   32654:     cols</var> be the resulting list.</p>
                   32655: 
                   32656:     <p>Invoke the algorithm defined below to <a href="#convert-a-list-of-dimensions-to-a-list-of-pixel-values">convert a list of
                   32657:     dimensions to a list of pixel values</a> using <var title="">rows</var> as the input list, and the height of the
                   32658:     surface that the <code><a href="#frameset">frameset</a></code> is being rendered into, in
                   32659:     CSS pixels, as the input dimension. Let <var title="">sized
                   32660:     rows</var> be the resulting list.</p>
                   32661: 
                   32662:    </li>
                   32663: 
                   32664:    <li>
                   32665: 
                   32666:     <p>Split the surface into a grid of <span title=""><var title="">w</var>&#215;<var title="">h</var></span> rectangles,
                   32667:     where <var title="">w</var> is the number of entries in <var title="">sized cols</var> and <var title="">h</var> is the number
                   32668:     of entries in <var title="">sized rows</var>.</p>
                   32669: 
                   32670:     <p>Size the columns so that each column in the grid is as many CSS
                   32671:     pixels wide as the corresponding entry in the <var title="">sized
                   32672:     cols</var> list.</p>
                   32673: 
                   32674:     <p>Size the rows so that each row in the grid is as many CSS
                   32675:     pixels high as the corresponding entry in the <var title="">sized
                   32676:     rows</var> list.</p>
                   32677: 
                   32678:    </li>
                   32679: 
                   32680:    <li>
                   32681: 
                   32682:     <p>Let <var title="">children</var> be the list of
                   32683:     <code><a href="#frame">frame</a></code> and <code><a href="#frameset">frameset</a></code> elements that are
                   32684:     children of the <code><a href="#frameset">frameset</a></code> element for which the
                   32685:     algorithm was invoked.</p>
                   32686: 
                   32687:    </li>
                   32688: 
                   32689:    <li>
                   32690: 
                   32691:     <p>For each row of the grid of rectangles created in the previous
                   32692:     step, from top to bottom, run these substeps:</p>
                   32693: 
                   32694:     <ol><li>
                   32695: 
                   32696:       <p>For each rectangle in the row, from left to right, run these
                   32697:       substeps:</p>
                   32698: 
                   32699:       <ol><li>
                   32700: 
                   32701:         <p>If there are any elements left in <var title="">children</var>, take the first element in the list,
                   32702:         and assign it to the rectangle.</p>
                   32703: 
                   32704:         <p>If this is a <code><a href="#frameset">frameset</a></code> element, then recurse
                   32705:         the entire <code><a href="#frameset">frameset</a></code> layout algorithm for that
                   32706:         <code><a href="#frameset">frameset</a></code> element, with the rectangle as the
                   32707:         surface.</p>
                   32708: 
                   32709:         <p>Otherwise, it is a <code><a href="#frame">frame</a></code> element; create a
                   32710:         <a href="#nested-browsing-context">nested browsing context</a> sized to fit the
                   32711:         rectangle.</p>
                   32712: 
                   32713:        </li>
                   32714: 
                   32715:        <li>
                   32716: 
                   32717:         <p>If there are any elements left in <var title="">children</var>, remove the first element from <var title="">children</var>.</p>
                   32718: 
                   32719:       </li></ol></li>
                   32720: 
                   32721:     </ol></li>
                   32722: 
                   32723:    <li>
                   32724: 
                   32725:     <p>If the <code><a href="#frameset">frameset</a></code> element <a href="#has-a-border">has a border</a>,
                   32726:     draw an outer set of borders around the rectangles, using the
                   32727:     element's <a href="#frame-border-color">frame border color</a>.</p>
                   32728: 
                   32729:     <p>For each rectangle, if there is an element assigned to that
                   32730:     rectangle, and that element <a href="#has-a-border">has a border</a>, draw an
                   32731:     inner set of borders around that rectangle, using the
                   32732:     element's <a href="#frame-border-color">frame border color</a>.</p>
                   32733: 
                   32734:     <p>For each (visible) border that does not abut a rectangle that
                   32735:     is assigned a <code><a href="#frame">frame</a></code> element with a <code title="attr-frame-noresize">noresize</code> attribute (including
                   32736:     rectangles in further nested <code><a href="#frameset">frameset</a></code> elements), the
                   32737:     user agent is expected to allow the user to move the border,
                   32738:     resizing the rectangles within, keeping the proportions of any
                   32739:     nested <code><a href="#frameset">frameset</a></code> grids.</p>
                   32740: 
                   32741:     <p>A <code><a href="#frameset">frameset</a></code> or <code><a href="#frame">frame</a></code> element <dfn id="has-a-border">has
                   32742:     a border</dfn> if the following algorithm returns true:</p>
                   32743: 
                   32744:     <ol><li><p>If the element has a <code title="attr-frames-frameborder">frameborder</code> attribute
                   32745:      whose value is not the empty string and whose first character is
                   32746:      either a "1" (U+0031) character, a "y" (U+0079) character, or a "Y" (U+0059) character, then return true.</p></li>
                   32747: 
                   32748:      <li><p>Otherwise, if the element has a <code title="attr-frames-frameborder">frameborder</code> attribute,
                   32749:      return false.</p></li>
                   32750: 
                   32751:      <li><p>Otherwise, if the element has a parent element that is a
                   32752:      <code><a href="#frameset">frameset</a></code> element, then return true if <em>that</em>
                   32753:      element <a href="#has-a-border">has a border</a>, and false if it does
                   32754:      not.</p></li>
                   32755: 
                   32756:      <li><p>Otherwise, return true.</p></li>
                   32757: 
                   32758:     </ol><p>The <dfn id="frame-border-color">frame border color</dfn> of a <code><a href="#frameset">frameset</a></code> or
                   32759:     <code><a href="#frame">frame</a></code> element is the color obtained from the
                   32760:     following algorithm:</p>
                   32761: 
                   32762:     <ol><li><p>If the element has a <code title="attr-frames-bordercolor">bordercolor</code> attribute, and
                   32763:      applying the <a href="common-microsyntaxes.html#rules-for-parsing-a-legacy-color-value">rules for parsing a legacy color value</a>
                   32764:      to that attribute's value does not result in an error, then
                   32765:      return the color so obtained.</p></li>
                   32766: 
                   32767:      <li><p>Otherwise, if the element has a parent element that is a
                   32768:      <code><a href="#frameset">frameset</a></code> element, then the <a href="#frame-border-color">frame border
                   32769:      color</a> of that element.</p>
                   32770: 
                   32771:      </li><li><p>Otherwise, return gray.</p></li>
                   32772: 
                   32773:     </ol></li>
                   32774: 
                   32775:   </ol><p>The algorithm to <dfn id="convert-a-list-of-dimensions-to-a-list-of-pixel-values">convert a list of dimensions to a list of
                   32776:   pixel values</dfn> consists of the following steps:</p>
                   32777: 
                   32778:   <ol><li>
                   32779: 
                   32780:     <p>Let <var title="">input list</var> be the list of numbers and
                   32781:     units passed to the algorithm.</p>
                   32782: 
                   32783:     <p>Let <var title="">output list</var> be a list of numbers the
                   32784:     same length as <var title="">input list</var>, all zero.</p>
                   32785: 
                   32786:     <p>Entries in <var title="">output list</var> correspond to the
                   32787:     entries in <var title="">input list</var> that have the same
                   32788:     position.</p>
                   32789: 
                   32790:    </li>
                   32791: 
                   32792:    <li><p>Let <var title="">input dimension</var> be the size passed
                   32793:    to the algorithm.</p>
                   32794: 
                   32795:    </li><li>
                   32796: 
                   32797:     <p>Let <var title="">count percentage</var> be the number of
                   32798:     entries in <var title="">input list</var> whose unit is
                   32799:     <i>percentage</i>.</p>
                   32800: 
                   32801:     <p>Let <var title="">total percentage</var> be the sum of all the
                   32802:     numbers in <var title="">input list</var> whose unit is
                   32803:     <i>percentage</i>.</p>
                   32804: 
                   32805:     <p>Let <var title="">count relative</var> be the number of
                   32806:     entries in <var title="">input list</var> whose unit is
                   32807:     <i>relative</i>.</p>
                   32808: 
                   32809:     <p>Let <var title="">total relative</var> be the sum of all the
                   32810:     numbers in <var title="">input list</var> whose unit is
                   32811:     <i>relative</i>.</p>
                   32812: 
                   32813:     <p>Let <var title="">count absolute</var> be the number of
                   32814:     entries in <var title="">input list</var> whose unit is
                   32815:     <i>absolute</i>.</p>
                   32816: 
                   32817:     <p>Let <var title="">total absolute</var> be the sum of all the
                   32818:     numbers in <var title="">input list</var> whose unit is
                   32819:     <i>absolute</i>.</p>
                   32820: 
                   32821:     <p>Let <var title="">remaining space</var> be the value of <var title="">input dimension</var>.</p>
                   32822: 
                   32823:    </li>
                   32824: 
                   32825:    <li>
                   32826: 
                   32827:     <p>If <var title="">total absolute</var> is greater than <var title="">remaining space</var>, then for each entry in <var title="">input list</var> whose unit is <i>absolute</i>, set the
                   32828:     corresponding value in <var title="">output list</var> to the
                   32829:     number of the entry in <var title="">input list</var> multiplied
                   32830:     by <var title="">remaining space</var> and divided by <var title="">total absolute</var>. Then, set <var title="">remaining
                   32831:     space</var> to zero.</p>
                   32832: 
                   32833:     <p>Otherwise, for each entry in <var title="">input list</var>
                   32834:     whose unit is <i>absolute</i>, set the corresponding value in <var title="">output list</var> to the number of the entry in <var title="">input list</var>. Then, decrement <var title="">remaining
                   32835:     space</var> by <var title="">total absolute</var>.</p>
                   32836: 
                   32837:    </li>
                   32838: 
                   32839:    <li>
                   32840: 
                   32841:     <p>If <var title="">total percentage</var> multiplied by the <var title="">input dimension</var> and divided by 100 is greater than
                   32842:     <var title="">remaining space</var>, then for each entry in <var title="">input list</var> whose unit is <i>percentage</i>, set the
                   32843:     corresponding value in <var title="">output list</var> to the
                   32844:     number of the entry in <var title="">input list</var> multiplied
                   32845:     by <var title="">remaining space</var> and divided by <var title="">total percentage</var>. Then, set <var title="">remaining
                   32846:     space</var> to zero.</p>
                   32847: 
                   32848:     <p>Otherwise, for each entry in <var title="">input list</var>
                   32849:     whose unit is <i>percentage</i>, set the corresponding value in
                   32850:     <var title="">output list</var> to the number of the entry in <var title="">input list</var> multiplied by the <var title="">input
                   32851:     dimension</var> and divided by 100. Then, decrement <var title="">remaining space</var> by <var title="">total
                   32852:     percentage</var> multiplied by the <var title="">input
                   32853:     dimension</var> and divided by 100.</p>
                   32854: 
                   32855:    </li>
                   32856: 
                   32857:    <li>
                   32858: 
                   32859:     <p>For each entry in <var title="">input list</var> whose unit is
                   32860:     <i>relative</i>, set the corresponding value in <var title="">output list</var> to the number of the entry in <var title="">input list</var> multiplied by <var title="">remaining
                   32861:     space</var> and divided by <var title="">total relative</var>.</p>
                   32862: 
                   32863:    </li>
                   32864: 
                   32865:    <li><p>Return <var title="">output list</var>.</p></li>
                   32866: 
                   32867:   </ol><p>User agents working with integer values for frame widths (as
                   32868:   opposed to user agents that can lay frames out with subpixel
                   32869:   accuracy) are expected to distribute the remainder first to the last
                   32870:   entry whose unit is <i>relative</i>, then equally (not
                   32871:   proportionally) to each entry whose unit is <i>percentage</i>, then
                   32872:   equally (not proportionally) to each entry whose unit is
                   32873:   <i>absolute</i>, and finally, failing all else, to the last
                   32874:   entry.</p>
                   32875: 
                   32876: 
                   32877:   </div>
                   32878: 
                   32879: 
                   32880:   <div class="impl">
                   32881: 
                   32882:   <h3 id="interactive-media"><span class="secno">10.7 </span>Interactive media</h3>
                   32883: 
                   32884:   <h4 id="links,-forms,-and-navigation"><span class="secno">10.7.1 </span>Links, forms, and navigation</h4>
                   32885: 
                   32886:   <p>User agents are expected to allow the user to control aspects of
                   32887:   <a href="#hyperlink">hyperlink</a> activation and <a href="#form-submission-0">form submission</a>,
                   32888:   such as which <a href="#browsing-context">browsing context</a> is to be used for the
                   32889:   subsequent <a href="#navigate" title="navigate">navigation</a>.</p>
                   32890: 
                   32891:   <p>User agents are expected to allow users to discover the
                   32892:   destination of <a href="#hyperlink" title="hyperlink">hyperlinks</a> and of
                   32893:   <a href="the-form-element.html#the-form-element" title="form">forms</a> before triggering their <a href="#navigate" title="navigate">navigation</a>.</p>
                   32894: 
                   32895: <!--PING-->
                   32896: 
                   32897:   <p>User agents are expected to allow users to
                   32898:   <a href="#navigate">navigate</a><!--DONAV cite=""--> <a href="#browsing-context" title="browsing
                   32899:   context">browsing contexts</a> to the resources <a href="urls.html#resolve-a-url" title="resolve a url">indicated</a> by the <code title="">cite</code> attributes on <code><a href="the-q-element.html#the-q-element">q</a></code>,
                   32900:   <code><a href="the-blockquote-element.html#the-blockquote-element">blockquote</a></code>, 
                   32901:   <code><a href="the-ins-element.html#the-ins-element">ins</a></code>, and <code><a href="the-del-element.html#the-del-element">del</a></code> elements.</p>
                   32902: 
                   32903:   <p>User agents are expected to surface <a href="#hyperlink" title="hyperlink">hyperlinks</a> created by <code><a href="the-link-element.html#the-link-element">link</a></code>
                   32904:   elements in their user interface.</p>
                   32905: 
                   32906:   <p class="note">While <code><a href="the-link-element.html#the-link-element">link</a></code> elements that create <a href="#hyperlink" title="hyperlink">hyperlinks</a> will match the ':link' or
                   32907:   ':visited' pseudo-classes, will react to clicks if visible, and so
                   32908:   forth, this does not extend to any browser interface constructs that
                   32909:   expose those same links. Activating a link through the browser's
                   32910:   interface, rather than in the page itself, does not trigger <code title="event-click"><a href="infrastructure.html#event-click">click</a></code> events and the like.</p>
                   32911: 
                   32912: 
                   32913: 
                   32914: 
                   32915:   <h4 id="the-title-attribute-0"><span class="secno">10.7.2 </span>The <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code> attribute</h4>
                   32916: 
                   32917:   <p>User agents are expected to expose the <a href="global-attributes.html#advisory-information">advisory
                   32918:   information</a> of elements upon user request, and to make the
                   32919:   user aware of the presence of such information.</p>
                   32920: 
                   32921:   <p>On interactive graphical systems where the user can use a
                   32922:   pointing device, this could take the form of a tooltip. When the
                   32923:   user is unable to use a pointing device, then the user agent is
                   32924:   expected to make the content available in some other fashion, e.g.
                   32925:   by making the element focusable and always displaying the
                   32926:   <a href="global-attributes.html#advisory-information">advisory information</a> of the currently focused element,
                   32927:   or by showing the <a href="global-attributes.html#advisory-information">advisory information</a> of the elements
                   32928:   under the user's finger on a touch device as the user pans around
                   32929:   the screen.</p>
                   32930: 
                   32931:   <p>"LF" (U+000A) characters are expected to cause line
                   32932:   breaks in the tooltip; "tab" (U+0009) characters
                   32933:   are expected to render as a non-zero horizontal shift that lines up
                   32934:   the next glyph with the next tab stop, with tab stops occurring at
                   32935:   points that are multiples of 8 times the width of a U+0020 SPACE
                   32936:   character.</p>
                   32937: 
                   32938:   <div class="example">
                   32939: 
                   32940:    <p>For example, a visual user agent could make elements with a
                   32941:    <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code> attribute focusable, and
                   32942:    could make any focused element with a <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code> attribute show its tooltip under
                   32943:    the element while the element has focus. This would allow a user to
                   32944:    tab around the document to find all the advisory text.</p>
                   32945: 
                   32946:   </div>
                   32947: 
                   32948:   <div class="example">
                   32949: 
                   32950:    <p>As another example, a screen reader could provide an audio cue
                   32951:    when reading an element with a tooltip, with an associated key to
                   32952:    read the last tooltip for which a cue was played.</p>
                   32953: 
                   32954:   </div>
                   32955: 
                   32956: 
                   32957:   <h4 id="editing-hosts"><span class="secno">10.7.3 </span>Editing hosts</h4>
                   32958: 
                   32959:   <p>The current text editing caret (i.e. the <a href="#active-range">active
                   32960:   range</a>, if it is empty and in an <a href="#editing-host">editing host</a>),
                   32961:   if any, is expected to act like an inline replaced element with the
                   32962:   vertical dimensions of the caret and with zero width for the
                   32963:   purposes of the CSS rendering model.</p>
                   32964: 
                   32965:   <p class="note">This means that even an empty block can have the
                   32966:   caret inside it, and that when the caret is in such an element, it
                   32967:   prevents margins from collapsing through the element.</p>
                   32968: 
                   32969: 
                   32970: 
                   32971:   <h4 id="text-rendered-in-native-user-interfaces"><span class="secno">10.7.4 </span>Text rendered in native user interfaces</h4>
                   32972: 
                   32973:   <p>User agents are expected to honor the Unicode semantics of text
                   32974:   that is exposed in user interfaces, for example supporting the
                   32975:   bidirectional algorithm in text shown in dialogs, title bars, pop-up
                   32976:   menus, and tooltips. Text from elements (either attribute values or
                   32977:   the contents of elements) is expected to be rendered in a manner
                   32978:   that honors <a href="global-attributes.html#the-directionality">the directionality</a> of the element from
                   32979:   which the text was obtained.</p>
                   32980: 
                   32981:   <div class="example">
                   32982: 
                   32983:    <p>Consider the following markup, which has Hebrew text asking for
                   32984:    a programming language, the languages being text for which a
                   32985:    left-to-right direction is important given the punctuation in some
                   32986:    of their names:</p>
                   32987: 
                   32988:    <pre>&lt;p dir="rtl" lang="he"&gt;
                   32989:  &lt;label&gt;
                   32990:   <span dir="rtl" lang="he" title="">&#1489;&#1495;&#1512; &#1513;&#1508;&#1514; &#1514;&#1499;&#1504;&#1493;&#1514;:</span>
                   32991:   &lt;select&gt;
                   32992:    &lt;option dir="ltr"&gt;C++&lt;/option&gt;
                   32993:    &lt;option dir="ltr"&gt;C#&lt;/option&gt;
                   32994:    &lt;option dir="ltr"&gt;FreePascal&lt;/option&gt;
                   32995:    &lt;option dir="ltr"&gt;F#&lt;/option&gt;
                   32996:   &lt;/select&gt;
                   32997:  &lt;/label&gt;
                   32998: &lt;/p&gt;</pre>
                   32999: 
                   33000:    <p>If the <code><a href="the-select-element.html#the-select-element">select</a></code> element was rendered as a drop down
                   33001:    box, a correct rendering would ensure that the punctuation was the
                   33002:    same both in the drop down, and in the box showing the current
                   33003:    selection.</p>
                   33004: 
                   33005:    <p><img alt="" height="105" src="images/bidiselect.png" width="206"></p> <!-- no need for alt text, the previous paragraph
                   33006:    describes it completely -->
                   33007: 
                   33008:   </div>
                   33009: 
                   33010:   <p>A string provided by a script (e.g. the argument to <code title="dom-alert"><a href="#dom-alert">window.alert()</a></code>) is expected to be treated
                   33011:   as an independent set of one or more bidirectional algorithm
                   33012:   paragraphs when displayed, as defined by the bidirectional
                   33013:   algorithm, including, for instance, supporting the
                   33014:   paragraph-breaking behaviour of "LF" (U+000A) characters.
                   33015:   For the purposes of determining the paragraph level of such text in
                   33016:   the bidirectional algorithm, this specification does <em>not</em>
                   33017:   provide a higher-level override of rules P2 and P3. <a href="#refsBIDI">[BIDI]</a></p>
                   33018: 
                   33019:   <p>When necessary, authors can enforce a particular direction for a
                   33020:   given paragraph by starting it with the Unicode U+200E LEFT-TO-RIGHT
                   33021:   MARK or U+200F RIGHT-TO-LEFT MARK characters.</p>
                   33022: 
                   33023:   <div class="example">
                   33024: 
                   33025:    <p>Thus, the following script:</p>
                   33026: 
                   33027:    <pre>alert('\u05DC\u05DE\u05D3 HTML \u05D4\u05D9\u05D5\u05DD!')</pre>
                   33028: 
                   33029:    <p>...would always result in a message reading
                   33030:         "<bdo dir="rtl" lang="" title="">&#1500;&#1502;&#1491;&#160;LMTH&#160;&#1492;&#1497;&#1493;&#1501;!</bdo>"
                   33031:    (not "<bdo dir="ltr" lang="" title="">&#1491;&#1502;&#1500;&#160;HTML&#160;&#1501;&#1493;&#1497;&#1492;!</bdo>"),
                   33032:    regardless of the language of the user agent interface or the
                   33033:    direction of the page or any of its elements.</p>
                   33034: 
                   33035:   </div>
                   33036: 
                   33037:   <div class="example">
                   33038: 
                   33039:    <p>For a more complex example, consider the following script:</p>
                   33040: 
                   33041:    <pre class="bad">/* Warning: this script does not handle right-to-left scripts correctly */
                   33042: var s;
                   33043: if (s = prompt('What is your name?')) {
                   33044:   alert(s + '! Ok, Fred, ' + s + ', and Wilma will get the car.');
                   33045: }</pre>
                   33046: 
                   33047:    <p>When the user enters "<kbd>Kitty</kbd>", the user agent would
                   33048:    alert "<samp>Kitty! Ok, Fred, Kitty, and Wilma will get the
                   33049:    car.</samp>". However, if the user enters "<kbd dir="rtl" lang="ar">&#1604;&#1575;&#160;&#1571;&#1601;&#1607;&#1605;</kbd>",
                   33050:    then the bidirectional algorithm will determine that the direction
                   33051:    of the paragraph is right-to-left, and so the output will be the
                   33052:    following unintended mess: "<samp lang=""><bdo dir="rtl">&#1604;&#1575;&#160;&#1571;&#1601;&#1607;&#1605;!&#160;derF&#160;,kO,&#160;&#1604;&#1575;&#160;&#1571;&#1601;&#1607;&#1605;,&#160;rac&#160;eht&#160;teg&#160;lliw&#160;amliW&#160;dna.</bdo></samp>"</p>
                   33053: 
                   33054:    <p>To force an alert that starts with user-provided text (or other
                   33055:    text of unknown directionality) to render left-to-right, the string
                   33056:    can be prefixed with a U+200E LEFT-TO-RIGHT MARK character:</p>
                   33057: 
                   33058:    <pre>var s;
                   33059: if (s = prompt('What is your name?')) {
                   33060:   alert('<strong>\u200E</strong>' + s + '! Ok, Fred, ' + s + ', and Wilma will get the car.');
                   33061: }</pre>
                   33062: 
                   33063:   </div>
                   33064: 
                   33065: 
                   33066: 
                   33067:   <h3 id="print-media"><span class="secno">10.8 </span>Print media</h3>
                   33068: 
                   33069:   <p>User agents are expected to allow the user to request the
                   33070:   opportunity to <dfn id="obtain-a-physical-form">obtain a physical form</dfn> (or a
                   33071:   representation of a physical form) of a <code><a href="dom.html#document">Document</a></code>. For
                   33072:   example, selecting the option to print a page or convert it to PDF
                   33073:   format. <a href="#refsPDF">[PDF]</a></p>
                   33074: 
                   33075:   <p>When the user actually <a href="#obtain-a-physical-form" title="obtain a physical
                   33076:   form">obtains a physical form</a> (or a representation of a
                   33077:   physical form) of a <code><a href="dom.html#document">Document</a></code>, the user agent is
                   33078:   expected to create a new rendering of the <code><a href="dom.html#document">Document</a></code> for
                   33079:   the print media.</p>
                   33080: 
                   33081: 
                   33082: 
                   33083:   </div>
                   33084: 
                   33085: 
                   33086: 
                   33087:   <!--TOPIC:HTML-->
                   33088: 
                   33089:   <h2 id="obsolete"><span class="secno">11 </span>Obsolete features</h2>
                   33090: 
                   33091:   <h3 id="obsolete-but-conforming-features"><span class="secno">11.1 </span>Obsolete but conforming features</h3>
                   33092: 
                   33093:   <p>Features listed in this section will trigger warnings in
                   33094:   conformance checkers.</p>
                   33095: 
                   33096:   <p>Authors should not specify a <code title="attr-img-border"><a href="#attr-img-border">border</a></code> attribute on an
                   33097:   <code><a href="the-img-element.html#the-img-element">img</a></code> element. If the attribute is present, its value
                   33098:   must be the string "<code title="">0</code>". CSS should be used
                   33099:   instead.</p>
                   33100: 
                   33101:   <p>Authors should not specify a <code title="attr-script-language"><a href="#attr-script-language">language</a></code> attribute on a
                   33102:   <code><a href="the-script-element.html#the-script-element">script</a></code> element. If the attribute is present, its value
                   33103:   must be an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the string
                   33104:   "<code title="">JavaScript</code>" and either the <code title="attr-script-type"><a href="the-script-element.html#attr-script-type">type</a></code> attribute must be omitted or
                   33105:   its value must be an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for
                   33106:   the string "<code title="">text/javascript</code>". The attribute
                   33107:   should be entirely omitted instead (with the value "<code title="">JavaScript</code>", it has no effect), or replaced with use
                   33108:   of the <code title="attr-script-type"><a href="the-script-element.html#attr-script-type">type</a></code> attribute.</p>
                   33109: 
                   33110:   <p>Authors should not specify the <code title="attr-a-name"><a href="#attr-a-name">name</a></code> attribute on <code><a href="the-a-element.html#the-a-element">a</a></code>
                   33111:   elements. If the attribute is present, its value must not be the
                   33112:   empty string and must neither be equal to the value of any of the
                   33113:   <a href="infrastructure.html#concept-id" title="concept-id">IDs</a> in the element's <a href="infrastructure.html#home-subtree">home
                   33114:   subtree</a> other than the element's own <a href="infrastructure.html#concept-id" title="concept-id">ID</a>, if any, nor be equal to the value of
                   33115:   any of the other <code title="attr-a-name"><a href="#attr-a-name">name</a></code> attributes on
                   33116:   <code><a href="the-a-element.html#the-a-element">a</a></code> elements in the element's <a href="infrastructure.html#home-subtree">home
                   33117:   subtree</a>. If this attribute is present and the element has an
                   33118:   <a href="infrastructure.html#concept-id" title="concept-id">ID</a>, then the attribute's value must
                   33119:   be equal to the element's <a href="infrastructure.html#concept-id" title="concept-id">ID</a>. In
                   33120:   earlier versions of the language, this attribute was intended as a
                   33121:   way to specify possible targets for fragment identifiers in <a href="urls.html#url" title="URL">URLs</a>. The <code title="attr-id"><a href="global-attributes.html#the-id-attribute">id</a></code>
                   33122:   attribute should be used instead.</p>
                   33123: 
                   33124:   <!-- remove this once type=number is widely supported -->
                   33125:   <p>Authors should not, but may despite requirements to the contrary
                   33126:   elsewhere in this specification, specify the <code title="attr-input-maxlength"><a href="common-input-element-attributes.html#attr-input-maxlength">maxlength</a></code> and <code title="attr-input-size"><a href="common-input-element-attributes.html#attr-input-size">size</a></code> attributes on <code><a href="the-input-element.html#the-input-element">input</a></code>
                   33127:   elements whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attributes
                   33128:   are in the <a href="states-of-the-type-attribute.html#number-state-(type=number)" title="attr-input-type-number">Number</a> state.
                   33129:   One valid reason for using these attributes regardless is to help
                   33130:   legacy user agents that do not support <code><a href="the-input-element.html#the-input-element">input</a></code> elements
                   33131:   with <code title="">type="number"</code> to still render the text
                   33132:   field with a useful width.</p>
                   33133: 
                   33134:   <p class="note">In <a href="#syntax">the HTML syntax</a>, specifying a <a href="#syntax-doctype" title="syntax-DOCTYPE">DOCTYPE</a> that is an <a href="#obsolete-permitted-doctype">obsolete
                   33135:   permitted DOCTYPE</a> will also trigger a warning.</p>
                   33136: 
                   33137: 
                   33138:   <div class="impl">
                   33139: 
                   33140:   <h4 id="warnings-for-obsolete-but-conforming-features"><span class="secno">11.1.1 </span>Warnings for obsolete but conforming features</h4>
                   33141: 
                   33142:   <p>To ease the transition from HTML4 Transitional documents to the
                   33143:   language defined in <em>this</em> specification, and to discourage
                   33144:   certain features that are only allowed in very few circumstances,
                   33145:   conformance checkers are required to warn the user when the
                   33146:   following features are used in a document. These are generally old
                   33147:   obsolete features that have no effect, and are allowed only to
                   33148:   distinguish between likely mistakes (regular conformance errors) and
                   33149:   mere vestigial markup or unusual and discouraged practices (these
                   33150:   warnings).</p>
                   33151: 
                   33152:   <p>The following features must be categorized as described
                   33153:   above:</p>
                   33154: 
                   33155:   <ul><!-- downplayed list --><li><p>The presence of an <a href="#obsolete-permitted-doctype">obsolete permitted DOCTYPE</a>
                   33156:    in an <a href="infrastructure.html#html-documents" title="HTML documents">HTML document</a>.</p></li>
                   33157: 
                   33158:    <li><p>The presence of a <code title="attr-img-border"><a href="#attr-img-border">border</a></code> attribute on an
                   33159:    <code><a href="the-img-element.html#the-img-element">img</a></code> element if its value is the string "<code title="">0</code>".</p></li>
                   33160: 
                   33161:    <li><p>The presence of a <code title="attr-script-language"><a href="#attr-script-language">language</a></code> attribute on a
                   33162:    <code><a href="the-script-element.html#the-script-element">script</a></code> element if its value is an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   33163:    case-insensitive</a> match for the string "<code title="">JavaScript</code>" and if there is no <code title="attr-script-type"><a href="the-script-element.html#attr-script-type">type</a></code> attribute or there is and its
                   33164:    value is an <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a> match for the
                   33165:    string "<code title="">text/javascript</code>".</p></li>
                   33166: 
                   33167:    <li><p>The presence of a <code title="attr-a-name"><a href="#attr-a-name">name</a></code>
                   33168:    attribute on an <code><a href="the-a-element.html#the-a-element">a</a></code> element, if its value is not the
                   33169:    empty string.</p></li>
                   33170: 
                   33171:    <li><p>The presence of a <code title="attr-input-maxlength"><a href="common-input-element-attributes.html#attr-input-maxlength">maxlength</a></code> attribute on an
                   33172:    <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#number-state-(type=number)" title="attr-input-type-number">Number</a> state.</p></li>
                   33173: 
                   33174:    <li><p>The presence of a <code title="attr-input-size"><a href="common-input-element-attributes.html#attr-input-size">size</a></code> attribute on an
                   33175:    <code><a href="the-input-element.html#the-input-element">input</a></code> element whose <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is in the <a href="states-of-the-type-attribute.html#number-state-(type=number)" title="attr-input-type-number">Number</a> state.</p></li>
                   33176: 
                   33177:   </ul><p>Conformance checkers must distinguish between pages that have no
                   33178:   conformance errors and have none of these obsolete features, and
                   33179:   pages that have no conformance errors but do have some of these
                   33180:   obsolete features.</p>
                   33181: 
                   33182:   <p class="example">For example, a validator could report some pages
                   33183:   as "Valid HTML" and others as "Valid HTML with warnings".</p>
                   33184: 
                   33185:   </div>
                   33186: 
                   33187: 
                   33188:   <h3 id="non-conforming-features"><span class="secno">11.2 </span>Non-conforming features</h3>
                   33189: 
                   33190:   <p>Elements in the following list are entirely obsolete, and must
                   33191:   not be used by authors:</p>
                   33192: 
                   33193:   <dl><!-- alphabetical by first element in the group, except CSS goes last --><dt><code><a href="#the-applet-element">applet</a></code></dt>
                   33194:    <dd><p>Use <code><a href="the-embed-element.html#the-embed-element">embed</a></code> or <code><a href="the-object-element.html#the-object-element">object</a></code> instead.</p></dd>
                   33195: 
                   33196:    <dt><dfn id="acronym"><code>acronym</code></dfn></dt>
                   33197:    <dd><p>Use <code><a href="the-abbr-element.html#the-abbr-element">abbr</a></code> instead.</p></dd>
                   33198: 
                   33199:    <dt><dfn id="bgsound"><code>bgsound</code></dfn></dt>
                   33200:    <dd><p>Use <code><a href="the-audio-element.html#the-audio-element">audio</a></code> instead.</p></dd>
                   33201: 
                   33202:    <dt><dfn id="dir"><code>dir</code></dfn></dt>
                   33203:    <dd><p>Use <code><a href="the-ul-element.html#the-ul-element">ul</a></code> instead.</p></dd>
                   33204: 
                   33205:    <dt><code><a href="#frame">frame</a></code></dt>
                   33206:    <dt><code><a href="#frameset">frameset</a></code></dt>
                   33207:    <dt><dfn id="noframes"><code>noframes</code></dfn></dt>
                   33208:    <dd><p>Either use <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> and CSS instead, or use server-side includes to generate complete pages with the various invariant parts merged in.</p></dd>
                   33209: 
                   33210:    <dt><dfn id="isindex-0"><code>isindex</code></dfn></dt>
                   33211:    <dd><p>Use an explicit <code><a href="the-form-element.html#the-form-element">form</a></code> and <a href="states-of-the-type-attribute.html#text-(type=text)-state-and-search-state-(type=search)" title="attr-input-type-text">text field</a> combination instead.</p></dd>
                   33212: 
                   33213:    <dt><dfn id="listing"><code>listing</code></dfn></dt>
                   33214:    <dd><p>Use <code><a href="the-pre-element.html#the-pre-element">pre</a></code> and <code><a href="the-code-element.html#the-code-element">code</a></code> instead.</p></dd>
                   33215: 
                   33216:    <dt><dfn id="nextid"><code>nextid</code></dfn></dt>
                   33217:    <dd><p>Use GUIDs instead.</p></dd>
                   33218: 
                   33219:    <dt><dfn id="noembed"><code>noembed</code></dfn></dt>
                   33220:    <dd><p>Use <code><a href="the-object-element.html#the-object-element">object</a></code> instead of <code><a href="the-embed-element.html#the-embed-element">embed</a></code> when fallback is necessary.</p></dd>
                   33221: 
                   33222:    <dt><dfn id="plaintext"><code>plaintext</code></dfn></dt>
                   33223:    <dd><p>Use the "<code>text/plain</code>" <a href="infrastructure.html#mime-type">MIME type</a> instead.</p></dd>
                   33224: 
                   33225:    <dt><dfn id="rb"><code>rb</code></dfn></dt>
                   33226:    <dd><p>Providing the ruby base directly inside the <code><a href="the-ruby-element.html#the-ruby-element">ruby</a></code> element is sufficient; the <code><a href="#rb">rb</a></code> element is unnecessary. Omit it altogether.</p></dd>
                   33227: 
                   33228:    <dt><dfn id="strike"><code>strike</code></dfn></dt>
                   33229:    <dd><p>Use <code><a href="the-del-element.html#the-del-element">del</a></code> instead if the element is marking an edit, otherwise use <code><a href="the-s-element.html#the-s-element">s</a></code> instead.</p></dd>
                   33230: 
                   33231:    <dt><dfn id="xmp"><code>xmp</code></dfn></dt>
                   33232:    <dd><p>Use <code><a href="the-pre-element.html#the-pre-element">pre</a></code> and <code><a href="the-code-element.html#the-code-element">code</a></code> instead, and escape "<code title="">&lt;</code>" and "<code title="">&amp;</code>" characters as "<code title="">&amp;lt;</code>" and "<code title="">&amp;amp;</code>" respectively.</p></dd>
                   33233: 
                   33234:    <dt><dfn id="basefont"><code>basefont</code></dfn></dt>
                   33235:    <dt><dfn id="big"><code>big</code></dfn></dt>
                   33236:    <dt><dfn id="blink"><code>blink</code></dfn></dt>
                   33237:    <dt><dfn id="center"><code>center</code></dfn></dt>
                   33238:    <dt><dfn id="font"><code>font</code></dfn></dt>
                   33239:    <dt><code><a href="#the-marquee-element-0">marquee</a></code></dt>
                   33240:    <dt><dfn id="multicol"><code>multicol</code></dfn></dt>
                   33241:    <dt><dfn id="nobr"><code>nobr</code></dfn></dt>
                   33242:    <dt><dfn id="spacer"><code>spacer</code></dfn></dt>
                   33243:    <dt><dfn id="tt"><code>tt</code></dfn></dt>
                   33244: 
                   33245:    <dd>
                   33246: 
                   33247:     <p>Use appropriate elements and/or CSS instead.</p>
                   33248: 
                   33249:     <p>Where the <code><a href="#tt">tt</a></code> element would have been used for
                   33250:     marking up keyboard input, consider the <code><a href="the-kbd-element.html#the-kbd-element">kbd</a></code> element;
                   33251:     for variables, consider the <code><a href="the-var-element.html#the-var-element">var</a></code> element; for computer
                   33252:     code, consider the <code><a href="the-code-element.html#the-code-element">code</a></code> element; and for computer
                   33253:     output, consider the <code><a href="the-samp-element.html#the-samp-element">samp</a></code> element.</p>
                   33254: 
                   33255:     <p>Similarly, if the <code><a href="#big">big</a></code> element is being used to
                   33256:     denote a heading, consider using the <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h1</a></code> element; if
                   33257:     it is being used for marking up important passages, consider the
                   33258:     <code><a href="the-strong-element.html#the-strong-element">strong</a></code> element; and if it is being used for
                   33259:     highlighting text for reference purposes, consider the
                   33260:     <code><a href="the-mark-element.html#the-mark-element">mark</a></code> element.</p>
                   33261: 
                   33262:     <p>See also the <a href="usage-summary.html#usage-summary">text-level semantics
                   33263:     usage summary</a> for more suggestions with examples.</p>
                   33264: 
                   33265:    </dd>
                   33266: 
                   33267:   </dl><hr><p>The following attributes are obsolete (though the elements are
                   33268:   still part of the language), and must not be used by authors:</p>
                   33269: 
                   33270:   <dl><!-- alphabetical by element then attribute of first item in group, except CSS goes last --><dt><dfn id="attr-a-charset" title="attr-a-charset"><code>charset</code></dfn> on <code><a href="the-a-element.html#the-a-element">a</a></code> elements</dt>
                   33271:    <dt><dfn id="attr-link-charset" title="attr-link-charset"><code>charset</code></dfn> on <code><a href="the-link-element.html#the-link-element">link</a></code> elements</dt>
                   33272:    <dd><p>Use an HTTP Content-Type header on the linked resource instead.</p></dd>
                   33273: 
                   33274:    <dt><dfn id="attr-a-coords" title="attr-a-coords"><code>coords</code></dfn> on <code><a href="the-a-element.html#the-a-element">a</a></code> elements</dt>
                   33275:    <dt><dfn id="attr-a-shape" title="attr-a-shape"><code>shape</code></dfn> on <code><a href="the-a-element.html#the-a-element">a</a></code> elements</dt>
                   33276:    <dd><p>Use <code><a href="the-area-element.html#the-area-element">area</a></code> instead of <code><a href="the-a-element.html#the-a-element">a</a></code> for image maps.</p></dd>
                   33277: 
                   33278:    <dt><dfn id="attr-a-methods" title="attr-a-methods"><code>methods</code></dfn> on <code><a href="the-a-element.html#the-a-element">a</a></code> elements</dt>
                   33279:    <dt><dfn id="attr-link-methods" title="attr-link-methods"><code>methods</code></dfn> on <code><a href="the-link-element.html#the-link-element">link</a></code> elements</dt>
                   33280:    <dd><p>Use the HTTP OPTIONS feature instead.</p></dd>
                   33281: 
                   33282:    <dt><dfn id="attr-a-name" title="attr-a-name"><code>name</code></dfn> on <code><a href="the-a-element.html#the-a-element">a</a></code> elements (except as noted in the previous section)</dt>
                   33283:    <dt><dfn id="attr-embed-name" title="attr-embed-name"><code>name</code></dfn> on <code><a href="the-embed-element.html#the-embed-element">embed</a></code> elements</dt>
                   33284:    <dt><dfn id="attr-img-name" title="attr-img-name"><code>name</code></dfn> on <code><a href="the-img-element.html#the-img-element">img</a></code> elements</dt>
                   33285:    <dt><dfn id="attr-option-name" title="attr-option-name"><code>name</code></dfn> on <code><a href="the-option-element.html#the-option-element">option</a></code> elements</dt>
                   33286:    <dd><p>Use the <code title="attr-id"><a href="global-attributes.html#the-id-attribute">id</a></code> attribute instead.</p></dd>
                   33287: 
                   33288:    <dt><dfn id="attr-a-rev" title="attr-a-rev"><code>rev</code></dfn> on <code><a href="the-a-element.html#the-a-element">a</a></code> elements</dt>
                   33289:    <dt><dfn id="attr-link-rev" title="attr-link-rev"><code>rev</code></dfn> on <code><a href="the-link-element.html#the-link-element">link</a></code> elements</dt>
                   33290:    <dd><p>Use the <code title="attr-hyperlink-rel"><a href="#attr-hyperlink-rel">rel</a></code>
                   33291:    attribute instead, with an opposite term. (For example, instead of
                   33292:    <code title="">rev="made"</code>, use <code title="">rel="author"</code>.)</p></dd>
                   33293: 
                   33294:    <dt><dfn id="attr-a-urn" title="attr-a-urn"><code>urn</code></dfn> on <code><a href="the-a-element.html#the-a-element">a</a></code> elements</dt>
                   33295:    <dt><dfn id="attr-link-urn" title="attr-link-urn"><code>urn</code></dfn> on <code><a href="the-link-element.html#the-link-element">link</a></code> elements</dt>
                   33296:    <dd><p>Specify the preferred persistent identifier using the <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code> attribute instead.</p></dd>
                   33297: 
                   33298:    <dt><dfn id="attr-form-accept" title="attr-form-accept"><code>accept</code></dfn> on <code><a href="the-form-element.html#the-form-element">form</a></code> elements</dt>
                   33299:    <dd><p>Use the <code title="attr-input-accept"><a href="states-of-the-type-attribute.html#attr-input-accept">accept</a></code> attribute directly on the <code><a href="the-input-element.html#the-input-element">input</a></code> elements instead.</p></dd>
                   33300: 
                   33301:    <dt><dfn id="attr-area-nohref" title="attr-area-nohref"><code>nohref</code></dfn> on <code><a href="the-area-element.html#the-area-element">area</a></code> elements</dt>
                   33302:    <dd><p>Omitting the <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code>
                   33303:    attribute is sufficient; the <code title="attr-area-nohref"><a href="#attr-area-nohref">nohref</a></code> attribute is
                   33304:    unnecessary. Omit it altogether.</p></dd>
                   33305: 
                   33306:    <dt><dfn id="attr-head-profile" title="attr-head-profile"><code>profile</code></dfn> on <code><a href="the-head-element.html#the-head-element">head</a></code> elements</dt>
                   33307:    <dd><p>When used for declaring which <code><a href="the-meta-element.html#the-meta-element">meta</a></code> terms are
                   33308:    used in the document, unnecessary; omit it altogether, and <a href="the-meta-element.html#concept-meta-extensions" title="concept-meta-extensions">register the names</a>.</p></dd>
                   33309:    <dd><p>When used for triggering specific user agent behaviors: use
                   33310:    a <code><a href="the-link-element.html#the-link-element">link</a></code> element instead.</p></dd>
                   33311: 
                   33312:    <dt><dfn id="attr-html-version" title="attr-html-version"><code>version</code></dfn> on <code><a href="the-html-element.html#the-html-element">html</a></code> elements</dt>
                   33313:    <dd><p>Unnecessary. Omit it altogether.</p></dd>
                   33314: 
                   33315:    <dt><dfn id="attr-input-usemap" title="attr-input-usemap"><code>usemap</code></dfn> on <code><a href="the-input-element.html#the-input-element">input</a></code> elements</dt>
                   33316:    <dd><p>Use <code><a href="the-img-element.html#the-img-element">img</a></code> instead of <code><a href="the-input-element.html#the-input-element">input</a></code> for image maps.</p></dd>
                   33317: 
                   33318:    <dt><dfn id="attr-iframe-longdesc" title="attr-iframe-longdesc"><code>longdesc</code></dfn> on <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> elements</dt>
                   33319:    <dt><dfn id="attr-img-longdesc" title="attr-img-longdesc"><code>longdesc</code></dfn> on <code><a href="the-img-element.html#the-img-element">img</a></code> elements</dt>
                   33320:    <dd><p>Use a regular <code><a href="the-a-element.html#the-a-element">a</a></code> element to link to the
                   33321:    description, or (in the case of images) use an <a href="image-maps.html#image-map">image
                   33322:    map</a> to provide a link from the image to the image's
                   33323:    description.</p></dd>
                   33324: 
                   33325:    <dt><dfn id="attr-img-lowsrc" title="attr-img-lowsrc"><code>lowsrc</code></dfn> on <code><a href="the-img-element.html#the-img-element">img</a></code> elements</dt>
                   33326:    <dd><p>Use a progressive JPEG image (given in the <code title="attr-img-src"><a href="the-img-element.html#attr-img-src">src</a></code> attribute),
                   33327:    instead of using two separate images.</p></dd>
                   33328: 
                   33329:    <dt><dfn id="attr-link-target" title="attr-link-target"><code>target</code></dfn> on <code><a href="the-link-element.html#the-link-element">link</a></code> elements</dt>
                   33330:    <dd><p>Unnecessary. Omit it altogether.</p></dd>
                   33331: 
                   33332:    <dt><dfn id="attr-meta-scheme" title="attr-meta-scheme"><code>scheme</code></dfn> on <code><a href="the-meta-element.html#the-meta-element">meta</a></code> elements</dt>
                   33333:    <dd><p>Use only one scheme per field, or make the scheme declaration part of the value.</p></dd>
                   33334: 
                   33335:    <dt><dfn id="attr-object-archive" title="attr-object-archive"><code>archive</code></dfn> on <code><a href="the-object-element.html#the-object-element">object</a></code> elements</dt>
                   33336:    <dt><dfn id="attr-object-classid" title="attr-object-classid"><code>classid</code></dfn> on <code><a href="the-object-element.html#the-object-element">object</a></code> elements</dt>
                   33337:    <dt><dfn id="attr-object-code" title="attr-object-code"><code>code</code></dfn> on <code><a href="the-object-element.html#the-object-element">object</a></code> elements</dt>
                   33338:    <dt><dfn id="attr-object-codebase" title="attr-object-codebase"><code>codebase</code></dfn> on <code><a href="the-object-element.html#the-object-element">object</a></code> elements</dt>
                   33339:    <dt><dfn id="attr-object-codetype" title="attr-object-codetype"><code>codetype</code></dfn> on <code><a href="the-object-element.html#the-object-element">object</a></code> elements</dt>
                   33340:    <dd><p>Use the <code title="attr-object-data"><a href="the-object-element.html#attr-object-data">data</a></code> and <code title="attr-object-type"><a href="the-object-element.html#attr-object-type">type</a></code> attributes to invoke <a href="infrastructure.html#plugin" title="plugin">plugins</a>. To set parameters with these names
                   33341:    in particular, the <code><a href="the-param-element.html#the-param-element">param</a></code> element can be used.</p></dd>
                   33342: 
                   33343:    <dt><dfn id="attr-object-declare" title="attr-object-declare"><code>declare</code></dfn> on <code><a href="the-object-element.html#the-object-element">object</a></code> elements</dt>
                   33344:    <dd><p>Repeat the <code><a href="the-object-element.html#the-object-element">object</a></code> element completely each time the resource is to be reused.</p></dd>
                   33345: 
                   33346:    <dt><dfn id="attr-object-standby" title="attr-object-standby"><code>standby</code></dfn> on <code><a href="the-object-element.html#the-object-element">object</a></code> elements</dt>
                   33347:    <dd><p>Optimize the linked resource so that it loads quickly or, at least, incrementally.</p></dd>
                   33348: 
                   33349:    <dt><dfn id="attr-param-type" title="attr-param-type"><code>type</code></dfn> on <code><a href="the-param-element.html#the-param-element">param</a></code> elements</dt>
                   33350:    <dt><dfn id="attr-param-valuetype" title="attr-param-valuetype"><code>valuetype</code></dfn> on <code><a href="the-param-element.html#the-param-element">param</a></code> elements</dt>
                   33351:    <dd><p>Use the <code title="attr-param-name"><a href="the-param-element.html#attr-param-name">name</a></code> and <code title="attr-param-value"><a href="the-param-element.html#attr-param-value">value</a></code> attributes without declaring
                   33352:    value types.</p></dd>
                   33353: 
                   33354:    <dt><dfn id="attr-script-language" title="attr-script-language"><code>language</code></dfn> on <code><a href="the-script-element.html#the-script-element">script</a></code> elements (except as noted in the previous section)</dt>
                   33355:    <dd><p>Use the <code title="attr-script-type"><a href="the-script-element.html#attr-script-type">type</a></code> attribute
                   33356:    instead.</p></dd>
                   33357: 
                   33358:    <dt><dfn id="attr-script-event" title="attr-script-event"><code>event</code></dfn> on <code><a href="the-script-element.html#the-script-element">script</a></code> elements</dt>
                   33359:    <dt><dfn id="attr-script-for" title="attr-script-for"><code>for</code></dfn> on <code><a href="the-script-element.html#the-script-element">script</a></code> elements</dt>
                   33360:    <dd><p>Use DOM Events mechanisms to register event listeners. <a href="#refsDOMCORE">[DOMCORE]</a></p></dd>
                   33361: 
                   33362:    <dt><dfn id="attr-table-datapagesize" title="attr-table-datapagesize"><code>datapagesize</code></dfn> on <code><a href="the-table-element.html#the-table-element">table</a></code> elements</dt>
                   33363:    <dd><p>Unnecessary. Omit it altogether.</p></dd>
                   33364: 
                   33365:    <dt><dfn id="attr-table-summary" title="attr-table-summary"><code>summary</code></dfn> on <code><a href="the-table-element.html#the-table-element">table</a></code> elements</dt><!-- 2.65% pages -->
                   33366:    <dd><p>Use one of the <a href="the-table-element.html#table-descriptions-techniques">techniques for describing
                   33367:    tables</a> given in the <code><a href="the-table-element.html#the-table-element">table</a></code> section
                   33368:    instead.</p></dd>
                   33369: 
                   33370:    <dt><dfn id="attr-tdth-abbr" title="attr-tdth-abbr"><code>abbr</code></dfn> on <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements</dt>
                   33371:    <dd><p>Use text that begins in an unambiguous and terse manner, and include any more elaborate text after that. The <code title="attr-title"><a href="global-attributes.html#attr-title">title</a></code> attribute can also be useful in including more detailed text, so that the cell's contents can be made terse.</p>
                   33372: 
                   33373:    </dd><dt><dfn id="attr-tdth-axis" title="attr-tdth-axis"><code>axis</code></dfn> on <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements</dt>
                   33374:    <dd><p>Use the <code title="attr-th-scope"><a href="the-th-element.html#attr-th-scope">scope</a></code> attribute on the relevant <code><a href="the-th-element.html#the-th-element">th</a></code>.</p>
                   33375: 
                   33376:    </dd><dt><dfn id="attr-td-scope" title="attr-td-scope"><code>scope</code></dfn> on <code><a href="the-td-element.html#the-td-element">td</a></code> elements</dt>
                   33377:    <dd><p>Use <code><a href="the-th-element.html#the-th-element">th</a></code> elements for heading cells.</p>
                   33378: 
                   33379:    </dd><dt><dfn id="attr-datasrc" title="attr-datasrc"><code>datasrc</code></dfn> on <code><a href="the-a-element.html#the-a-element">a</a></code>, <code><a href="#the-applet-element">applet</a></code>, <code><a href="the-button-element.html#the-button-element">button</a></code>, <code><a href="the-div-element.html#the-div-element">div</a></code>, <code><a href="#frame">frame</a></code>, <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>, <code><a href="the-img-element.html#the-img-element">img</a></code>, <code><a href="the-input-element.html#the-input-element">input</a></code>, <code><a href="the-label-element.html#the-label-element">label</a></code>, <code><a href="the-legend-element.html#the-legend-element">legend</a></code>, <code><a href="#the-marquee-element-0">marquee</a></code>, <code><a href="the-object-element.html#the-object-element">object</a></code>, <code><a href="the-option-element.html#the-option-element">option</a></code>, <code><a href="the-select-element.html#the-select-element">select</a></code>, <code><a href="the-span-element.html#the-span-element">span</a></code>, <code><a href="the-table-element.html#the-table-element">table</a></code>, and <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> elements</dt>
                   33380:    <dt><dfn id="attr-datafld" title="attr-datafld"><code>datafld</code></dfn> on <code><a href="the-a-element.html#the-a-element">a</a></code>, <code><a href="#the-applet-element">applet</a></code>, <code><a href="the-button-element.html#the-button-element">button</a></code>, <code><a href="the-div-element.html#the-div-element">div</a></code>, <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code>, <code><a href="#frame">frame</a></code>, <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>, <code><a href="the-img-element.html#the-img-element">img</a></code>, <code><a href="the-input-element.html#the-input-element">input</a></code>, <code><a href="the-label-element.html#the-label-element">label</a></code>, <code><a href="the-legend-element.html#the-legend-element">legend</a></code>, <code><a href="#the-marquee-element-0">marquee</a></code>, <code><a href="the-object-element.html#the-object-element">object</a></code>, <code><a href="the-param-element.html#the-param-element">param</a></code>, <code><a href="the-select-element.html#the-select-element">select</a></code>, <code><a href="the-span-element.html#the-span-element">span</a></code>, and <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code> elements</dt>
                   33381:    <dt><dfn id="attr-dataformatas" title="attr-dataformatas"><code>dataformatas</code></dfn> on <code><a href="the-button-element.html#the-button-element">button</a></code>, <code><a href="the-div-element.html#the-div-element">div</a></code>, <code><a href="the-input-element.html#the-input-element">input</a></code>, <code><a href="the-label-element.html#the-label-element">label</a></code>, <code><a href="the-legend-element.html#the-legend-element">legend</a></code>, <code><a href="#the-marquee-element-0">marquee</a></code>, <code><a href="the-object-element.html#the-object-element">object</a></code>, <code><a href="the-option-element.html#the-option-element">option</a></code>, <code><a href="the-select-element.html#the-select-element">select</a></code>, <code><a href="the-span-element.html#the-span-element">span</a></code>, and <code><a href="the-table-element.html#the-table-element">table</a></code> elements</dt>
                   33382:    <dd><p>Use script and a mechanism such as <code>XMLHttpRequest</code> to populate the page dynamically. <a href="#refsXHR">[XHR]</a></p></dd>
                   33383: 
                   33384:    <dt><dfn id="attr-body-alink" title="attr-body-alink"><code>alink</code></dfn> on <code><a href="the-body-element.html#the-body-element">body</a></code> elements</dt>
                   33385:    <dt><dfn id="attr-body-bgcolor" title="attr-body-bgcolor"><code>bgcolor</code></dfn> on <code><a href="the-body-element.html#the-body-element">body</a></code> elements</dt>
                   33386:    <dt><dfn id="attr-body-link" title="attr-body-link"><code>link</code></dfn> on <code><a href="the-body-element.html#the-body-element">body</a></code> elements</dt>
                   33387:    <dt><dfn id="attr-body-marginbottom" title="attr-body-marginbottom"><code>marginbottom</code></dfn> on <code><a href="the-body-element.html#the-body-element">body</a></code> elements</dt>
                   33388:    <dt><dfn id="attr-body-marginheight" title="attr-body-marginheight"><code>marginheight</code></dfn> on <code><a href="the-body-element.html#the-body-element">body</a></code> elements</dt>
                   33389:    <dt><dfn id="attr-body-marginleft" title="attr-body-marginleft"><code>marginleft</code></dfn> on <code><a href="the-body-element.html#the-body-element">body</a></code> elements</dt>
                   33390:    <dt><dfn id="attr-body-marginright" title="attr-body-marginright"><code>marginright</code></dfn> on <code><a href="the-body-element.html#the-body-element">body</a></code> elements</dt>
                   33391:    <dt><dfn id="attr-body-margintop" title="attr-body-margintop"><code>margintop</code></dfn> on <code><a href="the-body-element.html#the-body-element">body</a></code> elements</dt>
                   33392:    <dt><dfn id="attr-body-marginwidth" title="attr-body-marginwidth"><code>marginwidth</code></dfn> on <code><a href="the-body-element.html#the-body-element">body</a></code> elements</dt>
                   33393:    <dt><dfn id="attr-body-text" title="attr-body-text"><code>text</code></dfn> on <code><a href="the-body-element.html#the-body-element">body</a></code> elements</dt>
                   33394:    <dt><dfn id="attr-body-vlink" title="attr-body-vlink"><code>vlink</code></dfn> on <code><a href="the-body-element.html#the-body-element">body</a></code> elements</dt>
                   33395:    <dt><dfn id="attr-br-clear" title="attr-br-clear"><code>clear</code></dfn> on <code><a href="the-br-element.html#the-br-element">br</a></code> elements</dt>
                   33396:    <dt><dfn id="attr-caption-align" title="attr-caption-align"><code>align</code></dfn> on <code><a href="the-caption-element.html#the-caption-element">caption</a></code> elements</dt>
                   33397:    <dt><dfn id="attr-col-align" title="attr-col-align"><code>align</code></dfn> on <code><a href="the-col-element.html#the-col-element">col</a></code> elements</dt>
                   33398:    <dt><dfn id="attr-col-char" title="attr-col-char"><code>char</code></dfn> on <code><a href="the-col-element.html#the-col-element">col</a></code> elements</dt>
                   33399:    <dt><dfn id="attr-col-charoff" title="attr-col-charoff"><code>charoff</code></dfn> on <code><a href="the-col-element.html#the-col-element">col</a></code> elements</dt>
                   33400:    <dt><dfn id="attr-col-valign" title="attr-col-valign"><code>valign</code></dfn> on <code><a href="the-col-element.html#the-col-element">col</a></code> elements</dt>
                   33401:    <dt><dfn id="attr-col-width" title="attr-col-width"><code>width</code></dfn> on <code><a href="the-col-element.html#the-col-element">col</a></code> elements</dt>
                   33402:    <dt><dfn id="attr-div-align" title="attr-div-align"><code>align</code></dfn> on <code><a href="the-div-element.html#the-div-element">div</a></code> elements</dt>
                   33403:    <dt><dfn id="attr-dl-compact" title="attr-dl-compact"><code>compact</code></dfn> on <code><a href="the-dl-element.html#the-dl-element">dl</a></code> elements</dt>
                   33404:    <dt><dfn id="attr-embed-align" title="attr-embed-align"><code>align</code></dfn> on <code><a href="the-embed-element.html#the-embed-element">embed</a></code> elements</dt>
                   33405:    <dt><dfn id="attr-embed-hspace" title="attr-embed-hspace"><code>hspace</code></dfn> on <code><a href="the-embed-element.html#the-embed-element">embed</a></code> elements</dt>
                   33406:    <dt><dfn id="attr-embed-vspace" title="attr-embed-vspace"><code>vspace</code></dfn> on <code><a href="the-embed-element.html#the-embed-element">embed</a></code> elements</dt>
                   33407:    <dt><dfn id="attr-hr-align" title="attr-hr-align"><code>align</code></dfn> on <code><a href="the-hr-element.html#the-hr-element">hr</a></code> elements</dt>
                   33408:    <dt><dfn id="attr-hr-color" title="attr-hr-color"><code>color</code></dfn> on <code><a href="the-hr-element.html#the-hr-element">hr</a></code> elements</dt>
                   33409:    <dt><dfn id="attr-hr-noshade" title="attr-hr-noshade"><code>noshade</code></dfn> on <code><a href="the-hr-element.html#the-hr-element">hr</a></code> elements</dt>
                   33410:    <dt><dfn id="attr-hr-size" title="attr-hr-size"><code>size</code></dfn> on <code><a href="the-hr-element.html#the-hr-element">hr</a></code> elements</dt>
                   33411:    <dt><dfn id="attr-hr-width" title="attr-hr-width"><code>width</code></dfn> on <code><a href="the-hr-element.html#the-hr-element">hr</a></code> elements</dt>
                   33412:    <dt><dfn id="attr-hx-align" title="attr-hx-align"><code>align</code></dfn> on <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h1</a></code>&#8212;<code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h6</a></code> elements</dt>
                   33413:    <dt><dfn id="attr-iframe-align" title="attr-iframe-align"><code>align</code></dfn> on <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> elements</dt>
                   33414:    <dt><dfn id="attr-iframe-allowtransparency" title="attr-iframe-allowtransparency"><code>allowtransparency</code></dfn> on <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> elements</dt>
                   33415:    <dt><dfn id="attr-iframe-frameborder" title="attr-iframe-frameborder"><code>frameborder</code></dfn> on <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> elements</dt>
                   33416:    <dt><dfn id="attr-iframe-hspace" title="attr-iframe-hspace"><code>hspace</code></dfn> on <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> elements</dt>
                   33417:    <dt><dfn id="attr-iframe-marginheight" title="attr-iframe-marginheight"><code>marginheight</code></dfn> on <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> elements</dt>
                   33418:    <dt><dfn id="attr-iframe-marginwidth" title="attr-iframe-marginwidth"><code>marginwidth</code></dfn> on <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> elements</dt>
                   33419:    <dt><dfn id="attr-iframe-scrolling" title="attr-iframe-scrolling"><code>scrolling</code></dfn> on <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> elements</dt>
                   33420:    <dt><dfn id="attr-iframe-vspace" title="attr-iframe-vspace"><code>vspace</code></dfn> on <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> elements</dt>
                   33421:    <dt><dfn id="attr-input-align" title="attr-input-align"><code>align</code></dfn> on <code><a href="the-input-element.html#the-input-element">input</a></code> elements</dt>
                   33422:    <dt><dfn id="attr-input-hspace" title="attr-input-hspace"><code>hspace</code></dfn> on <code><a href="the-input-element.html#the-input-element">input</a></code> elements</dt>
                   33423:    <dt><dfn id="attr-input-vspace" title="attr-input-vspace"><code>vspace</code></dfn> on <code><a href="the-input-element.html#the-input-element">input</a></code> elements</dt>
                   33424:    <dt><dfn id="attr-img-align" title="attr-img-align"><code>align</code></dfn> on <code><a href="the-img-element.html#the-img-element">img</a></code> elements</dt>
                   33425:    <dt><dfn id="attr-img-border" title="attr-img-border"><code>border</code></dfn> on <code><a href="the-img-element.html#the-img-element">img</a></code> elements (except as noted in the previous section)</dt>
                   33426:    <dt><dfn id="attr-img-hspace" title="attr-img-hspace"><code>hspace</code></dfn> on <code><a href="the-img-element.html#the-img-element">img</a></code> elements</dt>
                   33427:    <dt><dfn id="attr-img-vspace" title="attr-img-vspace"><code>vspace</code></dfn> on <code><a href="the-img-element.html#the-img-element">img</a></code> elements</dt>
                   33428:    <dt><dfn id="attr-legend-align" title="attr-legend-align"><code>align</code></dfn> on <code><a href="the-legend-element.html#the-legend-element">legend</a></code> elements</dt>
                   33429:    <dt><dfn id="attr-li-type" title="attr-li-type"><code>type</code></dfn> on <code><a href="the-li-element.html#the-li-element">li</a></code> elements</dt>
                   33430:    <dt><dfn id="attr-menu-compact" title="attr-menu-compact"><code>compact</code></dfn> on <code><a href="#the-menu-element">menu</a></code> elements</dt>
                   33431:    <dt><dfn id="attr-object-align" title="attr-object-align"><code>align</code></dfn> on <code><a href="the-object-element.html#the-object-element">object</a></code> elements</dt>
                   33432:    <dt><dfn id="attr-object-border" title="attr-object-border"><code>border</code></dfn> on <code><a href="the-object-element.html#the-object-element">object</a></code> elements</dt>
                   33433:    <dt><dfn id="attr-object-hspace" title="attr-object-hspace"><code>hspace</code></dfn> on <code><a href="the-object-element.html#the-object-element">object</a></code> elements</dt>
                   33434:    <dt><dfn id="attr-object-vspace" title="attr-object-vspace"><code>vspace</code></dfn> on <code><a href="the-object-element.html#the-object-element">object</a></code> elements</dt>
                   33435:    <dt><dfn id="attr-ol-compact" title="attr-ol-compact"><code>compact</code></dfn> on <code><a href="the-ol-element.html#the-ol-element">ol</a></code> elements</dt>
                   33436:    <dt><dfn id="attr-p-align" title="attr-p-align"><code>align</code></dfn> on <code><a href="the-p-element.html#the-p-element">p</a></code> elements</dt>
                   33437:    <dt><dfn id="attr-pre-width" title="attr-pre-width"><code>width</code></dfn> on <code><a href="the-pre-element.html#the-pre-element">pre</a></code> elements</dt>
                   33438:    <dt><dfn id="attr-table-align" title="attr-table-align"><code>align</code></dfn> on <code><a href="the-table-element.html#the-table-element">table</a></code> elements</dt>
                   33439:    <dt><dfn id="attr-table-bgcolor" title="attr-table-bgcolor"><code>bgcolor</code></dfn> on <code><a href="the-table-element.html#the-table-element">table</a></code> elements</dt>
                   33440:    <dt><dfn id="attr-table-cellpadding" title="attr-table-cellpadding"><code>cellpadding</code></dfn> on <code><a href="the-table-element.html#the-table-element">table</a></code> elements</dt>
                   33441:    <dt><dfn id="attr-table-cellspacing" title="attr-table-cellspacing"><code>cellspacing</code></dfn> on <code><a href="the-table-element.html#the-table-element">table</a></code> elements</dt>
                   33442:    <dt><dfn id="attr-table-frame" title="attr-table-frame"><code>frame</code></dfn> on <code><a href="the-table-element.html#the-table-element">table</a></code> elements</dt>
                   33443:    <dt><dfn id="attr-table-rules" title="attr-table-rules"><code>rules</code></dfn> on <code><a href="the-table-element.html#the-table-element">table</a></code> elements</dt>
                   33444:    <dt><dfn id="attr-table-width" title="attr-table-width"><code>width</code></dfn> on <code><a href="the-table-element.html#the-table-element">table</a></code> elements</dt>
                   33445:    <dt><dfn id="attr-tbody-align" title="attr-tbody-align"><code>align</code></dfn> on <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, and <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code> elements</dt>
                   33446:    <dt><dfn id="attr-tbody-char" title="attr-tbody-char"><code>char</code></dfn> on <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, and <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code> elements</dt>
                   33447:    <dt><dfn id="attr-tbody-charoff" title="attr-tbody-charoff"><code>charoff</code></dfn> on <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, and <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code> elements</dt>
                   33448:    <dt><dfn id="attr-tbody-valign" title="attr-tbody-vAlign"><code>valign</code></dfn> on <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, and <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code> elements</dt>
                   33449:    <dt><dfn id="attr-tdth-align" title="attr-tdth-align"><code>align</code></dfn> on <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements</dt>
                   33450:    <dt><dfn id="attr-tdth-bgcolor" title="attr-tdth-bgcolor"><code>bgcolor</code></dfn> on <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements</dt>
                   33451:    <dt><dfn id="attr-tdth-char" title="attr-tdth-char"><code>char</code></dfn> on <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements</dt>
                   33452:    <dt><dfn id="attr-tdth-charoff" title="attr-tdth-charoff"><code>charoff</code></dfn> on <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements</dt>
                   33453:    <dt><dfn id="attr-tdth-height" title="attr-tdth-height"><code>height</code></dfn> on <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements</dt>
                   33454:    <dt><dfn id="attr-tdth-nowrap" title="attr-tdth-nowrap"><code>nowrap</code></dfn> on <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements</dt>
                   33455:    <dt><dfn id="attr-tdth-valign" title="attr-tdth-valign"><code>valign</code></dfn> on <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements</dt>
                   33456:    <dt><dfn id="attr-tdth-width" title="attr-tdth-width"><code>width</code></dfn> on <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements</dt>
                   33457:    <dt><dfn id="attr-tr-align" title="attr-tr-align"><code>align</code></dfn> on <code><a href="the-tr-element.html#the-tr-element">tr</a></code> elements</dt>
                   33458:    <dt><dfn id="attr-tr-bgcolor" title="attr-tr-bgcolor"><code>bgcolor</code></dfn> on <code><a href="the-tr-element.html#the-tr-element">tr</a></code> elements</dt>
                   33459:    <dt><dfn id="attr-tr-char" title="attr-tr-char"><code>char</code></dfn> on <code><a href="the-tr-element.html#the-tr-element">tr</a></code> elements</dt>
                   33460:    <dt><dfn id="attr-tr-charoff" title="attr-tr-charoff"><code>charoff</code></dfn> on <code><a href="the-tr-element.html#the-tr-element">tr</a></code> elements</dt>
                   33461:    <dt><dfn id="attr-tr-valign" title="attr-tr-valign"><code>valign</code></dfn> on <code><a href="the-tr-element.html#the-tr-element">tr</a></code> elements</dt>
                   33462:    <dt><dfn id="attr-ul-compact" title="attr-ul-compact"><code>compact</code></dfn> on <code><a href="the-ul-element.html#the-ul-element">ul</a></code> elements</dt>
                   33463:    <dt><dfn id="attr-ul-type" title="attr-ul-type"><code>type</code></dfn> on <code><a href="the-ul-element.html#the-ul-element">ul</a></code> elements</dt>
                   33464:    <dt><dfn id="attr-background" title="attr-background"><code>background</code></dfn> on <code><a href="the-body-element.html#the-body-element">body</a></code>, <code><a href="the-table-element.html#the-table-element">table</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>, <code><a href="the-tr-element.html#the-tr-element">tr</a></code>, <code><a href="the-td-element.html#the-td-element">td</a></code>, and <code><a href="the-th-element.html#the-th-element">th</a></code> elements</dt>
                   33465:    <dd><p>Use CSS instead.</p></dd>
                   33466: 
                   33467:   </dl><hr><p>The <code title="attr-table-border"><a href="the-table-element.html#attr-table-border">border</a></code> attribute on
                   33468:   the <code><a href="the-table-element.html#the-table-element">table</a></code> element can be used to provide basic fallback
                   33469:   styling for the purpose of making tables legible in browsing
                   33470:   environments where CSS support is limited or absent, such as
                   33471:   text-based browsers, WYSIWYG editors, and in situations where CSS
                   33472:   support is disabled or the style sheet is lost. Only the empty
                   33473:   string and the value "<code title="">1</code>" may be used as <code title="attr-table-border"><a href="the-table-element.html#attr-table-border">border</a></code> values for this purpose.
                   33474:   Other values are considered obsolete. To regulate the thickness of
                   33475:   such borders, authors should instead use CSS.</p>
                   33476: 
                   33477: 
                   33478:   <div class="impl">
                   33479: 
                   33480:   <h3 id="requirements-for-implementations"><span class="secno">11.3 </span>Requirements for implementations</h3>
                   33481: 
                   33482:   <h4 id="the-applet-element"><span class="secno">11.3.1 </span>The <dfn><code>applet</code></dfn> element</h4>
                   33483: 
                   33484:   <p>The <code><a href="#the-applet-element">applet</a></code> element is a Java-specific variant of the
                   33485:   <code><a href="the-embed-element.html#the-embed-element">embed</a></code> element. The <code><a href="#the-applet-element">applet</a></code> element is now
                   33486:   obsoleted so that all extension frameworks (Java, .NET, Flash, etc)
                   33487:   are handled in a consistent manner.</p>
                   33488: 
                   33489:   <p id="sandboxPluginApplet">When the element is still in the
                   33490:   <a href="#stack-of-open-elements">stack of open elements</a> of an <a href="#html-parser">HTML parser</a>
                   33491:   or <a href="#xml-parser">XML parser</a>, and when the element is not <a href="infrastructure.html#in-a-document">in a
                   33492:   <code>Document</code></a>, and when the element's document is not
                   33493:   <a href="#fully-active">fully active</a>, and when the element's
                   33494:   <code><a href="dom.html#document">Document</a></code>'s <a href="#active-sandboxing-flag-set">active sandboxing flag set</a> has
                   33495:   its <a href="#sandboxed-plugins-browsing-context-flag">sandboxed plugins browsing context flag</a> set, and
                   33496:   when the element has an ancestor <a href="media-elements.html#media-element">media element</a>, and
                   33497:   when the element has an ancestor <code><a href="the-object-element.html#the-object-element">object</a></code> element that is
                   33498:   <em>not</em> showing its <a href="content-models.html#fallback-content">fallback content</a>, and when no
                   33499:   Java Language runtime <a href="infrastructure.html#plugin">plugin</a> is available, and when one
                   33500:   <em>is</em> available but it is disabled, the element
                   33501:   <a href="#represents">represents</a> its contents.</p>
                   33502: 
                   33503:   <!-- we assume here that the Java plugin can't be <span
                   33504:   title="concept-plugin-secure">secured</span>; if anyone does end up
                   33505:   securing one we can always change this -->
                   33506: 
                   33507:   <p>Otherwise, the user agent should instantiate a Java Language
                   33508:   runtime <a href="infrastructure.html#plugin">plugin</a>, and should pass the names and values of
                   33509:   all the attributes on the element, in the order they were added to
                   33510:   the element, with the attributes added by the parser being ordered
                   33511:   in source order, and then a parameter named "PARAM" whose value is
                   33512:   null, and then all the names and values of <a href="the-param-element.html#concept-param-parameter" title="concept-param-parameter">parameters</a> given by
                   33513:   <code><a href="the-param-element.html#the-param-element">param</a></code> elements that are children of the
                   33514:   <code><a href="#the-applet-element">applet</a></code> element, in <a href="infrastructure.html#tree-order">tree order</a>, to the
                   33515:   <a href="infrastructure.html#plugin">plugin</a> used. If the <a href="infrastructure.html#plugin">plugin</a> supports a
                   33516:   scriptable interface, the <code><a href="#htmlappletelement">HTMLAppletElement</a></code> object
                   33517:   representing the element should expose that interface. The
                   33518:   <code><a href="#the-applet-element">applet</a></code> element <a href="#represents">represents</a> the
                   33519:   <a href="infrastructure.html#plugin">plugin</a>.</p>
                   33520: 
                   33521:   <!-- If we ever make this fetch anything manually, remember to delay
                   33522:   the load event, and to include ", from the element's <span>browsing
                   33523:   context scope origin</span> if it has one" when fetching -->
                   33524: 
                   33525:   <p class="note">The <code><a href="#the-applet-element">applet</a></code> element is unaffected by the
                   33526:   CSS 'display' property. The Java Language runtime is instantiated
                   33527:   even if the element is hidden with a 'display:none' CSS style.</p>
                   33528: 
                   33529:   <p>The <code><a href="#the-applet-element">applet</a></code> element must implement the
                   33530:   <code><a href="#htmlappletelement">HTMLAppletElement</a></code> interface.</p>
                   33531: 
                   33532:   <pre class="idl">interface <dfn id="htmlappletelement">HTMLAppletElement</dfn> : <a href="elements.html#htmlelement">HTMLElement</a> {
                   33533:            attribute DOMString <a href="#dom-applet-align" title="dom-applet-align">align</a>;
                   33534:            attribute DOMString <a href="#dom-applet-alt" title="dom-applet-alt">alt</a>;
                   33535:            attribute DOMString <a href="#dom-applet-archive" title="dom-applet-archive">archive</a>;
                   33536:            attribute DOMString <a href="#dom-applet-code" title="dom-applet-code">code</a>;
                   33537:            attribute DOMString <a href="#dom-applet-codebase" title="dom-applet-codeBase">codeBase</a>;
                   33538:            attribute DOMString <a href="#dom-applet-height" title="dom-applet-height">height</a>;
                   33539:            attribute unsigned long <a href="#dom-applet-hspace" title="dom-applet-hspace">hspace</a>;
                   33540:            attribute DOMString <a href="#dom-applet-name" title="dom-applet-name">name</a>;
                   33541:            attribute DOMString _<a href="#dom-applet-object" title="dom-applet-object">object</a>; // the underscore is not part of the identifier <!-- it's a Web IDL escaping mechanism -->
                   33542:            attribute unsigned long <a href="#dom-applet-vspace" title="dom-applet-vspace">vspace</a>;
                   33543:            attribute DOMString <a href="#dom-applet-width" title="dom-applet-width">width</a>;
                   33544: };</pre>
                   33545: 
                   33546:   <p>The <dfn id="dom-applet-align" title="dom-applet-align"><code>align</code></dfn>, <dfn id="dom-applet-alt" title="dom-applet-alt"><code>alt</code></dfn>, <dfn id="dom-applet-archive" title="dom-applet-archive"><code>archive</code></dfn>, <dfn id="dom-applet-code" title="dom-applet-code"><code>code</code></dfn>, <dfn id="dom-applet-height" title="dom-applet-height"><code>height</code></dfn>, <dfn id="dom-applet-hspace" title="dom-applet-hspace"><code>hspace</code></dfn>, <dfn id="dom-applet-name" title="dom-applet-name"><code>name</code></dfn>, <dfn id="dom-applet-object" title="dom-applet-object"><code>object</code></dfn>, <dfn id="dom-applet-vspace" title="dom-applet-vspace"><code>vspace</code></dfn>, and <dfn id="dom-applet-width" title="dom-applet-width"><code>width</code></dfn> IDL attributes
                   33547:   must <a href="common-dom-interfaces.html#reflect">reflect</a> the respective content attributes of the
                   33548:   same name. For the purposes of reflection, the <code><a href="#the-applet-element">applet</a></code>
                   33549:   element's <code title="attr-applet-object">object</code> content
                   33550:   attribute is defined as containing a <a href="urls.html#url">URL</a>.</p>
                   33551: 
                   33552:   <p>The <dfn id="dom-applet-codebase" title="dom-applet-codeBase"><code>codeBase</code></dfn>
                   33553:   IDL attribute must <a href="common-dom-interfaces.html#reflect">reflect</a> the <code title="attr-applet-codebase">codebase</code> content attribute,
                   33554:   which for the purposes of reflection is defined as containing a
                   33555:   <a href="urls.html#url">URL</a>.</p>
                   33556: 
                   33557: 
                   33558:   <h4 id="the-marquee-element-0"><span class="secno">11.3.2 </span>The <dfn><code>marquee</code></dfn> element</h4>
                   33559: 
                   33560:   <p>The <code><a href="#the-marquee-element-0">marquee</a></code> element is a presentational element that
                   33561:   animates content. CSS transitions and animations are a more
                   33562:   appropriate mechanism.</p>
                   33563: 
                   33564:   <p>The <a href="#task-source">task source</a> for tasks mentioned in this section
                   33565:   is the <a href="#dom-manipulation-task-source">DOM manipulation task source</a>.</p>
                   33566: 
                   33567:   <p>The <code><a href="#the-marquee-element-0">marquee</a></code> element must implement the
                   33568:   <code><a href="#htmlmarqueeelement">HTMLMarqueeElement</a></code> interface.</p>
                   33569: 
                   33570:   <pre class="idl">interface <dfn id="htmlmarqueeelement">HTMLMarqueeElement</dfn> : <a href="elements.html#htmlelement">HTMLElement</a> {
                   33571:            attribute DOMString <a href="#dom-marquee-behavior" title="dom-marquee-behavior">behavior</a>;
                   33572:            attribute DOMString <a href="#dom-marquee-bgcolor" title="dom-marquee-bgColor">bgColor</a>;
                   33573:            attribute DOMString <a href="#dom-marquee-direction" title="dom-marquee-direction">direction</a>;
                   33574:            attribute DOMString <a href="#dom-marquee-height" title="dom-marquee-height">height</a>;
                   33575:            attribute unsigned long <a href="#dom-marquee-hspace" title="dom-marquee-hspace">hspace</a>;
                   33576:            attribute long <a href="#dom-marquee-loop" title="dom-marquee-loop">loop</a>;
                   33577:            attribute unsigned long <a href="#dom-marquee-scrollamount" title="dom-marquee-scrollamount">scrollAmount</a>;
                   33578:            attribute unsigned long <a href="#dom-marquee-scrolldelay" title="dom-marquee-scrollDelay">scrollDelay</a>;
                   33579:            attribute boolean <a href="#dom-marquee-truespeed" title="dom-marquee-trueSpeed">trueSpeed</a>;
                   33580:            attribute unsigned long <a href="#dom-marquee-vspace" title="dom-marquee-vspace">vspace</a>;
                   33581:            attribute DOMString <a href="#dom-marquee-width" title="dom-marquee-width">width</a>;
                   33582: 
                   33583:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-marquee-onbounce" title="handler-marquee-onbounce">onbounce</a>;
                   33584:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-marquee-onfinish" title="handler-marquee-onfinish">onfinish</a>;
                   33585:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-marquee-onstart" title="handler-marquee-onstart">onstart</a>;
                   33586: 
                   33587:   void <a href="#dom-marquee-start" title="dom-marquee-start">start</a>();
                   33588:   void <a href="#dom-marquee-stop" title="dom-marquee-stop">stop</a>();
                   33589: };</pre>
                   33590: 
                   33591:   <p>A <code><a href="#the-marquee-element-0">marquee</a></code> element can be <dfn id="concept-marquee-on" title="concept-marquee-on">turned on</dfn> or <dfn id="concept-marquee-off" title="concept-marquee-off">turned off</dfn>. When it is created, it
                   33592:   is <a href="#concept-marquee-on" title="concept-marquee-on">turned on</a>.</p>
                   33593: 
                   33594:   <p>When the <dfn id="dom-marquee-start" title="dom-marquee-start"><code>start()</code></dfn> method is
                   33595:   called, the <code><a href="#the-marquee-element-0">marquee</a></code> element must be <a href="#concept-marquee-on" title="concept-marquee-on">turned on</a>.</p>
                   33596: 
                   33597:   <p>When the <dfn id="dom-marquee-stop" title="dom-marquee-stop"><code>stop()</code></dfn>
                   33598:   method is called, the <code><a href="#the-marquee-element-0">marquee</a></code> element must be <a href="#concept-marquee-off" title="concept-marquee-off">turned off</a>.</p>
                   33599: 
                   33600:   <p>When a <code><a href="#the-marquee-element-0">marquee</a></code> element is created, the user agent
                   33601:   must <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire a simple event</a>
                   33602:   named <code title="event-start">start</code> at the element.</p>
                   33603: 
                   33604:   <hr><p>The <dfn id="attr-marquee-behavior" title="attr-marquee-behavior"><code>behavior</code></dfn> content
                   33605:   attribute on <code><a href="#the-marquee-element-0">marquee</a></code> elements is an <a href="common-microsyntaxes.html#enumerated-attribute">enumerated
                   33606:   attribute</a> with the following keywords (all
                   33607:   non-conforming):</p>
                   33608: 
                   33609:   <table><thead><tr><th>Keyword
                   33610:      </th><th>State
                   33611:    </th></tr></thead><tbody><tr><td><code title="">scroll</code>
                   33612:      </td><td><dfn id="attr-marquee-behavior-scroll" title="attr-marquee-behavior-scroll">scroll</dfn>
                   33613:     </td></tr><tr><td><code title="">slide</code>
                   33614:      </td><td><dfn id="attr-marquee-behavior-slide" title="attr-marquee-behavior-slide">slide</dfn>
                   33615:     </td></tr><tr><td><code title="">alternate</code>
                   33616:      </td><td><dfn id="attr-marquee-behavior-alternate" title="attr-marquee-behavior-alternate">alternate</dfn>
                   33617:   </td></tr></tbody></table><p>The <i>missing value default</i> is the <a href="#attr-marquee-behavior-scroll" title="attr-marquee-behavior-scroll">scroll</a> state.</p>
                   33618: 
                   33619:   <hr><p>The <dfn id="attr-marquee-direction" title="attr-marquee-direction"><code>direction</code></dfn> content
                   33620:   attribute on <code><a href="#the-marquee-element-0">marquee</a></code> elements is an <a href="common-microsyntaxes.html#enumerated-attribute">enumerated
                   33621:   attribute</a> with the following keywords (all
                   33622:   non-conforming):</p>
                   33623: 
                   33624:   <table><thead><tr><th>Keyword
                   33625:      </th><th>State
                   33626:    </th></tr></thead><tbody><tr><td><code title="">left</code>
                   33627:      </td><td><dfn id="attr-marquee-direction-left" title="attr-marquee-direction-left">left</dfn>
                   33628:     </td></tr><tr><td><code title="">right</code>
                   33629:      </td><td><dfn id="attr-marquee-direction-right" title="attr-marquee-direction-right">right</dfn>
                   33630:     </td></tr><tr><td><code title="">up</code>
                   33631:      </td><td><dfn id="attr-marquee-direction-up" title="attr-marquee-direction-up">up</dfn>
                   33632:     </td></tr><tr><td><code title="">down</code>
                   33633:      </td><td><dfn id="attr-marquee-direction-down" title="attr-marquee-direction-down">down</dfn>
                   33634:   </td></tr></tbody></table><p>The <i>missing value default</i> is the <a href="#attr-marquee-direction-left" title="attr-marquee-direction-left">left</a> state.</p>
                   33635: 
                   33636:   <hr><p>The <dfn id="attr-marquee-truespeed" title="attr-marquee-truespeed"><code>truespeed</code></dfn> content
                   33637:   attribute on <code><a href="#the-marquee-element-0">marquee</a></code> elements is a <a href="common-microsyntaxes.html#boolean-attribute">boolean
                   33638:   attribute</a>.</p>
                   33639: 
                   33640:   <hr><p>A <code><a href="#the-marquee-element-0">marquee</a></code> element has a <dfn id="marquee-scroll-interval">marquee scroll
                   33641:   interval</dfn>, which is obtained as follows:</p>
                   33642: 
                   33643:   <ol><li><p>If the element has a <code title="attr-marquee-scrolldelay">scrolldelay</code> attribute, and
                   33644:    parsing its value using the <a href="common-microsyntaxes.html#rules-for-parsing-non-negative-integers">rules for parsing non-negative
                   33645:    integers</a> does not return an error, then let <var title="">delay</var> be the parsed value. Otherwise, let <var title="">delay</var> be 85.</p></li>
                   33646: 
                   33647:    <li><p>If the element does not have a <code title="attr-marquee-truespeed"><a href="#attr-marquee-truespeed">truespeed</a></code> attribute, and the
                   33648:    <var title="">delay</var> value is less than 60, then let <var title="">delay</var> be 60 instead.</p></li>
                   33649: 
                   33650:    <li><p>The <a href="#marquee-scroll-interval">marquee scroll interval</a> is <var title="">delay</var>, interpreted in milliseconds.</p></li>
                   33651: 
                   33652:   </ol><hr><p>A <code><a href="#the-marquee-element-0">marquee</a></code> element has a <dfn id="marquee-scroll-distance">marquee scroll
                   33653:   distance</dfn>, which, if the element has a <code title="attr-marquee-scrollamount">scrollamount</code> attribute, and
                   33654:   parsing its value using the <a href="common-microsyntaxes.html#rules-for-parsing-non-negative-integers">rules for parsing non-negative
                   33655:   integers</a> does not return an error, is the parsed value
                   33656:   interpreted in CSS pixels, and otherwise is 6 CSS pixels.</p>
                   33657: 
                   33658:   <hr><p>A <code><a href="#the-marquee-element-0">marquee</a></code> element has a <dfn id="marquee-loop-count">marquee loop
                   33659:   count</dfn>, which, if the element has a <code title="attr-marquee-loop">loop</code> attribute, and parsing its
                   33660:   value using the <a href="common-microsyntaxes.html#rules-for-parsing-integers">rules for parsing integers</a> does not
                   33661:   return an error or a number less than 1, is the parsed value, and
                   33662:   otherwise is &#8722;1.</p>
                   33663: 
                   33664:   <p>The <dfn id="dom-marquee-loop" title="dom-marquee-loop"><code>loop</code></dfn> IDL
                   33665:   attribute, on getting, must return the element's <a href="#marquee-loop-count">marquee loop
                   33666:   count</a>; and on setting, if the new value is different than the
                   33667:   element's <a href="#marquee-loop-count">marquee loop count</a> and either greater than
                   33668:   zero or equal to &#8722;1, must set the element's <code title="attr-marquee-loop">loop</code> content attribute (adding it
                   33669:   if necessary) to the <a href="common-microsyntaxes.html#valid-integer">valid integer</a> that represents the
                   33670:   new value. (Other values are ignored.)</p>
                   33671: 
                   33672:   <p>A <code><a href="#the-marquee-element-0">marquee</a></code> element also has a <dfn id="marquee-current-loop-index">marquee current
                   33673:   loop index</dfn>, which is zero when the element is created.</p>
                   33674: 
                   33675:   <p>The rendering layer will occasionally <dfn id="increment-the-marquee-current-loop-index">increment the marquee
                   33676:   current loop index</dfn>, which must cause the following steps to be
                   33677:   run:</p>
                   33678: 
                   33679:   <ol><li><p>If the <a href="#marquee-loop-count">marquee loop count</a> is &#8722;1, then
                   33680:    abort these steps.</p>
                   33681: 
                   33682:    </li><li><p>Increment the <a href="#marquee-current-loop-index">marquee current loop index</a> by
                   33683:    one.</p></li>
                   33684: 
                   33685:    <li>
                   33686: 
                   33687:     <p>If the <a href="#marquee-current-loop-index">marquee current loop index</a> is now equal to
                   33688:     or greater than the element's <a href="#marquee-loop-count">marquee loop count</a>,
                   33689:     <a href="#concept-marquee-off" title="concept-marquee-off">turn off</a> the
                   33690:     <code><a href="#the-marquee-element-0">marquee</a></code> element and <a href="#queue-a-task">queue a task</a> to
                   33691:     <a href="#fire-a-simple-event">fire a simple event</a> named <code title="event-finish">finish</code> at the <code><a href="#the-marquee-element-0">marquee</a></code>
                   33692:     element.</p>
                   33693: 
                   33694:     <p>Otherwise, if the <code title="attr-marquee-behavior"><a href="#attr-marquee-behavior">behavior</a></code> attribute is in the
                   33695:     <a href="#attr-marquee-behavior-alternate" title="attr-marquee-behavior-alternate">alternate</a>
                   33696:     state, then <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire a simple
                   33697:     event</a> named <code title="event-bounce">bounce</code> at
                   33698:     the <code><a href="#the-marquee-element-0">marquee</a></code> element.</p>
                   33699: 
                   33700:     <p>Otherwise, <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire a simple
                   33701:     event</a> named <code title="event-start">start</code> at the
                   33702:     <code><a href="#the-marquee-element-0">marquee</a></code> element.</p>
                   33703: 
                   33704:    </li>
                   33705: 
                   33706:   </ol><hr><p>The following are the <a href="#event-handlers">event handlers</a> (and their
                   33707:   corresponding <a href="#event-handler-event-type" title="event handler event type">event handler
                   33708:   event types</a>) that must be supported, as content and IDL
                   33709:   attributes, by <code><a href="#the-marquee-element-0">marquee</a></code> elements:</p>
                   33710: 
                   33711:   <table><thead><tr><th><a href="#event-handlers" title="event handlers">Event handler</a> </th><th><a href="#event-handler-event-type">Event handler event type</a>
                   33712:    </th></tr></thead><tbody><tr><td><dfn id="handler-marquee-onbounce" title="handler-marquee-onbounce"><code>onbounce</code></dfn> </td><td> <code title="event-bounce">bounce</code>
                   33713:     </td></tr><tr><td><dfn id="handler-marquee-onfinish" title="handler-marquee-onfinish"><code>onfinish</code></dfn> </td><td> <code title="event-finish">finish</code>
                   33714:     </td></tr><tr><td><dfn id="handler-marquee-onstart" title="handler-marquee-onstart"><code>onstart</code></dfn> </td><td> <code title="event-start">start</code>
                   33715:   </td></tr></tbody></table><hr><p>The <dfn id="dom-marquee-behavior" title="dom-marquee-behavior"><code>behavior</code></dfn>, <dfn id="dom-marquee-direction" title="dom-marquee-direction"><code>direction</code></dfn>, <dfn id="dom-marquee-height" title="dom-marquee-height"><code>height</code></dfn>, <dfn id="dom-marquee-hspace" title="dom-marquee-hspace"><code>hspace</code></dfn>, <dfn id="dom-marquee-vspace" title="dom-marquee-vspace"><code>vspace</code></dfn>, and <dfn id="dom-marquee-width" title="dom-marquee-width"><code>width</code></dfn> IDL attributes
                   33716:   must <a href="common-dom-interfaces.html#reflect">reflect</a> the respective content attributes of the
                   33717:   same name.</p>
                   33718: 
                   33719:   <p>The <dfn id="dom-marquee-bgcolor" title="dom-marquee-bgColor"><code>bgColor</code></dfn>
                   33720:   IDL attribute must <a href="common-dom-interfaces.html#reflect">reflect</a> the <code title="attr-marquee-bgcolor">bgcolor</code> content attribute.</p>
                   33721: 
                   33722:   <p>The <dfn id="dom-marquee-scrollamount" title="dom-marquee-scrollAmount"><code>scrollAmount</code></dfn>
                   33723:   IDL attribute must <a href="common-dom-interfaces.html#reflect">reflect</a> the <code title="attr-marquee-scrollamount">scrollamount</code> content
                   33724:   attribute. The default value is 6.</p>
                   33725: 
                   33726:   <p>The <dfn id="dom-marquee-scrolldelay" title="dom-marquee-scrollDelay"><code>scrollDelay</code></dfn> IDL
                   33727:   attribute must <a href="common-dom-interfaces.html#reflect">reflect</a> the <code title="attr-marquee-scrolldelay">scrolldelay</code> content
                   33728:   attribute. The default value is 85.</p>
                   33729: 
                   33730:   <p>The <dfn id="dom-marquee-truespeed" title="dom-marquee-trueSpeed"><code>trueSpeed</code></dfn> IDL
                   33731:   attribute must <a href="common-dom-interfaces.html#reflect">reflect</a> the <code title="attr-marquee-truespeed"><a href="#attr-marquee-truespeed">truespeed</a></code> content
                   33732:   attribute.</p>
                   33733: 
                   33734: 
                   33735:   <h4 id="frames"><span class="secno">11.3.3 </span>Frames</h4>
                   33736: 
                   33737:   <p>The <dfn id="frameset"><code>frameset</code></dfn> element acts as <a href="dom.html#the-body-element-0">the
                   33738:   body element</a> in documents that use frames.</p>
                   33739: 
                   33740:   <p>The <code><a href="#frameset">frameset</a></code> element must implement the
                   33741:   <code><a href="#htmlframesetelement">HTMLFrameSetElement</a></code> interface.</p>
                   33742: 
                   33743:   <pre class="idl">interface <dfn id="htmlframesetelement">HTMLFrameSetElement</dfn> : <a href="elements.html#htmlelement">HTMLElement</a> {
                   33744:            attribute DOMString <a href="#dom-frameset-cols" title="dom-frameset-cols">cols</a>;
                   33745:            attribute DOMString <a href="#dom-frameset-rows" title="dom-frameset-rows">rows</a>;
                   33746:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onafterprint" title="handler-window-onafterprint">onafterprint</a>;
                   33747:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onbeforeprint" title="handler-window-onbeforeprint">onbeforeprint</a>;
                   33748:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onbeforeunload" title="handler-window-onbeforeunload">onbeforeunload</a>;
                   33749:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onblur" title="handler-window-onblur">onblur</a>;
                   33750:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onerror" title="handler-window-onerror">onerror</a>;
                   33751:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onfocus" title="handler-window-onfocus">onfocus</a>;
                   33752:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onhashchange" title="handler-window-onhashchange">onhashchange</a>;
                   33753:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onload" title="handler-window-onload">onload</a>;
                   33754:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onmessage" title="handler-window-onmessage">onmessage</a>;
                   33755:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onoffline" title="handler-window-onoffline">onoffline</a>;
                   33756:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-ononline" title="handler-window-ononline">ononline</a>;
                   33757:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onpagehide" title="handler-window-onpagehide">onpagehide</a>;
                   33758:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onpageshow" title="handler-window-onpageshow">onpageshow</a>;
                   33759:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onpopstate" title="handler-window-onpopstate">onpopstate</a>;
                   33760:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onresize" title="handler-window-onresize">onresize</a>;
                   33761:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onscroll" title="handler-window-onscroll">onscroll</a>;
                   33762:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onstorage" title="handler-window-onstorage">onstorage</a>;
                   33763:            attribute <a href="#eventhandler">EventHandler</a> <a href="#handler-window-onunload" title="handler-window-onunload">onunload</a>;
                   33764: };</pre>
                   33765: 
                   33766:   <p>The <dfn id="dom-frameset-cols" title="dom-frameset-cols"><code>cols</code></dfn> and
                   33767:   <dfn id="dom-frameset-rows" title="dom-frameset-rows"><code>rows</code></dfn> IDL
                   33768:   attributes of the <code><a href="#frameset">frameset</a></code> element must
                   33769:   <a href="common-dom-interfaces.html#reflect">reflect</a> the respective content attributes of the same
                   33770:   name.</p>
                   33771: 
                   33772:   <p>The <code><a href="#frameset">frameset</a></code> element must support the following
                   33773:   <a href="#event-handler-content-attributes">event handler content attributes</a> exposing the
                   33774:   <a href="#event-handlers">event handlers</a> of the <code><a href="#window">Window</a></code> object:</p>
                   33775: 
                   33776:   <ul class="brief"><li><code title="handler-window-onafterprint"><a href="#handler-window-onafterprint">onafterprint</a></code></li>
                   33777:    <li><code title="handler-window-onbeforeprint"><a href="#handler-window-onbeforeprint">onbeforeprint</a></code></li>
                   33778:    <li><code title="handler-window-onbeforeunload"><a href="#handler-window-onbeforeunload">onbeforeunload</a></code></li>
                   33779:    <li><code title="handler-window-onblur"><a href="#handler-window-onblur">onblur</a></code></li>
                   33780:    <li><code title="handler-window-onerror"><a href="#handler-window-onerror">onerror</a></code></li>
                   33781:    <li><code title="handler-window-onfocus"><a href="#handler-window-onfocus">onfocus</a></code></li>
                   33782:    <li><code title="handler-window-onhashchange"><a href="#handler-window-onhashchange">onhashchange</a></code></li>
                   33783:    <li><code title="handler-window-onload"><a href="#handler-window-onload">onload</a></code></li>
                   33784:    <li><code title="handler-window-onmessage"><a href="#handler-window-onmessage">onmessage</a></code></li>
                   33785:    <li><code title="handler-window-onoffline"><a href="#handler-window-onoffline">onoffline</a></code></li>
                   33786:    <li><code title="handler-window-ononline"><a href="#handler-window-ononline">ononline</a></code></li>
                   33787:    <li><code title="handler-window-onpagehide"><a href="#handler-window-onpagehide">onpagehide</a></code></li>
                   33788:    <li><code title="handler-window-onpageshow"><a href="#handler-window-onpageshow">onpageshow</a></code></li>
                   33789:    <li><code title="handler-window-onpopstate"><a href="#handler-window-onpopstate">onpopstate</a></code></li>
                   33790:    <li><code title="handler-window-onresize"><a href="#handler-window-onresize">onresize</a></code></li>
                   33791:    <li><code title="handler-window-onscroll"><a href="#handler-window-onscroll">onscroll</a></code></li>
                   33792:    <li><code title="handler-window-onstorage"><a href="#handler-window-onstorage">onstorage</a></code></li>
                   33793:    <li><code title="handler-window-onunload"><a href="#handler-window-onunload">onunload</a></code></li>
                   33794:   </ul><p>The DOM interface also exposes <a href="#event-handler-idl-attributes">event handler IDL
                   33795:   attributes</a> that mirror those on the <code><a href="#window">Window</a></code>
                   33796:   element.</p>
                   33797: 
                   33798:   <p>The <code title="handler-window-onblur"><a href="#handler-window-onblur">onblur</a></code>, <code title="handler-window-onerror"><a href="#handler-window-onerror">onerror</a></code>, <code title="handler-window-onfocus"><a href="#handler-window-onfocus">onfocus</a></code>, <code title="handler-window-onload"><a href="#handler-window-onload">onload</a></code>, and <code title="handler-window-onscroll"><a href="#handler-window-onscroll">onscroll</a></code> <a href="#event-handler-idl-attributes">event handler
                   33799:   IDL attributes</a> of the <code><a href="#window">Window</a></code> object, exposed on
                   33800:   the <code><a href="#frameset">frameset</a></code> element, shadow the generic <a href="#event-handler-idl-attributes">event
                   33801:   handler IDL attributes</a> with the same names normally supported
                   33802:   by <a href="infrastructure.html#html-elements">HTML elements</a>.</p>
                   33803: 
                   33804:   <hr><p>The <dfn id="frame"><code>frame</code></dfn> element defines a <a href="#nested-browsing-context">nested
                   33805:   browsing context</a> similar to the <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> element,
                   33806:   but rendered within a <code><a href="#frameset">frameset</a></code> element.</p>
                   33807: 
                   33808:   <!-- START of section that's very similar to <iframe> -->
                   33809: 
                   33810:   <p>A <code><a href="#frame">frame</a></code> element is said to be an <dfn id="active-frame-element">active
                   33811:   <code>frame</code> element</dfn> when it is <a href="infrastructure.html#in-a-document">in a
                   33812:   <code>Document</code></a> and its <span>parent element</span>, if
                   33813:   any, is a <code><a href="#frameset">frameset</a></code> element.</p>
                   33814: 
                   33815:   <p>When a <code><a href="#frame">frame</a></code> element is created as an <a href="#active-frame-element">active
                   33816:   <code>frame</code> element</a>, or becomes an <a href="#active-frame-element">active
                   33817:   <code>frame</code> element</a> after not having been one, the
                   33818:   user agent must create a <a href="#nested-browsing-context">nested browsing context</a>, and
                   33819:   then <a href="#process-the-frame-attributes">process the <code>frame</code> attributes</a> for the
                   33820:   first time.</p>
                   33821: 
                   33822:   <p>When a <code><a href="#frame">frame</a></code> element stops being an <a href="#active-frame-element">active
                   33823:   <code>frame</code> element</a>, the user agent must <a href="#a-browsing-context-is-discarded" title="a browsing context is discarded">discard</a> the
                   33824:   <a href="#nested-browsing-context">nested browsing context</a>.</p>
                   33825: 
                   33826:   <p>Whenever a <code><a href="#frame">frame</a></code> element with a <a href="#nested-browsing-context">nested
                   33827:   browsing context</a> has its <code title="attr-frame-src">src</code> attribute set, changed, or
                   33828:   removed, the user agent must <a href="#process-the-frame-attributes">process the <code>frame</code>
                   33829:   attributes</a>.</p> <!-- It doesn't happen when the base URL is
                   33830:   changed, though. -->
                   33831: 
                   33832:   <p>When the user agent is to <dfn id="process-the-frame-attributes">process the <code>frame</code>
                   33833:   attributes</dfn>, it must run the first appropriate steps from the
                   33834:   following list:</p>
                   33835: 
                   33836:   <dl class="switch"><dt>If the element has no <code title="attr-frame-src">src</code> attribute specified, and the
                   33837:    user agent is processing the <code><a href="#frame">frame</a></code>'s attributes for
                   33838:    the first time</dt>
                   33839: 
                   33840:    <dd>
                   33841: 
                   33842:     <p><a href="#queue-a-task">Queue a task</a> to <a href="#fire-a-simple-event">fire a simple event</a>
                   33843:     named <code title="event-load">load</code> at the
                   33844:     <code><a href="#frame">frame</a></code> element.</p>
                   33845: 
                   33846:    </dd>
                   33847: 
                   33848:    <dt>Otherwise</dt>
                   33849: 
                   33850:    <dd>
                   33851: 
                   33852:     <ol><li>
                   33853: 
                   33854:       <p>If the value of the <code title="attr-frame-src">src</code>
                   33855:       attribute is the empty string, let <var title="">url</var> be
                   33856:       the string "<code><a href="urls.html#about:blank">about:blank</a></code>".</p>
                   33857: 
                   33858:       <p>Otherwise, <a href="urls.html#resolve-a-url" title="resolve a url">resolve</a> the
                   33859:       value of the <code title="attr-frame-src">src</code> attribute,
                   33860:       relative to the <code><a href="#frame">frame</a></code> element.</p>
                   33861: 
                   33862:       <p>If that is not successful, then let <var title="">url</var>
                   33863:       be the string "<code><a href="urls.html#about:blank">about:blank</a></code>". Otherwise, let <var title="">url</var> be the resulting <a href="urls.html#absolute-url">absolute
                   33864:       URL</a>.</p>
                   33865: 
                   33866:      </li>
                   33867: 
                   33868:      <li>
                   33869: 
                   33870:       <p><a href="#navigate">Navigate</a><!--DONAV frame--> the element's
                   33871:       <a href="#child-browsing-context">child browsing context</a> to <var title="">url</var>.</p>
                   33872:       
                   33873:      </li>
                   33874: 
                   33875:     </ol></dd>
                   33876: 
                   33877:   </dl><p>Any <a href="#navigate" title="navigate">navigation</a> required of the user
                   33878:   agent in the <a href="#process-the-frame-attributes">process the <code>frame</code> attributes</a>
                   33879:   algorithm must be completed as an <a href="#explicit-self-navigation-override">explicit self-navigation
                   33880:   override</a> and with the <code><a href="#frame">frame</a></code> element's
                   33881:   document's <a href="#browsing-context">browsing context</a> as the <a href="#source-browsing-context">source
                   33882:   browsing context</a>.</p>
                   33883: 
                   33884:   <p>Furthermore, if the <a href="#active-document">active document</a> of the element's
                   33885:   <a href="#child-browsing-context">child browsing context</a> before such a <a href="#navigate" title="navigate">navigation</a> was not <a href="#completely-loaded">completely
                   33886:   loaded</a> at the time of the new <a href="#navigate" title="navigate">navigation</a>, then the <a href="#navigate" title="navigate">navigation</a> must be completed with
                   33887:   <a href="#replacement-enabled">replacement enabled</a>.</p>
                   33888: 
                   33889:   <p>Similarly, if the <a href="#child-browsing-context">child browsing context</a>'s
                   33890:   <a href="#session-history">session history</a> contained only one
                   33891:   <code><a href="dom.html#document">Document</a></code> when the <a href="#process-the-frame-attributes">process the <code>frame</code>
                   33892:   attributes</a> algorithm was invoked, and that was the
                   33893:   <code><a href="urls.html#about:blank">about:blank</a></code> <code><a href="dom.html#document">Document</a></code> created when the
                   33894:   <a href="#child-browsing-context">child browsing context</a> was created, then any <a href="#navigate" title="navigate">navigation</a> required of the user agent in
                   33895:   that algorithm must be completed with <a href="#replacement-enabled">replacement
                   33896:   enabled</a>.</p> <!-- see also the note near similar text for the
                   33897:   location.assign() method -->
                   33898: 
                   33899:   <!-- END of section that's very similar to <iframe> -->
                   33900: 
                   33901:   <p>When the browsing context is created, if a <code title="attr-frame-name">name</code> attribute is present, the
                   33902:   <a href="#browsing-context-name">browsing context name</a> must be set to the value of this
                   33903:   attribute; otherwise, the <a href="#browsing-context-name">browsing context name</a> must be
                   33904:   set to the empty string.</p>
                   33905: 
                   33906:   <p>Whenever the <code title="attr-frame-name">name</code> attribute
                   33907:   is set, the nested <a href="#browsing-context">browsing context</a>'s <a href="#browsing-context-name" title="browsing context name">name</a> must be changed to the new
                   33908:   value. If the attribute is removed, the <a href="#browsing-context-name">browsing context
                   33909:   name</a> must be set to the empty string.</p>
                   33910: 
                   33911:   <p>When content loads in a <code><a href="#frame">frame</a></code>, after any <code title="event-load">load</code> events are fired within the content
                   33912:   itself, the user agent must <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire
                   33913:   a simple event</a> named <code title="event-load">load</code> at
                   33914:   the <code><a href="#frame">frame</a></code> element. When content fails to load (e.g. due
                   33915:   to a network error), then the user agent must <a href="#queue-a-task">queue a
                   33916:   task</a> to <a href="#fire-a-simple-event">fire a simple event</a> named <code title="event-error">error</code> at the element instead.</p>
                   33917: 
                   33918:   <p>The <a href="#task-source">task source</a> for the <a href="#concept-task" title="concept-task">tasks</a> above is the <a href="#dom-manipulation-task-source">DOM
                   33919:   manipulation task source</a>.</p>
                   33920: 
                   33921:   <p>When there is an <a href="dom.html#active-parser">active parser</a> in the
                   33922:   <code><a href="#frame">frame</a></code>, and when anything in the <code><a href="#frame">frame</a></code> is
                   33923:   <a href="#delay-the-load-event" title="delay the load event">delaying the load event</a> of
                   33924:   the <code><a href="#frame">frame</a></code>'s <a href="#browsing-context">browsing context</a>'s
                   33925:   <a href="#active-document">active document</a>, the <code><a href="#frame">frame</a></code> must
                   33926:   <a href="#delay-the-load-event">delay the load event</a> of its document.</p>
                   33927: 
                   33928:   <p>The <code><a href="#frame">frame</a></code> element must implement the
                   33929:   <code><a href="#htmlframeelement">HTMLFrameElement</a></code> interface.</p>
                   33930: 
                   33931:   <pre class="idl">interface <dfn id="htmlframeelement">HTMLFrameElement</dfn> : <a href="elements.html#htmlelement">HTMLElement</a> {
                   33932:            attribute DOMString <a href="#dom-frame-name" title="dom-frame-name">name</a>;
                   33933:            attribute DOMString <a href="#dom-frame-scrolling" title="dom-frame-scrolling">scrolling</a>;
                   33934:            attribute DOMString <a href="#dom-frame-src" title="dom-frame-src">src</a>;
                   33935:            attribute DOMString <a href="#dom-frame-frameborder" title="dom-frame-frameBorder">frameBorder</a>;
                   33936:            attribute DOMString <a href="#dom-frame-longdesc" title="dom-frame-longDesc">longDesc</a>;
                   33937:            attribute boolean <a href="#dom-frame-noresize" title="dom-frame-noResize">noResize</a>;
                   33938:   readonly attribute Document? <a href="#dom-frame-contentdocument" title="dom-frame-contentDocument">contentDocument</a>;
                   33939:   readonly attribute <a href="#windowproxy">WindowProxy</a>? <a href="#dom-frame-contentwindow" title="dom-frame-contentWindow">contentWindow</a>;
                   33940: 
                   33941:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-frame-marginheight" title="dom-frame-marginHeight">marginHeight</a>;
                   33942:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-frame-marginwidth" title="dom-frame-marginWidth">marginWidth</a>;
                   33943: };</pre>
                   33944: 
                   33945:   <p>The <dfn id="dom-frame-name" title="dom-frame-name"><code>name</code></dfn>, <dfn id="dom-frame-scrolling" title="dom-frame-scrolling"><code>scrolling</code></dfn>, and <dfn id="dom-frame-src" title="dom-frame-src"><code>src</code></dfn> IDL attributes of the
                   33946:   <code><a href="#frame">frame</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a> the respective
                   33947:   content attributes of the same name.</p>
                   33948: 
                   33949:   <p>The <dfn id="dom-frame-frameborder" title="dom-frame-frameBorder"><code>frameBorder</code></dfn> IDL
                   33950:   attribute of the <code><a href="#frame">frame</a></code> element must
                   33951:   <a href="common-dom-interfaces.html#reflect">reflect</a> the element's <code title="attr-frame-frameborder">frameborder</code> content
                   33952:   attribute.</p>
                   33953: 
                   33954:   <p>The <dfn id="dom-frame-longdesc" title="dom-frame-longDesc"><code>longDesc</code></dfn>
                   33955:   IDL attribute of the <code><a href="#frame">frame</a></code> element must
                   33956:   <a href="common-dom-interfaces.html#reflect">reflect</a> the element's <code title="attr-frame-longdesc">longdesc</code> content attribute, which
                   33957:   for the purposes of reflection is defined as containing a
                   33958:   <a href="urls.html#url">URL</a>.</p>
                   33959: 
                   33960:   <p>The <dfn id="dom-frame-noresize" title="dom-frame-noResize"><code>noResize</code></dfn>
                   33961:   IDL attribute of the <code><a href="#frame">frame</a></code> element must
                   33962:   <a href="common-dom-interfaces.html#reflect">reflect</a> the element's <code title="attr-frame-noresize">noresize</code> content attribute.</p>
                   33963: 
                   33964:   <p>The <dfn id="dom-frame-contentdocument" title="dom-frame-contentDocument"><code>contentDocument</code></dfn>
                   33965:   IDL attribute of the <code><a href="#frame">frame</a></code> element must return the
                   33966:   <code><a href="dom.html#document">Document</a></code> object of the <a href="#active-document">active document</a> of
                   33967:   the <code><a href="#frame">frame</a></code> element's <a href="#nested-browsing-context">nested browsing
                   33968:   context</a>.</p>
                   33969: 
                   33970:   <p>The <dfn id="dom-frame-contentwindow" title="dom-frame-contentWindow"><code>contentWindow</code></dfn>
                   33971:   IDL attribute must return the <code><a href="#windowproxy">WindowProxy</a></code> object of the
                   33972:   <code><a href="#frame">frame</a></code> element's <a href="#nested-browsing-context">nested browsing
                   33973:   context</a>.</p>
                   33974: 
                   33975:   <p>The <dfn id="dom-frame-marginheight" title="dom-frame-marginHeight"><code>marginHeight</code></dfn> IDL
                   33976:   attribute of the <code><a href="#frame">frame</a></code> element must
                   33977:   <a href="common-dom-interfaces.html#reflect">reflect</a> the element's <code title="attr-frame-marginheight">marginheight</code> content
                   33978:   attribute.</p>
                   33979: 
                   33980:   <p>The <dfn id="dom-frame-marginwidth" title="dom-frame-marginWidth"><code>marginWidth</code></dfn> IDL
                   33981:   attribute of the <code><a href="#frame">frame</a></code> element must
                   33982:   <a href="common-dom-interfaces.html#reflect">reflect</a> the element's <code title="attr-frame-marginwidth">marginwidth</code> content
                   33983:   attribute.</p>
                   33984: 
                   33985: 
                   33986: 
                   33987:   <h4 id="other-elements,-attributes-and-apis"><span class="secno">11.3.4 </span>Other elements, attributes and APIs</h4> <!-- alphabetical by name and attribute -->
                   33988: 
                   33989:   <p>User agents must treat <code><a href="#acronym">acronym</a></code> elements in a manner
                   33990:   equivalent to <code><a href="the-abbr-element.html#the-abbr-element">abbr</a></code> elements in terms of semantics and
                   33991:   for purposes of rendering.</p>
                   33992: 
                   33993:   <hr><pre class="idl">partial interface <a href="the-a-element.html#htmlanchorelement">HTMLAnchorElement</a> {
                   33994:            attribute DOMString <a href="#dom-a-coords" title="dom-a-coords">coords</a>;
                   33995:            attribute DOMString <a href="#dom-a-charset" title="dom-a-charset">charset</a>;
                   33996:            attribute DOMString <a href="#dom-a-name" title="dom-a-name">name</a>;
                   33997:            attribute DOMString <a href="#dom-a-rev" title="dom-a-rev">rev</a>;
                   33998:            attribute DOMString <a href="#dom-a-shape" title="dom-a-shape">shape</a>;
                   33999: };</pre>
                   34000: 
                   34001:   <p>The <dfn id="dom-a-coords" title="dom-a-coords"><code>coords</code></dfn>, <dfn id="dom-a-charset" title="dom-a-charset"><code>charset</code></dfn>, <dfn id="dom-a-name" title="dom-a-name"><code>name</code></dfn>, <dfn id="dom-a-rev" title="dom-a-rev"><code>rev</code></dfn>, and <dfn id="dom-a-shape" title="dom-a-shape"><code>shape</code></dfn> IDL attributes of the
                   34002:   <code><a href="the-a-element.html#the-a-element">a</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a> the respective
                   34003:   content attributes of the same name.</p>
                   34004: 
                   34005:   <hr><pre class="idl">partial interface <a href="the-area-element.html#htmlareaelement">HTMLAreaElement</a> {
                   34006:            attribute boolean <a href="#dom-area-nohref" title="dom-area-noHref">noHref</a>;
                   34007: };</pre>
                   34008: 
                   34009:   <p>The <dfn id="dom-area-nohref" title="dom-area-noHref"><code>noHref</code></dfn> IDL
                   34010:   attribute of the <code><a href="the-area-element.html#the-area-element">area</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34011:   the element's <code title="attr-area-nohref"><a href="#attr-area-nohref">nohref</a></code> content
                   34012:   attribute.</p>
                   34013: 
                   34014:   <hr><p>The <code><a href="#basefont">basefont</a></code> element must implement the
                   34015:   <code><a href="#htmlbasefontelement">HTMLBaseFontElement</a></code> interface.</p>
                   34016: 
                   34017:   <pre class="idl">interface <dfn id="htmlbasefontelement">HTMLBaseFontElement</dfn> : <a href="elements.html#htmlelement">HTMLElement</a> {
                   34018:            attribute DOMString <a href="#dom-basefont-color" title="dom-basefont-color">color</a>;
                   34019:            attribute DOMString <a href="#dom-basefont-face" title="dom-basefont-face">face</a>;
                   34020:            attribute long <a href="#dom-basefont-size" title="dom-basefont-size">size</a>; <!-- yes, long, not DOMString (so says DOM2 HTML) -->
                   34021: };</pre>
                   34022: 
                   34023:   <p>The <dfn id="dom-basefont-color" title="dom-basefont-color"><code>color</code></dfn>,
                   34024:   <dfn id="dom-basefont-face" title="dom-basefont-face"><code>face</code></dfn>, and <dfn id="dom-basefont-size" title="dom-basefont-size"><code>size</code></dfn> IDL attributes of
                   34025:   the <code><a href="#basefont">basefont</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a> the
                   34026:   respective content attributes of the same name.</p>
                   34027: 
                   34028:   <hr><pre class="idl">partial interface <a href="the-body-element.html#htmlbodyelement">HTMLBodyElement</a> {
                   34029:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-body-text" title="dom-body-text">text</a>;
                   34030:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-body-link" title="dom-body-link">link</a>;
                   34031:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-body-vlink" title="dom-body-vLink">vLink</a>;
                   34032:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-body-alink" title="dom-body-aLink">aLink</a>;
                   34033:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-body-bgcolor" title="dom-body-bgColor">bgColor</a>;
                   34034:                             attribute DOMString <a href="#dom-body-background" title="dom-body-background">background</a>;
                   34035: };</pre>
                   34036: 
                   34037:   <p>The <dfn id="dom-body-text" title="dom-body-text"><code>text</code></dfn> IDL
                   34038:   attribute of the <code><a href="the-body-element.html#the-body-element">body</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34039:   the element's <code title="attr-body-text"><a href="#attr-body-text">text</a></code> content
                   34040:   attribute.</p>
                   34041: 
                   34042:   <p>The <dfn id="dom-body-link" title="dom-body-link"><code>link</code></dfn> IDL
                   34043:   attribute of the <code><a href="the-body-element.html#the-body-element">body</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34044:   the element's <code title="attr-body-link"><a href="#attr-body-link">link</a></code> content
                   34045:   attribute.</p>
                   34046: 
                   34047:   <p>The <dfn id="dom-body-alink" title="dom-body-aLink"><code>aLink</code></dfn> IDL
                   34048:   attribute of the <code><a href="the-body-element.html#the-body-element">body</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34049:   the element's <code title="attr-body-alink"><a href="#attr-body-alink">alink</a></code> content
                   34050:   attribute.</p>
                   34051: 
                   34052:   <p>The <dfn id="dom-body-vlink" title="dom-body-vLink"><code>vLink</code></dfn> IDL
                   34053:   attribute of the <code><a href="the-body-element.html#the-body-element">body</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34054:   the element's <code title="attr-body-vlink"><a href="#attr-body-vlink">vlink</a></code> content
                   34055:   attribute.</p>
                   34056: 
                   34057:   <p>The <dfn id="dom-body-bgcolor" title="dom-body-bgColor"><code>bgColor</code></dfn> IDL
                   34058:   attribute of the <code><a href="the-body-element.html#the-body-element">body</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34059:   the element's <code title="attr-body-bgcolor"><a href="#attr-body-bgcolor">bgcolor</a></code> content
                   34060:   attribute.</p>
                   34061: 
                   34062:   <p>The <dfn id="dom-body-background" title="dom-body-background"><code>background</code></dfn> IDL
                   34063:   attribute of the <code><a href="the-body-element.html#the-body-element">body</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34064:   the element's <code title="attr-background"><a href="#attr-background">background</a></code>
                   34065:   content attribute. (The <code title="attr-background"><a href="#attr-background">background</a></code> content is <em>not</em>
                   34066:   defined to contain a <a href="urls.html#url">URL</a>, despite rules regarding its
                   34067:   handling in the rendering section above.)</p>
                   34068: 
                   34069:   <hr><pre class="idl">partial interface <a href="the-br-element.html#htmlbrelement">HTMLBRElement</a> {
                   34070:            attribute DOMString <a href="#dom-br-clear" title="dom-br-clear">clear</a>;
                   34071: };</pre>
                   34072: 
                   34073:   <p>The <dfn id="dom-br-clear" title="dom-br-clear"><code>clear</code></dfn> IDL
                   34074:   attribute of the <code><a href="the-br-element.html#the-br-element">br</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34075:   the content attribute of the same name.</p>
                   34076: 
                   34077:   <hr><pre class="idl">partial interface <a href="the-caption-element.html#htmltablecaptionelement">HTMLTableCaptionElement</a> {
                   34078:            attribute DOMString <a href="#dom-caption-align" title="dom-caption-align">align</a>;
                   34079: };</pre>
                   34080: 
                   34081:   <p>The <dfn id="dom-caption-align" title="dom-caption-align"><code>align</code></dfn> IDL
                   34082:   attribute of the <code><a href="the-caption-element.html#the-caption-element">caption</a></code> element must
                   34083:   <a href="common-dom-interfaces.html#reflect">reflect</a> the content attribute of the same name.</p>
                   34084: 
                   34085:   <hr><pre class="idl">partial interface <a href="the-colgroup-element.html#htmltablecolelement">HTMLTableColElement</a> {
                   34086:            attribute DOMString <a href="#dom-col-align" title="dom-col-align">align</a>;
                   34087:            attribute DOMString <a href="#dom-col-ch" title="dom-col-ch">ch</a>;
                   34088:            attribute DOMString <a href="#dom-col-choff" title="dom-col-chOff">chOff</a>;
                   34089:            attribute DOMString <a href="#dom-col-valign" title="dom-col-vAlign">vAlign</a>;
                   34090:            attribute DOMString <a href="#dom-col-width" title="dom-col-width">width</a>;
                   34091: };</pre>
                   34092: 
                   34093:   <p>The <dfn id="dom-col-align" title="dom-col-align"><code>align</code></dfn> and <dfn id="dom-col-width" title="dom-col-width"><code>width</code></dfn> IDL attributes of
                   34094:   the <code><a href="the-col-element.html#the-col-element">col</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a> the
                   34095:   respective content attributes of the same name.</p>
                   34096: 
                   34097:   <p>The <dfn id="dom-col-ch" title="dom-col-ch"><code>ch</code></dfn> IDL attribute
                   34098:   of the <code><a href="the-col-element.html#the-col-element">col</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a> the
                   34099:   element's <code title="attr-col-char"><a href="#attr-col-char">char</a></code> content
                   34100:   attribute.</p>
                   34101: 
                   34102:   <p>The <dfn id="dom-col-choff" title="dom-col-chOff"><code>chOff</code></dfn> IDL
                   34103:   attribute of the <code><a href="the-col-element.html#the-col-element">col</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34104:   the element's <code title="attr-col-charoff"><a href="#attr-col-charoff">charoff</a></code> content
                   34105:   attribute.</p>
                   34106: 
                   34107:   <p>The <dfn id="dom-col-valign" title="dom-col-vAlign"><code>vAlign</code></dfn> IDL
                   34108:   attribute of the <code><a href="the-col-element.html#the-col-element">col</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34109:   the element's <code title="attr-col-valign"><a href="#attr-col-valign">valign</a></code> content
                   34110:   attribute.</p>
                   34111: 
                   34112:   <hr><p>User agents must treat <code><a href="#dir">dir</a></code> elements in a manner
                   34113:   equivalent to <code><a href="the-ul-element.html#the-ul-element">ul</a></code> elements in terms of semantics and for
                   34114:   purposes of rendering.</p>
                   34115: 
                   34116:   <p>The <code><a href="#dir">dir</a></code> element must implement the
                   34117:   <code><a href="#htmldirectoryelement">HTMLDirectoryElement</a></code> interface.</p>
                   34118: 
                   34119:   <pre class="idl">interface <dfn id="htmldirectoryelement">HTMLDirectoryElement</dfn> : <a href="elements.html#htmlelement">HTMLElement</a> {
                   34120:            attribute boolean <a href="#dom-dir-compact" title="dom-dir-compact">compact</a>;
                   34121: };</pre>
                   34122: 
                   34123:   <p>The <dfn id="dom-dir-compact" title="dom-dir-compact"><code>compact</code></dfn> IDL
                   34124:   attribute of the <code><a href="#dir">dir</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34125:   the content attribute of the same name.</p>
                   34126: 
                   34127:   <hr><pre class="idl">partial interface <a href="the-div-element.html#htmldivelement">HTMLDivElement</a> {
                   34128:            attribute DOMString <a href="#dom-div-align" title="dom-div-align">align</a>;
                   34129: };</pre>
                   34130: 
                   34131:   <p>The <dfn id="dom-div-align" title="dom-div-align"><code>align</code></dfn> IDL
                   34132:   attribute of the <code><a href="the-div-element.html#the-div-element">div</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34133:   the content attribute of the same name.</p>
                   34134: 
                   34135:   <hr><pre class="idl">partial interface <a href="the-dl-element.html#htmldlistelement">HTMLDListElement</a> {
                   34136:            attribute boolean <a href="#dom-dl-compact" title="dom-dl-compact">compact</a>;
                   34137: };</pre>
                   34138: 
                   34139:   <p>The <dfn id="dom-dl-compact" title="dom-dl-compact"><code>compact</code></dfn> IDL
                   34140:   attribute of the <code><a href="the-dl-element.html#the-dl-element">dl</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34141:   the content attribute of the same name.</p>
                   34142: 
                   34143:   <hr><pre class="idl">partial interface <a href="the-embed-element.html#htmlembedelement">HTMLEmbedElement</a> {
                   34144:            attribute DOMString <a href="#dom-embed-align" title="dom-embed-align">align</a>;
                   34145:            attribute DOMString <a href="#dom-embed-name" title="dom-embed-name">name</a>;
                   34146: };</pre>
                   34147: 
                   34148:   <p>The <dfn id="dom-embed-name" title="dom-embed-name"><code>name</code></dfn> and <dfn id="dom-embed-align" title="dom-embed-align"><code>align</code></dfn> IDL attributes of
                   34149:   the <code><a href="the-embed-element.html#the-embed-element">embed</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a> the
                   34150:   respective content attributes of the same name.</p>
                   34151: 
                   34152:   <hr><p>The <code><a href="#font">font</a></code> element must implement the
                   34153:   <code><a href="#htmlfontelement">HTMLFontElement</a></code> interface.</p>
                   34154: 
                   34155:   <pre class="idl">interface <dfn id="htmlfontelement">HTMLFontElement</dfn> : <a href="elements.html#htmlelement">HTMLElement</a> {
                   34156:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-font-color" title="dom-font-color">color</a>;
                   34157:                             attribute DOMString <a href="#dom-font-face" title="dom-font-face">face</a>;
                   34158:                             attribute DOMString <a href="#dom-font-size" title="dom-font-size">size</a>; <!-- yes, DOMString, not long (so says DOM2 HTML) -->
                   34159: };</pre>
                   34160: 
                   34161:   <p>The <dfn id="dom-font-color" title="dom-font-color"><code>color</code></dfn>,
                   34162:   <dfn id="dom-font-face" title="dom-font-face"><code>face</code></dfn>, and <dfn id="dom-font-size" title="dom-font-size"><code>size</code></dfn> IDL attributes of
                   34163:   the <code><a href="#font">font</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a> the
                   34164:   respective content attributes of the same name.</p>
                   34165: 
                   34166:   <hr><pre class="idl">partial interface <a href="the-aside-element.html#htmlheadingelement">HTMLHeadingElement</a> {
                   34167:            attribute DOMString <a href="#dom-hx-align" title="dom-hx-align">align</a>;
                   34168: };</pre>
                   34169: 
                   34170:   <p>The <dfn id="dom-hx-align" title="dom-hx-align"><code>align</code></dfn> IDL
                   34171:   attribute of the <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h1</a></code>&#8211;<code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h6</a></code> elements must
                   34172:   <a href="common-dom-interfaces.html#reflect">reflect</a> the content attribute of the same name.</p>
                   34173: 
                   34174:   <hr><p class="note">The <dfn id="dom-head-profile" title="dom-head-profile"><code>profile</code></dfn> IDL attribute on
                   34175:   <code><a href="the-head-element.html#the-head-element">head</a></code> elements (with the <code><a href="the-head-element.html#htmlheadelement">HTMLHeadElement</a></code>
                   34176:   interface) is intentionally omitted. Unless so required by <a href="infrastructure.html#other-applicable-specifications" title="other applicable specifications">another applicable
                   34177:   specification</a>, implementations would therefore not support
                   34178:   this attribute. (It is mentioned here as it was defined in a
                   34179:   previous version of the DOM specifications.)</p>
                   34180: 
                   34181:   <hr><pre class="idl">partial interface <a href="the-hr-element.html#htmlhrelement">HTMLHRElement</a> {
                   34182:            attribute DOMString <a href="#dom-hr-align" title="dom-hr-align">align</a>;
                   34183:            attribute DOMString <a href="#dom-hr-color" title="dom-hr-color">color</a>;
                   34184:            attribute boolean <a href="#dom-hr-noshade" title="dom-hr-noShade">noShade</a>;
                   34185:            attribute DOMString <a href="#dom-hr-size" title="dom-hr-size">size</a>;
                   34186:            attribute DOMString <a href="#dom-hr-width" title="dom-hr-width">width</a>;
                   34187: };</pre>
                   34188: 
                   34189:   <p>The <dfn id="dom-hr-align" title="dom-hr-align"><code>align</code></dfn>, <dfn id="dom-hr-color" title="dom-hr-color"><code>color</code></dfn>, <dfn id="dom-hr-size" title="dom-hr-size"><code>size</code></dfn>, and <dfn id="dom-hr-width" title="dom-hr-width"><code>width</code></dfn> IDL attributes of the
                   34190:   <code><a href="the-hr-element.html#the-hr-element">hr</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a> the respective
                   34191:   content attributes of the same name.</p>
                   34192: 
                   34193:   <p>The <dfn id="dom-hr-noshade" title="dom-hr-noShade"><code>noShade</code></dfn> IDL
                   34194:   attribute of the <code><a href="the-hr-element.html#the-hr-element">hr</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34195:   the element's <code title="attr-hr-noshade"><a href="#attr-hr-noshade">noshade</a></code> content
                   34196:   attribute.</p>
                   34197: 
                   34198:   <hr><pre class="idl">partial interface <a href="the-html-element.html#htmlhtmlelement">HTMLHtmlElement</a> {
                   34199:            attribute DOMString <a href="#dom-html-version" title="dom-html-version">version</a>;
                   34200: };</pre>
                   34201: 
                   34202:   <p>The <dfn id="dom-html-version" title="dom-html-version"><code>version</code></dfn> IDL
                   34203:   attribute of the <code><a href="the-html-element.html#the-html-element">html</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34204:   the content attribute of the same name.</p>
                   34205: 
                   34206:   <hr><pre class="idl">partial interface <a href="the-iframe-element.html#htmliframeelement">HTMLIFrameElement</a> {
                   34207:            attribute DOMString <a href="#dom-iframe-align" title="dom-iframe-align">align</a>;
                   34208:            attribute DOMString <a href="#dom-iframe-scrolling" title="dom-iframe-scrolling">scrolling</a>;
                   34209:            attribute DOMString <a href="#dom-iframe-frameborder" title="dom-iframe-frameBorder">frameBorder</a>;
                   34210:            attribute DOMString <a href="#dom-iframe-longdesc" title="dom-iframe-longDesc">longDesc</a>;
                   34211: 
                   34212:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-iframe-marginheight" title="dom-iframe-marginHeight">marginHeight</a>;
                   34213:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-iframe-marginwidth" title="dom-iframe-marginWidth">marginWidth</a>;
                   34214: };</pre>
                   34215: 
                   34216:   <p>The <dfn id="dom-iframe-align" title="dom-iframe-align"><code>align</code></dfn> and
                   34217:   <dfn id="dom-iframe-scrolling" title="dom-iframe-scrolling"><code>scrolling</code></dfn> IDL
                   34218:   attributes of the <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> element must
                   34219:   <a href="common-dom-interfaces.html#reflect">reflect</a> the respective content attributes of the same
                   34220:   name.</p>
                   34221: 
                   34222:   <p>The <dfn id="dom-iframe-frameborder" title="dom-iframe-frameBorder"><code>frameBorder</code></dfn> IDL
                   34223:   attribute of the <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> element must
                   34224:   <a href="common-dom-interfaces.html#reflect">reflect</a> the element's <code title="attr-iframe-frameborder"><a href="#attr-iframe-frameborder">frameborder</a></code> content
                   34225:   attribute.</p>
                   34226: 
                   34227:   <p>The <dfn id="dom-iframe-longdesc" title="dom-iframe-longDesc"><code>longDesc</code></dfn>
                   34228:   IDL attribute of the <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> element must
                   34229:   <a href="common-dom-interfaces.html#reflect">reflect</a> the element's <code title="attr-iframe-longdesc"><a href="#attr-iframe-longdesc">longdesc</a></code> content attribute,
                   34230:   which for the purposes of reflection is defined as containing a
                   34231:   <a href="urls.html#url">URL</a>.</p>
                   34232: 
                   34233:   <p>The <dfn id="dom-iframe-marginheight" title="dom-iframe-marginHeight"><code>marginHeight</code></dfn> IDL
                   34234:   attribute of the <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> element must
                   34235:   <a href="common-dom-interfaces.html#reflect">reflect</a> the element's <code title="attr-iframe-marginheight"><a href="#attr-iframe-marginheight">marginheight</a></code> content
                   34236:   attribute.</p>
                   34237: 
                   34238:   <p>The <dfn id="dom-iframe-marginwidth" title="dom-iframe-marginWidth"><code>marginWidth</code></dfn> IDL
                   34239:   attribute of the <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code> element must
                   34240:   <a href="common-dom-interfaces.html#reflect">reflect</a> the element's <code title="attr-iframe-marginwidth"><a href="#attr-iframe-marginwidth">marginwidth</a></code> content
                   34241:   attribute.</p>
                   34242: 
                   34243:   <hr><pre class="idl">partial interface <a href="the-img-element.html#htmlimageelement">HTMLImageElement</a> {
                   34244:            attribute DOMString <a href="#dom-img-name" title="dom-img-name">name</a>;
                   34245:            attribute DOMString <a href="#dom-img-align" title="dom-img-align">align</a>;
                   34246:            attribute unsigned long <a href="#dom-img-hspace" title="dom-img-hspace">hspace</a>;
                   34247:            attribute unsigned long <a href="#dom-img-vspace" title="dom-img-vspace">vspace</a>;
                   34248:            attribute DOMString <a href="#dom-img-longdesc" title="dom-img-longDesc">longDesc</a>;
                   34249: 
                   34250:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-img-border" title="dom-img-border">border</a>;
                   34251: };</pre>
                   34252: 
                   34253:   <p>The <dfn id="dom-img-name" title="dom-img-name"><code>name</code></dfn>, <dfn id="dom-img-align" title="dom-img-align"><code>align</code></dfn>, <dfn id="dom-img-border" title="dom-img-border"><code>border</code></dfn>, <dfn id="dom-img-hspace" title="dom-img-hspace"><code>hspace</code></dfn>, and <dfn id="dom-img-vspace" title="dom-img-vspace"><code>vspace</code></dfn> IDL attributes of
                   34254:   the <code><a href="the-img-element.html#the-img-element">img</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a> the
                   34255:   respective content attributes of the same name.</p>
                   34256: 
                   34257:   <p>The <dfn id="dom-img-longdesc" title="dom-img-longDesc"><code>longDesc</code></dfn> IDL
                   34258:   attribute of the <code><a href="the-img-element.html#the-img-element">img</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34259:   the element's <code title="attr-img-longdesc"><a href="#attr-img-longdesc">longdesc</a></code>
                   34260:   content attribute, which for the purposes of reflection is defined
                   34261:   as containing a <a href="urls.html#url">URL</a>.</p>
                   34262: 
                   34263:   <!-- lowsrc is explicitly not given here, see http://www.w3.org/Bugs/Public/show_bug.cgi?id=10341 -->
                   34264: 
                   34265:   <hr><pre class="idl">partial interface <a href="the-input-element.html#htmlinputelement">HTMLInputElement</a> {
                   34266:            attribute DOMString <a href="#dom-input-align" title="dom-input-align">align</a>;
                   34267:            attribute DOMString <a href="#dom-input-usemap" title="dom-input-useMap">useMap</a>;
                   34268: };</pre>
                   34269: 
                   34270:   <p>The <dfn id="dom-input-align" title="dom-input-align"><code>align</code></dfn> IDL
                   34271:   attribute of the <code><a href="the-input-element.html#the-input-element">input</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34272:   the content attribute of the same name.</p>
                   34273: 
                   34274:   <p>The <dfn id="dom-input-usemap" title="dom-input-useMap"><code>useMap</code></dfn> IDL
                   34275:   attribute of the <code><a href="the-input-element.html#the-input-element">input</a></code> element must
                   34276:   <a href="common-dom-interfaces.html#reflect">reflect</a> the element's <code title="attr-input-usemap"><a href="#attr-input-usemap">usemap</a></code> content attribute.</p>
                   34277: 
                   34278:   <hr><pre class="idl">partial interface <a href="the-legend-element.html#htmllegendelement">HTMLLegendElement</a> {
                   34279:            attribute DOMString <a href="#dom-legend-align" title="dom-legend-align">align</a>;
                   34280: };</pre>
                   34281: 
                   34282:   <p>The <dfn id="dom-legend-align" title="dom-legend-align"><code>align</code></dfn> IDL
                   34283:   attribute of the <code><a href="the-legend-element.html#the-legend-element">legend</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34284:   the content attribute of the same name.</p>
                   34285: 
                   34286:   <hr><pre class="idl">partial interface <a href="the-li-element.html#htmllielement">HTMLLIElement</a> {
                   34287:            attribute DOMString <a href="#dom-li-type" title="dom-li-type">type</a>;
                   34288: };</pre>
                   34289: 
                   34290:   <p>The <dfn id="dom-li-type" title="dom-li-type"><code>type</code></dfn> IDL
                   34291:   attribute of the <code><a href="the-li-element.html#the-li-element">li</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34292:   the content attribute of the same name.</p>
                   34293: 
                   34294:   <hr><pre class="idl">partial interface <a href="the-link-element.html#htmllinkelement">HTMLLinkElement</a> {
                   34295:            attribute DOMString <a href="#dom-link-charset" title="dom-link-charset">charset</a>;
                   34296:            attribute DOMString <a href="#dom-link-rev" title="dom-link-rev">rev</a>;
                   34297:            attribute DOMString <a href="#dom-link-target" title="dom-link-target">target</a>;
                   34298: };</pre>
                   34299: 
                   34300:   <p>The <dfn id="dom-link-charset" title="dom-link-charset"><code>charset</code></dfn>,
                   34301:   <dfn id="dom-link-rev" title="dom-link-rev"><code>rev</code></dfn>, and <dfn id="dom-link-target" title="dom-link-target"><code>target</code></dfn> IDL attributes of
                   34302:   the <code><a href="the-link-element.html#the-link-element">link</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a> the
                   34303:   respective content attributes of the same name.</p>
                   34304: 
                   34305:   <hr><p>User agents must treat <code><a href="#listing">listing</a></code> elements in a manner
                   34306:   equivalent to <code><a href="the-pre-element.html#the-pre-element">pre</a></code> elements in terms of semantics and
                   34307:   for purposes of rendering.</p>
                   34308: 
                   34309:   <hr><pre class="idl">partial interface <a href="#htmlmenuelement">HTMLMenuElement</a> {
                   34310:            attribute boolean <a href="#dom-menu-compact" title="dom-menu-compact">compact</a>;
                   34311: };</pre>
                   34312: 
                   34313:   <p>The <dfn id="dom-menu-compact" title="dom-menu-compact"><code>compact</code></dfn> IDL
                   34314:   attribute of the <code><a href="#the-menu-element">menu</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34315:   the content attribute of the same name.</p>
                   34316: 
                   34317:   <hr><pre class="idl">partial interface <a href="the-meta-element.html#htmlmetaelement">HTMLMetaElement</a> {
                   34318:            attribute DOMString <a href="#dom-meta-scheme" title="dom-meta-scheme">scheme</a>;
                   34319: };</pre>
                   34320: 
                   34321:   <p>User agents may treat the <code title="attr-meta-scheme"><a href="#attr-meta-scheme">scheme</a></code> content attribute on the
                   34322:   <code><a href="the-meta-element.html#the-meta-element">meta</a></code> element as an extension of the element's <code title="attr-meta-name"><a href="the-meta-element.html#attr-meta-name">name</a></code> content attribute when processing
                   34323:   a <code><a href="the-meta-element.html#the-meta-element">meta</a></code> element with a <code title="attr-meta-name"><a href="the-meta-element.html#attr-meta-name">name</a></code> attribute whose value is one that
                   34324:   the user agent recognizes as supporting the <code title="attr-meta-scheme"><a href="#attr-meta-scheme">scheme</a></code> attribute.</p>
                   34325: 
                   34326:   <p>User agents are encouraged to ignore the <code title="attr-meta-scheme"><a href="#attr-meta-scheme">scheme</a></code> attribute and instead process
                   34327:   the value given to the metadata name as if it had been specified for
                   34328:   each expected value of the <code title="attr-meta-scheme"><a href="#attr-meta-scheme">scheme</a></code> attribute.</p>
                   34329: 
                   34330:   <div class="example">
                   34331: 
                   34332:    <p>For example, if the user agent acts on <code><a href="the-meta-element.html#the-meta-element">meta</a></code>
                   34333:    elements with <code title="attr-meta-name"><a href="the-meta-element.html#attr-meta-name">name</a></code> attributes
                   34334:    having the value "eGMS.subject.keyword", and knows that the <code title="attr-meta-scheme"><a href="#attr-meta-scheme">scheme</a></code> attribute is used with this
                   34335:    metadata name, then it could take the <code title="attr-meta-scheme"><a href="#attr-meta-scheme">scheme</a></code> attribute into account,
                   34336:    acting as if it was an extension of the <code title="attr-meta-name"><a href="the-meta-element.html#attr-meta-name">name</a></code> attribute. Thus the following
                   34337:    two <code><a href="the-meta-element.html#the-meta-element">meta</a></code> elements could be treated as two elements
                   34338:    giving values for two different metadata names, one consisting of a
                   34339:    combination of "eGMS.subject.keyword" and "LGCL", and the other
                   34340:    consisting of a combination of "eGMS.subject.keyword" and
                   34341:    "ORLY":</p>
                   34342: 
                   34343:    <pre class="bad">&lt;!-- this markup is invalid --&gt;
                   34344: &lt;meta name="eGMS.subject.keyword" scheme="LGCL" content="Abandoned vehicles"&gt;
                   34345: &lt;meta name="eGMS.subject.keyword" scheme="ORLY" content="Mah car: kthxbye"&gt;</pre>
                   34346: 
                   34347:    <p>The recommended processing of this markup, however, would be
                   34348:    equivalent to the following:</p>
                   34349: 
                   34350:    <pre>&lt;meta name="eGMS.subject.keyword" content="Abandoned vehicles"&gt;
                   34351: &lt;meta name="eGMS.subject.keyword" content="Mah car: kthxbye"&gt;</pre>
                   34352: 
                   34353:   </div>
                   34354: 
                   34355:   <p>The <dfn id="dom-meta-scheme" title="dom-meta-scheme"><code>scheme</code></dfn> IDL
                   34356:   attribute of the <code><a href="the-meta-element.html#the-meta-element">meta</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34357:   the content attribute of the same name.</p>
                   34358: 
                   34359:   <hr><pre class="idl">partial interface <a href="the-object-element.html#htmlobjectelement">HTMLObjectElement</a> {
                   34360:            attribute DOMString <a href="#dom-object-align" title="dom-object-align">align</a>;
                   34361:            attribute DOMString <a href="#dom-object-archive" title="dom-object-archive">archive</a>;
                   34362:            attribute DOMString <a href="#dom-object-code" title="dom-object-code">code</a>;
                   34363:            attribute boolean <a href="#dom-object-declare" title="dom-object-declare">declare</a>;
                   34364:            attribute unsigned long <a href="#dom-object-hspace" title="dom-object-hspace">hspace</a>;
                   34365:            attribute DOMString <a href="#dom-object-standby" title="dom-object-standby">standby</a>;
                   34366:            attribute unsigned long <a href="#dom-object-vspace" title="dom-object-vspace">vspace</a>;
                   34367:            attribute DOMString <a href="#dom-object-codebase" title="dom-object-codeBase">codeBase</a>;
                   34368:            attribute DOMString <a href="#dom-object-codetype" title="dom-object-codeType">codeType</a>;
                   34369: 
                   34370:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-object-border" title="dom-object-border">border</a>;
                   34371: };</pre>
                   34372: 
                   34373:   <p>The <dfn id="dom-object-align" title="dom-object-align"><code>align</code></dfn>, <dfn id="dom-object-archive" title="dom-object-archive"><code>archive</code></dfn>, <dfn id="dom-object-border" title="dom-object-border"><code>border</code></dfn>, <dfn id="dom-object-code" title="dom-object-code"><code>code</code></dfn>, <dfn id="dom-object-declare" title="dom-object-declare"><code>declare</code></dfn>, <dfn id="dom-object-hspace" title="dom-object-hspace"><code>hspace</code></dfn>, <dfn id="dom-object-standby" title="dom-object-standby"><code>standby</code></dfn>, and <dfn id="dom-object-vspace" title="dom-object-vspace"><code>vspace</code></dfn> IDL attributes
                   34374:   of the <code><a href="the-object-element.html#the-object-element">object</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a> the
                   34375:   respective content attributes of the same name.</p>
                   34376: 
                   34377:   <p>The <dfn id="dom-object-codebase" title="dom-object-codeBase"><code>codeBase</code></dfn>
                   34378:   IDL attribute of the <code><a href="the-object-element.html#the-object-element">object</a></code> element must
                   34379:   <a href="common-dom-interfaces.html#reflect">reflect</a> the element's <code title="attr-object-codebase"><a href="#attr-object-codebase">codebase</a></code> content attribute,
                   34380:   which for the purposes of reflection is defined as containing a
                   34381:   <a href="urls.html#url">URL</a>.</p>
                   34382: 
                   34383:   <p>The <dfn id="dom-object-codetype" title="dom-object-codeType"><code>codeType</code></dfn> IDL
                   34384:   attribute of the <code><a href="the-object-element.html#the-object-element">object</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34385:   the element's <code title="attr-object-codetype"><a href="#attr-object-codetype">codetype</a></code> content
                   34386:   attribute.</p>
                   34387: 
                   34388:   <hr><pre class="idl">partial interface <a href="the-ol-element.html#htmlolistelement">HTMLOListElement</a> {
                   34389:            attribute boolean <a href="#dom-ol-compact" title="dom-ol-compact">compact</a>;
                   34390: };</pre>
                   34391: 
                   34392:   <p>The <dfn id="dom-ol-compact" title="dom-ol-compact"><code>compact</code></dfn> IDL
                   34393:   attribute of the <code><a href="the-ol-element.html#the-ol-element">ol</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34394:   the content attribute of the same name.</p>
                   34395: 
                   34396:   <hr><pre class="idl">partial interface <a href="the-p-element.html#htmlparagraphelement">HTMLParagraphElement</a> {
                   34397:            attribute DOMString <a href="#dom-p-align" title="dom-p-align">align</a>;
                   34398: };</pre>
                   34399: 
                   34400:   <p>The <dfn id="dom-p-align" title="dom-p-align"><code>align</code></dfn> IDL
                   34401:   attribute of the <code><a href="the-p-element.html#the-p-element">p</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34402:   the content attribute of the same name.</p>
                   34403: 
                   34404:   <hr><pre class="idl">partial interface <a href="the-param-element.html#htmlparamelement">HTMLParamElement</a> {
                   34405:            attribute DOMString <a href="#dom-param-type" title="dom-param-type">type</a>;
                   34406:            attribute DOMString <a href="#dom-param-valuetype" title="dom-param-valueType">valueType</a>;
                   34407: };</pre>
                   34408: 
                   34409:   <p>The <dfn id="dom-param-type" title="dom-param-type"><code>type</code></dfn> IDL
                   34410:   attribute of the <code><a href="the-param-element.html#the-param-element">param</a></code> element must
                   34411:   <a href="common-dom-interfaces.html#reflect">reflect</a> the content attribute of the same name.</p>
                   34412: 
                   34413:   <p>The <dfn id="dom-param-valuetype" title="dom-param-valueType"><code>valueType</code></dfn>
                   34414:   IDL attribute of the <code><a href="the-param-element.html#the-param-element">param</a></code> element must
                   34415:   <a href="common-dom-interfaces.html#reflect">reflect</a> the element's <code title="attr-param-valuetype"><a href="#attr-param-valuetype">valuetype</a></code> content attribute.</p>
                   34416: 
                   34417:   <hr><p>User agents must treat <code><a href="#plaintext">plaintext</a></code> elements in a
                   34418:   manner equivalent to <code><a href="the-pre-element.html#the-pre-element">pre</a></code> elements in terms of semantics
                   34419:   and for purposes of rendering. (The parser has special behavior for
                   34420:   this element, though.)</p>
                   34421: 
                   34422:   <hr><pre class="idl">partial interface <a href="the-pre-element.html#htmlpreelement">HTMLPreElement</a> {
                   34423:            attribute long <a href="#dom-pre-width" title="dom-pre-width">width</a>;
                   34424: };</pre>
                   34425: 
                   34426:   <p>The <dfn id="dom-pre-width" title="dom-pre-width"><code>width</code></dfn> IDL
                   34427:   attribute of the <code><a href="the-pre-element.html#the-pre-element">pre</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34428:   the content attribute of the same name.</p>
                   34429: 
                   34430:   <hr><pre class="idl">partial interface <a href="the-script-element.html#htmlscriptelement">HTMLScriptElement</a> {
                   34431:            attribute DOMString <a href="#dom-script-event" title="dom-script-event">event</a>;
                   34432:            attribute DOMString <a href="#dom-script-htmlfor" title="dom-script-htmlFor">htmlFor</a>;
                   34433: };</pre>
                   34434: 
                   34435:   <p>The <dfn id="dom-script-event" title="dom-script-event"><code>event</code></dfn> and
                   34436:   <dfn id="dom-script-htmlfor" title="dom-script-htmlFor"><code>htmlFor</code></dfn> IDL
                   34437:   attributes of the <code><a href="the-script-element.html#the-script-element">script</a></code> element must return the empty
                   34438:   string on getting, and do nothing on setting.</p>
                   34439: 
                   34440:   <hr><pre class="idl">partial interface <a href="the-table-element.html#htmltableelement">HTMLTableElement</a> {
                   34441:            attribute DOMString <a href="#dom-table-align" title="dom-table-align">align</a>;
                   34442:            attribute DOMString <a href="#dom-table-frame" title="dom-table-frame">frame</a>;
                   34443:            attribute DOMString <a href="#dom-table-rules" title="dom-table-rules">rules</a>;
                   34444:            attribute DOMString <a href="#dom-table-summary" title="dom-table-summary">summary</a>;
                   34445:            attribute DOMString <a href="#dom-table-width" title="dom-table-width">width</a>;
                   34446: 
                   34447:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-table-bgcolor" title="dom-table-bgColor">bgColor</a>;
                   34448:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-table-cellpadding" title="dom-table-cellPadding">cellPadding</a>;
                   34449:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-table-cellspacing" title="dom-table-cellSpacing">cellSpacing</a>;
                   34450: };</pre>
                   34451: 
                   34452:   <p>The <dfn id="dom-table-align" title="dom-table-align"><code>align</code></dfn>, <dfn id="dom-table-frame" title="dom-table-frame"><code>frame</code></dfn>, <dfn id="dom-table-summary" title="dom-table-summary"><code>summary</code></dfn>, <dfn id="dom-table-rules" title="dom-table-rules"><code>rules</code></dfn>, and <dfn id="dom-table-width" title="dom-table-width"><code>width</code></dfn>, IDL attributes of
                   34453:   the <code><a href="the-table-element.html#the-table-element">table</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a> the
                   34454:   respective content attributes of the same name.</p>
                   34455: 
                   34456:   <p>The <dfn id="dom-table-bgcolor" title="dom-table-bgColor"><code>bgColor</code></dfn> IDL
                   34457:   attribute of the <code><a href="the-table-element.html#the-table-element">table</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34458:   the element's <code title="attr-table-bgcolor"><a href="#attr-table-bgcolor">bgcolor</a></code> content
                   34459:   attribute.</p>
                   34460: 
                   34461:   <p>The <dfn id="dom-table-cellpadding" title="dom-table-cellPadding"><code>cellPadding</code></dfn> IDL
                   34462:   attribute of the <code><a href="the-table-element.html#the-table-element">table</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34463:   the element's <code title="attr-table-cellpadding"><a href="#attr-table-cellpadding">cellpadding</a></code> content
                   34464:   attribute.</p>
                   34465: 
                   34466:   <p>The <dfn id="dom-table-cellspacing" title="dom-table-cellSpacing"><code>cellSpacing</code></dfn> IDL
                   34467:   attribute of the <code><a href="the-table-element.html#the-table-element">table</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34468:   the element's <code title="attr-table-cellspacing"><a href="#attr-table-cellspacing">cellspacing</a></code> content
                   34469:   attribute.</p>
                   34470: 
                   34471:   <hr><pre class="idl">partial interface <a href="the-tbody-element.html#htmltablesectionelement">HTMLTableSectionElement</a> {
                   34472:            attribute DOMString <a href="#dom-tbody-align" title="dom-tbody-align">align</a>;
                   34473:            attribute DOMString <a href="#dom-tbody-ch" title="dom-tbody-ch">ch</a>;
                   34474:            attribute DOMString <a href="#dom-tbody-choff" title="dom-tbody-chOff">chOff</a>;
                   34475:            attribute DOMString <a href="#dom-tbody-valign" title="dom-tbody-vAlign">vAlign</a>;
                   34476: };</pre>
                   34477: 
                   34478:   <p>The <dfn id="dom-tbody-align" title="dom-tbody-align"><code>align</code></dfn> IDL
                   34479:   attribute of the <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, and
                   34480:   <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code> elements must <a href="common-dom-interfaces.html#reflect">reflect</a> the content
                   34481:   attribute of the same name.</p>
                   34482: 
                   34483:   <p>The <dfn id="dom-tbody-ch" title="dom-tbody-ch"><code>ch</code></dfn> IDL attribute
                   34484:   of the <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, and
                   34485:   <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code> elements must <a href="common-dom-interfaces.html#reflect">reflect</a> the elements'
                   34486:   <code title="attr-tbody-char"><a href="#attr-tbody-char">char</a></code> content attributes.</p>
                   34487: 
                   34488:   <p>The <dfn id="dom-tbody-choff" title="dom-tbody-chOff"><code>chOff</code></dfn> IDL
                   34489:   attribute of the <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, and
                   34490:   <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code> elements must <a href="common-dom-interfaces.html#reflect">reflect</a> the elements'
                   34491:   <code title="attr-tbody-charoff"><a href="#attr-tbody-charoff">charoff</a></code> content attributes.</p>
                   34492: 
                   34493:   <p>The <dfn id="dom-tbody-valign" title="dom-tbody-vAlign"><code>vAlign</code></dfn> IDL
                   34494:   attribute of the <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>, <code><a href="the-thead-element.html#the-thead-element">thead</a></code>, and
                   34495:   <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a> the elements'
                   34496:   <code title="attr-tbody-valign"><a href="#attr-tbody-valign">valign</a></code> content
                   34497:   attributes.</p>
                   34498: 
                   34499:   <hr><pre class="idl">partial interface <a href="attributes-common-to-td-and-th-elements.html#htmltablecellelement">HTMLTableCellElement</a> {
                   34500:            attribute DOMString <a href="#dom-tdth-abbr" title="dom-tdth-abbr">abbr</a>;
                   34501:            attribute DOMString <a href="#dom-tdth-align" title="dom-tdth-align">align</a>;
                   34502:            attribute DOMString <a href="#dom-tdth-axis" title="dom-tdth-axis">axis</a>;
                   34503:            attribute DOMString <a href="#dom-tdth-height" title="dom-tdth-height">height</a>;
                   34504:            attribute DOMString <a href="#dom-tdth-width" title="dom-tdth-width">width</a>;
                   34505: 
                   34506:            attribute DOMString <a href="#dom-tdth-ch" title="dom-tdth-ch">ch</a>;
                   34507:            attribute DOMString <a href="#dom-tdth-choff" title="dom-tdth-chOff">chOff</a>;
                   34508:            attribute boolean <a href="#dom-tdth-nowrap" title="dom-tdth-noWrap">noWrap</a>;
                   34509:            attribute DOMString <a href="#dom-tdth-valign" title="dom-tdth-vAlign">vAlign</a>;
                   34510: 
                   34511:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-tdth-bgcolor" title="dom-tdth-bgColor">bgColor</a>;
                   34512: };</pre>
                   34513: 
                   34514:   <p>The <dfn id="dom-tdth-abbr" title="dom-tdth-abbr"><code>abbr</code></dfn>, <dfn id="dom-tdth-align" title="dom-tdth-align"><code>align</code></dfn>, <dfn id="dom-tdth-axis" title="dom-tdth-axis"><code>axis</code></dfn>, <dfn id="dom-tdth-height" title="dom-tdth-height"><code>height</code></dfn>, and <dfn id="dom-tdth-width" title="dom-tdth-width"><code>width</code></dfn> IDL attributes of
                   34515:   the <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements must
                   34516:   <a href="common-dom-interfaces.html#reflect">reflect</a> the respective content attributes of the same
                   34517:   name.</p>
                   34518: 
                   34519:   <p>The <dfn id="dom-tdth-ch" title="dom-tdth-ch"><code>ch</code></dfn> IDL
                   34520:   attribute of the <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements must
                   34521:   <a href="common-dom-interfaces.html#reflect">reflect</a> the elements' <code title="attr-tdth-char"><a href="#attr-tdth-char">char</a></code> content attributes.</p>
                   34522: 
                   34523:   <p>The <dfn id="dom-tdth-choff" title="dom-tdth-chOff"><code>chOff</code></dfn> IDL
                   34524:   attribute of the <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements must
                   34525:   <a href="common-dom-interfaces.html#reflect">reflect</a> the elements' <code title="attr-tdth-charoff"><a href="#attr-tdth-charoff">charoff</a></code> content attributes.</p>
                   34526: 
                   34527:   <p>The <dfn id="dom-tdth-nowrap" title="dom-tdth-noWrap"><code>noWrap</code></dfn> IDL
                   34528:   attribute of the <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements must
                   34529:   <a href="common-dom-interfaces.html#reflect">reflect</a> the elements' <code title="attr-tdth-nowrap"><a href="#attr-tdth-nowrap">nowrap</a></code> content attributes.</p>
                   34530: 
                   34531:   <p>The <dfn id="dom-tdth-valign" title="dom-tdth-vAlign"><code>vAlign</code></dfn> IDL
                   34532:   attribute of the <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> element must
                   34533:   <a href="common-dom-interfaces.html#reflect">reflect</a> the elements' <code title="attr-tdth-valign"><a href="#attr-tdth-valign">valign</a></code> content attributes.</p>
                   34534: 
                   34535:   <p>The <dfn id="dom-tdth-bgcolor" title="dom-tdth-bgColor"><code>bgColor</code></dfn> IDL
                   34536:   attribute of the <code><a href="the-td-element.html#the-td-element">td</a></code> and <code><a href="the-th-element.html#the-th-element">th</a></code> elements must
                   34537:   <a href="common-dom-interfaces.html#reflect">reflect</a> the elements' <code title="attr-tdth-bgcolor"><a href="#attr-tdth-bgcolor">bgcolor</a></code> content attributes.</p>
                   34538: 
                   34539:   <hr><pre class="idl">partial interface <a href="the-tr-element.html#htmltablerowelement">HTMLTableRowElement</a> {
                   34540:            attribute DOMString <a href="#dom-tr-align" title="dom-tr-align">align</a>;
                   34541:            attribute DOMString <a href="#dom-tr-ch" title="dom-tr-ch">ch</a>;
                   34542:            attribute DOMString <a href="#dom-tr-choff" title="dom-tr-chOff">chOff</a>;
                   34543:            attribute DOMString <a href="#dom-tr-valign" title="dom-tr-vAlign">vAlign</a>;
                   34544: 
                   34545:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-tr-bgcolor" title="dom-tr-bgColor">bgColor</a>;
                   34546: };</pre>
                   34547: 
                   34548:   <p>The <dfn id="dom-tr-align" title="dom-tr-align"><code>align</code></dfn> IDL
                   34549:   attribute of the <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34550:   the content attribute of the same name.</p>
                   34551: 
                   34552:   <p>The <dfn id="dom-tr-ch" title="dom-tr-ch"><code>ch</code></dfn> IDL attribute of
                   34553:   the <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a> the element's
                   34554:   <code title="attr-tr-char"><a href="#attr-tr-char">char</a></code> content attribute.</p>
                   34555: 
                   34556:   <p>The <dfn id="dom-tr-choff" title="dom-tr-chOff"><code>chOff</code></dfn> IDL
                   34557:   attribute of the <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34558:   the element's <code title="attr-tr-charoff"><a href="#attr-tr-charoff">charoff</a></code> content
                   34559:   attribute.</p>
                   34560: 
                   34561:   <p>The <dfn id="dom-tr-valign" title="dom-tr-vAlign"><code>vAlign</code></dfn> IDL
                   34562:   attribute of the <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34563:   the element's <code title="attr-tr-valign"><a href="#attr-tr-valign">valign</a></code> content
                   34564:   attribute.</p>
                   34565: 
                   34566:   <p>The <dfn id="dom-tr-bgcolor" title="dom-tr-bgColor"><code>bgColor</code></dfn> IDL
                   34567:   attribute of the <code><a href="the-tr-element.html#the-tr-element">tr</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a>
                   34568:   the element's <code title="attr-tr-bgcolor"><a href="#attr-tr-bgcolor">bgcolor</a></code> content
                   34569:   attribute.</p>
                   34570: 
                   34571:   <hr><pre class="idl">partial interface <a href="the-ul-element.html#htmlulistelement">HTMLUListElement</a> {
                   34572:            attribute boolean <a href="#dom-ul-compact" title="dom-ul-compact">compact</a>;
                   34573:            attribute DOMString <a href="#dom-ul-type" title="dom-ul-type">type</a>;
                   34574: };</pre>
                   34575: 
                   34576:   <p>The <dfn id="dom-ul-compact" title="dom-ul-compact"><code>compact</code></dfn> and
                   34577:   <dfn id="dom-ul-type" title="dom-ul-type"><code>type</code></dfn> IDL attributes of
                   34578:   the <code><a href="the-ul-element.html#the-ul-element">ul</a></code> element must <a href="common-dom-interfaces.html#reflect">reflect</a> the respective
                   34579:   content attributes of the same name.</p>
                   34580: 
                   34581:   <hr><p>User agents must treat <code><a href="#xmp">xmp</a></code> elements in a manner
                   34582:   equivalent to <code><a href="the-pre-element.html#the-pre-element">pre</a></code> elements in terms of semantics and
                   34583:   for purposes of rendering. (The parser has special behavior for this
                   34584:   element though.)</p>
                   34585: 
                   34586:   <hr><p>The <code><a href="#bgsound">bgsound</a></code>, <code><a href="#isindex-0">isindex</a></code>,
                   34587:   <code><a href="#multicol">multicol</a></code>, <code><a href="#nextid">nextid</a></code>, <code><a href="#rb">rb</a></code>, and
                   34588:   <code><a href="#spacer">spacer</a></code> elements must use the
                   34589:   <code><a href="elements.html#htmlunknownelement">HTMLUnknownElement</a></code> interface.</p> <!-- has to be
                   34590:   explicitly listed because technically we define the elements in the
                   34591:   spec, albeit as obsolete, and then we say that only elements not
                   34592:   defined in this spec use HTMLUnknownElement. -->
                   34593: 
                   34594:   <hr><pre class="idl">partial interface <a href="dom.html#document">Document</a> {
                   34595:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-document-fgcolor" title="dom-document-fgColor">fgColor</a>;
                   34596:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-document-linkcolor" title="dom-document-linkColor">linkColor</a>;
                   34597:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-document-vlinkcolor" title="dom-document-vlinkColor">vlinkColor</a>;
                   34598:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-document-alinkcolor" title="dom-document-alinkColor">alinkColor</a>;
                   34599:   [TreatNullAs=EmptyString] attribute DOMString <a href="#dom-document-bgcolor" title="dom-document-bgColor">bgColor</a>;
                   34600: 
                   34601:   readonly attribute <a href="infrastructure.html#htmlcollection">HTMLCollection</a> <a href="#dom-document-anchors" title="dom-document-anchors">anchors</a>;
                   34602:   readonly attribute <a href="infrastructure.html#htmlcollection">HTMLCollection</a> <a href="#dom-document-applets" title="dom-document-applets">applets</a>;
                   34603: 
                   34604:   void <a href="#dom-document-clear" title="dom-document-clear">clear</a>();
                   34605: 
                   34606:   readonly attribute <a href="common-dom-interfaces.html#htmlallcollection-0">HTMLAllCollection</a> <a href="#dom-document-all" title="dom-document-all">all</a>;
                   34607: };</pre>
                   34608: 
                   34609:   <p>The attributes of the <code><a href="dom.html#document">Document</a></code> object listed in the
                   34610:   first column of the following table must <a href="common-dom-interfaces.html#reflect">reflect</a> the
                   34611:   content attribute on <a href="dom.html#the-body-element-0">the body element</a> with the name
                   34612:   given in the corresponding cell in the second column on the same
                   34613:   row, if <a href="dom.html#the-body-element-0">the body element</a> is a <code><a href="the-body-element.html#the-body-element">body</a></code> element
                   34614:   (as opposed to a <code><a href="#frameset">frameset</a></code> element). When there is no
                   34615:   <a href="dom.html#the-body-element-0" title="the body element">body element</a> or if it is a
                   34616:   <code><a href="#frameset">frameset</a></code> element, the attributes must instead return
                   34617:   the empty string on getting and do nothing on setting.</p>
                   34618: 
                   34619:   <table><thead><tr><th> IDL attribute
                   34620:      </th><th> Content attribute
                   34621:    </th></tr></thead><tbody><tr><td><dfn id="dom-document-fgcolor" title="dom-document-fgColor"><code>fgColor</code></dfn>
                   34622:      </td><td><code title="attr-body-text"><a href="#attr-body-text">text</a></code>
                   34623:     </td></tr><tr><td><dfn id="dom-document-linkcolor" title="dom-document-linkColor"><code>linkColor</code></dfn>
                   34624:      </td><td><code title="attr-body-link"><a href="#attr-body-link">link</a></code>
                   34625:     </td></tr><tr><td><dfn id="dom-document-vlinkcolor" title="dom-document-vlinkColor"><code>vlinkColor</code></dfn>
                   34626:      </td><td><code title="attr-body-vlink"><a href="#attr-body-vlink">vlink</a></code>
                   34627:     </td></tr><tr><td><dfn id="dom-document-alinkcolor" title="dom-document-alinkColor"><code>alinkColor</code></dfn>
                   34628:      </td><td><code title="attr-body-alink"><a href="#attr-body-alink">alink</a></code>
                   34629:     </td></tr><tr><td><dfn id="dom-document-bgcolor" title="dom-document-bgColor"><code>bgColor</code></dfn>
                   34630:      </td><td><code title="attr-body-bgcolor"><a href="#attr-body-bgcolor">bgcolor</a></code>
                   34631:   </td></tr></tbody></table><hr><p>The <dfn id="dom-document-anchors" title="dom-document-anchors"><code>anchors</code></dfn>
                   34632:   attribute must return an <code><a href="infrastructure.html#htmlcollection">HTMLCollection</a></code> rooted at the
                   34633:   <code><a href="dom.html#document">Document</a></code> node, whose filter matches only <code><a href="the-a-element.html#the-a-element">a</a></code>
                   34634:   elements with <code title="attr-a-name"><a href="#attr-a-name">name</a></code>
                   34635:   attributes.</p>
                   34636: 
                   34637:   <p>The <dfn id="dom-document-applets" title="dom-document-applets"><code>applets</code></dfn>
                   34638:   attribute must return an <code><a href="infrastructure.html#htmlcollection">HTMLCollection</a></code> rooted at the
                   34639:   <code><a href="dom.html#document">Document</a></code> node, whose filter matches only
                   34640:   <code><a href="#the-applet-element">applet</a></code> elements.</p>
                   34641: 
                   34642:   <p>The <dfn id="dom-document-clear" title="dom-document-clear"><code>clear()</code></dfn>
                   34643:   method must do nothing.</p>
                   34644: 
                   34645:   <hr><p>The <dfn id="dom-document-all" title="dom-document-all"><code>all</code></dfn>
                   34646:   attribute must return an <code><a href="common-dom-interfaces.html#htmlallcollection-0">HTMLAllCollection</a></code> rooted at the
                   34647:   <code><a href="dom.html#document">Document</a></code> node, whose filter matches all elements.</p>
                   34648: 
                   34649:   <p>The object returned for <code title="dom-document-all"><a href="#dom-document-all">all</a></code>
                   34650:   has several unusual behaviors:</p>
                   34651: 
                   34652:   <ul><li><p>The user agent must act as if the ToBoolean() operator in
                   34653:    JavaScript converts the object returned for <code title="dom-document-all"><a href="#dom-document-all">all</a></code> to the false value.</p></li>
                   34654: 
                   34655:    <li><p>The user agent must act as if, for the purposes of the <code title="">==</code> and <code title="">!=</code> operators in
                   34656:    JavaScript, the object returned for <code title="dom-document-all"><a href="#dom-document-all">all</a></code> is equal to the <code title="">undefined</code> value.</p></li>
                   34657: 
                   34658:    <li><p>The user agent must act such that the <code title="">typeof</code> operator in JavaScript returns the string
                   34659:    <code title="">undefined</code> when applied to the object returned
                   34660:    for <code title="dom-document-all"><a href="#dom-document-all">all</a></code>.</p></li>
                   34661: 
                   34662:   </ul><p class="note">These requirements are a <a href="introduction.html#willful-violation">willful
                   34663:   violation</a> of the JavaScript specification current at the time
                   34664:   of writing (ECMAScript edition 5). The JavaScript specification
                   34665:   requires that the ToBoolean() operator convert all objects to the
                   34666:   true value, and does not have provisions for objects acting as if
                   34667:   they were <code title="">undefined</code> for the purposes of
                   34668:   certain operators. This violation is motivated by a desire for
                   34669:   compatibility with two classes of legacy content: one that uses the
                   34670:   presence of <code title="dom-document-all"><a href="#dom-document-all">document.all</a></code> as a
                   34671:   way to detect legacy user agents, and one that only supports those
                   34672:   legacy user agents and uses the <code title="dom-document-all"><a href="#dom-document-all">document.all</a></code> object without testing
                   34673:   for its presence first. <a href="#refsECMA262">[ECMA262]</a></p>
                   34674: 
                   34675:   </div>
                   34676: 
                   34677: 
                   34678: 
                   34679:   <h2 id="iana"><span class="secno">12 </span>IANA considerations</h2>
                   34680: 
                   34681:   <!-- http://www.w3.org/2002/06/registering-mediatype.html -->
                   34682: 
                   34683: 
                   34684:   <h3 id="text/html"><span class="secno">12.1 </span><dfn><code>text/html</code></dfn></h3>
                   34685: 
                   34686:   <p>This registration is for community review and will be submitted
                   34687:   to the IESG for review, approval, and registration with IANA.</p>
                   34688: 
                   34689:   <!--
                   34690:    To: ietf-types@iana.org
                   34691:    Subject: Registration of media type text/html
                   34692:   -->
                   34693: 
                   34694:   <!--
                   34695:    Obsoletes:
                   34696:    http://tools.ietf.org/html/rfc2854
                   34697: 
                   34698:    Include a request to retire RFC 2854 persuant to section 6.4 of RFC 2026.
                   34699:   -->
                   34700: 
                   34701:   <dl><dt>Type name:</dt>
                   34702:    <dd>text</dd>
                   34703:    <dt>Subtype name:</dt>
                   34704:    <dd>html</dd>
                   34705:    <dt>Required parameters:</dt>
                   34706:    <dd>No required parameters</dd>
                   34707:    <dt>Optional parameters:</dt>
                   34708:    <dd>
                   34709:     <dl><dt><code title="">charset</code></dt>
                   34710:      <dd>
                   34711:       <p>The <code title="">charset</code> parameter may be provided
                   34712:       to definitively specify the <a href="infrastructure.html#document's-character-encoding">document's character
                   34713:       encoding</a>, overriding any <a href="the-meta-element.html#character-encoding-declaration" title="character encoding
                   34714:       declaration">character encoding declarations</a> in the
                   34715:       document. The parameter's value must be the name of the
                   34716:       character encoding used to serialize the file, must be a valid
                   34717:       character encoding name, and must be an <a href="infrastructure.html#ascii-case-insensitive">ASCII
                   34718:       case-insensitive</a> match for the <a href="infrastructure.html#preferred-mime-name">preferred MIME
                   34719:       name</a> for that encoding. <a href="#refsIANACHARSET">[IANACHARSET]</a></p>
                   34720:      </dd>
                   34721:     </dl></dd>
                   34722:    <dt>Encoding considerations:</dt>
                   34723:    <dd>
                   34724:     8bit (see the section on <a href="the-meta-element.html#character-encoding-declaration" title="character encoding
                   34725:     declaration">character encoding declarations</a>)
                   34726:    </dd>
                   34727: <!--ADD-TOPIC:Security-->
                   34728:    <dt>Security considerations:</dt>
                   34729:    <dd>
                   34730: 
                   34731:     <p>Entire novels have been written about the security
                   34732:     considerations that apply to HTML documents. Many are listed in
                   34733:     this document, to which the reader is referred for more
                   34734:     details. Some general concerns bear mentioning here, however:</p>
                   34735: 
                   34736:     <p>HTML is scripted language, and has a large number of APIs (some
                   34737:     of which are described in this document). Script can expose the
                   34738:     user to potential risks of information leakage, credential
                   34739:     leakage, cross-site scripting attacks, cross-site request
                   34740:     forgeries, and a host of other problems. While the designs in this
                   34741:     specification are intended to be safe if implemented correctly, a
                   34742:     full implementation is a massive undertaking and, as with any
                   34743:     software, user agents are likely to have security bugs.</p>
                   34744: 
                   34745:     <p>Even without scripting, there are specific features in HTML
                   34746:     which, for historical reasons, are required for broad
                   34747:     compatibility with legacy content but that expose the user to
                   34748:     unfortunate security problems. In particular, the <code><a href="the-img-element.html#the-img-element">img</a></code>
                   34749:     element can be used in conjunction with some other features as a
                   34750:     way to effect a port scan from the user's location on the
                   34751:     Internet. This can expose local network topologies that the
                   34752:     attacker would otherwise not be able to determine.</p>
                   34753: 
                   34754:     <p>HTML relies on a compartmentalization scheme sometimes known as
                   34755:     the <i>same-origin policy</i>. An <a href="#origin-0">origin</a> in most
                   34756:     cases consists of all the pages served from the same host, on the
                   34757:     same port, using the same protocol.</p>
                   34758: 
                   34759:     <p>It is critical, therefore, to ensure that any untrusted content
                   34760:     that forms part of a site be hosted on a different
                   34761:     <a href="#origin-0">origin</a> than any sensitive content on that site.
                   34762:     Untrusted content can easily spoof any other page on the same
                   34763:     origin, read data from that origin, cause scripts in that origin
                   34764:     to execute, submit forms to and from that origin even if they are
                   34765:     protected from cross-site request forgery attacks by unique
                   34766:     tokens, and make use of any third-party resources exposed to or
                   34767:     rights granted to that origin.</p>
                   34768: 
                   34769:    </dd>
                   34770: <!--REMOVE-TOPIC:Security-->
                   34771:    <dt>Interoperability considerations:</dt>
                   34772:    <dd>
                   34773:     Rules for processing both conforming and non-conforming content
                   34774:     are defined in this specification.
                   34775:    </dd>
                   34776:    <dt>Published specification:</dt>
                   34777:    <dd id="authors-using-html">
                   34778:     This document is the relevant specification. Labeling a resource
                   34779:     with the <code><a href="#text/html">text/html</a></code> type asserts that the resource is
                   34780:     an <a href="infrastructure.html#html-documents" title="HTML documents">HTML document</a> using
                   34781:     <a href="#syntax">the HTML syntax</a>.
                   34782:    </dd>
                   34783:    <dt>Applications that use this media type:</dt>
                   34784:    <dd>
                   34785:     Web browsers, tools for processing Web content, HTML authoring
                   34786:     tools, search engines, validators.
                   34787:    </dd>
                   34788:    <dt>Additional information:</dt>
                   34789:    <dd>
                   34790:     <dl><dt>Magic number(s):</dt>
                   34791:      <dd>No sequence of bytes can uniquely identify an HTML
                   34792:      document. More information on detecting HTML documents is
                   34793:      available in the Media Type Sniffing specification. <a href="#refsMIMESNIFF">[MIMESNIFF]</a></dd>
                   34794:      <dt>File extension(s):</dt>
                   34795:      <dd>"<code title="">html</code>" and "<code title="">htm</code>"
                   34796:      are commonly, but certainly not exclusively, used as the
                   34797:      extension for HTML documents.</dd>
                   34798:      <dt>Macintosh file type code(s):</dt>
                   34799:      <dd><code title="">TEXT</code></dd>
                   34800:     </dl></dd>
                   34801:    <dt>Person &amp; email address to contact for further information:</dt>
                   34802:    <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
                   34803:    <dt>Intended usage:</dt>
                   34804:    <dd>Common</dd>
                   34805:    <dt>Restrictions on usage:</dt>
                   34806:    <dd>No restrictions apply.</dd>
                   34807:    <dt>Author:</dt>
                   34808:    <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
                   34809:    <dt>Change controller:</dt>
                   34810:    <dd>W3C</dd>
                   34811:   </dl><p>Fragment identifiers used with <code><a href="#text/html">text/html</a></code> resources
                   34812:   either refer to <a href="#the-indicated-part-of-the-document">the indicated part of the document</a> or
                   34813:   provide state information for in-page scripts.</p>
                   34814: 
                   34815: 
                   34816: 
                   34817: 
                   34818:   <h3 id="multipart/x-mixed-replace"><span class="secno">12.2 </span><dfn><code>multipart/x-mixed-replace</code></dfn></h3>
                   34819: 
                   34820:   <p>This registration is for community review and will be submitted
                   34821:   to the IESG for review, approval, and registration with IANA.</p>
                   34822: 
                   34823:   <!--
                   34824:    To: ietf-types@iana.org
                   34825:    Subject: Registration of media type multipart/x-mixed-replace
                   34826:   -->
                   34827: 
                   34828:   <dl><dt>Type name:</dt>
                   34829:    <dd>multipart</dd>
                   34830:    <dt>Subtype name:</dt>
                   34831:    <dd>x-mixed-replace</dd>
                   34832:    <dt>Required parameters:</dt>
                   34833:    <dd>
                   34834:     <ul class="brief"><li><code title="">boundary</code> (defined in RFC2046) <a href="#refsRFC2046">[RFC2046]</a>
                   34835:     </li></ul></dd>
                   34836:    <dt>Optional parameters:</dt>
                   34837:    <dd>No optional parameters.</dd>
                   34838:    <dt>Encoding considerations:</dt>
                   34839:    <dd>binary</dd>
                   34840: <!--ADD-TOPIC:Security-->
                   34841:    <dt>Security considerations:</dt>
                   34842:    <dd>
                   34843:     Subresources of a <code><a href="#multipart/x-mixed-replace">multipart/x-mixed-replace</a></code>
                   34844:     resource can be of any type, including types with non-trivial
                   34845:     security implications such as <code><a href="#text/html">text/html</a></code>.
                   34846:    </dd>
                   34847: <!--REMOVE-TOPIC:Security-->
                   34848:    <dt>Interoperability considerations:</dt>
                   34849:    <dd>
                   34850:     None.
                   34851:    </dd>
                   34852:    <dt>Published specification:</dt>
                   34853:    <dd>
                   34854:     This specification describes processing rules for Web browsers.
                   34855:     Conformance requirements for generating resources with this type are the same as for <code>multipart/mixed</code>. <a href="#refsRFC2046">[RFC2046]</a>
                   34856:    </dd>
                   34857:    <dt>Applications that use this media type:</dt>
                   34858:    <dd>
                   34859:     This type is intended to be used in resources generated by Web servers, for consumption by Web browsers.
                   34860:    </dd>
                   34861:    <dt>Additional information:</dt>
                   34862:    <dd>
                   34863:     <dl><dt>Magic number(s):</dt>
                   34864:      <dd>No sequence of bytes can uniquely identify a <code><a href="#multipart/x-mixed-replace">multipart/x-mixed-replace</a></code> resource.</dd>
                   34865:      <dt>File extension(s):</dt>
                   34866:      <dd>No specific file extensions are recommended for this type.</dd>
                   34867:      <dt>Macintosh file type code(s):</dt>
                   34868:      <dd>No specific Macintosh file type codes are recommended for this type.</dd>
                   34869:     </dl></dd>
                   34870:    <dt>Person &amp; email address to contact for further information:</dt>
                   34871:    <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
                   34872:    <dt>Intended usage:</dt>
                   34873:    <dd>Common</dd>
                   34874:    <dt>Restrictions on usage:</dt>
                   34875:    <dd>No restrictions apply.</dd>
                   34876:    <dt>Author:</dt>
                   34877:    <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
                   34878:    <dt>Change controller:</dt>
                   34879:    <dd>W3C</dd>
                   34880:   </dl><p>Fragment identifiers used with
                   34881:   <code><a href="#multipart/x-mixed-replace">multipart/x-mixed-replace</a></code> resources apply to each body
                   34882:   part as defined by the type used by that body part.</p>
                   34883: 
                   34884: 
                   34885:   <h3 id="application/xhtml+xml"><span class="secno">12.3 </span><dfn><code>application/xhtml+xml</code></dfn></h3>
                   34886: 
                   34887:   <p>This registration is for community review and will be submitted
                   34888:   to the IESG for review, approval, and registration with IANA.</p>
                   34889: 
                   34890:   <!--
                   34891:    To: ietf-types@iana.org
                   34892:    Subject: Registration of media type application/xhtml+xml
                   34893:   -->
                   34894: 
                   34895:   <!--
                   34896:    Obsoletes:
                   34897:    http://tools.ietf.org/html/rfc3236
                   34898:   -->
                   34899: 
                   34900:   <dl><dt>Type name:</dt>
                   34901:    <dd>application</dd>
                   34902:    <dt>Subtype name:</dt>
                   34903:    <dd>xhtml+xml</dd>
                   34904:    <dt>Required parameters:</dt>
                   34905:    <dd>Same as for <code>application/xml</code> <a href="#refsRFC3023">[RFC3023]</a></dd>
                   34906:    <dt>Optional parameters:</dt>
                   34907:    <dd>Same as for <code>application/xml</code> <a href="#refsRFC3023">[RFC3023]</a></dd>
                   34908:    <dt>Encoding considerations:</dt>
                   34909:    <dd>Same as for <code>application/xml</code> <a href="#refsRFC3023">[RFC3023]</a></dd>
                   34910: <!--ADD-TOPIC:Security-->
                   34911:    <dt>Security considerations:</dt>
                   34912:    <dd>Same as for <code>application/xml</code> <a href="#refsRFC3023">[RFC3023]</a></dd>
                   34913: <!--REMOVE-TOPIC:Security-->
                   34914:    <dt>Interoperability considerations:</dt>
                   34915:    <dd>Same as for <code>application/xml</code> <a href="#refsRFC3023">[RFC3023]</a></dd>
                   34916:    <dt id="authors-using-xhtml">Published specification:</dt>
                   34917:    <dd>
                   34918:     Labeling a resource with the <code><a href="#application/xhtml+xml">application/xhtml+xml</a></code>
                   34919:     type asserts that the resource is an XML document that likely has
                   34920:     a root element from the <a href="namespaces.html#html-namespace-0">HTML namespace</a>. Thus, the
                   34921:     relevant specifications are the XML specification, the Namespaces
                   34922:     in XML specification, and this specification. <a href="#refsXML">[XML]</a> <a href="#refsXMLNS">[XMLNS]</a>
                   34923:    </dd>
                   34924:    <dt>Applications that use this media type:</dt>
                   34925:    <dd>Same as for <code>application/xml</code> <a href="#refsRFC3023">[RFC3023]</a></dd>
                   34926:    <dt>Additional information:</dt>
                   34927:    <dd>
                   34928:     <dl><dt>Magic number(s):</dt>
                   34929:      <dd>Same as for <code>application/xml</code> <a href="#refsRFC3023">[RFC3023]</a></dd>
                   34930:      <dt>File extension(s):</dt>
                   34931:      <dd>"<code title="">xhtml</code>" and "<code title="">xht</code>"
                   34932:      are sometimes used as extensions for XML resources that have a
                   34933:      root element from the <a href="namespaces.html#html-namespace-0">HTML namespace</a>.</dd>
                   34934:      <dt>Macintosh file type code(s):</dt>
                   34935:      <dd><code title="">TEXT</code></dd>
                   34936:     </dl></dd>
                   34937:    <dt>Person &amp; email address to contact for further information:</dt>
                   34938:    <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
                   34939:    <dt>Intended usage:</dt>
                   34940:    <dd>Common</dd>
                   34941:    <dt>Restrictions on usage:</dt>
                   34942:    <dd>No restrictions apply.</dd>
                   34943:    <dt>Author:</dt>
                   34944:    <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
                   34945:    <dt>Change controller:</dt>
                   34946:    <dd>W3C</dd>
                   34947:   </dl><p>Fragment identifiers used with <code><a href="#application/xhtml+xml">application/xhtml+xml</a></code>
                   34948:   resources have the same semantics as with any <a href="infrastructure.html#xml-mime-type">XML MIME
                   34949:   type</a>. <a href="#refsRFC3023">[RFC3023]</a></p>
                   34950: 
                   34951: 
                   34952:   <h3 id="application/x-www-form-urlencoded"><span class="secno">12.4 </span><dfn><code>application/x-www-form-urlencoded</code></dfn></h3>
                   34953: 
                   34954:   <p>This registration is for community review and will be submitted
                   34955:   to the IESG for review, approval, and registration with IANA.</p>
                   34956: 
                   34957:   <!--
                   34958:    To: ietf-types@iana.org
                   34959:    Subject: Registration of media type application/x-www-form-urlencoded
                   34960:   -->
                   34961: 
                   34962:   <dl><dt>Type name:</dt>
                   34963:    <dd>application</dd>
                   34964:    <dt>Subtype name:</dt>
                   34965:    <dd>x-www-form-urlencoded</dd>
                   34966:    <dt>Required parameters:</dt>
                   34967:    <dd>No parameters</dd>
                   34968:    <dt>Optional parameters:</dt>
                   34969:    <dd>No parameters</dd>
                   34970:    <dt>Encoding considerations:</dt>
                   34971:    <dd>7bit (US-ASCII encoding of octets that themselves can be encoding text using any <a href="infrastructure.html#ascii-compatible-character-encoding">ASCII-compatible character encoding</a>)</dd>
                   34972: <!--ADD-TOPIC:Security-->
                   34973:    <dt>Security considerations:</dt>
                   34974:    <dd>
                   34975:     <p>In isolation, an <code><a href="#application/x-www-form-urlencoded">application/x-www-form-urlencoded</a></code>
                   34976:     payload poses no security risks. However, as this type is usually
                   34977:     used as part of a form submission, all the risks that apply to
                   34978:     HTML forms need to be considered in the context of this type.</p>
                   34979:    </dd>
                   34980: <!--REMOVE-TOPIC:Security-->
                   34981:    <dt>Interoperability considerations:</dt>
                   34982:    <dd>
                   34983:     Rules for generating and processing
                   34984:     <code><a href="#application/x-www-form-urlencoded">application/x-www-form-urlencoded</a></code> payloads are
                   34985:     defined in this specification.
                   34986:    </dd>
                   34987:    <dt>Published specification:</dt>
                   34988:    <dd>
                   34989:     This document is the relevant specification.
                   34990:     Algorithms for <a href="#application/x-www-form-urlencoded-encoding-algorithm" title="application/x-www-form-urlencoded encoding algorithm">encoding</a>
                   34991:     and <a href="#application/x-www-form-urlencoded-decoding-algorithm" title="application/x-www-form-urlencoded decoding algorithm">decoding</a> are defined.
                   34992:    </dd>
                   34993:    <dt>Applications that use this media type:</dt>
                   34994:    <dd>
                   34995:     Web browsers and servers.
                   34996:    </dd>
                   34997:    <dt>Additional information:</dt>
                   34998:    <dd>
                   34999:     <dl><dt>Magic number(s):</dt>
                   35000:      <dd>There is no reliable mechanism for recognising <code><a href="#application/x-www-form-urlencoded">application/x-www-form-urlencoded</a></code> payloads.</dd>
                   35001:      <dt>File extension(s):</dt>
                   35002:      <dd>Not applicable.</dd>
                   35003:      <dt>Macintosh file type code(s):</dt>
                   35004:      <dd>Not applicable.</dd>
                   35005:     </dl></dd>
                   35006:    <dt>Person &amp; email address to contact for further information:</dt>
                   35007:    <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
                   35008:    <dt>Intended usage:</dt>
                   35009:    <dd>Common</dd>
                   35010:    <dt>Restrictions on usage:</dt>
                   35011:    <dd>This type is only intended to be used to describe HTML form
                   35012:    submission payloads.</dd>
                   35013:    <dt>Author:</dt>
                   35014:    <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
                   35015:    <dt>Change controller:</dt>
                   35016:    <dd>W3C</dd>
                   35017:   </dl><p>Fragment identifiers have no meaning with the
                   35018:   <code><a href="#application/x-www-form-urlencoded">application/x-www-form-urlencoded</a></code> type.</p>
                   35019: 
                   35020: 
                   35021:   <h3 id="text/cache-manifest"><span class="secno">12.5 </span><dfn><code>text/cache-manifest</code></dfn></h3>
                   35022: 
                   35023:   <p>This registration is for community review and will be submitted
                   35024:   to the IESG for review, approval, and registration with IANA.</p>
                   35025: 
                   35026:   <!--
                   35027:    To: ietf-types@iana.org
                   35028:    Subject: Registration of media type text/cache-manifest
                   35029:   -->
                   35030: 
                   35031:   <dl><dt>Type name:</dt>
                   35032:    <dd>text</dd>
                   35033:    <dt>Subtype name:</dt>
                   35034:    <dd>cache-manifest</dd>
                   35035:    <dt>Required parameters:</dt>
                   35036:    <dd>No parameters</dd>
                   35037:    <dt>Optional parameters:</dt>
                   35038:    <dd>No parameters</dd>
                   35039:    <dt>Encoding considerations:</dt>
                   35040:    <dd>8bit (always UTF-8)</dd>
                   35041: <!--ADD-TOPIC:Security-->
                   35042:    <dt>Security considerations:</dt>
                   35043:    <dd>
                   35044:     <p>Cache manifests themselves pose no immediate risk unless
                   35045:     sensitive information is included within the
                   35046:     manifest. Implementations, however, are required to follow
                   35047:     specific rules when populating a cache based on a cache manifest,
                   35048:     to ensure that certain origin-based restrictions are
                   35049:     honored. Failure to correctly implement these rules can result in
                   35050:     information leakage, cross-site scripting attacks, and the
                   35051:     like.</p>
                   35052:    </dd>
                   35053: <!--REMOVE-TOPIC:Security-->
                   35054:    <dt>Interoperability considerations:</dt>
                   35055:    <dd>
                   35056:     Rules for processing both conforming and non-conforming content
                   35057:     are defined in this specification.
                   35058:    </dd>
                   35059:    <dt>Published specification:</dt>
                   35060:    <dd>
                   35061:     This document is the relevant specification.
                   35062:    </dd>
                   35063:    <dt>Applications that use this media type:</dt>
                   35064:    <dd>
                   35065:     Web browsers.
                   35066:    </dd>
                   35067:    <dt>Additional information:</dt>
                   35068:    <dd>
                   35069:     <dl><dt>Magic number(s):</dt>
                   35070:      <dd>Cache manifests begin with the string "<code title="">CACHE
                   35071:      MANIFEST</code>", followed by either a U+0020 SPACE character, a
                   35072:      "tab" (U+0009) character, a "LF" (U+000A) character, or a "CR" (U+000D) character.</dd>
                   35073:      <dt>File extension(s):</dt>
                   35074:      <dd>"<code title="">appcache</code>"</dd>
                   35075:      <dt>Macintosh file type code(s):</dt>
                   35076:      <dd>No specific Macintosh file type codes are recommended for this type.</dd>
                   35077:     </dl></dd>
                   35078:    <dt>Person &amp; email address to contact for further information:</dt>
                   35079:    <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
                   35080:    <dt>Intended usage:</dt>
                   35081:    <dd>Common</dd>
                   35082:    <dt>Restrictions on usage:</dt>
                   35083:    <dd>No restrictions apply.</dd>
                   35084:    <dt>Author:</dt>
                   35085:    <dd>Ian Hickson &lt;ian@hixie.ch&gt;</dd>
                   35086:    <dt>Change controller:</dt>
                   35087:    <dd>W3C</dd>
                   35088:   </dl><p>Fragment identifiers have no meaning with
                   35089:   <code><a href="#text/cache-manifest">text/cache-manifest</a></code> resources.</p>
                   35090: 
                   35091: 
                   35092: <!--PING-->
                   35093: 
                   35094: <!--MD-->
                   35095: 
                   35096: 
                   35097: <!--PING-->
                   35098: 
                   35099: 
                   35100:   
                   35101: 
                   35102: 
                   35103:   <h3 id="web+-scheme-prefix"><span class="secno">12.6 </span><dfn title="scheme-web"><code>web+</code> scheme prefix</dfn></h3>
                   35104: 
                   35105:   <p>This section describes a convention for use with the IANA URI
                   35106:   scheme registry. It does not itself register a specific scheme. <a href="#refsRFC4395">[RFC4395]</a></p>
                   35107: 
                   35108:   <p>Schemes using the <code title="">web+</code> prefix must have names
                   35109:   starting with the four characters "<code title="">web+</code>"
                   35110:   followed by one or more letters in the range <code title="">a</code>-<code title="">z</code>.</p>
                   35111: 
                   35112:   <p>Registrations of such schemes should specify the syntax and
                   35113:   semantics of the scheme. Registrations should define what applications
                   35114:   and/or protocols use the scheme.</p>
                   35115: 
                   35116:   <p>All "<code title="">web+</code>" schemes should use UTF-8 encodings were  relevant.</p>
                   35117: 
                   35118: <!--ADD-TOPIC:Security-->
                   35119:   <p>Any Web page is able to register a handler for all "<code title="">web+</code>" schemes. As such, these schemes must not be used
                   35120:   for features intended to be core platform features (e.g. network
                   35121:   transfer protocols like HTTP or FTP). Similarly, such schemes must not
                   35122:   store confidential information in their URLs, such as usernames,
                   35123:   passwords, personal information, or confidential project names.</p>
                   35124: <!--REMOVE-TOPIC:Security-->
                   35125:   <p>Registrations should reference the description of <code title="">web+</code> schemes in <cite>Custom scheme and content
                   35126:   handlers</cite>, HTML5: <a href="system-state-and-capabilities.html#custom-handlers">http://www.w3.org/TR/html5/system-state-and-capabilities.html#custom-handlers</a></p>
                   35127: 
                   35128: 
                   35129:   <h2 class="no-num" id="index">Index</h2>
                   35130: 
                   35131:   <div class="impl">
                   35132: 
                   35133:   <p>The following sections only cover conforming elements and features.</p>
                   35134: 
                   35135:   </div>
                   35136: 
                   35137:   <h3 class="no-num" id="elements-1">Elements</h3>
                   35138: 
                   35139:   <p><i>This section is non-normative.</i></p>
                   35140:   <!-- XXX this index doesn't list the palpable elements -->
                   35141: 
                   35142:   <table><caption>List of elements</caption>
                   35143:    <thead><tr><th> Element
                   35144:      </th><th> Description
                   35145:      </th><th> Categories
                   35146:      </th><th> Parents&#8224;
                   35147:      </th><th> Children
                   35148:      </th><th> Attributes
                   35149:      </th><th> Interface
                   35150:    </th></tr></thead><tbody><tr><th><code><a href="the-a-element.html#the-a-element">a</a></code></th>
                   35151:      <td>Hyperlink</td>
                   35152:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35153:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>*;
                   35154:          <a href="content-models.html#interactive-content-0" title="Interactive content">interactive</a></td>
                   35155:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35156:      <td><a href="content-models.html#transparent">transparent</a>*</td>
                   35157:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35158:          <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code>;
                   35159:          <code title="attr-hyperlink-target"><a href="#attr-hyperlink-target">target</a></code>;
                   35160: <!--DOWNLOAD--><!--PING-->
                   35161:          <code title="attr-hyperlink-rel"><a href="#attr-hyperlink-rel">rel</a></code>;
                   35162:          <code title="attr-hyperlink-media"><a href="#attr-hyperlink-media">media</a></code>;
                   35163:          <code title="attr-hyperlink-hreflang"><a href="#attr-hyperlink-hreflang">hreflang</a></code>;
                   35164:          <code title="attr-hyperlink-type"><a href="#attr-hyperlink-type">type</a></code></td>
                   35165:      <td><code><a href="the-a-element.html#htmlanchorelement">HTMLAnchorElement</a></code></td>
                   35166:     </tr><tr><th><code><a href="the-abbr-element.html#the-abbr-element">abbr</a></code></th>
                   35167:      <td>Abbreviation</td>
                   35168:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35169:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35170:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35171:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35172:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35173:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35174:     </tr><tr><th><code><a href="the-address-element.html#the-address-element">address</a></code></th>
                   35175:      <td>Contact information for a page or <code><a href="the-article-element.html#the-article-element">article</a></code> element</td>
                   35176:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35177:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35178:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>*</td>
                   35179:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35180:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35181:     </tr><tr><th><code><a href="the-area-element.html#the-area-element">area</a></code></th>
                   35182:      <td>Hyperlink or dead area on an image map</td>
                   35183:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35184:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35185:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>*</td>
                   35186:      <td>empty</td>
                   35187:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35188:          <code title="attr-area-alt"><a href="the-area-element.html#attr-area-alt">alt</a></code>;
                   35189:          <code title="attr-area-coords"><a href="the-area-element.html#attr-area-coords">coords</a></code>;
                   35190:          <code title="attr-area-shape"><a href="the-area-element.html#attr-area-shape">shape</a></code>;
                   35191:          <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">href</a></code>;
                   35192:          <code title="attr-hyperlink-target"><a href="#attr-hyperlink-target">target</a></code>;
                   35193: <!--DOWNLOAD--><!--PING-->
                   35194:          <code title="attr-hyperlink-rel"><a href="#attr-hyperlink-rel">rel</a></code>;
                   35195:          <code title="attr-hyperlink-media"><a href="#attr-hyperlink-media">media</a></code>;
                   35196:          <code title="attr-hyperlink-hreflang"><a href="#attr-hyperlink-hreflang">hreflang</a></code>;
                   35197:          <code title="attr-hyperlink-type"><a href="#attr-hyperlink-type">type</a></code></td>
                   35198:      <td><code><a href="the-area-element.html#htmlareaelement">HTMLAreaElement</a></code></td>
                   35199:     </tr><tr><th><code><a href="the-article-element.html#the-article-element">article</a></code></th>
                   35200:      <td>Self-contained syndicatable or reusable composition</td>
                   35201:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35202:          <a href="content-models.html#sectioning-content-0" title="Sectioning content">sectioning</a></td>
                   35203:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35204:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35205:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35206:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35207:     </tr><tr><th><code><a href="the-aside-element.html#the-aside-element">aside</a></code></th>
                   35208:      <td>Sidebar for tangentially related content</td>
                   35209:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35210:          <a href="content-models.html#sectioning-content-0" title="Sectioning content">sectioning</a></td>
                   35211:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35212:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35213:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35214:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35215:     </tr><tr><th><code><a href="the-audio-element.html#the-audio-element">audio</a></code></th>
                   35216:      <td>Audio player</td>
                   35217:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35218:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   35219:          <a href="content-models.html#embedded-content-2" title="Embedded content">embedded</a>;
                   35220:          <a href="content-models.html#interactive-content-0" title="Interactive content">interactive</a></td>
                   35221:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35222:      <td><code><a href="the-source-element.html#the-source-element">source</a></code>*;
                   35223:          <a href="content-models.html#transparent">transparent</a>*</td>
                   35224:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35225:          <code title="attr-media-src"><a href="media-elements.html#attr-media-src">src</a></code>;
                   35226:          <code title="attr-media-crossorigin"><a href="media-elements.html#attr-media-crossorigin">crossorigin</a></code>;
                   35227:          <code title="attr-media-preload"><a href="media-elements.html#attr-media-preload">preload</a></code>;
                   35228:          <code title="attr-media-autoplay"><a href="media-elements.html#attr-media-autoplay">autoplay</a></code>;
                   35229:          <code title="attr-media-mediagroup"><a href="media-elements.html#attr-media-mediagroup">mediagroup</a></code>;
                   35230:          <code title="attr-media-loop"><a href="media-elements.html#attr-media-loop">loop</a></code>;
                   35231:          <code title="attr-media-muted"><a href="media-elements.html#attr-media-muted">muted</a></code>;
                   35232:          <code title="attr-media-controls"><a href="media-elements.html#attr-media-controls">controls</a></code></td>
                   35233:      <td><code><a href="the-audio-element.html#htmlaudioelement">HTMLAudioElement</a></code></td>
                   35234:     </tr><tr><th><code><a href="the-b-element.html#the-b-element">b</a></code></th>
                   35235:      <td>Keywords</td>
                   35236:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35237:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35238:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35239:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35240:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35241:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35242:     </tr><tr><th><code><a href="the-base-element.html#the-base-element">base</a></code></th>
                   35243:      <td>Base URL and default target <a href="#browsing-context">browsing context</a> for <a href="#attr-hyperlink-target" title="attr-hyperlink-target">hyperlinks</a> and <a href="form-submission.html#attr-fs-target" title="attr-fs-target">forms</a></td>
                   35244:      <td><a href="content-models.html#metadata-content-0" title="Metadata content">metadata</a></td>
                   35245:      <td><code><a href="the-head-element.html#the-head-element">head</a></code></td>
                   35246:      <td>empty</td>
                   35247:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35248:          <code title="attr-base-href"><a href="the-base-element.html#attr-base-href">href</a></code>;
                   35249:          <code title="attr-base-target"><a href="the-base-element.html#attr-base-target">target</a></code></td>
                   35250:      <td><code><a href="the-base-element.html#htmlbaseelement">HTMLBaseElement</a></code></td>
                   35251:     </tr><tr><th><code><a href="the-bdi-element.html#the-bdi-element">bdi</a></code></th>
                   35252:      <td>Text directionality isolation</td>
                   35253:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35254:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35255:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35256:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35257:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35258:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35259:     </tr><tr><th><code><a href="the-bdo-element.html#the-bdo-element">bdo</a></code></th>
                   35260:      <td>Text directionality formatting</td>
                   35261:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35262:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35263:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35264:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35265:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35266:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35267:     </tr><tr><th><code><a href="the-blockquote-element.html#the-blockquote-element">blockquote</a></code></th>
                   35268:      <td>A section quoted from another source</td>
                   35269:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35270:          <a href="headings-and-sections.html#sectioning-root" title="Sectioning root">sectioning root</a></td>
                   35271:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35272:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35273:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35274:          <code title="attr-blockquote-cite"><a href="the-blockquote-element.html#attr-blockquote-cite">cite</a></code></td>
                   35275:      <td><code><a href="the-blockquote-element.html#htmlquoteelement">HTMLQuoteElement</a></code></td>
                   35276:     </tr><tr><th><code><a href="the-body-element.html#the-body-element">body</a></code></th>
                   35277:      <td>Document body</td>
                   35278:      <td><a href="headings-and-sections.html#sectioning-root" title="Sectioning root">sectioning root</a></td>
                   35279:      <td><code><a href="the-html-element.html#the-html-element">html</a></code></td>
                   35280:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35281:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35282:          <code title="handler-window-onafterprint"><a href="#handler-window-onafterprint">onafterprint</a></code>;
                   35283:          <code title="handler-window-onbeforeprint"><a href="#handler-window-onbeforeprint">onbeforeprint</a></code>;
                   35284:          <code title="handler-window-onbeforeunload"><a href="#handler-window-onbeforeunload">onbeforeunload</a></code>;
                   35285:          <code title="handler-window-onblur"><a href="#handler-window-onblur">onblur</a></code>;
                   35286:          <code title="handler-window-onerror"><a href="#handler-window-onerror">onerror</a></code>;
                   35287:          <code title="handler-window-onfocus"><a href="#handler-window-onfocus">onfocus</a></code>;
                   35288:          <code title="handler-window-onhashchange"><a href="#handler-window-onhashchange">onhashchange</a></code>;
                   35289:          <code title="handler-window-onload"><a href="#handler-window-onload">onload</a></code>;
                   35290:          <code title="handler-window-onmessage"><a href="#handler-window-onmessage">onmessage</a></code>;
                   35291:          <code title="handler-window-onoffline"><a href="#handler-window-onoffline">onoffline</a></code>;
                   35292:          <code title="handler-window-ononline"><a href="#handler-window-ononline">ononline</a></code>;
                   35293:          <code title="handler-window-onpagehide"><a href="#handler-window-onpagehide">onpagehide</a></code>;
                   35294:          <code title="handler-window-onpageshow"><a href="#handler-window-onpageshow">onpageshow</a></code>;
                   35295:          <code title="handler-window-onpopstate"><a href="#handler-window-onpopstate">onpopstate</a></code>;
                   35296:          <code title="handler-window-onresize"><a href="#handler-window-onresize">onresize</a></code>;
                   35297:          <code title="handler-window-onscroll"><a href="#handler-window-onscroll">onscroll</a></code>;
                   35298:          <code title="handler-window-onstorage"><a href="#handler-window-onstorage">onstorage</a></code>;
                   35299:          <code title="handler-window-onunload"><a href="#handler-window-onunload">onunload</a></code></td>
                   35300:      <td><code><a href="the-body-element.html#htmlbodyelement">HTMLBodyElement</a></code></td>
                   35301:     </tr><tr><th><code><a href="the-br-element.html#the-br-element">br</a></code></th>
                   35302:      <td>Line break, e.g. in poem or postal address</td>
                   35303:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35304:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35305:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35306:      <td>empty</td>
                   35307:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35308:      <td><code><a href="the-br-element.html#htmlbrelement">HTMLBRElement</a></code></td>
                   35309:     </tr><tr><th><code><a href="the-button-element.html#the-button-element">button</a></code></th>
                   35310:      <td>Button control</td>
                   35311:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35312:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   35313:          <a href="content-models.html#interactive-content-0" title="Interactive content">interactive</a>;
                   35314:          <a href="forms.html#category-listed" title="category-listed">listed</a>;
                   35315:          <a href="forms.html#category-label" title="category-label">labelable</a>;
                   35316:          <a href="forms.html#category-submit" title="category-submit">submittable</a>;
                   35317:          <a href="forms.html#form-associated-element" title="Form-associated element">form-associated</a></td>
                   35318:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35319:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>*</td>
                   35320:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35321:          <code title="attr-fe-autofocus"><a href="attributes-common-to-form-controls.html#attr-fe-autofocus">autofocus</a></code>;
                   35322:          <code title="attr-fe-disabled"><a href="attributes-common-to-form-controls.html#attr-fe-disabled">disabled</a></code>;
                   35323:          <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">form</a></code>;
                   35324:          <code title="attr-fs-formaction"><a href="form-submission.html#attr-fs-formaction">formaction</a></code>;
                   35325:          <code title="attr-fs-formenctype"><a href="form-submission.html#attr-fs-formenctype">formenctype</a></code>;
                   35326:          <code title="attr-fs-formmethod"><a href="form-submission.html#attr-fs-formmethod">formmethod</a></code>;
                   35327:          <code title="attr-fs-formnovalidate"><a href="form-submission.html#attr-fs-formnovalidate">formnovalidate</a></code>;
                   35328:          <code title="attr-fs-formtarget"><a href="form-submission.html#attr-fs-formtarget">formtarget</a></code>;
                   35329:          <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">name</a></code>;
                   35330:          <code title="attr-button-type"><a href="the-button-element.html#attr-button-type">type</a></code>;
                   35331:          <code title="attr-button-value"><a href="the-button-element.html#attr-button-value">value</a></code></td>
                   35332:      <td><code><a href="the-button-element.html#htmlbuttonelement">HTMLButtonElement</a></code></td>
                   35333:     </tr><tr><th><code><a href="the-canvas-element.html#the-canvas-element">canvas</a></code></th>
                   35334:      <td>Scriptable bitmap canvas</td>
                   35335:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35336:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   35337:          <a href="content-models.html#embedded-content-2" title="Embedded content">embedded</a></td>
                   35338:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35339:      <td><a href="content-models.html#transparent">transparent</a></td>
                   35340:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35341:          <code title="attr-canvas-width"><a href="the-canvas-element.html#attr-canvas-width">width</a></code>;
                   35342:          <code title="attr-canvas-height"><a href="the-canvas-element.html#attr-canvas-height">height</a></code></td>
                   35343:      <td><code><a href="the-canvas-element.html#htmlcanvaselement">HTMLCanvasElement</a></code></td>
                   35344:     </tr><tr><th><code><a href="the-caption-element.html#the-caption-element">caption</a></code></th>
                   35345:      <td>Table caption</td>
                   35346:      <td>none</td>
                   35347:      <td><code><a href="the-table-element.html#the-table-element">table</a></code></td>
                   35348:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>*</td>
                   35349:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35350:      <td><code><a href="the-caption-element.html#htmltablecaptionelement">HTMLTableCaptionElement</a></code></td>
                   35351:     </tr><tr><th><code><a href="the-cite-element.html#the-cite-element">cite</a></code></th>
                   35352:      <td>Title of a work</td>
                   35353:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35354:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35355:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35356:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35357:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35358:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35359:     </tr><tr><th><code><a href="the-code-element.html#the-code-element">code</a></code></th>
                   35360:      <td>Computer code</td>
                   35361:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35362:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35363:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35364:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35365:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35366:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35367:     </tr><tr><th><code><a href="the-col-element.html#the-col-element">col</a></code></th>
                   35368:      <td>Table column</td>
                   35369:      <td>none</td>
                   35370:      <td><code><a href="the-colgroup-element.html#the-colgroup-element">colgroup</a></code></td>
                   35371:      <td>empty</td>
                   35372:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35373:          <code title="attr-col-span"><a href="the-col-element.html#attr-col-span">span</a></code></td>
                   35374:      <td><code><a href="the-colgroup-element.html#htmltablecolelement">HTMLTableColElement</a></code></td>
                   35375:     </tr><tr><th><code><a href="the-colgroup-element.html#the-colgroup-element">colgroup</a></code></th>
                   35376:      <td>Group of columns in a table</td>
                   35377:      <td>none</td>
                   35378:      <td><code><a href="the-table-element.html#the-table-element">table</a></code></td>
                   35379:      <td><code><a href="the-col-element.html#the-col-element">col</a></code></td>
                   35380:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35381:          <code title="attr-colgroup-span"><a href="the-colgroup-element.html#attr-colgroup-span">span</a></code></td>
                   35382:      <td><code><a href="the-colgroup-element.html#htmltablecolelement">HTMLTableColElement</a></code></td>
                   35383:     </tr><tr><th><code><a href="#the-command-element">command</a></code></th>
                   35384:      <td>Menu command</td>
                   35385:      <td><a href="content-models.html#metadata-content-0" title="Metadata content">metadata</a>;
                   35386:          <a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35387:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35388:      <td><code><a href="the-head-element.html#the-head-element">head</a></code>;
                   35389:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35390:      <td>empty</td>
                   35391:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35392:          <code title="attr-command-type"><a href="#attr-command-type">type</a></code>;
                   35393:          <code title="attr-command-label"><a href="#attr-command-label">label</a></code>;
                   35394:          <code title="attr-command-icon"><a href="#attr-command-icon">icon</a></code>;
                   35395:          <code title="attr-command-disabled"><a href="#attr-command-disabled">disabled</a></code>;
                   35396:          <code title="attr-command-checked"><a href="#attr-command-checked">checked</a></code>;
                   35397:          <code title="attr-command-radiogroup"><a href="#attr-command-radiogroup">radiogroup</a></code>;
                   35398:          <code title="attr-command-command"><a href="#attr-command-command">command</a></code></td>
                   35399:      <td><code><a href="#htmlcommandelement">HTMLCommandElement</a></code></td>
                   35400:     </tr><!--DATA--><!--FORK--><tr><th><code><a href="the-datalist-element.html#the-datalist-element">datalist</a></code></th>
                   35401:      <td>Container for options for <a href="common-input-element-attributes.html#attr-input-list" title="attr-input-list">combo box control</a></td>
                   35402:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35403:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35404:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35405:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   35406:          <code><a href="the-option-element.html#the-option-element">option</a></code></td>
                   35407:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35408:      <td><code><a href="the-datalist-element.html#htmldatalistelement">HTMLDataListElement</a></code></td>
                   35409:     </tr><tr><th><code><a href="the-dd-element.html#the-dd-element">dd</a></code></th>
                   35410:      <td>Content for corresponding <code><a href="the-dt-element.html#the-dt-element">dt</a></code> element(s)</td>
                   35411:      <td>none</td>
                   35412:      <td><code><a href="the-dl-element.html#the-dl-element">dl</a></code></td>
                   35413:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35414:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35415:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35416:     </tr><tr><th><code><a href="the-del-element.html#the-del-element">del</a></code></th>
                   35417:      <td>A removal from the document</td>
                   35418:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35419:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>*</td>
                   35420:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35421:      <td><a href="content-models.html#transparent">transparent</a></td>
                   35422:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35423:          <code title="attr-mod-cite"><a href="attributes-common-to-ins-and-del-elements.html#attr-mod-cite">cite</a></code>;
                   35424:          <code title="attr-mod-datetime"><a href="attributes-common-to-ins-and-del-elements.html#attr-mod-datetime">datetime</a></code></td>
                   35425:      <td><code><a href="attributes-common-to-ins-and-del-elements.html#htmlmodelement">HTMLModElement</a></code></td>
                   35426:     </tr><tr><th><code><a href="#the-details-element">details</a></code></th>
                   35427:      <td>Disclosure control for hiding details</td>
                   35428:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35429:          <a href="headings-and-sections.html#sectioning-root" title="Sectioning root">sectioning root</a>;
                   35430:          <a href="content-models.html#interactive-content-0" title="Interactive content">interactive</a></td>
                   35431:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35432:      <td><code><a href="#the-summary-element">summary</a></code>*;
                   35433:          <a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35434:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35435:          <code title="attr-details-open"><a href="#attr-details-open">open</a></code></td>
                   35436:      <td><code><a href="#htmldetailselement">HTMLDetailsElement</a></code></td>
                   35437:     </tr><tr><th><code><a href="the-dfn-element.html#the-dfn-element">dfn</a></code></th>
                   35438:      <td>Defining instance</td>
                   35439:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35440:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35441:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35442:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>*</td>
                   35443:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35444:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35445:     </tr><tr><th><code><a href="#the-dialog-element">dialog</a></code></th>
                   35446:      <td>Dialog box or window</td>
                   35447:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35448:          <a href="headings-and-sections.html#sectioning-root" title="Sectioning root">sectioning root</a></td>
                   35449:      <td><code><a href="the-dt-element.html#the-dt-element">dt</a></code>;
                   35450:          <code><a href="the-th-element.html#the-th-element">th</a></code>;
                   35451:          <a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35452:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35453:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35454:          <code title="attr-dialog-open"><a href="#attr-dialog-open">open</a></code></td>
                   35455:      <td><code><a href="#htmldialogelement">HTMLDialogElement</a></code></td>
                   35456:     </tr><tr><th><code><a href="the-div-element.html#the-div-element">div</a></code></th>
                   35457:      <td>Generic flow container</td>
                   35458:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35459:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35460:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35461:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35462:      <td><code><a href="the-div-element.html#htmldivelement">HTMLDivElement</a></code></td>
                   35463:     </tr><tr><th><code><a href="the-dl-element.html#the-dl-element">dl</a></code></th>
                   35464:      <td>Association list consisting of zero or more name-value groups</td>
                   35465:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35466:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35467:      <td><code><a href="the-dt-element.html#the-dt-element">dt</a></code>*;
                   35468:          <code><a href="the-dd-element.html#the-dd-element">dd</a></code>*</td>
                   35469:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35470:      <td><code><a href="the-dl-element.html#htmldlistelement">HTMLDListElement</a></code></td>
                   35471:     </tr><tr><th><code><a href="the-dt-element.html#the-dt-element">dt</a></code></th>
                   35472:      <td>Legend for corresponding <code><a href="the-dd-element.html#the-dd-element">dd</a></code> element(s)</td>
                   35473:      <td>none</td>
                   35474:      <td><code><a href="the-dl-element.html#the-dl-element">dl</a></code></td>
                   35475:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>*</td>
                   35476:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35477:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35478:     </tr><tr><th><code><a href="the-em-element.html#the-em-element">em</a></code></th>
                   35479:      <td>Stress emphasis</td>
                   35480:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35481:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35482:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35483:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35484:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35485:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35486:     </tr><tr><th><code><a href="the-embed-element.html#the-embed-element">embed</a></code></th>
                   35487:      <td><a href="infrastructure.html#plugin">Plugin</a></td>
                   35488:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35489:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   35490:          <a href="content-models.html#embedded-content-2" title="Embedded content">embedded</a>;
                   35491:          <a href="content-models.html#interactive-content-0" title="Interactive content">interactive</a></td>
                   35492:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35493:      <td>empty</td>
                   35494:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35495:          <code title="attr-embed-src"><a href="the-embed-element.html#attr-embed-src">src</a></code>;
                   35496:          <code title="attr-embed-type"><a href="the-embed-element.html#attr-embed-type">type</a></code>;
                   35497:          <code title="attr-dim-width"><a href="dimension-attributes.html#attr-dim-width">width</a></code>;
                   35498:          <code title="attr-dim-height"><a href="dimension-attributes.html#attr-dim-height">height</a></code>;
                   35499:          any*</td>
                   35500:      <td><code><a href="the-embed-element.html#htmlembedelement">HTMLEmbedElement</a></code></td>
                   35501:     </tr><tr><th><code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code></th>
                   35502:      <td>Group of form controls</td>
                   35503:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35504:          <a href="headings-and-sections.html#sectioning-root" title="Sectioning root">sectioning root</a>;
                   35505:          <a href="forms.html#category-listed" title="category-listed">listed</a>;
                   35506:          <a href="forms.html#form-associated-element" title="Form-associated element">form-associated</a></td>
                   35507:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35508:      <td><code><a href="the-legend-element.html#the-legend-element">legend</a></code>*;
                   35509:          <a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35510:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35511:          <code title="attr-fieldset-disabled"><a href="the-fieldset-element.html#attr-fieldset-disabled">disabled</a></code>;
                   35512:          <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">form</a></code>;
                   35513:          <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">name</a></code></td>
                   35514:      <td><code><a href="the-fieldset-element.html#htmlfieldsetelement">HTMLFieldSetElement</a></code></td>
                   35515:     </tr><tr><th><code><a href="the-figcaption-element.html#the-figcaption-element">figcaption</a></code></th>
                   35516:      <td>Caption for <code><a href="the-figure-element.html#the-figure-element">figure</a></code></td>
                   35517:      <td>none</td>
                   35518:      <td><code><a href="the-figure-element.html#the-figure-element">figure</a></code></td>
                   35519:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35520:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35521:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35522:     </tr><tr><th><code><a href="the-figure-element.html#the-figure-element">figure</a></code></th>
                   35523:      <td>Figure with optional caption</td>
                   35524:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35525:          <a href="headings-and-sections.html#sectioning-root" title="Sectioning root">sectioning root</a></td>
                   35526:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35527:      <td><code><a href="the-figcaption-element.html#the-figcaption-element">figcaption</a></code>*;
                   35528:          <a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35529:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35530:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35531:     </tr><tr><th><code><a href="the-footer-element.html#the-footer-element">footer</a></code></th>
                   35532:      <td>Footer for a page or section</td>
                   35533:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35534:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35535:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>*</td>
                   35536:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35537:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35538:     </tr><tr><th><code><a href="the-form-element.html#the-form-element">form</a></code></th>
                   35539:      <td>User-submittable form</td>
                   35540:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35541:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35542:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>*</td>
                   35543:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35544:          <code title="attr-form-accept-charset"><a href="the-form-element.html#attr-form-accept-charset">accept-charset</a></code>;
                   35545:          <code title="attr-fs-action"><a href="form-submission.html#attr-fs-action">action</a></code>;
                   35546:          <code title="attr-form-autocomplete"><a href="the-form-element.html#attr-form-autocomplete">autocomplete</a></code>;
                   35547:          <code title="attr-fs-enctype"><a href="form-submission.html#attr-fs-enctype">enctype</a></code>;
                   35548:          <code title="attr-fs-method"><a href="form-submission.html#attr-fs-method">method</a></code>;
                   35549:          <code title="attr-form-name"><a href="the-form-element.html#attr-form-name">name</a></code>;
                   35550:          <code title="attr-fs-novalidate"><a href="form-submission.html#attr-fs-novalidate">novalidate</a></code>;
                   35551:          <code title="attr-fs-target"><a href="form-submission.html#attr-fs-target">target</a></code></td>
                   35552:      <td><code><a href="the-form-element.html#htmlformelement">HTMLFormElement</a></code></td>
                   35553:     </tr><tr><th><code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h1</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h2</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h3</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h4</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h5</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h6</a></code></th>
                   35554:      <td>Section heading</td>
                   35555:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35556:          <a href="content-models.html#heading-content-0" title="Heading content">heading</a></td>
                   35557:      <td><code><a href="the-hgroup-element.html#the-hgroup-element">hgroup</a></code>;
                   35558:          <a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35559:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35560:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35561:      <td><code><a href="the-aside-element.html#htmlheadingelement">HTMLHeadingElement</a></code></td>
                   35562:     </tr><tr><th><code><a href="the-head-element.html#the-head-element">head</a></code></th>
                   35563:      <td>Container for document metadata</td>
                   35564:      <td>none</td>
                   35565:      <td><code><a href="the-html-element.html#the-html-element">html</a></code></td>
                   35566:      <td><a href="content-models.html#metadata-content-0" title="Metadata content">metadata content</a>*</td>
                   35567:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35568:      <td><code><a href="the-head-element.html#htmlheadelement">HTMLHeadElement</a></code></td>
                   35569:     </tr><tr><th><code><a href="the-header-element.html#the-header-element">header</a></code></th>
                   35570:      <td>Introductory or navigational aids for a page or section</td>
                   35571:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35572:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35573:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>*</td>
                   35574:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35575:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35576:     </tr><tr><th><code><a href="the-hgroup-element.html#the-hgroup-element">hgroup</a></code></th>
                   35577:      <td>heading group</td>
                   35578:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35579:          <a href="content-models.html#heading-content-0" title="Heading content">heading</a></td>
                   35580:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35581:      <td>One or more <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h1</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h2</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h3</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h4</a></code>, <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h5</a></code>, and/or <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h6</a></code></td>
                   35582:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35583:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35584:     </tr><tr><th><code><a href="the-hr-element.html#the-hr-element">hr</a></code></th>
                   35585:      <td>Thematic break</td>
                   35586:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35587:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35588:      <td>empty</td>
                   35589:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35590:      <td><code><a href="the-hr-element.html#htmlhrelement">HTMLHRElement</a></code></td>
                   35591:     </tr><tr><th><code><a href="the-html-element.html#the-html-element">html</a></code></th>
                   35592:      <td>Root element</td>
                   35593:      <td>none</td>
                   35594:      <td>none*</td>
                   35595:      <td><code><a href="the-head-element.html#the-head-element">head</a></code>*;
                   35596:          <code><a href="the-body-element.html#the-body-element">body</a></code>*</td>
                   35597:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35598:          <code title="attr-html-manifest"><a href="the-html-element.html#attr-html-manifest">manifest</a></code></td>
                   35599:      <td><code><a href="the-html-element.html#htmlhtmlelement">HTMLHtmlElement</a></code></td>
                   35600:     </tr><tr><th><code><a href="the-i-element.html#the-i-element">i</a></code></th>
                   35601:      <td>Alternate voice</td>
                   35602:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35603:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35604:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35605:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35606:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35607:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35608:     </tr><tr><th><code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code></th>
                   35609:      <td><a href="#nested-browsing-context">Nested browsing context</a></td>
                   35610:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35611:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   35612:          <a href="content-models.html#embedded-content-2" title="Embedded content">embedded</a>;
                   35613:          <a href="content-models.html#interactive-content-0" title="Interactive content">interactive</a></td>
                   35614:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35615:      <td>text*</td>
                   35616:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35617:          <code title="attr-iframe-src"><a href="the-iframe-element.html#attr-iframe-src">src</a></code>;
                   35618:          <code title="attr-iframe-srcdoc"><a href="the-iframe-element.html#attr-iframe-srcdoc">srcdoc</a></code>;
                   35619:          <code title="attr-iframe-name"><a href="the-iframe-element.html#attr-iframe-name">name</a></code>;
                   35620:          <code title="attr-iframe-sandbox"><a href="the-iframe-element.html#attr-iframe-sandbox">sandbox</a></code>;
                   35621:          <code title="attr-iframe-seamless"><a href="the-iframe-element.html#attr-iframe-seamless">seamless</a></code>;
                   35622:          <code title="attr-dim-width"><a href="dimension-attributes.html#attr-dim-width">width</a></code>;
                   35623:          <code title="attr-dim-height"><a href="dimension-attributes.html#attr-dim-height">height</a></code></td>
                   35624:      <td><code><a href="the-iframe-element.html#htmliframeelement">HTMLIFrameElement</a></code></td>
                   35625:     </tr><tr><th><code><a href="the-img-element.html#the-img-element">img</a></code></th>
                   35626:      <td>Image</td>
                   35627:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35628:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   35629:          <a href="content-models.html#embedded-content-2" title="Embedded content">embedded</a>;
                   35630:          <a href="content-models.html#interactive-content-0" title="Interactive content">interactive</a>*</td>
                   35631:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35632:      <td>empty</td>
                   35633:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35634:          <code title="attr-img-alt"><a href="the-img-element.html#attr-img-alt">alt</a></code>;
                   35635:          <code title="attr-img-src"><a href="the-img-element.html#attr-img-src">src</a></code>;
                   35636:          <code title="attr-img-crossorigin"><a href="the-img-element.html#attr-img-crossorigin">crossorigin</a></code>;
                   35637:          <code title="attr-hyperlink-usemap"><a href="image-maps.html#attr-hyperlink-usemap">usemap</a></code>;
                   35638:          <code title="attr-img-ismap"><a href="the-img-element.html#attr-img-ismap">ismap</a></code>;
                   35639:          <code title="attr-dim-width"><a href="dimension-attributes.html#attr-dim-width">width</a></code>;
                   35640:          <code title="attr-dim-height"><a href="dimension-attributes.html#attr-dim-height">height</a></code></td>
                   35641:      <td><code><a href="the-img-element.html#htmlimageelement">HTMLImageElement</a></code></td>
                   35642:     </tr><tr><th><code><a href="the-input-element.html#the-input-element">input</a></code></th>
                   35643:      <td>Form control</td>
                   35644:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35645:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   35646:          <a href="content-models.html#interactive-content-0" title="Interactive content">interactive</a>*;
                   35647:          <a href="forms.html#category-listed" title="category-listed">listed</a>;
                   35648:          <a href="forms.html#category-label" title="category-label">labelable</a>;
                   35649:          <a href="forms.html#category-submit" title="category-submit">submittable</a>;
                   35650:          <a href="forms.html#category-reset" title="category-reset">resettable</a>;
                   35651:          <a href="forms.html#form-associated-element" title="Form-associated element">form-associated</a></td>
                   35652:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35653:      <td>empty</td>
                   35654:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35655:          <code title="attr-input-accept"><a href="states-of-the-type-attribute.html#attr-input-accept">accept</a></code>;
                   35656:          <code title="attr-input-alt"><a href="states-of-the-type-attribute.html#attr-input-alt">alt</a></code>;
                   35657:          <code title="attr-input-autocomplete"><a href="common-input-element-attributes.html#attr-input-autocomplete">autocomplete</a></code>;
                   35658:          <code title="attr-fe-autofocus"><a href="attributes-common-to-form-controls.html#attr-fe-autofocus">autofocus</a></code>;
                   35659:          <code title="attr-input-checked"><a href="the-input-element.html#attr-input-checked">checked</a></code>;
                   35660:          <code title="attr-input-dirname"><a href="common-input-element-attributes.html#attr-input-dirname">dirname</a></code>;
                   35661:          <code title="attr-fe-disabled"><a href="attributes-common-to-form-controls.html#attr-fe-disabled">disabled</a></code>;
                   35662:          <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">form</a></code>;
                   35663:          <code title="attr-fs-formaction"><a href="form-submission.html#attr-fs-formaction">formaction</a></code>;
                   35664:          <code title="attr-fs-formenctype"><a href="form-submission.html#attr-fs-formenctype">formenctype</a></code>;
                   35665:          <code title="attr-fs-formmethod"><a href="form-submission.html#attr-fs-formmethod">formmethod</a></code>;
                   35666:          <code title="attr-fs-formnovalidate"><a href="form-submission.html#attr-fs-formnovalidate">formnovalidate</a></code>;
                   35667:          <code title="attr-fs-formtarget"><a href="form-submission.html#attr-fs-formtarget">formtarget</a></code>;
                   35668:          <code title="attr-dim-height"><a href="dimension-attributes.html#attr-dim-height">height</a></code>;
                   35669:          <code title="attr-input-list"><a href="common-input-element-attributes.html#attr-input-list">list</a></code>;
                   35670:          <code title="attr-input-max"><a href="common-input-element-attributes.html#attr-input-max">max</a></code>;
                   35671:          <code title="attr-input-maxlength"><a href="common-input-element-attributes.html#attr-input-maxlength">maxlength</a></code>;
                   35672:          <code title="attr-input-min"><a href="common-input-element-attributes.html#attr-input-min">min</a></code>;
                   35673:          <code title="attr-input-multiple"><a href="common-input-element-attributes.html#attr-input-multiple">multiple</a></code>;
                   35674:          <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">name</a></code>;
                   35675:          <code title="attr-input-pattern"><a href="common-input-element-attributes.html#attr-input-pattern">pattern</a></code>;
                   35676:          <code title="attr-input-placeholder"><a href="common-input-element-attributes.html#attr-input-placeholder">placeholder</a></code>;
                   35677:          <code title="attr-input-readonly"><a href="common-input-element-attributes.html#attr-input-readonly">readonly</a></code>;
                   35678:          <code title="attr-input-required"><a href="common-input-element-attributes.html#attr-input-required">required</a></code>;
                   35679:          <code title="attr-input-size"><a href="common-input-element-attributes.html#attr-input-size">size</a></code>;
                   35680:          <code title="attr-input-src"><a href="states-of-the-type-attribute.html#attr-input-src">src</a></code>;
                   35681:          <code title="attr-input-step"><a href="common-input-element-attributes.html#attr-input-step">step</a></code>;
                   35682:          <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code>;
                   35683:          <code title="attr-input-value"><a href="the-input-element.html#attr-input-value">value</a></code>;
                   35684:          <code title="attr-dim-width"><a href="dimension-attributes.html#attr-dim-width">width</a></code></td>
                   35685:      <td><code><a href="the-input-element.html#htmlinputelement">HTMLInputElement</a></code></td>
                   35686:     </tr><tr><th><code><a href="the-ins-element.html#the-ins-element">ins</a></code></th>
                   35687:      <td>An addition to the document</td>
                   35688:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35689:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>*</td>
                   35690:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35691:      <td><a href="content-models.html#transparent">transparent</a></td>
                   35692:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35693:          <code title="attr-mod-cite"><a href="attributes-common-to-ins-and-del-elements.html#attr-mod-cite">cite</a></code>;
                   35694:          <code title="attr-mod-datetime"><a href="attributes-common-to-ins-and-del-elements.html#attr-mod-datetime">datetime</a></code></td>
                   35695:      <td><code><a href="attributes-common-to-ins-and-del-elements.html#htmlmodelement">HTMLModElement</a></code></td>
                   35696:     </tr><tr><th><code><a href="the-kbd-element.html#the-kbd-element">kbd</a></code></th>
                   35697:      <td>User input</td>
                   35698:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35699:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35700:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35701:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35702:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35703:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35704:     </tr><tr><th><code><a href="the-keygen-element.html#the-keygen-element">keygen</a></code></th>
                   35705:      <td>Cryptographic key-pair generator form control</td>
                   35706:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35707:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   35708:          <a href="content-models.html#interactive-content-0" title="Interactive content">interactive</a>;
                   35709:          <a href="forms.html#category-listed" title="category-listed">listed</a>;
                   35710:          <a href="forms.html#category-label" title="category-label">labelable</a>;
                   35711:          <a href="forms.html#category-submit" title="category-submit">submittable</a>;
                   35712:          <a href="forms.html#category-reset" title="category-reset">resettable</a>;
                   35713:          <a href="forms.html#form-associated-element" title="Form-associated element">form-associated</a></td>
                   35714:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35715:      <td>empty</td>
                   35716:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35717:          <code title="attr-fe-autofocus"><a href="attributes-common-to-form-controls.html#attr-fe-autofocus">autofocus</a></code>;
                   35718:          <code title="attr-keygen-challenge"><a href="the-keygen-element.html#attr-keygen-challenge">challenge</a></code>;
                   35719:          <code title="attr-fe-disabled"><a href="attributes-common-to-form-controls.html#attr-fe-disabled">disabled</a></code>;
                   35720:          <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">form</a></code>;
                   35721:          <code title="attr-keygen-keytype"><a href="the-keygen-element.html#attr-keygen-keytype">keytype</a></code>;
                   35722:          <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">name</a></code></td>
                   35723:      <td><code><a href="the-keygen-element.html#htmlkeygenelement">HTMLKeygenElement</a></code></td>
                   35724:     </tr><tr><th><code><a href="the-label-element.html#the-label-element">label</a></code></th>
                   35725:      <td>Caption for a form control</td>
                   35726:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35727:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   35728:          <a href="content-models.html#interactive-content-0" title="Interactive content">interactive</a>;
                   35729:          <a href="forms.html#form-associated-element" title="Form-associated element">form-associated</a></td>
                   35730:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35731:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>*</td>
                   35732:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35733:          <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">form</a></code>;
                   35734:          <code title="attr-label-for"><a href="the-label-element.html#attr-label-for">for</a></code></td>
                   35735:      <td><code><a href="the-label-element.html#htmllabelelement">HTMLLabelElement</a></code></td>
                   35736:     </tr><tr><th><code><a href="the-legend-element.html#the-legend-element">legend</a></code></th>
                   35737:      <td>Caption for <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code></td>
                   35738:      <td>none</td>
                   35739:      <td><code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code></td>
                   35740:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35741:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35742:      <td><code><a href="the-legend-element.html#htmllegendelement">HTMLLegendElement</a></code></td>
                   35743:     </tr><tr><th><code><a href="the-li-element.html#the-li-element">li</a></code></th>
                   35744:      <td>List item</td>
                   35745:      <td>none</td>
                   35746:      <td><code><a href="the-ol-element.html#the-ol-element">ol</a></code>; <code><a href="the-ul-element.html#the-ul-element">ul</a></code>; <code><a href="#the-menu-element">menu</a></code></td>
                   35747:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35748:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35749:          <code title="attr-li-value"><a href="the-li-element.html#attr-li-value">value</a></code>*</td>
                   35750:      <td><code><a href="the-li-element.html#htmllielement">HTMLLIElement</a></code></td>
                   35751:     </tr><tr><th><code><a href="the-link-element.html#the-link-element">link</a></code></th>
                   35752:      <td>Link metadata</td>
                   35753:      <td><a href="content-models.html#metadata-content-0" title="Metadata content">metadata</a>;
                   35754:          <a href="content-models.html#flow-content-1" title="Flow content">flow</a>*;
                   35755:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>*</td>
                   35756:      <td><code><a href="the-head-element.html#the-head-element">head</a></code>;
                   35757:          <code><a href="the-noscript-element.html#the-noscript-element">noscript</a></code>*;
                   35758:          <a href="content-models.html#phrasing-content-1" title="phrasing content">phrasing</a>*</td>
                   35759:      <td>empty</td>
                   35760:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35761:          <code title="attr-link-href"><a href="the-link-element.html#attr-link-href">href</a></code>;
                   35762:          <code title="attr-link-rel"><a href="the-link-element.html#attr-link-rel">rel</a></code>;
                   35763:          <code title="attr-link-media"><a href="the-link-element.html#attr-link-media">media</a></code>;
                   35764:          <code title="attr-link-hreflang"><a href="the-link-element.html#attr-link-hreflang">hreflang</a></code>;
                   35765:          <code title="attr-link-type"><a href="the-link-element.html#attr-link-type">type</a></code>;
                   35766:          <code title="attr-link-sizes"><a href="#attr-link-sizes">sizes</a></code></td>
                   35767:      <td><code><a href="the-link-element.html#htmllinkelement">HTMLLinkElement</a></code></td>
                   35768:     </tr><tr><th><code><a href="the-map-element.html#the-map-element">map</a></code></th>
                   35769:      <td><a href="image-maps.html#image-map">Image map</a></td>
                   35770:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35771:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>*</td>
                   35772:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35773:      <td><a href="content-models.html#transparent">transparent</a>;
                   35774:          <code><a href="the-area-element.html#the-area-element">area</a></code>*</td>
                   35775:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35776:          <code title="attr-map-name"><a href="the-map-element.html#attr-map-name">name</a></code></td>
                   35777:      <td><code><a href="the-map-element.html#htmlmapelement">HTMLMapElement</a></code></td>
                   35778:     </tr><tr><th><code><a href="the-mark-element.html#the-mark-element">mark</a></code></th>
                   35779:      <td>Highlight</td>
                   35780:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35781:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35782:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35783:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35784:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35785:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35786:     </tr><tr><th><code><a href="#the-menu-element">menu</a></code></th>
                   35787:      <td>Menu of commands</td>
                   35788:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35789:          <a href="content-models.html#interactive-content-0" title="Interactive content">interactive</a>*</td>
                   35790:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35791:      <td><code><a href="the-li-element.html#the-li-element">li</a></code>*;
                   35792:          <a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35793:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35794:          <code title="attr-menu-type"><a href="#attr-menu-type">type</a></code>;
                   35795:          <code title="attr-menu-label"><a href="#attr-menu-label">label</a></code></td>
                   35796:      <td><code><a href="#htmlmenuelement">HTMLMenuElement</a></code></td>
                   35797:     </tr><tr><th><code><a href="the-meta-element.html#the-meta-element">meta</a></code></th>
                   35798:      <td>Text metadata</td>
                   35799:      <td><a href="content-models.html#metadata-content-0" title="Metadata content">metadata</a>;
                   35800:          <a href="content-models.html#flow-content-1" title="Flow content">flow</a>*;
                   35801:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>*</td>
                   35802:      <td><code><a href="the-head-element.html#the-head-element">head</a></code>;
                   35803:          <code><a href="the-noscript-element.html#the-noscript-element">noscript</a></code>*;
                   35804:          <a href="content-models.html#phrasing-content-1" title="phrasing content">phrasing</a>*</td>
                   35805:      <td>empty</td>
                   35806:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35807:          <code title="attr-meta-name"><a href="the-meta-element.html#attr-meta-name">name</a></code>;
                   35808:          <code title="attr-meta-http-equiv"><a href="the-meta-element.html#attr-meta-http-equiv">http-equiv</a></code>;
                   35809:          <code title="attr-meta-content"><a href="the-meta-element.html#attr-meta-content">content</a></code>;
                   35810:          <code title="attr-meta-charset"><a href="the-meta-element.html#attr-meta-charset">charset</a></code></td>
                   35811:      <td><code><a href="the-meta-element.html#htmlmetaelement">HTMLMetaElement</a></code></td>
                   35812:     </tr><tr><th><code><a href="the-meter-element.html#the-meter-element">meter</a></code></th>
                   35813:      <td>Gauge</td>
                   35814:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35815:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   35816:          <a href="forms.html#category-label" title="category-label">labelable</a></td>
                   35817:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35818:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>*</td>
                   35819:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35820:          <code title="attr-meter-value"><a href="the-meter-element.html#attr-meter-value">value</a></code>;
                   35821:          <code title="attr-meter-min"><a href="the-meter-element.html#attr-meter-min">min</a></code>;
                   35822:          <code title="attr-meter-max"><a href="the-meter-element.html#attr-meter-max">max</a></code>;
                   35823:          <code title="attr-meter-low"><a href="the-meter-element.html#attr-meter-low">low</a></code>;
                   35824:          <code title="attr-meter-high"><a href="the-meter-element.html#attr-meter-high">high</a></code>;
                   35825:          <code title="attr-meter-optimum"><a href="the-meter-element.html#attr-meter-optimum">optimum</a></code></td>
                   35826:      <td><code><a href="the-meter-element.html#htmlmeterelement">HTMLMeterElement</a></code></td>
                   35827:     </tr><tr><th><code><a href="the-nav-element.html#the-nav-element">nav</a></code></th>
                   35828:      <td>Section with navigational links</td>
                   35829:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35830:          <a href="content-models.html#sectioning-content-0" title="Sectioning content">sectioning</a></td>
                   35831:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35832:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35833:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35834:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35835:     </tr><tr><th><code><a href="the-noscript-element.html#the-noscript-element">noscript</a></code></th>
                   35836:      <td>Fallback content for script</td>
                   35837:      <td><a href="content-models.html#metadata-content-0" title="Metadata content">metadata</a>;
                   35838:          <a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35839:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35840:      <td><code><a href="the-head-element.html#the-head-element">head</a></code>*;
                   35841:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>*</td>
                   35842:      <td>varies*</td>
                   35843:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35844:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35845:     </tr><tr><th><code><a href="the-object-element.html#the-object-element">object</a></code></th>
                   35846:      <td>Image, <a href="#nested-browsing-context">nested browsing context</a>, or <a href="infrastructure.html#plugin">plugin</a></td>
                   35847:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35848:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   35849:          <a href="content-models.html#embedded-content-2" title="Embedded content">embedded</a>;
                   35850:          <a href="content-models.html#interactive-content-0" title="Interactive content">interactive</a>*;
                   35851:          <a href="forms.html#category-listed" title="category-listed">listed</a>;
                   35852:          <a href="forms.html#category-submit" title="category-submit">submittable</a>;
                   35853:          <a href="forms.html#form-associated-element" title="Form-associated element">form-associated</a></td>
                   35854:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35855:      <td><code><a href="the-param-element.html#the-param-element">param</a></code>*;
                   35856:          <a href="content-models.html#transparent">transparent</a></td>
                   35857:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35858:          <code title="attr-object-data"><a href="the-object-element.html#attr-object-data">data</a></code>;
                   35859:          <code title="attr-object-type"><a href="the-object-element.html#attr-object-type">type</a></code>;
                   35860:          <code title="attr-object-typemustmatch"><a href="the-object-element.html#attr-object-typemustmatch">typemustmatch</a></code>;
                   35861:          <code title="attr-object-name"><a href="the-object-element.html#attr-object-name">name</a></code>;
                   35862:          <code title="attr-hyperlink-usemap"><a href="image-maps.html#attr-hyperlink-usemap">usemap</a></code>;
                   35863:          <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">form</a></code>;
                   35864:          <code title="attr-dim-width"><a href="dimension-attributes.html#attr-dim-width">width</a></code>;
                   35865:          <code title="attr-dim-height"><a href="dimension-attributes.html#attr-dim-height">height</a></code></td>
                   35866:      <td><code><a href="the-object-element.html#htmlobjectelement">HTMLObjectElement</a></code></td>
                   35867:     </tr><tr><th><code><a href="the-ol-element.html#the-ol-element">ol</a></code></th>
                   35868:      <td>Ordered list</td>
                   35869:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35870:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35871:      <td><code><a href="the-li-element.html#the-li-element">li</a></code></td>
                   35872:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35873:          <code title="attr-ol-reversed"><a href="the-ol-element.html#attr-ol-reversed">reversed</a></code>;
                   35874:          <code title="attr-ol-start"><a href="the-ol-element.html#attr-ol-start">start</a></code></td>
                   35875:      <td><code><a href="the-ol-element.html#htmlolistelement">HTMLOListElement</a></code></td>
                   35876:     </tr><tr><th><code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code></th>
                   35877:      <td>Group of options in a list box</td>
                   35878:      <td>none</td>
                   35879:      <td><code><a href="the-select-element.html#the-select-element">select</a></code></td>
                   35880:      <td><code><a href="the-option-element.html#the-option-element">option</a></code></td>
                   35881:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35882:          <code title="attr-optgroup-disabled"><a href="the-optgroup-element.html#attr-optgroup-disabled">disabled</a></code>;
                   35883:          <code title="attr-optgroup-label"><a href="the-optgroup-element.html#attr-optgroup-label">label</a></code></td>
                   35884:      <td><code><a href="the-optgroup-element.html#htmloptgroupelement">HTMLOptGroupElement</a></code></td>
                   35885:     </tr><tr><th><code><a href="the-option-element.html#the-option-element">option</a></code></th>
                   35886:      <td>Option in a list box or combo box control</td>
                   35887:      <td>none</td>
                   35888:      <td><code><a href="the-select-element.html#the-select-element">select</a></code>;
                   35889:          <code><a href="the-datalist-element.html#the-datalist-element">datalist</a></code>;
                   35890:          <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code></td>
                   35891:      <td><a href="content-models.html#text-content" title="text content">text</a></td>
                   35892:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35893:          <code title="attr-option-disabled"><a href="the-option-element.html#attr-option-disabled">disabled</a></code>;
                   35894:          <code title="attr-option-label"><a href="the-option-element.html#attr-option-label">label</a></code>;
                   35895:          <code title="attr-option-selected"><a href="the-option-element.html#attr-option-selected">selected</a></code>;
                   35896:          <code title="attr-option-value"><a href="the-option-element.html#attr-option-value">value</a></code></td>
                   35897:      <td><code><a href="the-option-element.html#htmloptionelement">HTMLOptionElement</a></code></td>
                   35898:     </tr><tr><th><code><a href="the-output-element.html#the-output-element">output</a></code></th>
                   35899:      <td>Calculated output value</td>
                   35900:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35901:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   35902:          <a href="forms.html#category-listed" title="category-listed">listed</a>;
                   35903:          <a href="forms.html#category-label" title="category-label">labelable</a>;
                   35904:          <a href="forms.html#category-reset" title="category-reset">resettable</a>;
                   35905:          <a href="forms.html#form-associated-element" title="Form-associated element">form-associated</a></td>
                   35906:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35907:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35908:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35909:          <code title="attr-output-for"><a href="the-output-element.html#attr-output-for">for</a></code>;
                   35910:          <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">form</a></code>;
                   35911:          <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">name</a></code></td>
                   35912:      <td><code><a href="the-output-element.html#htmloutputelement">HTMLOutputElement</a></code></td>
                   35913:     </tr><tr><th><code><a href="the-p-element.html#the-p-element">p</a></code></th>
                   35914:      <td>Paragraph</td>
                   35915:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35916:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35917:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35918:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35919:      <td><code><a href="the-p-element.html#htmlparagraphelement">HTMLParagraphElement</a></code></td>
                   35920:     </tr><tr><th><code><a href="the-param-element.html#the-param-element">param</a></code></th>
                   35921:      <td>Parameter for <code><a href="the-object-element.html#the-object-element">object</a></code></td>
                   35922:      <td>none</td>
                   35923:      <td><code><a href="the-object-element.html#the-object-element">object</a></code></td>
                   35924:      <td>empty</td>
                   35925:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35926:          <code title="attr-param-name"><a href="the-param-element.html#attr-param-name">name</a></code>;
                   35927:          <code title="attr-param-value"><a href="the-param-element.html#attr-param-value">value</a></code></td>
                   35928:      <td><code><a href="the-param-element.html#htmlparamelement">HTMLParamElement</a></code></td>
                   35929:     </tr><tr><th><code><a href="the-pre-element.html#the-pre-element">pre</a></code></th>
                   35930:      <td>Block of preformatted text</td>
                   35931:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35932:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   35933:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35934:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35935:      <td><code><a href="the-pre-element.html#htmlpreelement">HTMLPreElement</a></code></td>
                   35936:     </tr><tr><th><code><a href="the-progress-element.html#the-progress-element">progress</a></code></th>
                   35937:      <td>Progress bar</td>
                   35938:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35939:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   35940:          <a href="forms.html#category-label" title="category-label">labelable</a></td>
                   35941:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35942:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>*</td>
                   35943:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35944:          <code title="attr-progress-value"><a href="the-progress-element.html#attr-progress-value">value</a></code>;
                   35945:          <code title="attr-progress-max"><a href="the-progress-element.html#attr-progress-max">max</a></code></td>
                   35946:      <td><code><a href="the-progress-element.html#htmlprogresselement">HTMLProgressElement</a></code></td>
                   35947:     </tr><tr><th><code><a href="the-q-element.html#the-q-element">q</a></code></th>
                   35948:      <td>Quotation</td>
                   35949:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35950:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35951:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35952:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35953:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   35954:          <code title="attr-q-cite"><a href="the-q-element.html#attr-q-cite">cite</a></code></td>
                   35955:      <td><code><a href="the-blockquote-element.html#htmlquoteelement">HTMLQuoteElement</a></code></td>
                   35956:     </tr><tr><th><code><a href="the-rp-element.html#the-rp-element">rp</a></code></th>
                   35957:      <td>Parenthesis for ruby annotation text</td>
                   35958:      <td>none</td>
                   35959:      <td><code><a href="the-ruby-element.html#the-ruby-element">ruby</a></code></td>
                   35960:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35961:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35962:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35963:     </tr><tr><th><code><a href="the-rt-element.html#the-rt-element">rt</a></code></th>
                   35964:      <td>Ruby annotation text</td>
                   35965:      <td>none</td>
                   35966:      <td><code><a href="the-ruby-element.html#the-ruby-element">ruby</a></code></td>
                   35967:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35968:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35969:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35970:     </tr><tr><th><code><a href="the-ruby-element.html#the-ruby-element">ruby</a></code></th>
                   35971:      <td>Ruby annotation(s)</td>
                   35972:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35973:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35974:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35975:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   35976:          <code><a href="the-rt-element.html#the-rt-element">rt</a></code>;
                   35977:          <code><a href="the-rp-element.html#the-rp-element">rp</a></code>*</td>
                   35978:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35979:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35980:     </tr><tr><th><code><a href="the-s-element.html#the-s-element">s</a></code></th>
                   35981:      <td>Inaccurate text</td>
                   35982:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35983:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35984:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35985:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35986:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35987:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35988:     </tr><tr><th><code><a href="the-samp-element.html#the-samp-element">samp</a></code></th>
                   35989:      <td>Computer output</td>
                   35990:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   35991:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35992:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35993:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   35994:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   35995:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   35996:     </tr><tr><th><code><a href="the-script-element.html#the-script-element">script</a></code></th>
                   35997:      <td>Embedded script</td>
                   35998:      <td><a href="content-models.html#metadata-content-0" title="Metadata content">metadata</a>;
                   35999:          <a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   36000:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36001:      <td><code><a href="the-head-element.html#the-head-element">head</a></code>;
                   36002:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36003:      <td>script, data, or script documentation*</td>
                   36004:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   36005:          <code title="attr-script-src"><a href="the-script-element.html#attr-script-src">src</a></code>;
                   36006:          <code title="attr-script-async"><a href="the-script-element.html#attr-script-async">async</a></code>;
                   36007:          <code title="attr-script-defer"><a href="the-script-element.html#attr-script-defer">defer</a></code>;
                   36008:          <code title="attr-script-type"><a href="the-script-element.html#attr-script-type">type</a></code>;
                   36009:          <code title="attr-script-charset"><a href="the-script-element.html#attr-script-charset">charset</a></code></td>
                   36010:      <td><code><a href="the-script-element.html#htmlscriptelement">HTMLScriptElement</a></code></td>
                   36011:     </tr><tr><th><code><a href="the-section-element.html#the-section-element">section</a></code></th>
                   36012:      <td>Generic document or application section</td>
                   36013:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   36014:          <a href="content-models.html#sectioning-content-0" title="Sectioning content">sectioning</a></td>
                   36015:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   36016:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   36017:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   36018:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   36019:     </tr><tr><th><code><a href="the-select-element.html#the-select-element">select</a></code></th>
                   36020:      <td>List box control</td>
                   36021:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   36022:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   36023:          <a href="content-models.html#interactive-content-0" title="Interactive content">interactive</a>;
                   36024:          <a href="forms.html#category-listed" title="category-listed">listed</a>;
                   36025:          <a href="forms.html#category-label" title="category-label">labelable</a>;
                   36026:          <a href="forms.html#category-submit" title="category-submit">submittable</a>;
                   36027:          <a href="forms.html#category-reset" title="category-reset">resettable</a>;
                   36028:          <a href="forms.html#form-associated-element" title="Form-associated element">form-associated</a></td>
                   36029:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36030:      <td><code><a href="the-option-element.html#the-option-element">option</a></code>, <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code></td>
                   36031:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   36032:          <code title="attr-fe-autofocus"><a href="attributes-common-to-form-controls.html#attr-fe-autofocus">autofocus</a></code>;
                   36033:          <code title="attr-fe-disabled"><a href="attributes-common-to-form-controls.html#attr-fe-disabled">disabled</a></code>;
                   36034:          <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">form</a></code>;
                   36035:          <code title="attr-select-multiple"><a href="the-select-element.html#attr-select-multiple">multiple</a></code>;
                   36036:          <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">name</a></code>;
                   36037:          <code title="attr-select-required"><a href="the-select-element.html#attr-select-required">required</a></code>;
                   36038:          <code title="attr-select-size"><a href="the-select-element.html#attr-select-size">size</a></code></td>
                   36039:      <td><code><a href="the-select-element.html#htmlselectelement">HTMLSelectElement</a></code></td>
                   36040:     </tr><tr><th><code><a href="the-small-element.html#the-small-element">small</a></code></th>
                   36041:      <td>Side comment</td>
                   36042:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   36043:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36044:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36045:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36046:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   36047:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   36048:     </tr><tr><th><code><a href="the-source-element.html#the-source-element">source</a></code></th>
                   36049:      <td>Media source for <code><a href="the-video-element.html#the-video-element">video</a></code> or <code><a href="the-audio-element.html#the-audio-element">audio</a></code></td>
                   36050:      <td>none</td>
                   36051:      <td><code><a href="the-video-element.html#the-video-element">video</a></code>;
                   36052:          <code><a href="the-audio-element.html#the-audio-element">audio</a></code></td>
                   36053:      <td>empty</td>
                   36054:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   36055:          <code title="attr-source-src"><a href="the-source-element.html#attr-source-src">src</a></code>;
                   36056:          <code title="attr-source-type"><a href="the-source-element.html#attr-source-type">type</a></code>;
                   36057:          <code title="attr-source-media"><a href="the-source-element.html#attr-source-media">media</a></code></td>
                   36058:      <td><code><a href="the-source-element.html#htmlsourceelement">HTMLSourceElement</a></code></td>
                   36059:     </tr><tr><th><code><a href="the-span-element.html#the-span-element">span</a></code></th>
                   36060:      <td>Generic phrasing container</td>
                   36061:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   36062:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36063:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36064:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36065:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   36066:      <td><code><a href="the-span-element.html#htmlspanelement">HTMLSpanElement</a></code></td>
                   36067:     </tr><tr><th><code><a href="the-strong-element.html#the-strong-element">strong</a></code></th>
                   36068:      <td>Importance</td>
                   36069:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   36070:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36071:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36072:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36073:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   36074:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   36075:     </tr><tr><th><code><a href="the-style-element.html#the-style-element">style</a></code></th>
                   36076:      <td>Embedded styling information</td>
                   36077:      <td><a href="content-models.html#metadata-content-0" title="Metadata content">metadata</a>;
                   36078:          <a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   36079:      <td><code><a href="the-head-element.html#the-head-element">head</a></code>;
                   36080:          <code><a href="the-noscript-element.html#the-noscript-element">noscript</a></code>*;
                   36081:          <a href="content-models.html#flow-content-1" title="flow content">flow</a>*</td>
                   36082:      <td>varies*</td>
                   36083:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   36084:          <code title="attr-style-media"><a href="the-style-element.html#attr-style-media">media</a></code>;
                   36085:          <code title="attr-style-type"><a href="the-style-element.html#attr-style-type">type</a></code>;
                   36086:          <code title="attr-style-scoped"><a href="the-style-element.html#attr-style-scoped">scoped</a></code></td>
                   36087:      <td><code><a href="the-style-element.html#htmlstyleelement">HTMLStyleElement</a></code></td>
                   36088:     </tr><tr><th><code><a href="the-sub-and-sup-elements.html#the-sub-and-sup-elements">sub</a></code></th>
                   36089:      <td>Subscript</td>
                   36090:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   36091:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36092:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36093:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36094:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   36095:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   36096:     </tr><tr><th><code><a href="#the-summary-element">summary</a></code></th>
                   36097:      <td>Caption for <code><a href="#the-details-element">details</a></code></td>
                   36098:      <td>none</td>
                   36099:      <td><code><a href="#the-details-element">details</a></code></td>
                   36100:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36101:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   36102:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   36103:     </tr><tr><th><code><a href="the-sub-and-sup-elements.html#the-sub-and-sup-elements">sup</a></code></th>
                   36104:      <td>Superscript</td>
                   36105:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   36106:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36107:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36108:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36109:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   36110:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   36111:     </tr><tr><th><code><a href="the-table-element.html#the-table-element">table</a></code></th>
                   36112:      <td>Table</td>
                   36113:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   36114:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   36115:      <td><code><a href="the-caption-element.html#the-caption-element">caption</a></code>*;
                   36116:          <code><a href="the-colgroup-element.html#the-colgroup-element">colgroup</a></code>*;
                   36117:          <code><a href="the-thead-element.html#the-thead-element">thead</a></code>*;
                   36118:          <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>*;
                   36119:          <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>*;
                   36120:          <code><a href="the-tr-element.html#the-tr-element">tr</a></code>*</td>
                   36121:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   36122:          <code title="attr-table-border"><a href="the-table-element.html#attr-table-border">border</a></code></td>
                   36123:      <td><code><a href="the-table-element.html#htmltableelement">HTMLTableElement</a></code></td>
                   36124:     </tr><tr><th><code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code></th>
                   36125:      <td>Group of rows in a table</td>
                   36126:      <td>none</td>
                   36127:      <td><code><a href="the-table-element.html#the-table-element">table</a></code></td>
                   36128:      <td><code><a href="the-tr-element.html#the-tr-element">tr</a></code></td>
                   36129:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   36130:      <td><code><a href="the-tbody-element.html#htmltablesectionelement">HTMLTableSectionElement</a></code></td>
                   36131:     </tr><tr><th><code><a href="the-td-element.html#the-td-element">td</a></code></th>
                   36132:      <td>Table cell</td>
                   36133:      <td><a href="headings-and-sections.html#sectioning-root" title="Sectioning root">sectioning root</a></td>
                   36134:      <td><code><a href="the-tr-element.html#the-tr-element">tr</a></code></td>
                   36135:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   36136:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   36137:          <code title="attr-tdth-colspan"><a href="attributes-common-to-td-and-th-elements.html#attr-tdth-colspan">colspan</a></code>;
                   36138:          <code title="attr-tdth-rowspan"><a href="attributes-common-to-td-and-th-elements.html#attr-tdth-rowspan">rowspan</a></code>;
                   36139:          <code title="attr-tdth-headers"><a href="attributes-common-to-td-and-th-elements.html#attr-tdth-headers">headers</a></code></td>
                   36140:      <td><code><a href="the-td-element.html#htmltabledatacellelement">HTMLTableDataCellElement</a></code></td>
                   36141:     </tr><tr><th><code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code></th>
                   36142:      <td>Multiline text field</td>
                   36143:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   36144:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   36145:          <a href="content-models.html#interactive-content-0" title="Interactive content">interactive</a>;
                   36146:          <a href="forms.html#category-listed" title="category-listed">listed</a>;
                   36147:          <a href="forms.html#category-label" title="category-label">labelable</a>;
                   36148:          <a href="forms.html#category-submit" title="category-submit">submittable</a>;
                   36149:          <a href="forms.html#category-reset" title="category-reset">resettable</a>;
                   36150:          <a href="forms.html#form-associated-element" title="Form-associated element">form-associated</a></td>
                   36151:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36152:      <td><a href="content-models.html#text-content" title="text content">text</a></td>
                   36153:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   36154:          <code title="attr-fe-autofocus"><a href="attributes-common-to-form-controls.html#attr-fe-autofocus">autofocus</a></code>;
                   36155:          <code title="attr-textarea-cols"><a href="the-textarea-element.html#attr-textarea-cols">cols</a></code>;
                   36156:          <code title="attr-textarea-dirname"><a href="the-textarea-element.html#attr-textarea-dirname">dirname</a></code>;
                   36157:          <code title="attr-fe-disabled"><a href="attributes-common-to-form-controls.html#attr-fe-disabled">disabled</a></code>;
                   36158:          <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">form</a></code>;
                   36159:          <code title="attr-textarea-maxlength"><a href="the-textarea-element.html#attr-textarea-maxlength">maxlength</a></code>;
                   36160:          <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">name</a></code>;
                   36161:          <code title="attr-textarea-placeholder"><a href="the-textarea-element.html#attr-textarea-placeholder">placeholder</a></code>;
                   36162:          <code title="attr-textarea-readonly"><a href="the-textarea-element.html#attr-textarea-readonly">readonly</a></code>;
                   36163:          <code title="attr-textarea-required"><a href="the-textarea-element.html#attr-textarea-required">required</a></code>;
                   36164:          <code title="attr-textarea-rows"><a href="the-textarea-element.html#attr-textarea-rows">rows</a></code>;
                   36165:          <code title="attr-textarea-wrap"><a href="the-textarea-element.html#attr-textarea-wrap">wrap</a></code></td>
                   36166:      <td><code><a href="the-textarea-element.html#htmltextareaelement">HTMLTextAreaElement</a></code></td>
                   36167:     </tr><tr><th><code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code></th>
                   36168:      <td>Group of footer rows in a table</td>
                   36169:      <td>none</td>
                   36170:      <td><code><a href="the-table-element.html#the-table-element">table</a></code></td>
                   36171:      <td><code><a href="the-tr-element.html#the-tr-element">tr</a></code></td>
                   36172:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   36173:      <td><code><a href="the-tbody-element.html#htmltablesectionelement">HTMLTableSectionElement</a></code></td>
                   36174:     </tr><tr><th><code><a href="the-th-element.html#the-th-element">th</a></code></th>
                   36175:      <td>Table header cell</td>
                   36176:      <td>none</td>
                   36177:      <td><code><a href="the-tr-element.html#the-tr-element">tr</a></code></td>
                   36178:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>*</td>
                   36179:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   36180:          <code title="attr-tdth-colspan"><a href="attributes-common-to-td-and-th-elements.html#attr-tdth-colspan">colspan</a></code>;
                   36181:          <code title="attr-tdth-rowspan"><a href="attributes-common-to-td-and-th-elements.html#attr-tdth-rowspan">rowspan</a></code>;
                   36182:          <code title="attr-tdth-headers"><a href="attributes-common-to-td-and-th-elements.html#attr-tdth-headers">headers</a></code>;
                   36183:          <code title="attr-th-scope"><a href="the-th-element.html#attr-th-scope">scope</a></code></td>
                   36184:      <td><code><a href="the-th-element.html#htmltableheadercellelement">HTMLTableHeaderCellElement</a></code></td>
                   36185:     </tr><tr><th><code><a href="the-thead-element.html#the-thead-element">thead</a></code></th>
                   36186:      <td>Group of heading rows in a table</td>
                   36187:      <td>none</td>
                   36188:      <td><code><a href="the-table-element.html#the-table-element">table</a></code></td>
                   36189:      <td><code><a href="the-tr-element.html#the-tr-element">tr</a></code></td>
                   36190:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   36191:      <td><code><a href="the-tbody-element.html#htmltablesectionelement">HTMLTableSectionElement</a></code></td>
                   36192:     </tr><tr><th><code><a href="the-time-element.html#the-time-element">time</a></code></th>
                   36193:      <td>Machine-readable equivalent of date- or time-related data</td>
                   36194:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   36195:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36196:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36197:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36198:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   36199:          <code title="attr-time-datetime"><a href="the-time-element.html#attr-time-datetime">datetime</a></code></td>
                   36200:      <td><code><a href="the-time-element.html#htmltimeelement">HTMLTimeElement</a></code></td>
                   36201:     </tr><tr><th><code><a href="the-title-element.html#the-title-element">title</a></code></th>
                   36202:      <td>Document title</td>
                   36203:      <td><a href="content-models.html#metadata-content-0" title="Metadata content">metadata</a></td>
                   36204:      <td><code><a href="the-head-element.html#the-head-element">head</a></code></td>
                   36205:      <td><a href="content-models.html#text-content" title="text content">text</a></td>
                   36206:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   36207:      <td><code><a href="the-title-element.html#htmltitleelement">HTMLTitleElement</a></code></td>
                   36208:     </tr><tr><th><code><a href="the-tr-element.html#the-tr-element">tr</a></code></th>
                   36209:      <td>Table row</td>
                   36210:      <td>none</td>
                   36211:      <td><code><a href="the-table-element.html#the-table-element">table</a></code>;
                   36212:          <code><a href="the-thead-element.html#the-thead-element">thead</a></code>;
                   36213:          <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>;
                   36214:          <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code></td>
                   36215:      <td><code><a href="the-th-element.html#the-th-element">th</a></code>*;
                   36216:          <code><a href="the-td-element.html#the-td-element">td</a></code></td>
                   36217:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   36218:      <td><code><a href="the-tr-element.html#htmltablerowelement">HTMLTableRowElement</a></code></td>
                   36219:     </tr><tr><th><code><a href="the-track-element.html#the-track-element">track</a></code></th>
                   36220:      <td>Timed text track</td>
                   36221:      <td>none</td>
                   36222:      <td><code><a href="the-audio-element.html#the-audio-element">audio</a></code>;
                   36223:          <code><a href="the-video-element.html#the-video-element">video</a></code></td>
                   36224:      <td>empty</td>
                   36225:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   36226:          <code title="attr-track-default"><a href="the-track-element.html#attr-track-default">default</a></code>;
                   36227:          <code title="attr-track-kind"><a href="the-track-element.html#attr-track-kind">kind</a></code>;
                   36228:          <code title="attr-track-label"><a href="the-track-element.html#attr-track-label">label</a></code>;
                   36229:          <code title="attr-track-src"><a href="the-track-element.html#attr-track-src">src</a></code>;
                   36230:          <code title="attr-track-srclang"><a href="the-track-element.html#attr-track-srclang">srclang</a></code></td>
                   36231:      <td><code><a href="the-track-element.html#htmltrackelement">HTMLTrackElement</a></code></td>
                   36232:     </tr><tr><th><code><a href="the-u-element.html#the-u-element">u</a></code></th>
                   36233:      <td>Keywords</td>
                   36234:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   36235:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36236:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36237:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36238:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   36239:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   36240:     </tr><tr><th><code><a href="the-ul-element.html#the-ul-element">ul</a></code></th>
                   36241:      <td>List</td>
                   36242:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   36243:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a></td>
                   36244:      <td><code><a href="the-li-element.html#the-li-element">li</a></code></td>
                   36245:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   36246:      <td><code><a href="the-ul-element.html#htmlulistelement">HTMLUListElement</a></code></td>
                   36247:     </tr><tr><th><code><a href="the-var-element.html#the-var-element">var</a></code></th>
                   36248:      <td>Variable</td>
                   36249:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   36250:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36251:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36252:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36253:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   36254:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   36255:     </tr><tr><th><code><a href="the-video-element.html#the-video-element">video</a></code></th>
                   36256:      <td>Video player</td>
                   36257:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   36258:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a>;
                   36259:          <a href="content-models.html#embedded-content-2" title="Embedded content">embedded</a>;
                   36260:          <a href="content-models.html#interactive-content-0" title="Interactive content">interactive</a></td>
                   36261:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36262:      <td><code><a href="the-source-element.html#the-source-element">source</a></code>*;
                   36263:          <a href="content-models.html#transparent">transparent</a>*</td>
                   36264:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a>;
                   36265:          <code title="attr-media-src"><a href="media-elements.html#attr-media-src">src</a></code>;
                   36266:          <code title="attr-media-crossorigin"><a href="media-elements.html#attr-media-crossorigin">crossorigin</a></code>;
                   36267:          <code title="attr-video-poster"><a href="the-video-element.html#attr-video-poster">poster</a></code>;
                   36268:          <code title="attr-media-preload"><a href="media-elements.html#attr-media-preload">preload</a></code>;
                   36269:          <code title="attr-media-autoplay"><a href="media-elements.html#attr-media-autoplay">autoplay</a></code>;
                   36270:          <code title="attr-media-mediagroup"><a href="media-elements.html#attr-media-mediagroup">mediagroup</a></code>;
                   36271:          <code title="attr-media-loop"><a href="media-elements.html#attr-media-loop">loop</a></code>;
                   36272:          <code title="attr-media-muted"><a href="media-elements.html#attr-media-muted">muted</a></code>;
                   36273:          <code title="attr-media-controls"><a href="media-elements.html#attr-media-controls">controls</a></code>;
                   36274:          <code title="attr-dim-width"><a href="dimension-attributes.html#attr-dim-width">width</a></code>;
                   36275:          <code title="attr-dim-height"><a href="dimension-attributes.html#attr-dim-height">height</a></code></td>
                   36276:      <td><code><a href="the-video-element.html#htmlvideoelement">HTMLVideoElement</a></code></td>
                   36277:     </tr><tr><th><code><a href="the-wbr-element.html#the-wbr-element">wbr</a></code></th>
                   36278:      <td>Line breaking opportunity</td>
                   36279:      <td><a href="content-models.html#flow-content-1" title="Flow content">flow</a>;
                   36280:          <a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36281:      <td><a href="content-models.html#phrasing-content-1" title="Phrasing content">phrasing</a></td>
                   36282:      <td>empty</td>
                   36283:      <td><a href="global-attributes.html#global-attributes" title="global attributes">globals</a></td>
                   36284:      <td><code><a href="elements.html#htmlelement">HTMLElement</a></code></td>
                   36285:     </tr></tbody></table><p>An asterisk (*) in a cell indicates that the actual rules are more complicated than indicated in the table above.</p>
                   36286: 
                   36287:   <p>&#8224; Categories in the "Parents" column refer to parents that
                   36288:   list the given categories in their content model, not to elements
                   36289:   that themselves are in those categories. For example, the
                   36290:   <code><a href="the-a-element.html#the-a-element">a</a></code> element's "Parents" column says "phrasing", so any
                   36291:   element whose content model contains the "phrasing" category could
                   36292:   be a parent of an <code><a href="the-a-element.html#the-a-element">a</a></code> element. Since the "flow" category
                   36293:   includes all the "phrasing" elements, that means the
                   36294:   <code><a href="the-address-element.html#the-address-element">address</a></code> element could be a parent to an <code><a href="the-a-element.html#the-a-element">a</a></code>
                   36295:   element.</p>
                   36296: 
                   36297: 
                   36298: 
                   36299:   <h3 class="no-num" id="element-content-categories">Element content categories</h3>
                   36300: 
                   36301:   <p><i>This section is non-normative.</i></p>
                   36302:   <!-- when updating this also check the category-list <ul>s -->
                   36303: 
                   36304:   <table><caption>List of element content categories</caption>
                   36305:    <thead><tr><th> Category
                   36306:      </th><th> Elements
                   36307:      </th><th> Elements with exceptions
                   36308:    </th></tr></thead><tbody><tr><td> <a href="content-models.html#metadata-content-0">Metadata content</a>
                   36309:      </td><td>
                   36310:       <code><a href="the-base-element.html#the-base-element">base</a></code>;
                   36311:       <code><a href="#the-command-element">command</a></code>;
                   36312:       <code><a href="the-link-element.html#the-link-element">link</a></code>;
                   36313:       <code><a href="the-meta-element.html#the-meta-element">meta</a></code>;
                   36314:       <code><a href="the-noscript-element.html#the-noscript-element">noscript</a></code>;
                   36315:       <code><a href="the-script-element.html#the-script-element">script</a></code>;
                   36316:       <code><a href="the-style-element.html#the-style-element">style</a></code>;
                   36317:       <code><a href="the-title-element.html#the-title-element">title</a></code>
                   36318:      </td><td>
                   36319:       &#8212;
                   36320: 
                   36321:     </td></tr><tr><td> <a href="content-models.html#flow-content-1">Flow content</a>
                   36322:      </td><td>
                   36323:       <code><a href="the-a-element.html#the-a-element">a</a></code>;
                   36324:       <code><a href="the-abbr-element.html#the-abbr-element">abbr</a></code>;
                   36325:       <code><a href="the-address-element.html#the-address-element">address</a></code>;
                   36326:       <code><a href="the-article-element.html#the-article-element">article</a></code>;
                   36327:       <code><a href="the-aside-element.html#the-aside-element">aside</a></code>;
                   36328:       <code><a href="the-audio-element.html#the-audio-element">audio</a></code>;
                   36329:       <code><a href="the-b-element.html#the-b-element">b</a></code>;
                   36330:       <code><a href="the-bdi-element.html#the-bdi-element">bdi</a></code>;
                   36331:       <code><a href="the-bdo-element.html#the-bdo-element">bdo</a></code>;
                   36332:       <code><a href="the-blockquote-element.html#the-blockquote-element">blockquote</a></code>;
                   36333:       <code><a href="the-br-element.html#the-br-element">br</a></code>;
                   36334:       <code><a href="the-button-element.html#the-button-element">button</a></code>;
                   36335:       <code><a href="the-canvas-element.html#the-canvas-element">canvas</a></code>;
                   36336:       <code><a href="the-cite-element.html#the-cite-element">cite</a></code>;
                   36337:       <code><a href="the-code-element.html#the-code-element">code</a></code>;
                   36338:       <code><a href="#the-command-element">command</a></code>;
                   36339: <!--DATA--><!--FORK-->
                   36340:       <code><a href="the-datalist-element.html#the-datalist-element">datalist</a></code>;
                   36341:       <code><a href="the-del-element.html#the-del-element">del</a></code>;
                   36342:       <code><a href="#the-details-element">details</a></code>;
                   36343:       <code><a href="the-dfn-element.html#the-dfn-element">dfn</a></code>;
                   36344:       <code><a href="#the-dialog-element">dialog</a></code>;
                   36345:       <code><a href="the-div-element.html#the-div-element">div</a></code>;
                   36346:       <code><a href="the-dl-element.html#the-dl-element">dl</a></code>;
                   36347:       <code><a href="the-em-element.html#the-em-element">em</a></code>;
                   36348:       <code><a href="the-embed-element.html#the-embed-element">embed</a></code>;
                   36349:       <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code>;
                   36350:       <code><a href="the-figure-element.html#the-figure-element">figure</a></code>;
                   36351:       <code><a href="the-footer-element.html#the-footer-element">footer</a></code>;
                   36352:       <code><a href="the-form-element.html#the-form-element">form</a></code>;
                   36353:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h1</a></code>;
                   36354:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h2</a></code>;
                   36355:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h3</a></code>;
                   36356:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h4</a></code>;
                   36357:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h5</a></code>;
                   36358:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h6</a></code>;
                   36359:       <code><a href="the-header-element.html#the-header-element">header</a></code>;
                   36360:       <code><a href="the-hgroup-element.html#the-hgroup-element">hgroup</a></code>;
                   36361:       <code><a href="the-hr-element.html#the-hr-element">hr</a></code>;
                   36362:       <code><a href="the-i-element.html#the-i-element">i</a></code>;
                   36363:       <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>;
                   36364:       <code><a href="the-img-element.html#the-img-element">img</a></code>;
                   36365:       <code><a href="the-input-element.html#the-input-element">input</a></code>;
                   36366:       <code><a href="the-ins-element.html#the-ins-element">ins</a></code>;
                   36367:       <code><a href="the-kbd-element.html#the-kbd-element">kbd</a></code>;
                   36368:       <code><a href="the-keygen-element.html#the-keygen-element">keygen</a></code>;
                   36369:       <code><a href="the-label-element.html#the-label-element">label</a></code>;
                   36370:       <code><a href="the-map-element.html#the-map-element">map</a></code>;
                   36371:       <code><a href="the-mark-element.html#the-mark-element">mark</a></code>;
                   36372:       <code><a href="mathml.html#math">math</a></code>;
                   36373:       <code><a href="#the-menu-element">menu</a></code>;
                   36374:       <code><a href="the-meter-element.html#the-meter-element">meter</a></code>;
                   36375:       <code><a href="the-nav-element.html#the-nav-element">nav</a></code>;
                   36376:       <code><a href="the-noscript-element.html#the-noscript-element">noscript</a></code>;
                   36377:       <code><a href="the-object-element.html#the-object-element">object</a></code>;
                   36378:       <code><a href="the-ol-element.html#the-ol-element">ol</a></code>;
                   36379:       <code><a href="the-output-element.html#the-output-element">output</a></code>;
                   36380:       <code><a href="the-p-element.html#the-p-element">p</a></code>;
                   36381:       <code><a href="the-pre-element.html#the-pre-element">pre</a></code>;
                   36382:       <code><a href="the-progress-element.html#the-progress-element">progress</a></code>;
                   36383:       <code><a href="the-q-element.html#the-q-element">q</a></code>;
                   36384:       <code><a href="the-ruby-element.html#the-ruby-element">ruby</a></code>;
                   36385:       <code><a href="the-s-element.html#the-s-element">s</a></code>;
                   36386:       <code><a href="the-samp-element.html#the-samp-element">samp</a></code>;
                   36387:       <code><a href="the-script-element.html#the-script-element">script</a></code>;
                   36388:       <code><a href="the-section-element.html#the-section-element">section</a></code>;
                   36389:       <code><a href="the-select-element.html#the-select-element">select</a></code>;
                   36390:       <code><a href="the-small-element.html#the-small-element">small</a></code>;
                   36391:       <code><a href="the-span-element.html#the-span-element">span</a></code>;
                   36392:       <code><a href="the-strong-element.html#the-strong-element">strong</a></code>;
                   36393:       <code><a href="the-sub-and-sup-elements.html#the-sub-and-sup-elements">sub</a></code>;
                   36394:       <code><a href="the-sub-and-sup-elements.html#the-sub-and-sup-elements">sup</a></code>;
                   36395:       <code><a href="mathml.html#svg-0">svg</a></code>;
                   36396:       <code><a href="the-table-element.html#the-table-element">table</a></code>;
                   36397:       <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>;
                   36398:       <code><a href="the-time-element.html#the-time-element">time</a></code>;
                   36399:       <code><a href="the-u-element.html#the-u-element">u</a></code>;
                   36400:       <code><a href="the-ul-element.html#the-ul-element">ul</a></code>;
                   36401:       <code><a href="the-var-element.html#the-var-element">var</a></code>;
                   36402:       <code><a href="the-video-element.html#the-video-element">video</a></code>;
                   36403:       <code><a href="the-wbr-element.html#the-wbr-element">wbr</a></code>;
                   36404:       <a href="content-models.html#text-content" title="text content">Text</a>
                   36405:      </td><td>
                   36406:       <code><a href="the-area-element.html#the-area-element">area</a></code> (if it is a descendant of a <code><a href="the-map-element.html#the-map-element">map</a></code> element);
                   36407:       <!--MD-->
                   36408:       <code><a href="the-style-element.html#the-style-element">style</a></code> (if the <code title="attr-style-scoped"><a href="the-style-element.html#attr-style-scoped">scoped</a></code> attribute is present)
                   36409: 
                   36410:     </td></tr><tr><td> <a href="content-models.html#sectioning-content-0">Sectioning content</a>
                   36411:      </td><td>
                   36412:       <code><a href="the-article-element.html#the-article-element">article</a></code>;
                   36413:       <code><a href="the-aside-element.html#the-aside-element">aside</a></code>;
                   36414:       <code><a href="the-nav-element.html#the-nav-element">nav</a></code>;
                   36415:       <code><a href="the-section-element.html#the-section-element">section</a></code>
                   36416:      </td><td>
                   36417:       &#8212;
                   36418: 
                   36419:     </td></tr><tr><td> <a href="content-models.html#heading-content-0">Heading content</a>
                   36420:      </td><td>
                   36421:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h1</a></code>;
                   36422:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h2</a></code>;
                   36423:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h3</a></code>;
                   36424:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h4</a></code>;
                   36425:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h5</a></code>;
                   36426:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h6</a></code>;
                   36427:       <code><a href="the-hgroup-element.html#the-hgroup-element">hgroup</a></code>
                   36428:      </td><td>
                   36429:       &#8212;
                   36430: 
                   36431:     </td></tr><tr><td> <a href="content-models.html#phrasing-content-1">Phrasing content</a>
                   36432:      </td><td>
                   36433:       <code><a href="the-a-element.html#the-a-element">a</a></code>;
                   36434:       <code><a href="the-abbr-element.html#the-abbr-element">abbr</a></code>;
                   36435:       <code><a href="the-audio-element.html#the-audio-element">audio</a></code>;
                   36436:       <code><a href="the-b-element.html#the-b-element">b</a></code>;
                   36437:       <code><a href="the-bdi-element.html#the-bdi-element">bdi</a></code>;
                   36438:       <code><a href="the-bdo-element.html#the-bdo-element">bdo</a></code>;
                   36439:       <code><a href="the-br-element.html#the-br-element">br</a></code>;
                   36440:       <code><a href="the-button-element.html#the-button-element">button</a></code>;
                   36441:       <code><a href="the-canvas-element.html#the-canvas-element">canvas</a></code>;
                   36442:       <code><a href="the-cite-element.html#the-cite-element">cite</a></code>;
                   36443:       <code><a href="the-code-element.html#the-code-element">code</a></code>;
                   36444:       <code><a href="#the-command-element">command</a></code>;
                   36445: <!--DATA--><!--FORK-->
                   36446:       <code><a href="the-datalist-element.html#the-datalist-element">datalist</a></code>;
                   36447:       <code><a href="the-del-element.html#the-del-element">del</a></code>;
                   36448:       <code><a href="the-dfn-element.html#the-dfn-element">dfn</a></code>;
                   36449:       <code><a href="the-em-element.html#the-em-element">em</a></code>;
                   36450:       <code><a href="the-embed-element.html#the-embed-element">embed</a></code>;
                   36451:       <code><a href="the-i-element.html#the-i-element">i</a></code>;
                   36452:       <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>;
                   36453:       <code><a href="the-img-element.html#the-img-element">img</a></code>;
                   36454:       <code><a href="the-input-element.html#the-input-element">input</a></code>;
                   36455:       <code><a href="the-ins-element.html#the-ins-element">ins</a></code>;
                   36456:       <code><a href="the-kbd-element.html#the-kbd-element">kbd</a></code>;
                   36457:       <code><a href="the-keygen-element.html#the-keygen-element">keygen</a></code>;
                   36458:       <code><a href="the-label-element.html#the-label-element">label</a></code>;
                   36459:       <code><a href="the-map-element.html#the-map-element">map</a></code>;
                   36460:       <code><a href="the-mark-element.html#the-mark-element">mark</a></code>;
                   36461:       <code><a href="mathml.html#math">math</a></code>;
                   36462:       <code><a href="the-meter-element.html#the-meter-element">meter</a></code>;
                   36463:       <code><a href="the-noscript-element.html#the-noscript-element">noscript</a></code>;
                   36464:       <code><a href="the-object-element.html#the-object-element">object</a></code>;
                   36465:       <code><a href="the-output-element.html#the-output-element">output</a></code>;
                   36466:       <code><a href="the-progress-element.html#the-progress-element">progress</a></code>;
                   36467:       <code><a href="the-q-element.html#the-q-element">q</a></code>;
                   36468:       <code><a href="the-ruby-element.html#the-ruby-element">ruby</a></code>;
                   36469:       <code><a href="the-s-element.html#the-s-element">s</a></code>;
                   36470:       <code><a href="the-samp-element.html#the-samp-element">samp</a></code>;
                   36471:       <code><a href="the-script-element.html#the-script-element">script</a></code>;
                   36472:       <code><a href="the-select-element.html#the-select-element">select</a></code>;
                   36473:       <code><a href="the-small-element.html#the-small-element">small</a></code>;
                   36474:       <code><a href="the-span-element.html#the-span-element">span</a></code>;
                   36475:       <code><a href="the-strong-element.html#the-strong-element">strong</a></code>;
                   36476:       <code><a href="the-sub-and-sup-elements.html#the-sub-and-sup-elements">sub</a></code>;
                   36477:       <code><a href="the-sub-and-sup-elements.html#the-sub-and-sup-elements">sup</a></code>;
                   36478:       <code><a href="mathml.html#svg-0">svg</a></code>;
                   36479:       <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>;
                   36480:       <code><a href="the-time-element.html#the-time-element">time</a></code>;
                   36481:       <code><a href="the-u-element.html#the-u-element">u</a></code>;
                   36482:       <code><a href="the-var-element.html#the-var-element">var</a></code>;
                   36483:       <code><a href="the-video-element.html#the-video-element">video</a></code>;
                   36484:       <code><a href="the-wbr-element.html#the-wbr-element">wbr</a></code>;
                   36485:       <a href="content-models.html#text-content" title="text content">Text</a>
                   36486:      </td><td>
                   36487:       <code><a href="the-area-element.html#the-area-element">area</a></code> (if it is a descendant of a  <code><a href="the-map-element.html#the-map-element">map</a></code> element);
                   36488:       <!--MD-->
                   36489: 
                   36490:     </td></tr><tr><td> <a href="content-models.html#embedded-content-2">Embedded content</a>
                   36491:      </td><td>
                   36492:       <code><a href="the-audio-element.html#the-audio-element">audio</a></code>
                   36493:       <code><a href="the-canvas-element.html#the-canvas-element">canvas</a></code>
                   36494:       <code><a href="the-embed-element.html#the-embed-element">embed</a></code>
                   36495:       <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>
                   36496:       <code><a href="the-img-element.html#the-img-element">img</a></code>
                   36497:       <code><a href="mathml.html#math">math</a></code>
                   36498:       <code><a href="the-object-element.html#the-object-element">object</a></code>
                   36499:       <code><a href="mathml.html#svg-0">svg</a></code>
                   36500:       <code><a href="the-video-element.html#the-video-element">video</a></code>
                   36501:      </td><td>
                   36502:       &#8212;
                   36503: 
                   36504:     </td></tr><tr><td> <a href="content-models.html#interactive-content-0">Interactive content</a>
                   36505:      </td><td>
                   36506:       <code><a href="the-a-element.html#the-a-element">a</a></code>;
                   36507:       <code><a href="the-button-element.html#the-button-element">button</a></code>;
                   36508:       <code><a href="#the-details-element">details</a></code>;
                   36509:       <code><a href="the-embed-element.html#the-embed-element">embed</a></code>;
                   36510:       <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>;
                   36511:       <code><a href="the-keygen-element.html#the-keygen-element">keygen</a></code>;
                   36512:       <code><a href="the-label-element.html#the-label-element">label</a></code>;
                   36513:       <code><a href="the-select-element.html#the-select-element">select</a></code>;
                   36514:       <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>;
                   36515:      </td><td>
                   36516:       <code><a href="the-audio-element.html#the-audio-element">audio</a></code> (if the <code title="attr-media-controls"><a href="media-elements.html#attr-media-controls">controls</a></code> attribute is present);
                   36517:       <code><a href="the-img-element.html#the-img-element">img</a></code> (if the <code title="attr-hyperlink-usemap"><a href="image-maps.html#attr-hyperlink-usemap">usemap</a></code> attribute is present);
                   36518:       <code><a href="the-input-element.html#the-input-element">input</a></code> (if the <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is <em>not</em> in the <a href="states-of-the-type-attribute.html#hidden-state-(type=hidden)" title="attr-input-type-hidden">Hidden</a> state);
                   36519:       <code><a href="#the-menu-element">menu</a></code> (if the <code title="attr-menu-type"><a href="#attr-menu-type">type</a></code> attribute is in the <a href="#toolbar-state" title="toolbar state">toolbar</a> state);
                   36520:       <code><a href="the-object-element.html#the-object-element">object</a></code> (if the <code title="attr-hyperlink-usemap"><a href="image-maps.html#attr-hyperlink-usemap">usemap</a></code> attribute is present)<!-- see also comment in <object> section -->;
                   36521:       <code><a href="the-video-element.html#the-video-element">video</a></code> (if the <code title="attr-media-controls"><a href="media-elements.html#attr-media-controls">controls</a></code> attribute is present)
                   36522: 
                   36523:     </td></tr><tr><td> <a href="headings-and-sections.html#sectioning-root" title="sectioning root">Sectioning roots</a>
                   36524:      </td><td>
                   36525:       <code><a href="the-blockquote-element.html#the-blockquote-element">blockquote</a></code>;
                   36526:       <code><a href="the-body-element.html#the-body-element">body</a></code>;
                   36527:       <code><a href="#the-details-element">details</a></code>;
                   36528:       <code><a href="#the-dialog-element">dialog</a></code>;
                   36529:       <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code>;
                   36530:       <code><a href="the-figure-element.html#the-figure-element">figure</a></code>;
                   36531:       <code><a href="the-td-element.html#the-td-element">td</a></code>
                   36532:      </td><td>
                   36533:       &#8212;
                   36534: 
                   36535:     </td></tr><tr><td> <a href="forms.html#form-associated-element" title="form-associated element">Form-associated elements</a>
                   36536:      </td><td>
                   36537:       <code><a href="the-button-element.html#the-button-element">button</a></code>;
                   36538:       <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code>;
                   36539:       <code><a href="the-input-element.html#the-input-element">input</a></code>;
                   36540:       <code><a href="the-keygen-element.html#the-keygen-element">keygen</a></code>;
                   36541:       <code><a href="the-label-element.html#the-label-element">label</a></code>;
                   36542:       <code><a href="the-object-element.html#the-object-element">object</a></code>;
                   36543:       <code><a href="the-output-element.html#the-output-element">output</a></code>;
                   36544:       <code><a href="the-select-element.html#the-select-element">select</a></code>;
                   36545:       <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>
                   36546:      </td><td>
                   36547:       &#8212;
                   36548: 
                   36549:     </td></tr><tr><td> <a href="forms.html#category-listed" title="category-listed">Listed elements</a>
                   36550:      </td><td>
                   36551:       <code><a href="the-button-element.html#the-button-element">button</a></code>;
                   36552:       <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code>;
                   36553:       <code><a href="the-input-element.html#the-input-element">input</a></code>;
                   36554:       <code><a href="the-keygen-element.html#the-keygen-element">keygen</a></code>;
                   36555:       <code><a href="the-object-element.html#the-object-element">object</a></code>;
                   36556:       <code><a href="the-output-element.html#the-output-element">output</a></code>;
                   36557:       <code><a href="the-select-element.html#the-select-element">select</a></code>;
                   36558:       <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>
                   36559:      </td><td>
                   36560:       &#8212;
                   36561: 
                   36562:     </td></tr><tr><td> <a href="forms.html#category-submit" title="category-submit">Submittable elements</a>
                   36563:      </td><td>
                   36564:       <code><a href="the-button-element.html#the-button-element">button</a></code>;
                   36565:       <code><a href="the-input-element.html#the-input-element">input</a></code>;
                   36566:       <code><a href="the-keygen-element.html#the-keygen-element">keygen</a></code>;
                   36567:       <code><a href="the-object-element.html#the-object-element">object</a></code>;
                   36568:       <code><a href="the-select-element.html#the-select-element">select</a></code>;
                   36569:       <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>
                   36570:      </td><td>
                   36571:       &#8212;
                   36572: 
                   36573:     </td></tr><tr><td> <a href="forms.html#category-reset" title="category-reset">Resettable elements</a>
                   36574:      </td><td>
                   36575:       <code><a href="the-input-element.html#the-input-element">input</a></code>;
                   36576:       <code><a href="the-keygen-element.html#the-keygen-element">keygen</a></code>;
                   36577:       <code><a href="the-output-element.html#the-output-element">output</a></code>;
                   36578:       <code><a href="the-select-element.html#the-select-element">select</a></code>;
                   36579:       <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>
                   36580:      </td><td>
                   36581:       &#8212;
                   36582: 
                   36583:     </td></tr><tr><td> <a href="forms.html#category-label" title="category-label">Labelable elements</a>
                   36584:      </td><td>
                   36585:       <code><a href="the-button-element.html#the-button-element">button</a></code>;
                   36586:       <code><a href="the-input-element.html#the-input-element">input</a></code>;
                   36587:       <code><a href="the-keygen-element.html#the-keygen-element">keygen</a></code>;
                   36588:       <code><a href="the-meter-element.html#the-meter-element">meter</a></code>;
                   36589:       <code><a href="the-output-element.html#the-output-element">output</a></code>;
                   36590:       <code><a href="the-progress-element.html#the-progress-element">progress</a></code>;
                   36591:       <code><a href="the-select-element.html#the-select-element">select</a></code>;
                   36592:       <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>
                   36593:      </td><td>
                   36594:       &#8212;
                   36595: 
                   36596:     </td></tr><tr><td> <a href="content-models.html#palpable-content-0">Palpable content</a>
                   36597:      </td><td>
                   36598:       <code><a href="the-a-element.html#the-a-element">a</a></code>;
                   36599:       <code><a href="the-abbr-element.html#the-abbr-element">abbr</a></code>;
                   36600:       <code><a href="the-address-element.html#the-address-element">address</a></code>;
                   36601:       <code><a href="the-article-element.html#the-article-element">article</a></code>;
                   36602:       <code><a href="the-aside-element.html#the-aside-element">aside</a></code>;
                   36603:       <code><a href="the-b-element.html#the-b-element">b</a></code>;
                   36604:       <code><a href="the-bdi-element.html#the-bdi-element">bdi</a></code>;
                   36605:       <code><a href="the-bdo-element.html#the-bdo-element">bdo</a></code>;
                   36606:       <code><a href="the-blockquote-element.html#the-blockquote-element">blockquote</a></code>;
                   36607:       <code><a href="the-button-element.html#the-button-element">button</a></code>;
                   36608:       <code><a href="the-canvas-element.html#the-canvas-element">canvas</a></code>;
                   36609:       <code><a href="the-cite-element.html#the-cite-element">cite</a></code>;
                   36610:       <code><a href="the-code-element.html#the-code-element">code</a></code>;
                   36611: <!--DATA--><!--FORK-->
                   36612:       <code><a href="#the-details-element">details</a></code>;
                   36613:       <code><a href="the-dfn-element.html#the-dfn-element">dfn</a></code>;
                   36614:       <code><a href="the-div-element.html#the-div-element">div</a></code>;
                   36615:       <code><a href="the-em-element.html#the-em-element">em</a></code>;
                   36616:       <code><a href="the-embed-element.html#the-embed-element">embed</a></code>;
                   36617:       <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code>;
                   36618:       <code><a href="the-figure-element.html#the-figure-element">figure</a></code>;
                   36619:       <code><a href="the-footer-element.html#the-footer-element">footer</a></code>;
                   36620:       <code><a href="the-form-element.html#the-form-element">form</a></code>;
                   36621:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h1</a></code>;
                   36622:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h2</a></code>;
                   36623:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h3</a></code>;
                   36624:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h4</a></code>;
                   36625:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h5</a></code>;
                   36626:       <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h6</a></code>;
                   36627:       <code><a href="the-header-element.html#the-header-element">header</a></code>;
                   36628:       <code><a href="the-hgroup-element.html#the-hgroup-element">hgroup</a></code>;
                   36629:       <code><a href="the-i-element.html#the-i-element">i</a></code>;
                   36630:       <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>;
                   36631:       <code><a href="the-img-element.html#the-img-element">img</a></code>;
                   36632:       <code><a href="the-ins-element.html#the-ins-element">ins</a></code>;
                   36633:       <code><a href="the-kbd-element.html#the-kbd-element">kbd</a></code>;
                   36634:       <code><a href="the-keygen-element.html#the-keygen-element">keygen</a></code>;
                   36635:       <code><a href="the-label-element.html#the-label-element">label</a></code>;
                   36636:       <code><a href="the-map-element.html#the-map-element">map</a></code>;
                   36637:       <code><a href="the-mark-element.html#the-mark-element">mark</a></code>;
                   36638:       <code><a href="mathml.html#math">math</a></code>;
                   36639:       <code><a href="the-meter-element.html#the-meter-element">meter</a></code>;
                   36640:       <code><a href="the-nav-element.html#the-nav-element">nav</a></code>;
                   36641:       <code><a href="the-object-element.html#the-object-element">object</a></code>;
                   36642:       <code><a href="the-output-element.html#the-output-element">output</a></code>;
                   36643:       <code><a href="the-p-element.html#the-p-element">p</a></code>;
                   36644:       <code><a href="the-pre-element.html#the-pre-element">pre</a></code>;
                   36645:       <code><a href="the-progress-element.html#the-progress-element">progress</a></code>;
                   36646:       <code><a href="the-q-element.html#the-q-element">q</a></code>;
                   36647:       <code><a href="the-ruby-element.html#the-ruby-element">ruby</a></code>;
                   36648:       <code><a href="the-s-element.html#the-s-element">s</a></code>;
                   36649:       <code><a href="the-samp-element.html#the-samp-element">samp</a></code>;
                   36650:       <code><a href="the-section-element.html#the-section-element">section</a></code>;
                   36651:       <code><a href="the-select-element.html#the-select-element">select</a></code>;
                   36652:       <code><a href="the-small-element.html#the-small-element">small</a></code>;
                   36653:       <code><a href="the-span-element.html#the-span-element">span</a></code>;
                   36654:       <code><a href="the-strong-element.html#the-strong-element">strong</a></code>;
                   36655:       <code><a href="the-sub-and-sup-elements.html#the-sub-and-sup-elements">sub</a></code>;
                   36656:       <code><a href="the-sub-and-sup-elements.html#the-sub-and-sup-elements">sup</a></code>;
                   36657:       <code><a href="mathml.html#svg-0">svg</a></code>;
                   36658:       <code><a href="the-table-element.html#the-table-element">table</a></code>;
                   36659:       <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>;
                   36660:       <code><a href="the-time-element.html#the-time-element">time</a></code>;
                   36661:       <code><a href="the-u-element.html#the-u-element">u</a></code>;
                   36662:       <code><a href="the-var-element.html#the-var-element">var</a></code>;
                   36663:       <code><a href="the-video-element.html#the-video-element">video</a></code>
                   36664:      </td><td>
                   36665:       <code><a href="the-audio-element.html#the-audio-element">audio</a></code> (if the <code title="attr-media-controls"><a href="media-elements.html#attr-media-controls">controls</a></code> attribute is present);
                   36666:       <code><a href="the-dl-element.html#the-dl-element">dl</a></code> (if the element's children include at least one name-value group);
                   36667:       <code><a href="the-input-element.html#the-input-element">input</a></code> (if the <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">type</a></code> attribute is <em>not</em> in the <a href="states-of-the-type-attribute.html#hidden-state-(type=hidden)" title="attr-input-type-hidden">Hidden</a> state);
                   36668:       <code><a href="#the-menu-element">menu</a></code> (if the <code title="attr-menu-type"><a href="#attr-menu-type">type</a></code> attribute is in the <a href="#toolbar-state" title="toolbar state">toolbar</a> state or the <a href="#list-state" title="list state">list</a> state);
                   36669:       <code><a href="the-ol-element.html#the-ol-element">ol</a></code> (if the element's children include at least one <code><a href="the-li-element.html#the-li-element">li</a></code> element);
                   36670:       <code><a href="the-ul-element.html#the-ul-element">ul</a></code> (if the element's children include at least one <code><a href="the-li-element.html#the-li-element">li</a></code> element);
                   36671:       <a href="content-models.html#text-content" title="text content">Text</a> that is not <a href="content-models.html#inter-element-whitespace">inter-element whitespace</a>
                   36672: 
                   36673:   </td></tr></tbody></table><h3 class="no-num" id="attributes-1">Attributes</h3>
                   36674: 
                   36675:   <p><i>This section is non-normative.</i></p>
                   36676:   <table><caption>List of attributes (excluding event handler content attributes)</caption>
                   36677:    <thead><tr><th> Attribute
                   36678:      </th><th> Element(s)
                   36679:      </th><th> Description
                   36680:      </th><th> Value
                   36681:    </th></tr></thead><tbody><tr><th> <code title="">accept</code>
                   36682:      </th><td> <code title="attr-input-accept"><a href="states-of-the-type-attribute.html#attr-input-accept">input</a></code>
                   36683:      </td><td> Hint for expected file type in <a href="states-of-the-type-attribute.html#file-upload-state-(type=file)" title="attr-input-type-file">file upload controls</a>
                   36684:      </td><td> <a href="common-microsyntaxes.html#set-of-comma-separated-tokens">Set of comma-separated tokens</a>* consisting of <a href="infrastructure.html#valid-mime-type" title="valid MIME type">valid MIME types with no parameters</a> or <code title="">audio/*</code>, <code title="">video/*</code>, or <code title="">image/*</code>
                   36685:     </td></tr><tr><th> <code title="">accept-charset</code>
                   36686:      </th><td> <code title="attr-form-accept-charset"><a href="the-form-element.html#attr-form-accept-charset">form</a></code>
                   36687:      </td><td> Character encodings to use for <a href="#form-submission-0">form submission</a>
                   36688:      </td><td> <a href="common-microsyntaxes.html#ordered-set-of-unique-space-separated-tokens">Ordered set of unique space-separated tokens</a>, <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a>, consisting of <a href="infrastructure.html#preferred-mime-name" title="preferred MIME name">preferred MIME names</a> of <a href="infrastructure.html#ascii-compatible-character-encoding" title="ASCII-compatible character encoding">ASCII-compatible character encodings</a>*
                   36689:     </td></tr><tr><th> <code title="">accesskey</code>
                   36690:      </th><td> <a href="#the-accesskey-attribute" title="attr-accesskey">HTML elements</a>
                   36691:      </td><td> Keyboard shortcut to activate or focus element
                   36692:      </td><td> <a href="common-microsyntaxes.html#ordered-set-of-unique-space-separated-tokens">Ordered set of unique space-separated tokens</a>, <a href="infrastructure.html#case-sensitive">case-sensitive</a>, consisting of one Unicode code point in length
                   36693:     </td></tr><tr><th> <code title="">action</code>
                   36694:      </th><td> <code title="attr-fs-action"><a href="form-submission.html#attr-fs-action">form</a></code>
                   36695:      </td><td> <a href="urls.html#url">URL</a> to use for <a href="#form-submission-0">form submission</a>
                   36696:      </td><td> <a href="urls.html#valid-non-empty-url-potentially-surrounded-by-spaces">Valid non-empty URL potentially surrounded by spaces</a>
                   36697:     </td></tr><tr><th> <code title="">alt</code>
                   36698:      </th><td> <code title="attr-area-alt"><a href="the-area-element.html#attr-area-alt">area</a></code>;
                   36699:           <code title="attr-img-alt"><a href="the-img-element.html#attr-img-alt">img</a></code>;
                   36700:           <code title="attr-input-alt"><a href="states-of-the-type-attribute.html#attr-input-alt">input</a></code>
                   36701:      </td><td> Replacement text for use when images are not available
                   36702:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>*
                   36703:     </td></tr><tr><th> <code title="">async</code>
                   36704:      </th><td> <code title="attr-script-async"><a href="the-script-element.html#attr-script-async">script</a></code>
                   36705:      </td><td> Execute script asynchronously
                   36706:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   36707:     </td></tr><tr><th> <code title="">autocomplete</code>
                   36708:      </th><td> <code title="attr-form-autocomplete"><a href="the-form-element.html#attr-form-autocomplete">form</a></code>;
                   36709:           <code title="attr-input-autocomplete"><a href="common-input-element-attributes.html#attr-input-autocomplete">input</a></code>
                   36710:      </td><td> Prevent the user agent from providing autocompletions for the form control(s)
                   36711:      </td><td> "<code title="">on</code>"; "<code title="">off</code>"
                   36712:     </td></tr><tr><th> <code title="">autofocus</code>
                   36713:      </th><td> <code title="attr-fe-autofocus"><a href="attributes-common-to-form-controls.html#attr-fe-autofocus">button</a></code>;
                   36714:           <code title="attr-fe-autofocus"><a href="attributes-common-to-form-controls.html#attr-fe-autofocus">input</a></code>;
                   36715:           <code title="attr-fe-autofocus"><a href="attributes-common-to-form-controls.html#attr-fe-autofocus">keygen</a></code>;
                   36716:           <code title="attr-fe-autofocus"><a href="attributes-common-to-form-controls.html#attr-fe-autofocus">select</a></code>;
                   36717:           <code title="attr-fe-autofocus"><a href="attributes-common-to-form-controls.html#attr-fe-autofocus">textarea</a></code>
                   36718:      </td><td> Automatically focus the form control when the page is loaded
                   36719:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   36720:     </td></tr><tr><th> <code title="">autoplay</code>
                   36721:      </th><td> <code title="attr-media-autoplay"><a href="media-elements.html#attr-media-autoplay">audio</a></code>;
                   36722:           <code title="attr-media-autoplay"><a href="media-elements.html#attr-media-autoplay">video</a></code>
                   36723:      </td><td> Hint that the <a href="media-elements.html#media-resource">media resource</a> can be started automatically when the page is loaded
                   36724:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   36725:     </td></tr><tr><th> <code title="">border</code>
                   36726:      </th><td> <code title="attr-table-border"><a href="the-table-element.html#attr-table-border">table</a></code>
                   36727:      </td><td> Explicit indication that the <code><a href="the-table-element.html#the-table-element">table</a></code> element is not being used for layout purposes
                   36728:      </td><td> The empty string, or "<code title="">1</code>"
                   36729:     </td></tr><tr><th> <code title="">challenge</code>
                   36730:      </th><td> <code title="attr-keygen-challenge"><a href="the-keygen-element.html#attr-keygen-challenge">keygen</a></code>
                   36731:      </td><td> String to package with the generated and signed public key
                   36732:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>
                   36733:     </td></tr><tr><th> <code title="">charset</code>
                   36734:      </th><td> <code title="attr-meta-charset"><a href="the-meta-element.html#attr-meta-charset">meta</a></code>
                   36735:      </td><td> <a href="the-meta-element.html#character-encoding-declaration">Character encoding declaration</a>
                   36736:      </td><td> <a href="infrastructure.html#preferred-mime-name">Preferred MIME name</a> of an encoding*
                   36737:     </td></tr><tr><th> <code title="">charset</code>
                   36738:      </th><td> <code title="attr-script-charset"><a href="the-script-element.html#attr-script-charset">script</a></code>
                   36739:      </td><td> Character encoding of the external script resource
                   36740:      </td><td> <a href="infrastructure.html#preferred-mime-name">Preferred MIME name</a> of an encoding*
                   36741:     </td></tr><tr><th> <code title="">checked</code>
                   36742:      </th><td> <code title="attr-command-checked"><a href="#attr-command-checked">command</a></code>;
                   36743:           <code title="attr-input-checked"><a href="the-input-element.html#attr-input-checked">input</a></code>
                   36744:      </td><td> Whether the command or control is checked
                   36745:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   36746:     </td></tr><tr><th> <code title="">cite</code>
                   36747:      </th><td> <code title="attr-blockquote-cite"><a href="the-blockquote-element.html#attr-blockquote-cite">blockquote</a></code>;
                   36748:           <code title="attr-mod-cite"><a href="attributes-common-to-ins-and-del-elements.html#attr-mod-cite">del</a></code>;
                   36749:           <code title="attr-mod-cite"><a href="attributes-common-to-ins-and-del-elements.html#attr-mod-cite">ins</a></code>;
                   36750:           <code title="attr-q-cite"><a href="the-q-element.html#attr-q-cite">q</a></code>
                   36751:      </td><td> Link to the source of the quotation or more information about the edit
                   36752:      </td><td> <a href="urls.html#valid-url-potentially-surrounded-by-spaces">Valid URL potentially surrounded by spaces</a>
                   36753:     </td></tr><tr><th> <code title="">class</code>
                   36754:      </th><td> <a href="global-attributes.html#classes" title="attr-class">HTML elements</a>
                   36755:      </td><td> Classes to which the element belongs
                   36756:      </td><td> <a href="common-microsyntaxes.html#set-of-space-separated-tokens">Set of space-separated tokens</a>
                   36757:     </td></tr><tr><th> <code title="">cols</code>
                   36758:      </th><td> <code title="attr-textarea-cols"><a href="the-textarea-element.html#attr-textarea-cols">textarea</a></code>
                   36759:      </td><td> Maximum number of characters per line
                   36760:      </td><td> <a href="common-microsyntaxes.html#valid-non-negative-integer">Valid non-negative integer</a> greater than zero
                   36761:     </td></tr><tr><th> <code title="">colspan</code>
                   36762:      </th><td> <code title="attr-tdth-colspan"><a href="attributes-common-to-td-and-th-elements.html#attr-tdth-colspan">td</a></code>;
                   36763:           <code title="attr-tdth-colspan"><a href="attributes-common-to-td-and-th-elements.html#attr-tdth-colspan">th</a></code>
                   36764:      </td><td> Number of columns that the cell is to span
                   36765:      </td><td> <a href="common-microsyntaxes.html#valid-non-negative-integer">Valid non-negative integer</a> greater than zero
                   36766:     </td></tr><tr><th> <code title="">command</code>
                   36767:      </th><td> <code title="attr-command-command"><a href="#attr-command-command">command</a></code>
                   36768:      </td><td> Command definition
                   36769:      </td><td> <a href="infrastructure.html#concept-id" title="concept-id">ID</a>*
                   36770:     </td></tr><tr><th> <code title="">content</code>
                   36771:      </th><td> <code title="attr-meta-content"><a href="the-meta-element.html#attr-meta-content">meta</a></code>
                   36772:      </td><td> Value of the element
                   36773:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>*
                   36774:     </td></tr><tr><th> <code title="">contenteditable</code>
                   36775:      </th><td> <a href="#attr-contenteditable" title="attr-contenteditable">HTML elements</a>
                   36776:      </td><td> Whether the element is editable
                   36777:      </td><td> "<code title="">true</code>"; "<code title="">false</code>"
                   36778:     </td></tr><tr><th> <code title="">contextmenu</code>
                   36779:      </th><td> <a href="#attr-contextmenu" title="attr-contextmenu">HTML elements</a>
                   36780:      </td><td> The element's context menu
                   36781:      </td><td> <a href="infrastructure.html#concept-id" title="concept-id">ID</a>*
                   36782:     </td></tr><tr><th> <code title="">controls</code>
                   36783:      </th><td> <code title="attr-media-controls"><a href="media-elements.html#attr-media-controls">audio</a></code>;
                   36784:           <code title="attr-media-controls"><a href="media-elements.html#attr-media-controls">video</a></code>
                   36785:      </td><td> Show user agent controls
                   36786:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   36787:     </td></tr><tr><th> <code title="">coords</code>
                   36788:      </th><td> <code title="attr-area-coords"><a href="the-area-element.html#attr-area-coords">area</a></code>
                   36789:      </td><td> Coordinates for the shape to be created in an <a href="image-maps.html#image-map">image map</a>
                   36790:      </td><td> <a href="common-microsyntaxes.html#valid-list-of-integers">Valid list of integers</a>*
                   36791:     </td></tr><tr><th> <code title="">crossorigin</code>
                   36792:      </th><td> <code title="attr-media-crossorigin"><a href="media-elements.html#attr-media-crossorigin">audio</a></code>;
                   36793:           <code title="attr-img-crossorigin"><a href="the-img-element.html#attr-img-crossorigin">img</a></code>;
                   36794:           <code title="attr-media-crossorigin"><a href="media-elements.html#attr-media-crossorigin">video</a></code>
                   36795:      </td><td> How the element handles crossorigin requests.
                   36796:      </td><td> "<code title="attr-crossorigin-anonymous-keyword"><a href="urls.html#attr-crossorigin-anonymous-keyword">anonymous</a></code>"; "<code title="attr-crossorigin-use-credentials-keyword"><a href="urls.html#attr-crossorigin-use-credentials-keyword">use-credentials</a></code>"
                   36797:     </td></tr><tr><th> <code title="">data</code>
                   36798:      </th><td> <code title="attr-object-data"><a href="the-object-element.html#attr-object-data">object</a></code>
                   36799:      </td><td> Address of the resource
                   36800:      </td><td> <a href="urls.html#valid-non-empty-url-potentially-surrounded-by-spaces">Valid non-empty URL potentially surrounded by spaces</a>
                   36801:     </td></tr><tr><th> <code title="">datetime</code>
                   36802:      </th><td> <code title="attr-mod-datetime"><a href="attributes-common-to-ins-and-del-elements.html#attr-mod-datetime">del</a></code>;
                   36803:           <code title="attr-mod-datetime"><a href="attributes-common-to-ins-and-del-elements.html#attr-mod-datetime">ins</a></code>
                   36804:      </td><td> Date and (optionally) time of the change
                   36805:      </td><td> <a href="common-microsyntaxes.html#valid-date-string-with-optional-time">Valid date string with optional time</a>
                   36806:     </td></tr><tr><th> <code title="">datetime</code>
                   36807:      </th><td> <code title="attr-time-datetime"><a href="the-time-element.html#attr-time-datetime">time</a></code>
                   36808:      </td><td> Machine-readable value
                   36809:      </td><td> <a href="common-microsyntaxes.html#valid-month-string">Valid month string</a>,
                   36810:           <a href="common-microsyntaxes.html#valid-date-string">valid date string</a>,
                   36811:           <a href="common-microsyntaxes.html#valid-yearless-date-string">valid yearless date string</a>,
                   36812:           <a href="common-microsyntaxes.html#valid-time-string">valid time string</a>,
                   36813:           <a href="common-microsyntaxes.html#valid-local-date-and-time-string">valid local date and time string</a>,
                   36814:           <a href="common-microsyntaxes.html#valid-time-zone-offset-string">valid time-zone offset string</a>,
                   36815:           <a href="common-microsyntaxes.html#valid-global-date-and-time-string">valid global date and time string</a>,
                   36816:           <a href="common-microsyntaxes.html#valid-week-string">valid week string</a>,
                   36817:           <a href="common-microsyntaxes.html#valid-non-negative-integer">valid non-negative integer</a>, or
                   36818:           <a href="common-microsyntaxes.html#valid-duration-string">valid duration string</a>
                   36819:     </td></tr><tr><th> <code title="">default</code>
                   36820:      </th><td> <code title="attr-track-default"><a href="the-track-element.html#attr-track-default">track</a></code>
                   36821:      </td><td> Enable the track if no other <a href="media-elements.html#text-track">text track</a> is more suitable.
                   36822:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   36823:     </td></tr><tr><th> <code title="">defer</code>
                   36824:      </th><td> <code title="attr-script-defer"><a href="the-script-element.html#attr-script-defer">script</a></code>
                   36825:      </td><td> Defer script execution
                   36826:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   36827:     </td></tr><tr><th> <code title="">dir</code>
                   36828:      </th><td> <a href="global-attributes.html#the-dir-attribute" title="attr-dir">HTML elements</a>
                   36829:      </td><td> <a href="global-attributes.html#the-directionality" title="the directionality">The text directionality</a> of the element
                   36830:      </td><td> "<code title="attr-dir-ltr"><a href="global-attributes.html#attr-dir-ltr">ltr</a></code>"; "<code title="attr-dir-rtl"><a href="global-attributes.html#attr-dir-rtl">rtl</a></code>"; "<code title="attr-dir-auto"><a href="global-attributes.html#attr-dir-auto">auto</a></code>"
                   36831:     </td></tr><tr><th> <code title="">dirname</code>
                   36832:      </th><td> <code title="attr-input-dirname"><a href="common-input-element-attributes.html#attr-input-dirname">input</a></code>;
                   36833:           <code title="attr-textarea-dirname"><a href="the-textarea-element.html#attr-textarea-dirname">textarea</a></code>
                   36834:      </td><td> Name of form field to use for sending the element's <a href="global-attributes.html#the-directionality" title="the directionality">directionality</a> in <a href="#form-submission-0">form submission</a>
                   36835:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>*
                   36836:     </td></tr><tr><th> <code title="">disabled</code>
                   36837:      </th><td> <code title="attr-fe-disabled"><a href="attributes-common-to-form-controls.html#attr-fe-disabled">button</a></code>;
                   36838:           <code title="attr-command-disabled"><a href="#attr-command-disabled">command</a></code>;
                   36839:           <code title="attr-fieldset-disabled"><a href="the-fieldset-element.html#attr-fieldset-disabled">fieldset</a></code>;
                   36840:           <code title="attr-fe-disabled"><a href="attributes-common-to-form-controls.html#attr-fe-disabled">input</a></code>;
                   36841:           <code title="attr-fe-disabled"><a href="attributes-common-to-form-controls.html#attr-fe-disabled">keygen</a></code>;
                   36842:           <code title="attr-optgroup-disabled"><a href="the-optgroup-element.html#attr-optgroup-disabled">optgroup</a></code>;
                   36843:           <code title="attr-option-disabled"><a href="the-option-element.html#attr-option-disabled">option</a></code>;
                   36844:           <code title="attr-fe-disabled"><a href="attributes-common-to-form-controls.html#attr-fe-disabled">select</a></code>;
                   36845:           <code title="attr-fe-disabled"><a href="attributes-common-to-form-controls.html#attr-fe-disabled">textarea</a></code>
                   36846:      </td><td> Whether the form control is disabled
                   36847:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   36848: <!--DOWNLOAD-->
                   36849:     </td></tr><tr><th> <code title="">draggable</code>
                   36850:      </th><td> <a href="#the-draggable-attribute" title="attr-draggable">HTML elements</a>
                   36851:      </td><td> Whether the element is draggable
                   36852:      </td><td> "<code title="">true</code>"; "<code title="">false</code>"
                   36853:     </td></tr><tr><th> <code title="">dropzone</code>
                   36854:      </th><td> <a href="#the-dropzone-attribute" title="attr-dropzone">HTML elements</a>
                   36855:      </td><td> Accepted item types for drag-and-drop
                   36856:      </td><td> <a href="common-microsyntaxes.html#unordered-set-of-unique-space-separated-tokens">Unordered set of unique space-separated tokens</a>, <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a>, consisting of accepted types and drag feedback*
                   36857:     </td></tr><tr><th> <code title="">enctype</code>
                   36858:      </th><td> <code title="attr-fs-enctype"><a href="form-submission.html#attr-fs-enctype">form</a></code>
                   36859:      </td><td> Form data set encoding type to use for <a href="#form-submission-0">form submission</a>
                   36860:      </td><td> "<code title="attr-fs-enctype-urlencoded"><a href="form-submission.html#attr-fs-enctype-urlencoded">application/x-www-form-urlencoded</a></code>"; "<code title="attr-fs-enctype-formdata"><a href="form-submission.html#attr-fs-enctype-formdata">multipart/form-data</a></code>"; "<code title="attr-fs-enctype-text"><a href="form-submission.html#attr-fs-enctype-text">text/plain</a></code>"
                   36861:     </td></tr><tr><th> <code title="">for</code>
                   36862:      </th><td> <code title="attr-label-for"><a href="the-label-element.html#attr-label-for">label</a></code>
                   36863:      </td><td> Associate the label with form control
                   36864:      </td><td> <a href="infrastructure.html#concept-id" title="concept-id">ID</a>*
                   36865:     </td></tr><tr><th> <code title="">for</code>
                   36866:      </th><td> <code title="attr-output-for"><a href="the-output-element.html#attr-output-for">output</a></code>
                   36867:      </td><td> Specifies controls from which the output was calculated
                   36868:      </td><td> <a href="common-microsyntaxes.html#unordered-set-of-unique-space-separated-tokens">Unordered set of unique space-separated tokens</a>, <a href="infrastructure.html#case-sensitive">case-sensitive</a>, consisting of IDs*
                   36869:     </td></tr><tr><th> <code title="">form</code>
                   36870:      </th><td> <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">button</a></code>;
                   36871:           <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">fieldset</a></code>;
                   36872:           <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">input</a></code>;
                   36873:           <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">keygen</a></code>;
                   36874:           <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">label</a></code>;
                   36875:           <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">object</a></code>;
                   36876:           <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">output</a></code>;
                   36877:           <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">select</a></code>;
                   36878:           <code title="attr-fae-form"><a href="association-of-controls-and-forms.html#attr-fae-form">textarea</a></code>
                   36879:      </td><td> Associates the control with a <code><a href="the-form-element.html#the-form-element">form</a></code> element
                   36880:      </td><td> <a href="infrastructure.html#concept-id" title="concept-id">ID</a>*
                   36881:     </td></tr><tr><th> <code title="">formaction</code>
                   36882:      </th><td> <code title="attr-fs-formaction"><a href="form-submission.html#attr-fs-formaction">button</a></code>;
                   36883:           <code title="attr-fs-formaction"><a href="form-submission.html#attr-fs-formaction">input</a></code>
                   36884:      </td><td> <a href="urls.html#url">URL</a> to use for <a href="#form-submission-0">form submission</a>
                   36885:      </td><td> <a href="urls.html#valid-non-empty-url-potentially-surrounded-by-spaces">Valid non-empty URL potentially surrounded by spaces</a>
                   36886:     </td></tr><tr><th> <code title="">formenctype</code>
                   36887:      </th><td> <code title="attr-fs-formenctype"><a href="form-submission.html#attr-fs-formenctype">button</a></code>;
                   36888:           <code title="attr-fs-formenctype"><a href="form-submission.html#attr-fs-formenctype">input</a></code>
                   36889:      </td><td> Form data set encoding type to use for <a href="#form-submission-0">form submission</a>
                   36890:      </td><td> "<code title="attr-fs-enctype-urlencoded"><a href="form-submission.html#attr-fs-enctype-urlencoded">application/x-www-form-urlencoded</a></code>"; "<code title="attr-fs-enctype-formdata"><a href="form-submission.html#attr-fs-enctype-formdata">multipart/form-data</a></code>"; "<code title="attr-fs-enctype-text"><a href="form-submission.html#attr-fs-enctype-text">text/plain</a></code>"
                   36891:     </td></tr><tr><th> <code title="">formmethod</code>
                   36892:      </th><td> <code title="attr-fs-formmethod"><a href="form-submission.html#attr-fs-formmethod">button</a></code>;
                   36893:           <code title="attr-fs-formmethod"><a href="form-submission.html#attr-fs-formmethod">input</a></code>
                   36894:      </td><td> HTTP method to use for <a href="#form-submission-0">form submission</a>
                   36895:      </td><td> "<code title="">GET</code>"; "<code title="">POST</code>"
                   36896:     </td></tr><tr><th> <code title="">formnovalidate</code>
                   36897:      </th><td> <code title="attr-fs-formnovalidate"><a href="form-submission.html#attr-fs-formnovalidate">button</a></code>;
                   36898:           <code title="attr-fs-formnovalidate"><a href="form-submission.html#attr-fs-formnovalidate">input</a></code>
                   36899:      </td><td> Bypass form control validation for <a href="#form-submission-0">form submission</a>
                   36900:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   36901:     </td></tr><tr><th> <code title="">formtarget</code>
                   36902:      </th><td> <code title="attr-fs-formtarget"><a href="form-submission.html#attr-fs-formtarget">button</a></code>;
                   36903:           <code title="attr-fs-formtarget"><a href="form-submission.html#attr-fs-formtarget">input</a></code>
                   36904:      </td><td> <a href="#browsing-context">Browsing context</a> for <a href="#form-submission-0">form submission</a>
                   36905:      </td><td> <a href="#valid-browsing-context-name-or-keyword">Valid browsing context name or keyword</a>
                   36906:     </td></tr><tr><th> <code title="">headers</code>
                   36907:      </th><td> <code title="attr-tdth-headers"><a href="attributes-common-to-td-and-th-elements.html#attr-tdth-headers">td</a></code>;
                   36908:           <code title="attr-tdth-headers"><a href="attributes-common-to-td-and-th-elements.html#attr-tdth-headers">th</a></code>
                   36909:      </td><td> The header cells for this cell
                   36910:      </td><td> <a href="common-microsyntaxes.html#unordered-set-of-unique-space-separated-tokens">Unordered set of unique space-separated tokens</a>, <a href="infrastructure.html#case-sensitive">case-sensitive</a>, consisting of IDs*
                   36911:     </td></tr><tr><th> <code title="">height</code>
                   36912:      </th><td> <code title="attr-canvas-height"><a href="the-canvas-element.html#attr-canvas-height">canvas</a></code>;
                   36913:           <code title="attr-dim-height"><a href="dimension-attributes.html#attr-dim-height">embed</a></code>;
                   36914:           <code title="attr-dim-height"><a href="dimension-attributes.html#attr-dim-height">iframe</a></code>;
                   36915:           <code title="attr-dim-height"><a href="dimension-attributes.html#attr-dim-height">img</a></code>;
                   36916:           <code title="attr-dim-height"><a href="dimension-attributes.html#attr-dim-height">input</a></code>;
                   36917:           <code title="attr-dim-height"><a href="dimension-attributes.html#attr-dim-height">object</a></code>;
                   36918:           <code title="attr-dim-height"><a href="dimension-attributes.html#attr-dim-height">video</a></code>
                   36919:      </td><td> Vertical dimension
                   36920:      </td><td> <a href="common-microsyntaxes.html#valid-non-negative-integer">Valid non-negative integer</a>
                   36921:     </td></tr><tr><th> <code title="">hidden</code>
                   36922:      </th><td> <a href="#the-hidden-attribute" title="attr-hidden">HTML elements</a>
                   36923:      </td><td> Whether the element is relevant
                   36924:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   36925:     </td></tr><tr><th> <code title="">high</code>
                   36926:      </th><td> <code title="attr-meter-high"><a href="the-meter-element.html#attr-meter-high">meter</a></code>
                   36927:      </td><td> Low limit of high range
                   36928:      </td><td> <a href="common-microsyntaxes.html#valid-floating-point-number">Valid floating-point number</a>*
                   36929:     </td></tr><tr><th> <code title="">href</code>
                   36930:      </th><td> <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">a</a></code>;
                   36931:           <code title="attr-hyperlink-href"><a href="#attr-hyperlink-href">area</a></code>
                   36932:      </td><td> Address of the <a href="#hyperlink">hyperlink</a>
                   36933:      </td><td> <a href="urls.html#valid-url-potentially-surrounded-by-spaces">Valid URL potentially surrounded by spaces</a>
                   36934:     </td></tr><tr><th> <code title="">href</code>
                   36935:      </th><td> <code title="attr-link-href"><a href="the-link-element.html#attr-link-href">link</a></code>
                   36936:      </td><td> Address of the <a href="#hyperlink">hyperlink</a>
                   36937:      </td><td> <a href="urls.html#valid-non-empty-url-potentially-surrounded-by-spaces">Valid non-empty URL potentially surrounded by spaces</a>
                   36938:     </td></tr><tr><th> <code title="">href</code>
                   36939:      </th><td> <code title="attr-base-href"><a href="the-base-element.html#attr-base-href">base</a></code>
                   36940:      </td><td> <a href="urls.html#document-base-url">Document base URL</a>
                   36941:      </td><td> <a href="urls.html#valid-url-potentially-surrounded-by-spaces">Valid URL potentially surrounded by spaces</a>
                   36942:     </td></tr><tr><th> <code title="">hreflang</code>
                   36943:      </th><td> <code title="attr-hyperlink-hreflang"><a href="#attr-hyperlink-hreflang">a</a></code>;
                   36944:           <code title="attr-hyperlink-hreflang"><a href="#attr-hyperlink-hreflang">area</a></code>;
                   36945:           <code title="attr-link-hreflang"><a href="the-link-element.html#attr-link-hreflang">link</a></code>
                   36946:      </td><td> Language of the linked resource
                   36947:      </td><td> Valid BCP 47 language tag
                   36948:     </td></tr><tr><th> <code title="">http-equiv</code>
                   36949:      </th><td> <code title="attr-meta-http-equiv"><a href="the-meta-element.html#attr-meta-http-equiv">meta</a></code>
                   36950:      </td><td> Pragma directive
                   36951:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>*
                   36952:     </td></tr><tr><th> <code title="">icon</code>
                   36953:      </th><td> <code title="attr-command-icon"><a href="#attr-command-icon">command</a></code>
                   36954:      </td><td> Icon for the command
                   36955:      </td><td> <a href="urls.html#valid-non-empty-url-potentially-surrounded-by-spaces">Valid non-empty URL potentially surrounded by spaces</a>
                   36956:     </td></tr><tr><th> <code title="">id</code>
                   36957:      </th><td> <a href="global-attributes.html#the-id-attribute" title="attr-id">HTML elements</a>
                   36958:      </td><td> The element's <a href="infrastructure.html#concept-id" title="concept-id">ID</a>
                   36959:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>*
                   36960: <!--INERT-->
                   36961:     </td></tr><tr><th> <code title="">ismap</code>
                   36962:      </th><td> <code title="attr-img-ismap"><a href="the-img-element.html#attr-img-ismap">img</a></code>
                   36963:      </td><td> Whether the image is a server-side image map
                   36964:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   36965: <!--MD-->
                   36966:     </td></tr><tr><th> <code title="">keytype</code>
                   36967:      </th><td> <code title="attr-keygen-keytype"><a href="the-keygen-element.html#attr-keygen-keytype">keygen</a></code>
                   36968:      </td><td> The type of cryptographic key to generate
                   36969:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>*
                   36970:     </td></tr><tr><th> <code title="">kind</code>
                   36971:      </th><td> <code title="attr-track-kind"><a href="the-track-element.html#attr-track-kind">track</a></code>
                   36972:      </td><td> The type of text track
                   36973:      </td><td> "<code title="attr-track-kind-subtitles"><a href="the-track-element.html#attr-track-kind-subtitles">subtitles</a></code>";
                   36974:           "<code title="attr-track-kind-captions"><a href="the-track-element.html#attr-track-kind-captions">captions</a></code>";
                   36975:           "<code title="attr-track-kind-descriptions"><a href="the-track-element.html#attr-track-kind-descriptions">descriptions</a></code>";
                   36976:           "<code title="attr-track-kind-chapters"><a href="the-track-element.html#attr-track-kind-chapters">chapters</a></code>";
                   36977:           "<code title="attr-track-kind-metadata"><a href="the-track-element.html#attr-track-kind-metadata">metadata</a></code>"
                   36978:     </td></tr><tr><th> <code title="">label</code>
                   36979:      </th><td> <code title="attr-command-label"><a href="#attr-command-label">command</a></code>;
                   36980:           <code title="attr-menu-label"><a href="#attr-menu-label">menu</a></code>;
                   36981:           <code title="attr-optgroup-label"><a href="the-optgroup-element.html#attr-optgroup-label">optgroup</a></code>;
                   36982:           <code title="attr-option-label"><a href="the-option-element.html#attr-option-label">option</a></code>;
                   36983:           <code title="attr-track-label"><a href="the-track-element.html#attr-track-label">track</a></code>
                   36984:      </td><td> User-visible label
                   36985:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>
                   36986:     </td></tr><tr><th> <code title="">lang</code>
                   36987:      </th><td> <a href="global-attributes.html#attr-lang" title="attr-lang">HTML elements</a>
                   36988:      </td><td> <a href="global-attributes.html#language">Language</a> of the element
                   36989:      </td><td> Valid BCP 47 language tag or the empty string
                   36990:     </td></tr><tr><th> <code title="">list</code>
                   36991:      </th><td> <code title="attr-input-list"><a href="common-input-element-attributes.html#attr-input-list">input</a></code>
                   36992:      </td><td> List of autocomplete options
                   36993:      </td><td> <a href="infrastructure.html#concept-id" title="concept-id">ID</a>*
                   36994:     </td></tr><tr><th> <code title="">loop</code>
                   36995:      </th><td> <code title="attr-media-loop"><a href="media-elements.html#attr-media-loop">audio</a></code>;
                   36996:           <code title="attr-media-loop"><a href="media-elements.html#attr-media-loop">video</a></code>
                   36997:      </td><td> Whether to loop the <a href="media-elements.html#media-resource">media resource</a>
                   36998:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   36999:     </td></tr><tr><th> <code title="">low</code>
                   37000:      </th><td> <code title="attr-meter-low"><a href="the-meter-element.html#attr-meter-low">meter</a></code>
                   37001:      </td><td> High limit of low range
                   37002:      </td><td> <a href="common-microsyntaxes.html#valid-floating-point-number">Valid floating-point number</a>*
                   37003:     </td></tr><tr><th> <code title="">manifest</code>
                   37004:      </th><td> <code title="attr-html-manifest"><a href="the-html-element.html#attr-html-manifest">html</a></code>
                   37005:      </td><td> <a href="#concept-appcache-manifest" title="concept-appcache-manifest">Application cache manifest</a>
                   37006:      </td><td> <a href="urls.html#valid-non-empty-url-potentially-surrounded-by-spaces">Valid non-empty URL potentially surrounded by spaces</a>
                   37007:     </td></tr><tr><th> <code title="">max</code>
                   37008:      </th><td> <code title="attr-input-max"><a href="common-input-element-attributes.html#attr-input-max">input</a></code>
                   37009:      </td><td> Maximum value
                   37010:      </td><td> Varies*
                   37011:     </td></tr><tr><th> <code title="">max</code>
                   37012:      </th><td> <code title="attr-meter-max"><a href="the-meter-element.html#attr-meter-max">meter</a></code>;
                   37013:           <code title="attr-progress-max"><a href="the-progress-element.html#attr-progress-max">progress</a></code>
                   37014:      </td><td> Upper bound of range
                   37015:      </td><td> <a href="common-microsyntaxes.html#valid-floating-point-number">Valid floating-point number</a>*
                   37016:     </td></tr><tr><th> <code title="">maxlength</code>
                   37017:      </th><td> <code title="attr-input-maxlength"><a href="common-input-element-attributes.html#attr-input-maxlength">input</a></code>;
                   37018:           <code title="attr-textarea-maxlength"><a href="the-textarea-element.html#attr-textarea-maxlength">textarea</a></code>
                   37019:      </td><td> Maximum length of value
                   37020:      </td><td> <a href="common-microsyntaxes.html#valid-non-negative-integer">Valid non-negative integer</a>
                   37021:     </td></tr><tr><th> <code title="">media</code>
                   37022:      </th><td> <code title="attr-hyperlink-media"><a href="#attr-hyperlink-media">a</a></code>;
                   37023:           <code title="attr-hyperlink-media"><a href="#attr-hyperlink-media">area</a></code>;
                   37024:           <code title="attr-link-media"><a href="the-link-element.html#attr-link-media">link</a></code>;
                   37025:           <code title="attr-source-media"><a href="the-source-element.html#attr-source-media">source</a></code>;
                   37026:           <code title="attr-style-media"><a href="the-style-element.html#attr-style-media">style</a></code>
                   37027:      </td><td> Applicable media
                   37028:      </td><td> <a href="common-microsyntaxes.html#valid-media-query">Valid media query</a>
                   37029:     </td></tr><tr><th> <code title="">mediagroup</code>
                   37030:      </th><td> <code title="attr-media-mediagroup"><a href="media-elements.html#attr-media-mediagroup">audio</a></code>;
                   37031:           <code title="attr-media-mediagroup"><a href="media-elements.html#attr-media-mediagroup">video</a></code>
                   37032:      </td><td> Groups <a href="media-elements.html#media-element" title="media element">media elements</a> together with an implicit <code><a href="media-elements.html#mediacontroller">MediaController</a></code>
                   37033:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>
                   37034:     </td></tr><tr><th> <code title="">method</code>
                   37035:      </th><td> <code title="attr-fs-method"><a href="form-submission.html#attr-fs-method">form</a></code>
                   37036:      </td><td> HTTP method to use for <a href="#form-submission-0">form submission</a>
                   37037:      </td><td> "<code title="attr-fs-method-GET-keyword"><a href="form-submission.html#attr-fs-method-get-keyword">GET</a></code>";
                   37038:           "<code title="attr-fs-method-POST-keyword"><a href="form-submission.html#attr-fs-method-post-keyword">POST</a></code>";
                   37039: <!--FORM-DIALOG-->
                   37040:     </td></tr><tr><th> <code title="">min</code>
                   37041:      </th><td> <code title="attr-input-min"><a href="common-input-element-attributes.html#attr-input-min">input</a></code>
                   37042:      </td><td> Minimum value
                   37043:      </td><td> Varies*
                   37044:     </td></tr><tr><th> <code title="">min</code>
                   37045:      </th><td> <code title="attr-meter-min"><a href="the-meter-element.html#attr-meter-min">meter</a></code>
                   37046:      </td><td> Lower bound of range
                   37047:      </td><td> <a href="common-microsyntaxes.html#valid-floating-point-number">Valid floating-point number</a>*
                   37048:     </td></tr><tr><th> <code title="">multiple</code>
                   37049:      </th><td> <code title="attr-input-multiple"><a href="common-input-element-attributes.html#attr-input-multiple">input</a></code>;
                   37050:           <code title="attr-select-multiple"><a href="the-select-element.html#attr-select-multiple">select</a></code>
                   37051:      </td><td> Whether to allow multiple values
                   37052:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   37053:     </td></tr><tr><th> <code title="">muted</code>
                   37054:      </th><td> <code title="attr-media-muted"><a href="media-elements.html#attr-media-muted">audio</a></code>;
                   37055:           <code title="attr-media-muted"><a href="media-elements.html#attr-media-muted">video</a></code>
                   37056:      </td><td> Whether to mute the <a href="media-elements.html#media-resource">media resource</a> by default
                   37057:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   37058:     </td></tr><tr><th> <code title="">name</code>
                   37059:      </th><td> <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">button</a></code>;
                   37060:           <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">fieldset</a></code>;
                   37061:           <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">input</a></code>;
                   37062:           <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">keygen</a></code>;
                   37063:           <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">output</a></code>;
                   37064:           <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">select</a></code>;
                   37065:           <code title="attr-fe-name"><a href="attributes-common-to-form-controls.html#attr-fe-name">textarea</a></code>
                   37066:      </td><td> Name of form control to use for <a href="#form-submission-0">form submission</a> and in the <code title="dom-form-elements"><a href="the-form-element.html#dom-form-elements">form.elements</a></code> API
                   37067:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>*
                   37068:     </td></tr><tr><th> <code title="">name</code>
                   37069:      </th><td> <code title="attr-form-name"><a href="the-form-element.html#attr-form-name">form</a></code>
                   37070:      </td><td> Name of form to use in the <code title="dom-document-forms"><a href="dom.html#dom-document-forms">document.forms</a></code> API
                   37071:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>*
                   37072:     </td></tr><tr><th> <code title="">name</code>
                   37073:      </th><td> <code title="attr-iframe-name"><a href="the-iframe-element.html#attr-iframe-name">iframe</a></code>;
                   37074:           <code title="attr-object-name"><a href="the-object-element.html#attr-object-name">object</a></code>
                   37075:      </td><td> Name of <a href="#nested-browsing-context">nested browsing context</a>
                   37076:      </td><td> <a href="#valid-browsing-context-name-or-keyword">Valid browsing context name or keyword</a>
                   37077:     </td></tr><tr><th> <code title="">name</code>
                   37078:      </th><td> <code title="attr-map-name"><a href="the-map-element.html#attr-map-name">map</a></code>
                   37079:      </td><td> Name of <a href="image-maps.html#image-map">image map</a> to reference from the <code title="attr-hyperlink-usemap"><a href="image-maps.html#attr-hyperlink-usemap">usemap</a></code> attribute
                   37080:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>*
                   37081:     </td></tr><tr><th> <code title="">name</code>
                   37082:      </th><td> <code title="attr-meta-name"><a href="the-meta-element.html#attr-meta-name">meta</a></code>
                   37083:      </td><td> Metadata name
                   37084:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>*
                   37085:     </td></tr><tr><th> <code title="">name</code>
                   37086:      </th><td> <code title="attr-param-name"><a href="the-param-element.html#attr-param-name">param</a></code>
                   37087:      </td><td> Name of parameter
                   37088:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>
                   37089:     </td></tr><tr><th> <code title="">novalidate</code>
                   37090:      </th><td> <code title="attr-fs-novalidate"><a href="form-submission.html#attr-fs-novalidate">form</a></code>
                   37091:      </td><td> Bypass form control validation for <a href="#form-submission-0">form submission</a>
                   37092:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   37093:     </td></tr><tr><th> <code title="">open</code>
                   37094:      </th><td> <code title="attr-details-open"><a href="#attr-details-open">details</a></code>
                   37095:      </td><td> Whether the details are visible
                   37096:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   37097:     </td></tr><tr><th> <code title="">open</code>
                   37098:      </th><td> <code title="attr-dialog-open"><a href="#attr-dialog-open">dialog</a></code>
                   37099:      </td><td> Whether the dialog box is showing
                   37100:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   37101:     </td></tr><tr><th> <code title="">optimum</code>
                   37102:      </th><td> <code title="attr-meter-optimum"><a href="the-meter-element.html#attr-meter-optimum">meter</a></code>
                   37103:      </td><td> Optimum value in gauge
                   37104:      </td><td> <a href="common-microsyntaxes.html#valid-floating-point-number">Valid floating-point number</a>*
                   37105:     </td></tr><tr><th> <code title="">pattern</code>
                   37106:      </th><td> <code title="attr-input-pattern"><a href="common-input-element-attributes.html#attr-input-pattern">input</a></code>
                   37107:      </td><td> Pattern to be matched by the form control's value
                   37108:      </td><td> Regular expression matching the JavaScript <i title="">Pattern</i> production
                   37109: <!--PING-->
                   37110:     </td></tr><tr><th> <code title="">placeholder</code>
                   37111:      </th><td> <code title="attr-input-placeholder"><a href="common-input-element-attributes.html#attr-input-placeholder">input</a></code>;
                   37112:           <code title="attr-textarea-placeholder"><a href="the-textarea-element.html#attr-textarea-placeholder">textarea</a></code>
                   37113:      </td><td> User-visible label to be placed within the form control
                   37114:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>*
                   37115:     </td></tr><tr><th> <code title="">poster</code>
                   37116:      </th><td> <code title="attr-video-poster"><a href="the-video-element.html#attr-video-poster">video</a></code>
                   37117:      </td><td> Poster frame to show prior to video playback
                   37118:      </td><td> <a href="urls.html#valid-non-empty-url-potentially-surrounded-by-spaces">Valid non-empty URL potentially surrounded by spaces</a>
                   37119:     </td></tr><tr><th> <code title="">preload</code>
                   37120:      </th><td> <code title="attr-media-preload"><a href="media-elements.html#attr-media-preload">audio</a></code>;
                   37121:           <code title="attr-media-preload"><a href="media-elements.html#attr-media-preload">video</a></code>
                   37122:      </td><td> Hints how much buffering the <a href="media-elements.html#media-resource">media resource</a> will likely need
                   37123:      </td><td> "<code title="attr-media-preload-none"><a href="media-elements.html#attr-media-preload-none">none</a></code>";
                   37124:           "<code title="attr-media-preload-metadata"><a href="media-elements.html#attr-media-preload-metadata">metadata</a></code>";
                   37125:           "<code title="attr-media-preload-auto"><a href="media-elements.html#attr-media-preload-auto">auto</a></code>"
                   37126:     </td></tr><tr><th> <code title="">radiogroup</code>
                   37127:      </th><td> <code title="attr-command-radiogroup"><a href="#attr-command-radiogroup">command</a></code>
                   37128:      </td><td> Name of group of commands to treat as a radio button group
                   37129:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>
                   37130:     </td></tr><tr><th> <code title="">readonly</code>
                   37131:      </th><td> <code title="attr-input-readonly"><a href="common-input-element-attributes.html#attr-input-readonly">input</a></code>;
                   37132:           <code title="attr-textarea-readonly"><a href="the-textarea-element.html#attr-textarea-readonly">textarea</a></code>
                   37133:      </td><td> Whether to allow the value to be edited by the user
                   37134:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   37135:     </td></tr><tr><th> <code title="">rel</code>
                   37136:      </th><td> <code title="attr-hyperlink-rel"><a href="#attr-hyperlink-rel">a</a></code>;
                   37137:           <code title="attr-hyperlink-rel"><a href="#attr-hyperlink-rel">area</a></code>;
                   37138:           <code title="attr-link-rel"><a href="the-link-element.html#attr-link-rel">link</a></code>
                   37139:      </td><td> Relationship between the document containing the hyperlink and the destination resource
                   37140:      </td><td> <a href="common-microsyntaxes.html#set-of-space-separated-tokens">Set of space-separated tokens</a>*
                   37141:     </td></tr><tr><th> <code title="">required</code>
                   37142:      </th><td> <code title="attr-input-required"><a href="common-input-element-attributes.html#attr-input-required">input</a></code>;
                   37143:           <code title="attr-select-required"><a href="the-select-element.html#attr-select-required">select</a></code>;
                   37144:           <code title="attr-textarea-required"><a href="the-textarea-element.html#attr-textarea-required">textarea</a></code>
                   37145:      </td><td> Whether the control is required for <a href="#form-submission-0">form submission</a>
                   37146:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   37147:     </td></tr><tr><th> <code title="">reversed</code>
                   37148:      </th><td> <code title="attr-ol-reversed"><a href="the-ol-element.html#attr-ol-reversed">ol</a></code>
                   37149:      </td><td> Number the list backwards
                   37150:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   37151:     </td></tr><tr><th> <code title="">rows</code>
                   37152:      </th><td> <code title="attr-textarea-rows"><a href="the-textarea-element.html#attr-textarea-rows">textarea</a></code>
                   37153:      </td><td> Number of lines to show
                   37154:      </td><td> <a href="common-microsyntaxes.html#valid-non-negative-integer">Valid non-negative integer</a> greater than zero
                   37155:     </td></tr><tr><th> <code title="">rowspan</code>
                   37156:      </th><td> <code title="attr-tdth-rowspan"><a href="attributes-common-to-td-and-th-elements.html#attr-tdth-rowspan">td</a></code>;
                   37157:           <code title="attr-tdth-rowspan"><a href="attributes-common-to-td-and-th-elements.html#attr-tdth-rowspan">th</a></code>
                   37158:      </td><td> Number of rows that the cell is to span
                   37159:      </td><td> <a href="common-microsyntaxes.html#valid-non-negative-integer">Valid non-negative integer</a>
                   37160:     </td></tr><tr><th> <code title="">sandbox</code>
                   37161:      </th><td> <code title="attr-iframe-sandbox"><a href="the-iframe-element.html#attr-iframe-sandbox">iframe</a></code>
                   37162:      </td><td> Security rules for nested content
                   37163:      </td><td> <a href="common-microsyntaxes.html#unordered-set-of-unique-space-separated-tokens">Unordered set of unique space-separated tokens</a>, <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a>, consisting of
                   37164:           "<code title="attr-iframe-sandbox-allow-forms"><a href="#attr-iframe-sandbox-allow-forms">allow-forms</a></code>",
                   37165:           "<code title="attr-iframe-sandbox-allow-popups"><a href="#attr-iframe-sandbox-allow-popups">allow-popups</a></code>",
                   37166:           "<code title="attr-iframe-sandbox-allow-same-origin"><a href="#attr-iframe-sandbox-allow-same-origin">allow-same-origin</a></code>",
                   37167:           "<code title="attr-iframe-sandbox-allow-scripts"><a href="#attr-iframe-sandbox-allow-scripts">allow-scripts</a></code> and
                   37168:           "<code title="attr-iframe-sandbox-allow-top-navigation"><a href="#attr-iframe-sandbox-allow-top-navigation">allow-top-navigation</a></code>"
                   37169:     </td></tr><tr><th> <code title="">spellcheck</code>
                   37170:      </th><td> <a href="#attr-spellcheck" title="attr-spellcheck">HTML elements</a>
                   37171:      </td><td> Whether the element is to have its spelling and grammar checked
                   37172:      </td><td> "<code title="">true</code>"; "<code title="">false</code>"
                   37173:     </td></tr><tr><th> <code title="">scope</code>
                   37174:      </th><td> <code title="attr-th-scope"><a href="the-th-element.html#attr-th-scope">th</a></code>
                   37175:      </td><td> Specifies which cells the header cell applies to
                   37176:      </td><td> "<code title="attr-th-scope-row"><a href="the-th-element.html#attr-th-scope-row">row</a></code>";
                   37177:           "<code title="attr-th-scope-col"><a href="the-th-element.html#attr-th-scope-col">col</a></code>";
                   37178:           "<code title="attr-th-scope-rowgroup"><a href="the-th-element.html#attr-th-scope-rowgroup">rowgroup</a></code>";
                   37179:           "<code title="attr-th-scope-colgroup"><a href="the-th-element.html#attr-th-scope-colgroup">colgroup</a></code>"
                   37180:     </td></tr><tr><th> <code title="">scoped</code>
                   37181:      </th><td> <code title="attr-style-scoped"><a href="the-style-element.html#attr-style-scoped">style</a></code>
                   37182:      </td><td> Whether the styles apply to the entire document or just the parent subtree
                   37183:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   37184:     </td></tr><tr><th> <code title="">seamless</code>
                   37185:      </th><td> <code title="attr-iframe-seamless"><a href="the-iframe-element.html#attr-iframe-seamless">iframe</a></code>
                   37186:      </td><td> Whether to apply the document's styles to the nested content
                   37187:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   37188:     </td></tr><tr><th> <code title="">selected</code>
                   37189:      </th><td> <code title="attr-option-selected"><a href="the-option-element.html#attr-option-selected">option</a></code>
                   37190:      </td><td> Whether the option is selected by default
                   37191:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   37192:     </td></tr><tr><th> <code title="">shape</code>
                   37193:      </th><td> <code title="attr-area-shape"><a href="the-area-element.html#attr-area-shape">area</a></code>
                   37194:      </td><td> The kind of shape to be created in an <a href="image-maps.html#image-map">image map</a>
                   37195:      </td><td> "<code title="attr-area-shape-keyword-circle"><a href="the-area-element.html#attr-area-shape-keyword-circle">circle</a></code>";
                   37196:           "<code title="attr-area-shape-keyword-default"><a href="the-area-element.html#attr-area-shape-keyword-default">default</a></code>";
                   37197:           "<code title="attr-area-shape-keyword-poly"><a href="the-area-element.html#attr-area-shape-keyword-poly">poly</a></code>";
                   37198:           "<code title="attr-area-shape-keyword-rect"><a href="the-area-element.html#attr-area-shape-keyword-rect">rect</a></code>"
                   37199:     </td></tr><tr><th> <code title="">size</code>
                   37200:      </th><td> <code title="attr-input-size"><a href="common-input-element-attributes.html#attr-input-size">input</a></code>;
                   37201:           <code title="attr-select-size"><a href="the-select-element.html#attr-select-size">select</a></code>
                   37202:      </td><td> Size of the control
                   37203:      </td><td> <a href="common-microsyntaxes.html#valid-non-negative-integer">Valid non-negative integer</a> greater than zero
                   37204:     </td></tr><tr><th> <code title="">sizes</code>
                   37205:      </th><td> <code title="attr-link-sizes"><a href="#attr-link-sizes">link</a></code>
                   37206:      </td><td> Sizes of the icons (for <code title="attr-link-rel"><a href="the-link-element.html#attr-link-rel">rel</a></code>="<code title="rel-icon"><a href="#rel-icon">icon</a></code>")
                   37207:      </td><td> <a href="common-microsyntaxes.html#unordered-set-of-unique-space-separated-tokens">Unordered set of unique space-separated tokens</a>, <a href="infrastructure.html#ascii-case-insensitive">ASCII case-insensitive</a>, consisting of sizes*
                   37208:     </td></tr><tr><th> <code title="">span</code>
                   37209:      </th><td> <code title="attr-col-span"><a href="the-col-element.html#attr-col-span">col</a></code>;
                   37210:           <code title="attr-colgroup-span"><a href="the-colgroup-element.html#attr-colgroup-span">colgroup</a></code>
                   37211:      </td><td> Number of columns spanned by the element
                   37212:      </td><td> <a href="common-microsyntaxes.html#valid-non-negative-integer">Valid non-negative integer</a> greater than zero
                   37213:     </td></tr><tr><th> <code title="">src</code>
                   37214:      </th><td> <code title="attr-media-src"><a href="media-elements.html#attr-media-src">audio</a></code>;
                   37215:           <code title="attr-embed-src"><a href="the-embed-element.html#attr-embed-src">embed</a></code>;
                   37216:           <code title="attr-iframe-src"><a href="the-iframe-element.html#attr-iframe-src">iframe</a></code>;
                   37217:           <code title="attr-img-src"><a href="the-img-element.html#attr-img-src">img</a></code>;
                   37218:           <code title="attr-input-src"><a href="states-of-the-type-attribute.html#attr-input-src">input</a></code>;
                   37219:           <code title="attr-script-src"><a href="the-script-element.html#attr-script-src">script</a></code>;
                   37220:           <code title="attr-source-src"><a href="the-source-element.html#attr-source-src">source</a></code>;
                   37221:           <code title="attr-track-src"><a href="the-track-element.html#attr-track-src">track</a></code>;
                   37222:           <code title="attr-media-src"><a href="media-elements.html#attr-media-src">video</a></code>
                   37223:      </td><td> Address of the resource
                   37224:      </td><td> <a href="urls.html#valid-non-empty-url-potentially-surrounded-by-spaces">Valid non-empty URL potentially surrounded by spaces</a>
                   37225:     </td></tr><tr><th> <code title="">srcdoc</code>
                   37226:      </th><td> <code title="attr-iframe-srcdoc"><a href="the-iframe-element.html#attr-iframe-srcdoc">iframe</a></code>
                   37227:      </td><td> A document to render in the <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>
                   37228:      </td><td> The source of <a href="the-iframe-element.html#an-iframe-srcdoc-document">an <code>iframe</code> <code title="attr-iframe-srcdoc">srcdoc</code> document</a>*
                   37229:     </td></tr><tr><th> <code title="">srclang</code>
                   37230:      </th><td> <code title="attr-track-srclang"><a href="the-track-element.html#attr-track-srclang">track</a></code>
                   37231:      </td><td> Language of the text track
                   37232:      </td><td> Valid BCP 47 language tag
                   37233:     </td></tr><tr><th> <code title="">start</code>
                   37234:      </th><td> <code title="attr-ol-start"><a href="the-ol-element.html#attr-ol-start">ol</a></code>
                   37235:      </td><td> <a href="the-li-element.html#ordinal-value">Ordinal value</a> of the first item
                   37236:      </td><td> <a href="common-microsyntaxes.html#valid-integer">Valid integer</a>
                   37237:     </td></tr><tr><th> <code title="">step</code>
                   37238:      </th><td> <code title="attr-input-step"><a href="common-input-element-attributes.html#attr-input-step">input</a></code>
                   37239:      </td><td> Granularity to be matched by the form control's value
                   37240:      </td><td> <a href="common-microsyntaxes.html#valid-floating-point-number">Valid floating-point number</a> greater than zero, or "<code title="">any</code>"
                   37241:     </td></tr><tr><th> <code title="">style</code>
                   37242:      </th><td> <a href="global-attributes.html#the-style-attribute" title="attr-style">HTML elements</a>
                   37243:      </td><td> Presentational and formatting instructions
                   37244:      </td><td> CSS declarations*
                   37245:     </td></tr><tr><th> <code title="">tabindex</code>
                   37246:      </th><td> <a href="#attr-tabindex" title="attr-tabindex">HTML elements</a>
                   37247:      </td><td> Whether the element is focusable, and the relative order of the element for the purposes of sequential focus navigation
                   37248:      </td><td> <a href="common-microsyntaxes.html#valid-integer">Valid integer</a>
                   37249:     </td></tr><tr><th> <code title="">target</code>
                   37250:      </th><td> <code title="attr-hyperlink-target"><a href="#attr-hyperlink-target">a</a></code>;
                   37251:           <code title="attr-hyperlink-target"><a href="#attr-hyperlink-target">area</a></code>
                   37252:      </td><td> <a href="#browsing-context">Browsing context</a> for <a href="#hyperlink">hyperlink</a> <a href="#navigate" title="navigate">navigation</a>
                   37253:      </td><td> <a href="#valid-browsing-context-name-or-keyword">Valid browsing context name or keyword</a>
                   37254:     </td></tr><tr><th> <code title="">target</code>
                   37255:      </th><td> <code title="attr-base-target"><a href="the-base-element.html#attr-base-target">base</a></code>
                   37256:      </td><td> Default <a href="#browsing-context">browsing context</a> for <a href="#hyperlink">hyperlink</a> <a href="#navigate" title="navigate">navigation</a> and <a href="#form-submission-0">form submission</a>
                   37257:      </td><td> <a href="#valid-browsing-context-name-or-keyword">Valid browsing context name or keyword</a>
                   37258:     </td></tr><tr><th> <code title="">target</code>
                   37259:      </th><td> <code title="attr-fs-target"><a href="form-submission.html#attr-fs-target">form</a></code>
                   37260:      </td><td> <a href="#browsing-context">Browsing context</a> for <a href="#form-submission-0">form submission</a>
                   37261:      </td><td> <a href="#valid-browsing-context-name-or-keyword">Valid browsing context name or keyword</a>
                   37262:     </td></tr><tr><th> <code title="">title</code>
                   37263:      </th><td> <a href="global-attributes.html#attr-title" title="attr-title">HTML elements</a>
                   37264:      </td><td> Advisory information for the element
                   37265:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>
                   37266:     </td></tr><tr><th> <code title="">title</code>
                   37267:      </th><td> <code title="attr-abbr-title"><a href="the-abbr-element.html#attr-abbr-title">abbr</a></code>;
                   37268:           <code title="attr-dfn-title"><a href="the-dfn-element.html#attr-dfn-title">dfn</a></code>
                   37269:      </td><td> Full term or expansion of abbreviation
                   37270:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>
                   37271:     </td></tr><tr><th> <code title="">title</code>
                   37272:      </th><td> <code title="attr-command-title"><a href="#attr-command-title">command</a></code>
                   37273:      </td><td> Hint describing the command
                   37274:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>
                   37275:     </td></tr><tr><th> <code title="">title</code>
                   37276:      </th><td> <code title="attr-link-title"><a href="the-link-element.html#attr-link-title">link</a></code>
                   37277:      </td><td> Title of the link
                   37278:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>
                   37279:     </td></tr><tr><th> <code title="">title</code>
                   37280:      </th><td> <code title="attr-link-title"><a href="the-link-element.html#attr-link-title">link</a></code>;
                   37281:           <code title="attr-style-title"><a href="the-style-element.html#attr-style-title">style</a></code>
                   37282:      </td><td> Alternative style sheet set name
                   37283:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>
                   37284:     </td></tr><tr><th> <code title="">translate</code>
                   37285:      </th><td> <a href="global-attributes.html#attr-translate" title="attr-translate">HTML elements</a>
                   37286:      </td><td> Whether the element is to be translated when the page is localized
                   37287:      </td><td> "<code title="">yes</code>"; "<code title="">no</code>"
                   37288:     </td></tr><tr><th> <code title="">type</code>
                   37289:      </th><td> <code title="attr-hyperlink-type"><a href="#attr-hyperlink-type">a</a></code>;
                   37290:           <code title="attr-hyperlink-type"><a href="#attr-hyperlink-type">area</a></code>;
                   37291:           <code title="attr-link-type"><a href="the-link-element.html#attr-link-type">link</a></code>
                   37292:      </td><td> Hint for the type of the referenced resource
                   37293:      </td><td> <a href="infrastructure.html#valid-mime-type">Valid MIME type</a>
                   37294:     </td></tr><tr><th> <code title="">type</code>
                   37295:      </th><td> <code title="attr-button-type"><a href="the-button-element.html#attr-button-type">button</a></code>
                   37296:      </td><td> Type of button
                   37297:      </td><td> "<code title="attr-button-type-submit"><a href="the-button-element.html#attr-button-type-submit">submit</a></code>";
                   37298:           "<code title="attr-button-type-reset"><a href="the-button-element.html#attr-button-type-reset">reset</a></code>";
                   37299:           "<code title="attr-button-type-button"><a href="the-button-element.html#attr-button-type-button">button</a></code>"
                   37300:     </td></tr><tr><th> <code title="">type</code>
                   37301:      </th><td> <code title="attr-command-type"><a href="#attr-command-type">command</a></code>
                   37302:      </td><td> Type of command
                   37303:      </td><td> "<code title="attr-command-type-keyword-command"><a href="#attr-command-type-keyword-command">command</a></code>";
                   37304:           "<code title="attr-command-type-keyword-checkbox"><a href="#attr-command-type-keyword-checkbox">checkbox</a></code>";
                   37305:           "<code title="attr-command-type-keyword-radio"><a href="#attr-command-type-keyword-radio">radio</a></code>"
                   37306:     </td></tr><tr><th> <code title="">type</code>
                   37307:      </th><td> <code title="attr-embed-type"><a href="the-embed-element.html#attr-embed-type">embed</a></code>;
                   37308:           <code title="attr-object-type"><a href="the-object-element.html#attr-object-type">object</a></code>;
                   37309:           <code title="attr-script-type"><a href="the-script-element.html#attr-script-type">script</a></code>;
                   37310:           <code title="attr-source-type"><a href="the-source-element.html#attr-source-type">source</a></code>;
                   37311:           <code title="attr-style-type"><a href="the-style-element.html#attr-style-type">style</a></code>
                   37312:      </td><td> Type of embedded resource
                   37313:      </td><td> <a href="infrastructure.html#valid-mime-type">Valid MIME type</a>
                   37314:     </td></tr><tr><th> <code title="">type</code>
                   37315:      </th><td> <code title="attr-input-type"><a href="the-input-element.html#attr-input-type">input</a></code>
                   37316:      </td><td> Type of form control
                   37317:      </td><td> <a href="the-input-element.html#attr-input-type" title="attr-input-type"><code>input</code> type keyword</a>
                   37318:     </td></tr><tr><th> <code title="">type</code>
                   37319:      </th><td> <code title="attr-menu-type"><a href="#attr-menu-type">menu</a></code>
                   37320:      </td><td> Type of menu
                   37321:      </td><td> "<code title="context menu state"><a href="#context-menu-state">context</a></code>"; "<code title="toolbar state"><a href="#toolbar-state">toolbar</a></code>"
                   37322:     </td></tr><tr><th> <code title="">typemustmatch</code>
                   37323:      </th><td> <code title="attr-object-typemustmatch"><a href="the-object-element.html#attr-object-typemustmatch">object</a></code>
                   37324:      </td><td> Whether the <code title="attr-object-type"><a href="the-object-element.html#attr-object-type">type</a></code> attribute and the <a href="urls.html#content-type">Content-Type</a> value need to match for the resource to be used
                   37325:      </td><td> <a href="common-microsyntaxes.html#boolean-attribute">Boolean attribute</a>
                   37326:     </td></tr><tr><th> <code title="">usemap</code>
                   37327:      </th><td> <code title="attr-hyperlink-usemap"><a href="image-maps.html#attr-hyperlink-usemap">img</a></code>;
                   37328:           <code title="attr-hyperlink-usemap"><a href="image-maps.html#attr-hyperlink-usemap">object</a></code>
                   37329:      </td><td> Name of <a href="image-maps.html#image-map">image map</a> to use
                   37330:      </td><td> <a href="common-microsyntaxes.html#valid-hash-name-reference">Valid hash-name reference</a>*
                   37331:     </td></tr><tr><th> <code title="">value</code>
                   37332:      </th><td> <code title="attr-button-value"><a href="the-button-element.html#attr-button-value">button</a></code>;
                   37333:           <code title="attr-option-value"><a href="the-option-element.html#attr-option-value">option</a></code>
                   37334:      </td><td> Value to be used for <a href="#form-submission-0">form submission</a>
                   37335:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>
                   37336:     </td></tr><tr><th> <code title="">value</code>
                   37337:      </th><td> <code title="attr-data-value">data</code>
                   37338:      </td><td> Machine-readable value
                   37339:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>*
                   37340:     </td></tr><tr><th> <code title="">value</code>
                   37341:      </th><td> <code title="attr-input-value"><a href="the-input-element.html#attr-input-value">input</a></code>
                   37342:      </td><td> Value of the form control
                   37343:      </td><td> Varies*
                   37344:     </td></tr><tr><th> <code title="">value</code>
                   37345:      </th><td> <code title="attr-li-value"><a href="the-li-element.html#attr-li-value">li</a></code>
                   37346:      </td><td> <a href="the-li-element.html#ordinal-value">Ordinal value</a> of the list item
                   37347:      </td><td> <a href="common-microsyntaxes.html#valid-integer">Valid integer</a>
                   37348:     </td></tr><tr><th> <code title="">value</code>
                   37349:      </th><td> <code title="attr-meter-value"><a href="the-meter-element.html#attr-meter-value">meter</a></code>;
                   37350:           <code title="attr-progress-value"><a href="the-progress-element.html#attr-progress-value">progress</a></code>
                   37351:      </td><td> Current value of the element
                   37352:      </td><td> <a href="common-microsyntaxes.html#valid-floating-point-number">Valid floating-point number</a>
                   37353:     </td></tr><tr><th> <code title="">value</code>
                   37354:      </th><td> <code title="attr-param-value"><a href="the-param-element.html#attr-param-value">param</a></code>
                   37355:      </td><td> Value of parameter
                   37356:      </td><td> <a href="element-definitions.html#attribute-text">Text</a>
                   37357:     </td></tr><tr><th> <code title="">width</code>
                   37358:      </th><td> <code title="attr-canvas-width"><a href="the-canvas-element.html#attr-canvas-width">canvas</a></code>;
                   37359:           <code title="attr-dim-width"><a href="dimension-attributes.html#attr-dim-width">embed</a></code>;
                   37360:           <code title="attr-dim-width"><a href="dimension-attributes.html#attr-dim-width">iframe</a></code>;
                   37361:           <code title="attr-dim-width"><a href="dimension-attributes.html#attr-dim-width">img</a></code>;
                   37362:           <code title="attr-dim-width"><a href="dimension-attributes.html#attr-dim-width">input</a></code>;
                   37363:           <code title="attr-dim-width"><a href="dimension-attributes.html#attr-dim-width">object</a></code>;
                   37364:           <code title="attr-dim-width"><a href="dimension-attributes.html#attr-dim-width">video</a></code>
                   37365:      </td><td> Horizontal dimension
                   37366:      </td><td> <a href="common-microsyntaxes.html#valid-non-negative-integer">Valid non-negative integer</a>
                   37367:     </td></tr><tr><th> <code title="">wrap</code>
                   37368:      </th><td> <code title="attr-textarea-wrap"><a href="the-textarea-element.html#attr-textarea-wrap">textarea</a></code>
                   37369:      </td><td> How the value of the form control is to be wrapped for <a href="#form-submission-0">form submission</a>
                   37370:      </td><td> "<code title="attr-textarea-wrap-soft"><a href="the-textarea-element.html#attr-textarea-wrap-soft">soft</a></code>";
                   37371:           "<code title="attr-textarea-wrap-hard"><a href="the-textarea-element.html#attr-textarea-wrap-hard">hard</a></code>"
                   37372:   </td></tr></tbody></table><p>An asterisk (*) in a cell indicates that the actual rules are more complicated than indicated in the table above.</p>
                   37373: 
                   37374:   <hr><table id="ix-event-handlers"><caption>List of event handler content attributes</caption>
                   37375:    <thead><tr><th> Attribute
                   37376:      </th><th> Element(s)
                   37377:      </th><th> Description
                   37378:      </th><th> Value
                   37379:    </th></tr></thead><tbody><tr><th id="ix-handler-onabort"> <code title="">onabort</code>
                   37380:      </th><td> <a href="#handler-onabort" title="handler-onabort">HTML elements</a>
                   37381:      </td><td> <code title="event-abort">abort</code> event handler
                   37382:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37383: 
                   37384:     </td></tr><tr><th id="ix-handler-window-onafterprint"> <code title="">onafterprint</code>
                   37385:      </th><td> <code title="handler-window-onafterprint"><a href="#handler-window-onafterprint">body</a></code>
                   37386:      </td><td> <code title="event-afterprint">afterprint</code> event handler for <code><a href="#window">Window</a></code> object
                   37387:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37388: 
                   37389:     </td></tr><tr><th id="ix-handler-window-onbeforeprint"> <code title="">onbeforeprint</code>
                   37390:      </th><td> <code title="handler-window-onbeforeprint"><a href="#handler-window-onbeforeprint">body</a></code>
                   37391:      </td><td> <code title="event-beforeprint">beforeprint</code> event handler for <code><a href="#window">Window</a></code> object
                   37392:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37393: 
                   37394:     </td></tr><tr><th id="ix-handler-window-onbeforeunload"> <code title="">onbeforeunload</code>
                   37395:      </th><td> <code title="handler-window-onbeforeunload"><a href="#handler-window-onbeforeunload">body</a></code>
                   37396:      </td><td> <code title="event-beforeunload">beforeunload</code> event handler for <code><a href="#window">Window</a></code> object
                   37397:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37398: 
                   37399:     </td></tr><tr><th id="ix-handler-window-onblur"> <code title="">onblur</code>
                   37400:      </th><td> <code title="handler-window-onblur"><a href="#handler-window-onblur">body</a></code>
                   37401:      </td><td> <code title="event-blur">blur</code> event handler for <code><a href="#window">Window</a></code> object
                   37402:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37403: 
                   37404:     </td></tr><tr><th id="ix-handler-onblur"> <code title="">onblur</code>
                   37405:      </th><td> <a href="#handler-onblur" title="handler-onblur">HTML elements</a>
                   37406:      </td><td> <code title="event-blur">blur</code> event handler
                   37407:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37408: 
                   37409:     </td></tr><tr><th id="ix-handler-oncancel"> <code title="">oncancel</code>
                   37410:      </th><td> <a href="#handler-oncancel" title="handler-oncancel">HTML elements</a>
                   37411:      </td><td> <code title="event-media-cancel">cancel</code> event handler
                   37412:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37413: 
                   37414:     </td></tr><tr><th id="ix-handler-oncanplay"> <code title="">oncanplay</code>
                   37415:      </th><td> <a href="#handler-oncanplay" title="handler-oncanplay">HTML elements</a>
                   37416:      </td><td> <code title="event-media-canplay"><a href="media-elements.html#event-media-canplay">canplay</a></code> event handler
                   37417:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37418: 
                   37419:     </td></tr><tr><th id="ix-handler-oncanplaythrough"> <code title="">oncanplaythrough</code>
                   37420:      </th><td> <a href="#handler-oncanplaythrough" title="handler-oncanplaythrough">HTML elements</a>
                   37421:      </td><td> <code title="event-media-canplaythrough"><a href="media-elements.html#event-media-canplaythrough">canplaythrough</a></code> event handler
                   37422:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37423: 
                   37424:     </td></tr><tr><th id="ix-handler-onchange"> <code title="">onchange</code>
                   37425:      </th><td> <a href="#handler-onchange" title="handler-onchange">HTML elements</a>
                   37426:      </td><td> <code title="event-change">change</code> event handler
                   37427:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37428: 
                   37429:     </td></tr><tr><th id="ix-handler-onclick"> <code title="">onclick</code>
                   37430:      </th><td> <a href="#handler-onclick" title="handler-onclick">HTML elements</a>
                   37431:      </td><td> <code title="event-click"><a href="infrastructure.html#event-click">click</a></code> event handler
                   37432:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37433: 
                   37434:     </td></tr><tr><th id="ix-handler-onclose"> <code title="">onclose</code>
                   37435:      </th><td> <a href="#handler-onclose" title="handler-onclose">HTML elements</a>
                   37436:      </td><td> <code title="event-close">close</code> event handler
                   37437:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37438: 
                   37439:     </td></tr><tr><th id="ix-handler-oncontextmenu"> <code title="">oncontextmenu</code>
                   37440:      </th><td> <a href="#handler-oncontextmenu" title="handler-oncontextmenu">HTML elements</a>
                   37441:      </td><td> <code title="event-contextmenu">contextmenu</code> event handler
                   37442:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37443: 
                   37444:     </td></tr><tr><th id="ix-handler-oncuechange"> <code title="">oncuechange</code>
                   37445:      </th><td> <a href="#handler-oncuechange" title="handler-oncuechange">HTML elements</a>
                   37446:      </td><td> <code title="event-cuechange">cuechange</code> event handler
                   37447:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37448: 
                   37449:     </td></tr><tr><th id="ix-handler-ondblclick"> <code title="">ondblclick</code>
                   37450:      </th><td> <a href="#handler-ondblclick" title="handler-ondblclick">HTML elements</a>
                   37451:      </td><td> <code title="event-dblclick">dblclick</code> event handler
                   37452:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37453: 
                   37454:     </td></tr><tr><th id="ix-handler-ondrag"> <code title="">ondrag</code>
                   37455:      </th><td> <a href="#handler-ondrag" title="handler-ondrag">HTML elements</a>
                   37456:      </td><td> <code title="event-drag"><a href="#event-drag">drag</a></code> event handler
                   37457:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37458: 
                   37459:     </td></tr><tr><th id="ix-handler-ondragend"> <code title="">ondragend</code>
                   37460:      </th><td> <a href="#handler-ondragend" title="handler-ondragend">HTML elements</a>
                   37461:      </td><td> <code title="event-dragend"><a href="#event-dragend">dragend</a></code> event handler
                   37462:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37463: 
                   37464:     </td></tr><tr><th id="ix-handler-ondragenter"> <code title="">ondragenter</code>
                   37465:      </th><td> <a href="#handler-ondragenter" title="handler-ondragenter">HTML elements</a>
                   37466:      </td><td> <code title="event-dragenter"><a href="#event-dragenter">dragenter</a></code> event handler
                   37467:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37468: 
                   37469:     </td></tr><tr><th id="ix-handler-ondragleave"> <code title="">ondragleave</code>
                   37470:      </th><td> <a href="#handler-ondragleave" title="handler-ondragleave">HTML elements</a>
                   37471:      </td><td> <code title="event-dragleave"><a href="#event-dragleave">dragleave</a></code> event handler
                   37472:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37473: 
                   37474:     </td></tr><tr><th id="ix-handler-ondragover"> <code title="">ondragover</code>
                   37475:      </th><td> <a href="#handler-ondragover" title="handler-ondragover">HTML elements</a>
                   37476:      </td><td> <code title="event-dragover"><a href="#event-dragover">dragover</a></code> event handler
                   37477:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37478: 
                   37479:     </td></tr><tr><th id="ix-handler-ondragstart"> <code title="">ondragstart</code>
                   37480:      </th><td> <a href="#handler-ondragstart" title="handler-ondragstart">HTML elements</a>
                   37481:      </td><td> <code title="event-dragstart"><a href="#event-dragstart">dragstart</a></code> event handler
                   37482:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37483: 
                   37484:     </td></tr><tr><th id="ix-handler-ondrop"> <code title="">ondrop</code>
                   37485:      </th><td> <a href="#handler-ondrop" title="handler-ondrop">HTML elements</a>
                   37486:      </td><td> <code title="event-drop"><a href="#event-drop">drop</a></code> event handler
                   37487:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37488: 
                   37489:     </td></tr><tr><th id="ix-handler-ondurationchange"> <code title="">ondurationchange</code>
                   37490:      </th><td> <a href="#handler-ondurationchange" title="handler-ondurationchange">HTML elements</a>
                   37491:      </td><td> <code title="event-media-durationchange"><a href="media-elements.html#event-media-durationchange">durationchange</a></code> event handler
                   37492:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37493: 
                   37494:     </td></tr><tr><th id="ix-handler-onemptied"> <code title="">onemptied</code>
                   37495:      </th><td> <a href="#handler-onemptied" title="handler-onemptied">HTML elements</a>
                   37496:      </td><td> <code title="event-media-emptied"><a href="media-elements.html#event-media-emptied">emptied</a></code> event handler
                   37497:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37498: 
                   37499:     </td></tr><tr><th id="ix-handler-onended"> <code title="">onended</code>
                   37500:      </th><td> <a href="#handler-onended" title="handler-onended">HTML elements</a>
                   37501:      </td><td> <code title="event-media-ended"><a href="media-elements.html#event-media-ended">ended</a></code> event handler
                   37502:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37503: 
                   37504:     </td></tr><tr><th id="ix-handler-window-onerror"> <code title="">onerror</code>
                   37505:      </th><td> <code title="handler-window-onerror"><a href="#handler-window-onerror">body</a></code>
                   37506:      </td><td> <code title="event-error">error</code> event handler for <code><a href="#window">Window</a></code> object, and handler for <a href="#runtime-script-errors">script error notifications</a>
                   37507:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37508: 
                   37509:     </td></tr><tr><th id="ix-handler-onerror"> <code title="">onerror</code>
                   37510:      </th><td> <a href="#handler-onerror" title="handler-onerror">HTML elements</a>
                   37511:      </td><td> <code title="event-error">error</code> event handler
                   37512:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37513: 
                   37514:     </td></tr><tr><th id="ix-handler-window-onfocus"> <code title="">onfocus</code>
                   37515:      </th><td> <code title="handler-window-onfocus"><a href="#handler-window-onfocus">body</a></code>
                   37516:      </td><td> <code title="event-focus">focus</code> event handler for <code><a href="#window">Window</a></code> object
                   37517:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37518: 
                   37519:     </td></tr><tr><th id="ix-handler-onfocus"> <code title="">onfocus</code>
                   37520:      </th><td> <a href="#handler-onfocus" title="handler-onfocus">HTML elements</a>
                   37521:      </td><td> <code title="event-focus">focus</code> event handler
                   37522:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37523: 
                   37524:     </td></tr><tr><th id="ix-handler-window-onhashchange"> <code title="">onhashchange</code>
                   37525:      </th><td> <code title="handler-window-onhashchange"><a href="#handler-window-onhashchange">body</a></code>
                   37526:      </td><td> <code title="event-hashchange"><a href="#event-hashchange">hashchange</a></code> event handler for <code><a href="#window">Window</a></code> object
                   37527:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37528: 
                   37529:     </td></tr><tr><th id="ix-handler-oninput"> <code title="">oninput</code>
                   37530:      </th><td> <a href="#handler-oninput" title="handler-oninput">HTML elements</a>
                   37531:      </td><td> <code title="event-input">input</code> event handler
                   37532:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37533: 
                   37534:     </td></tr><tr><th id="ix-handler-oninvalid"> <code title="">oninvalid</code>
                   37535:      </th><td> <a href="#handler-oninvalid" title="handler-oninvalid">HTML elements</a>
                   37536:      </td><td> <code title="event-invalid">invalid</code> event handler
                   37537:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37538: 
                   37539:     </td></tr><tr><th id="ix-handler-onkeydown"> <code title="">onkeydown</code>
                   37540:      </th><td> <a href="#handler-onkeydown" title="handler-onkeydown">HTML elements</a>
                   37541:      </td><td> <code title="event-keydown">keydown</code> event handler
                   37542:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37543: 
                   37544:     </td></tr><tr><th id="ix-handler-onkeypress"> <code title="">onkeypress</code>
                   37545:      </th><td> <a href="#handler-onkeypress" title="handler-onkeypress">HTML elements</a>
                   37546:      </td><td> <code title="event-keypress">keypress</code> event handler
                   37547:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37548: 
                   37549:     </td></tr><tr><th id="ix-handler-onkeyup"> <code title="">onkeyup</code>
                   37550:      </th><td> <a href="#handler-onkeyup" title="handler-onkeyup">HTML elements</a>
                   37551:      </td><td> <code title="event-keyup">keyup</code> event handler
                   37552:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37553: 
                   37554:     </td></tr><tr><th id="ix-handler-window-onload"> <code title="">onload</code>
                   37555:      </th><td> <code title="handler-window-onload"><a href="#handler-window-onload">body</a></code>
                   37556:      </td><td> <code title="event-load">load</code> event handler for <code><a href="#window">Window</a></code> object
                   37557:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37558: 
                   37559:     </td></tr><tr><th id="ix-handler-onload"> <code title="">onload</code>
                   37560:      </th><td> <a href="#handler-onload" title="handler-onload">HTML elements</a>
                   37561:      </td><td> <code title="event-load">load</code> event handler
                   37562:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37563: 
                   37564:     </td></tr><tr><th id="ix-handler-onloadeddata"> <code title="">onloadeddata</code>
                   37565:      </th><td> <a href="#handler-onloadeddata" title="handler-onloadeddata">HTML elements</a>
                   37566:      </td><td> <code title="event-media-loadeddata"><a href="media-elements.html#event-media-loadeddata">loadeddata</a></code> event handler
                   37567:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37568: 
                   37569:     </td></tr><tr><th id="ix-handler-onloadedmetadata"> <code title="">onloadedmetadata</code>
                   37570:      </th><td> <a href="#handler-onloadedmetadata" title="handler-onloadedmetadata">HTML elements</a>
                   37571:      </td><td> <code title="event-media-loadedmetadata"><a href="media-elements.html#event-media-loadedmetadata">loadedmetadata</a></code> event handler
                   37572:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37573: 
                   37574:     </td></tr><tr><th id="ix-handler-onloadstart"> <code title="">onloadstart</code>
                   37575:      </th><td> <a href="#handler-onloadstart" title="handler-onloadstart">HTML elements</a>
                   37576:      </td><td> <code title="event-media-loadstart"><a href="media-elements.html#event-media-loadstart">loadstart</a></code> event handler
                   37577:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37578: 
                   37579:     </td></tr><tr><th id="ix-handler-window-onmessage"> <code title="">onmessage</code>
                   37580:      </th><td> <code title="handler-window-onmessage"><a href="#handler-window-onmessage">body</a></code>
                   37581:      </td><td> <code title="event-message">message</code> event handler for <code><a href="#window">Window</a></code> object
                   37582:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37583: 
                   37584:     </td></tr><tr><th id="ix-handler-onmousedown"> <code title="">onmousedown</code>
                   37585:      </th><td> <a href="#handler-onmousedown" title="handler-onmousedown">HTML elements</a>
                   37586:      </td><td> <code title="event-mousedown">mousedown</code> event handler
                   37587:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37588: 
                   37589:     </td></tr><tr><th id="ix-handler-onmousemove"> <code title="">onmousemove</code>
                   37590:      </th><td> <a href="#handler-onmousemove" title="handler-onmousemove">HTML elements</a>
                   37591:      </td><td> <code title="event-mousemove">mousemove</code> event handler
                   37592:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37593: 
                   37594:     </td></tr><tr><th id="ix-handler-onmouseout"> <code title="">onmouseout</code>
                   37595:      </th><td> <a href="#handler-onmouseout" title="handler-onmouseout">HTML elements</a>
                   37596:      </td><td> <code title="event-mouseout">mouseout</code> event handler
                   37597:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37598: 
                   37599:     </td></tr><tr><th id="ix-handler-onmouseover"> <code title="">onmouseover</code>
                   37600:      </th><td> <a href="#handler-onmouseover" title="handler-onmouseover">HTML elements</a>
                   37601:      </td><td> <code title="event-mouseover">mouseover</code> event handler
                   37602:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37603: 
                   37604:     </td></tr><tr><th id="ix-handler-onmouseup"> <code title="">onmouseup</code>
                   37605:      </th><td> <a href="#handler-onmouseup" title="handler-onmouseup">HTML elements</a>
                   37606:      </td><td> <code title="event-mouseup">mouseup</code> event handler
                   37607:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37608: 
                   37609:     </td></tr><tr><th id="ix-handler-onmousewheel"> <code title="">onmousewheel</code>
                   37610:      </th><td> <a href="#handler-onmousewheel" title="handler-onmousewheel">HTML elements</a>
                   37611:      </td><td> <code title="event-mousewheel">mousewheel</code> event handler
                   37612:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37613: 
                   37614:     </td></tr><tr><th id="ix-handler-window-onoffline"> <code title="">onoffline</code>
                   37615:      </th><td> <code title="handler-window-onoffline"><a href="#handler-window-onoffline">body</a></code>
                   37616:      </td><td> <code title="event-offline"><a href="#event-offline">offline</a></code> event handler for <code><a href="#window">Window</a></code> object
                   37617:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37618: 
                   37619:     </td></tr><tr><th id="ix-handler-window-ononline"> <code title="">ononline</code>
                   37620:      </th><td> <code title="handler-window-ononline"><a href="#handler-window-ononline">body</a></code>
                   37621:      </td><td> <code title="event-online"><a href="#event-online">online</a></code> event handler for <code><a href="#window">Window</a></code> object
                   37622:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37623: 
                   37624:     </td></tr><tr><th id="ix-handler-window-onpagehide"> <code title="">onpagehide</code>
                   37625:      </th><td> <code title="handler-window-onpagehide"><a href="#handler-window-onpagehide">body</a></code>
                   37626:      </td><td> <code title="event-pagehide"><a href="#event-pagehide">pagehide</a></code> event handler for <code><a href="#window">Window</a></code> object
                   37627:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37628: 
                   37629:     </td></tr><tr><th id="ix-handler-window-onpageshow"> <code title="">onpageshow</code>
                   37630:      </th><td> <code title="handler-window-onpageshow"><a href="#handler-window-onpageshow">body</a></code>
                   37631:      </td><td> <code title="event-pageshow"><a href="#event-pageshow">pageshow</a></code> event handler for <code><a href="#window">Window</a></code> object
                   37632:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37633: 
                   37634:     </td></tr><tr><th id="ix-handler-onpause"> <code title="">onpause</code>
                   37635:      </th><td> <a href="#handler-onpause" title="handler-onpause">HTML elements</a>
                   37636:      </td><td> <code title="event-media-pause"><a href="media-elements.html#event-media-pause">pause</a></code> event handler
                   37637:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37638: 
                   37639:     </td></tr><tr><th id="ix-handler-onplay"> <code title="">onplay</code>
                   37640:      </th><td> <a href="#handler-onplay" title="handler-onplay">HTML elements</a>
                   37641:      </td><td> <code title="event-media-play"><a href="media-elements.html#event-media-play">play</a></code> event handler
                   37642:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37643: 
                   37644:     </td></tr><tr><th id="ix-handler-onplaying"> <code title="">onplaying</code>
                   37645:      </th><td> <a href="#handler-onplaying" title="handler-onplaying">HTML elements</a>
                   37646:      </td><td> <code title="event-media-playing"><a href="media-elements.html#event-media-playing">playing</a></code> event handler
                   37647:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37648: 
                   37649:     </td></tr><tr><th id="ix-handler-window-onpopstate"> <code title="">onpopstate</code>
                   37650:      </th><td> <code title="handler-window-onpopstate"><a href="#handler-window-onpopstate">body</a></code>
                   37651:      </td><td> <code title="event-popstate"><a href="#event-popstate">popstate</a></code> event handler for <code><a href="#window">Window</a></code> object
                   37652:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37653: 
                   37654:     </td></tr><tr><th id="ix-handler-onprogress"> <code title="">onprogress</code>
                   37655:      </th><td> <a href="#handler-onprogress" title="handler-onprogress">HTML elements</a>
                   37656:      </td><td> <code title="event-media-progress"><a href="media-elements.html#event-media-progress">progress</a></code> event handler
                   37657:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37658: 
                   37659:     </td></tr><tr><th id="ix-handler-onratechange"> <code title="">onratechange</code>
                   37660:      </th><td> <a href="#handler-onratechange" title="handler-onratechange">HTML elements</a>
                   37661:      </td><td> <code title="event-media-ratechange"><a href="media-elements.html#event-media-ratechange">ratechange</a></code> event handler
                   37662:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37663: 
                   37664:     </td></tr><tr><th id="ix-handler-onreset"> <code title="">onreset</code>
                   37665:      </th><td> <a href="#handler-onreset" title="handler-onreset">HTML elements</a>
                   37666:      </td><td> <code title="event-reset">reset</code> event handler
                   37667:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37668: 
                   37669:     </td></tr><tr><th id="ix-handler-window-onresize"> <code title="">onresize</code>
                   37670:      </th><td> <code title="handler-window-onresize"><a href="#handler-window-onresize">body</a></code>
                   37671:      </td><td> <code title="event-resize">resize</code> event handler for <code><a href="#window">Window</a></code> object
                   37672:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37673: 
                   37674:     </td></tr><tr><th id="ix-handler-window-onscroll"> <code title="">onscroll</code>
                   37675:      </th><td> <code title="handler-window-onscroll"><a href="#handler-window-onscroll">body</a></code>
                   37676:      </td><td> <code title="event-scroll">scroll</code> event handler for <code><a href="#window">Window</a></code> object
                   37677:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37678: 
                   37679:     </td></tr><tr><th id="ix-handler-onscroll"> <code title="">onscroll</code>
                   37680:      </th><td> <a href="#handler-onscroll" title="handler-onscroll">HTML elements</a>
                   37681:      </td><td> <code title="event-scroll">scroll</code> event handler
                   37682:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37683: 
                   37684:     </td></tr><tr><th id="ix-handler-onseeked"> <code title="">onseeked</code>
                   37685:      </th><td> <a href="#handler-onseeked" title="handler-onseeked">HTML elements</a>
                   37686:      </td><td> <code title="event-media-seeked"><a href="media-elements.html#event-media-seeked">seeked</a></code> event handler
                   37687:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37688: 
                   37689:     </td></tr><tr><th id="ix-handler-onseeking"> <code title="">onseeking</code>
                   37690:      </th><td> <a href="#handler-onseeking" title="handler-onseeking">HTML elements</a>
                   37691:      </td><td> <code title="event-media-seeking"><a href="media-elements.html#event-media-seeking">seeking</a></code> event handler
                   37692:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37693: 
                   37694:     </td></tr><tr><th id="ix-handler-onselect"> <code title="">onselect</code>
                   37695:      </th><td> <a href="#handler-onselect" title="handler-onselect">HTML elements</a>
                   37696:      </td><td> <code title="event-select">select</code> event handler
                   37697:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37698: 
                   37699:     </td></tr><tr><th id="ix-handler-onshow"> <code title="">onshow</code>
                   37700:      </th><td> <a href="#handler-onshow" title="handler-onshow">HTML elements</a>
                   37701:      </td><td> <code title="event-show">show</code> event handler
                   37702:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37703: 
                   37704:     </td></tr><tr><th id="ix-handler-onstalled"> <code title="">onstalled</code>
                   37705:      </th><td> <a href="#handler-onstalled" title="handler-onstalled">HTML elements</a>
                   37706:      </td><td> <code title="event-media-stalled"><a href="media-elements.html#event-media-stalled">stalled</a></code> event handler
                   37707:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37708: 
                   37709:     </td></tr><tr><th id="ix-handler-window-onstorage"> <code title="">onstorage</code>
                   37710:      </th><td> <code title="handler-window-onstorage"><a href="#handler-window-onstorage">body</a></code>
                   37711:      </td><td> <code title="event-storage">storage</code> event handler for <code><a href="#window">Window</a></code> object
                   37712:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37713: 
                   37714:     </td></tr><tr><th id="ix-handler-onsubmit"> <code title="">onsubmit</code>
                   37715:      </th><td> <a href="#handler-onsubmit" title="handler-onsubmit">HTML elements</a>
                   37716:      </td><td> <code title="event-submit">submit</code> event handler
                   37717:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37718: 
                   37719:     </td></tr><tr><th id="ix-handler-onsuspend"> <code title="">onsuspend</code>
                   37720:      </th><td> <a href="#handler-onsuspend" title="handler-onsuspend">HTML elements</a>
                   37721:      </td><td> <code title="event-media-suspend"><a href="media-elements.html#event-media-suspend">suspend</a></code> event handler
                   37722:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37723: 
                   37724:     </td></tr><tr><th id="ix-handler-ontimeupdate"> <code title="">ontimeupdate</code>
                   37725:      </th><td> <a href="#handler-ontimeupdate" title="handler-ontimeupdate">HTML elements</a>
                   37726:      </td><td> <code title="event-media-timeupdate"><a href="media-elements.html#event-media-timeupdate">timeupdate</a></code> event handler
                   37727:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37728: 
                   37729:     </td></tr><tr><th id="ix-handler-window-onunload"> <code title="">onunload</code>
                   37730:      </th><td> <code title="handler-window-onunload"><a href="#handler-window-onunload">body</a></code>
                   37731:      </td><td> <code title="event-unload">unload</code> event handler for <code><a href="#window">Window</a></code> object
                   37732:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37733: 
                   37734:     </td></tr><tr><th id="ix-handler-onvolumechange"> <code title="">onvolumechange</code>
                   37735:      </th><td> <a href="#handler-onvolumechange" title="handler-onvolumechange">HTML elements</a>
                   37736:      </td><td> <code title="event-media-volumechange"><a href="media-elements.html#event-media-volumechange">volumechange</a></code> event handler
                   37737:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37738: 
                   37739:     </td></tr><tr><th id="ix-handler-onwaiting"> <code title="">onwaiting</code>
                   37740:      </th><td> <a href="#handler-onwaiting" title="handler-onwaiting">HTML elements</a>
                   37741:      </td><td> <code title="event-media-waiting"><a href="media-elements.html#event-media-waiting">waiting</a></code> event handler
                   37742:      </td><td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
                   37743: 
                   37744:   </td></tr></tbody></table><!-- v2 for completeness: (also search for REFLECTIDL)
                   37745:   <h3 class="no-num">Reflecting IDL attributes</h3>
                   37746: 
                   37747:   <p><i>This section is non-normative.</i></p>
                   37748:   <table>
                   37749:    <caption>List of <dfn>reflecting IDL attributes</dfn></caption>
                   37750:    <thead>
                   37751:     <tr>
                   37752:      <th> Interface
                   37753:      <th> Element(s)
                   37754:      <th> IDL attribute
                   37755:      <th> Reflects...
                   37756:    <tbody>
                   37757:     ...
                   37758:     <tr>
                   37759:      <td> <code>HTMLElement</code>
                   37760:      <td> <span>HTML elements</span>
                   37761:      <td> <code title="dom-contextMenu">contextMenu</code>
                   37762:      <td> <code title="attr-contextmenu">contextmenu</code>
                   37763:     <tr>
                   37764:      <td> <code>HTMLOptionElement</code>
                   37765:      <td> <code>option</code>
                   37766:      <td> <code title="dom-option-text">text</code>
                   37767:      <td> <code>textContent</code>
                   37768:   </table>
                   37769:   ( include option.text; textarea.defaultValue, and other attributes that "reflect" the element's textContent )
                   37770: --><h3 class="no-num" id="element-interfaces">Element Interfaces</h3>
                   37771: 
                   37772:   <p><i>This section is non-normative.</i></p>
                   37773:   <table><caption>List of interfaces for elements</caption>
                   37774:    <thead><tr><th> Element(s)
                   37775:      </th><th> Interface(s)
                   37776:    </th></tr></thead><tbody><tr><td> <code><a href="the-a-element.html#the-a-element">a</a></code>
                   37777:      </td><td> <code><a href="the-a-element.html#htmlanchorelement">HTMLAnchorElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37778: 
                   37779:     </td></tr><tr><td> <code><a href="the-abbr-element.html#the-abbr-element">abbr</a></code>
                   37780:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37781: 
                   37782:     </td></tr><tr><td> <code><a href="the-address-element.html#the-address-element">address</a></code>
                   37783:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37784: 
                   37785:     </td></tr><tr><td> <code><a href="the-area-element.html#the-area-element">area</a></code>
                   37786:      </td><td> <code><a href="the-area-element.html#htmlareaelement">HTMLAreaElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37787: 
                   37788:     </td></tr><tr><td> <code><a href="the-article-element.html#the-article-element">article</a></code>
                   37789:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37790: 
                   37791:     </td></tr><tr><td> <code><a href="the-aside-element.html#the-aside-element">aside</a></code>
                   37792:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37793: 
                   37794:     </td></tr><tr><td> <code><a href="the-audio-element.html#the-audio-element">audio</a></code>
                   37795:      </td><td> <code><a href="the-audio-element.html#htmlaudioelement">HTMLAudioElement</a></code> : <code><a href="media-elements.html#htmlmediaelement">HTMLMediaElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37796: 
                   37797:     </td></tr><tr><td> <code><a href="the-b-element.html#the-b-element">b</a></code>
                   37798:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37799: 
                   37800:     </td></tr><tr><td> <code><a href="the-base-element.html#the-base-element">base</a></code>
                   37801:      </td><td> <code><a href="the-base-element.html#htmlbaseelement">HTMLBaseElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37802: 
                   37803:     </td></tr><tr><td> <code><a href="the-bdi-element.html#the-bdi-element">bdi</a></code>
                   37804:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37805: 
                   37806:     </td></tr><tr><td> <code><a href="the-bdo-element.html#the-bdo-element">bdo</a></code>
                   37807:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37808: 
                   37809:     </td></tr><tr><td> <code><a href="the-blockquote-element.html#the-blockquote-element">blockquote</a></code>
                   37810:      </td><td> <code><a href="the-blockquote-element.html#htmlquoteelement">HTMLQuoteElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37811: 
                   37812:     </td></tr><tr><td> <code><a href="the-body-element.html#the-body-element">body</a></code>
                   37813:      </td><td> <code><a href="the-body-element.html#htmlbodyelement">HTMLBodyElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37814: 
                   37815:     </td></tr><tr><td> <code><a href="the-br-element.html#the-br-element">br</a></code>
                   37816:      </td><td> <code><a href="the-br-element.html#htmlbrelement">HTMLBRElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37817: 
                   37818:     </td></tr><tr><td> <code><a href="the-button-element.html#the-button-element">button</a></code>
                   37819:      </td><td> <code><a href="the-button-element.html#htmlbuttonelement">HTMLButtonElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37820: 
                   37821:     </td></tr><tr><td> <code><a href="the-canvas-element.html#the-canvas-element">canvas</a></code>
                   37822:      </td><td> <code><a href="the-canvas-element.html#htmlcanvaselement">HTMLCanvasElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37823: 
                   37824:     </td></tr><tr><td> <code><a href="the-caption-element.html#the-caption-element">caption</a></code>
                   37825:      </td><td> <code><a href="the-caption-element.html#htmltablecaptionelement">HTMLTableCaptionElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37826: 
                   37827:     </td></tr><tr><td> <code><a href="the-cite-element.html#the-cite-element">cite</a></code>
                   37828:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37829: 
                   37830:     </td></tr><tr><td> <code><a href="the-code-element.html#the-code-element">code</a></code>
                   37831:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37832: 
                   37833:     </td></tr><tr><td> <code><a href="the-col-element.html#the-col-element">col</a></code>
                   37834:      </td><td> <code><a href="the-colgroup-element.html#htmltablecolelement">HTMLTableColElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37835: 
                   37836:     </td></tr><tr><td> <code><a href="the-colgroup-element.html#the-colgroup-element">colgroup</a></code>
                   37837:      </td><td> <code><a href="the-colgroup-element.html#htmltablecolelement">HTMLTableColElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37838: 
                   37839:     </td></tr><tr><td> <code><a href="#the-command-element">command</a></code>
                   37840:      </td><td> <code><a href="#htmlcommandelement">HTMLCommandElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37841: 
1.192     sruby    37842:     </td></tr><tr><td> <code>data</code>
                   37843:      </td><td> <code>HTMLDataElement</code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
1.190     sruby    37844: 
                   37845:     </td></tr><tr><td> <code><a href="the-datalist-element.html#the-datalist-element">datalist</a></code>
                   37846:      </td><td> <code><a href="the-datalist-element.html#htmldatalistelement">HTMLDataListElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37847: 
                   37848:     </td></tr><tr><td> <code><a href="the-dd-element.html#the-dd-element">dd</a></code>
                   37849:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37850: 
                   37851:     </td></tr><tr><td> <code><a href="the-del-element.html#the-del-element">del</a></code>
                   37852:      </td><td> <code><a href="attributes-common-to-ins-and-del-elements.html#htmlmodelement">HTMLModElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37853: 
                   37854:     </td></tr><tr><td> <code><a href="#the-details-element">details</a></code>
                   37855:      </td><td> <code><a href="#htmldetailselement">HTMLDetailsElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37856: 
                   37857:     </td></tr><tr><td> <code><a href="the-dfn-element.html#the-dfn-element">dfn</a></code>
                   37858:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37859: 
                   37860:     </td></tr><tr><td> <code><a href="#the-dialog-element">dialog</a></code>
                   37861:      </td><td> <code><a href="#htmldialogelement">HTMLDialogElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37862: 
                   37863:     </td></tr><tr><td> <code><a href="the-div-element.html#the-div-element">div</a></code>
                   37864:      </td><td> <code><a href="the-div-element.html#htmldivelement">HTMLDivElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37865: 
                   37866:     </td></tr><tr><td> <code><a href="the-dl-element.html#the-dl-element">dl</a></code>
                   37867:      </td><td> <code><a href="the-dl-element.html#htmldlistelement">HTMLDListElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37868: 
                   37869:     </td></tr><tr><td> <code><a href="the-dt-element.html#the-dt-element">dt</a></code>
                   37870:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37871: 
                   37872:     </td></tr><tr><td> <code><a href="the-em-element.html#the-em-element">em</a></code>
                   37873:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37874: 
                   37875:     </td></tr><tr><td> <code><a href="the-embed-element.html#the-embed-element">embed</a></code>
                   37876:      </td><td> <code><a href="the-embed-element.html#htmlembedelement">HTMLEmbedElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37877: 
                   37878:     </td></tr><tr><td> <code><a href="the-fieldset-element.html#the-fieldset-element">fieldset</a></code>
                   37879:      </td><td> <code><a href="the-fieldset-element.html#htmlfieldsetelement">HTMLFieldSetElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37880: 
                   37881:     </td></tr><tr><td> <code><a href="the-figcaption-element.html#the-figcaption-element">figcaption</a></code>
                   37882:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37883: 
                   37884:     </td></tr><tr><td> <code><a href="the-figure-element.html#the-figure-element">figure</a></code>
                   37885:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37886: 
                   37887:     </td></tr><tr><td> <code><a href="the-footer-element.html#the-footer-element">footer</a></code>
                   37888:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37889: 
                   37890:     </td></tr><tr><td> <code><a href="the-form-element.html#the-form-element">form</a></code>
                   37891:      </td><td> <code><a href="the-form-element.html#htmlformelement">HTMLFormElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37892: 
                   37893:     </td></tr><tr><td> <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h1</a></code>
                   37894:      </td><td> <code><a href="the-aside-element.html#htmlheadingelement">HTMLHeadingElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37895: 
                   37896:     </td></tr><tr><td> <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h2</a></code>
                   37897:      </td><td> <code><a href="the-aside-element.html#htmlheadingelement">HTMLHeadingElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37898: 
                   37899:     </td></tr><tr><td> <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h3</a></code>
                   37900:      </td><td> <code><a href="the-aside-element.html#htmlheadingelement">HTMLHeadingElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37901: 
                   37902:     </td></tr><tr><td> <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h4</a></code>
                   37903:      </td><td> <code><a href="the-aside-element.html#htmlheadingelement">HTMLHeadingElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37904: 
                   37905:     </td></tr><tr><td> <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h5</a></code>
                   37906:      </td><td> <code><a href="the-aside-element.html#htmlheadingelement">HTMLHeadingElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37907: 
                   37908:     </td></tr><tr><td> <code><a href="the-aside-element.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h6</a></code>
                   37909:      </td><td> <code><a href="the-aside-element.html#htmlheadingelement">HTMLHeadingElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37910: 
                   37911:     </td></tr><tr><td> <code><a href="the-head-element.html#the-head-element">head</a></code>
                   37912:      </td><td> <code><a href="the-head-element.html#htmlheadelement">HTMLHeadElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37913: 
                   37914:     </td></tr><tr><td> <code><a href="the-header-element.html#the-header-element">header</a></code>
                   37915:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37916: 
                   37917:     </td></tr><tr><td> <code><a href="the-hgroup-element.html#the-hgroup-element">hgroup</a></code>
                   37918:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37919: 
                   37920:     </td></tr><tr><td> <code><a href="the-hr-element.html#the-hr-element">hr</a></code>
                   37921:      </td><td> <code><a href="the-hr-element.html#htmlhrelement">HTMLHRElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37922: 
                   37923:     </td></tr><tr><td> <code><a href="the-html-element.html#the-html-element">html</a></code>
                   37924:      </td><td> <code><a href="the-html-element.html#htmlhtmlelement">HTMLHtmlElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37925: 
                   37926:     </td></tr><tr><td> <code><a href="the-i-element.html#the-i-element">i</a></code>
                   37927:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37928: 
                   37929:     </td></tr><tr><td> <code><a href="the-iframe-element.html#the-iframe-element">iframe</a></code>
                   37930:      </td><td> <code><a href="the-iframe-element.html#htmliframeelement">HTMLIFrameElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37931: 
                   37932:     </td></tr><tr><td> <code><a href="the-img-element.html#the-img-element">img</a></code>
                   37933:      </td><td> <code><a href="the-img-element.html#htmlimageelement">HTMLImageElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37934: 
                   37935:     </td></tr><tr><td> <code><a href="the-input-element.html#the-input-element">input</a></code>
                   37936:      </td><td> <code><a href="the-input-element.html#htmlinputelement">HTMLInputElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37937: 
                   37938:     </td></tr><tr><td> <code><a href="the-ins-element.html#the-ins-element">ins</a></code>
                   37939:      </td><td> <code><a href="attributes-common-to-ins-and-del-elements.html#htmlmodelement">HTMLModElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37940: 
                   37941:     </td></tr><tr><td> <code><a href="the-kbd-element.html#the-kbd-element">kbd</a></code>
                   37942:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37943: 
                   37944:     </td></tr><tr><td> <code><a href="the-keygen-element.html#the-keygen-element">keygen</a></code>
                   37945:      </td><td> <code><a href="the-keygen-element.html#htmlkeygenelement">HTMLKeygenElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37946: 
                   37947:     </td></tr><tr><td> <code><a href="the-label-element.html#the-label-element">label</a></code>
                   37948:      </td><td> <code><a href="the-label-element.html#htmllabelelement">HTMLLabelElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37949: 
                   37950:     </td></tr><tr><td> <code><a href="the-legend-element.html#the-legend-element">legend</a></code>
                   37951:      </td><td> <code><a href="the-legend-element.html#htmllegendelement">HTMLLegendElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37952: 
                   37953:     </td></tr><tr><td> <code><a href="the-li-element.html#the-li-element">li</a></code>
                   37954:      </td><td> <code><a href="the-li-element.html#htmllielement">HTMLLIElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37955: 
                   37956:     </td></tr><tr><td> <code><a href="the-link-element.html#the-link-element">link</a></code>
                   37957:      </td><td> <code><a href="the-link-element.html#htmllinkelement">HTMLLinkElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37958: 
                   37959:     </td></tr><tr><td> <code><a href="the-map-element.html#the-map-element">map</a></code>
                   37960:      </td><td> <code><a href="the-map-element.html#htmlmapelement">HTMLMapElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37961: 
                   37962:     </td></tr><tr><td> <code><a href="the-mark-element.html#the-mark-element">mark</a></code>
                   37963:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37964: 
                   37965:     </td></tr><tr><td> <code><a href="#the-menu-element">menu</a></code>
                   37966:      </td><td> <code><a href="#htmlmenuelement">HTMLMenuElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37967: 
                   37968:     </td></tr><tr><td> <code><a href="the-meta-element.html#the-meta-element">meta</a></code>
                   37969:      </td><td> <code><a href="the-meta-element.html#htmlmetaelement">HTMLMetaElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37970: 
                   37971:     </td></tr><tr><td> <code><a href="the-meter-element.html#the-meter-element">meter</a></code>
                   37972:      </td><td> <code><a href="the-meter-element.html#htmlmeterelement">HTMLMeterElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37973: 
                   37974:     </td></tr><tr><td> <code><a href="the-nav-element.html#the-nav-element">nav</a></code>
                   37975:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37976: 
                   37977:     </td></tr><tr><td> <code><a href="the-noscript-element.html#the-noscript-element">noscript</a></code>
                   37978:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37979: 
                   37980:     </td></tr><tr><td> <code><a href="the-object-element.html#the-object-element">object</a></code>
                   37981:      </td><td> <code><a href="the-object-element.html#htmlobjectelement">HTMLObjectElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37982: 
                   37983:     </td></tr><tr><td> <code><a href="the-ol-element.html#the-ol-element">ol</a></code>
                   37984:      </td><td> <code><a href="the-ol-element.html#htmlolistelement">HTMLOListElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37985: 
                   37986:     </td></tr><tr><td> <code><a href="the-optgroup-element.html#the-optgroup-element">optgroup</a></code>
                   37987:      </td><td> <code><a href="the-optgroup-element.html#htmloptgroupelement">HTMLOptGroupElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37988: 
                   37989:     </td></tr><tr><td> <code><a href="the-option-element.html#the-option-element">option</a></code>
                   37990:      </td><td> <code><a href="the-option-element.html#htmloptionelement">HTMLOptionElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37991: 
                   37992:     </td></tr><tr><td> <code><a href="the-output-element.html#the-output-element">output</a></code>
                   37993:      </td><td> <code><a href="the-output-element.html#htmloutputelement">HTMLOutputElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37994: 
                   37995:     </td></tr><tr><td> <code><a href="the-p-element.html#the-p-element">p</a></code>
                   37996:      </td><td> <code><a href="the-p-element.html#htmlparagraphelement">HTMLParagraphElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   37997: 
                   37998:     </td></tr><tr><td> <code><a href="the-param-element.html#the-param-element">param</a></code>
                   37999:      </td><td> <code><a href="the-param-element.html#htmlparamelement">HTMLParamElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38000: 
                   38001:     </td></tr><tr><td> <code><a href="the-pre-element.html#the-pre-element">pre</a></code>
                   38002:      </td><td> <code><a href="the-pre-element.html#htmlpreelement">HTMLPreElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38003: 
                   38004:     </td></tr><tr><td> <code><a href="the-progress-element.html#the-progress-element">progress</a></code>
                   38005:      </td><td> <code><a href="the-progress-element.html#htmlprogresselement">HTMLProgressElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38006: 
                   38007:     </td></tr><tr><td> <code><a href="the-q-element.html#the-q-element">q</a></code>
                   38008:      </td><td> <code><a href="the-blockquote-element.html#htmlquoteelement">HTMLQuoteElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38009: 
                   38010:     </td></tr><tr><td> <code><a href="the-rp-element.html#the-rp-element">rp</a></code>
                   38011:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38012: 
                   38013:     </td></tr><tr><td> <code><a href="the-rt-element.html#the-rt-element">rt</a></code>
                   38014:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38015: 
                   38016:     </td></tr><tr><td> <code><a href="the-ruby-element.html#the-ruby-element">ruby</a></code>
                   38017:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38018: 
                   38019:     </td></tr><tr><td> <code><a href="the-s-element.html#the-s-element">s</a></code>
                   38020:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38021: 
                   38022:     </td></tr><tr><td> <code><a href="the-samp-element.html#the-samp-element">samp</a></code>
                   38023:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38024: 
                   38025:     </td></tr><tr><td> <code><a href="the-script-element.html#the-script-element">script</a></code>
                   38026:      </td><td> <code><a href="the-script-element.html#htmlscriptelement">HTMLScriptElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38027: 
                   38028:     </td></tr><tr><td> <code><a href="the-section-element.html#the-section-element">section</a></code>
                   38029:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38030: 
                   38031:     </td></tr><tr><td> <code><a href="the-select-element.html#the-select-element">select</a></code>
                   38032:      </td><td> <code><a href="the-select-element.html#htmlselectelement">HTMLSelectElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38033: 
                   38034:     </td></tr><tr><td> <code><a href="the-small-element.html#the-small-element">small</a></code>
                   38035:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38036: 
                   38037:     </td></tr><tr><td> <code><a href="the-source-element.html#the-source-element">source</a></code>
                   38038:      </td><td> <code><a href="the-source-element.html#htmlsourceelement">HTMLSourceElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38039: 
                   38040:     </td></tr><tr><td> <code><a href="the-span-element.html#the-span-element">span</a></code>
                   38041:      </td><td> <code><a href="the-span-element.html#htmlspanelement">HTMLSpanElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38042: 
                   38043:     </td></tr><tr><td> <code><a href="the-strong-element.html#the-strong-element">strong</a></code>
                   38044:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38045: 
                   38046:     </td></tr><tr><td> <code><a href="the-style-element.html#the-style-element">style</a></code>
                   38047:      </td><td> <code><a href="the-style-element.html#htmlstyleelement">HTMLStyleElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38048: 
                   38049:     </td></tr><tr><td> <code><a href="the-sub-and-sup-elements.html#the-sub-and-sup-elements">sub</a></code>
                   38050:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38051: 
                   38052:     </td></tr><tr><td> <code><a href="#the-summary-element">summary</a></code>
                   38053:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38054: 
                   38055:     </td></tr><tr><td> <code><a href="the-sub-and-sup-elements.html#the-sub-and-sup-elements">sup</a></code>
                   38056:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38057: 
                   38058:     </td></tr><tr><td> <code><a href="the-table-element.html#the-table-element">table</a></code>
                   38059:      </td><td> <code><a href="the-table-element.html#htmltableelement">HTMLTableElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38060: 
                   38061:     </td></tr><tr><td> <code><a href="the-tbody-element.html#the-tbody-element">tbody</a></code>
                   38062:      </td><td> <code><a href="the-tbody-element.html#htmltablesectionelement">HTMLTableSectionElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38063: 
                   38064:     </td></tr><tr><td> <code><a href="the-td-element.html#the-td-element">td</a></code>
                   38065:      </td><td> <code><a href="the-td-element.html#htmltabledatacellelement">HTMLTableDataCellElement</a></code> : <code><a href="attributes-common-to-td-and-th-elements.html#htmltablecellelement">HTMLTableCellElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38066: 
                   38067:     </td></tr><tr><td> <code><a href="the-textarea-element.html#the-textarea-element">textarea</a></code>
                   38068:      </td><td> <code><a href="the-textarea-element.html#htmltextareaelement">HTMLTextAreaElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38069: 
                   38070:     </td></tr><tr><td> <code><a href="the-tfoot-element.html#the-tfoot-element">tfoot</a></code>
                   38071:      </td><td> <code><a href="the-tbody-element.html#htmltablesectionelement">HTMLTableSectionElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38072: 
                   38073:     </td></tr><tr><td> <code><a href="the-th-element.html#the-th-element">th</a></code>
                   38074:      </td><td> <code><a href="the-th-element.html#htmltableheadercellelement">HTMLTableHeaderCellElement</a></code> : <code><a href="attributes-common-to-td-and-th-elements.html#htmltablecellelement">HTMLTableCellElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38075: 
                   38076:     </td></tr><tr><td> <code><a href="the-thead-element.html#the-thead-element">thead</a></code>
                   38077:      </td><td> <code><a href="the-tbody-element.html#htmltablesectionelement">HTMLTableSectionElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38078: 
                   38079:     </td></tr><tr><td> <code><a href="the-time-element.html#the-time-element">time</a></code>
                   38080:      </td><td> <code><a href="the-time-element.html#htmltimeelement">HTMLTimeElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38081: 
                   38082:     </td></tr><tr><td> <code><a href="the-title-element.html#the-title-element">title</a></code>
                   38083:      </td><td> <code><a href="the-title-element.html#htmltitleelement">HTMLTitleElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38084: 
                   38085:     </td></tr><tr><td> <code><a href="the-tr-element.html#the-tr-element">tr</a></code>
                   38086:      </td><td> <code><a href="the-tr-element.html#htmltablerowelement">HTMLTableRowElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38087: 
                   38088:     </td></tr><tr><td> <code><a href="the-track-element.html#the-track-element">track</a></code>
                   38089:      </td><td> <code><a href="the-track-element.html#htmltrackelement">HTMLTrackElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38090: 
                   38091:     </td></tr><tr><td> <code><a href="the-u-element.html#the-u-element">u</a></code>
                   38092:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38093: 
                   38094:     </td></tr><tr><td> <code><a href="the-ul-element.html#the-ul-element">ul</a></code>
                   38095:      </td><td> <code><a href="the-ul-element.html#htmlulistelement">HTMLUListElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38096: 
                   38097:     </td></tr><tr><td> <code><a href="the-var-element.html#the-var-element">var</a></code>
                   38098:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38099: 
                   38100:     </td></tr><tr><td> <code><a href="the-video-element.html#the-video-element">video</a></code>
                   38101:      </td><td> <code><a href="the-video-element.html#htmlvideoelement">HTMLVideoElement</a></code> : <code><a href="media-elements.html#htmlmediaelement">HTMLMediaElement</a></code> : <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38102: 
                   38103:     </td></tr><tr><td> <code><a href="the-wbr-element.html#the-wbr-element">wbr</a></code>
                   38104:      </td><td> <code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38105: 
                   38106:   </td></tr></tbody></table><h3 class="no-num" id="all-interfaces">All Interfaces</h3>
                   38107: 
                   38108:   <p><i>This section is non-normative.</i></p>
1.192     sruby    38109:   <ul><li><code><a href="#applicationcache">ApplicationCache</a></code>
                   38110:  </li><li><code><a href="media-elements.html#audiotrack">AudioTrack</a></code>
                   38111:  </li><li><code><a href="media-elements.html#audiotracklist">AudioTrackList</a></code>
                   38112:  </li><li><code><a href="#barprop">BarProp</a></code>
                   38113:  </li><li><code><a href="#beforeunloadevent">BeforeUnloadEvent</a></code>
                   38114:  </li><li><code><a href="common-dom-interfaces.html#domstringmap-0">DOMStringMap</a></code>
                   38115:  </li><li><code><a href="#datatransfer">DataTransfer</a></code>
                   38116:  </li><li><code><a href="#datatransferitem">DataTransferItem</a></code>
                   38117:  </li><li><code><a href="#datatransferitemlist">DataTransferItemList</a></code>
                   38118:  </li><li><code>Document</code>, <a href="dom.html#document">partial</a>
                   38119:  </li><li><code><a href="#dragevent">DragEvent</a></code>
                   38120:  </li><li><code><a href="#external">External</a></code>
                   38121:  </li><li><code><a href="#functionstringcallback">FunctionStringCallback</a></code>
                   38122:  </li><li><code><a href="common-dom-interfaces.html#htmlallcollection-0">HTMLAllCollection</a></code>
                   38123:  </li><li><code><a href="the-a-element.html#htmlanchorelement">HTMLAnchorElement</a></code>
                   38124:  </li><li><code><a href="#htmlappletelement">HTMLAppletElement</a></code>
                   38125:  </li><li><code><a href="the-area-element.html#htmlareaelement">HTMLAreaElement</a></code>
                   38126:  </li><li><code><a href="the-audio-element.html#htmlaudioelement">HTMLAudioElement</a></code>
                   38127:  </li><li><code><a href="the-br-element.html#htmlbrelement">HTMLBRElement</a></code>
                   38128:  </li><li><code><a href="the-base-element.html#htmlbaseelement">HTMLBaseElement</a></code>
                   38129:  </li><li><code><a href="#htmlbasefontelement">HTMLBaseFontElement</a></code>
                   38130:  </li><li><code><a href="the-body-element.html#htmlbodyelement">HTMLBodyElement</a></code>
                   38131:  </li><li><code><a href="the-button-element.html#htmlbuttonelement">HTMLButtonElement</a></code>
                   38132:  </li><li><code><a href="the-canvas-element.html#htmlcanvaselement">HTMLCanvasElement</a></code>
                   38133:  </li><li><code><a href="#htmlcommandelement">HTMLCommandElement</a></code>
                   38134:  </li><li><code><a href="the-dl-element.html#htmldlistelement">HTMLDListElement</a></code>
                   38135:  </li><li><code><a href="the-datalist-element.html#htmldatalistelement">HTMLDataListElement</a></code>
                   38136:  </li><li><code><a href="#htmldetailselement">HTMLDetailsElement</a></code>
                   38137:  </li><li><code><a href="#htmldialogelement">HTMLDialogElement</a></code>
                   38138:  </li><li><code><a href="#htmldirectoryelement">HTMLDirectoryElement</a></code>
                   38139:  </li><li><code><a href="the-div-element.html#htmldivelement">HTMLDivElement</a></code>
                   38140:  </li><li><code><a href="elements.html#htmlelement">HTMLElement</a></code>
                   38141:  </li><li><code><a href="the-embed-element.html#htmlembedelement">HTMLEmbedElement</a></code>
                   38142:  </li><li><code><a href="the-fieldset-element.html#htmlfieldsetelement">HTMLFieldSetElement</a></code>
                   38143:  </li><li><code><a href="#htmlfontelement">HTMLFontElement</a></code>
                   38144:  </li><li><code><a href="common-dom-interfaces.html#htmlformcontrolscollection-0">HTMLFormControlsCollection</a></code>
                   38145:  </li><li><code><a href="the-form-element.html#htmlformelement">HTMLFormElement</a></code>
                   38146:  </li><li><code><a href="#htmlframeelement">HTMLFrameElement</a></code>
                   38147:  </li><li><code><a href="#htmlframesetelement">HTMLFrameSetElement</a></code>
                   38148:  </li><li><code><a href="the-hr-element.html#htmlhrelement">HTMLHRElement</a></code>
                   38149:  </li><li><code><a href="the-head-element.html#htmlheadelement">HTMLHeadElement</a></code>
                   38150:  </li><li><code><a href="the-aside-element.html#htmlheadingelement">HTMLHeadingElement</a></code>
                   38151:  </li><li><code><a href="the-html-element.html#htmlhtmlelement">HTMLHtmlElement</a></code>
                   38152:  </li><li><code><a href="the-iframe-element.html#htmliframeelement">HTMLIFrameElement</a></code>
                   38153:  </li><li><code><a href="the-img-element.html#htmlimageelement">HTMLImageElement</a></code>
                   38154:  </li><li><code><a href="the-input-element.html#htmlinputelement">HTMLInputElement</a></code>
                   38155:  </li><li><code><a href="the-keygen-element.html#htmlkeygenelement">HTMLKeygenElement</a></code>
                   38156:  </li><li><code><a href="the-li-element.html#htmllielement">HTMLLIElement</a></code>
                   38157:  </li><li><code><a href="the-label-element.html#htmllabelelement">HTMLLabelElement</a></code>
                   38158:  </li><li><code><a href="the-legend-element.html#htmllegendelement">HTMLLegendElement</a></code>
                   38159:  </li><li><code><a href="the-link-element.html#htmllinkelement">HTMLLinkElement</a></code>
                   38160:  </li><li><code><a href="the-map-element.html#htmlmapelement">HTMLMapElement</a></code>
                   38161:  </li><li><code><a href="#htmlmarqueeelement">HTMLMarqueeElement</a></code>
                   38162:  </li><li><code><a href="media-elements.html#htmlmediaelement">HTMLMediaElement</a></code>
                   38163:  </li><li><code><a href="#htmlmenuelement">HTMLMenuElement</a></code>
                   38164:  </li><li><code><a href="the-meta-element.html#htmlmetaelement">HTMLMetaElement</a></code>
                   38165:  </li><li><code><a href="the-meter-element.html#htmlmeterelement">HTMLMeterElement</a></code>
                   38166:  </li><li><code><a href="attributes-common-to-ins-and-del-elements.html#htmlmodelement">HTMLModElement</a></code>
                   38167:  </li><li><code><a href="the-ol-element.html#htmlolistelement">HTMLOListElement</a></code>
                   38168:  </li><li><code><a href="the-object-element.html#htmlobjectelement">HTMLObjectElement</a></code>
                   38169:  </li><li><code><a href="the-optgroup-element.html#htmloptgroupelement">HTMLOptGroupElement</a></code>
                   38170:  </li><li><code><a href="the-option-element.html#htmloptionelement">HTMLOptionElement</a></code>
                   38171:  </li><li><code><a href="common-dom-interfaces.html#htmloptionscollection-0">HTMLOptionsCollection</a></code>
                   38172:  </li><li><code><a href="the-output-element.html#htmloutputelement">HTMLOutputElement</a></code>
                   38173:  </li><li><code><a href="the-p-element.html#htmlparagraphelement">HTMLParagraphElement</a></code>
                   38174:  </li><li><code><a href="the-param-element.html#htmlparamelement">HTMLParamElement</a></code>
                   38175:  </li><li><code><a href="the-pre-element.html#htmlpreelement">HTMLPreElement</a></code>
                   38176:  </li><li><code><a href="the-progress-element.html#htmlprogresselement">HTMLProgressElement</a></code>
                   38177:  </li><li><code><a href="the-blockquote-element.html#htmlquoteelement">HTMLQuoteElement</a></code>
                   38178:  </li><li><code><a href="the-script-element.html#htmlscriptelement">HTMLScriptElement</a></code>
                   38179:  </li><li><code><a href="the-select-element.html#htmlselectelement">HTMLSelectElement</a></code>
                   38180:  </li><li><code><a href="the-source-element.html#htmlsourceelement">HTMLSourceElement</a></code>
                   38181:  </li><li><code><a href="the-span-element.html#htmlspanelement">HTMLSpanElement</a></code>
                   38182:  </li><li><code><a href="the-style-element.html#htmlstyleelement">HTMLStyleElement</a></code>
                   38183:  </li><li><code><a href="the-caption-element.html#htmltablecaptionelement">HTMLTableCaptionElement</a></code>
                   38184:  </li><li><code><a href="attributes-common-to-td-and-th-elements.html#htmltablecellelement">HTMLTableCellElement</a></code>
                   38185:  </li><li><code><a href="the-colgroup-element.html#htmltablecolelement">HTMLTableColElement</a></code>
                   38186:  </li><li><code><a href="the-td-element.html#htmltabledatacellelement">HTMLTableDataCellElement</a></code>
                   38187:  </li><li><code><a href="the-table-element.html#htmltableelement">HTMLTableElement</a></code>
                   38188:  </li><li><code><a href="the-th-element.html#htmltableheadercellelement">HTMLTableHeaderCellElement</a></code>
                   38189:  </li><li><code><a href="the-tr-element.html#htmltablerowelement">HTMLTableRowElement</a></code>
                   38190:  </li><li><code><a href="the-tbody-element.html#htmltablesectionelement">HTMLTableSectionElement</a></code>
                   38191:  </li><li><code><a href="the-textarea-element.html#htmltextareaelement">HTMLTextAreaElement</a></code>
                   38192:  </li><li><code><a href="the-time-element.html#htmltimeelement">HTMLTimeElement</a></code>
                   38193:  </li><li><code><a href="the-title-element.html#htmltitleelement">HTMLTitleElement</a></code>
                   38194:  </li><li><code><a href="the-track-element.html#htmltrackelement">HTMLTrackElement</a></code>
                   38195:  </li><li><code><a href="the-ul-element.html#htmlulistelement">HTMLUListElement</a></code>
                   38196:  </li><li><code><a href="elements.html#htmlunknownelement">HTMLUnknownElement</a></code>
                   38197:  </li><li><code><a href="the-video-element.html#htmlvideoelement">HTMLVideoElement</a></code>
                   38198:  </li><li><code><a href="#hashchangeevent">HashChangeEvent</a></code>
                   38199:  </li><li><code><a href="#history-1">History</a></code>
                   38200:  </li><li><code><a href="#location">Location</a></code>
                   38201:  </li><li><code><a href="media-elements.html#mediacontroller">MediaController</a></code>
                   38202:  </li><li><code><a href="media-elements.html#mediaerror">MediaError</a></code>
                   38203:  </li><li><code><a href="#navigator">Navigator</a></code>
                   38204:  </li><li><code><a href="#navigatorcontentutils">NavigatorContentUtils</a></code>
                   38205:  </li><li><code><a href="#navigatorid">NavigatorID</a></code>
                   38206:  </li><li><code><a href="#navigatoronline">NavigatorOnLine</a></code>
                   38207:  </li><li><code><a href="#navigatorstorageutils">NavigatorStorageUtils</a></code>
                   38208:  </li><li><code><a href="#pagetransitionevent">PageTransitionEvent</a></code>
                   38209:  </li><li><code><a href="#popstateevent">PopStateEvent</a></code>
                   38210:  </li><li><code><a href="common-dom-interfaces.html#radionodelist">RadioNodeList</a></code>
                   38211:  </li><li><code><a href="media-elements.html#texttrack">TextTrack</a></code>
                   38212:  </li><li><code><a href="media-elements.html#texttrackcue">TextTrackCue</a></code>
                   38213:  </li><li><code><a href="media-elements.html#texttrackcuelist">TextTrackCueList</a></code>
                   38214:  </li><li><code><a href="media-elements.html#texttracklist">TextTrackList</a></code>
                   38215:  </li><li><code><a href="media-elements.html#timeranges">TimeRanges</a></code>
                   38216:  </li><li><code><a href="media-elements.html#trackevent">TrackEvent</a></code>
                   38217:  </li><li><code><a href="common-dom-interfaces.html#transferable">Transferable</a></code>
                   38218:  </li><li><code><a href="#validitystate">ValidityState</a></code>
                   38219:  </li><li><code><a href="media-elements.html#videotrack">VideoTrack</a></code>
                   38220:  </li><li><code><a href="media-elements.html#videotracklist">VideoTrackList</a></code>
                   38221:  </li><li><code><a href="#window">Window</a></code>
                   38222:  </li><li><code><a href="#windowbase64">WindowBase64</a></code>
                   38223:  </li><li><code><a href="#windowmodal">WindowModal</a></code>
                   38224:  </li><li><code><a href="#windowtimers">WindowTimers</a></code>
                   38225:  </li><li><code>XMLDocument</code>, <a href="dom.html#xmldocument">partial</a>
                   38226: </li></ul><!-- (only has events from HTML5) --><h3 class="no-num" id="events-0">Events</h3>
1.190     sruby    38227: 
                   38228:   <p><i>This section is non-normative.</i></p>
                   38229:   <table><caption>List of events</caption>
                   38230:    <thead><tr><th> Event
                   38231:      </th><th> Interface
                   38232:      </th><th> Description
                   38233:    </th></tr></thead><tbody><tr><td> <code title="event-abort">abort</code>
                   38234:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38235:      </td><td> Fired at the <code><a href="#window">Window</a></code> when the download was aborted by the user
                   38236: 
                   38237:     </td></tr><tr><td> <code title="event-afterprint">afterprint</code>
                   38238:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38239:      </td><td> Fired at the <code><a href="#window">Window</a></code> after printing
                   38240: 
                   38241:     </td></tr><tr><td> <code title="event-beforeprint">beforeprint</code>
                   38242:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38243:      </td><td> Fired at the <code><a href="#window">Window</a></code> before printing
                   38244: 
                   38245:     </td></tr><tr><td> <code title="event-beforeunload">beforeunload</code>
                   38246:      </td><td> <code><a href="#beforeunloadevent">BeforeUnloadEvent</a></code>
                   38247:      </td><td> Fired at the <code><a href="#window">Window</a></code> when the page is about to be unloaded, in case the page would like to show a warning prompt
                   38248: 
                   38249:     </td></tr><tr><td> <code title="event-blur">blur</code>
                   38250:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38251:      </td><td> Fired at nodes losing focus
                   38252: 
                   38253:     </td></tr><tr><td> <code title="event-change">change</code>
                   38254:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38255:      </td><td> Fired at controls when the user commits a value change
                   38256: 
                   38257:     </td></tr><tr><td> <code title="event-click"><a href="infrastructure.html#event-click">click</a></code>
                   38258:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38259:      </td><td> Fired at an element before its <a href="content-models.html#activation-behavior">activation behavior</a> is run
                   38260: 
                   38261:     </td></tr><tr><td> <code title="event-contextmenu">contextmenu</code>
                   38262:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38263:      </td><td> Fired at elements when the user requests their context menu
                   38264: 
                   38265:     </td></tr><tr><td> <code title="event-DOMContentLoaded">DOMContentLoaded</code>
                   38266:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38267:      </td><td> Fired at the <code><a href="dom.html#document">Document</a></code> once the parser has finished
                   38268: 
                   38269:     </td></tr><tr><td> <code title="event-error">error</code>
                   38270:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38271:      </td><td> Fired at elements when network and script errors occur
                   38272: 
                   38273:     </td></tr><tr><td> <code title="event-focus">focus</code>
                   38274:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38275:      </td><td> Fired at nodes gaining focus
                   38276: 
                   38277:     </td></tr><tr><td> <code title="event-hashchange"><a href="#event-hashchange">hashchange</a></code>
                   38278:      </td><td> <code><a href="#hashchangeevent">HashChangeEvent</a></code>
                   38279:      </td><td> Fired at the <code><a href="#window">Window</a></code> when the fragment identifier part of <a href="dom.html#the-document's-address">the document's address</a> changes
                   38280: 
                   38281:     </td></tr><tr><td> <code title="event-input">input</code>
                   38282:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38283:      </td><td> Fired at controls when the user changes the value
                   38284: 
                   38285:     </td></tr><tr><td> <code title="event-invalid">invalid</code>
                   38286:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38287:      </td><td> Fired at controls during form validation if they do not satisfy their constraints
                   38288: 
                   38289:     </td></tr><tr><td> <code title="event-load">load</code>
                   38290:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38291:      </td><td> Fired at the <code><a href="#window">Window</a></code> when the document has finished loading; fired at an element containing a resource (e.g. <code><a href="the-img-element.html#the-img-element">img</a></code>, <code><a href="the-embed-element.html#the-embed-element">embed</a></code>) when its resource has finished loading
                   38292: 
                   38293:     </td></tr><tr><td> <code title="event-message">message</code>
                   38294:      </td><td> <code>MessageEvent</code>
                   38295:      </td><td> Fired at an object when the object receives a message
                   38296: 
                   38297:     </td></tr><tr><td> <code title="event-offline"><a href="#event-offline">offline</a></code>
                   38298:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38299:      </td><td> Fired at the <code><a href="#window">Window</a></code> when the network connections fails
                   38300: 
                   38301:     </td></tr><tr><td> <code title="event-online"><a href="#event-online">online</a></code>
                   38302:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38303:      </td><td> Fired at the <code><a href="#window">Window</a></code> when the network connections returns
                   38304: 
                   38305:     </td></tr><tr><td> <code title="event-pagehide"><a href="#event-pagehide">pagehide</a></code>
                   38306:      </td><td> <code><a href="#pagetransitionevent">PageTransitionEvent</a></code>
                   38307:      </td><td> Fired at the <code><a href="#window">Window</a></code> when the page's entry in the <a href="#session-history">session history</a> stops being the <a href="#current-entry">current entry</a>
                   38308: 
                   38309:     </td></tr><tr><td> <code title="event-pageshow"><a href="#event-pageshow">pageshow</a></code>
                   38310:      </td><td> <code><a href="#pagetransitionevent">PageTransitionEvent</a></code>
                   38311:      </td><td> Fired at the <code><a href="#window">Window</a></code> when the page's entry in the <a href="#session-history">session history</a> becomes the <a href="#current-entry">current entry</a>
                   38312: 
                   38313:     </td></tr><tr><td> <code title="event-popstate"><a href="#event-popstate">popstate</a></code>
                   38314:      </td><td> <code><a href="#popstateevent">PopStateEvent</a></code>
                   38315:      </td><td> Fired at the <code><a href="#window">Window</a></code> when the user navigates the <a href="#session-history">session history</a>
                   38316: 
                   38317:     </td></tr><tr><td> <code title="event-readystatechange"><a href="dom.html#event-readystatechange">readystatechange</a></code>
                   38318:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38319:      </td><td> Fired at the <code><a href="dom.html#document">Document</a></code> when it finishes parsing and again when all its subresources have finished loading
                   38320: 
                   38321:     </td></tr><tr><td> <code title="event-reset">reset</code>
                   38322:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38323:      </td><td> Fired at a <code><a href="the-form-element.html#the-form-element">form</a></code> element when it is <a href="#concept-form-reset" title="concept-form-reset">reset</a>
                   38324: 
                   38325:     </td></tr><tr><td> <code title="event-show">show</code>
                   38326:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38327:      </td><td> Fired at a <code><a href="#the-menu-element">menu</a></code> element when it is shown as a context menu
                   38328: 
                   38329:     </td></tr><tr><td> <code title="event-submit">submit</code>
                   38330:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38331:      </td><td> Fired at a <code><a href="the-form-element.html#the-form-element">form</a></code> element when it is <a href="#concept-form-submit" title="concept-form-submit">submitted</a>
                   38332: 
                   38333:     </td></tr><tr><td> <code title="event-unload">unload</code>
                   38334:      </td><td> <code><a href="infrastructure.html#event">Event</a></code>
                   38335:      </td><td> Fired at the <code><a href="#window">Window</a></code> object when the page is going away
                   38336: 
                   38337:   </td></tr></tbody></table><p class="note">See also <a href="media-elements.html#mediaevents">media element
                   38338:   events</a>, <a href="#appcacheevents">application cache events</a>,
                   38339:   and <a href="#dndevents">drag-and-drop events</a>.</p>
                   38340: 
                   38341: 
                   38342: 
                   38343:   <h2 class="no-num" id="references">References</h2><!--REFS-->
                   38344: 
                   38345:   <p>All references are normative unless marked "Non-normative".</p>
                   38346: 
                   38347:   <!-- Dates are only included for standards older than the Web, because the newer ones keep changing. -->
                   38348: 
                   38349:   <dl><!--REFERENCES ON--><dt id="refs2DCONTEXT">[2DCONTEXT]</dt>
                   38350:    <dd><cite><a href="http://dev.w3.org/html5/2dcontext/">HTML Canvas
                   38351:    2D Context</a></cite>, I. Hickson. W3C.</dd>
                   38352: 
                   38353:    <dt id="refsABNF">[ABNF]</dt>
                   38354:    <dd><cite><a href="http://www.ietf.org/rfc/std/std68.txt">Augmented
                   38355:    BNF for Syntax Specifications: ABNF</a></cite>, D. Crocker,
                   38356:    P. Overell. IETF.</dd>
                   38357: 
                   38358:    <dt id="refsABOUT">[ABOUT]</dt>
                   38359:    <dd><cite><a href="http://tools.ietf.org/html/draft-ietf-appsawg-about-uri-scheme">The 'about' URI scheme</a></cite>, L. Hunt, M. Yevstifeyev. IETF.
                   38360:    Work in progress. <!--!-->
                   38361:    </dd>
                   38362: 
                   38363:    <dt id="refsAES128CTR">[AES128CTR]</dt>
                   38364:    <dd><cite><a href="http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf">Advanced Encryption Standard (AES)</a></cite>. NIST.</dd>
                   38365: 
                   38366:    <dt id="refsARIA">[ARIA]</dt>
                   38367:    <dd><cite><a href="http://www.w3.org/WAI/PF/aria/">Accessible Rich
                   38368:    Internet Applications (WAI-ARIA)</a></cite>, J. Craig, M. Cooper, L. Pappas,
                   38369:    R. Schwerdtfeger, L. Seeman. W3C.</dd>
                   38370: 
                   38371:    <dt id="refsARIAIMPL">[ARIAIMPL]</dt>
                   38372:    <dd><cite><a href="http://www.w3.org/WAI/PF/aria-implementation/">WAI-ARIA 1.0
                   38373:    User Agent Implementation Guide</a></cite>, A. Snow-Weaver,
                   38374:    M. Cooper. W3C.</dd>
                   38375: 
                   38376:    <dt id="refsATAG">[ATAG]</dt>
                   38377:    <dd>(Non-normative) <cite><a href="http://www.w3.org/TR/ATAG20/">Authoring Tool Accessibility
                   38378:    Guidelines (ATAG) 2.0</a></cite>, J. Richards, J. Spellman,
                   38379:    J. Treviranus. W3C.</dd>
                   38380: 
                   38381:    <dt id="refsATOM">[ATOM]</dt>
                   38382:    <dd>(Non-normative) <cite><a href="http://tools.ietf.org/html/rfc4287">The Atom Syndication
                   38383:    Format</a></cite>, M. Nottingham, R. Sayre. IETF.</dd>
                   38384: 
                   38385:    <dt id="refsBCP47">[BCP47]</dt>
                   38386:    <dd><cite><a href="http://www.ietf.org/rfc/bcp/bcp47.txt">Tags for
                   38387:    Identifying Languages; Matching of Language Tags</a></cite>,
                   38388:    A. Phillips, M. Davis. IETF.</dd>
                   38389: 
                   38390:    <dt id="refsBECSS">[BECSS]</dt>
                   38391:    <dd><cite><a href="http://www.w3.org/TR/becss/">Behavioral
                   38392:    Extensions to CSS</a></cite>, I. Hickson. W3C.</dd>
                   38393: 
                   38394:    <dt id="refsBEZIER">[BEZIER]</dt>
                   38395:    <dd><cite>Courbes &#224; poles</cite>, P. de Casteljau. INPI, 1959.</dd>
                   38396: 
                   38397:    <dt id="refsBIDI">[BIDI]</dt>
                   38398:    <dd><cite><a href="http://www.unicode.org/reports/tr9/">UAX #9: Unicode
                   38399:    Bidirectional Algorithm</a></cite>, M. Davis. Unicode Consortium.</dd>
                   38400: 
                   38401:    <dt id="refsBIG5">[BIG5]</dt>
                   38402:    <dd>(Non-normative) <cite>Chinese Coded Character Set in Computer</cite>. Institute
                   38403:    for Information Industry, March 1984.</dd>
                   38404: 
                   38405:    <dt id="refsBOCU1">[BOCU1]</dt>
                   38406:    <dd>(Non-normative) <cite><a href="http://www.unicode.org/notes/tn6/">UTN #6: BOCU-1:
                   38407:    MIME-Compatible Unicode Compression</a></cite>, M. Scherer,
                   38408:    M. Davis. Unicode Consortium.</dd>
                   38409: 
                   38410:    <dt id="refsCESU8">[CESU8]</dt>
                   38411:    <dd>(Non-normative) <cite><a href="http://www.unicode.org/reports/tr26/">UTR #26: Compatibility
                   38412:    Encoding Scheme For UTF-16: 8-BIT (CESU-8)</a></cite>,
                   38413:    T. Phipps. Unicode Consortium.</dd>
                   38414: 
                   38415:    <dt id="refsCHARMOD">[CHARMOD]</dt>
                   38416:    <dd>(Non-normative) <cite><a href="http://www.w3.org/TR/charmod/">Character Model for the World
                   38417:    Wide Web 1.0: Fundamentals</a></cite>, M. D&#252;rst, F. Yergeau,
                   38418:    R. Ishida, M. Wolf, T. Texin. W3C.</dd>
                   38419: 
                   38420:    <dt id="refsCLDR">[CLDR]</dt>
                   38421:    <dd><cite><a href="http://cldr.unicode.org/">Unicode Common Locale Data Repository</a></cite>. Unicode.</dd>
                   38422: 
                   38423:    <dt id="refsCOMPUTABLE">[COMPUTABLE]</dt>
                   38424:    <dd>(Non-normative) <cite><a href="http://www.turingarchive.org/browse.php/B/12">On computable
                   38425:    numbers, with an application to the
                   38426:    Entscheidungsproblem</a></cite>, A. Turing. In <cite>Proceedings of
                   38427:    the London Mathematical Society</cite>, series 2, volume 42, pages
                   38428:    230-265. London Mathematical Society, 1937.</dd>
                   38429: 
                   38430:    <dt id="refsCOOKIES">[COOKIES]</dt>
                   38431:    <!--
                   38432:    <dd><cite><a href="http://tools.ietf.org/html/rfc2109">HTTP State Management Mechanism</a></cite>, D. Kristol, L. Montulli. IETF.</dd>
                   38433:    <dd><cite><a href="http://tools.ietf.org/html/rfc2965">HTTP State Management Mechanism</a></cite>, D. Kristol, L. Montulli. IETF.</dd>
                   38434:    -->
                   38435:    <dd><cite><a href="http://tools.ietf.org/html/rfc6265">HTTP State Management Mechanism</a></cite>, A. Barth. IETF.</dd>
                   38436: 
                   38437:    <dt id="refsCORS">[CORS]</dt>
                   38438:    <!--
                   38439:    <dd><cite><a href="http://www.w3.org/TR/cors/">Cross-Origin
                   38440:    Resource Sharing</a></cite>, A. van Kesteren. W3C.</dd>
                   38441:    -->
                   38442:    <dd><cite><a href="http://dev.w3.org/2006/waf/access-control/">Cross-Origin
                   38443:    Resource Sharing</a></cite>, A. van Kesteren. W3C.</dd>
                   38444: 
                   38445:    <dt id="refsCP50220">[CP50220]</dt>
                   38446:    <dd><cite><a href="http://www.iana.org/assignments/charset-reg/CP50220">CP50220</a></cite>,
                   38447:    Y. Naruse. IANA.</dd> <!-- really should be "NARUSE, Y." or some
                   38448:    such, but there's a western bias to these references for
                   38449:    consistency. sorry. -->
                   38450: 
                   38451:    <dt id="refsCP51932">[CP51932]</dt>
                   38452:    <dd><cite><a href="http://www.iana.org/assignments/charset-reg/CP51932">CP51932</a></cite>,
                   38453:    Y. Naruse. IANA.</dd> <!-- really should be "NARUSE, Y." or some
                   38454:    such, but there's a western bias to these references for
                   38455:    consistency. sorry. -->
                   38456: 
                   38457:    <dt id="refsCSP">[CSP]</dt>
                   38458:    <dd>(Non-normative) <cite><a href="http://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html">Content Security Policy</a></cite>, B. Sterne, A. Barth. W3C.</dd>
                   38459: 
                   38460:    <dt id="refsCSS">[CSS]</dt>
                   38461:    <dd><cite><a href="http://www.w3.org/TR/CSS2/">Cascading Style Sheets Level 2 Revision 1</a></cite>, B. Bos, T. &#199;elik, I. Hickson, H. Lie. W3C.</dd>
                   38462: 
                   38463:    <dt id="refsCSSATTR">[CSSATTR]</dt>
                   38464:    <dd><cite><a href="http://dev.w3.org/csswg/css-style-attr/">CSS Styling Attribute Syntax</a></cite>, T. &#199;elik, E. Etemad. W3C.</dd>
                   38465: 
                   38466:    <dt id="refsCSSCOLOR">[CSSCOLOR]</dt>
                   38467:    <!--
                   38468:    <dd><cite><a href="http://www.w3.org/TR/css3-color/">CSS Color
                   38469:    Module Level 3</a></cite>, T. &Ccedil;elik, C. Lilley, L.
                   38470:    Baron. W3C.</dd>
                   38471:    -->
                   38472:    <dd><cite><a href="http://dev.w3.org/csswg/css3-color/">CSS Color
                   38473:    Module Level 3</a></cite>, T. &#199;elik, C. Lilley, L.
                   38474:    Baron. W3C.</dd>
                   38475: 
                   38476:    <dt id="refsCSSFONTS">[CSSFONTS]</dt>
                   38477:    <dd><cite><a href="http://www.w3.org/TR/css3-fonts/">CSS Fonts
                   38478:    Module Level 3</a></cite>, J. Daggett. W3C.</dd>
                   38479: 
                   38480:    <dt id="refsCSSIMAGES">[CSSIMAGES]</dt>
                   38481:    <dd><cite><a href="http://dev.w3.org/csswg/css3-images/">CSS Image
                   38482:    Values and Replaced Content Module Level 3</a></cite>, E. Etemad,
                   38483:    T. Atkins. W3C.</dd>
                   38484: 
                   38485:    <dt id="refsCSSOM">[CSSOM]</dt>
                   38486:    <dd><cite><a href="http://dev.w3.org/csswg/cssom/">Cascading Style Sheets
                   38487:    Object Model (CSSOM)</a></cite>, A. van Kesteren. W3C.</dd>
                   38488: 
                   38489:    <dt id="refsCSSOMVIEW">[CSSOMVIEW]</dt>
                   38490:    <dd><cite><a href="http://dev.w3.org/csswg/cssom-view/">CSSOM View
                   38491:    Module</a></cite>, A. van Kesteren. W3C.</dd>
                   38492: 
                   38493:    <dt id="refsCSSRUBY">[CSSRUBY]</dt>
                   38494:    <dd><cite><a href="http://dev.w3.org/csswg/css3-ruby/">CSS3 Ruby Module</a></cite>, R. Ishida. W3C.</dd>
                   38495: 
                   38496:    <dt id="refsCSSUI">[CSSUI]</dt>
                   38497:    <dd><cite><a href="http://dev.w3.org/csswg/css3-ui/">CSS3 Basic User Interface Module</a></cite>, T. &#199;elik. W3C.</dd>
                   38498: 
                   38499:    <dt id="refsCSSVALUES">[CSSVALUES]</dt>
                   38500:    <dd><cite><a href="http://dev.w3.org/csswg/css3-values/">CSS3 Values and Units</a></cite>, H. Lie, T. Atkins, E. Etemad. W3C.</dd>
                   38501: 
                   38502:    <dt id="refsDASH">[DASH]</dt>
                   38503:    <dd><cite><a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=57623">Dynamic adaptive streaming over HTTP (DASH)</a></cite>. ISO.</dd>
                   38504: 
                   38505:    <dt id="refsDOM2HTML">[DOM2HTML]</dt>
                   38506:    <dd>(Non-normative) <cite><a href="http://www.w3.org/TR/DOM-Level-2-HTML/">Document Object Model (DOM) Level 2 HTML Specification</a></cite>, J. Stenback, P. Le H&#233;garet, A. Le Hors. W3C.</dd>
                   38507: 
                   38508:    <dt id="refsDOMCORE">[DOMCORE]</dt>
                   38509:    <dd><cite><a href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html">Web DOM Core</a></cite>, A. van Kesteren. W3C.</dd>
                   38510: 
                   38511:    <dt id="refsDOMEVENTS">[DOMEVENTS]</dt>
                   38512:    <dd><cite><a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html">Document Object Model (DOM) Level 3 Events Specification</a></cite>, T. Leithead, J. Rossi, D. Schepers, B. H&#246;hrmann, P. Le H&#233;garet, T. Pixley. W3C.</dd>
                   38513: 
                   38514:    <dt id="refsDOMPARSING">[DOMPARSING]</dt>
                   38515:    <dd><cite><a href="http://dvcs.w3.org/hg/innerhtml/raw-file/tip/index.html">DOM Parsing and Serialization</a></cite>, T. Leithead. Work in Progress. W3C.</dd>
                   38516: 
                   38517:    <dt id="refsDOT">[DOT]</dt>
                   38518:    <dd>(Non-normative) <cite><a href="http://www.graphviz.org/content/dot-language">The DOT Language</a></cite>. Graphviz.</dd>
                   38519: 
                   38520:    <dt id="refsE163">[E163]</dt>
                   38521:    <dd><cite>Recommendation E.163 &#8212; Numbering Plan for The International Telephone Service</cite>, CCITT Blue Book, Fascicle II.2, pp. 128-134, November 1988.</dd>
                   38522: 
                   38523:    <dt id="refsECMA262">[ECMA262]</dt>
                   38524:    <dd><cite><a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">ECMAScript Language Specification</a></cite>. ECMA.</dd>
                   38525: 
                   38526:    <dt id="refsECMA357">[ECMA357]</dt>
                   38527:    <dd>(Non-normative) <cite><a href="http://www.ecma-international.org/publications/standards/Ecma-357.htm">ECMAScript for XML (E4X) Specification</a></cite>. ECMA.</dd>
                   38528: 
                   38529:    <dt id="refsEDITING">[EDITING]</dt>
                   38530:    <dd><cite><a href="http://aryeh.name/spec/editing/editing.html">HTML Editing APIs</a></cite>, A. Gregor.</dd>
                   38531: 
                   38532:    <dt id="refsEUCKR">[EUCKR]</dt>
                   38533:    <dd><cite>Hangul Unix Environment</cite>. Korea Industrial Standards Association. Ref. No. KS C 5861-1992.</dd>
                   38534: 
                   38535:    <dt id="refsEUCJP">[EUCJP]</dt>
                   38536:    <dd><cite>Definition and Notes of Japanese EUC</cite>. UI-OSF-USLP. In English in the abridged translation of the <a href="http://home.m05.itscom.net/numa/uocjleE.pdf">UI-OSF Application Platform Profile for Japanese Environment</a>, Appendix C.</dd>
                   38537: 
                   38538:    <dt id="refsEVENTSOURCE">[EVENTSOURCE]</dt>
                   38539:    <!--
                   38540:    <dd><cite><a href="http://www.w3.org/TR/eventsource/">Server-Sent
                   38541:    Events</a></cite>, I. Hickson. W3C.</dd>
                   38542:    -->
                   38543:    <dd><cite><a href="http://dev.w3.org/html5/eventsource/">Server-Sent
                   38544:    Events</a></cite>, I. Hickson. W3C.</dd>
                   38545: 
                   38546:    <dt id="refsFILEAPI">[FILEAPI]</dt>
                   38547:    <dd><cite><a href="http://dev.w3.org/2006/webapi/FileUpload/publish/FileAPI.html">File
                   38548:    API</a></cite>, A. Ranganathan. W3C.</dd>
                   38549: 
                   38550:    <dt id="refsFILESYSTEMAPI">[FILESYSTEMAPI]</dt>
                   38551:    <dd><cite><a href="http://dev.w3.org/2009/dap/file-system/file-dir-sys.html">File
                   38552:    API: Directories and System</a></cite>, E. Uhrhane. W3C.</dd>
                   38553: 
                   38554:    <dt id="refsFULLSCREEN">[FULLSCREEN]</dt>
                   38555:    <dd><cite><a href="http://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html">Fullscreen</a></cite>, A. van Kesteren, T. &#199;elik.</dd>
                   38556: 
                   38557:    <dt id="refsGBK">[GBK]</dt>
                   38558:    <dd><cite>Chinese Internal Code Specification</cite>. Chinese IT
                   38559:    Standardization Technical Committee.</dd>
                   38560:    <!-- http://www.iana.org/assignments/charset-reg/GBK -->
                   38561: 
                   38562:    <dt id="refsGRAPHICS">[GRAPHICS]</dt>
                   38563:    <dd>(Non-normative) <cite>Computer Graphics: Principles and
                   38564:    Practice in C</cite>, Second Edition, J. Foley, A. van Dam,
                   38565:    S. Feiner, J. Hughes. Addison-Wesley. ISBN
                   38566:    0-201-84840-6.</dd>
                   38567:    <!--
                   38568:    This book ("Computer Graphics: Principles and Practice in C")
                   38569:    apparently does not make any references to literature in the
                   38570:    bibliographic section to define the "even-odd" rule for polygon
                   38571:    filling and hit testing. In the absence of such a reference, I
                   38572:    guess that this book is the most authoritative reference.
                   38573:    -->
                   38574: 
                   38575:    <dt id="refsGREGORIAN">[GREGORIAN]</dt>
                   38576:    <dd>(Non-normative) <cite>Inter Gravissimas</cite>, A. Lilius,
                   38577:    C. Clavius. Gregory XIII Papal Bull, February 1582.</dd>
                   38578: 
                   38579:    <dt id="refsHATOM">[HATOM]</dt>
                   38580:    <dd>(Non-normative) <cite><a href="http://microformats.org/wiki/hatom">hAtom</a></cite>, D
                   38581:    Janes. Microformats.</dd>
                   38582: 
                   38583:    <dt id="refsHMAC">[HMAC]</dt>
                   38584:    <dd><cite><a href="http://csrc.nist.gov/publications/fips/fips198/fips-198a.pdf">The Keyed-Hash Message Authentication Code (HMAC)</a></cite>. NIST.</dd>
                   38585: 
                   38586:    <dt id="refsHPAAIG">[HPAAIG]</dt>
                   38587:    <dd><cite><a href="http://dev.w3.org/html5/html-api-map/overview.html">HTML to Platform Accessibility APIs Implementation Guide</a></cite>. W3C.</dd>
                   38588: 
                   38589:    <dt id="refsHTML4">[HTML4]</dt>
                   38590:    <dd>(Non-normative) <cite><a href="http://www.w3.org/TR/html4/">HTML 4.01
                   38591:    Specification</a></cite>, D. Raggett, A. Le Hors, I. Jacobs.  W3C.</dd>
                   38592: 
                   38593:    <dt id="refsHTML">[HTML]</dt>
                   38594:    <dd><cite><a href="http://www.whatwg.org/specs/web-apps/current-work/">HTML</a></cite>,
                   38595:    I. Hickson. WHATWG.</dd>
                   38596: 
                   38597:    <dt id="refsHTML5">[HTML5]</dt>
                   38598:    <dd>
                   38599:    <cite><a href="http://dev.w3.org/html5/spec/">HTML5</a></cite>,
                   38600:    I. Hickson. W3C.</dd>
                   38601: 
                   38602:    <dt id="refsHTMLALTTECHS">[HTMLALTTECHS]</dt>
                   38603:    <dd>(Non-normative) <cite><a href="http://dev.w3.org/html5/alt-techniques/">HTML5: Techniques for providing useful text alternatives</a></cite>, S. Faulkner. W3C.</dd>
                   38604: 
                   38605:    <dt id="refsHTMLDIFF">[HTMLDIFF]</dt>
                   38606:    <!--
                   38607:    <dd>(Non-normative) <cite><a
                   38608:    href="http://www.w3.org/TR/html5-diff/">HTML5 differences from
                   38609:    HTML4</a></cite>, A. van Kesteren. W3C.</dd>
                   38610:    -->
                   38611:    <dd>(Non-normative) <cite><a href="http://dev.w3.org/html5/html4-differences/">HTML5
                   38612:    differences from HTML4</a></cite>, A. van Kesteren.  W3C.</dd>
                   38613: 
                   38614:    <dt id="refsHTTP">[HTTP]</dt>
                   38615:    <dd><cite><a href="http://tools.ietf.org/html/rfc2616">Hypertext
                   38616:    Transfer Protocol &#8212; HTTP/1.1</a></cite>, R. Fielding, J. Gettys,
                   38617:    J. Mogul, H.  Frystyk, L. Masinter, P. Leach, T. Berners-Lee. IETF.</dd>
                   38618: 
                   38619:    <dt id="refsIANACHARSET">[IANACHARSET]</dt>
                   38620:    <dd><cite><a href="http://www.iana.org/assignments/character-sets">Character
                   38621:    Sets</a></cite>. IANA.</dd>
                   38622: 
                   38623:    <dt id="refsIANALINKTYPE">[IANALINKTYPE]</dt>
                   38624:    <dd><cite><a href="http://www.iana.org/assignments/link-relations">Link
                   38625:    Relations</a></cite>. IANA.</dd>
                   38626: 
                   38627:    <dt id="refsIANAPERMHEADERS">[IANAPERMHEADERS]</dt>
                   38628:    <dd><cite><a href="http://www.iana.org/assignments/message-headers/perm-headers.html">Permanent
                   38629:    Message Header Field Names</a></cite>. IANA.</dd>
                   38630: 
                   38631:    <dt id="refsICE">[ICE]</dt>
                   38632:    <dd><cite><a href="http://tools.ietf.org/html/rfc5245">Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols</a></cite>, J. Rosenberg. IETF.</dd>
                   38633: 
                   38634:    <dt id="refsIEEE754">[IEEE754]</dt>
                   38635:    <dd><cite><a href="http://ieeexplore.ieee.org/servlet/opac?punumber=4610933">IEEE
                   38636:    Standard for Floating-Point Arithmetic (IEEE 754)</a></cite>. IEEE. ISBN 978-0-7381-5753-5.</dd>
                   38637: 
                   38638:    <dt id="refsISO8601">[ISO8601]</dt>
                   38639:    <dd>(Non-normative) <cite><a href="http://isotc.iso.org/livelink/livelink/4021199/ISO_8601_2004_E.zip?func=doc.Fetch&amp;nodeid=4021199">ISO8601: Data elements and interchange formats &#8212; Information interchange &#8212; Representation of dates and times</a></cite>. ISO.</dd>
                   38640: 
                   38641:    <dt id="refsISO885911">[ISO885911]</dt>
                   38642:    <dd><cite><a href="http://std.dkuug.dk/jtc1/sc2/open/02n3333.pdf">ISO-8859-11:
                   38643:    Information technology &#8212; 8-bit single-byte coded graphic
                   38644:    character sets &#8212; Part 11: Latin/Thai
                   38645:    alphabet</a></cite>. ISO.</dd>
                   38646: 
                   38647:    <dt id="refsJLREQ">[JLREQ]</dt>
                   38648:    <dd><cite><a href="http://www.w3.org/TR/jlreq/">Requirements for Japanese Text Layout</a></cite>. W3C.</dd> <!-- too many editors to list -->
                   38649: 
                   38650:    <dt id="refsJPEG">[JPEG]</dt>
                   38651:    <dd><cite><a href="http://www.w3.org/Graphics/JPEG/jfif3.pdf">JPEG File Interchange Format</a></cite>, E. Hamilton.</dd>
                   38652: 
                   38653:    <dt id="refsJSON">[JSON]</dt>
                   38654:    <dd><cite><a href="http://tools.ietf.org/html/rfc4627">The
                   38655:    application/json Media Type for JavaScript Object Notation
                   38656:    (JSON)</a></cite>, D. Crockford. IETF.</dd>
                   38657: 
                   38658:    <dt id="refsJSURL">[JSURL]</dt>
                   38659:    <dd><cite><a href="http://tools.ietf.org/html/draft-hoehrmann-javascript-scheme">The 'javascript' resource identifier scheme</a></cite>, B. H&#246;hrmann. IETF.
                   38660:    Work in progress. <!--!--> <!-- It's not really in progress; this reference has been dead for a while. Unfortunately it's the closest thing we current have to a spec. -->
                   38661:    </dd>
                   38662: 
                   38663:    <dt id="refsMAILTO">[MAILTO]</dt>
                   38664:    <dd>(Non-normative) <cite><a href="http://tools.ietf.org/html/rfc6068">The 'mailto' URI scheme</a></cite>, M. Duerst, L. Masinter, J. Zawinski. IETF.</dd>
                   38665: 
                   38666:    <dt id="refsMATHML">[MATHML]</dt>
                   38667:    <dd><cite><a href="http://www.w3.org/TR/MathML/">Mathematical
                   38668:    Markup Language (MathML)</a></cite>, D. Carlisle, P. Ion, R. Miner,
                   38669:    N. Poppelier. W3C.</dd>
                   38670: 
                   38671:    <dt id="refsMEDIAFRAG">[MEDIAFRAG]</dt>
                   38672:    <dd><cite><a href="http://www.w3.org/2008/WebVideo/Fragments/WD-media-fragments-spec/">Media
                   38673:    Fragments URI</a></cite>, R. Troncy, E. Mannens, S. Pfeiffer, D.
                   38674:    Van Deursen. W3C.</dd>
                   38675: 
                   38676:    <dt id="refsMFREL">[MFREL]</dt>
                   38677:    <dd><cite><a href="http://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions">Microformats Wiki: existing rel values</a></cite>. Microformats.</dd>
                   38678: 
                   38679:    <dt id="refsMIMESNIFF">[MIMESNIFF]</dt>
                   38680:    <dd><cite><a href="http://mimesniff.spec.whatwg.org/">MIME Sniffing</a></cite>, A. Barth, I. Hickson. WHATWG.</dd>
                   38681: 
                   38682:    <dt id="refsMPEG2">[MPEG2]</dt>
                   38683:    <dd><cite>ISO/IEC 13818-1: Information technology &#8212; Generic coding of moving pictures and associated audio information: Systems</cite>. ISO/IEC.</dd>
                   38684:    <!-- search for ["bytes are removed from this buffer at a rate defined by sb_leak_rate"] to find it -->
                   38685: 
                   38686:    <dt id="refsMPEG4">[MPEG4]</dt>
                   38687:    <dd><cite>ISO/IEC 14496-12: ISO base media file format</cite>. ISO/IEC.</dd>
                   38688:    <!-- search for ["Box Structure was and subsequent clauses were re-organized"] to find it -->
                   38689: 
                   38690:    <dt id="refsMQ">[MQ]</dt>
                   38691:    <!--
                   38692:    <dd><cite><a href="http://www.w3.org/TR/css3-mediaqueries/">Media
                   38693:    Queries</a></cite>, H. Lie, T.  &Ccedil;elik, D. Glazman, A. van
                   38694:    Kesteren. W3C.</dd>
                   38695:    -->
                   38696:    <dd><cite><a href="http://dev.w3.org/csswg/css3-mediaqueries/">Media
                   38697:    Queries</a></cite>, H. Lie, T.  &#199;elik, D. Glazman, A. van
                   38698:    Kesteren. W3C.</dd>
                   38699: 
                   38700:    <dt id="refsNPAPI">[NPAPI]</dt>
                   38701:    <dd>(Non-normative) <cite><a href="https://developer.mozilla.org/en/Gecko_Plugin_API_Reference">Gecko
                   38702:    Plugin API Reference</a></cite>. Mozilla.</dd>
                   38703: 
                   38704:    <dt id="refsNPN">[NPN]</dt>
                   38705:    <dd><cite><a href="http://tools.ietf.org/html/draft-agl-tls-nextprotoneg">Transport Layer Security (TLS) Next Protocol Negotiation Extension</a></cite>, A. Langley. IETF.
                   38706:    Work in progress. <!--!-->
                   38707:    </dd>
                   38708: 
                   38709:    <dt id="refsOGGSKELETONHEADERS">[OGGSKELETONHEADERS]</dt>
                   38710:    <dd><cite><a href="http://wiki.xiph.org/SkeletonHeaders">SkeletonHeaders</a></cite>. Xiph.Org.</dd>
                   38711: 
                   38712:    <dt id="refsOPENSEARCH">[OPENSEARCH]</dt>
                   38713:    <dd><cite><a href="http://www.opensearch.org/Specifications/OpenSearch/1.1#Autodiscovery_in_HTML.2FXHTML">Autodiscovery
                   38714:    in HTML/XHTML</a></cite>. In <cite>OpenSearch 1.1 Draft 4</cite>,
                   38715:    Section 4.6.2. OpenSearch.org.</dd>
                   38716: 
                   38717:    <dt id="refsORIGIN">[ORIGIN]</dt>
                   38718:    <dd><cite><a href="http://tools.ietf.org/html/rfc6454">The Web Origin Concept</a></cite>, A. Barth. IETF.</dd>   
                   38719: 
                   38720:    <dt id="refsPAGEVIS">[PAGEVIS]</dt>
                   38721:    <dd>(Non-normative) <cite><a href="http://www.w3c-test.org/webperf/specs/PageVisibility/">Page Visibility</a></cite>, J. Mann, A. Jain. W3C.</dd>   
                   38722: 
                   38723:    <dt id="refsPDF">[PDF]</dt>
                   38724:    <dd>(Non-normative) <cite><a href="http://www.adobe.com/devnet/acrobat/pdfs/PDF32000_2008.pdf">Document management &#8212; Portable document format &#8212; Part 1: PDF</a></cite>. ISO.</dd>   
                   38725: 
                   38726:    <dt id="refsPINGBACK">[PINGBACK]</dt>
                   38727:    <dd><cite><a href="http://www.hixie.ch/specs/pingback/pingback">Pingback
                   38728:    1.0</a></cite>, S. Langridge, I. Hickson.</dd>
                   38729: 
                   38730:    <dt id="refsPNG">[PNG]</dt>
                   38731:    <dd><cite><a href="http://www.w3.org/TR/PNG/">Portable Network
                   38732:    Graphics (PNG) Specification</a></cite>, D. Duce. W3C.</dd>
                   38733: 
                   38734:    <dt id="refsPOLYGLOT">[POLYGLOT]</dt>
                   38735:    <dd>(Non-normative) <cite><a href="http://dev.w3.org/html5/html-xhtml-author-guide/html-xhtml-authoring-guide.html">Polyglot
                   38736:    Markup: HTML-Compatible XHTML Documents</a></cite>, E. Graff.
                   38737:    W3C.</dd>
                   38738: 
                   38739:    <dt id="refsPORTERDUFF">[PORTERDUFF]</dt>
                   38740:    <dd><cite><a href="http://keithp.com/~keithp/porterduff/p253-porter.pdf">Compositing
                   38741:    Digital Images</a></cite>, T. Porter, T. Duff. In <cite>Computer
                   38742:    graphics</cite>, volume 18, number 3, pp. 253-259. ACM Press, July
                   38743:    1984.</dd>
                   38744: 
                   38745:    <dt id="refsPPUTF8">[PPUTF8]</dt>
                   38746:    <dd>(Non-normative) <cite><a href="http://www.sw.it.aoyama.ac.jp/2012/pub/IUC11-UTF-8.pdf">The Properties and Promises <!-- Promizes (sic) --> of UTF-8</a></cite>, M. D&#252;rst. University of Z&#252;rich. In <cite>Proceedings of the 11th International Unicode Conference</cite>.</dd>
                   38747: 
                   38748:    <dt id="refsPROGRESS">[PROGRESS]</dt>
                   38749:    <dd><cite><a href="http://dev.w3.org/2006/webapi/progress/">Progress
                   38750:    Events</a></cite>, A. van Kesteren. W3C.</dd>
                   38751: 
                   38752:    <dt id="refsPSL">[PSL]</dt>
                   38753:    <dd><cite><a href="http://publicsuffix.org/">Public Suffix List</a></cite>.
                   38754:    Mozilla Foundation.</dd>
                   38755: 
                   38756:    <dt id="refsRFC1034">[RFC1034]</dt>
                   38757:    <dd><cite><a href="http://tools.ietf.org/html/rfc1034">Domain
                   38758:    Names - Concepts and Facilities</a></cite>, P. Mockapetris. IETF,
                   38759:    November 1987.</dd>
                   38760: 
                   38761:    <dt id="refsRFC1321">[RFC1321]</dt>
                   38762:    <dd><cite><a href="http://tools.ietf.org/html/rfc1321">The MD5
                   38763:    Message-Digest Algorithm</a></cite>, R. Rivest. IETF.</dd>
                   38764: 
                   38765:    <dt id="refsRFC1345">[RFC1345]</dt>
                   38766:    <dd><cite><a href="http://tools.ietf.org/html/rfc1345">Character Mnemonics
                   38767:    and Character Sets</a></cite>, K. Simonsen. IETF.</dd>
                   38768: 
                   38769:    <dt id="refsRFC1468">[RFC1468]</dt>
                   38770:    <dd><cite><a href="http://tools.ietf.org/html/rfc1468">Japanese Character
                   38771:    Encoding for Internet Messages</a></cite>, J. Murai, M. Crispin, E. van der
                   38772:    Poel. IETF.</dd>
                   38773: 
                   38774:    <dt id="refsRFC1494">[RFC1494]</dt>
                   38775:    <dd>(Non-normative) <cite><a href="http://tools.ietf.org/html/rfc1494">Equivalences between
                   38776:    1988 X.400 and RFC-822 Message Bodies</a></cite>, H. Alvestrand,
                   38777:    S. Thompson. IETF.</dd>
                   38778: 
                   38779:    <dt id="refsRFC1554">[RFC1554]</dt>
                   38780:    <dd><cite><a href="http://tools.ietf.org/html/rfc1554">ISO-2022-JP-2:
                   38781:    Multilingual Extension of ISO-2022-JP</a></cite>, M. Ohta, K. Handa. IETF.</dd>
                   38782: 
                   38783:    <dt id="refsRFC1557">[RFC1557]</dt>
                   38784:    <dd><cite><a href="http://tools.ietf.org/html/rfc1557">Korean Character
                   38785:    Encoding for Internet Messages</a></cite>, U. Choi, K. Chon, H. Park. IETF.</dd>
                   38786: 
                   38787:    <dt id="refsRFC1842">[RFC1842]</dt>
                   38788: 
                   38789:    <dd><cite><a href="http://tools.ietf.org/html/rfc1842">ASCII
                   38790:    Printable Characters-Based Chinese Character Encoding for Internet
                   38791:    Messages</a></cite>, Y. Wei, Y. Zhang, J. Li, J. Ding, Y. Jiang.
                   38792:    IETF.</dd>
                   38793: 
                   38794:    <dt id="refsRFC1922">[RFC1922]</dt>
                   38795:    <dd><cite><a href="http://tools.ietf.org/html/rfc1922">Chinese Character
                   38796:    Encoding for Internet Messages</a></cite>, HF. Zhu, DY. Hu, ZG. Wang, TC. Kao,
                   38797:    WCH. Chang, M. Crispin. IETF.</dd>
                   38798: 
                   38799:    <dt id="refsRFC2045">[RFC2045]</dt>
                   38800:    <dd><cite><a href="http://tools.ietf.org/html/rfc2045">Multipurpose Internet
                   38801:    Mail Extensions (MIME) Part One: Format of Internet Message Bodies</a></cite>,
                   38802:    N. Freed, N. Borenstein. IETF.</dd>
                   38803: 
                   38804:    <dt id="refsRFC2046">[RFC2046]</dt>
                   38805:    <dd><cite><a href="http://tools.ietf.org/html/rfc2046">Multipurpose Internet
                   38806:    Mail Extensions (MIME) Part Two: Media Types</a></cite>, N. Freed,
                   38807:    N.  Borenstein. IETF.</dd> <!-- for text/plain and
                   38808:    "Internet Media type"; not for definition of "valid MIME type". -->
                   38809: 
                   38810:    <dt id="refsRFC2119">[RFC2119]</dt>
                   38811:    <dd><cite><a href="http://tools.ietf.org/html/rfc2119">Key words for use in
                   38812:    RFCs to Indicate Requirement Levels</a></cite>, S. Bradner. IETF.</dd>
                   38813: 
                   38814:    <dt id="refsRFC2237">[RFC2237]</dt>
                   38815:    <dd><cite><a href="http://tools.ietf.org/html/rfc2237">Japanese Character
                   38816:    Encoding for Internet Messages</a></cite>, K. Tamaru. IETF.</dd>
                   38817: 
                   38818:    <dt id="refsRFC2246">[RFC2246]</dt>
                   38819:    <dd><cite><a href="http://tools.ietf.org/html/rfc2246">The TLS Protocol
                   38820:    Version 1.0</a></cite>, T. Dierks, C. Allen. IETF.</dd>
                   38821: 
                   38822:    <dt id="refsRFC2313">[RFC2313]</dt>
                   38823:    <dd><cite><a href="http://tools.ietf.org/html/rfc2313">PKCS #1:
                   38824:    RSA Encryption</a></cite>, B. Kaliski. IETF.</dd>
                   38825: 
                   38826:    <dt id="refsRFC2318">[RFC2318]</dt>
                   38827:    <dd><cite><a href="http://tools.ietf.org/html/rfc2318">The
                   38828:    text/css Media Type</a></cite>, H. Lie, B. Bos, C. Lilley. IETF.</dd>
                   38829: 
                   38830:    <dt id="refsRFC2388">[RFC2388]</dt>
                   38831:    <dd><cite><a href="http://tools.ietf.org/html/rfc2388">Returning Values from
                   38832:    Forms: multipart/form-data</a></cite>, L. Masinter. IETF.</dd>
                   38833: 
                   38834:    <dt id="refsRFC2397">[RFC2397]</dt>
                   38835:    <dd><cite><a href="http://tools.ietf.org/html/rfc2397">The "data"
                   38836:    URL scheme</a></cite>, L. Masinter. IETF.</dd>
                   38837: 
                   38838:    <dt id="refsRFC2445">[RFC2445]</dt>
                   38839:    <dd><cite><a href="http://tools.ietf.org/html/rfc2445">Internet Calendaring
                   38840:    and Scheduling Core Object Specification (iCalendar)</a></cite>, F. Dawson, D.
                   38841:    Stenerson. IETF.</dd>
                   38842: 
                   38843:    <dt id="refsRFC2483">[RFC2483]</dt>
                   38844:    <dd><cite><a href="http://tools.ietf.org/html/rfc2483">URI Resolution
                   38845:    Services Necessary for URN Resolution</a></cite>, M. Mealling, R. Daniel.
                   38846:    IETF.</dd>
                   38847: 
                   38848:    <dt id="refsRFC2781">[RFC2781]</dt>
                   38849:    <dd><cite><a href="http://tools.ietf.org/html/rfc2781">UTF-16, an
                   38850:    encoding of ISO 10646</a></cite>, P. Hoffman, F. Yergeau. IETF.</dd>
                   38851: 
                   38852:    <dt id="refsRFC3676">[RFC3676]</dt>
                   38853:    <dd><cite><a href="http://tools.ietf.org/html/rfc3676">The Text/Plain Format
                   38854:    and DelSp Parameters</a></cite>, R. Gellens. IETF.</dd>
                   38855: 
                   38856:    <dt id="refsRFC2806">[RFC2806]</dt>
                   38857:    <dd>(Non-normative) <cite><a href="http://tools.ietf.org/html/rfc2806">URLs for Telephone
                   38858:    Calls</a></cite>, A. Vaha-Sipila. IETF.</dd>
                   38859: 
                   38860:    <dt id="refsRFC3023">[RFC3023]</dt>
                   38861:    <dd><cite><a href="http://tools.ietf.org/html/rfc3023">XML Media
                   38862:    Types</a></cite>, M. Murata, S. St. Laurent, D. Kohn. IETF.</dd>
                   38863: 
                   38864:    <dt id="refsRFC3279">[RFC3279]</dt>
                   38865:    <dd><cite><a href="http://tools.ietf.org/html/rfc3279">Algorithms
                   38866:    and Identifiers for the Internet X.509 Public Key Infrastructure
                   38867:    Certificate and Certificate Revocation List (CRL)
                   38868:    Profile</a></cite>, W. Polk, R. Housley, L. Bassham. IETF.</dd>
                   38869: 
                   38870:    <dt id="refsRFC3490">[RFC3490]</dt>
                   38871:    <dd><cite><a href="http://tools.ietf.org/html/rfc3490">Internationalizing
                   38872:    Domain Names in Applications (IDNA)</a></cite>, P. Faltstrom, P. Hoffman, A.
                   38873:    Costello. IETF.</dd>
                   38874: 
                   38875:    <dt id="refsRFC3629">[RFC3629]</dt>
                   38876:    <dd><cite><a href="http://tools.ietf.org/html/rfc3629">UTF-8, a
                   38877:    transformation format of ISO 10646</a></cite>, F. Yergeau. IETF.</dd>
                   38878: 
                   38879:    <dt id="refsRFC3864">[RFC3864]</dt>
                   38880:    <dd><cite><a href="http://tools.ietf.org/html/rfc3864">Registration Procedures
                   38881:    for Message Header Fields</a></cite>, G. Klyne, M. Nottingham,
                   38882:    J. Mogul. IETF.</dd>
                   38883: 
                   38884:    <dt id="refsRFC3986">[RFC3986]</dt>
                   38885:    <dd><cite><a href="http://tools.ietf.org/html/rfc3986">Uniform Resource
                   38886:    Identifier (URI): Generic Syntax</a></cite>, T. Berners-Lee, R. Fielding, L.
                   38887:    Masinter. IETF.</dd>
                   38888: 
                   38889:    <dt id="refsRFC3987">[RFC3987]</dt>
                   38890:    <dd><cite><a href="http://tools.ietf.org/html/rfc3987">Internationalized
                   38891:    Resource Identifiers (IRIs)</a></cite>, M. D&#252;rst, M. Suignard. IETF.</dd>
                   38892: 
                   38893:    <dt id="refsRFC4281">[RFC4281]</dt>
                   38894:    <dd><cite><a href="http://tools.ietf.org/html/rfc4281">The Codecs Parameter
                   38895:    for "Bucket" Media Types</a></cite>, R. Gellens, D. Singer, P. Frojdh. IETF.</dd>
                   38896: 
                   38897:    <dt id="refsRFC4329">[RFC4329]</dt>
                   38898:    <dd>(Non-normative) <cite><a href="http://tools.ietf.org/html/rfc4329">Scripting Media
                   38899:    Types</a></cite>, B. H&#246;hrmann. IETF.</dd>
                   38900: 
                   38901:    <dt id="refsRFC4366">[RFC4366]</dt>
                   38902:    <dd><cite><a href="http://tools.ietf.org/html/rfc4366">Transport
                   38903:    Layer Security (TLS) Extensions</a></cite>, S. Blake-Wilson,
                   38904:    M. Nystrom, D. Hopwood, J. Mikkelsen, T. Wright. IETF.</dd>
                   38905: 
                   38906:    <dt id="refsRFC4395">[RFC4395]</dt>
                   38907:    <dd><cite><a href="http://tools.ietf.org/html/rfc4395">Guidelines and Registration Procedures for New URI Schemes</a></cite>, T. Hansen, T. Hardie, L. Masinter. IETF.</dd>
                   38908: 
                   38909:    <dt id="refsRFC4648">[RFC4648]</dt>
                   38910:    <dd><cite><a href="http://tools.ietf.org/html/rfc4648">The Base16,
                   38911:    Base32, and Base64 Data Encodings</a></cite>, S. Josefsson.
                   38912:    IETF.</dd>
                   38913: 
                   38914:    <dt id="refsRFC4770">[RFC4770]</dt>
                   38915:    <dd><cite><a href="http://tools.ietf.org/html/rfc4770">vCard Extensions for
                   38916:    Instant Messaging (IM)</a></cite>, C. Jennings, J. Reschke. IETF.</dd>
                   38917: 
                   38918:    <dt id="refsRFC5280">[RFC5280]</dt>
                   38919:    <dd><cite><a href="http://tools.ietf.org/html/rfc5280">Internet
                   38920:    X.509 Public Key Infrastructure Certificate and Certificate
                   38921:    Revocation List (CRL) Profile</a></cite>, D. Cooper, S. Santesson,
                   38922:    S. Farrell, S. Boeyen, R. Housley, W. Polk. IETF.</dd>
                   38923: 
                   38924:    <dt id="refsRFC5322">[RFC5322]</dt>
                   38925:    <dd><cite><a href="http://tools.ietf.org/html/rfc5322">Internet Message
                   38926:    Format</a></cite>, P. Resnick. IETF.</dd>
                   38927: 
                   38928:    <dt id="refsRFC5724">[RFC5724]</dt>
                   38929:    <dd><cite><a href="http://tools.ietf.org/html/rfc5724">URI Scheme
                   38930:    for Global System for Mobile Communications (GSM) Short Message
                   38931:    Service (SMS)</a></cite>, E. Wilde, A. Vaha-Sipila. IETF.</dd>
                   38932: 
                   38933:    <dt id="refsRFC6266">[RFC6266]</dt>
                   38934:    <dd><cite><a href="http://tools.ietf.org/html/rfc6266">Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)</a></cite>, J. Reschke. IETF.</dd>
                   38935: 
                   38936:    <dt id="refsRFC6350">[RFC6350]</dt>
                   38937:    <dd><cite><a href="http://tools.ietf.org/html/rfc6350">vCard Format Specification</a></cite>, S. Perreault. IETF.</dd>
                   38938: 
                   38939:    <dt id="refsSCSU">[SCSU]</dt>
                   38940:    <dd>(Non-normative) <cite><a href="http://www.unicode.org/reports/tr6/">UTR #6: A Standard
                   38941:    Compression Scheme For Unicode</a></cite>, M. Wolf, K. Whistler,
                   38942:    C. Wicksteed, M. Davis, A. Freytag, M. Scherer. Unicode Consortium.</dd>
                   38943: 
                   38944:    <dt id="refsSDP">[SDP]</dt>
                   38945:    <dd><cite><a href="http://tools.ietf.org/html/rfc4566">SDP: Session Description Protocol</a></cite>, M. Handley, V. Jacobson, C. Perkins. IETF.</dd>
                   38946: 
                   38947:    <dt id="refsSDPLABEL">[SDPLABEL]</dt>
                   38948:    <dd><cite><a href="http://tools.ietf.org/html/rfc4574">The Session Description Protocol (SDP) Label Attribute</a></cite>, O. Levin, G. Camarillo. IETF.</dd>
                   38949: 
                   38950:    <dt id="refsSDPOFFERANSWER">[SDPOFFERANSWER]</dt>
                   38951:    <dd><cite><a href="http://tools.ietf.org/html/rfc3264">An Offer/Answer Model with the Session Description Protocol (SDP)</a></cite>, J. Rosenberg, H. Schulzrinne. IETF.</dd>
                   38952: 
                   38953:    <dt id="refsSELECTORS">[SELECTORS]</dt>
                   38954:    <dd><cite><a href="http://dev.w3.org/csswg/selectors4/">Selectors</a></cite>, E. Etemad, T. &#199;elik, D. Glazman, I. Hickson, P. Linss, J. Williams. W3C.</dd>
                   38955: 
                   38956:    <dt id="refsSHA1">[SHA1]</dt>
                   38957:    <dd><cite><a href="http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf">Secure Hash Standard</a></cite>. NIST.</dd>
                   38958: 
                   38959:    <dt id="refsSHIFTJIS">[SHIFTJIS]</dt>
                   38960:    <dd><cite>JIS X0208: 7-bit and 8-bit double byte coded KANJI sets
                   38961:    for information interchange</cite>. Japanese Industrial Standards Committee.</dd>
                   38962: 
                   38963:    <dt id="refsSRGB">[SRGB]</dt>
                   38964:    <dd><cite lang="en-GB"><a href="http://webstore.iec.ch/webstore/webstore.nsf/artnum/025408!OpenDocument&amp;Click=">IEC
                   38965:    61966-2-1: Multimedia systems and equipment &#8212; Colour measurement
                   38966:    and management &#8212; Part 2-1: Colour management &#8212; Default RGB colour
                   38967:    space &#8212; sRGB</a></cite>. IEC.</dd>
                   38968: 
                   38969:    <dt id="refsSTUN">[STUN]</dt>
                   38970:    <dd><cite><a href="http://tools.ietf.org/html/rfc5389">Session Traversal Utilities for NAT (STUN)</a></cite>, J. Rosenberg, R. Mahy, P. Matthews, D. Wing. IETF.</dd>
                   38971: 
                   38972:    <dt id="refsSVG">[SVG]</dt>
                   38973:    <dd><cite><a href="http://www.w3.org/TR/SVGTiny12/">Scalable Vector
                   38974:    Graphics (SVG) Tiny 1.2 Specification</a></cite>, O. Andersson,
                   38975:    R. Berjon, E. Dahlstr&#246;m, A. Emmons, J. Ferraiolo, A. Grasso,
                   38976:    V. Hardy, S. Hayman, D. Jackson, C. Lilley, C. McCormack,
                   38977:    A. Neumann, C. Northway, A. Quint, N. Ramani, D. Schepers,
                   38978:    A. Shellshear. W3C.</dd>
                   38979: 
                   38980:    <dt id="refsTIS620">[TIS620]</dt>
                   38981:    <dd><cite><a href="http://www.nectec.or.th/it-standards/std620/std620.htm">UDC
                   38982:    681.3.04:003.62</a></cite>. Thai Industrial Standards Institute,
                   38983:    Ministry of Industry, Royal Thai Government. ISBN
                   38984:    974-606-153-4.</dd>
                   38985: 
                   38986:    <dt id="refsTURN">[TURN]</dt>
                   38987:    <dd><cite><a href="http://tools.ietf.org/html/rfc5766">Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN)</a></cite>, R. Mahy, P. Matthews, J. Rosenberg. IETF.</dd>
                   38988: 
                   38989:    <dt id="refsTIMEZONES">[TIMEZONES]</dt>
                   38990:    <dd>(Non-normative) <cite><a href="http://www.w3.org/TR/timezone/">Working with Time Zones</a></cite>, A. Phillips, N. Lindenberg, M. Davis, M.J. D&#252;rst, F. Sasaki, R. Ishida. W3C.</dd>
                   38991: 
                   38992: 
                   38993:    <dt id="refsTYPEDARRAY">[TYPEDARRAY]</dt>
                   38994:    <dd><cite><a href="http://www.khronos.org/registry/typedarray/specs/latest/">Typed Array Specification</a></cite>, D. Herman, K. Russell. Khronos.</dd>
                   38995: 
                   38996:    <dt id="refsUAAG">[UAAG]</dt>
                   38997:    <dd>(Non-normative) <cite><a href="http://www.w3.org/TR/UAAG20/">User Agent Accessibility Guidelines (UAAG) 2.0</a></cite>, J. Allan, K. Ford, J. Richards, J. Spellman. W3C.</dd>
                   38998: 
                   38999:    <dt id="refsUNDO">[UNDO]</dt>
                   39000:    <dd><cite><a href="http://rniwa.com/editing/undomanager.html">UndoManager and DOM Transaction</a></cite>, R. Niwa.</dd>
                   39001: 
                   39002:    <dt id="refsUNICODE">[UNICODE]</dt>
                   39003:    <dd><cite><a href="http://www.unicode.org/versions/">The Unicode Standard</a></cite>. Unicode Consortium.</dd>
                   39004: 
                   39005:    <dt id="refsUNIVCHARDET">[UNIVCHARDET]</dt>
                   39006:    <dd>(Non-normative) <cite><a href="http://www.mozilla.org/projects/intl/UniversalCharsetDetection.html">A
                   39007:    composite approach to language/encoding
                   39008:    detection</a></cite>, S. Li, K. Momoi. Netscape. In
                   39009:    <cite>Proceedings of the 19th International Unicode
                   39010:    Conference</cite>.</dd>
                   39011: 
                   39012:    <dt id="refsUTF7">[UTF7]</dt>
                   39013:    <dd><cite><a href="http://tools.ietf.org/html/rfc2152">UTF-7: A
                   39014:    Mail-Safe Transformation Format of Unicode</a></cite>,
                   39015:    D. Goldsmith, M. Davis. IETF.</dd>
                   39016: 
                   39017:    <dt id="refsUTF8DET">[UTF8DET]</dt>
                   39018:    <dd>(Non-normative) <cite><a href="http://www.w3.org/International/questions/qa-forms-utf-8">Multilingual
                   39019:    form encoding</a></cite>, M. D&#252;rst. W3C.</dd>
                   39020: 
                   39021:    <dt id="refsUTR36">[UTR36]</dt>
                   39022:    <dd>(Non-normative) <cite><a href="http://www.unicode.org/reports/tr36/">UTR #36: Unicode
                   39023:    Security Considerations</a></cite>, M. Davis, M. Suignard. Unicode
                   39024:    Consortium.</dd>
                   39025: 
                   39026:    <dt id="refsWCAG">[WCAG]</dt>
                   39027:    <dd>(Non-normative) <cite><a href="http://www.w3.org/TR/WCAG20/">Web Content Accessibility
                   39028:    Guidelines (WCAG) 2.0</a></cite>, B. Caldwell, M. Cooper, L. Reid,
                   39029:    G. Vanderheiden. W3C.</dd>
                   39030: 
                   39031:    <dt id="refsWEBADDRESSES">[WEBADDRESSES]</dt>
                   39032:    <dd><cite><a href="http://www.w3.org/html/wg/href/draft">Web
                   39033:    addresses in HTML5</a></cite>, D. Connolly,
                   39034:    C. Sperberg-McQueen.</dd>
                   39035: 
                   39036:    <dt id="refsWEBGL">[WEBGL]</dt>
                   39037:    <dd><cite><a href="https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/WebGL-spec.html">WebGL
                   39038:    Specification</a></cite>, C. Marrin. Khronos Group.</dd>
                   39039: 
                   39040:    <dt id="refsWEBIDL">[WEBIDL]</dt>
                   39041:    <!--
                   39042:    <dd><cite><a href="http://www.w3.org/TR/WebIDL/">Web
                   39043:    IDL</a></cite>, C. McCormack. W3C.</dd>
                   39044:    -->
                   39045:    <dd><cite><a href="http://dev.w3.org/2006/webapi/WebIDL/">Web
                   39046:    IDL</a></cite>, C. McCormack. W3C.</dd>
                   39047: 
                   39048:    <dt id="refsWEBLINK">[WEBLINK]</dt>
                   39049:    <dd><cite><a href="http://tools.ietf.org/html/rfc5988">Web
                   39050:    Linking</a></cite>, M. Nottingham. IETF.</dd>
                   39051: 
                   39052:    <dt id="refsWEBMCG">[WEBMCG]</dt>
                   39053:    <dd><cite><a href="http://www.webmproject.org/code/specs/container/">WebM Container Guidelines</a></cite>. The WebM Project.</dd>
                   39054: 
                   39055:    <dt id="refsWEBSOCKET">[WEBSOCKET]</dt>
                   39056:    <dd><cite><a href="http://dev.w3.org/html5/websockets/">The WebSocket API</a></cite>, I. Hickson. W3C.</dd>
                   39057: 
                   39058:    <dt id="refsWEBSTORAGE">[WEBSTORAGE]</dt>
                   39059:    <dd><cite><a href="http://dev.w3.org/html5/webstorage/">Web Storage</a></cite>, I. Hickson. W3C.</dd>
                   39060: 
                   39061:    <dt id="refsWEBVTT">[WEBVTT]</dt>
                   39062:    <dd><cite><a href="http://dev.w3.org/html5/webvtt/">WebVTT</a></cite>, I. Hickson. W3C.</dd>
                   39063: 
                   39064:    <dt id="refsWEBWORKERS">[WEBWORKERS]</dt>
                   39065:    <dd><cite><a href="http://dev.w3.org/html5/workers/">Web Workers</a></cite>, I. Hickson. W3C.</dd>
                   39066: 
                   39067:    <dt id="refsWHATWGBLOG">[WHATWGBLOG]</dt>
                   39068:    <dd><cite><a href="http://blog.whatwg.org/">The WHATWG Blog</a></cite>. WHATWG.</dd>
                   39069: 
                   39070:    <dt id="refsWHATWGWIKI">[WHATWGWIKI]</dt>
                   39071:    <dd><cite><a href="http://wiki.whatwg.org/">The WHATWG Wiki</a></cite>. WHATWG.</dd>
                   39072: 
                   39073:    <dt id="refsWIN1252">[WIN1252]</dt>
                   39074:    <dd><cite><a href="http://www.microsoft.com/globaldev/reference/sbcs/1252.htm">Windows 1252</a></cite>. Microsoft.</dd>
                   39075: 
                   39076:    <dt id="refsWIN1254">[WIN1254]</dt>
                   39077:    <dd><cite><a href="http://www.microsoft.com/globaldev/reference/sbcs/1254.htm">Windows 1254</a></cite>. Microsoft.</dd>
                   39078: 
                   39079:    <dt id="refsWIN31J">[WIN31J]</dt>
                   39080:    <dd><cite><a href="http://www.microsoft.com/globaldev/reference/dbcs/932.mspx">Windows Codepage 932</a></cite>. Microsoft.</dd>
                   39081: 
                   39082:    <dt id="refsWIN874">[WIN874]</dt>
                   39083:    <dd><cite><a href="http://www.microsoft.com/globaldev/reference/sbcs/874.mspx">Windows 874</a></cite>. Microsoft.</dd>
                   39084: 
                   39085:    <dt id="refsWIN949">[WIN949]</dt>
                   39086:    <dd><cite><a href="http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP949.TXT">Windows Codepage 949</a></cite>. Microsoft.</dd>
                   39087: 
                   39088:    <dt id="refsWSP">[WSP]</dt>
                   39089:    <dd><cite><a href="http://tools.ietf.org/html/rfc6455">The WebSocket protocol</a></cite>, I. Fette, A. Melnikov. IETF.</dd>
                   39090: 
                   39091:    <dt id="refsX121">[X121]</dt>
                   39092:    <dd><cite>Recommendation X.121 &#8212; International Numbering Plan for
                   39093:    Public Data Networks</cite>, CCITT Blue Book, Fascicle VIII.3,
                   39094:    pp. 317-332.</dd>
                   39095: 
                   39096:    <dt id="refsX690">[X690]</dt>
                   39097:    <dd><cite><a href="http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf">Recommendation
                   39098:    X.690 &#8212; Information Technology &#8212; ASN.1 Encoding Rules &#8212;
                   39099:    Specification of Basic Encoding Rules (BER), Canonical Encoding
                   39100:    Rules (CER), and Distinguished Encoding Rules
                   39101:    (DER)</a></cite>. International Telecommunication Union.</dd>
                   39102: 
                   39103:    <dt id="refsXFN">[XFN]</dt>
                   39104:    <dd><cite><a href="http://gmpg.org/xfn/11">XFN 1.1 profile</a></cite>, T. &#199;elik, M. Mullenweg, E. Meyer. GMPG.</dd>
                   39105: 
                   39106:    <dt id="refsXHR">[XHR]</dt>
                   39107:    <!--
                   39108:    <dd><cite><a href="http://www.w3.org/TR/XMLHttpRequest/">The XMLHttpRequest
                   39109:    Object</a></cite>, A. van Kesteren. W3C.</dd>
                   39110:    -->
                   39111:    <dd><cite><a href="http://dev.w3.org/2006/webapi/XMLHttpRequest-2/"><code>XMLHttpRequest</code></a></cite>,
                   39112:    A. van Kesteren. W3C.</dd>
                   39113: 
                   39114:    <dt id="refsXHTML1">[XHTML1]</dt>
                   39115:    <dd><cite><a href="http://www.w3.org/TR/xhtml1/">XHTML(TM) 1.0 The
                   39116:    Extensible HyperText Markup Language (Second Edition)</a></cite>. W3C.</dd>
                   39117: 
                   39118:    <dt id="refsXHTMLMOD">[XHTMLMOD]</dt>
                   39119:    <dd><cite><a href="http://www.w3.org/TR/xhtml-modularization">Modularization of
                   39120:    XHTML(TM)</a></cite>, M. Altheim, F. Boumphrey, S. Dooley, S.
                   39121:    McCarron, S. Schnitzenbaumer, T. Wugofski. W3C.</dd>
                   39122: 
                   39123:    <dt id="refsXML">[XML]</dt>
                   39124:    <dd><cite><a href="http://www.w3.org/TR/xml/">Extensible Markup
                   39125:    Language</a></cite>, T. Bray, J. Paoli, C. Sperberg-McQueen,
                   39126:    E. Maler, F. Yergeau. W3C.</dd>
                   39127: 
                   39128:    <dt id="refsXMLBASE">[XMLBASE]</dt>
                   39129:    <dd><cite><a href="http://www.w3.org/TR/xmlbase/">XML
                   39130:    Base</a></cite>, J. Marsh, R. Tobin. W3C.</dd>
                   39131: 
                   39132:    <dt id="refsXMLNS">[XMLNS]</dt>
                   39133:    <dd><cite><a href="http://www.w3.org/TR/xml-names/">Namespaces in
                   39134:    XML</a></cite>, T. Bray, D. Hollander, A. Layman, R. Tobin. W3C.</dd>
                   39135: 
                   39136:    <dt id="refsXPATH10">[XPATH10]</dt>
                   39137:    <dd><cite><a href="http://www.w3.org/TR/1999/REC-xpath-19991116">XML Path
                   39138:    Language (XPath) Version 1.0</a></cite>, J. Clark, S. DeRose. W3C.</dd>
                   39139: 
                   39140:    <dt id="refsXSLT10">[XSLT10]</dt>
                   39141:    <dd>(Non-normative) <cite><a href="http://www.w3.org/TR/1999/REC-xslt-19991116">XSL
                   39142:    Transformations (XSLT) Version 1.0</a></cite>, J. Clark. W3C.</dd>
                   39143: 
                   39144: <!--(once XSLTProcessor is defined somewhere, update this and the place that references this)
                   39145:    <dt id="refsXSLTP">[XSLTP]</dt>
                   39146:    <dd>(Non-normative) <cite><a href=""></a></cite>, . .</dd>
                   39147: -->
                   39148: 
                   39149: 
                   39150:    <dt id="refsRFC2109">[RFC2109]</dt>
                   39151:    <dd><cite><a href="http://tools.ietf.org/html/rfc2109">HTTP State
                   39152:    Management Mechanism</a></cite>, D. Kristol,
                   39153:    L. Montulli. IETF.</dd>
                   39154: 
                   39155:    <dt id="refsRFC2616">[RFC2616]</dt>
                   39156:    <dd><cite><a href="http://tools.ietf.org/html/rfc2616">Hypertext
                   39157:    Transfer Protocol &#8212; HTTP/1.1</a></cite>, R. Fielding, J. Gettys,
                   39158:    J. Mogul, H.  Frystyk, L. Masinter, P. Leach, T. Berners-Lee. IETF.</dd>
                   39159: 
                   39160:    <dt id="refsRFC2965">[RFC2965]</dt>
                   39161:    <dd><cite><a href="http://tools.ietf.org/html/rfc2965">HTTP State
                   39162:    Management Mechanism</a></cite>, D. Kristol,
                   39163:    L. Montulli. IETF.</dd>
                   39164: 
                   39165:    <dt id="refsRFC5234">[RFC5234]</dt>
                   39166:    <dd><cite><a href="http://www.ietf.org/rfc/std/std68.txt">Augmented
                   39167:    BNF for Syntax Specifications: ABNF</a></cite>, D. Crocker,
                   39168:    P. Overell. IETF.</dd>
                   39169: 
                   39170: 
                   39171: <!--REFERENCES OFF-->
                   39172:   </dl><h2 class="no-num" id="acknowledgements">Acknowledgements</h2> <!-- ACKS -->
                   39173: 
                   39174:   <p>Thanks to Tim Berners-Lee for inventing HTML, without which none
                   39175:   of this would exist.</p>
                   39176: 
                   39177:   <p>Thanks to
                   39178: 
                   39179:   Aankhen,
                   39180:   Aaron Boodman,
                   39181:   Aaron Leventhal,
                   39182:   Adam Barth,
                   39183:   Adam de Boor,
                   39184:   Adam Hepton,
                   39185:   Adam Roben,
                   39186:   Addison Phillips,
                   39187:   Adele Peterson,
                   39188:   Adrian Bateman,
                   39189:   Adrian Sutton,
                   39190:   Agust&#237;n Fern&#225;ndez,
                   39191:   Aharon (Vladimir) Lanin,
                   39192:   Ajai Tirumali,
                   39193:   Akatsuki Kitamura,
                   39194:   Alan Plum,
                   39195:   Alastair Campbell,
                   39196:   Alejandro G. Castro,
                   39197:   Alex Bishop,
                   39198:   Alex Nicolaou,
                   39199:   Alex Rousskov,
                   39200:   Alexander J. Vincent,
                   39201:   Alexandre Morgaut,
                   39202:   Alexey Feldgendler,
                   39203:   &#1040;&#1083;&#1077;&#1082;&#1089;&#1077;&#1081; &#1055;&#1088;&#1086;&#1089;&#1082;&#1091;&#1088;&#1103;&#1082;&#1086;&#1074; (Alexey Proskuryakov),
                   39204:   Alexis Deveria,
                   39205:   Allan Clements,
                   39206:   Amos Jeffries,
                   39207:   Anders Carlsson,
                   39208:   Andreas<!-- mqmq87 -->,
                   39209:   Andreas Kling,
                   39210:   Andrei Popescu,
                   39211:   Andr&#233; E. Veltstra,
                   39212:   Andrew Barfield,
                   39213:   Andrew Clover,
                   39214:   Andrew Gove,
                   39215:   Andrew Grieve,
                   39216:   Andrew Oakley,
                   39217:   Andrew Sidwell,
                   39218:   Andrew Simons,
                   39219:   Andrew Smith,
                   39220:   Andrew W. Hagen,
                   39221:   Andrey V. Lukyanov,
                   39222:   Andy Heydon,
                   39223:   Andy Palay,
                   39224:   Anne van Kesteren,
                   39225:   Anthony Boyd,
                   39226:   Anthony Bryan,
                   39227:   Anthony Hickson,
                   39228:   Anthony Ricaud,
                   39229:   Antti Koivisto,
                   39230:   Arne Thomassen,
                   39231:   Aron Spohr,
                   39232:   Arphen Lin,
                   39233:   Arun Patole,
                   39234:   Aryeh Gregor,
                   39235:   Asbj&#248;rn Ulsberg,
                   39236:   Ashley Gullen,
                   39237:   Ashley Sheridan,
                   39238:   Atsushi Takayama,
                   39239:   Aurelien Levy,
                   39240:   Ave Wrigley,
                   39241:   Ben Boyle,
                   39242:   Ben Godfrey,
                   39243:   Ben Lerner,
                   39244:   Ben Leslie,
                   39245:   Ben Meadowcroft,
                   39246:   Ben Millard,
                   39247:   Benjamin Carl Wiley Sittler,
                   39248:   Benjamin Hawkes-Lewis,
                   39249:   Bert Bos,
                   39250:   Bijan Parsia,
                   39251:   Bil Corry,
                   39252:   Bill Mason,
                   39253:   Bill McCoy,
                   39254:   Billy Wong,
                   39255:   Bjartur Thorlacius,
                   39256:   Bj&#246;rn H&#246;hrmann,
                   39257:   Blake Frantz,
                   39258:   Boris Zbarsky,
                   39259:   Brad Fults,
                   39260:   Brad Neuberg,
                   39261:   Brad Spencer,
                   39262:   Brady Eidson,
                   39263:   Brendan Eich,
                   39264:   Brenton Simpson,
                   39265:   Brett Wilson,
                   39266:   Brett Zamir,
                   39267:   Brian Campbell,
                   39268:   Brian Korver,
                   39269:   Brian Kuhn,
                   39270:   Brian Ryner,
                   39271:   Brian Smith,
                   39272:   Brian Wilson,
                   39273:   Bryan Sullivan,
                   39274:   Bruce D'Arcus,
                   39275:   Bruce Lawson,
                   39276:   Bruce Miller,
                   39277:   C. Williams,
                   39278:   Cameron McCormack,
                   39279:   Cao Yipeng,
                   39280:   Carlos Gabriel Cardona,
                   39281:   Carlos Perell&#243; Mar&#237;n,
                   39282:   Chao Cai,
                   39283:   &#50980;&#49437;&#52268; (Channy Yun),
                   39284:   Charl van Niekerk,
                   39285:   Charles Iliya Krempeaux,
                   39286:   Charles McCathieNevile,
                   39287:   Chris Apers,
                   39288:   Chris Cressman,
                   39289:   Chris Evans,
                   39290:   Chris Morris,
                   39291:   Chris Pearce,
                   39292:   Christian Biesinger,
                   39293:   Christian Johansen,
                   39294:   Christian Schmidt,
                   39295:   Christopher Aillon,
                   39296:   Christopher Ferris,
                   39297:   Chriswa,
                   39298:   Clark Buehler,
                   39299:   Cole Robison,
                   39300:   Colin Fine,
                   39301:   Collin Jackson,
                   39302:   Corprew Reed,
                   39303:   Craig Cockburn,
                   39304:   Csaba Gabor,
                   39305:   Csaba Marton,
                   39306:   Cynthia Shelly,
                   39307:   Dan Yoder,
                   39308:   Daniel Barclay,
                   39309:   Daniel Bratell,
                   39310:   Daniel Brooks,
                   39311:   Daniel Brumbaugh Keeney,
                   39312:   Daniel Cheng,
                   39313:   Daniel Davis,
                   39314:   Daniel Glazman,
                   39315:   Daniel Peng,
                   39316:   Daniel Schattenkirchner,
                   39317:   Daniel Sp&#229;ng,
                   39318:   Daniel Steinberg,
                   39319:   Danny Sullivan,
                   39320:   Darin Adler,
                   39321:   Darin Fisher,
                   39322:   Darxus,
                   39323:   Dave Camp,
                   39324:   Dave Hodder,
                   39325:   Dave Lampton,
                   39326:   Dave Singer,
                   39327:   Dave Townsend<!-- Mossop on moz irc -->,
                   39328:   David Baron,
                   39329:   David Bloom,
                   39330:   David Bruant,
                   39331:   David Carlisle,
                   39332:   David E. Cleary,
                   39333:   David Egan Evans,
                   39334:   David Flanagan,
                   39335:   David Gerard,
                   39336:   David H&#229;s&#228;ther,
                   39337:   David Hyatt,
                   39338:   David I. Lehn,
                   39339:   David John Burrowes,
                   39340:   David Matja,
                   39341:   David Remahl,
                   39342:   David Smith,
                   39343:   David Woolley,
                   39344:   DeWitt Clinton,
                   39345:   Dean Edridge,
                   39346:   Dean Edwards,
                   39347:   Debi Orton,
                   39348:   Derek Featherstone,
                   39349:   Devdatta,
                   39350:   Dimitri Glazkov,
                   39351:   Dimitry Golubovsky,
                   39352:   Dirk Pranke,
                   39353:   Divya Manian,
                   39354:   Dmitry Titov,
                   39355:   dolphinling,
                   39356:   Dominique Haza&#235;l-Massieux,
                   39357:   Don Brutzman,
                   39358:   Doron Rosenberg,
                   39359:   Doug Kramer,
                   39360:   Doug Simpkinson,
                   39361:   Drew Wilson,
                   39362:   Edmund Lai,
                   39363:   Eduard Pascual,
                   39364:   Eduardo Vela,
                   39365:   Edward O'Connor,
                   39366:   Edward Welbourne,
                   39367:   Edward Z. Yang,
                   39368:   Ehsan Akhgari,
                   39369:   Eira Monstad,
                   39370:   Eitan Adler,
                   39371:   Eliot Graff,
                   39372:   Elisabeth Robson,
                   39373:   Elizabeth Castro,
                   39374:   Elliott Sprehn,
                   39375:   Elliotte Harold,
                   39376:   Eric Carlson,
                   39377:   Eric Lawrence,
                   39378:   Eric Rescorla,
                   39379:   Eric Semling,
                   39380:   Erik Arvidsson,
                   39381:   Erik Rose,
                   39382:   Evan Martin,
                   39383:   Evan Prodromou,
                   39384:   Evert,
                   39385:   fantasai,
                   39386:   Felix Sasaki,
                   39387:   Francesco Schwarz,
                   39388:   Francis Brosnan Blazquez,
                   39389:   Franck 'Shift' Qu&#233;lain,
                   39390:   Frank Barchard,
                   39391:   &#40284;&#39164;&#25991;&#25935; (Fumitoshi Ukai),
                   39392:   Futomi Hatano,
                   39393:   Gavin Carothers,
                   39394:   Gavin Kistner,
                   39395:   Gareth Rees,
                   39396:   Garrett Smith,
                   39397:   Geoffrey Garen,
                   39398:   Geoffrey Sneddon,
                   39399:   George Lund,
                   39400:   Gianmarco Armellin,
                   39401:   Giovanni Campagna,
                   39402:   Giuseppe Pascale,
                   39403:   Glenn Adams,
                   39404:   Glenn Maynard,
                   39405:   Graham Klyne,
                   39406:   Greg Botten,
                   39407:   Greg Houston,
                   39408:   Greg Wilkins,
                   39409:   Gregg Tavares,
                   39410:   Gregory J. Rosmaita,
                   39411:   Grey,
                   39412:   Guilherme Johansson Tramontina,
                   39413:   Gytis Jakutonis,
                   39414:   H&#229;kon Wium Lie,
                   39415:   Hallvord Reiar Michaelsen Steen,
                   39416:   Hans S. T&#248;mmerhalt,
                   39417:   Hans Stimer,
                   39418:   Harald Alvestrand,
                   39419:   Henri Sivonen,
                   39420:   Henrik Lied,
                   39421:   Henry Mason,
                   39422:   Hugh Guiney,
                   39423:   Hugh Winkler,
                   39424:   Ian Bicking,
                   39425:   Ian Clelland,
                   39426:   Ian Davis,
                   39427:   Ian Fette,
                   39428:   Ido Green,
                   39429:   Ignacio Javier,
                   39430:   Ivan Enderlin,
                   39431:   Ivo Emanuel Gon&#231;alves,
                   39432:   J. King,
                   39433:   Jacob Davies,
                   39434:   Jacques Distler,
                   39435:   Jake Verbaten,
                   39436:   James Craig,
                   39437:   James Graham,
                   39438:   James Justin Harrell,
                   39439:   James Kozianski,
                   39440:   James M Snell,
                   39441:   James Perrett,
                   39442:   James Robinson,
                   39443:   Jamie Lokier,
                   39444:   Jan-Klaas Kollhof,
                   39445:   Jason Duell,
                   39446:   Jason Kersey,
                   39447:   Jason Lustig,
                   39448:   Jason White,
                   39449:   Jasper Bryant-Greene,
                   39450:   Jatinder Mann,
                   39451:   Jed Hartman,
                   39452:   Jeff Balogh,
                   39453:   Jeff Cutsinger,
                   39454:   Jeff Schiller,
                   39455:   Jeff Walden,
                   39456:   Jeffrey Zeldman,
                   39457:   &#32993;&#24935;&#37586; (Jennifer Braithwaite),
                   39458:   Jens Bannmann,
                   39459:   Jens Fendler,
                   39460:   Jens Lindstr&#246;m,
                   39461:   Jens Meiert,
                   39462:   Jeremey Hustman,
                   39463:   Jeremy Keith,
                   39464:   Jeremy Orlow,
                   39465:   Jeroen van der Meer,
                   39466:   Jian Li,
                   39467:   Jim Jewett,
                   39468:   Jim Ley,
                   39469:   Jim Meehan,
                   39470:   Jirka Kosek,
                   39471:   Jjgod Jiang,
                   39472:   Jo&#227;o Eiras,
                   39473:   Joe Clark,
                   39474:   Joe Gregorio,
                   39475:   Joel Spolsky,
                   39476:   Johan Herland,
                   39477:   John Boyer,
                   39478:   John Bussjaeger,
                   39479:   John Carpenter,
                   39480:   John Fallows,
                   39481:   John Foliot,
                   39482:   John Harding,
                   39483:   John Keiser,
                   39484:   John Snyders,
                   39485:   John Stockton,
                   39486:   John-Mark Bell,
                   39487:   Johnny Stenback,
                   39488:   Jon Ferraiolo,
                   39489:   Jon Gibbins,
                   39490:   Jon Perlow,
                   39491:   Jonas Sicking,
                   39492:   Jonathan Cook,
                   39493:   Jonathan Rees,
                   39494:   Jonathan Worent,
                   39495:   Jonny Axelsson,
                   39496:   Jorgen Horstink,
                   39497:   Jorunn Danielsen Newth,
                   39498:   Joseph Kesselman,
                   39499:   Joseph Mansfield,
                   39500:   Joseph Pecoraro,
                   39501:   Josh Aas,
                   39502:   Josh Hart,
                   39503:   Josh Levenberg,
                   39504:   Joshua Bell,
                   39505:   Joshua Randall,
                   39506:   Jukka K. Korpela,
                   39507:   Jules Cl&#233;ment-Ripoche,
                   39508:   Julian Reschke,
                   39509:   J&#252;rgen Jeka,
                   39510:   Justin Lebar,
                   39511:   Justin Novosad,
                   39512:   Justin Schuh,
                   39513:   Justin Sinclair,
                   39514:   Kai Hendry,
                   39515:   &#21570;&#24247;&#35946; (KangHao Lu)<!-- Kenny, kennyluck-->,
                   39516:   Kartikaya Gupta,
                   39517:   Kathy Walton,
                   39518:   Kelly Ford,
                   39519:   Kelly Norton,
                   39520:   Kevin Benson,
                   39521:   Kevin Cole,
                   39522:   Korn&#233;l P&#225;l,
                   39523:   Kornel Lesinski,
                   39524:   Kris Northfield,
                   39525:   Kristof Zelechovski,
                   39526:   Krzysztof Maczy&#324;ski,
                   39527:   &#40658;&#28580;&#21083;&#24535; (Kurosawa Takeshi),
                   39528:   Kyle Hofmann<!-- Ozob -->,
                   39529:   Kyle Huey,
                   39530:   L&#233;onard Bouchet,
                   39531:   L&#233;onie Watson,
                   39532:   Lachlan Hunt,
                   39533:   Larry Masinter,
                   39534:   Larry Page,
                   39535:   Lars Gunther<!-- Keryx Web -->,
                   39536:   Lars Solberg,
                   39537:   Laura Carlson,
                   39538:   Laura Granka,
                   39539:   Laura L. Carlson,
                   39540:   Laura Wisewell,
                   39541:   Laurens Holst,
                   39542:   Lee Kowalkowski,
                   39543:   Leif Halvard Silli,
                   39544:   Lenny Domnitser,
                   39545:   Leonard Rosenthol,
                   39546:   Leons Petrazickis,
                   39547:   Lobotom Dysmon,
                   39548:   Logan<!-- on moz irc -->,
                   39549:   Loune,
                   39550:   Luke Kenneth Casson Leighton,
                   39551:   Maciej Stachowiak,
                   39552:   Magnus Kristiansen<!-- Dashiva -->,
                   39553:   Maik Merten,
                   39554:   Malcolm Rowe,
                   39555:   Mark Birbeck,
                   39556:   Mark Davis,
                   39557:   Mark Miller,
                   39558:   Mark Nottingham,
                   39559:   Mark Pilgrim,
                   39560:   Mark Rowe<!--bdash-->,
                   39561:   Mark Schenk,
                   39562:   Mark Wilton-Jones,
                   39563:   Martijn Wargers,
                   39564:   Martin Atkins,
                   39565:   Martin D&#252;rst,
                   39566:   Martin Honnen,
                   39567:   Martin Janecke,
                   39568:   Martin Kutschker,
                   39569:   Martin Nilsson,
                   39570:   Martin Thomson,
                   39571:   Masataka Yakura,
                   39572:   Mathias Bynens,
                   39573:   Mathieu Henri,
                   39574:   Matias Larsson,
                   39575:   Matt Schmidt,
                   39576:   Matt Wright,
                   39577:   Matthew Gregan,
                   39578:   Matthew Mastracci,
                   39579:   Matthew Raymond,
                   39580:   Matthew Thomas,
                   39581:   Mattias Waldau,
                   39582:   Max Romantschuk,
                   39583:   Menno van Slooten,
                   39584:   Micah Dubinko,
                   39585:   Michael 'Ratt' Iannarelli,
                   39586:   Michael A. Nachbaur,
                   39587:   Michael A. Puls II<!--Shadow2531-->,
                   39588:   Michael Carter,
                   39589:   Michael Daskalov,
                   39590:   Michael Enright,
                   39591:   Michael Gratton,
                   39592:   Michael Nordman,
                   39593:   Michael Powers,
                   39594:   Michael Rakowski,
                   39595:   Michael(tm) Smith,
                   39596:   Michal Zalewski,
                   39597:   Michel Fortin,
                   39598:   Michelangelo De Simone,
                   39599:   Michiel van der Blonk,
                   39600:   Mihai &#350;ucan<!-- from ROBO Design -->,
                   39601:   Mihai Parparita,
                   39602:   Mike Brown,
                   39603:   Mike Dierken<!-- S. Mike Dierken -->,
                   39604:   Mike Dixon,
                   39605:   Mike Schinkel,
                   39606:   Mike Shaver,
                   39607:   Mikko Rantalainen,
                   39608:   Mohamed Zergaoui<!-- Innovimax SARL -->,
                   39609:   Mounir Lamouri,
                   39610:   Ms2ger,
                   39611:   NARUSE Yui,
                   39612:   Neil Deakin,
                   39613:   Neil Rashbrook,
                   39614:   Neil Soiffer,
                   39615:   Nicholas Shanks,
                   39616:   Nicholas Stimpson,
                   39617:   Nicholas Zakas,
                   39618:   Nickolay Ponomarev,
                   39619:   Nicolas Gallagher,
                   39620:   Noah Mendelsohn,
                   39621:   Noah Slater,
                   39622:   Noel Gordon,
                   39623:   NoozNooz42,
                   39624:   Norbert Lindenberg,
                   39625:   Ojan Vafai,
                   39626:   Olaf Hoffmann,
                   39627:   Olav Junker Kj&#230;r,
                   39628:   Old&#345;ich Vete&#353;n&#237;k,
                   39629:   Oli Studholme,
                   39630:   Oliver Hunt,
                   39631:   Oliver Rigby,
                   39632:   Olivier Gendrin,
                   39633:   Olli Pettay,
                   39634:   oSand, <!-- from reddit -->
                   39635:   Patrick H. Lauke,
                   39636:   Patrik Persson,
                   39637:   Paul Adenot,
                   39638:   Paul Norman,
                   39639:   Per-Erik Brodin,
                   39640:   Perry Smith,
                   39641:   Peter Beverloo,
                   39642:   Peter Karlsson,
                   39643:   Peter Kasting,
                   39644:   Peter Moulder,
                   39645:   Peter Stark,
                   39646:   Peter-Paul Koch,
                   39647:   Phil Pickering,
                   39648:   Philip J&#228;genstedt,
                   39649:   Philip Taylor,
                   39650:   Philip TAYLOR<!-- a different one -->,
                   39651:   Philippe De Ryck,
                   39652:   Prateek Rungta,
                   39653:   Pravir Gupta,
                   39654:   &#26446;&#26222;&#21531; (Pujun Li)<!-- masa jack -->,
                   39655:   Rachid Finge,
                   39656:   Rafa&#322; Mi&#322;ecki,
                   39657:   Rajas Moonka,
                   39658:   Ralf Stoltze,
                   39659:   Ralph Giles,
                   39660:   Raphael Champeimont,
                   39661:   Remci Mizkur,
                   39662:   Remco,
                   39663:   Remy Sharp,
                   39664:   Rene Saarsoo,
                   39665:   Rene Stach,
                   39666:   Ric Hardacre,
                   39667:   Rich Doughty,
                   39668:   Richard Ishida,
                   39669:   Rigo Wenning,
                   39670:   Rikkert Koppes,
                   39671:   Rimantas Liubertas,
                   39672:   Riona Macnamara,
                   39673:   Rob Ennals,
                   39674:   Rob Jellinghaus,
                   39675:   Rob S,
                   39676:   Robert Blaut,
                   39677:   Robert Collins,
                   39678:   Robert Millan,
                   39679:   Robert O'Callahan,
                   39680:   Robert Sayre,
                   39681:   Robin Berjon,
                   39682:   Rodger Combs,
                   39683:   Roland Steiner,
                   39684:   Roman Ivanov,
                   39685:   Roy Fielding,
                   39686:   Ruud Steltenpool,
                   39687:   Ryan King,
                   39688:   Ryosuke Niwa,
                   39689:   S. Mike Dierken,
                   39690:   Salvatore Loreto,
                   39691:   Sam Dutton,
                   39692:   Sam Kuper,
                   39693:   Sam Ruby,
                   39694:   Sam Weinig,
                   39695:   Sander van Lambalgen,
                   39696:   Sarven Capadisli,
                   39697:   Scott Gonz&#225;lez,
                   39698:   Scott Hess,
                   39699:   Sean Fraser,
                   39700:   Sean Hayes,
                   39701:   Sean Hogan,
                   39702:   Sean Knapp,
                   39703:   Sebastian Markb&#229;ge,
                   39704:   Sebastian Schnitzenbaumer,
                   39705:   Seth Call,
                   39706:   Shanti Rao,
                   39707:   Shaun Inman,
                   39708:   Shiki Okasaka,
                   39709:   Sierk Bornemann,
                   39710:   Sigbj&#248;rn Vik,
                   39711:   Silvia Pfeiffer,
                   39712:   Simon Montagu,
                   39713:   Simon Pieters,
                   39714:   Simon Spiegel,
                   39715:   skeww, <!-- on reddit -->
                   39716:   Smylers,
                   39717:   Stanton McCandlish,
                   39718:   Stefan H&#229;kansson,
                   39719:   Stefan Haustein,
                   39720:   Stefan Santesson,
                   39721:   Stefan Weiss,
                   39722:   Steffen Meschkat,
                   39723:   Stephen Ma,
                   39724:   Stephen White,
                   39725:   Steve Comstock,
                   39726:   Steve Faulkner,
                   39727:   Steve Runyon,
                   39728:   Steven Bennett,
                   39729:   Steven Garrity,
                   39730:   Steven Tate,
                   39731:   Stewart Brodie,
                   39732:   Stuart Ballard,
                   39733:   Stuart Parmenter,
                   39734:   Subramanian Peruvemba,
                   39735:   Sunava Dutta,
                   39736:   Susan Borgrink,
                   39737:   Susan <!--G.--> Lesch,
                   39738:   Sylvain Pasche,
                   39739:   T. J. Crowder,
                   39740:   Tab Atkins,
                   39741:   <span lang="tr" title="">Tantek &#199;elik</span>,
                   39742:   &#30000;&#26449;&#20581;&#20154; (TAMURA Kent),
                   39743:   Ted Mielczarek,
                   39744:   Terrence Wood,
                   39745:   Thomas Broyer,
                   39746:   Thomas Koetter,
                   39747:   Thomas O'Connor,
                   39748:   Tim Altman,
                   39749:   Tim Johansson,
                   39750:   Toby Inkster,
                   39751:   Todd Moody,
                   39752:   Tom Baker,
                   39753:   Tom Pike,
                   39754:   Tommy Thorsen,
                   39755:   Travis Leithead,
                   39756:   Tyler Close,
                   39757:   Victor Carbune,
                   39758:   Vladimir Katardjiev,
                   39759:   Vladimir Vuki&#263;evi&#263;,
                   39760:   voracity,
                   39761:   Wakaba,
                   39762:   Wayne Carr,
                   39763:   Wayne Pollock,
                   39764:   Wellington Fernando de Macedo,
                   39765:   Weston Ruter,
                   39766:   Wilhelm Joys Andersen,
                   39767:   Will Levine,
                   39768:   William Swanson,
                   39769:   Wladimir Palant,
                   39770:   Wojciech Mach,
                   39771:   Wolfram Kriesing,
                   39772:   Xan Gregg,
                   39773:   Yang Chen,
                   39774:   Ye-Kui Wang,
                   39775:   Yehuda Katz,
                   39776:   Yi-An Huang,
                   39777:   Yngve Nysaeter Pettersen,
                   39778:   Yuzo Fujishima,
                   39779:   Zhenbin Xu,
                   39780:   Zoltan Herczeg,
                   39781:   and
                   39782:   &#216;istein E. Andersen,
                   39783: 
                   39784:   for their useful comments, both large and small, that have led to
                   39785:   changes to this specification over the years.</p>
                   39786: 
                   39787:   <p>Thanks also to everyone who has ever posted about HTML to their
                   39788:   blogs, public mailing lists, or forums, including all the
                   39789:   contributors to the <a href="http://www.w3.org/html/wg/lists/">various W3C HTML WG
                   39790:   lists</a> and the <a href="http://www.whatwg.org/mailing-list">various WHATWG lists</a>.
                   39791: 
                   39792:   </p><p>Special thanks to Richard Williamson for creating the first
                   39793:   implementation of <code><a href="the-canvas-element.html#the-canvas-element">canvas</a></code> in Safari, from which the
                   39794:   canvas feature was designed.</p>
                   39795: 
                   39796:   <p>Special thanks also to the Microsoft employees who first
                   39797:   implemented the event-based drag-and-drop mechanism, <code title="attr-contenteditable"><a href="#attr-contenteditable">contenteditable</a></code>, and other
                   39798:   features first widely deployed by the Windows Internet Explorer
                   39799:   browser.</p>
                   39800: 
                   39801: <!--MD-->
                   39802: 
                   39803:   <div class="impl">
                   39804: 
                   39805:   <p>Special thanks and $10,000 to David Hyatt who came up with a
                   39806:   broken implementation of the <a href="#adoptionAgency">adoption
                   39807:   agency algorithm</a> that the editor had to reverse engineer and fix
                   39808:   before using it in the parsing section.</p>
                   39809: 
                   39810:   </div>
                   39811: 
                   39812:   <p>Thanks to the many sources that provided inspiration for the
                   39813:   examples used in the specification.</p>
                   39814: 
                   39815:   
                   39816:   <p>Thanks also to the Microsoft blogging community for some ideas,
                   39817:   to the attendees of the W3C Workshop on Web Applications and
                   39818:   Compound Documents for inspiration, to the #mrt crew, the #mrt.no
                   39819:   crew, and the #whatwg crew, and to Pillar and Hedral for their ideas
                   39820:   and support.</p>
                   39821: 
                   39822:   <!-- Hopefully Kam won't notice he's covered by these
                   39823:   acknowledgements three times! -->
                   39824: 
                   39825: <!--
                   39826:  v2  * library of resources:
                   39827:         var library = new ZipFile("data.zip");
                   39828:         library.onload = function() {
                   39829:           var sound1 = library.getAudio("sound1.wav"); // returns an Audio object
                   39830:           var image1 = library.getImage("image1.png"); // returns an HTMLImageElement
                   39831:           var doc1 = library.getXMLDocument("doc1.xml"); // returns a Document (XML Document mode)
                   39832:           var doc2 = library.getHTMLDocument("doc1.html"); // returns a Document (HTML Document mode)
                   39833:         }
                   39834:        or:
                   39835:         var library = new ResourceLoader("data.zip");
                   39836:         library.add("moredata.zip");
                   39837:         library.onload = function() { ... }
                   39838:         library.onloading = function() {
                   39839:           reportLoadProgress(library.progress); // 0.0 .. 1.0
                   39840:         }
                   39841:        or:
                   39842:         var library = new AudioZip("sounds.zip");
                   39843:         library.onload = function() {
                   39844:           var sound1 = library["sound1.wav"];
                   39845:           sound.play();
                   39846:         }
                   39847:  v2  * a fairly common situation for web authors is to have two lists, where
                   39848:        the contents of the second depends on the value of the first. Is there
                   39849:        any way we could extend the current model to include this functionality?
                   39850:        (e.g. bugzilla product/component ui)
                   39851:  v2  * quick-searchable select
                   39852:  v2  * include/exclude selectors (two multi-select columns with arrows to
                   39853:        move selected items) and that sort of thing.
                   39854:        http://slashdot.org/comments.pl?sid=110240&cid=9357022
                   39855:  v2  * Oh, and forms need a standardized Help widget/icon. I know I can
                   39856:        turn my cursor into a question mark, but I'm looking for something
                   39857:        simple and pervasive. Maybe you can wrap fields in a help tag, just
                   39858:        as you do for fieldsets. And in that help tag, attributes are
                   39859:        available that allow for a nice, formatted, clean, full help text
                   39860:        popup/area/thing.
                   39861:        http://slashdot.org/comments.pl?sid=110240&cid=9359006
                   39862:  v2  * Validating only part of a form. - Anja Lehmann
                   39863:  v2  * Reminder to add a way to expose access keys in buttons, i.e.
                   39864:        Sub&mit where & signifies the m is the access key to use. Possibly
                   39865:        automatic? <input accesskey="m" value="Submit"> browser would be
                   39866:        smart enough to underline the first instance of the access key if
                   39867:        it exists (case insensitive)? - kerz
                   39868:        [or deprecate the lot (->web apps)]
                   39869:  v2  * need an attribute that says "the children of this element are in
                   39870:        their own tabbing universe, tabindex should be relative to each
                   39871:        other, not to the document"
                   39872:        -> web apps?
                   39873:  v2  * make select widgets have multiple columns
                   39874:        or ->web apps with list view
                   39875:  v2  * required as a group (one of the following must be available):
                   39876:        + i propose something like the following:
                   39877:            <input type="text" group="contact" name="voicephone"> Voice phone
                   39878:            <input type="text" group="contact" name="fax"> Fax
                   39879:            <input type="text" group="contact" name="mobile"> Mobile phone
                   39880:            <input type="text" group="contact" name="email"> E-mail
                   39881:          if the user fills out none of the form fields in the "contact"
                   39882:          group, an error message is shown and the form is not submitted.
                   39883:          - Peter-Paul Koch
                   39884:  v2  * formatting of number fields, text fields, etc, so that when the
                   39885:        field is not focused, the value is displayed differently. Seems
                   39886:        like this would also be useful e.g. for <output> or something so
                   39887:        you can display localised dates, etc.
                   39888:  v2  * being able to select date range (from day x to day y)
                   39889:  v2  * ways of visualizing a linefeed in a <textarea> so it looks different
                   39890:        from wrapping text
                   39891:  v2  * all login systems have
                   39892:          1. enter username and password
                   39893:          2. create new account
                   39894:          3. lost password
                   39895:        some way of integrating this into one system, since it's so common
                   39896:  v2  * way of identifying different sorts of mailadresses
                   39897:          a) mailing-list
                   39898:          b) person
                   39899:          c) department in a company ("support", "marketing" and such)
                   39900:          d) general mail (like "info", "mail", "contact" and such)
                   39901:          e) other sorts of groupings
                   39902:        (or ->web apps; this is talking about in mailto: links, I think)
                   39903:  v2  * hotswapping login identities like in windows xp
                   39904:          you are logged in on operamail.com, and you want to check the mail
                   39905:          of another user. somehow, combined with the wand or whatever,
                   39906:          the browser will remember the login page, and it can re-submit it
                   39907:          without having to load the initial page (saving time)
                   39908:  v2  * provide different measuring systems, like having the html indicate
                   39909:        fluid in both fluid ounces and liters, and the browser can display
                   39910:        one or the other based on regional settings in the browser or ui,
                   39911:        display conversions in a tooltip, or let the user decide which
                   39912:        format to display.
                   39913:  v2  * indicate "x days ago" or "y days into the future" rather than date
                   39914:  v2  * input control for anniversaries
                   39915:  v2  * only submit fields that have changed, or a way to include in the
                   39916:        submission a list of which form controls were changed from their
                   39917:        default value
                   39918:  v2  * type="time" value="now"
                   39919:  v2  * add something to type="number" to support basic currency and unit
                   39920:        formatting of input
                   39921:  v2  * <fieldset enabled-if-checked="myCheckboxOrRadioButton">
                   39922:        ...to allow sections to only be enabled if a radio button makes it
                   39923:        relevant, for instance.
                   39924:  v2  * Yan Morin proposed a multi-column dropdown <select> or <datalist>:
                   39925:          _________________
                   39926:         |_New_York______|V|_________________  <- input  with a table link and a down arrow
                   39927:         |_City__________|_State_|_Country_|_| <- header of the table
                   39928:         | Montreal      |  QC   | Canada  |A| <- top arrow of the scroll
                   39929:         |>New York     <|  NY   | US      | | <- selected row
                   39930:         | Washington    |  DC   | US      |X| <- cursor scroll
                   39931:         | San Francisco |  CA   | US      | |
                   39932:         |_Toronto_______|__ON___|_Canada__|V| <- bottom arrow of the scroll
                   39933: 
                   39934:  v2  * add for="" attribute to <input type="password"> so that you can
                   39935:        link usernames and passwords. (Jonas Sicking)
                   39936:  v2  * value for unchecked checkbox?
                   39937:  v2  * A way to specify the default button - Michael Gratton
                   39938:  v2  * <fieldset readonly>?
                   39939:  v2  * dolphinling suggests having a way to mark certain parts of a
                   39940:        form as being dependent on another (mutually exclusive parts of
                   39941:        a form)
                   39942:  v2  * expose the form data set, either as an object (on which one can
                   39943:        invoke the JSON serialiser), or in the form of a method on
                   39944:        HTMLFormElement that returns the form data set serialised
                   39945:        according to a particular encoding (defaulting to the form's
                   39946:        enctype="" one, probably). This would allow forms to be used
                   39947:        with XHR-like systems without having to manually construct the
                   39948:        form data set the way that is done today.
                   39949:  v2  * expose the file upload progress when uploading files in a form
                   39950:        (ideally using the same mechanism as XHR2?); ack Rob Evans
                   39951: 
                   39952: Consistency in editorial style:
                   39953:  v2  * need to become consistent about whether or not to quote keyword
                   39954:        ("<code title="">foo</code>" vs <code>foo</code>)
                   39955:  v2  * make the spec consistent about whether the word "algorithm" is part of
                   39956:        an algorithm's name or not ("</dfn> algorithm", "</span> algorithm")
                   39957:  v2  * make the spec more consistent about its use of "hexadecimal"
                   39958:        and "base-sixteen", the order that 0-9 A-Z a-z is mentioned,
                   39959:        and the detail to which the spec explains how to interpret a
                   39960:        string as a hexadecimal number.
                   39961:  v2  * become more consistent about what markup we use to mark up
                   39962:        productions (nothing? <i>? <code>?)
                   39963:  v2  * use <code>Document</code> consistently instead of 'document'.
                   39964:  v2  * be clearer about arrays/lists/collections being zero-based
                   39965:        despite using the term "/index/th".
                   39966:  v2  * use the sample widgets:
                   39967:           <li><img alt="A text field with editable sections for each
                   39968:           value, with a button to pop up a dialog showing a calendar or
                   39969:           clock." src="sample-datetime-ui-2"></li>
                   39970:           <li><img alt="A calendar grid with a clock in the upper right
                   39971:           hand corner." src="sample-datetime-ui-3"></li>
                   39972: -->
                   39973:  </dl></body></html>

Webmaster