Bug 215739
Summary: | AX: menu items are treated as menu buttons if they are contained in a group | ||
---|---|---|---|
Product: | WebKit | Reporter: | James Craig <jcraig> |
Component: | Accessibility | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW | ||
Severity: | Normal | CC: | webkit-bug-importer |
Priority: | P2 | Keywords: | InRadar |
Version: | WebKit Nightly Build | ||
Hardware: | All | ||
OS: | All |
James Craig
commit 478547cfff0c1c4d0d1def735f9576ac60711d16 (May 2008) introduced behavior that treats menu items as menu buttons if they are contained in an element with the group role.
+ if (equalIgnoringCase(ariaRole,"menuitem")) {
+ if (parentObjectUnignored()->ariaRoleAttribute() == GroupRole)
+ return MenuButtonRole;
It's not clear to me (or the other ARIA editors) why this is. The macOS AX API mapping behavior was later added to the AAM document to match the existing WebKit behavior. Unless a reason emerges, the AAM guidance is going to change. Filing this bug to determine if there is a reason, and if not, as a tracker for the relevant WebKit change to remove this behavior.
Perhaps this was a heuristic conditional intended to determine if there was a menuitem that was not contained in a menu or menubar? If so, the conditional should check if *any* ancestor element matches those roles.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/67574862>
James Craig
Original commit message was:
2008-05-22 Alice Liu
Reviewed by Adele, Dan Bernstein.
Fixed <rdar://problem/5943104> Need to implement ARIA role="menu" and related roles
<rdar://problem/5943132> Need to implement ARIA role="menuitem"
<rdar://problem/5943173> Need to implement ARIA role="menubar"
These changes added a handler for determining the ARIA role when the
attribute changes. Before we were querying for the attribute over and
over every time we queried for the role.
* dom/Element.cpp:
(WebCore::Element::attributeChanged):
* page/AXObjectCache.cpp:
(WebCore::AXObjectCache::handleAriaRoleChanged):
* page/AXObjectCache.h: