Title: [268541] trunk
Revision
268541
Author
[email protected]
Date
2020-10-15 11:43:29 -0700 (Thu, 15 Oct 2020)

Log Message

Fix for multiple accessibility layout tests in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=217745

Reviewed by Chris Fleizach.

Source/WebCore:

Fix for the following tests in accessibility isolated tree mode:
accessibility/mac/abbr-acronym-tags.html
accessibility/mac/aria-image-emits-object-replacement.html
accessibility/mac/attributed-string-includes-highlighting.html
accessibility/mac/attributed-string/attributed-string-for-range-with-options.html
accessibility/mac/attributed-string/attributed-string-for-range.html
accessibility/mac/character-offset-visible-position-conversion-with-emoji.html
accessibility/mac/element-for-text-marker.html
accessibility/mac/listmarker-suffix.html
accessibility/mac/media-emits-object-replacement.html
accessibility/mac/stale-textmarker-crash.html
accessibility/mac/string-range-contains-listmarker.html
accessibility/mac/text-marker-for-index.html
accessibility/mac/text-marker-length.html
accessibility/mac/text-marker-paragraph-nav.html
accessibility/mac/text-marker-range-for-node-without-children.html
accessibility/mac/text-marker-sentence-nav.html
accessibility/mac/text-marker-word-nav-collapsed-whitespace.html
accessibility/mac/text-marker-word-nav.html
accessibility/mac/text-markers-for-input-with-placeholder.html
accessibility/mac/webkit-scrollarea-position.html
accessibility/text-marker/text-marker-previous-next.html
accessibility/text-marker/text-marker-range-stale-node-crash.html
accessibility/text-marker/text-marker-range-with-removed-node-crash.html
accessibility/text-marker/text-marker-with-user-select-none.html

* accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::convertFrameToSpace const):
(WebCore::AXIsolatedObject::elementRange const):
* accessibility/isolatedtree/AXIsolatedObject.h:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper position]):

LayoutTests:

* accessibility/mac/attributed-string-includes-highlighting.html: Minor code cleanup.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (268540 => 268541)


--- trunk/LayoutTests/ChangeLog	2020-10-15 18:26:59 UTC (rev 268540)
+++ trunk/LayoutTests/ChangeLog	2020-10-15 18:43:29 UTC (rev 268541)
@@ -1,3 +1,12 @@
+2020-10-15  Andres Gonzalez  <[email protected]>
+
+        Fix for multiple accessibility layout tests in isolated tree mode.
+        https://bugs.webkit.org/show_bug.cgi?id=217745
+
+        Reviewed by Chris Fleizach.
+
+        * accessibility/mac/attributed-string-includes-highlighting.html: Minor code cleanup.
+
 2020-10-15  Karl Rackler  <[email protected]>
 
         REGRESSION (r267662): [ Mojave+ debug wk1 ] webgl/2.0.0/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html is a flaky crash

Modified: trunk/LayoutTests/accessibility/mac/attributed-string-includes-highlighting.html (268540 => 268541)


--- trunk/LayoutTests/accessibility/mac/attributed-string-includes-highlighting.html	2020-10-15 18:26:59 UTC (rev 268540)
+++ trunk/LayoutTests/accessibility/mac/attributed-string-includes-highlighting.html	2020-10-15 18:43:29 UTC (rev 268541)
@@ -1,42 +1,35 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 <html>
+<head>
 <script src=""
-<body id="body" tabindex="0">
+</head>
+<body id="body" role="group">
 
-<div tabindex="0" id="item0">item0</div>
-<div tabindex="0" id="item1"><mark>item 1</mark></div>
-<div tabindex="0" id="item2">item2</div>
+<div id="item0">item0</div>
+<div id="item1"><mark>item 1</mark></div>
+<div id="item2">item2</div>
 
-
 <p id="description"></p>
 <div id="console"></div>
 
 <script>
-
     description("This verifies that using the mark tag will add the appropriate attribute to the attributed string and that we can find elements with highlighting using searching.");
 
     if (window.accessibilityController) {
-        document.getElementById("item1").focus();
-        var item1 = accessibilityController.focusedElement;
+        var item1 = accessibilityController.accessibleElementById("item1");
         var markerRange = item1.textMarkerRangeForElement(item1);
         shouldBeTrue("item1.attributedStringForTextMarkerRangeContainsAttribute('AXHighlight', markerRange)");
 
-        document.getElementById("item2").focus();
-        var item2 = accessibilityController.focusedElement;
+        var item2 = accessibilityController.accessibleElementById("item2");
         markerRange = item2.textMarkerRangeForElement(item2);
         shouldBeFalse("item2.attributedStringForTextMarkerRangeContainsAttribute('AXHighlight', markerRange)");
 
         // Search for a highlighted element from the top of the webpage.
-        document.getElementById("body").focus();
-        var body = accessibilityController.focusedElement;
+        var body = accessibilityController.accessibleElementById("body");
         var resultElement = body.uiElementForSearchPredicate("", true, "AXHighlightedSearchKey", "", false);
         shouldBeTrue("resultElement.isEqual(item1.childAtIndex(0))");
     }
-
 </script>
-
 <script src=""
-
 </body>
 </html>
-

Modified: trunk/Source/WebCore/ChangeLog (268540 => 268541)


--- trunk/Source/WebCore/ChangeLog	2020-10-15 18:26:59 UTC (rev 268540)
+++ trunk/Source/WebCore/ChangeLog	2020-10-15 18:43:29 UTC (rev 268541)
@@ -1,3 +1,43 @@
+2020-10-15  Andres Gonzalez  <[email protected]>
+
+        Fix for multiple accessibility layout tests in isolated tree mode.
+        https://bugs.webkit.org/show_bug.cgi?id=217745
+
+        Reviewed by Chris Fleizach.
+
+        Fix for the following tests in accessibility isolated tree mode:
+        accessibility/mac/abbr-acronym-tags.html
+        accessibility/mac/aria-image-emits-object-replacement.html
+        accessibility/mac/attributed-string-includes-highlighting.html
+        accessibility/mac/attributed-string/attributed-string-for-range-with-options.html
+        accessibility/mac/attributed-string/attributed-string-for-range.html
+        accessibility/mac/character-offset-visible-position-conversion-with-emoji.html
+        accessibility/mac/element-for-text-marker.html
+        accessibility/mac/listmarker-suffix.html
+        accessibility/mac/media-emits-object-replacement.html
+        accessibility/mac/stale-textmarker-crash.html
+        accessibility/mac/string-range-contains-listmarker.html
+        accessibility/mac/text-marker-for-index.html
+        accessibility/mac/text-marker-length.html
+        accessibility/mac/text-marker-paragraph-nav.html
+        accessibility/mac/text-marker-range-for-node-without-children.html
+        accessibility/mac/text-marker-sentence-nav.html
+        accessibility/mac/text-marker-word-nav-collapsed-whitespace.html
+        accessibility/mac/text-marker-word-nav.html
+        accessibility/mac/text-markers-for-input-with-placeholder.html
+        accessibility/mac/webkit-scrollarea-position.html
+        accessibility/text-marker/text-marker-previous-next.html
+        accessibility/text-marker/text-marker-range-stale-node-crash.html
+        accessibility/text-marker/text-marker-range-with-removed-node-crash.html
+        accessibility/text-marker/text-marker-with-user-select-none.html
+
+        * accessibility/isolatedtree/AXIsolatedObject.cpp:
+        (WebCore::AXIsolatedObject::convertFrameToSpace const):
+        (WebCore::AXIsolatedObject::elementRange const):
+        * accessibility/isolatedtree/AXIsolatedObject.h:
+        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+        (-[WebAccessibilityObjectWrapper position]):
+
 2020-10-15  Chris Dumez  <[email protected]>
 
         Vectorize StereoPanner's panToTargetValue()

Modified: trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp (268540 => 268541)


--- trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp	2020-10-15 18:26:59 UTC (rev 268540)
+++ trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp	2020-10-15 18:43:29 UTC (rev 268541)
@@ -956,6 +956,15 @@
     });
 }
 
+FloatRect AXIsolatedObject::convertFrameToSpace(const FloatRect& rect, AccessibilityConversionSpace space) const
+{
+    return Accessibility::retrieveValueFromMainThread<FloatRect>([&rect, &space, this] () -> FloatRect {
+        if (auto* axObject = associatedAXObject())
+            return axObject->convertFrameToSpace(rect, space);
+        return { };
+    });
+}
+
 bool AXIsolatedObject::replaceTextInRange(const String& replacementText, const PlainTextRange& textRange)
 {
     return Accessibility::retrieveValueFromMainThread<bool>([&replacementText, &textRange, this] () -> bool {
@@ -1128,6 +1137,12 @@
         object->setSelectedVisiblePositionRange(visiblePositionRange);
 }
 
+Optional<SimpleRange> AXIsolatedObject::elementRange() const
+{
+    auto* axObject = associatedAXObject();
+    return axObject ? axObject->elementRange() : WTF::nullopt;
+}
+
 bool AXIsolatedObject::isListBoxOption() const
 {
     ASSERT_NOT_REACHED();

Modified: trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h (268540 => 268541)


--- trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h	2020-10-15 18:26:59 UTC (rev 268540)
+++ trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h	2020-10-15 18:43:29 UTC (rev 268541)
@@ -388,7 +388,7 @@
     String selectedText() const override { return String(); }
     VisiblePositionRange visiblePositionRange() const override { return VisiblePositionRange(); }
     VisiblePositionRange visiblePositionRangeForLine(unsigned) const override { return VisiblePositionRange(); }
-    Optional<SimpleRange> elementRange() const override { return WTF::nullopt; }
+    Optional<SimpleRange> elementRange() const override;
     VisiblePositionRange visiblePositionRangeForUnorderedPositions(const VisiblePosition&, const VisiblePosition&) const override { return VisiblePositionRange(); }
     VisiblePositionRange positionOfLeftWord(const VisiblePosition&) const override { return VisiblePositionRange(); }
     VisiblePositionRange positionOfRightWord(const VisiblePosition&) const override { return VisiblePositionRange(); }
@@ -451,7 +451,7 @@
     // TODO: Functions
     String textUnderElement(AccessibilityTextUnderElementMode = AccessibilityTextUnderElementMode()) const override { return String(); }
     Optional<SimpleRange> misspellingRange(const SimpleRange&, AccessibilitySearchDirection) const override { return WTF::nullopt; }
-    FloatRect convertFrameToSpace(const FloatRect&, AccessibilityConversionSpace) const override { return FloatRect(); }
+    FloatRect convertFrameToSpace(const FloatRect&, AccessibilityConversionSpace) const override;
     void increment() override;
     void decrement() override;
     bool performDismissAction() override;

Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (268540 => 268541)


--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm	2020-10-15 18:26:59 UTC (rev 268540)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm	2020-10-15 18:43:29 UTC (rev 268541)
@@ -1968,13 +1968,12 @@
 
 - (NSValue *)position
 {
-#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
-    if (AXObjectCache::isIsolatedTreeEnabled())
-        return [NSValue valueWithPoint:self.axBackingObject->relativeFrame().location()];
-#endif
+    auto* backingObject = self.axBackingObject;
+    if (!backingObject)
+        return nil;
 
-    auto rect = snappedIntRect(self.axBackingObject->elementRect());
-    
+    auto rect = snappedIntRect(backingObject->elementRect());
+
     // The Cocoa accessibility API wants the lower-left corner.
     auto floatPoint = FloatPoint(rect.x(), rect.maxY());
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to