<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>7223</bug_id>
          
          <creation_ts>2009-08-05 17:36:32 +0000</creation_ts>
          <short_desc>Research when AccessibleHypertext should be exposed as it relates to ARIA. (was What to do with 4.1 Exposing Supplemental Interfaces)</short_desc>
          <delta_ts>2010-11-11 22:26:06 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>ARIA</product>
          <component>Core AAM</component>
          <version>1.0</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andi Snow-Weaver">andi.snowweaver</reporter>
          <assigned_to name="Andi Snow-Weaver">andi.snowweaver</assigned_to>
          
          
          <qa_contact name="ARIA UA Implementors">aria-ua-impl</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>26242</commentid>
    <comment_count>0</comment_count>
    <who name="Andi Snow-Weaver">andi.snowweaver</who>
    <bug_when>2009-08-05 17:36:32 +0000</bug_when>
    <thetext>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&apos;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=&quot;grid&quot; and role=&quot;treegrid&quot; (XXX note: not done in Mozillaknown bug)
    * AccessibleSelection: should be exposed when a role supports aria-multiselectable, and aria-multiselectable=&quot;true&quot;
    * AccessibleHypertext: this should not be exposed if the elements descendants have been trimmed off based on the role characteristic &quot;Children Presentational: True&quot;:
          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 &quot;click&quot; 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


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



</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26289</commentid>
    <comment_count>2</comment_count>
    <who name="Andi Snow-Weaver">andi.snowweaver</who>
    <bug_when>2009-08-07 11:28:22 +0000</bug_when>
    <thetext>Also this sentence that talks about considerations for AccessibleHypertext when descendant trimming occurs.

&quot;When descendant trimming occurs, the AccessibleHypertext interface should also not be exposed for the root object that remains.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27258</commentid>
    <comment_count>3</comment_count>
    <who name="Andi Snow-Weaver">andi.snowweaver</who>
    <bug_when>2009-09-17 17:44:06 +0000</bug_when>
    <thetext>&gt; * AccessibleTable: 

Added to Role mapping table in 3.4

&gt;* AccessibleSelection: 

Already in the State/Property Mapping table in 3.5

&gt;* AccessibleValue: 

Now covered in the mapping table and the Widget Values section

&gt;* AccessibleAction: 

Already covered in 3.7 Actions

&gt;* AccessibleEditabletext: 

Not related to ARIA

&gt;* AccessibleHypertext:

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



</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27554</commentid>
    <comment_count>4</comment_count>
    <who name="Andi Snow-Weaver">andi.snowweaver</who>
    <bug_when>2009-09-22 15:25:04 +0000</bug_when>
    <thetext>David to research when AccessibleHypertext should be exposed as it relates to ARIA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34095</commentid>
    <comment_count>5</comment_count>
    <who name="David Bolter">dbolter</who>
    <bug_when>2010-03-29 19:21:47 +0000</bug_when>
    <thetext>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=&quot;link&quot;. So something like &lt;span role=&quot;link&quot;&gt;blah&lt;/span&gt; should be included and exposed by this interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41815</commentid>
    <comment_count>6</comment_count>
    <who name="Andi Snow-Weaver">andi.snowweaver</who>
    <bug_when>2010-10-28 15:28:00 +0000</bug_when>
    <thetext>Andi to draft text for the &quot;link&quot; role in the role mapping table for David to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42429</commentid>
    <comment_count>7</comment_count>
    <who name="Andi Snow-Weaver">andi.snowweaver</who>
    <bug_when>2010-11-11 12:41:55 +0000</bug_when>
    <thetext>Added &quot;AccessibleHypertext&quot; to IAccessible2 column in Role Mapping table:

http://www.w3.org/WAI/PF/aria-implementation/#mapping_role</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42458</commentid>
    <comment_count>8</comment_count>
    <who name="Andi Snow-Weaver">andi.snowweaver</who>
    <bug_when>2010-11-11 22:26:06 +0000</bug_when>
    <thetext>Per David&apos;s recommendation changed &quot;AccessibleHypertext&quot; to &quot;Use IAccessibleHypertext interface&quot;.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>