Index: Source/core/accessibility/AXRenderObject.cpp |
diff --git a/Source/core/accessibility/AXRenderObject.cpp b/Source/core/accessibility/AXRenderObject.cpp |
index b66468d79180da9832394543b082c7a59fa4e3bb..63de5bcebab447585c8d6751c89442af8aca2a92 100644 |
--- a/Source/core/accessibility/AXRenderObject.cpp |
+++ b/Source/core/accessibility/AXRenderObject.cpp |
@@ -314,12 +314,14 @@ AccessibilityRole AXRenderObject::determineAccessibilityRole() |
HTMLInputElement& input = toHTMLInputElement(*node); |
const AtomicString& type = input.type(); |
if (type == InputTypeNames::button) { |
- if ((node->parentNode() && isHTMLMenuElement(node->parentNode())) || (parentObject() && parentObject()->roleValue() == MenuRole)) |
+ if ((node->parentNode() && isHTMLMenuElement(node->parentNode())) || (parentObject() && parentObject()->ariaRoleAttribute() == MenuRole)) |
return MenuItemRole; |
+ if (parentObject() && parentObject()->ariaRoleAttribute() == GroupRole) |
+ return MenuButtonRole; |
return buttonRoleType(); |
} |
if (type == InputTypeNames::checkbox) { |
- if ((node->parentNode() && isHTMLMenuElement(node->parentNode())) || (parentObject() && parentObject()->roleValue() == MenuRole)) |
+ if ((node->parentNode() && isHTMLMenuElement(node->parentNode())) || (parentObject() && parentObject()->ariaRoleAttribute() == MenuRole)) |
return MenuItemCheckBoxRole; |
return CheckBoxRole; |
} |
@@ -331,7 +333,7 @@ AccessibilityRole AXRenderObject::determineAccessibilityRole() |
|| type == InputTypeNames::week) |
return DateTimeRole; |
if (type == InputTypeNames::radio) { |
- if ((node->parentNode() && isHTMLMenuElement(node->parentNode())) || (parentObject() && parentObject()->roleValue() == MenuRole)) |
+ if ((node->parentNode() && isHTMLMenuElement(node->parentNode())) || (parentObject() && parentObject()->ariaRoleAttribute() == MenuRole)) |
return MenuItemRadioRole; |
return RadioButtonRole; |
} |