Re: accessible name calculation chains

Hi Fred,

This issue was discussed last April among Dominic, Alex, Matt, James 
Nurthen, and myself.  The conclusion was that aria-labelledby does not 
chain, or, to use the terminology from last year, aria-labelledby is not 
allowed to be recursive.  The discussion thread starts here:
https://lists.w3.org/Archives/Public/public-pfwg/2015Apr/0288.html

Step 2B of the accname-aam states that aria-labelledby is processed only 
if you are not in the middle of handling an aria-labelledby traversal [1].

Given that, in your first example, the accessible name is "big end".  
Similarly, the accessible description is "the end". (Note:  the 
description is neither "big end" nor "big finish" as you suggest, since 
the text for the element with id=t1 in the description example is simply 
"the").

On 2016-03-07 10:15 AM, Fred Esch wrote:
> I have a question on chains in accessible name calculation and 
> accessible description calculation
>
>    // two valid idrefs, one with an aria-label, one with aria-labelledby
>   if given
>
>   <circle id="test" aria-labelledby="t1 t2" cx='50' cy='100' r='15'/>
>   <text id="t1" x="40" y="90" aria-label="big">the</text>
>   <text id="t2" x="140" y="90" aria-labelledby='t3'>end</text>
>   <text id="t3" x="180" y="90">finish</text>
>
> What is correct accessible name /big end/ or/big finish/?
>
>    // two valid idrefs, one with aria-describedby
>   if given
>
>   <circle id="test" aria-describedby="t1 t2" cx='50' cy='100' r='15'/>
>   <text id="t1" x="40" y="90">the</text>
>   <text id="t2" x="140" y="90" aria-describedby='t3'>end</text>
>   <text id="t3" x="180" y="90">finish</text>
>
> What is the correct accessible description /big end /or/big finish/?

Also, in another thread I have suggested introducing a 
"process-labelledby" flag for the calculation and to change step 2B from:

if computing a name, and the current node has a non-empty 
aria-labelledby attribute, *and the current node is not already part of 
an aria-labelledby traversal*, process its IDREFs in the order they occur:

to:

if computing a name, and the current node has a non-empty 
aria-labelledby attribute, *and the 'proccess-labelledby' flag is false, 
then set the 'proccess-labelledby' flag to true*, and process the 
current node's IDREFs in the order they occur:
// current three steps for proccessing the IDREFS
*Once all IDREFS have been processed, reset the 'proccess-labelledby' 
flag to false.*

Similar changes for a "proccess-describedby" flag.

Hope that helps.


[1] https://www.w3.org/TR/accname-aam-1.1/#step2B (first bullet).

-- 
;;;;joseph.

'Die Wahrheit ist Irgendwo da Draußen. Wieder.'
                  - C. Carter -

Received on Monday, 7 March 2016 17:04:24 UTC