Commit e12d47e1 authored by Aaron Leventhal's avatar Aaron Leventhal Committed by Commit Bot

Menuitem in group needs name from contents

Fixes regression from CL:2142611 where a menuitem inside of a
group no longer gets an accessible name.

This was due to moving kMenuButton inside the NameFromContents()
switch, such that it would no longer get a name from contents.
Currently, a role=menuitem inside a role=group gets remapped to
kMenuButton via AXObject::RemapAriaRoleDueToParent().

The purpose of remapping menuitem inside of a group to kMenuButton is
to expose it as AXMenuButton instead of AXMenuItem on OS, per CORE-AAM.
This remapping may be removed in the future, and is an open issue
in CORE-AAM. See https://github.com/w3c/core-aam/issues/78

Bug: 1114712
Change-Id: Iae23b2351e72486e1cf3bf4b96ce1ff283e4ad97
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2353019Reviewed-by: default avatarNektarios Paisios <nektar@chromium.org>
Commit-Queue: Nektarios Paisios <nektar@chromium.org>
Auto-Submit: Aaron Leventhal <aleventhal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#797667}
parent c05a6085
...@@ -3968,6 +3968,7 @@ bool AXObject::NameFromContents(bool recursive) const { ...@@ -3968,6 +3968,7 @@ bool AXObject::NameFromContents(bool recursive) const {
case ax::mojom::blink::Role::kLineBreak: case ax::mojom::blink::Role::kLineBreak:
case ax::mojom::blink::Role::kLink: case ax::mojom::blink::Role::kLink:
case ax::mojom::blink::Role::kListBoxOption: case ax::mojom::blink::Role::kListBoxOption:
case ax::mojom::blink::Role::kMenuButton:
case ax::mojom::blink::Role::kMenuItem: case ax::mojom::blink::Role::kMenuItem:
case ax::mojom::blink::Role::kMenuItemCheckBox: case ax::mojom::blink::Role::kMenuItemCheckBox:
case ax::mojom::blink::Role::kMenuItemRadio: case ax::mojom::blink::Role::kMenuItemRadio:
...@@ -4072,8 +4073,6 @@ bool AXObject::NameFromContents(bool recursive) const { ...@@ -4072,8 +4073,6 @@ bool AXObject::NameFromContents(bool recursive) const {
case ax::mojom::blink::Role::kMenuListPopup: case ax::mojom::blink::Role::kMenuListPopup:
case ax::mojom::blink::Role::kMenu: case ax::mojom::blink::Role::kMenu:
case ax::mojom::blink::Role::kMenuBar: case ax::mojom::blink::Role::kMenuBar:
case ax::mojom::blink::Role::kMenuButton: // Only value from content, not
// name.
case ax::mojom::blink::Role::kMeter: case ax::mojom::blink::Role::kMeter:
case ax::mojom::blink::Role::kNavigation: case ax::mojom::blink::Role::kNavigation:
case ax::mojom::blink::Role::kNote: case ax::mojom::blink::Role::kNote:
......
...@@ -60,6 +60,8 @@ PASS name is "menu name" ...@@ -60,6 +60,8 @@ PASS name is "menu name"
PASS name is "menubar name" PASS name is "menubar name"
PASS name is "menuitem name" PASS name is "menuitem name"
PASS name is "menuitem name" PASS name is "menuitem name"
PASS name is "group name"
PASS name is "menuitem name"
PASS name is "menuitemcheckbox name" PASS name is "menuitemcheckbox name"
PASS name is "menuitemcheckbox name" PASS name is "menuitemcheckbox name"
PASS name is "menuitemradio name" PASS name is "menuitemradio name"
......
...@@ -118,6 +118,9 @@ ...@@ -118,6 +118,9 @@
<div role="menuitem">menuitem name</div> <div role="menuitem">menuitem name</div>
<div role="menuitem" aria-label="menuitem name">This is a menuitem</div> <div role="menuitem" aria-label="menuitem name">This is a menuitem</div>
<div role="group" aria-label="group name">
<div role="menuitem">menuitem name</div>
</div>
<menu type="popup"> <menu type="popup">
<menuitem command="doSomething" data-role="menuitem" aria-label="implicit menuitem name" data-knownFailure>This is a menuitem</menuitem> <menuitem command="doSomething" data-role="menuitem" aria-label="implicit menuitem name" data-knownFailure>This is a menuitem</menuitem>
</menu> </menu>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment