- From: Michael Smith via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 14 Apr 2011 10:31:03 +0000
- To: public-html-commits@w3.org
Update of /sources/public/html5/html-api-map In directory hutz:/tmp/cvs-serv4113 Modified Files: overview.html Log Message: added IDs Index: overview.html =================================================================== RCS file: /sources/public/html5/html-api-map/overview.html,v retrieving revision 1.34 retrieving revision 1.35 diff -u -d -r1.34 -r1.35 --- overview.html 14 Apr 2011 10:16:06 -0000 1.34 +++ overview.html 14 Apr 2011 10:31:01 -0000 1.35 @@ -79,16 +79,20 @@ </script> <BODY> - <H2 id="abstract">Abstract</H2> +<section id="abstract"> + <H2>Abstract</H2> <P>This is draft documentation mapping HTML elements and attributes to accessibility API Roles, States and Properties on a variety of platforms. It provides recommendations on deriving the accessible names and descriptions for HTML elements. It also provides accessible feature implementation examples.</P> - <H3 id="sotd">Status of This document</H3> - <P class="warning"><strong>This document is subject to change without notice. This document currently has no formal standing within W3C.</strong></P> - <div id="intro_aapi"> - <h3 id="aapis"> Accessibility <abbr title="Application Programming Interfaces">APIs</abbr></h3> +</section> +<section id="sotd"> + <H3>Status of This document</H3> + <P class="warning"><strong>This document is subject to change without notice.</strong></P> +</section> + <section id="intro_aapi"> + <h3> Accessibility <abbr title="Application Programming Interfaces">APIs</abbr></h3> <p>To provide access to desktop GUI applications, assistive technologies originally used heuristic techniques to determine the meaning of the user interface and built an alternative off screen model. For example, a row of labels displayed horizontally near the top of an application window might be a menu. Labels with a border drawn around them might be buttons. Heuristic techniques are not always accurate, however, and require assistive technologies to be updated whenever the software application is updated.</p> <p>A much better technique is for the software application to provide the necessary information for interoperability with assistive technology. To meet this need, platform owners have developed specialized interfaces, called accessibility <abbr title="Application Programming Interfaces">APIs</abbr>, which can be used to communicate accessibility information about user interfaces to assistive technologies. </p> <p>In the case of static Web pages, the Document Object Model (DOM) is used to represent the structure and state of the elements in the document being rendered by a user agent. The elements of the document are organized into a hierarchy of nodes known as the <abbr title="document object model">DOM</abbr> tree. For traditional static Web pages, assistive technologies, such as screen readers, interact with user agents using the <abbr title="Document Object Model">DOM</abbr>. For UI elements that are known to be interactive, such as HTML form elements and desktop applications, assistive technologies may use platform accessibility APIs. </p> @@ -102,13 +106,15 @@ </ul> <p>If User Agent developers need to expose to other accessibility <abbr title="Application Programming Interfaces">APIs</abbr>, it is recommended that they work closely with the developer of the platform where the <abbr title="application programing interfaces">API</abbr> runs, and assistive technology developers on that platform.</p> </div> - <h3 id="expose"> Exposing HTML features that do not directly map to accessibility <abbr title="application programing interface">API</abbr> properties</h3> +<section id="expose"> + <h3>Exposing HTML features that do not directly map to accessibility <abbr title="application programing interface">API</abbr> properties</h3> <p>HTML<abbr title="application programing interfaces"></abbr> may have features that are not supported by accessibility <abbr title="Application Programming Interfaces">APIs</abbr> at the time of publication. There is not a one to one relationship between all <abbr title="Accessible Rich Internet Application">features</abbr> and platform accessibility <abbr title="application programing interfaces">APIs</abbr>. When <abbr title="Accessible Rich Internet Application">HTML</abbr> roles, states and properties do not directly map to an accessibility <abbr title="application programing interface">API</abbr>, and there is a method in the <abbr title="application programing interface">API</abbr> to expose a text string, expose the undefined role, states and properties via that method.</p> <p>IAccessible2 and <abbr title="Accessibility Toolkit">ATK</abbr> use object attributes to expose semantics that are not directly supported in the <abbr title="application programing interfaces">APIs</abbr>. Object attributes are name-value pairs that are loosely specified, and very flexible for exposing things where there is no specific interface in an accessibility <abbr title="application programing interface">API</abbr>. For example, at this time, the HTML5 <a href="http://dev.w3.org/html5/spec/sections.html#the-header-element">header</a> element can be exposed via an object attribute because accessibility <abbr title="application programing interfaces">APIs</abbr> have no such role available. <!--Specific rules for exposing object attribute name-value pairs are described throughout this document, and rules for the general cases not covered are in State and Property Mapping. --></p> <p>For accessibility <abbr title="Application Programming Interfaces">APIs</abbr> that do not have "object attributes" per se, it is useful to find a similar mechanism or develop a new interface to expose name/value pairs. Under the Mac OS X Accessibility Protocol, all getters are already simply name-value pairs and it is possible to expose new semantics whenever necessary. Keep in mind, this also requires working with the assistive technology developers to gain support for the new semantics.</p> <P> </P> - <HR> - <h2 id="api-role">HTML element to Accessibility API Role Mapping Matrix</h2> +</section> +<section id="api-role"> + <h2>HTML element to Accessibility API Role Mapping Matrix</h2> <P><strong>Notes:</strong> </P> <ul> <li>A ? in a cell indicates the data has yet to be provided.</li> @@ -1655,8 +1661,8 @@ </TBODY></TABLE> </div> <p> </p> -<hr> -<h2 id="api-att">HTML attribute to Accessibility API State and Property Mapping Matrix </h2> +<section id="api-att"> +<h2>HTML attribute to Accessibility API State and Property Mapping Matrix </h2> <table cellspacing="0" cellpadding="0"> <caption> Mappings of HTML attributes (excluding event handler content attributes) to platform accessibility APIs: ARIA, MSAA, IAccessible2, UIA, AT-SPI, and AX @@ -2645,8 +2651,9 @@ <td> </td> </tr> </table> - <hr> - <H2 id="calc">Accessible Name and Description calculation</H2> +</section> +<section id="calc"> + <H2>Accessible Name and Description calculation</H2> <p>The terms <a href="http://www.w3.org/WAI/PF/aria-implementation/#def_accessible_name">accessible name</a> and accessible description are properties provided in all accessibility APIs. The name of the properties may differ across APIs but they serve the same function: as a container for a short (name) or longer (description) string of text. </p> <h3 id="calc-iput"><code>Input type="text"</code> or <code>textarea</code> element</h3> <p> If the control has an <code><a href="http://www.w3.org/TR/wai-aria/states_and_properties#aria-label">aria-label</a></code> or an <code><a href="http://www.w3.org/TR/wai-aria/states_and_properties#aria-labelledby">aria-labelledby</a></code> attribute the accessible name is to be calculated using the algorithm defined in section <a href="http://www.w3.org/TR/wai-aria/roles#namecalculation">5.2.7. Accessible Name Calculation</a> of the <a href="http://www.w3.org/TR/wai-aria/">WAI-ARIA 1.0 specification</a>. </p> @@ -2659,7 +2666,8 @@ <li>If the control has a non-empty <code>placeholder</code> attribute and a non-empty <code>title</code> attribute and associated non-empty <code>label</code> element, use the content of the <code>label</code> element as the control's accessible name. Use the content of the <code>title</code> attribute concatenated with the content of the <code>placeholder</code> attribute as the control's accessible description.</li> <li>If a control does not have a non-empty <code>placeholder</code> attribute or a non-empty associated <code>label</code> element or a non-empty <code>title</code> attribute, the control's accessible name is an empty string and the control's accessible description is an empty string. </li> </ul> - <h3 id="inputs">input type="button" , input type="submit", input type="reset" and input type="password"</h3> +<section id="inputs"> + <h3>input type="button" , input type="submit", input type="reset" and input type="password"</h3> <p>If the control has an <code><a href="http://www.w3.org/TR/wai-aria/states_and_properties#aria-label">aria-label</a></code> or an <code><a href="http://www.w3.org/TR/wai-aria/states_and_properties#aria-labelledby">aria-labelledby</a></code> attribute the accessible name is to be calculated using the algorithm defined in section <a href="http://www.w3.org/TR/wai-aria/roles#namecalculation">5.2.7. Accessible Name Calculation</a> of the <a href="http://www.w3.org/TR/wai-aria/">WAI-ARIA 1.0 specification</a>. </p> <p>Otherwise the accessible name is derived from the following sources; a non-empty <code>value</code> attribute, or a non-empty <a href="http://dev.w3.org/html5/spec/semantics.html#the-title-element-0"><code>title</code></a> attribute.</p> <ul> @@ -2668,7 +2676,9 @@ <li>If the control has a non-empty <code>title</code> attribute, but not a non-empty <code>value</code> attribute, use the content of <code>title</code> attribute as the control's accessible name.</li> <li>If the control has a non-empty <code>value</code> attribute, and a non-empty <code>title</code> attribute, use the content of <code>value</code> attribute as the control's accessible name. Use the content of the <code>title</code> attribute as the control's accessible description.</li> </ul> -<h3 id="input-image">input type="image"</h3> +</section> +<section id="input-image"> +<h3>input type="image"</h3> <p>If the control has an <code><a href="http://www.w3.org/TR/wai-aria/states_and_properties#aria-label">aria-label</a></code> or an <code><a href="http://www.w3.org/TR/wai-aria/states_and_properties#aria-labelledby">aria-labelledby</a></code> attribute the accessible name is to be calculated using the algorithm defined in section <a href="http://www.w3.org/TR/wai-aria/roles#namecalculation">5.2.7. Accessible Name Calculation</a> of the <a href="http://www.w3.org/TR/wai-aria/">WAI-ARIA 1.0 specification</a>. </p> <p>Otherwise the accessible name is derived from the following sources; a non-empty<code> alt</code> attribute, or a non-empty <a href="http://dev.w3.org/html5/spec/semantics.html#the-title-element-0"><code>title</code></a> attribute.</p> <ul> @@ -2677,7 +2687,9 @@ <li>If the control has a non-empty <code>title</code> attribute, but not a non-empty <code>alt</code> attribute, use the content of <code>title</code> attribute as the control's accessible name.</li> <li>If the control has a non-empty <code>alt</code> attribute, and a non-empty <code>title</code> attribute, use the content of <code>alt</code> attribute as the control's accessible name. Use the content of the <code>title</code> attribute as the control's accessible description.</li> </ul> -<h3 id="control-other">Other form elements</h3> +</section> +<section id="control-other"> +<h3>Other form elements</h3> <p>If the control has an <code><a href="http://www.w3.org/TR/wai-aria/states_and_properties#aria-label">aria-label</a></code> or an <code><a href="http://www.w3.org/TR/wai-aria/states_and_properties#aria-labelledby">aria-labelledby</a></code> attribute the accessible name is to be calculated using the algorithm defined in section <a href="http://www.w3.org/TR/wai-aria/roles#namecalculation">5.2.7. Accessible Name Calculation</a> of the <a href="http://www.w3.org/TR/wai-aria/">WAI-ARIA 1.0 specification</a>. </p> <p>Otherwise the accessible name is derived from the following sources; a non-empty associated <a href="http://dev.w3.org/html5/spec/forms.html#the-label-element"><code>label</code></a> element or a non-empty <a href="http://dev.w3.org/html5/spec/semantics.html#the-title-element-0"><code>title</code></a> attribute.</p> <ul> @@ -2686,25 +2698,45 @@ <li>If the control has a non-empty <code>title</code> attribute, but not a non-empty associated <code>label</code> element, use the content of the <code>title</code> attribute as the control's accessible name.</li> <li>If the control has a non-empty associated <code>label</code> element and a non-empty <code>title</code> attribute, use the content of the associated <code>label</code> element as the control's accessible name. Use the content of the <code>title</code> attribute as the control's accessible description.</li> </ul> +</section> +<section id="figure-caption"> <h3>Figure and figcaption elements </h3> <p><span class="note">to do</span></p> +</section> +<section id="img"> <h3>img element</h3> <p><span class="note">to do</span></p> +</section> +</section> +<section id="interactive"> <h2>Interactive elements</h2> +<section id="summary-details"> <h3><code>summary</code> and <code>details</code> elements</h3> <p><span class="note">to do</span></p> +</section> +<section id="accessible-description"> <h3>Accessible Description calculation</h3> <p><span class="note">to do</span></p> - <H2 id="examples">Accessible feature implementation examples:</H2> - <h3 id="examples-sum"><code>summary</code> and <code>details</code> elements</h3> +</section> +</section> +<section id="examples"> + <H2>Accessible feature implementation examples:</H2> +<section id="examples-sum"> + <h3><code>summary</code> and <code>details</code> elements</h3> +</section> +</section> +<section id=¿focus-keyboard"> <h4>focus and keyboard interaction</h4> <p>The <code>summary</code> element should be focusable by default.</p> <p>The <code>details</code> element should not focusable by default. </p> <p>Pressing the spacebar key when the <code>summary</code> element has focus will show the <code>details</code> element content if the content is hidden. If the <code>details</code> element content is showing and the <code>summary</code> element has focus, pressing the spacebar key will hide the details element content.</p> +</section> +<section id="rol-name-state"> <h4>Role, name, state and property mapping</h4> <p>The <code>summary</code> element should be mapped to a disclosure triangle role in accessibility APIs that have such a role. For example the Mac accessibility API includes the <code>AXDisclosureTriangle</code> role. In accessibility APIs that do not have such a fine grained role, the summary element should be mapped to a <code>button</code> role. The role mapping table contains <a href="#sum">recommended mappings for the summary element</a>.</p> <p>The accessible name for the summary element is the text content of the summary element. </p> <p>When the details element content is hidden, the state of the content should be reflected by an accessible state or property. For example, in the Mac accessibility API on the <code>summary</code> element (<code>AXDisclosureTriangle</code>), set <code>AXValue</code> property to 0. When the details element content is showing on the <code>summary</code> element (<code>AXDisclosureTriangle</code>), set the <code>AXValue</code> property to 1. The hidden and showing states of the details element is reflected by the absence or presence of the <a href="#att-open">open</a> attribute.</p> +</section> <!--<h2>Role Categorisation</h2> <p>Roles that are not explicitly defined in Accessibility APIs can still be exposed by user agents as accessibility API object properties.</p>--> </BODY></HTML>
Received on Thursday, 14 April 2011 10:31:05 UTC