-
cfleizach@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=113817 Reviewed by David Kilzer. Source/WebCore: This allows bounding paths to be returned for some web elements (image map areas and SVG shapes). This provides more accuracy when assistive technologies highlight elements. The Mac and iOS platforms share some code to help transform paths to their screen coordinates. Tests: platform/iphone-simulator/accessibility/element-paths.html platform/mac/accessibility/element-paths.html * accessibility/AccessibilityImageMapLink.cpp: (WebCore::AccessibilityImageMapLink::imageMapLinkRenderer): (WebCore): (WebCore::AccessibilityImageMapLink::elementPath): (WebCore::AccessibilityImageMapLink::elementRect): * accessibility/AccessibilityImageMapLink.h: (AccessibilityImageMapLink): (WebCore::AccessibilityImageMapLink::supportsPath): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::elementPath): (WebCore::AccessibilityObject::supportsPath): * accessibility/AccessibilityRenderObject.cpp: (WebCore): (WebCore::AccessibilityRenderObject::supportsPath): (WebCore::AccessibilityRenderObject::elementPath): * accessibility/AccessibilityRenderObject.h: (AccessibilityRenderObject): * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper _accessibilityPath]): (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]): (-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]): (-[WebAccessibilityObjectWrapper accessibilityActivationPoint]): (-[WebAccessibilityObjectWrapper accessibilityFrame]): (-[WebAccessibilityObjectWrapper frameForTextMarkers:]): * accessibility/mac/WebAccessibilityObjectWrapperBase.h: (WebCore): * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: (PathConversionInfo): (ConvertPathToScreenSpaceFunction): (-[WebAccessibilityObjectWrapperBase convertPathToScreenSpace:]): (-[WebAccessibilityObjectWrapperBase convertPointToScreenSpace:]): * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]): (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]): (WebTransformCGPathToNSBezierPath): (-[WebAccessibilityObjectWrapper bezierPathFromPath:]): (-[WebAccessibilityObjectWrapper path]): (-[WebAccessibilityObjectWrapper position]): (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): Tools: Add a pathDescription property for testing so that it's possible to verify that a path is being returned correctly. * DumpRenderTree/AccessibilityUIElement.cpp: (getPathDescriptionCallback): (AccessibilityUIElement::pathDescription): (AccessibilityUIElement::getJSClass): * DumpRenderTree/AccessibilityUIElement.h: (AccessibilityUIElement): * DumpRenderTree/ios/AccessibilityUIElementIOS.mm: (_CGPathEnumerationIteration): (AccessibilityUIElement::pathDescription): * DumpRenderTree/mac/AccessibilityUIElementMac.mm: (AccessibilityUIElement::pathDescription): * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::pathDescription): (WTR): * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: (AccessibilityUIElement): * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::pathDescription): (WTR): LayoutTests: Add new tests for Mac and iOS to verify that path output works. Modify existing tests to indicate that there is a new AXAttribute, AXPath. * platform/iphone-simulator/accessibility/element-paths-expected.txt: Added. * platform/iphone-simulator/accessibility/element-paths.html: Added. * platform/mac/accessibility/document-links-expected.txt: * platform/mac/accessibility/element-paths-expected.txt: Added. * platform/mac/accessibility/element-paths.html: Added. * platform/mac/accessibility/image-map2-expected.txt: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148033 268f45cc-cd09-0410-ab3c-d52691b4dbfc
81f8cd51