This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 7223 - Research when AccessibleHypertext should be exposed as it relates to ARIA. (was What to do with 4.1 Exposing Supplemental Interfaces)
Summary: Research when AccessibleHypertext should be exposed as it relates to ARIA. (w...
Status: RESOLVED FIXED
Alias: None
Product: ARIA
Classification: Unclassified
Component: Core AAM (show other bugs)
Version: 1.0
Hardware: PC Windows XP
: P1 normal
Target Milestone: ---
Assignee: Andi Snow-Weaver
QA Contact: ARIA UA Implementors
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-08-05 17:36 UTC by Andi Snow-Weaver
Modified: 2010-11-11 22:26 UTC (History)
0 users

See Also:


Attachments

Description Andi Snow-Weaver 2009-08-05 17:36:32 UTC
Per the 10 July UAI TF meeting, this section is supposed to be converted into a table with the current bullets as the IAccessible2 bullets. But I'm concerned that these steps are only valid for IA2. Parking the text and markup here until we determine whether this is true.


4.1. Exposing Supplemental Interfaces

In general the base markup should determine what interfaces are exposed for an accessible object. However, in the following cases WAI-ARIA markup changes which interfaces should be exposed:

    * AccessibleValue: as discussed in Value, the value interface should be exposed for objects with an aria-valuenow property when one of the roles on the elements supports that. Because the Value interface allows values to be set, aria-valuenow is really read/write. The browser needs to set aria-valuenow if the value is changed to a valid value, and the current element is not readonly or disabled.
    * AccessibleTable: should be exposed for role="grid" and role="treegrid" (XXX note: not done in Mozillaknown bug)
    * AccessibleSelection: should be exposed when a role supports aria-multiselectable, and aria-multiselectable="true"
    * AccessibleHypertext: this should not be exposed if the elements descendants have been trimmed off based on the role characteristic "Children Presentational: True":
          o button
          o img
          o math
          o progressbar
          o separator
          o slider

Although it is not a WAI-ARIA-specific issue, for the purposes of accessible web applications it is worth mentioning some additionally useful rules for exposing interfaces:

    * AccessibleAction: should at least be exposed for anything with a "click" handler, although future versions of WAI-ARIA may bring more precision to the handling of actions. Also need to support doDefaultAction in MSAA (same as action #0)this maps to a click.
    * AccessibleEditabletext: should be exposed for any region made editable via contenteditable or designMode


<h2>Managed States</h2>
	<div class="section" id="managed-states_interfaces">
		<h2>Exposing Supplemental Interfaces</h2>
		<p>In general the base markup <span class="rfc2119">should</span> determine what interfaces are  exposed for an accessible object. However, in the following cases <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr>  markup changes which interfaces should be exposed:</p>
		<table>
          <caption></caption>
            <tr>
              <th></th>
              <th></th>
        </table>
        <ul>
			<li><span class="api-interface">AccessibleValue</span>: as discussed in <a href="#mapping_special_widget-value">Value</a>, the value interface <span class="rfc2119">should</span> be exposed for objects with an <span class="property-reference">aria-valuenow</span> property when one  of the roles on the elements supports that. Because the Value interface  allows values to be set, <span class="property-reference">aria-valuenow</span> is really read/write. The  browser needs to set <span class="property-reference">aria-valuenow</span> if the value is changed to a valid  value, and the current element is not readonly or disabled.</li>
			<li><span class="api-interface">AccessibleTable</span>: <span class="rfc2119">should</span> be exposed for role=&quot;grid&quot; and role=&quot;treegrid&quot; (XXX note: not done in Mozilla&mdash;known bug)</li>
			<li><span class="api-interface">AccessibleSelection</span>: <span class="rfc2119">should</span> be exposed when a role supports <span class="property-reference">aria-multiselectable</span>, and <span class="property-reference">aria-multiselectable</span>=&quot;true&quot;</li>
			<li><span class="api-interface">AccessibleHypertext</span>:  this <span class="rfc2119">should not</span> be exposed if the elements descendants have been trimmed off based on the role characteristic "Children Presentational: True":
              <ul>
				<li>button</li>
                <li>img</li>
                <li>math</li>
                <li>progressbar</li>
                <li>separator</li>
                <li>slider</li>
			  </ul>
            </li>
		</ul>
		<p>Although it is not a <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr>-specific issue, for the purposes of  accessible web applications it is worth mentioning some additionally  useful rules for exposing interfaces:</p>
		<ul>
			<li><span class="api-interface">AccessibleAction</span>: <span class="rfc2119">should</span> at least be exposed for anything with  a &quot;click&quot; handler, although future versions of <abbr title="Accessible Rich Internet Application">WAI-ARIA</abbr> may bring more  precision to the handling of actions. Also need to support  doDefaultAction in <abbr title="Microsoft Active Accessibility">MSAA</abbr> (same as action #0)&mdash;this maps to a click.</li>
			<li><span class="api-interface">AccessibleEditabletext</span>: <span class="rfc2119">should</span> be exposed for any region made editable via contenteditable or designMode</li>
		</ul>
	</div>
Comment 1 Andi Snow-Weaver 2009-08-06 20:03:41 UTC
Edits from Masahiko for this section:

4.1. Exposing Supplemental Interfaces in IAccessible2

In general the base markup should determine what interfaces are exposed for an
accessible object. However, in the following cases WAI-ARIA markup changes
which interfaces should be exposed in IAccessible2 (For UI Automation please refer to corresponding mapping and technical specifications from the MSDN UI Automation SDK Appendix.):

    * AccessibleValue: as discussed in Value, the value interface should be
exposed for objects with an aria-valuenow property when one of the roles on the
elements supports that. Because the Value interface allows values to be set,
aria-valuenow is really read/write. The browser needs to set aria-valuenow if
the value is changed to a valid value, and the current element is not readonly
or disabled.
    * AccessibleTable: should be exposed for role="grid" and role="treegrid"
(XXX note: not done in Mozillaknown bug)
    * AccessibleSelection: should be exposed when a role supports
aria-multiselectable, and aria-multiselectable="true"
    * AccessibleHypertext: this should not be exposed if the elements
descendants have been trimmed off based on the role characteristic "Children
Presentational: True":
          o button
          o img
          o math
          o progressbar
          o separator
          o slider

Although it is not a WAI-ARIA-specific issue, for the purposes of accessible
web applications it is worth mentioning some additionally useful rules for
exposing interfaces:

    * AccessibleAction: should at least be exposed for anything with a "click"
handler, although future versions of WAI-ARIA may bring more precision to the
handling of actions. Also need to support doDefaultAction in MSAA (same as
action #0)this maps to a click.
    * AccessibleEditabletext: should be exposed for any region made editable
via contenteditable or designMode



Comment 2 Andi Snow-Weaver 2009-08-07 11:28:22 UTC
Also this sentence that talks about considerations for AccessibleHypertext when descendant trimming occurs.

"When descendant trimming occurs, the AccessibleHypertext interface should also not be exposed for the root object that remains."
Comment 3 Andi Snow-Weaver 2009-09-17 17:44:06 UTC
> * AccessibleTable: 

Added to Role mapping table in 3.4

>* AccessibleSelection: 

Already in the State/Property Mapping table in 3.5

>* AccessibleValue: 

Now covered in the mapping table and the Widget Values section

>* AccessibleAction: 

Already covered in 3.7 Actions

>* AccessibleEditabletext: 

Not related to ARIA

>* AccessibleHypertext:

Text only says when AccessibleHyperText should not be exposed. But when should it be exposed?



Comment 4 Andi Snow-Weaver 2009-09-22 15:25:04 UTC
David to research when AccessibleHypertext should be exposed as it relates to ARIA.
Comment 5 David Bolter 2010-03-29 19:21:47 UTC
IAccessibleHypertext, and GNOME AccessibleHypertext, are small sub-APIs for getting 3 things within a paragraph of hypertext:
1. getting the number of links
2. getting a specific link
3. getting the index of a specific link

So the only way this intersects ARIA is for role="link". So something like <span role="link">blah</span> should be included and exposed by this interface.
Comment 6 Andi Snow-Weaver 2010-10-28 15:28:00 UTC
Andi to draft text for the "link" role in the role mapping table for David to review.
Comment 7 Andi Snow-Weaver 2010-11-11 12:41:55 UTC
Added "AccessibleHypertext" to IAccessible2 column in Role Mapping table:

http://www.w3.org/WAI/PF/aria-implementation/#mapping_role
Comment 8 Andi Snow-Weaver 2010-11-11 22:26:06 UTC
Per David's recommendation changed "AccessibleHypertext" to "Use IAccessibleHypertext interface".