Chromium Code Reviews| Index: Source/modules/accessibility/AXRenderObject.cpp |
| diff --git a/Source/modules/accessibility/AXRenderObject.cpp b/Source/modules/accessibility/AXRenderObject.cpp |
| index a7c75232694e36186a0b8961e8e66d5df2346858..5a509841cfafc6e36e61cd8bfadaa2f2cfb11bc5 100644 |
| --- a/Source/modules/accessibility/AXRenderObject.cpp |
| +++ b/Source/modules/accessibility/AXRenderObject.cpp |
| @@ -280,6 +280,10 @@ AccessibilityRole AXRenderObject::determineAccessibilityRole() |
| return ListItemRole; |
| if (m_renderer->isListMarker()) |
| return ListMarkerRole; |
| + if (isHTMLSelectElement(node)) { |
| + HTMLSelectElement& selectElement = toHTMLSelectElement(*node); |
| + return (selectElement.multiple() || selectElement.size() > 1 ) ? ListBoxRole : PopUpButtonRole; |
|
dmazzoni
2015/01/29 16:28:29
I don't think this will return the correct result
m.lapinski
2015/01/30 10:46:21
According to standard (working draft) http://www.w
dmazzoni
2015/02/02 19:49:25
Yeah, I think we need to fix the layout test so th
|
| + } |
| if (m_renderer->isBR()) |
| return LineBreakRole; |
| if (isHTMLLegendElement(node)) |
| @@ -896,8 +900,6 @@ String AXRenderObject::stringValue() const |
| if (isPasswordFieldAndShouldHideValue()) |
| return String(); |
| - RenderBoxModelObject* cssBox = renderBoxModelObject(); |
| - |
| if (ariaRoleAttribute() == StaticTextRole) { |
| String staticText = text(); |
| if (!staticText.length()) |
| @@ -908,7 +910,7 @@ String AXRenderObject::stringValue() const |
| if (m_renderer->isText()) |
| return textUnderElement(); |
| - if (cssBox && cssBox->isMenuList()) { |
| + if (isHTMLSelectElement(m_renderer->node())) { |
| // RenderMenuList will go straight to the text() of its selected item. |
| // This has to be overridden in the case where the selected item has an ARIA label. |
| HTMLSelectElement* selectElement = toHTMLSelectElement(m_renderer->node()); |
| @@ -919,7 +921,7 @@ String AXRenderObject::stringValue() const |
| if (!overriddenDescription.isNull()) |
| return overriddenDescription; |
| } |
| - return toRenderMenuList(m_renderer)->text(); |
| + return selectElement->value(); |
| } |
| if (m_renderer->isListMarker()) |