- 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