<?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>9656</bug_id>
          
          <creation_ts>2010-05-04 18:55:35 +0000</creation_ts>
          <short_desc>ISSUE-383: what if aria-labeledby points to element with role=&quot;presentation&quot;</short_desc>
          <delta_ts>2011-12-09 18:10:08 +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>WONTFIX</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="David Bolter">dbolter</assigned_to>
          <cc>andi.snowweaver</cc>
          
          <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>35420</commentid>
    <comment_count>0</comment_count>
    <who name="Andi Snow-Weaver">andi.snowweaver</who>
    <bug_when>2010-05-04 18:55:35 +0000</bug_when>
    <thetext>UA must provide pointer to accessible object in IA2 and ATK. 

But current wording requires that UA&apos;s NOT create an accessible object if role=&quot;presentation&quot;, even if referenced by aria-labeledby. (See bullets in section 4.1 General Rules for Exposing WAI-ARIA semantics.)

So it is an author error if aria-labeledby references an element with role=&quot;presentation&quot;.

But what should UA&apos;s do?

Cynthia thinks in MSAA and UIA, they should get the text from the element referenced by aria-labeledby and use it for the name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35421</commentid>
    <comment_count>1</comment_count>
    <who name="David Bolter">dbolter</who>
    <bug_when>2010-05-04 20:22:39 +0000</bug_when>
    <thetext>I think we decided to override the role=&quot;presentation&quot; and consider the relation important. I&apos;m pretty sure we include this as an object in the a11y tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36522</commentid>
    <comment_count>2</comment_count>
    <who name="Andi Snow-Weaver">andi.snowweaver</who>
    <bug_when>2010-07-01 20:25:35 +0000</bug_when>
    <thetext>From section 4.1 in the UAIG:

The following elements are not exposed via the accessibility API and user agents MUST NOT include them in the accessible tree:

    * elements with role=&quot;presentation&quot; that are not focusable or that do not have global states or properties other than aria-hidden.

This is in agreement with the ARIA spec.

But if an element with role=&quot;presentation&quot; is referenced by an aria-labelledby property on another element, the contents of that element would still be a text node which would be in the a11y tree. So which of the following is Firefox doing:

1. actually putting the element pointed to by the aria-labelledby property in the a11y tree, or
2. putting the text node that contains the actual label in the accessibility tree

???? 

If option 1, it&apos;s not in compliance with either the UAIG or the ARIA spec. 

If option 2, it&apos;s fine as long as the ID of the text node is used for IA2_RELATION_LABELLED_BY (IA2) and LabeledBy (ATK).

Cynthia thinks IE just uses it as the name which is in line with the name computation rules.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37100</commentid>
    <comment_count>3</comment_count>
    <who name="David Bolter">dbolter</who>
    <bug_when>2010-07-26 14:06:22 +0000</bug_when>
    <thetext>Firefox strips out the element, and leaves the child text node. As I understand it, text nodes can not have attributes (like id, for example). So the labelledby relationship is lost.

I think this issue might be mitigated, depending on what we decide about aria-hidden.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46613</commentid>
    <comment_count>4</comment_count>
    <who name="David Bolter">dbolter</who>
    <bug_when>2011-03-10 16:29:18 +0000</bug_when>
    <thetext>I think the relation should be ignore, and ARIA role always should take precedence over these conflicts.

role=&quot;presentation&quot; should only be used on stuff that is purely visual asthetic, not on anything that could be semantically meaningful to a screen reader. It should be used as a hack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47777</commentid>
    <comment_count>5</comment_count>
    <who name="David Bolter">dbolter</who>
    <bug_when>2011-04-28 14:49:13 +0000</bug_when>
    <thetext>I need to read the new aria spec text on role=&quot;presentation&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51387</commentid>
    <comment_count>6</comment_count>
    <who name="David Bolter">dbolter</who>
    <bug_when>2011-07-22 19:36:03 +0000</bug_when>
    <thetext>FF won&apos;t expose the relationship and I can&apos;t see us prioritizing any change here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51622</commentid>
    <comment_count>7</comment_count>
    <who name="Andi Snow-Weaver">andi.snowweaver</who>
    <bug_when>2011-07-28 12:08:46 +0000</bug_when>
    <thetext>So does this mean that the text of the element with role=&quot;presentation&quot; will not be used in the name calculation? The name calculation section doesn&apos;t say anything about role=&quot;presentation&quot;

http://www.w3.org/WAI/PF/aria/roles#namecalculation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51642</commentid>
    <comment_count>8</comment_count>
    <who name="Andi Snow-Weaver">andi.snowweaver</who>
    <bug_when>2011-07-28 15:40:52 +0000</bug_when>
    <thetext>David,

I discussed this with Rich. It is NOT an authoring error. role=&quot;presentation&quot; just strips the semantics. It doesn&apos;t hide the text. That&apos;s what aria-hidden is for and we have rules for that in the name calculation rules. It&apos;s the same as if the aria-labelledby pointed to text. Does FF not support that?

ACTION: File a FF bug, record the number here, and then close this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51676</commentid>
    <comment_count>9</comment_count>
    <who name="David Bolter">dbolter</who>
    <bug_when>2011-07-28 18:38:53 +0000</bug_when>
    <thetext>OK good news and clarification:

Regarding name calc: FF *does* pick up the text for name calculation as per IE.

Regarding IA2 relations: FF can not guarantee exposing the IA2 relations as per comment 6.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58383</commentid>
    <comment_count>10</comment_count>
    <who name="Andi Snow-Weaver">andi.snowweaver</who>
    <bug_when>2011-10-18 20:35:55 +0000</bug_when>
    <thetext>Are there other cases where FF does not expose the relation if the referenced object has role=&quot;presentation&quot;?

I think this is covered by the following general rule for including something in the accessibility tree:

* has a role attribute but does not contain the presentation role before any other mappable role (see Role Mapping below) and does not inherit a role of presentation from an owning element. If the presentation role is used or inherited, the element must still be exposed if it has a WAI-ARIA global attribute other than aria-hidden or is focusable, so that FOCUS events can be fired (focus must never be lost).

If the element referenced by aria-labelledby has role=&quot;presentation&quot;, it won&apos;t be in the accessibility tree and therefore you can&apos;t expose the relations. I hope this is sufficient as I don&apos;t want to put in special cases everywhere for role=&quot;presentation&quot; and certain relations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61311</commentid>
    <comment_count>11</comment_count>
    <who name="David Bolter">dbolter</who>
    <bug_when>2011-12-09 16:52:04 +0000</bug_when>
    <thetext>(In reply to comment #10)
&gt; Are there other cases where FF does not expose the relation if the referenced
&gt; object has role=&quot;presentation&quot;?
&gt; 
&gt; I think this is covered by the following general rule for including something
&gt; in the accessibility tree:
&gt; 
&gt; * has a role attribute but does not contain the presentation role before any
&gt; other mappable role (see Role Mapping below) and does not inherit a role of
&gt; presentation from an owning element. If the presentation role is used or
&gt; inherited, the element must still be exposed if it has a WAI-ARIA global
&gt; attribute other than aria-hidden or is focusable, so that FOCUS events can be
&gt; fired (focus must never be lost).
&gt; 
&gt; If the element referenced by aria-labelledby has role=&quot;presentation&quot;, it won&apos;t
&gt; be in the accessibility tree and therefore you can&apos;t expose the relations. I
&gt; hope this is sufficient as I don&apos;t want to put in special cases everywhere for
&gt; role=&quot;presentation&quot; and certain relations.

I would remove &quot;and does not inherit a role of presentation from an owning element&quot;, &quot;or inherited&quot;. (role=presentation is not inherited)

With that, I think your text is sufficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61317</commentid>
    <comment_count>12</comment_count>
    <who name="David Bolter">dbolter</who>
    <bug_when>2011-12-09 17:57:10 +0000</bug_when>
    <thetext>Andi, scratch what I just said, I didn&apos;t realize you were talking about the special cases where presentation *is* inherited, like with table and its sub elements.

I think your text is good to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61318</commentid>
    <comment_count>13</comment_count>
    <who name="Andi Snow-Weaver">andi.snowweaver</who>
    <bug_when>2011-12-09 18:10:08 +0000</bug_when>
    <thetext>Presentation role is inherited. Per the ARIA spec [1], &quot;However, the user agent MUST expose content and descendant elements that do not have an explicit or inherited role of presentation.&quot;

So I&apos;m not changing the text and I think we&apos;re good on the aria-labeledby pointing to an element with role=&quot;presentation&quot;. If there aren&apos;t any other ARIA attributes on the element, it won&apos;t be in the accessibility tree. The text will be used in the name calculation but the relationship won&apos;t be exposed in the AAPI.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>