RESOLVED FIXED 171174
[ATK] Object attributes are missing for ARIA live region roles
https://bugs.webkit.org/show_bug.cgi?id=171174
Summary [ATK] Object attributes are missing for ARIA live region roles
Joanmarie Diggs
Reported 2017-04-22 16:10:13 PDT
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
Attachments
Patch (33.47 KB, patch)
2017-09-21 15:34 PDT, Joanmarie Diggs
no flags
Patch (34.86 KB, patch)
2017-09-22 09:05 PDT, Joanmarie Diggs
no flags
Patch (35.64 KB, patch)
2017-09-22 12:50 PDT, Joanmarie Diggs
no flags
Patch (35.51 KB, patch)
2017-09-23 08:05 PDT, Joanmarie Diggs
no flags
Radar WebKit Bug Importer
Comment 1 2017-04-22 16:11:29 PDT
Joanmarie Diggs
Comment 2 2017-09-21 15:34:48 PDT
Joanmarie Diggs
Comment 3 2017-09-21 15:38:19 PDT
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.
chris fleizach
Comment 4 2017-09-21 18:23:00 PDT
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
Joanmarie Diggs
Comment 5 2017-09-22 09:05:43 PDT
Joanmarie Diggs
Comment 6 2017-09-22 09:23:31 PDT
> 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!
Joanmarie Diggs
Comment 7 2017-09-22 12:50:04 PDT
Joanmarie Diggs
Comment 8 2017-09-23 08:05:33 PDT
WebKit Commit Bot
Comment 9 2017-09-24 04:52:40 PDT
Comment on attachment 321633 [details] Patch Clearing flags on attachment: 321633 Committed r222433: <http://trac.webkit.org/changeset/222433>
WebKit Commit Bot
Comment 10 2017-09-24 04:52:42 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.