Title: [282956] trunk/Source/WebCore
- Revision
- 282956
- Author
- [email protected]
- Date
- 2021-09-23 04:54:55 -0700 (Thu, 23 Sep 2021)
Log Message
AX: Split out isInert from isAXHidden on AccessibilityObject
https://bugs.webkit.org/show_bug.cgi?id=230680
Reviewed by Antti Koivisto.
Reasons to do this are:
- Naming of isAXHidden is a bit of a lie
- We don't want to inherit inert state from parent to child like we do for aria-hidden, especially
in the document is blocked by modal dialog case, where the modal should be interactable unlike its ancestors/siblings.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isAXHidden const):
(WebCore::AccessibilityObject::isInert const):
(WebCore::AccessibilityObject::defaultObjectInclusion const):
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityObjectInterface.h:
* accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::isInert const):
* accessibility/isolatedtree/AXIsolatedObject.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (282955 => 282956)
--- trunk/Source/WebCore/ChangeLog 2021-09-23 11:50:41 UTC (rev 282955)
+++ trunk/Source/WebCore/ChangeLog 2021-09-23 11:54:55 UTC (rev 282956)
@@ -1,5 +1,27 @@
2021-09-23 Tim Nguyen <[email protected]>
+ AX: Split out isInert from isAXHidden on AccessibilityObject
+ https://bugs.webkit.org/show_bug.cgi?id=230680
+
+ Reviewed by Antti Koivisto.
+
+ Reasons to do this are:
+ - Naming of isAXHidden is a bit of a lie
+ - We don't want to inherit inert state from parent to child like we do for aria-hidden, especially
+ in the document is blocked by modal dialog case, where the modal should be interactable unlike its ancestors/siblings.
+
+ * accessibility/AccessibilityObject.cpp:
+ (WebCore::AccessibilityObject::isAXHidden const):
+ (WebCore::AccessibilityObject::isInert const):
+ (WebCore::AccessibilityObject::defaultObjectInclusion const):
+ * accessibility/AccessibilityObject.h:
+ * accessibility/AccessibilityObjectInterface.h:
+ * accessibility/isolatedtree/AXIsolatedObject.cpp:
+ (WebCore::AXIsolatedObject::isInert const):
+ * accessibility/isolatedtree/AXIsolatedObject.h:
+
+2021-09-23 Tim Nguyen <[email protected]>
+
Replace `axObject->isAXHidden() || axObject->isDOMHidden()` with `axObject->isHidden()`
https://bugs.webkit.org/show_bug.cgi?id=230678
Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.cpp (282955 => 282956)
--- trunk/Source/WebCore/accessibility/AccessibilityObject.cpp 2021-09-23 11:50:41 UTC (rev 282955)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.cpp 2021-09-23 11:54:55 UTC (rev 282956)
@@ -3227,9 +3227,6 @@
// http://www.w3.org/TR/wai-aria/terms#def_hidden
bool AccessibilityObject::isAXHidden() const
{
- if (node() && node()->isInert())
- return true;
-
if (isFocused())
return false;
@@ -3250,6 +3247,11 @@
return style.display() == DisplayType::None || style.visibility() != Visibility::Visible;
}
+bool AccessibilityObject::isInert() const
+{
+ return node() && node()->isInert();
+}
+
bool AccessibilityObject::isShowingValidationMessage() const
{
if (is<HTMLFormControlElement>(node()))
@@ -3271,7 +3273,7 @@
if (useParentData ? m_isIgnoredFromParentData.isAXHidden : isAXHidden())
return AccessibilityObjectInclusion::IgnoreObject;
- if (ignoredFromModalPresence())
+ if (isInert() || ignoredFromModalPresence())
return AccessibilityObjectInclusion::IgnoreObject;
if (useParentData ? m_isIgnoredFromParentData.isPresentationalChildOfAriaRole : isPresentationalChildOfAriaRole())
Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.h (282955 => 282956)
--- trunk/Source/WebCore/accessibility/AccessibilityObject.h 2021-09-23 11:50:41 UTC (rev 282955)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.h 2021-09-23 11:54:55 UTC (rev 282956)
@@ -700,7 +700,8 @@
// Visibility.
bool isAXHidden() const override;
bool isDOMHidden() const override;
- bool isHidden() const override { return isAXHidden() || isDOMHidden(); }
+ bool isInert() const override;
+ bool isHidden() const override { return isAXHidden() || isDOMHidden() || isInert(); }
#if PLATFORM(COCOA)
void overrideAttachmentParent(AXCoreObject* parent) override;
Modified: trunk/Source/WebCore/accessibility/AccessibilityObjectInterface.h (282955 => 282956)
--- trunk/Source/WebCore/accessibility/AccessibilityObjectInterface.h 2021-09-23 11:50:41 UTC (rev 282955)
+++ trunk/Source/WebCore/accessibility/AccessibilityObjectInterface.h 2021-09-23 11:54:55 UTC (rev 282956)
@@ -1438,6 +1438,7 @@
// Visibility.
virtual bool isAXHidden() const = 0;
virtual bool isDOMHidden() const = 0;
+ virtual bool isInert() const = 0;
virtual bool isHidden() const = 0;
#if ENABLE(ACCESSIBILITY)
Modified: trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp (282955 => 282956)
--- trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp 2021-09-23 11:50:41 UTC (rev 282955)
+++ trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp 2021-09-23 11:54:55 UTC (rev 282956)
@@ -2317,6 +2317,12 @@
return false;
}
+bool AXIsolatedObject::isInert() const
+{
+ ASSERT_NOT_REACHED();
+ return false;
+}
+
bool AXIsolatedObject::isHidden() const
{
ASSERT_NOT_REACHED();
Modified: trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h (282955 => 282956)
--- trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h 2021-09-23 11:50:41 UTC (rev 282955)
+++ trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h 2021-09-23 11:54:55 UTC (rev 282956)
@@ -642,6 +642,7 @@
bool isMathMultiscriptObject(AccessibilityMathMultiscriptObjectType) const override;
bool isAXHidden() const override;
bool isDOMHidden() const override;
+ bool isInert() const override;
bool isHidden() const override;
void overrideAttachmentParent(AXCoreObject* parent) override;
bool accessibilityIgnoreAttachment() const override;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes