Chromium Code Reviews| Index: Source/modules/accessibility/AXListBoxOption.cpp |
| diff --git a/Source/modules/accessibility/AXListBoxOption.cpp b/Source/modules/accessibility/AXListBoxOption.cpp |
| index 58a91d3a8961d74c081a87413373c69a193e9678..6f18a7a174ded7ef03bd9591ea8302b28057f85f 100644 |
| --- a/Source/modules/accessibility/AXListBoxOption.cpp |
| +++ b/Source/modules/accessibility/AXListBoxOption.cpp |
| @@ -58,9 +58,36 @@ AccessibilityRole AXListBoxOption::roleValue() const |
| AccessibilityRole ariaRole = ariaRoleAttribute(); |
| if (ariaRole != UnknownRole) |
| return ariaRole; |
| + |
| + // Generally, the presentation role is handled in computeAccessibilityIsIgnored(). |
|
dmazzoni
2015/04/02 06:22:18
Let's delete the first three lines of this comment
je_julie(Not used)
2015/04/02 13:38:08
Done.
|
| + // In case of ListBoxOption, if it just marked as ignored in computeAccessibilityIsIgnored(), |
| + // we can't see listboxoption on tree without any text. |
| + // http://www.w3.org/TR/wai-aria/complete#presentation |
| + // ARIA spec says that the presentation role causes a given element to be treated |
| + // as having no role or to be removed from the accessibility tree, but does not cause the |
| + // content contained within the element to be removed from the accessibility tree. |
| + if (isParentPresentationRole()) |
| + return StaticTextRole; |
| + |
| return ListBoxOptionRole; |
| } |
| +bool AXListBoxOption::isParentPresentationRole() const |
| +{ |
| + AXObject* parent = parentObject(); |
| + if (!parent) |
| + return false; |
| + |
| + LayoutObject* layoutObject = parent->layoutObject(); |
| + if (!layoutObject) |
| + return false; |
| + |
| + if (layoutObject->isListBox() && parent->hasInheritedPresentationalRole()) |
| + return true; |
| + |
| + return false; |
| +} |
| + |
| bool AXListBoxOption::isEnabled() const |
| { |
| if (!node()) |