Re: ACTION-1474 Rewrite text alternative computation.

Hi Alex,

Thanks for your comments.  Replies inline:

>
> * "Root node. The DOM node or element 
> <http://rawgit.com/w3c/aria/master/accname-aam/accname-aam.html#dfn-element>", 
> every element is DOM node

Yes, but not every DOM node is an element.  DOM node is the base class 
for elements as well as text nodes, among others.  See: 
http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-1950641247

> * "Current node. The DOM node currently traversed to compute its text 
> equivalent.", I'd argue about "its" because current node text 
> equivalent may be not a part of root node text equivalent. For 
> example, text equivalent for plain HTML:p is empty string but text 
> equivalent for a button containing that HTML:p is content of HTML:p. 
> So it looks that it should be "to compute root node text equivalent".

Good point.  Just to be clear (and pedantic), you are suggesting the 
definition of "current node" be changed to:

" The DOM node currently traversed to compute the root node text 
equivalent. Initially, this is the |root node|, but at later stages is 
either some descendant of the |root node|, or another referenced node."

But, that's not enough to handle your examples.  Taking a plain 
<p>text</p> as the root, and looking at the steps, it appears that 2F 
and/or 2G apply.  Either way, one ends up with "text" as the accessible 
name, but you say it's the empty string. Is there a principle here such 
as, "if the root node is a widget, then all descendants are processed, 
but if the root node is a non-interactive text container, it has no 
accessible name"? Compare, for example:
http://rawgit.com/w3c/aria/master/html-aam/html-aam.html#text-level-elements-not-listed-elsewhere

> * 2A "referenced by |aria-labelledby| or |aria-describedby" that 
> denies the native markup to have a reference to hidden nodes, also 
> this doesn't go with Firefox impl|

I'm not sure I understand "that denies the native markup to have a 
reference to hidden nodes".  The full condition here is (hidden && 
!referenced).  If that condition holds, then the node is skipped.  That 
entails that it is *not* skipped if aria-labelledby or aria-describedby 
*reference* hidden nodes.  In that case the condition fails, and the 
hidden nodes are used.

I found a test case in the  test harness where aria-describedby 
references a hidden node, where the expected result is that the 
accessible description is "foo".  I ran it with FF 33.0.3, and got the 
same result, consistent with 2A.  The test case is:
https://dvcs.w3.org/hg/pfwg/raw-file/default/ARIA/1.0/tests/test-files/aria-describedby/773.html

> |*2B doesn't even mention aria-describedby|

Yeah, I just noticed that the other day.  The current working draft 
doesn't mention aria-describedby either, at step 2A in that version.  See:
[1] http://www.w3.org/TR/core-aam-1.1/#mapping_additional_nd_te (step 2A 
in this version).

I went back a few versions, and discovered that this has been missing 
for a while.  I'll have to think about how to work it in.

Thanks again.

-- 
;;;;joseph.

'Array(16).join("wat" - 1) + " Batman!"'
            - G. Bernhardt -

Received on Friday, 7 November 2014 20:45:29 UTC