Index: Source/core/accessibility/AXNodeObject.cpp |
diff --git a/Source/core/accessibility/AXNodeObject.cpp b/Source/core/accessibility/AXNodeObject.cpp |
index 1140082d95d1d0efe228b4ba3fd2eb7612863ddc..8cb88e486284a92c7d0d34c76e0bf41a8c8aee48 100644 |
--- a/Source/core/accessibility/AXNodeObject.cpp |
+++ b/Source/core/accessibility/AXNodeObject.cpp |
@@ -204,12 +204,14 @@ AccessibilityRole AXNodeObject::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; |
} |
@@ -221,7 +223,7 @@ AccessibilityRole AXNodeObject::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; |
} |