ISSUE-752: Potential infinite loop
Potential infinite loop
- State:
- CLOSED
- Product:
- ARIA 1.1 Name Computation
- Raised by:
- Cynthia Shelly
- Opened on:
- 2015-11-14
- Description:
- Potential infinite loop
Take this example:
<td>I contain a <button>button</button>!</td>
Computing the name for the cell, I believe you’ll hit this:
1. Hit step 2.F, name from contents
2. Walk child nodes until you hit the <button>
3. Button hits step 2.E., which says get the name from the text alternative of the button
4. One of the two will happen:
a. Button satisfies 2.D and has a native attribute defining text alternative (really need this specified)
b. Button does not satisfy 2.D and drops back into 2.E and goes back to step 3 here
Now, take this:
<td>I contain a <button aria-label=”fun button”>button</button>!</td>
Computing the name for the cell, I believe you’ll hit this:
1. Hit step 2.F, name from contents
2. Walk child nodes until you hit the <button>
3. Button hits step 2.E., which says get the name from the text alternative of the button
4. Hit step 2.C, and this is an embedded control with an aria-label defined, but ignored, so we jump to step 2.E again
5. Step 2.E and goes back to step 3 here
- Related Actions Items:
- No related actions
- Related emails:
- No related emails
Related notes:
I am looking at issue 752: https://www.w3.org/WAI/ARIA/track/issues/752
I don’t see the infinite loop here.
Step 2E now says:
Otherwise, if the current node is a control embedded within the label (e.g. the label element in HTML or any element directly referenced by aria-labelledby) for another widget, where the user can adjust the embedded control's value, then include the embedded control as part of the text alternative in the following manner
In Cynthia’s example: <td>I contain a <button aria-label=”fun button”>button</button>!</td>
button is not within a label. It is within a TD.
So, in the case of 2F. TD is a cell that allows name from content and the algorithm will cycle through the children. When the current node becomes “pushbutton” ( a button ) the HTML spec. states how to compute its name and step 2C will compute the name based on the aria-label supplied.
In other words, there is no infinite loop given the current text. So, I recommend that we close the issue.
I am closing the issue.
Display change log