https://rawgit.com/w3c/aria/master/core-aam/core-aam.html#role-map-status ROLE_STATUSBAR + object attributes container-live:polite;live:polite;container-live-role:status
<rdar://problem/31775582>
Created attachment 321486 [details] Patch
As indicated in the updated summary/title: Turns out we're not exposing any live region attributes to ATK. Attached patch solves that. I'll tackle the missing events in a subsequent bug.
Comment on attachment 321486 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=321486&action=review > Source/WebCore/accessibility/AccessibilityObject.cpp:2510 > + return const_cast<AccessibilityObject*>(AccessibilityObject::matchedParent(*this, false, [] (const AccessibilityObject& object) { what if ariaLiveRegionAncestor also considered "this". then we can probably write bool AccessibilityObject::isInsideARIALiveRegion() const { return ariaLiveRegionAncestor() } and it looks like some of your GTK code could be combined instead of having separating paths for ancestor and this aria live region status
Created attachment 321553 [details] Patch
> what if ariaLiveRegionAncestor also considered "this". then we can probably > write > > bool AccessibilityObject::isInsideARIALiveRegion() const { > return ariaLiveRegionAncestor() > } Done. > and it looks like some of your GTK code could be combined instead of having > separating paths for ancestor and this aria live region status Sorta done. Sadly, the current mappings are less than ideal (and pre-date my involvement), but they are what's in the Core AAM. And they specify exposure in slightly different ways depending on whether the element is the live region or a descendant of the live region. Anyway, I tried to combine things, and where the separate paths were still needed, I added comments to hopefully makes it clear why. Related to the above changes: In the original patch, I was actually using the value returned by ariaLiveRegionStatus() deliberately, because on my platform, even disabled/off live regions need to be treated as live regions as far as mapping/exposure of properties is concerned. WebCore only treats elements as supporting live regions if they are enabled/{polite,assertive}. So using ariaLiveRegionAncestor() for the current element rather than the status requires it (be able to) treat disabled/off live regions as live regions. I assume what's in WebCore now was done for your platform's needs, so I added the optional argument excludeIfOff defaulting to true to not change existing behavior. If I'm wrong about my assumptions, please let me know. Thanks again!
Created attachment 321582 [details] Patch
Created attachment 321633 [details] Patch
Comment on attachment 321633 [details] Patch Clearing flags on attachment: 321633 Committed r222433: <http://trac.webkit.org/changeset/222433>
All reviewed patches have been landed. Closing bug.