| Index: third_party/WebKit/Source/modules/accessibility/AXObjectImpl.cpp
|
| diff --git a/third_party/WebKit/Source/modules/accessibility/AXObjectImpl.cpp b/third_party/WebKit/Source/modules/accessibility/AXObjectImpl.cpp
|
| index 0141a1d83ea42897e41ab15ff5b61d92fb6b885e..f36289aade8f99bd605110bed42577595e10115d 100644
|
| --- a/third_party/WebKit/Source/modules/accessibility/AXObjectImpl.cpp
|
| +++ b/third_party/WebKit/Source/modules/accessibility/AXObjectImpl.cpp
|
| @@ -381,6 +381,17 @@ const AtomicString& AXObjectImpl::GetAOMPropertyOrARIAAttribute(
|
| return g_null_atom;
|
| }
|
|
|
| +Element* AXObjectImpl::GetAOMPropertyOrARIAAttribute(
|
| + AOMRelationProperty property) const {
|
| + Element* element = this->GetElement();
|
| + if (!element)
|
| + return nullptr;
|
| +
|
| + AccessibleNode* target =
|
| + AccessibleNode::GetPropertyOrARIAAttribute(element, property);
|
| + return target ? target->element() : nullptr;
|
| +}
|
| +
|
| bool AXObjectImpl::HasAOMPropertyOrARIAAttribute(AOMBooleanProperty property,
|
| bool& result) const {
|
| Element* element = this->GetElement();
|
| @@ -830,7 +841,8 @@ bool AXObjectImpl::CanReceiveAccessibilityFocus() const {
|
| return false;
|
|
|
| // Focusable, and not forwarding the focus somewhere else
|
| - if (elem->IsFocusable() && !elem->FastHasAttribute(aria_activedescendantAttr))
|
| + if (elem->IsFocusable() &&
|
| + !GetAOMPropertyOrARIAAttribute(AOMRelationProperty::kActiveDescendant))
|
| return true;
|
|
|
| // aria-activedescendant focus
|
| @@ -848,7 +860,8 @@ bool AXObjectImpl::ComputeAncestorExposesActiveDescendant() const {
|
| return false;
|
|
|
| if (parent->SupportsActiveDescendant() &&
|
| - parent->HasAttribute(aria_activedescendantAttr)) {
|
| + parent->GetAOMPropertyOrARIAAttribute(
|
| + AOMRelationProperty::kActiveDescendant)) {
|
| return true;
|
| }
|
|
|
|
|