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

Reply via email to