- 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());