Open Bug 2055267 Opened 2 days ago Updated 11 hours ago

aria-describedby fails on VoiceOver except for particular roles

Categories

(Core :: Disability Access APIs, defect)

Desktop
macOS
defect

Tracking

()

Tracking Status
firefox154 --- affected

People

(Reporter: jakea, Unassigned, NeedInfo)

Details

<div tabindex="0" aria-describedby="foo">…</div>
<div id="foo" style="display:none">Description</div>

I expected the above to work, as in VoiceOver reads the description when the element has focus. However, it isn't read.

If I give the focusable element a role of link, button, or img, it works.

In Chrome it works without one of these roles. It feels like the Chrome behaviour is correct.

This seems to be mac/VoiceOver specific. I see the description exposed on Windows.

Eitan, any ideas?

Flags: needinfo?(eitan)
OS: Unspecified → macOS
Hardware: Unspecified → Desktop

Marking S2 because there's no other way to get this info as far as I know.

FWIW, this doesn't appear to work in Safari

Accessibility Severity: --- → s2
Severity: -- → S2
Accessibility Severity: s2 → ---

I filed the same issue for WebKit https://bugs.webkit.org/show_bug.cgi?id=319558

Edit: Nah, this is a red herring. See the next comment.

https://source.chromium.org/chromium/chromium/src/+/main:ui/accessibility/platform/ax_platform_node_cocoa.mm;l=2353 seems to reference the VoiceOver issue, and uses AXHelp as a fallback. Although here it's for fieldsets.

I compared the trees between Chrome & Firefox, and I think the difference is that Chrome always provides an AXDescription. If there isn't an AXDescription, then VoiceOver will not read the AXCustomContent.

Firefox does provide an AXDescription if the element is of certain roles, which is why the aria-describedby suddenly works if the element has role="button" or whatever.

I guess the solution is to always set a AXDescription. I think if AXTitle is set, then that also causes VO to read the AXCustomContent.

Let's retest this once macOS 27 is released, I believe there may be a VO fix in flight for this.

You need to log in before you can comment on or make changes to this bug.