Chromium Code Reviews| Index: Source/modules/accessibility/AXNodeObject.cpp |
| diff --git a/Source/modules/accessibility/AXNodeObject.cpp b/Source/modules/accessibility/AXNodeObject.cpp |
| index d532cb22d7305b3e8a7cbb1cc319ed858cb1a2e8..fe16571856d2cc1ec7082643dc0b1ba9c76a1f95 100644 |
| --- a/Source/modules/accessibility/AXNodeObject.cpp |
| +++ b/Source/modules/accessibility/AXNodeObject.cpp |
| @@ -176,19 +176,12 @@ bool AXNodeObject::computeAccessibilityIsIgnored() const |
| return m_role == UnknownRole; |
| } |
| - |
| -AccessibilityRole AXNodeObject::determineAccessibilityRole() |
| +AccessibilityRole AXNodeObject::determineAccessibilityRoleUtil() |
|
dmazzoni
2014/12/04 08:23:19
Need a newline before this function.
|
| { |
| if (!node()) |
| return UnknownRole; |
| - |
| - if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole) |
| - return m_ariaRole; |
| - |
| if (node()->isLink()) |
| return LinkRole; |
| - if (node()->isTextNode()) |
| - return StaticTextRole; |
| if (isHTMLButtonElement(*node())) |
| return buttonRoleType(); |
| if (isHTMLDetailsElement(*node())) |
| @@ -202,6 +195,8 @@ AccessibilityRole AXNodeObject::determineAccessibilityRole() |
| if (isHTMLInputElement(*node())) { |
| HTMLInputElement& input = toHTMLInputElement(*node()); |
| const AtomicString& type = input.type(); |
| + if (input.dataList()) |
| + return ComboBoxRole; |
| if (type == InputTypeNames::button) { |
| if ((node()->parentNode() && isHTMLMenuElement(node()->parentNode())) || (parentObject() && parentObject()->roleValue() == MenuRole)) |
| return MenuItemRole; |
| @@ -219,6 +214,8 @@ AccessibilityRole AXNodeObject::determineAccessibilityRole() |
| || type == InputTypeNames::month |
| || type == InputTypeNames::week) |
| return DateTimeRole; |
| + if (type == InputTypeNames::file) |
| + return ButtonRole; |
| if (type == InputTypeNames::radio) { |
| if ((node()->parentNode() && isHTMLMenuElement(node()->parentNode())) || (parentObject() && parentObject()->roleValue() == MenuRole)) |
| return MenuItemRadioRole; |
| @@ -264,15 +261,30 @@ AccessibilityRole AXNodeObject::determineAccessibilityRole() |
| return FigcaptionRole; |
| if (node()->isElementNode() && node()->hasTagName(figureTag)) |
| return FigureRole; |
| - if (node()->isElementNode() && toElement(node())->isFocusable()) |
| - return GroupRole; |
| if (isHTMLAnchorElement(*node()) && isClickable()) |
| return LinkRole; |
| if (isHTMLIFrameElement(*node())) |
| return IframeRole; |
| if (isEmbeddedObject()) |
| return EmbeddedObjectRole; |
| + return UnknownRole; |
| +} |
| +AccessibilityRole AXNodeObject::determineAccessibilityRole() |
| +{ |
| + if (!node()) |
| + return UnknownRole; |
| + |
| + if ((m_ariaRole = determineAriaRoleAttribute()) != UnknownRole) |
| + return m_ariaRole; |
| + if (node()->isTextNode()) |
| + return StaticTextRole; |
| + |
| + AccessibilityRole role = determineAccessibilityRoleUtil(); |
| + if (role != UnknownRole) |
| + return role; |
| + if (node()->isElementNode() && toElement(node())->isFocusable()) |
| + return GroupRole; |
| return UnknownRole; |
| } |