w3c / html-aam

HTML Accessibility API Mappings
https://w3c.github.io/html-aam/
Other
97 stars 25 forks source link

Update UIA mappings for the <label> element #524

Closed benbeaudry closed 4 months ago

benbeaudry commented 5 months ago

The current mappings for the

++UIA_TextControlTypeId ++++UIA_TextControlTypeId

This is invalid in the world of UIA. UIA expects UIA_TextControlTypeId to be a leaf node. It effectively makes Narrator, a UIA-based AT, read both UIA_TextControlTypeId nodes independently. Instead, I suggest we map the

I'm wondering if this could possibly lead to undefined behaviors, though. Thoughts?

benbeaudry commented 5 months ago

The change we did in Chromium: https://chromium-review.googlesource.com/c/chromium/src/+/5232179.

scottaohara commented 5 months ago

@benbeaudry what you're saying makes sense if that's how UIA's text control type is meant to work... but if that's the case then I think this potentially a far more pervasive issue than this single element. Arguably, based on your description I question if any element or ARIA role would reasonably map to this control type.

benbeaudry commented 5 months ago

Good point. The other UIA text mappings we have in html-aam are:

Are these all roles that can contain some complex web content structure, like <label>?

scottaohara commented 5 months ago

yes. they can all contain more than non-text content.

but that is also true for a bunch of ARIA roles as well.

did something change with the text control type, or was this always just wrong?

benbeaudry commented 5 months ago

It was always like that, I suppose we simply never noticed it and/or UIA-based ATs started enforcing this requirement more seriously.