[Webkit-unassigned] [Bug 223492] AX: [iOS] [Voice Over] Voice Over skips elements with role="group" and role="region"

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jun 26 09:49:07 PDT 2023


https://bugs.webkit.org/show_bug.cgi?id=223492

Michael Jordan <mijordan at adobe.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mijordan at adobe.com

--- Comment #22 from Michael Jordan <mijordan at adobe.com> ---
I'm not sure that a div[role="group"][tabindex][aria-roledescription] wrapping a <p> element containing static text is the best use case to illustrate the problem.

For additional context, that the accessible name for a [role="group"] of controls is not announced when an input control within the group receives focus with the VoiceOver cursor is a significant accessibility failure that affects many use cases, where, for what ever reason, developers choose [role="group"] over  fieldset and legend.

For example, a web component implementation of a two-handle slider could render using markup similar to the following:

<wc-slider label="Price Range" role="group" aria-label="Price Range">
  <span id="label">
    <label for="input-0" aria-hidden="true">Price Range</label>
    <output aria-live="off">$25 - $75</output>
  </span>
  <span id="handle-0" role="none">
    <input type="range" id="input-0" name="input-0" min="0" max="75" value="25" aria-valuetext="$25" aria-label="Minimum" />
  </span>
  <span id="handle-1" role="none">
    <input type="range" id="input-1" name="input-1" min="25" max="100" value="75" aria-valuetext="$75" aria-label="Maximum" />
  </span>
</wc-slider>

Swiping the VoiceOver cursor to focus the first input[type="range"] within the component should announce as "$25, Minimum, slider, Price Range, group." Swiping to the next input[type="range"] within the component should announce "$75, Maximum, slider," and swiping out of the component with role="group" to the next element should announce "End of Price Range, group."

Developers expect a role="group" with either aria-label or aria-labelledby to behave this way for their users, and the WAI even provides an example of a group of inputs for receiving a social security number, as part of its Techniques for WCAG 2.0. https://w3.org/TR/WCAG20-TECHS/ARIA17.html#ARIA17-ex1.

Here is a link to blog post lamenting that developers do not choose fieldset and legend instead of role="group", and providing a number of suggested workarounds for fieldset and legend layout issues, which in large part had to be written because of this ticket. https://adrianroselli.com/2022/07/use-legend-and-fieldset.html

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20230626/47bf7915/attachment.htm>


More information about the webkit-unassigned mailing list