- From: Joseph Scheuhammer <clown@alum.mit.edu>
- Date: Mon, 7 Mar 2016 12:04:01 -0500
- To: Fred Esch <fesch@us.ibm.com>, ARIA <public-aria@w3.org>
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