haikuwebkit/LayoutTests/accessibility/element-line-rects-and-text...

56 lines
1.9 KiB
HTML
Raw Permalink Normal View History

Add a method to WebAccessibilityObjectWrapper so that clients can retrieve the text of each line and their corresponding bounding rectangles. https://bugs.webkit.org/show_bug.cgi?id=228251 Source/WebCore: rdar://77184036 Reviewed by Chris Fleizach. Test: accessibility/ios-simulator/element-line-rects-and-text.html Accessibility clients often need to retrieve a line of text and its corresponding bounding rectangle screen coordinates. There was not a clear way of doing this. This patch provides lineRectsAndText as the mechanism to retrieve the lines of text and their corresponding rectangles for a given accessibility object. This is the iOS implementation. MacOS implementation will be done in a separate patch. * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper stringsForSimpleRange:attributed:]): (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]): (-[WebAccessibilityObjectWrapper lineRectsAndText]): (-[WebAccessibilityObjectWrapper lineRectsForTextMarkerRange:]): Tools: Reviewed by Chris Fleizach. * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::lineRectsAndText const): * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::lineRectsAndText const): * WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.mm: (WTR::makeJSArray): LayoutTests: Reviewed by Chris Fleizach. * accessibility/ios-simulator/element-line-rects-and-text-expected.txt: Added. * accessibility/ios-simulator/element-line-rects-and-text.html: Added. Canonical link: https://commits.webkit.org/239940@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280282 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-07-24 03:48:01 +00:00
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
Expose [WebAccessibilityObjectWrapper lineRectsAndText] on MacOS. https://bugs.webkit.org/show_bug.cgi?id=229045 <rdar://81819301> Reviewed by Chris Fleizach. Source/WebCore: Test: accessibility/element-line-rects-and-text.html Moved the [WebAccessibilityObjectWrapper lineRectsAndText] method, and supporting methods and functions, from the iOS subclass to the base (Cocoa) class so that it can be used in both iOS and MacOS. * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: Moved the following methods and functions to WebAccessibilityObjectWrapperBase.mm. (-[WebAccessibilityObjectWrapper _prepareAccessibilityCall]): Deleted. (-[WebAccessibilityObjectWrapper _addAccessibilityObject:toTextMarkerArray:]): Deleted. (blockquoteLevel): Deleted. (AXAttributeStringSetLanguage): Deleted. (AXAttributeStringSetBlockquoteLevel): Deleted. (AXAttributeStringSetHeadingLevel): Deleted. (AXAttributeStringSetFont): Deleted. (AXAttributeStringSetNumber): Deleted. (AXAttributeStringSetStyle): Deleted. (AXAttributedStringAppendText): Deleted. (-[WebAccessibilityObjectWrapper contentForSimpleRange:attributed:]): Deleted. (-[WebAccessibilityObjectWrapper lineRectsAndText]): Deleted. * accessibility/mac/WebAccessibilityObjectWrapperBase.h: * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: (-[WebAccessibilityObjectWrapperBase _prepareAccessibilityCall]): (addObjectWrapperToArray): (blockquoteLevel): (AXAttributeStringSetLanguage): (AXAttributeStringSetBlockquoteLevel): (AXAttributeStringSetHeadingLevel): (AXAttributeStringSetFont): (AXAttributeStringSetNumber): (AXAttributeStringSetStyle): (AXAttributedStringAppendText): (-[WebAccessibilityObjectWrapperBase contentForSimpleRange:attributed:]): (-[WebAccessibilityObjectWrapperBase lineRectsAndText]): * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): Added handling of the attribute "AXLineRectsAndText". Tools: * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::attributedStringForElement): (WTR::AccessibilityUIElement::lineRectsAndText const): * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::lineRectsAndText const): LayoutTests: * accessibility/element-line-rects-and-text.html: Renamed from LayoutTests/accessibility/ios-simulator/element-line-rects-and-text.html. * platform/ios/TestExpectations: * platform/ios/accessibility/element-line-rects-and-text-expected.txt: Renamed from LayoutTests/accessibility/ios-simulator/element-line-rects-and-text-expected.txt. * platform/mac/accessibility/element-line-rects-and-text-expected.txt: Added. * platform/mac-wk1/TestExpectations: * platform/win/TestExpectations: Canonical link: https://commits.webkit.org/240567@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281108 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-16 21:04:19 +00:00
<script src="../resources/js-test-pre.js"></script>
Add a method to WebAccessibilityObjectWrapper so that clients can retrieve the text of each line and their corresponding bounding rectangles. https://bugs.webkit.org/show_bug.cgi?id=228251 Source/WebCore: rdar://77184036 Reviewed by Chris Fleizach. Test: accessibility/ios-simulator/element-line-rects-and-text.html Accessibility clients often need to retrieve a line of text and its corresponding bounding rectangle screen coordinates. There was not a clear way of doing this. This patch provides lineRectsAndText as the mechanism to retrieve the lines of text and their corresponding rectangles for a given accessibility object. This is the iOS implementation. MacOS implementation will be done in a separate patch. * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper stringsForSimpleRange:attributed:]): (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]): (-[WebAccessibilityObjectWrapper lineRectsAndText]): (-[WebAccessibilityObjectWrapper lineRectsForTextMarkerRange:]): Tools: Reviewed by Chris Fleizach. * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::lineRectsAndText const): * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::lineRectsAndText const): * WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.mm: (WTR::makeJSArray): LayoutTests: Reviewed by Chris Fleizach. * accessibility/ios-simulator/element-line-rects-and-text-expected.txt: Added. * accessibility/ios-simulator/element-line-rects-and-text.html: Added. Canonical link: https://commits.webkit.org/239940@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280282 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-07-24 03:48:01 +00:00
</head>
<body>
Fix for [WebAccessibilityObjectWrapper lineRectsAndText] to properly handle replacement nodes and SVG text. https://bugs.webkit.org/show_bug.cgi?id=228336 <rdar://problem/81172124> Reviewed by Chris Fleizach and Darin Adler. Source/WebCore: Test: LayoutTests/accessibility/ios-simulator/element-line-rects-and-text.html - Renamed stringsForSimpleRange to better reflect the fact that this method can return strings and AXObjects. - Handles the case where contentForSimpleRange returns AXObjects corresponding to replacement objects. This fixes the cases of images and SVG text. - Fixed the problem with soft linebreaks where the start of the next line was skipping the first character in the line. * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper contentForSimpleRange:attributed:]): (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]): (-[WebAccessibilityObjectWrapper lineRectsAndText]): (-[WebAccessibilityObjectWrapper stringsForSimpleRange:attributed:]): Renamed to contentForSimpleRange since it is returns an array of strings and AXObjects. LayoutTests: - Expanded this test to cover the case of an image element and SVG text. - Added the test case of a paragraph with soft linebreaks. * accessibility/ios-simulator/element-line-rects-and-text-expected.txt: * accessibility/ios-simulator/element-line-rects-and-text.html: Canonical link: https://commits.webkit.org/240161@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280529 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-02 14:43:14 +00:00
<div id="text" role="group">
Add a method to WebAccessibilityObjectWrapper so that clients can retrieve the text of each line and their corresponding bounding rectangles. https://bugs.webkit.org/show_bug.cgi?id=228251 Source/WebCore: rdar://77184036 Reviewed by Chris Fleizach. Test: accessibility/ios-simulator/element-line-rects-and-text.html Accessibility clients often need to retrieve a line of text and its corresponding bounding rectangle screen coordinates. There was not a clear way of doing this. This patch provides lineRectsAndText as the mechanism to retrieve the lines of text and their corresponding rectangles for a given accessibility object. This is the iOS implementation. MacOS implementation will be done in a separate patch. * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper stringsForSimpleRange:attributed:]): (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]): (-[WebAccessibilityObjectWrapper lineRectsAndText]): (-[WebAccessibilityObjectWrapper lineRectsForTextMarkerRange:]): Tools: Reviewed by Chris Fleizach. * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::lineRectsAndText const): * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::lineRectsAndText const): * WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.mm: (WTR::makeJSArray): LayoutTests: Reviewed by Chris Fleizach. * accessibility/ios-simulator/element-line-rects-and-text-expected.txt: Added. * accessibility/ios-simulator/element-line-rects-and-text.html: Added. Canonical link: https://commits.webkit.org/239940@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280282 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-07-24 03:48:01 +00:00
This is some testing content.
<a href="#">A link here.</a>
MOre text.<br/>z<br/>
Fix for [WebAccessibilityObjectWrapper lineRectsAndText] to properly handle replacement nodes and SVG text. https://bugs.webkit.org/show_bug.cgi?id=228336 <rdar://problem/81172124> Reviewed by Chris Fleizach and Darin Adler. Source/WebCore: Test: LayoutTests/accessibility/ios-simulator/element-line-rects-and-text.html - Renamed stringsForSimpleRange to better reflect the fact that this method can return strings and AXObjects. - Handles the case where contentForSimpleRange returns AXObjects corresponding to replacement objects. This fixes the cases of images and SVG text. - Fixed the problem with soft linebreaks where the start of the next line was skipping the first character in the line. * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper contentForSimpleRange:attributed:]): (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]): (-[WebAccessibilityObjectWrapper lineRectsAndText]): (-[WebAccessibilityObjectWrapper stringsForSimpleRange:attributed:]): Renamed to contentForSimpleRange since it is returns an array of strings and AXObjects. LayoutTests: - Expanded this test to cover the case of an image element and SVG text. - Added the test case of a paragraph with soft linebreaks. * accessibility/ios-simulator/element-line-rects-and-text-expected.txt: * accessibility/ios-simulator/element-line-rects-and-text.html: Canonical link: https://commits.webkit.org/240161@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280529 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-02 14:43:14 +00:00
Another line of text.<br/>
<img src="../resources/cake.png" alt="cake"><br/>
<svg id="svg" width="300px" height="200px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="TextPath1" d="M 10,150 A 15 15 180 0 1 70 140 A15 25 180 0 0 130 130 A15 55 180 0 1 190 110" />
</defs>
<text font-size="14">
<textPath xlink:href="#TextPath1">
Jack and Jill went up the hill to fetch a pail of water. Jack fell down...
</textPath>
</text>
</svg>
<!-- Paragraph with soft linebreaks after space and dash. -->
<p>abcdefghijklmnopqrstuvwxyz0123456789 abcdefghijklmnopqrstuvwxyz0123456789 abcdefghijklmnopqrstuvwxyz0123456789-abcdefghijklmnopqrstuvwxyz0123456789-abcdefghijklmnopqrstuvwxyz0123456789</p>
Add a method to WebAccessibilityObjectWrapper so that clients can retrieve the text of each line and their corresponding bounding rectangles. https://bugs.webkit.org/show_bug.cgi?id=228251 Source/WebCore: rdar://77184036 Reviewed by Chris Fleizach. Test: accessibility/ios-simulator/element-line-rects-and-text.html Accessibility clients often need to retrieve a line of text and its corresponding bounding rectangle screen coordinates. There was not a clear way of doing this. This patch provides lineRectsAndText as the mechanism to retrieve the lines of text and their corresponding rectangles for a given accessibility object. This is the iOS implementation. MacOS implementation will be done in a separate patch. * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper stringsForSimpleRange:attributed:]): (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]): (-[WebAccessibilityObjectWrapper lineRectsAndText]): (-[WebAccessibilityObjectWrapper lineRectsForTextMarkerRange:]): Tools: Reviewed by Chris Fleizach. * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::lineRectsAndText const): * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::lineRectsAndText const): * WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.mm: (WTR::makeJSArray): LayoutTests: Reviewed by Chris Fleizach. * accessibility/ios-simulator/element-line-rects-and-text-expected.txt: Added. * accessibility/ios-simulator/element-line-rects-and-text.html: Added. Canonical link: https://commits.webkit.org/239940@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280282 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-07-24 03:48:01 +00:00
</div>
<p id="description"></p>
<div id="console"></div>
<script>
description("This tests that lineRectsAndText returns the correct values.");
if (window.accessibilityController) {
let text = accessibilityController.accessibleElementById("text");
let lineRectsAndText = text.lineRectsAndText;
lineRectsAndText.split("|").forEach((line) => {
let text = line.match(/text = \".*\";/);
debug(text[0]);
// Cannot log rect coordinates because it would vary from device to device.
// Thus, get the rects width and height and make sure they are > 0.
Expose [WebAccessibilityObjectWrapper lineRectsAndText] on MacOS. https://bugs.webkit.org/show_bug.cgi?id=229045 <rdar://81819301> Reviewed by Chris Fleizach. Source/WebCore: Test: accessibility/element-line-rects-and-text.html Moved the [WebAccessibilityObjectWrapper lineRectsAndText] method, and supporting methods and functions, from the iOS subclass to the base (Cocoa) class so that it can be used in both iOS and MacOS. * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: Moved the following methods and functions to WebAccessibilityObjectWrapperBase.mm. (-[WebAccessibilityObjectWrapper _prepareAccessibilityCall]): Deleted. (-[WebAccessibilityObjectWrapper _addAccessibilityObject:toTextMarkerArray:]): Deleted. (blockquoteLevel): Deleted. (AXAttributeStringSetLanguage): Deleted. (AXAttributeStringSetBlockquoteLevel): Deleted. (AXAttributeStringSetHeadingLevel): Deleted. (AXAttributeStringSetFont): Deleted. (AXAttributeStringSetNumber): Deleted. (AXAttributeStringSetStyle): Deleted. (AXAttributedStringAppendText): Deleted. (-[WebAccessibilityObjectWrapper contentForSimpleRange:attributed:]): Deleted. (-[WebAccessibilityObjectWrapper lineRectsAndText]): Deleted. * accessibility/mac/WebAccessibilityObjectWrapperBase.h: * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: (-[WebAccessibilityObjectWrapperBase _prepareAccessibilityCall]): (addObjectWrapperToArray): (blockquoteLevel): (AXAttributeStringSetLanguage): (AXAttributeStringSetBlockquoteLevel): (AXAttributeStringSetHeadingLevel): (AXAttributeStringSetFont): (AXAttributeStringSetNumber): (AXAttributeStringSetStyle): (AXAttributedStringAppendText): (-[WebAccessibilityObjectWrapperBase contentForSimpleRange:attributed:]): (-[WebAccessibilityObjectWrapperBase lineRectsAndText]): * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): Added handling of the attribute "AXLineRectsAndText". Tools: * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::attributedStringForElement): (WTR::AccessibilityUIElement::lineRectsAndText const): * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::lineRectsAndText const): LayoutTests: * accessibility/element-line-rects-and-text.html: Renamed from LayoutTests/accessibility/ios-simulator/element-line-rects-and-text.html. * platform/ios/TestExpectations: * platform/ios/accessibility/element-line-rects-and-text-expected.txt: Renamed from LayoutTests/accessibility/ios-simulator/element-line-rects-and-text-expected.txt. * platform/mac/accessibility/element-line-rects-and-text-expected.txt: Added. * platform/mac-wk1/TestExpectations: * platform/win/TestExpectations: Canonical link: https://commits.webkit.org/240567@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281108 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-16 21:04:19 +00:00
let size = line.match(/NSRect: {{-*[\d]+, -*[\d]+}, {([\d]+), ([\d]+)}}/);
Add a method to WebAccessibilityObjectWrapper so that clients can retrieve the text of each line and their corresponding bounding rectangles. https://bugs.webkit.org/show_bug.cgi?id=228251 Source/WebCore: rdar://77184036 Reviewed by Chris Fleizach. Test: accessibility/ios-simulator/element-line-rects-and-text.html Accessibility clients often need to retrieve a line of text and its corresponding bounding rectangle screen coordinates. There was not a clear way of doing this. This patch provides lineRectsAndText as the mechanism to retrieve the lines of text and their corresponding rectangles for a given accessibility object. This is the iOS implementation. MacOS implementation will be done in a separate patch. * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper stringsForSimpleRange:attributed:]): (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]): (-[WebAccessibilityObjectWrapper lineRectsAndText]): (-[WebAccessibilityObjectWrapper lineRectsForTextMarkerRange:]): Tools: Reviewed by Chris Fleizach. * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::lineRectsAndText const): * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::lineRectsAndText const): * WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.mm: (WTR::makeJSArray): LayoutTests: Reviewed by Chris Fleizach. * accessibility/ios-simulator/element-line-rects-and-text-expected.txt: Added. * accessibility/ios-simulator/element-line-rects-and-text.html: Added. Canonical link: https://commits.webkit.org/239940@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280282 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-07-24 03:48:01 +00:00
debug(`width > 0: ${size[1] > 0}`);
debug(`height > 0: ${size[2] > 0}`);
});
}
</script>
Expose [WebAccessibilityObjectWrapper lineRectsAndText] on MacOS. https://bugs.webkit.org/show_bug.cgi?id=229045 <rdar://81819301> Reviewed by Chris Fleizach. Source/WebCore: Test: accessibility/element-line-rects-and-text.html Moved the [WebAccessibilityObjectWrapper lineRectsAndText] method, and supporting methods and functions, from the iOS subclass to the base (Cocoa) class so that it can be used in both iOS and MacOS. * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: Moved the following methods and functions to WebAccessibilityObjectWrapperBase.mm. (-[WebAccessibilityObjectWrapper _prepareAccessibilityCall]): Deleted. (-[WebAccessibilityObjectWrapper _addAccessibilityObject:toTextMarkerArray:]): Deleted. (blockquoteLevel): Deleted. (AXAttributeStringSetLanguage): Deleted. (AXAttributeStringSetBlockquoteLevel): Deleted. (AXAttributeStringSetHeadingLevel): Deleted. (AXAttributeStringSetFont): Deleted. (AXAttributeStringSetNumber): Deleted. (AXAttributeStringSetStyle): Deleted. (AXAttributedStringAppendText): Deleted. (-[WebAccessibilityObjectWrapper contentForSimpleRange:attributed:]): Deleted. (-[WebAccessibilityObjectWrapper lineRectsAndText]): Deleted. * accessibility/mac/WebAccessibilityObjectWrapperBase.h: * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: (-[WebAccessibilityObjectWrapperBase _prepareAccessibilityCall]): (addObjectWrapperToArray): (blockquoteLevel): (AXAttributeStringSetLanguage): (AXAttributeStringSetBlockquoteLevel): (AXAttributeStringSetHeadingLevel): (AXAttributeStringSetFont): (AXAttributeStringSetNumber): (AXAttributeStringSetStyle): (AXAttributedStringAppendText): (-[WebAccessibilityObjectWrapperBase contentForSimpleRange:attributed:]): (-[WebAccessibilityObjectWrapperBase lineRectsAndText]): * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): Added handling of the attribute "AXLineRectsAndText". Tools: * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::attributedStringForElement): (WTR::AccessibilityUIElement::lineRectsAndText const): * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::lineRectsAndText const): LayoutTests: * accessibility/element-line-rects-and-text.html: Renamed from LayoutTests/accessibility/ios-simulator/element-line-rects-and-text.html. * platform/ios/TestExpectations: * platform/ios/accessibility/element-line-rects-and-text-expected.txt: Renamed from LayoutTests/accessibility/ios-simulator/element-line-rects-and-text-expected.txt. * platform/mac/accessibility/element-line-rects-and-text-expected.txt: Added. * platform/mac-wk1/TestExpectations: * platform/win/TestExpectations: Canonical link: https://commits.webkit.org/240567@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281108 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-16 21:04:19 +00:00
<script src="../resources/js-test-post.js"></script>
Add a method to WebAccessibilityObjectWrapper so that clients can retrieve the text of each line and their corresponding bounding rectangles. https://bugs.webkit.org/show_bug.cgi?id=228251 Source/WebCore: rdar://77184036 Reviewed by Chris Fleizach. Test: accessibility/ios-simulator/element-line-rects-and-text.html Accessibility clients often need to retrieve a line of text and its corresponding bounding rectangle screen coordinates. There was not a clear way of doing this. This patch provides lineRectsAndText as the mechanism to retrieve the lines of text and their corresponding rectangles for a given accessibility object. This is the iOS implementation. MacOS implementation will be done in a separate patch. * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper stringsForSimpleRange:attributed:]): (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]): (-[WebAccessibilityObjectWrapper lineRectsAndText]): (-[WebAccessibilityObjectWrapper lineRectsForTextMarkerRange:]): Tools: Reviewed by Chris Fleizach. * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::lineRectsAndText const): * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::lineRectsAndText const): * WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.mm: (WTR::makeJSArray): LayoutTests: Reviewed by Chris Fleizach. * accessibility/ios-simulator/element-line-rects-and-text-expected.txt: Added. * accessibility/ios-simulator/element-line-rects-and-text.html: Added. Canonical link: https://commits.webkit.org/239940@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280282 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-07-24 03:48:01 +00:00
</body>
</html>