| Index: Source/core/accessibility/AXObject.cpp
|
| diff --git a/Source/core/accessibility/AXObject.cpp b/Source/core/accessibility/AXObject.cpp
|
| index 89571671459129f3fccd380d24bd99f7b67c9038..3f5aff5c40e152e33bfc863b6b4d52810f90bd39 100644
|
| --- a/Source/core/accessibility/AXObject.cpp
|
| +++ b/Source/core/accessibility/AXObject.cpp
|
| @@ -289,14 +289,15 @@ AXObjectInclusion AXObject::defaultObjectInclusion() const
|
|
|
| bool AXObject::isInertOrAriaHidden() const
|
| {
|
| - if (equalIgnoringCase(getAttribute(aria_hiddenAttr), "true"))
|
| - return true;
|
| - if (node() && node()->isInert())
|
| - return true;
|
| -
|
| - for (AXObject* object = parentObject(); object; object = object->parentObject()) {
|
| + bool canBeInInertSubtree = true;
|
| + for (const AXObject* object = this; object; object = object->parentObject()) {
|
| if (equalIgnoringCase(object->getAttribute(aria_hiddenAttr), "true"))
|
| return true;
|
| + if (canBeInInertSubtree && object->node()) {
|
| + if (object->node()->isInert())
|
| + return true;
|
| + canBeInInertSubtree = false;
|
| + }
|
| }
|
|
|
| return false;
|
| @@ -816,13 +817,15 @@ void AXObject::scrollToGlobalPoint(const IntPoint& globalPoint) const
|
| }
|
| }
|
|
|
| -void AXObject::notifyIfIgnoredValueChanged()
|
| +bool AXObject::notifyIfIgnoredValueChanged()
|
| {
|
| bool isIgnored = accessibilityIsIgnored();
|
| if (lastKnownIsIgnoredValue() != isIgnored) {
|
| axObjectCache()->childrenChanged(parentObject());
|
| setLastKnownIsIgnoredValue(isIgnored);
|
| + return true;
|
| }
|
| + return false;
|
| }
|
|
|
| void AXObject::selectionChanged()
|
|
|