Implementation of containsText for AXIsolatedObjects.
authorandresg_22@apple.com <andresg_22@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 7 Jan 2020 13:15:42 +0000 (13:15 +0000)
committerandresg_22@apple.com <andresg_22@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 7 Jan 2020 13:15:42 +0000 (13:15 +0000)
https://bugs.webkit.org/show_bug.cgi?id=205847

Reviewed by Chris Fleizach.

No new tests, no new functionality.

- Moved implementation of containsText from AccessibilityObject to
AXCoreObject to be re-used by AXIsolatedObject.
- Implemented AXIsolatedObject::stringValue.
- AXIsolatedObject::isTable must return false because it is used in the
SPECIALIZE_TYPE_TRAITS_ACCESSIBILITY macro.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::containsText const): Moved to AXCoreObject.
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityObjectInterface.h:
(WebCore::AXCoreObject::containsText const):
* accessibility/isolatedtree/AXIsolatedTreeNode.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::containsText const): Implementation in base class AXCoreObject.
(WebCore::AXIsolatedObject::stringValue const): Deleted.
* accessibility/isolatedtree/AXIsolatedTreeNode.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254123 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/accessibility/AccessibilityObject.cpp
Source/WebCore/accessibility/AccessibilityObject.h
Source/WebCore/accessibility/AccessibilityObjectInterface.h
Source/WebCore/accessibility/isolatedtree/AXIsolatedTreeNode.cpp
Source/WebCore/accessibility/isolatedtree/AXIsolatedTreeNode.h

index dc32af9..54eefa3 100644 (file)
@@ -1,3 +1,29 @@
+2020-01-07  Andres Gonzalez  <andresg_22@apple.com>
+
+        Implementation of containsText for AXIsolatedObjects.
+        https://bugs.webkit.org/show_bug.cgi?id=205847
+
+        Reviewed by Chris Fleizach.
+
+        No new tests, no new functionality.
+
+        - Moved implementation of containsText from AccessibilityObject to
+        AXCoreObject to be re-used by AXIsolatedObject.
+        - Implemented AXIsolatedObject::stringValue.
+        - AXIsolatedObject::isTable must return false because it is used in the
+        SPECIALIZE_TYPE_TRAITS_ACCESSIBILITY macro.
+
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::containsText const): Moved to AXCoreObject.
+        * accessibility/AccessibilityObject.h:
+        * accessibility/AccessibilityObjectInterface.h:
+        (WebCore::AXCoreObject::containsText const):
+        * accessibility/isolatedtree/AXIsolatedTreeNode.cpp:
+        (WebCore::AXIsolatedObject::initializeAttributeData):
+        (WebCore::AXIsolatedObject::containsText const): Implementation in base class AXCoreObject.
+        (WebCore::AXIsolatedObject::stringValue const): Deleted.
+        * accessibility/isolatedtree/AXIsolatedTreeNode.h:
+
 2020-01-07  Carlos Garcia Campos  <cgarcia@igalia.com>
 
         [GTK][WPE] Add API to set purpose and hints of active editable element to input methods
index 5def588..6b9e0ef 100644 (file)
@@ -120,15 +120,6 @@ bool AccessibilityObject::isDetached() const
 #endif
 }
 
-bool AccessibilityObject::containsText(String const& text) const
-{
-    // If text is empty we return true.
-    return text.isEmpty()
-        || findPlainText(title(), text, CaseInsensitive)
-        || findPlainText(accessibilityDescription(), text, CaseInsensitive)
-        || findPlainText(stringValue(), text, CaseInsensitive);
-}
-
 // ARIA marks elements as having their accessible name derive from either their contents, or their author provide name.
 bool AccessibilityObject::accessibleNameDerivesFromContent() const
 {
index 8a73ae6..06fe312 100644 (file)
@@ -120,8 +120,6 @@ public:
     bool isAccessibilitySVGRoot() const override { return false; }
     bool isAccessibilitySVGElement() const override { return false; }
 
-    bool containsText(String const&) const override;
-
     bool isAttachmentElement() const override { return false; }
     bool isHeading() const override { return false; }
     bool isLink() const override { return false; }
index c503131..420508d 100644 (file)
@@ -28,6 +28,7 @@
 #include "HTMLTextFormControlElement.h"
 #include "LayoutRect.h"
 #include "Range.h"
+#include "TextIterator.h"
 #include "TextIteratorBehavior.h"
 #include "VisiblePosition.h"
 #include "VisibleSelection.h"
@@ -489,7 +490,6 @@ public:
     virtual bool isAccessibilitySVGRoot() const = 0;
     virtual bool isAccessibilitySVGElement() const = 0;
 
-    virtual bool containsText(String const&) const = 0;
     virtual bool isAttachmentElement() const = 0;
     virtual bool isHeading() const = 0;
     virtual bool isLink() const = 0;
@@ -763,6 +763,14 @@ public:
     virtual String accessibilityDescription() const = 0;
     virtual String title() const = 0;
     virtual String helpText() const = 0;
+    bool containsText(String const& text) const
+    {
+        // If text is empty we return true.
+        return text.isEmpty()
+            || findPlainText(title(), text, CaseInsensitive)
+            || findPlainText(accessibilityDescription(), text, CaseInsensitive)
+            || findPlainText(stringValue(), text, CaseInsensitive);
+    }
 
     // Methods for determining accessibility text.
     virtual bool isARIAStaticText() const = 0;
index 62c3da2..cc3da90 100644 (file)
@@ -78,7 +78,6 @@ void AXIsolatedObject::initializeAttributeData(AXCoreObject& object, bool isRoot
     setProperty(AXPropertyName::IsSlider, object.isSlider());
     setProperty(AXPropertyName::IsControl, object.isControl());
     setProperty(AXPropertyName::IsList, object.isList());
-    setProperty(AXPropertyName::IsTable, object.isTable());
     setProperty(AXPropertyName::IsTableRow, object.isTableRow());
     setProperty(AXPropertyName::IsTableColumn, object.isTableColumn());
     setProperty(AXPropertyName::IsTableCell, object.isTableCell());
@@ -185,6 +184,7 @@ void AXIsolatedObject::initializeAttributeData(AXCoreObject& object, bool isRoot
     setProperty(AXPropertyName::ReadOnlyValue, object.readOnlyValue());
     setProperty(AXPropertyName::AutoCompleteValue, object.autoCompleteValue());
     setProperty(AXPropertyName::SpeakAs, object.speakAsProperty());
+    setProperty(AXPropertyName::StringValue, object.stringValue().isolatedCopy());
 #if PLATFORM(COCOA) && !PLATFORM(IOS_FAMILY)
     setProperty(AXPropertyName::CaretBrowsingEnabled, object.caretBrowsingEnabled());
 #endif
@@ -880,12 +880,6 @@ bool AXIsolatedObject::isAccessibilitySVGElement() const
     return false;
 }
 
-bool AXIsolatedObject::containsText(String const&) const
-{
-    ASSERT_NOT_REACHED();
-    return false;
-}
-
 bool AXIsolatedObject::isAttachmentElement() const
 {
     ASSERT_NOT_REACHED();
@@ -1409,12 +1403,6 @@ bool AXIsolatedObject::isARIAStaticText() const
     return false;
 }
 
-String AXIsolatedObject::stringValue() const
-{
-    ASSERT_NOT_REACHED();
-    return String();
-}
-
 String AXIsolatedObject::text() const
 {
     ASSERT_NOT_REACHED();
index 553ba88..7e689f0 100644 (file)
@@ -213,7 +213,6 @@ private:
         IsShowingValidationMessage,
         IsSlider,
         IsStyleFormatGroup,
-        IsTable,
         IsTableCell,
         IsTableColumn,
         IsTableRow,
@@ -268,6 +267,7 @@ private:
         SortDirection,
         SpeakAs,
         SpeechHint,
+        StringValue,
         SupportsARIADragging,
         SupportsARIADropping,
         SupportsARIAOwns,
@@ -348,7 +348,7 @@ private:
     bool isSlider() const override { return boolAttributeValue(AXPropertyName::IsSlider); }
     bool isControl() const override { return boolAttributeValue(AXPropertyName::IsControl); }
     bool isList() const override { return boolAttributeValue(AXPropertyName::IsList); }
-    bool isTable() const override { return boolAttributeValue(AXPropertyName::IsTable); }
+    bool isTable() const override { return false; }
     bool isTableRow() const override { return boolAttributeValue(AXPropertyName::IsTableRow); }
     bool isTableColumn() const override { return boolAttributeValue(AXPropertyName::IsTableColumn); }
     bool isTableCell() const override { return boolAttributeValue(AXPropertyName::IsTableCell); }
@@ -535,6 +535,8 @@ private:
     AXCoreObject* decrementButton() override { return objectAttributeValue(AXPropertyName::DecrementButton); }
     bool isIncrementor() const override { return boolAttributeValue(AXPropertyName::IsIncrementor); }
 
+    String stringValue() const override { return stringAttributeValue(AXPropertyName::StringValue); }
+
     // Parameterized attribute retrieval.
     Vector<RefPtr<Range>> findTextRanges(AccessibilitySearchTextCriteria const&) const override;
     Vector<String> performTextOperation(AccessibilityTextOperation const&) override;
@@ -638,7 +640,6 @@ private:
     bool isAccessibilityScrollView() const override;
     bool isAccessibilitySVGRoot() const override;
     bool isAccessibilitySVGElement() const override;
-    bool containsText(String const&) const override;
     bool isAttachmentElement() const override;
     bool isNativeImage() const override;
     bool isImageButton() const override;
@@ -729,7 +730,6 @@ private:
     String title() const override;
     String helpText() const override;
     bool isARIAStaticText() const override;
-    String stringValue() const override;
     String text() const override;
     String ariaLabeledByAttribute() const override;
     String ariaDescribedByAttribute() const override;