Closed Bug 1887790 Opened 1 year ago Closed 1 year ago

[UIA] Expose live regions

Categories

(Core :: Disability Access APIs, task)

Desktop
Windows
task

Tracking

()

RESOLVED FIXED
128 Branch
Tracking Status
firefox128 --- fixed

People

(Reporter: Jamie, Assigned: Jamie)

References

(Blocks 1 open bug)

Details

Attachments

(5 files)

We need to expose live regions to UIA clients. This will involve the LiveSetting property and the LiveRegionChanged event. However, exactly how these should be used to expose all live region semantics is rather unclear, so some investigation will be needed.

Assignee: nobody → jteh

This isn't clearly documented, but as well as the LiveSetting property, we need to do (at least) the following to get live regions working in Narrator:

  1. IsControlElement/IsContentElement must return true for live regions. Otherwise, Narrator will fail to find changes inside them.
  2. AriaProperties must always expose the value of aria-atomic; e.g. atomic=false. Otherwise, Narrator will assume the region is atomic and read the entire thing, rather than just updates.

StructureChanged events don't seem to make a difference. There might be more to learn as I do more complex testing.

This isn't used any more and only works for LocalAccessible.

UIA doesn't have a native property to expose aria-atomic, so we need to expose this via AriaProperties.
If it's not exposed, Narrator will assume true, so we must expose it even if it's not explicitly present.

As part of this, I removed the local-only implementation of AriaProperties.
While it was more complete, it's not useful to have this supported only for LocalAccessible.
In addition, it didn't expose implicit default values, which this atomic case proves we need in some cases.
We'll add more properties as needed.

Otherwise, Narrator will fail to traverse the live region when looking for its content.

See Also: → 1885011
Pushed by jteh@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/deee94263a33 part 1: Remove nsAccUtils::IsARIALive. r=nlapre https://hg.mozilla.org/integration/autoland/rev/84c448c765fa part 2: Implement the UIA LiveSetting property. r=nlapre https://hg.mozilla.org/integration/autoland/rev/2d77157cf946 part 3: Expose aria-atomic via the UIA AriaProperties property. r=nlapre https://hg.mozilla.org/integration/autoland/rev/b75c10fb749c part 4: Treat a live region root as a UIA control element. r=nlapre https://hg.mozilla.org/integration/autoland/rev/17ea92320f6b part 5: Fire UIA LiveRegionChanged events. r=nlapre
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: