HTML Standard Tracker

Filter

File a bug

SVNBugCommentTime (UTC)
3657[Authors] [Conformance Checkers] [Gecko] [Internet Explorer] [Opera] [Webkit] First cut at ARIA integration.2009-08-22 01:11
@@ -7696,23 +7696,25 @@ interface <dfn>HTMLUnknownElement</dfn> : <span>HTMLElement</span> { };</pre>
    <li><code title="attr-hidden">hidden</code></li>
    <li><code title="attr-lang">lang</code></li>
    <li><code title="attr-itemprop">itemprop</code></li>
    <li><code title="attr-spellcheck">spellcheck</code></li>
    <li><code title="attr-style">style</code></li>
    <li><code title="attr-subject">subject</code></li>
    <li><code title="attr-tabindex">tabindex</code></li>
    <li><code title="attr-title">title</code></li>
   </ul>
 
-  <p>In addition, unless otherwise specified, the following
-  <span>event handler content attributes</span> may be specified on
-  any <span title="HTML elements">HTML element</span>:</p>
+  <hr>
+
+  <p>Unless otherwise specified, the following <span>event handler
+  content attributes</span> may be specified on any <span title="HTML
+  elements">HTML element</span>:</p>
 
   <ul class="brief">
    <li><code title="handler-onabort">onabort</code></li>
    <li><code title="handler-onblur">onblur</code>*</li>
    <li><code title="handler-oncanplay">oncanplay</code></li>
    <li><code title="handler-oncanplaythrough">oncanplaythrough</code></li>
    <li><code title="handler-onchange">onchange</code></li>
    <li><code title="handler-onclick">onclick</code></li>
    <li><code title="handler-oncontextmenu">oncontextmenu</code></li>
    <li><code title="handler-ondblclick">ondblclick</code></li>
@@ -7764,44 +7766,53 @@ interface <dfn>HTMLUnknownElement</dfn> : <span>HTMLElement</span> { };</pre>
    <li><code title="handler-onwaiting">onwaiting</code></li>
   </ul>
 
   <p class="note">The attributes marked with an asterisk have a
   different meaning when specified on <code>body</code> elements as
   those elements expose <span>event handler attributes</span> of the
   <code>Window</code> object with the same names.</p>
 
   <hr>
 
-  <p>Also, <span title="custom data attribute">custom data
-  attributes</span> (e.g. <code title="">data-foldername</code> or
-  <code title="">data-msgid</code>) can be specified on any <span
+  <p><span title="custom data attribute">Custom data attributes</span>
+  (e.g. <code title="">data-foldername</code> or <code
+  title="">data-msgid</code>) can be specified on any <span
   title="HTML elements">HTML element</span>, to store custom data
   specific to the page.</p>
 
+  <hr>
+
   <p>In <span>HTML documents</span>, elements in the <span>HTML
   namespace</span> may have an <code title="">xmlns</code> attribute
   specified, if, and only if, it has the exact value
   "<code>http://www.w3.org/1999/xhtml</code>". This does not apply to
   <span>XML documents</span>.</p>
 
   <p class="note">In HTML, the <code title="">xmlns</code> attribute
   has absolutely no effect. It is basically a talisman. It is allowed
   merely to make migration to and from XHTML mildly easier. When
   parsed by an <span>HTML parser</span>, the attribute ends up in no
   namespace, not the "<code>http://www.w3.org/2000/xmlns/</code>"
   namespace like namespace declaration attributes in XML do.</p>
 
   <p class="note">In XML, an <code title="">xmlns</code> attribute is
   part of the namespace declaration mechanism, and an element cannot
   actually have an <code title="">xmlns</code> attribute in no
   namespace specified.</p>
 
+  <hr>
+
+  <p>To enable assistive technology products to expose a more
+  fine-grained interface than is otherwise possible with HTML elements
+  and attributes, a set of <span>annotations for assistive technology
+  products</span> can be specified.</p>
+
 
   <h5>The <dfn title="attr-id"><code>id</code></dfn> attribute</h5>
 
   <p>The <code title="attr-id">id</code> attribute
   <span>represents</span> its element's unique identifier. The value
   must be unique in the element's <span>home subtree</span> and must
   contain at least one character. The value must not contain any <span
   title="space character">space characters</span>.</p>
 
   <!-- space characters are disallowed because space-separated lists
@@ -9162,20 +9173,398 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
    the last paragraph as if it was at the start of the second sentence
    of the first paragraph.</p>
 
    <p>To avoid this confusion, explicit <code>p</code> elements can be
    used.</p>
 
   </div>
 
 
 
+  <h4><dfn>Annotations for assistive technology products</dfn></h4>
+
+  <p>Authors may use the ARIA <code title="attr-aria-role">role</code>
+  and <code title="attr-aria-*">aria-*</code> attributes on <span>HTML
+  elements</span>, in accordance with the requirements described in
+  the ARIA specifications, except where these conflict with the
+  <span>strong native semantics</span> described below. These
+  exceptions are intended to prevent authors from making assistive
+  technology products report nonsensical states that do not represent
+  the actual state of the document. <a href="#refsARIA">[ARIA]</a></p>
+
+  <div class="impl">
+
+  <p>User agents are required to implement ARIA semantics on all
+  <span>HTML elements</span>, as defined in the ARIA
+  specifications. The <span>implicit ARIA semantics</span> defined
+  below must be recognised by implementations. <a
+  href="#refsARIAIMPL">[ARIAIMPL]</a></p>
+
+  </div>
+
+  <p>The following table defines the <span>strong native
+  semantics</span> <span class="impl">and corresponding <span>implicit
+  ARIA semantics</span></span> that apply to <span>HTML
+  elements</span>. Each language feature (element or attribute) in a
+  cell in the first column implies the ARIA semantics (role, states,
+  and/or properties) given in the cell in the second column of the
+  same row. Authors must not set the ARIA <code
+  title="attr-aria-role">role</code> and <code
+  title="attr-aria-*">aria-*</code> attributes in a manner that
+  conflicts with the semantics described in the following table. When
+  multiple rows apply to an element, the role from the last row to
+  define a role must be applied, and the states and properties from
+  all the rows must be combined.</p>
+
+  <table>
+   <thead>
+    <tr>
+     <th>Language feature
+     <th>Implied ARIA semantics
+
+   <tbody>
+
+    <tr>
+     <td><code>a</code>, <code>area</code>, or <code>link</code> element that represents a <span>hyperlink</span>
+     <td><code title="attr-aria-role-link">link</code> role
+
+    <tr>
+     <td><code>address</code> element
+     <td><code title="attr-aria-role-contentinfo">contentinfo</code> role
+
+    <tr>
+     <td><code>base</code> element
+     <td>No role
+
+    <tr>
+     <td><code>button</code> element
+     <td><code title="attr-aria-role-button">button</code> role
+
+    <tr>
+     <td><code>datalist</code> element
+     <td><code title="attr-aria-role-listbox">listbox</code> role, with the <code title="attr-aria-multiselectable">aria-multiselectable</code> property set to "false"
+
+    <tr>
+     <td><code>footer</code> element
+     <td><code title="attr-aria-role-contentinfo">contentinfo</code> role
+
+    <tr>
+     <td><code>h1</code> element that does not have an <code>hgroup</code> ancestor
+     <td><code title="attr-aria-role-heading">heading</code> role
+
+    <tr>
+     <td><code>h2</code> element that does not have an <code>hgroup</code> ancestor
+     <td><code title="attr-aria-role-heading">heading</code> role
+
+    <tr>
+     <td><code>h3</code> element that does not have an <code>hgroup</code> ancestor
+     <td><code title="attr-aria-role-heading">heading</code> role
+
+    <tr>
+     <td><code>h4</code> element that does not have an <code>hgroup</code> ancestor
+     <td><code title="attr-aria-role-heading">heading</code> role
+
+    <tr>
+     <td><code>h5</code> element that does not have an <code>hgroup</code> ancestor
+     <td><code title="attr-aria-role-heading">heading</code> role
+
+    <tr>
+     <td><code>h6</code> element that does not have an <code>hgroup</code> ancestor
+     <td><code title="attr-aria-role-heading">heading</code> role
+
+    <tr>
+     <td><code>head</code> element
+     <td>No role
+
+    <tr>
+     <td><code>header</code> element
+     <td><code title="attr-aria-role-banner">banner</code> role
+
+    <tr>
+     <td><code>hgroup</code> element
+     <td><code title="attr-aria-role-heading">heading</code> role
+
+    <tr>
+     <td><code>hr</code> element
+     <td><code title="attr-aria-role-separator">separator</code> role
+
+    <tr>
+     <td><code>img</code> element whose <code title="attr-img-alt">alt</code> attribute's value is empty
+     <td><code title="attr-aria-role-presentation">presentation</code> role
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-button">Button</span> state
+     <td><code title="attr-aria-role-button">button</code> role
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-checkbox">Checkbox</span> state
+     <td><code title="attr-aria-role-checkbox">checkbox</code> role, with the <code title="attr-aria-checked">aria-checked</code> state set to "mixed" if the element's <code title="dom-input-indeterminate">indeterminate</code> DOM attribute is true, or "true" if the element's <span title="concept-fe-checked">checkedness</span> is true, or "false" otherwise
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-color">Color</span> state
+     <td>No role
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-date">Date</span> state
+     <td>No role, with the <code title="title-aria-readonly">aria-readonly</code> state set to "true" if the element has a <code title="attr-input-readonly">readonly</code> attribute
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-datetime">Date and Time</span> state
+     <td>No role, with the <code title="title-aria-readonly">aria-readonly</code> state set to "true" if the element has a <code title="attr-input-readonly">readonly</code> attribute
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-datetime-local">Local Date and Time</span> state
+     <td>No role, with the <code title="title-aria-readonly">aria-readonly</code> state set to "true" if the element has a <code title="attr-input-readonly">readonly</code> attribute
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-email">E-mail</span> state with no <span title="concept-input-list">suggestions source element</span>
+     <td><code title="attr-aria-role-textbox">textbox</code> role, with the <code title="title-aria-readonly">aria-readonly</code> state set to "true" if the element has a <code title="attr-input-readonly">readonly</code> attribute
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-file">File Upload</span> state
+     <td><code title="attr-aria-role-button">button</code> role
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-hidden">Hidden</span> state
+     <td>No role
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-image">Image Button</span> state
+     <td><code title="attr-aria-role-button">button</code> role
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-month">Month</span> state
+     <td>No role, with the <code title="title-aria-readonly">aria-readonly</code> state set to "true" if the element has a <code title="attr-input-readonly">readonly</code> attribute
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-number">Number</span> state
+     <td><code title="attr-aria-role-spinbutton">spinbutton</code> role, with the <code title="title-aria-readonly">aria-readonly</code> state set to "true" if the element has a <code title="attr-input-readonly">readonly</code> attribute, the <code title="attr-aria-valuemax">aria-valuemax</code> property set to the element's <span title="concept-input-max">maximum</span>, the <code title="attr-aria-valuemin">aria-valuemin</code> property set to the element's <span title="concept-input-min">minimum</span>, and, if the result of applying the <span>rules for parsing floating point number values</span> to the element's <span title="concept-fe-value">value</span> is a number, with the <code title="attr-aria-valuenow">aria-valuenow</code> property set to that number
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-password">Password</span> state
+     <td><code title="attr-aria-role-textbox">textbox</code> role, with the <code title="title-aria-readonly">aria-readonly</code> state set to "true" if the element has a <code title="attr-input-readonly">readonly</code> attribute
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-radio">Radio Button</span> state
+     <td><code title="attr-aria-role-radio">radio</code> role, with the <code title="attr-aria-checked">aria-checked</code> state set to "true" if the element's <span title="concept-fe-checked">checkedness</span> is true, or "false" otherwise
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-range">Range</span> state
+     <td><code title="attr-aria-role-slider">slider</code> role, with the <code title="attr-aria-valuemax">aria-valuemax</code> property set to the element's <span title="concept-input-max">maximum</span>, the <code title="attr-aria-valuemin">aria-valuemin</code> property set to the element's <span title="concept-input-min">minimum</span>, and the <code title="attr-aria-valuenow">aria-valuenow</code> property set to the result of applying the <span>rules for parsing floating point number values</span> to the element's <span title="concept-fe-value">value</span>, if that that results in a number, or the <span title="concept-input-value-default-range">default value</span> otherwise
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-reset">Reset Button</span> state
+     <td><code title="attr-aria-role-button">button</code> role
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-search">Search</span> state with no <span title="concept-input-list">suggestions source element</span>
+     <td><code title="attr-aria-role-textbox">textbox</code> role, with the <code title="title-aria-readonly">aria-readonly</code> state set to "true" if the element has a <code title="attr-input-readonly">readonly</code> attribute
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-submit">Submit Button</span> state
+     <td><code title="attr-aria-role-button">button</code> role
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-tel">Telephone</span> state with no <span title="concept-input-list">suggestions source element</span>
+     <td><code title="attr-aria-role-textbox">textbox</code> role, with the <code title="title-aria-readonly">aria-readonly</code> state set to "true" if the element has a <code title="attr-input-readonly">readonly</code> attribute
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-text">Text</span> state with no <span title="concept-input-list">suggestions source element</span>
+     <td><code title="attr-aria-role-textbox">textbox</code> role, with the <code title="title-aria-readonly">aria-readonly</code> state set to "true" if the element has a <code title="attr-input-readonly">readonly</code> attribute
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-text">Text</span>, <span title="attr-input-type-search">Search</span>, <span title="attr-input-type-tel">Telephone</span>, <span title="attr-input-type-url">URL</span>, or <span title="attr-input-type-email">E-mail</span> states with a <span title="concept-input-list">suggestions source element</span>
+     <td><code title="attr-aria-role-combobox">combobox</code> role, with the <code title="attr-aria-owns">aria-owns</code> property set to the same value as the <code title="attr-input-list">list</code> attribute, and the <code title="title-aria-readonly">aria-readonly</code> state set to "true" if the element has a <code title="attr-input-readonly">readonly</code> attribute
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-time">Time</span> state
+     <td>No role, with the <code title="title-aria-readonly">aria-readonly</code> state set to "true" if the element has a <code title="attr-input-readonly">readonly</code> attribute
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-url">URL</span> state with no <span title="concept-input-list">suggestions source element</span>
+     <td><code title="attr-aria-role-textbox">textbox</code> role, with the <code title="title-aria-readonly">aria-readonly</code> state set to "true" if the element has a <code title="attr-input-readonly">readonly</code> attribute
+
+    <tr>
+     <td><code>input</code> element with a <code title="attr-input-type">type</code> attribute in the <span title="attr-input-type-week">Week</span> state
+     <td>No role, with the <code title="title-aria-readonly">aria-readonly</code> state set to "true" if the element has a <code title="attr-input-readonly">readonly</code> attribute
+
+    <tr>
+     <td><code>menu</code> element with a <code title="attr-menu-type">type</code> attribute in the <span title="context menu state">context menu</span> state
+     <td>No role
+
+    <tr>
+     <td><code>menu</code> element with a <code title="attr-menu-type">type</code> attribute in the <span title="list state">list</span> state
+     <td><code title="attr-aria-role-menu">menu</code> role
+
+    <tr>
+     <td><code>menu</code> element with a <code title="attr-menu-type">type</code> attribute in the <span title="tool bar state">tool bar</span> state
+     <td><code title="attr-aria-role-toolbar">toolbar</code> role
+
+    <tr>
+     <td><code>meta</code> element
+     <td>No role
+
+    <tr>
+     <td><code>nav</code> element
+     <td><code title="attr-aria-role-navigation">navigation</code> role
+
+    <tr>
+     <td><code>option</code> element that is in a <span title="concept-select-option-list">list of options</span> or that represents a suggestion in a <code>datalist</code> element
+     <td><code title="attr-aria-role-option">option</code> role, with the <code title="attr-aria-selected">aria-selected</code> state set to "true" if the element's <span title="concept-option-selectedness">selectedness</span> is true, or "false" otherwise.
+
+    <tr>
+     <td><code>progress</code> element
+     <td><code title="attr-aria-role-progressbar">progressbar</code> role, with, if the progress bar is determinate, the <code title="attr-aria-valuemax">aria-valuemax</code> property set to the maximum value of the progress bar, the <code title="attr-aria-valuemin">aria-valuemin</code> property set to zero, and the <code title="attr-aria-valuenow">aria-valuenow</code> property set to the current value of the progress bar
+
+    <tr>
+     <td><code>select</code> element with a <code title="attr-select-multiple">multiple</code> attribute
+     <td><code title="attr-aria-role-listbox">listbox</code> role, with the <code title="attr-aria-multiselectable">aria-multiselectable</code> property set to "true"
+
+    <tr>
+     <td><code>select</code> element with no <code title="attr-select-multiple">multiple</code> attribute
+     <td><code title="attr-aria-role-listbox">listbox</code> role, with the <code title="attr-aria-multiselectable">aria-multiselectable</code> property set to "false"
+
+    <tr>
+     <td><code>style</code> element
+     <td>No role
+
+    <tr>
+     <td><code>td</code> element
+     <td><code title="attr-aria-role-gridcell">gridcell</code> role, with the <code title="attr-aria-labelledby">aria-labelledby</code> property set to the value of the <code title="attr-tdth-headers">headers</code> attribute, if any
+
+    <tr>
+     <td><code>textarea</code> element
+     <td><code title="attr-aria-role-textbox">textbox</code> role, with the <code title="attr-aria-multiline">aria-multiline</code> property set to "true", and the <code title="title-aria-readonly">aria-readonly</code> state set to "true" if the element has a <code title="attr-textarea-readonly">readonly</code> attribute
+
+    <tr>
+     <td><code>th</code> elemen that is neither a <span>column header</span> nor a <span>row header</span>
+     <td><code title="attr-aria-role-gridcell">gridcell</code> role, with the <code title="attr-aria-labelledby">aria-labelledby</code> property set to the value of the <code title="attr-tdth-headers">headers</code> attribute, if any
+
+    <tr>
+     <td><code>th</code> element that is a <span>column header</span>
+     <td><code title="attr-aria-role-columnheader">columnheader</code> role, with the <code title="attr-aria-labelledby">aria-labelledby</code> property set to the value of the <code title="attr-tdth-headers">headers</code> attribute, if any
+
+    <tr>
+     <td><code>th</code> element that is a <span>row header</span>
+     <td><code title="attr-aria-role-rowheader">rowheader</code> role, with the <code title="attr-aria-labelledby">aria-labelledby</code> property set to the value of the <code title="attr-tdth-headers">headers</code> attribute, if any
+
+    <tr>
+     <td><code>title</code> element
+     <td>No role
+
+    <tr>
+     <td><code>tr</code> element
+     <td><code title="attr-aria-role-row">row</code> role
+
+    <tr>
+     <td>An element that <span title="concept-command">defines a command</span>, whose <span title="command-facet-type">Type</span> facet is "checkbox", and that is a descendant of a <code>menu</code> element whose <code title="attr-menu-type">type</code> attribute in the <span title="list state">list</span> state
+     <td><code title="attr-aria-role-menuitemcheckbox">menuitemcheckbox</code> role, with the <code title="attr-aria-checked">aria-checked</code> state set to "true" if the command's <span title="command-facet-checkedstate">Checked State</span> facet is true, and "false" otherwise
+
+    <tr>
+     <td>An element that <span title="concept-command">defines a command</span>, whose <span title="command-facet-type">Type</span> facet is "command", and that is a descendant of a <code>menu</code> element whose <code title="attr-menu-type">type</code> attribute in the <span title="list state">list</span> state
+     <td><code title="attr-aria-role-menuitem">menuitem</code> role
+
+    <tr>
+     <td>An element that <span title="concept-command">defines a command</span>, whose <span title="command-facet-type">Type</span> facet is "radio", and that is a descendant of a <code>menu</code> element whose <code title="attr-menu-type">type</code> attribute in the <span title="list state">list</span> state
+     <td><code title="attr-aria-role-menuitemradio">menuitemradio</code> role, with the <code title="attr-aria-checked">aria-checked</code> state set to "true" if the command's <span title="command-facet-checkedstate">Checked State</span> facet is true, and "false" otherwise
+
+    <tr>
+     <td>Elements that are <span title="concept-fe-disabled">disabled</span>
+     <td>The <code title="title-aria-disabled">aria-disabled</code> state set to "true"
+
+    <tr>
+     <td>Elements that are <span title="concept-input-required">required</span>
+     <td>The <code title="title-aria-required">aria-required</code> state set to "true"
+
+  </table>
+
+  <p>Some <span>HTML elements</span> have native semantics that can be
+  overridden. The following table lists these elements<span
+  class="impl"> and their <span>implicit ARIA semantics</span></span>,
+  along with the restrictions that apply to those elements. Each
+  language feature (element or attribute) in a cell in the first
+  column implies, unless otherwise overriden, the ARIA semantic (role,
+  state, or property) given in the cell in the second column of the
+  same row, but this semantic may be overridden under the conditions
+  listed in the cell in the third column of that row.</p>
+
+  <table>
+   <thead>
+    <tr>
+     <th>Language feature
+     <th>Default implied ARIA semantic
+     <th>Restrictions
+
+   <tbody>
+
+    <tr>
+     <td><code>article</code> element
+     <td><code title="attr-aria-role-article">article</code> role
+     <td>Role must be either <code title="attr-aria-role-article">article</code>, <code title="attr-aria-role-document">document</code>, <code title="attr-aria-role-application">application</code>, or <code title="attr-aria-role-main">main</code>
+
+    <tr>
+     <td><code>aside</code> element
+     <td><code title="attr-aria-role-note">note</code> role
+     <td>Role must be either <code title="attr-aria-role-note">note</code>, <code title="attr-aria-role-complementary">complementary</code>, or <code title="attr-aria-role-search">search</code>
+
+    <tr>
+     <td><code>div</code> element
+     <td><code title="attr-aria-role-presentation">presentation</code> role
+     <td>No restrictions
+
+    <tr>
+     <td><code>html</code> element
+     <td><code title="attr-aria-role-document">document</code> role
+     <td>Role must be either <code title="attr-aria-role-document">document</code> or <code title="attr-aria-role-application">application</code>
+
+    <tr>
+     <td><code>li</code> element whose parent is an <code>ol</code> or <code>ul</code> element
+     <td><code title="attr-aria-role-listitem">listitem</code> role
+     <td>Role must be either <code title="attr-aria-role-listitem">listitem</code> or <code title="attr-aria-role-treeitem">treeitem</code>
+
+    <tr>
+     <td><code>ol</code> element
+     <td><code title="attr-aria-role-list">list</code> role
+     <td>Role must be either <code title="attr-aria-role-list">list</code>, <code title="attr-aria-role-tree">tree</code>, or <code title="attr-aria-role-directory">directory</code>
+
+    <tr>
+     <td><code>output</code> element
+     <td><code title="attr-aria-role-status">status</code> role
+     <td>No restrictions
+
+    <tr>
+     <td><code>section</code> element
+     <td><code title="attr-aria-role-region">region</code> role
+     <td>Role must be either <code title="attr-aria-role-region">region</code>, <code title="attr-aria-role-document">document</code>, <code title="attr-aria-role-application">application</code>, <code title="attr-aria-role-contentinfo">contentinfo</code>, <code title="attr-aria-role-main">main</code>, <code title="attr-aria-role-search">search</code>, <code title="attr-aria-role-alert">alert</code>, <code title="attr-aria-role-dialog">dialog</code>, <code title="attr-aria-role-alertdialog">alertdialog</code>, <code title="attr-aria-role-status">status</code>, or <code title="attr-aria-role-log">log</code>
+
+    <tr>
+     <td><code>table</code> element
+     <td><code title="attr-aria-role-grid">grid</code> role
+     <td>Role must be either <code title="attr-aria-role-grid">grid</code> or <code title="attr-aria-role-treegrid">treegrid</code>
+
+    <tr>
+     <td><code>ul</code> element
+     <td><code title="attr-aria-role-list">list</code> role
+     <td>Role must be either <code title="attr-aria-role-list">list</code> or <code title="attr-aria-role-tree">tree</code>, or <code title="attr-aria-role-directory">directory</code>
+
+  </table>
+
+  <div class="impl">
+
+  <p>User agents may apply different defaults than those described in
+  this section in order to expose the semantics of <span>HTML
+  elements</span> in a manner more fine-grained than possible with the
+  above definitions.</p>
+
+  </div>
+
+
   <h3>APIs in HTML documents</h3>
 
   <p>For <span>HTML documents</span>, and for <span>HTML
   elements</span> in <span>HTML documents</span>, certain APIs defined
   in DOM Core become case-insensitive or case-changing, as sometimes
   defined in DOM Core, and as summarized <span class="impl">or
   required</span> below. <a href="#refsDOMCORE">[DOMCORE]</a>.</p>
 
   <p>This does not apply to <span>XML documents</span> or to elements
   that are not in the <span>HTML namespace</span> despite being in
@@ -18817,22 +19206,20 @@ interface <dfn>HTMLImageElement</dfn> : <span>HTMLElement</span> {
      <li><p>If the image has a <code title="attr-title">title</code>
      attribute whose value is not the empty string, then the value of
      that attribute is the caption information; abort these
      steps.</p></li>
 
      <li><p>If the image is the child of a <code>figure</code> element
      that has a child <code>legend</code> element, then the contents
      of the first such <code>legend</code> element are the caption
      information; abort these steps.</p></li>
 
-     <!-- aria processing goes here -->
-
      <li><p>Run the algorithm to create the <span>outline</span> for
      the document.</p></li>
 
      <li><p>If the <code>img</code> element did not end up associated
      with a heading in the outline, or if there are any other images
      that are lacking an <code title="attr-img-alt">alt</code>
      attribute and that are associated with the same heading in the
      outline as the <code>img</code> element in question, then there
      is no caption information; abort these steps.</p></li>
 
@@ -23790,21 +24177,21 @@ interface <dfn>CueRangeCallback</dfn> {
   <p><span title="media element">Media elements</span> have a set of
   <dfn title="cue range">cue ranges</dfn>. Each cue range is made up
   of the following information:</p>
 
   <dl>
 
    <dt>A class name</dt>
    <dd>A group of related ranges can be given the same class name so
    that they can all be removed at the same time.</dd>
 
-   <dt>An identifier<dt>
+   <dt>An identifier</dt>
    <dd>A string can be assigned to each cue range for identification
    by script. The string need not be unique and can contain any
    value.</dd>
 
    <dt>A start time</dt>
    <dt>An end time</dt>
    <dd>The actual time range, using the same timeline as the
    <span>media resource</span> itself.</dd>
 
    <dt>A "pause" boolean</dt>
@@ -84561,28 +84948,28 @@ time:empty { binding: <i title="">time</i>; }</pre>
    <dd><p>Use <code>ul</code> instead.</p></dd>
 
    <dt><code>frame</code></dt>
    <dt><code>frameset</code></dt>
    <dt><dfn><code>noframes</code></dfn></dt>
    <dd><p>Either use <code>iframe</code> and CSS instead, or use server-side includes to generate complete pages with the various invariant parts merged in.</p></dd>
 
    <dt><dfn><code>isindex</code></dfn></dt>
    <dd><p>Use an explicit <code>form</code> and <span title="attr-input-type-text">text field</span> combination instead.</p></dd>
 
-   <dt><dfn><code>listing</code></dfn><dt>
-   <dt><dfn><code>xmp</code></dfn><dt>
+   <dt><dfn><code>listing</code></dfn></dt>
+   <dt><dfn><code>xmp</code></dfn></dt>
    <dd><p>Use <code>pre</code> and <code>code</code> instead.</p></dd>
 
    <dt><dfn><code>noembed</code></dfn></dt>
    <dd><p>Use <code>object</code> instead of <code>embed</code> when fallback is necessary.</p></dd>
 
-   <dt><dfn><code>plaintext</code></dfn><dt>
+   <dt><dfn><code>plaintext</code></dfn></dt>
    <dd><p>Use the "<code>text/plain</code>" <span>MIME type</span> instead.</p></dd>
 
    <dt><dfn><code>basefont</code></dfn></dt>
    <dt><dfn><code>big</code></dfn></dt>
    <dt><dfn><code>blink</code></dfn></dt>
    <dt><dfn><code>center</code></dfn></dt>
    <dt><dfn><code>font</code></dfn></dt>
    <dt><code>marquee</code></dt>
    <dt><dfn><code>s</code></dfn></dt>
    <dt><dfn><code>spacer</code></dfn></dt>
@@ -86653,21 +87040,21 @@ interface <span>HTMLDocument</span> {
     <tr> 
      <td> <code title="event-load">load</code>
     <tr>
      <td colspan=1 class="XXX"> ...
   </table>
 
 
 
 <!--START websocket-api--><!--START storage--><!--START database--><!--START eventsource--><!--START workers-->
 
-  <h2 class="no-num" id="references">References</h2>
+  <h2 class="no-num" id="references">References</h2><!--REFS-->
 
   <p>All references are normative unless marked "Non-normative".</p>
 
   <dl>
 <!--REFERENCES ON-->
 
    <dt id="refsGRAPHICS">[GRAPHICS]</dt>
    <dd>(Non-normative) <cite>Computer Graphics: Principles and
    Practice in C</cite>, Second Edition, J. Foley, A. van Dam,
    S. Feiner, J. Hughes. Addison-Wesley, July 1995. ISBN
@@ -86677,20 +87064,31 @@ interface <span>HTMLDocument</span> {
    please check page 34 or so and see if it makes any references to literature in
    the bibliographic section to define the "even-odd" rule for polygon filling and
    hit testing.
    -->
 
    <dt id="refsABNF">[ABNF]</dt>
    <dd><cite><a href="http://www.ietf.org/rfc/std/std68.txt">Augmented
    BNF for Syntax Specifications: ABNF</a></cite>, D. Crocker,
    P. Overell. IETF, January 2008.</dd>
 
+   <dt id="refsARIA">[ARIA]</dt>
+   <dd><cite><a href="http://www.w3.org/WAI/PF/aria/">Accessible Rich
+   Internet Applications (WAI-ARIA)</a></cite>, J. Craig, M. Cooper, L. Pappas,
+   R. Schwerdtfeger, L. Seeman. W3C, August 2009.</dd>
+
+   <dt id="refsARIAIMPL">[ARIAIMPL]</dt>
+   <dd><cite><a
+   href="http://www.w3.org/WAI/PF/aria-implementation/">WAI-ARIA 1.0
+   User Agent Implementation Guide</a></cite>, A. Snow-Weaver,
+   M. Cooper. W3C, August 2009.</dd>
+
    <dt id="refsATOM">[ATOM]</dt>
    <dd>(Non-normative) <cite><a
    href="http://www.ietf.org/rfc/rfc4287.txt">The Atom Syndication
    Format</a></cite>, M. Nottingham, R. Sayre. IETF, December
    2005.</dd>
 
    <dt id="refsBCP47">[BCP47]</dt>
    <dd><cite><a href="http://www.ietf.org/rfc/bcp/bcp47.txt">Tags for
    Identifying Languages; Matching of Language Tags</a></cite>,
    A. Phillips, M. Davis. IETF, September 2006.</dd>

|