haikuwebkit/LayoutTests/accessibility/svg-remote-element.html

75 lines
2.2 KiB
HTML
Raw Permalink Normal View History

AX: Support embedded SVG objects in AX tree https://bugs.webkit.org/show_bug.cgi?id=97571 Reviewed by Tim Horton. Source/WebCore: This patch allows an SVG image from another resource to be hooked into the AX hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto its native parent image. The SVGChromeClient is then used to connect to this SVG resource. Test: accessibility/svg-remote-element.html * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::createFromRenderer): * accessibility/AccessibilityAllInOne.cpp: * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAccessibilitySVGRoot): (AccessibilityObject): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::detach): (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement): (WebCore::AccessibilityRenderObject::boundingBoxRect): (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest): (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest): (WebCore::AccessibilityRenderObject::determineAccessibilityRole): (WebCore::AccessibilityRenderObject::isSVGImage): (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot): (WebCore::AccessibilityRenderObject::remoteSVGRootElement): (WebCore::AccessibilityRenderObject::addRemoteSVGChildren): (WebCore::AccessibilityRenderObject::addChildren): * accessibility/AccessibilityRenderObject.h: (AccessibilityRenderObject): * accessibility/AccessibilitySVGRoot.cpp: Added. (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::create): (WebCore::AccessibilitySVGRoot::parentObject): * accessibility/AccessibilitySVGRoot.h: Added. (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element. (WebCore::AccessibilitySVGRoot::setParent): (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot): (WebCore::toAccessibilitySVGRoot): * accessibility/mac/WebAccessibilityObjectWrapper.mm: (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled in a special manner. (createAccessibilityRoleMap): * loader/EmptyClients.h: (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding the accessibility bounding rect of elements. (WebCore::EmptyChromeClient::isEmptyChromeClient): * page/ChromeClient.h: (WebCore::ChromeClient::isEmptyChromeClient): (ChromeClient): * svg/graphics/SVGImage.cpp: * svg/graphics/SVGImageChromeClient.h: Added. (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image. (WebCore::SVGImageChromeClient::SVGImageChromeClient): (WebCore::SVGImageChromeClient::isSVGImageChromeClient): (WebCore::SVGImageChromeClient::image): (WebCore::SVGImageChromeClient::chromeDestroyed): (WebCore::SVGImageChromeClient::invalidateContentsAndRootView): (WebCore::toSVGImageChromeClient): LayoutTests: Added a new test that links in an svg file. Accessibility of that remote svg file is tested. Test skipped on chromium until clickPoint() is implemented in DRT. * accessibility/svg-remote-element.html: Added. * accessibility/resources/svg-face.svg: Added. * platform/chromium/TestExpectations: * platform/mac/accessibility/svg-remote-element-expected.txt: Added. Canonical link: https://commits.webkit.org/118799@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@132915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-10-30 16:02:36 +00:00
<!DOCTYPE HTML>
<html>
<body>
Change LayoutTests' a* and b* files to use pre and post js files in LayoutTests/resources. https://bugs.webkit.org/show_bug.cgi?id=120985. Rubber stamped by Filip Pizlo. * accessibility/accessibility-node-memory-management.html: * accessibility/accessibility-node-reparent.html: * accessibility/accessibility-object-detached.html: * accessibility/adjacent-continuations-cause-assertion-failure.html: * accessibility/anonymous-render-block-in-continuation-causes-crash.html: * accessibility/aria-checkbox-checked.html: * accessibility/aria-checkbox-sends-notification.html: * accessibility/aria-checkbox-text.html: * accessibility/aria-combobox.html: * accessibility/aria-controls-with-tabs.html: * accessibility/aria-disabled.html: * accessibility/aria-fallback-roles.html: * accessibility/aria-help.html: * accessibility/aria-hidden-hides-all-elements.html: * accessibility/aria-hidden-update.html: * accessibility/aria-hidden-updates-alldescendants.html: * accessibility/aria-hidden-with-elements.html: * accessibility/aria-hidden.html: * accessibility/aria-invalid.html: * accessibility/aria-label.html: * accessibility/aria-labelledby-overrides-label.html: * accessibility/aria-list-and-listitem.html: * accessibility/aria-menubar-menuitems.html: * accessibility/aria-option-role.html: * accessibility/aria-presentational-role.html: * accessibility/aria-readonly.html: * accessibility/aria-required.html: * accessibility/aria-scrollbar-role.html: * accessibility/aria-sort.html: * accessibility/aria-tab-role-on-buttons.html: * accessibility/aria-tab-roles.html: * accessibility/aria-text-role.html: * accessibility/aria-toggle-button-with-title.html: * accessibility/aria-used-on-image-maps.html: * accessibility/button-title-uses-inner-img-alt.html: * accessibility/canvas-accessibilitynodeobject.html: * accessibility/canvas-description-and-role.html: * accessibility/canvas-fallback-content-2.html: * accessibility/canvas-fallback-content.html: * accessibility/color-well.html: * accessibility/container-node-delete-causes-crash.html: * accessibility/content-changed-notification-causes-crash.html: * accessibility/contenteditable-hidden-div.html: * accessibility/contenteditable-table-check-causes-crash.html: * accessibility/corresponding-control-deleted-crash.html: * accessibility/crash-adopt-node-from-new-document.html: * accessibility/crash-determining-aria-role-when-label-present.html: * accessibility/crash-with-noelement-selectbox.html: * accessibility/crashing-a-tag-in-map.html: * accessibility/deleting-iframe-destroys-axcache.html: * accessibility/disabled-controls-not-focusable.html: * accessibility/div-within-anchors-causes-crash.html: * accessibility/duplicate-axrenderobject-crash.html: * accessibility/duplicate-child-nodes.html: * accessibility/element-haspopup.html: * accessibility/ellipsis-text.html: * accessibility/empty-image-with-title.html: * accessibility/file-upload-button-with-axpress.html: * accessibility/first-letter-text-transform-causes-crash.html: * accessibility/focusable-div.html: * accessibility/global-aria-attributes-invalidate-presentational.html: * accessibility/hang-in-isignored.html: * accessibility/heading-level.html: * accessibility/heading-title-includes-links.html: * accessibility/hidden-legend.html: * accessibility/html-html-element-is-ignored.html: * accessibility/html5-required-attribute.html: * accessibility/iframe-bastardization.html: * accessibility/image-map-title-causes-crash.html: * accessibility/image-map-update-parent-crash.html: * accessibility/image-map1.html: * accessibility/img-alt-tag-only-whitespace.html: * accessibility/img-aria-button-alt-tag.html: * accessibility/img-fallsback-to-title.html: * accessibility/inline-continuations.html: * accessibility/input-file-causes-crash.html: * accessibility/input-image-alt.html: * accessibility/insert-selected-option-into-select-causes-crash.html: * accessibility/label-element-press.html: * accessibility/label-for-control-hittest.html: * accessibility/legend.html: * accessibility/link-inside-button-accessible-text.html: * accessibility/listbox-enabled-states.html: * accessibility/loading-iframe-sends-notification.html: * accessibility/loading-iframe-updates-axtree.html: * accessibility/media-controls.html: * accessibility/media-element.html: * accessibility/menu-item-crash.html: * accessibility/menu-list-sends-change-notification.html: * accessibility/meter-element.html: * accessibility/multiselect-list-reports-active-option.html: * accessibility/non-native-image-crash.html: * accessibility/noscript-ignored.html: * accessibility/notification-listeners.html: * accessibility/placeholder.html: * accessibility/platform-name.html: * accessibility/poorly-formed-aria-table.html: * accessibility/popup-button-title.html: * accessibility/presentational-elements-with-focus.html: * accessibility/press-works-on-control-types.html: * accessibility/radio-button-title-label.html: * accessibility/removed-anonymous-block-child-causes-crash.html: * accessibility/removed-continuation-element-causes-crash.html: * accessibility/render-counter-text.html: * accessibility/selection-states.html: * accessibility/spinbutton-value.html: * accessibility/svg-bounds.html: * accessibility/svg-group-element-with-title.html: * accessibility/svg-image.html: * accessibility/svg-remote-element.html: * accessibility/table-cell-for-column-and-row-crash.html: * accessibility/table-destroyed-crash.html: * accessibility/table-remove-cell-crash.html: * accessibility/table-with-empty-thead-causes-crash.html: * accessibility/table-with-hidden-head-section.html: * accessibility/table-with-mismatch-column-count-in-initial-section.html: * accessibility/text-role-with-aria-hidden-inside.html: * accessibility/textarea-insertion-point-line-number.html: * accessibility/textbox-role-reports-selection.html: * accessibility/title-ui-element-correctness.html: * accessibility/transformed-bounds.html: * accessibility/updating-attribute-in-table-causes-crash.html: * animations/animation-css-rule-types.html: * animations/animation-events-create.html: * animations/computed-style.html: * animations/keyframes-rule.html: * animations/script-tests/TEMPLATE.html: * batterystatus/add-listener-from-callback.html: * batterystatus/basic-all-types-of-events.html: * batterystatus/basic-operation.html: * batterystatus/event-after-navigation.html: * batterystatus/multiple-frames.html: * batterystatus/updates.html: * batterystatus/window-property.html: Canonical link: https://commits.webkit.org/138878@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@155274 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2013-09-08 01:18:24 +00:00
<script src="../resources/js-test-pre.js"></script>
AX: Layout tests related to text alternative computation need to be done differently https://bugs.webkit.org/show_bug.cgi?id=157187 Create several utility methods to facilitate retrieval of platform-independent attribute values from platform-specific attributes: - platformValueForW3CName() and platformValueForW3CDescription() to retrieve a specific piece of text alternative information, stripping off the platform attribute name by default. These methods should make it possible to share tests and expectations files because the text alternative calculation defined by the W3C accessibility specifications should be the same for all platforms. (The differences are the result of the unique platform mappings.) - platformTextAlternatives() to dump out all the text alternative attributes and values, preserving the platform-specific attribute name. This, along with the use of the platformValue* methods with attribute name enabled, should make it possible to have shared tests with platform-specific expectations without the need to check the platform in the test itself. - platformRoleForComboBox() and platformRoleForStaticText() to eliminate the need for platform-specific expectations files simply because such an element happens to be included in the test file and verifying that element's role is desired. Begin using these methods in the tests related to text alternative computation which had platform-specific checks, update the expectations files when needed, and remove now-obsolete platform-specific expectations files. Reviewed by Chris Fleizach. * accessibility/alt-tag-on-image-with-nonimage-role-expected.txt: Updated. * accessibility/alt-tag-on-image-with-nonimage-role.html: Updated. * accessibility/aria-help-expected.txt: Added. * accessibility/aria-help.html: Updated. * accessibility/aria-label-expected.txt: Updated. * accessibility/aria-label.html: Updated. * accessibility/aria-labeled-with-hidden-node-expected.txt: Updated. * accessibility/aria-labeled-with-hidden-node.html: Updated. * accessibility/aria-labelledby-on-input-expected.txt: Updated. * accessibility/aria-labelledby-on-input.html: Updated. * accessibility/aria-labelledby-overrides-aria-labeledby-expected.txt: Updated. * accessibility/aria-labelledby-overrides-aria-labeledby.html: Updated. * accessibility/aria-labelledby-overrides-label-expected.txt: Updated. * accessibility/aria-labelledby-overrides-label.html: Updated. * accessibility/aria-labelledby-stay-within-expected.txt: Updated. * accessibility/aria-labelledby-stay-within.html: Updated. * accessibility/aria-labelledby-with-descendants-expected.txt: Updated. * accessibility/aria-labelledby-with-descendants.html: Updated. * accessibility/aria-namefrom-author-expected.txt: Updated. * accessibility/aria-namefrom-author.html: Updated. * accessibility/aria-text-role-expected.txt: Updated. * accessibility/aria-text-role.html: Updated. * accessibility/canvas-description-and-role-expected.txt: Updated. * accessibility/canvas-description-and-role.html: Updated. * accessibility/canvas-fallback-content.html: Updated. * accessibility/empty-image-with-title-expected.txt: Updated. * accessibility/empty-image-with-title.html: Updated. * accessibility/fieldset-element-expected.txt: Updated. * accessibility/fieldset-element.html: Updated. * accessibility/focusable-div-expected.txt: Updated. * accessibility/focusable-div.html: Updated. * accessibility/help-text.html: Updated. * accessibility/img-alt-tag-only-whitespace-expected.txt: Updated. * accessibility/img-alt-tag-only-whitespace.html: Updated. * accessibility/img-aria-button-alt-tag-expected.txt: Updated. * accessibility/img-aria-button-alt-tag.html: Updated. * accessibility/img-fallsback-to-title.html: Updated. * accessibility/input-image-alt-expected.txt: Updated. * accessibility/input-image-alt.html: Updated. * accessibility/loading-iframe-sends-notification.html: Updated. * accessibility/self-referencing-aria-labelledby-expected.txt: Updated. * accessibility/self-referencing-aria-labelledby.html: Updated. * accessibility/svg-bounds.html: Updated. * accessibility/svg-group-element-with-title-expected.txt: Updated. * accessibility/svg-group-element-with-title.html: Updated. * accessibility/svg-image-expected.txt: Updated. * accessibility/svg-image.html: Updated. * accessibility/svg-labelledby-expected.txt: Updated. * accessibility/svg-labelledby.html: Updated. * accessibility/svg-remote-element.html: Updated. * accessibility/w3c-svg-description-calculation.html: Updated. * accessibility/w3c-svg-name-calculation.html: Updated. * platform/gtk/accessibility/alt-tag-on-image-with-nonimage-role-expected.txt: Removed. * platform/gtk/accessibility/aria-labeled-with-hidden-node-expected.txt: Removed. * platform/gtk/accessibility/aria-labelledby-on-input-expected.txt: Removed. * platform/gtk/accessibility/aria-labelledby-overrides-aria-labeledby-expected.txt: Removed. * platform/gtk/accessibility/aria-labelledby-overrides-label-expected.txt: Updated. * platform/gtk/accessibility/aria-labelledby-with-descendants-expected.txt: Removed. * platform/gtk/accessibility/aria-namefrom-author-expected.txt: Removed. * platform/gtk/accessibility/aria-text-role-expected.txt: Removed. * platform/gtk/accessibility/canvas-description-and-role-expected.txt: Updated. * platform/gtk/accessibility/empty-image-with-title-expected.txt: Updated. * platform/gtk/accessibility/fieldset-element-expected.txt: Removed. * platform/gtk/accessibility/focusable-div-expected.txt: Removed. * platform/gtk/accessibility/img-alt-tag-only-whitespace-expected.txt: Removed. * platform/gtk/accessibility/img-aria-button-alt-tag-expected.txt: Removed. * platform/gtk/accessibility/img-fallsback-to-title-expected.txt: Updated. * platform/gtk/accessibility/input-image-alt-expected.txt: Removed. * platform/gtk/accessibility/self-referencing-aria-labelledby-expected.txt: Removed. * platform/gtk/accessibility/svg-group-element-with-title-expected.txt: Removed. * platform/gtk/accessibility/svg-image-expected.txt: Removed. * platform/gtk/accessibility/svg-labelledby-expected.txt: Removed. * platform/mac/accessibility/aria-help-expected.txt: Removed. * platform/mac/accessibility/aria-labelledby-overrides-label-expected.txt: Removed. * platform/mac/accessibility/canvas-description-and-role-expected.txt: Updated. * platform/mac/accessibility/fieldset-element-expected.txt: Removed. * platform/mac/accessibility/img-fallsback-to-title-expected.txt: Updated. * platform/win/accessibility/canvas-description-and-role-expected.txt: Updated. * resources/accessibility-helper.js: (platformValueForW3CName): Added. (platformValueForW3CDescription): Added. (platformTextAlternatives): Added. (platformRoleForComboBox): Added. (platformRoleForStaticText): Added. Canonical link: https://commits.webkit.org/176061@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@201216 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-05-20 18:34:14 +00:00
<script src="../resources/accessibility-helper.js"></script>
AX: Support embedded SVG objects in AX tree https://bugs.webkit.org/show_bug.cgi?id=97571 Reviewed by Tim Horton. Source/WebCore: This patch allows an SVG image from another resource to be hooked into the AX hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto its native parent image. The SVGChromeClient is then used to connect to this SVG resource. Test: accessibility/svg-remote-element.html * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::createFromRenderer): * accessibility/AccessibilityAllInOne.cpp: * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAccessibilitySVGRoot): (AccessibilityObject): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::detach): (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement): (WebCore::AccessibilityRenderObject::boundingBoxRect): (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest): (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest): (WebCore::AccessibilityRenderObject::determineAccessibilityRole): (WebCore::AccessibilityRenderObject::isSVGImage): (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot): (WebCore::AccessibilityRenderObject::remoteSVGRootElement): (WebCore::AccessibilityRenderObject::addRemoteSVGChildren): (WebCore::AccessibilityRenderObject::addChildren): * accessibility/AccessibilityRenderObject.h: (AccessibilityRenderObject): * accessibility/AccessibilitySVGRoot.cpp: Added. (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::create): (WebCore::AccessibilitySVGRoot::parentObject): * accessibility/AccessibilitySVGRoot.h: Added. (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element. (WebCore::AccessibilitySVGRoot::setParent): (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot): (WebCore::toAccessibilitySVGRoot): * accessibility/mac/WebAccessibilityObjectWrapper.mm: (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled in a special manner. (createAccessibilityRoleMap): * loader/EmptyClients.h: (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding the accessibility bounding rect of elements. (WebCore::EmptyChromeClient::isEmptyChromeClient): * page/ChromeClient.h: (WebCore::ChromeClient::isEmptyChromeClient): (ChromeClient): * svg/graphics/SVGImage.cpp: * svg/graphics/SVGImageChromeClient.h: Added. (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image. (WebCore::SVGImageChromeClient::SVGImageChromeClient): (WebCore::SVGImageChromeClient::isSVGImageChromeClient): (WebCore::SVGImageChromeClient::image): (WebCore::SVGImageChromeClient::chromeDestroyed): (WebCore::SVGImageChromeClient::invalidateContentsAndRootView): (WebCore::toSVGImageChromeClient): LayoutTests: Added a new test that links in an svg file. Accessibility of that remote svg file is tested. Test skipped on chromium until clickPoint() is implemented in DRT. * accessibility/svg-remote-element.html: Added. * accessibility/resources/svg-face.svg: Added. * platform/chromium/TestExpectations: * platform/mac/accessibility/svg-remote-element-expected.txt: Added. Canonical link: https://commits.webkit.org/118799@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@132915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-10-30 16:02:36 +00:00
<img tabindex="0" id="svg-image" alt="interactive SVG" >
AX: Support embedded SVG objects in AX tree https://bugs.webkit.org/show_bug.cgi?id=97571 Reviewed by Tim Horton. Source/WebCore: This patch allows an SVG image from another resource to be hooked into the AX hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto its native parent image. The SVGChromeClient is then used to connect to this SVG resource. Test: accessibility/svg-remote-element.html * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::createFromRenderer): * accessibility/AccessibilityAllInOne.cpp: * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAccessibilitySVGRoot): (AccessibilityObject): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::detach): (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement): (WebCore::AccessibilityRenderObject::boundingBoxRect): (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest): (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest): (WebCore::AccessibilityRenderObject::determineAccessibilityRole): (WebCore::AccessibilityRenderObject::isSVGImage): (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot): (WebCore::AccessibilityRenderObject::remoteSVGRootElement): (WebCore::AccessibilityRenderObject::addRemoteSVGChildren): (WebCore::AccessibilityRenderObject::addChildren): * accessibility/AccessibilityRenderObject.h: (AccessibilityRenderObject): * accessibility/AccessibilitySVGRoot.cpp: Added. (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::create): (WebCore::AccessibilitySVGRoot::parentObject): * accessibility/AccessibilitySVGRoot.h: Added. (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element. (WebCore::AccessibilitySVGRoot::setParent): (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot): (WebCore::toAccessibilitySVGRoot): * accessibility/mac/WebAccessibilityObjectWrapper.mm: (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled in a special manner. (createAccessibilityRoleMap): * loader/EmptyClients.h: (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding the accessibility bounding rect of elements. (WebCore::EmptyChromeClient::isEmptyChromeClient): * page/ChromeClient.h: (WebCore::ChromeClient::isEmptyChromeClient): (ChromeClient): * svg/graphics/SVGImage.cpp: * svg/graphics/SVGImageChromeClient.h: Added. (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image. (WebCore::SVGImageChromeClient::SVGImageChromeClient): (WebCore::SVGImageChromeClient::isSVGImageChromeClient): (WebCore::SVGImageChromeClient::image): (WebCore::SVGImageChromeClient::chromeDestroyed): (WebCore::SVGImageChromeClient::invalidateContentsAndRootView): (WebCore::toSVGImageChromeClient): LayoutTests: Added a new test that links in an svg file. Accessibility of that remote svg file is tested. Test skipped on chromium until clickPoint() is implemented in DRT. * accessibility/svg-remote-element.html: Added. * accessibility/resources/svg-face.svg: Added. * platform/chromium/TestExpectations: * platform/mac/accessibility/svg-remote-element-expected.txt: Added. Canonical link: https://commits.webkit.org/118799@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@132915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-10-30 16:02:36 +00:00
<div id="console"></div>
<script>
description("This test ensures that accessibility elements can be created out of what a remote SVG image defines.")
AX: support clickPoint in DRT for chromium https://bugs.webkit.org/show_bug.cgi?id=97359 Reviewed by Chris Fleizach. Source/WebCore: When computing the accessible bounding box of an SVG root, be sure to call a method that uses transforms, otherwise an assertion fails. Newly unskipped tests: accessibility/svg-bounds.html and accessibility/svg-remote-element.html * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::boundingBoxRect): Source/WebKit/chromium: Exposes the clickPoint accessibility method in WebAccessibilityObject. * public/WebAccessibilityObject.h: (WebAccessibilityObject): * src/WebAccessibilityObject.cpp: (WebKit::WebAccessibilityObject::clickPoint): (WebKit): Tools: Implement clickPointX, clickPointY, and elementAtPoint for Chromium, so that several more tests can pass. * DumpRenderTree/chromium/TestRunner/src/AccessibilityUIElementChromium.cpp: (WebTestRunner::AccessibilityUIElement::AccessibilityUIElement): (WebTestRunner::AccessibilityUIElement::clickPointXGetterCallback): (WebTestRunner): (WebTestRunner::AccessibilityUIElement::clickPointYGetterCallback): (WebTestRunner::AccessibilityUIElement::elementAtPointCallback): * DumpRenderTree/chromium/TestRunner/src/AccessibilityUIElementChromium.h: (AccessibilityUIElement): LayoutTests: Enable four more tests now that clickPointX, clickPointY, and elementAtPoint are implemented for Chromium. Minor fixes to two tests to make them more robust across platfoms and when run in parallel. * accessibility/svg-bounds.html: Updated * accessibility/svg-bounds-expected.txt: Added (made cross-platform * accessibility/svg-remote-element.html: Updated * accessibility/svg-remote-element-expected.txt: Added (made cross-platform) * platform/mac/accessibility/svg-bounds-expected.txt: Deleted * platform/mac/accessibility/svg-remote-element-expected.txt: Deleted * platform/chromium/TestExpectations: Updated Canonical link: https://commits.webkit.org/123750@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@138260 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-12-20 17:29:34 +00:00
window.jsTestIsAsync = true;
AX: Support embedded SVG objects in AX tree https://bugs.webkit.org/show_bug.cgi?id=97571 Reviewed by Tim Horton. Source/WebCore: This patch allows an SVG image from another resource to be hooked into the AX hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto its native parent image. The SVGChromeClient is then used to connect to this SVG resource. Test: accessibility/svg-remote-element.html * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::createFromRenderer): * accessibility/AccessibilityAllInOne.cpp: * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAccessibilitySVGRoot): (AccessibilityObject): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::detach): (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement): (WebCore::AccessibilityRenderObject::boundingBoxRect): (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest): (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest): (WebCore::AccessibilityRenderObject::determineAccessibilityRole): (WebCore::AccessibilityRenderObject::isSVGImage): (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot): (WebCore::AccessibilityRenderObject::remoteSVGRootElement): (WebCore::AccessibilityRenderObject::addRemoteSVGChildren): (WebCore::AccessibilityRenderObject::addChildren): * accessibility/AccessibilityRenderObject.h: (AccessibilityRenderObject): * accessibility/AccessibilitySVGRoot.cpp: Added. (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::create): (WebCore::AccessibilitySVGRoot::parentObject): * accessibility/AccessibilitySVGRoot.h: Added. (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element. (WebCore::AccessibilitySVGRoot::setParent): (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot): (WebCore::toAccessibilitySVGRoot): * accessibility/mac/WebAccessibilityObjectWrapper.mm: (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled in a special manner. (createAccessibilityRoleMap): * loader/EmptyClients.h: (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding the accessibility bounding rect of elements. (WebCore::EmptyChromeClient::isEmptyChromeClient): * page/ChromeClient.h: (WebCore::ChromeClient::isEmptyChromeClient): (ChromeClient): * svg/graphics/SVGImage.cpp: * svg/graphics/SVGImageChromeClient.h: Added. (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image. (WebCore::SVGImageChromeClient::SVGImageChromeClient): (WebCore::SVGImageChromeClient::isSVGImageChromeClient): (WebCore::SVGImageChromeClient::image): (WebCore::SVGImageChromeClient::chromeDestroyed): (WebCore::SVGImageChromeClient::invalidateContentsAndRootView): (WebCore::toSVGImageChromeClient): LayoutTests: Added a new test that links in an svg file. Accessibility of that remote svg file is tested. Test skipped on chromium until clickPoint() is implemented in DRT. * accessibility/svg-remote-element.html: Added. * accessibility/resources/svg-face.svg: Added. * platform/chromium/TestExpectations: * platform/mac/accessibility/svg-remote-element-expected.txt: Added. Canonical link: https://commits.webkit.org/118799@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@132915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-10-30 16:02:36 +00:00
// Return the page's relative coordinates. If we rely on the x() or y() of the accessibility object, then
// accessibility transforms are applied that fail because there is no window available
function pageX(element) {
return element.clickPointX - element.width/2;
}
function pageY(element) {
return element.clickPointY - element.height/2;
}
function runAXTest() {
var container = accessibilityController.accessibleElementById("svg-image");
var x = pageX(container) - 1;
var y = pageY(container) - 1;
debug("container location: (" + x + ", " + y + ")");
var face = container.childAtIndex(0);
debug('Face role: ' + face.role);
AX: Layout tests related to text alternative computation need to be done differently https://bugs.webkit.org/show_bug.cgi?id=157187 Create several utility methods to facilitate retrieval of platform-independent attribute values from platform-specific attributes: - platformValueForW3CName() and platformValueForW3CDescription() to retrieve a specific piece of text alternative information, stripping off the platform attribute name by default. These methods should make it possible to share tests and expectations files because the text alternative calculation defined by the W3C accessibility specifications should be the same for all platforms. (The differences are the result of the unique platform mappings.) - platformTextAlternatives() to dump out all the text alternative attributes and values, preserving the platform-specific attribute name. This, along with the use of the platformValue* methods with attribute name enabled, should make it possible to have shared tests with platform-specific expectations without the need to check the platform in the test itself. - platformRoleForComboBox() and platformRoleForStaticText() to eliminate the need for platform-specific expectations files simply because such an element happens to be included in the test file and verifying that element's role is desired. Begin using these methods in the tests related to text alternative computation which had platform-specific checks, update the expectations files when needed, and remove now-obsolete platform-specific expectations files. Reviewed by Chris Fleizach. * accessibility/alt-tag-on-image-with-nonimage-role-expected.txt: Updated. * accessibility/alt-tag-on-image-with-nonimage-role.html: Updated. * accessibility/aria-help-expected.txt: Added. * accessibility/aria-help.html: Updated. * accessibility/aria-label-expected.txt: Updated. * accessibility/aria-label.html: Updated. * accessibility/aria-labeled-with-hidden-node-expected.txt: Updated. * accessibility/aria-labeled-with-hidden-node.html: Updated. * accessibility/aria-labelledby-on-input-expected.txt: Updated. * accessibility/aria-labelledby-on-input.html: Updated. * accessibility/aria-labelledby-overrides-aria-labeledby-expected.txt: Updated. * accessibility/aria-labelledby-overrides-aria-labeledby.html: Updated. * accessibility/aria-labelledby-overrides-label-expected.txt: Updated. * accessibility/aria-labelledby-overrides-label.html: Updated. * accessibility/aria-labelledby-stay-within-expected.txt: Updated. * accessibility/aria-labelledby-stay-within.html: Updated. * accessibility/aria-labelledby-with-descendants-expected.txt: Updated. * accessibility/aria-labelledby-with-descendants.html: Updated. * accessibility/aria-namefrom-author-expected.txt: Updated. * accessibility/aria-namefrom-author.html: Updated. * accessibility/aria-text-role-expected.txt: Updated. * accessibility/aria-text-role.html: Updated. * accessibility/canvas-description-and-role-expected.txt: Updated. * accessibility/canvas-description-and-role.html: Updated. * accessibility/canvas-fallback-content.html: Updated. * accessibility/empty-image-with-title-expected.txt: Updated. * accessibility/empty-image-with-title.html: Updated. * accessibility/fieldset-element-expected.txt: Updated. * accessibility/fieldset-element.html: Updated. * accessibility/focusable-div-expected.txt: Updated. * accessibility/focusable-div.html: Updated. * accessibility/help-text.html: Updated. * accessibility/img-alt-tag-only-whitespace-expected.txt: Updated. * accessibility/img-alt-tag-only-whitespace.html: Updated. * accessibility/img-aria-button-alt-tag-expected.txt: Updated. * accessibility/img-aria-button-alt-tag.html: Updated. * accessibility/img-fallsback-to-title.html: Updated. * accessibility/input-image-alt-expected.txt: Updated. * accessibility/input-image-alt.html: Updated. * accessibility/loading-iframe-sends-notification.html: Updated. * accessibility/self-referencing-aria-labelledby-expected.txt: Updated. * accessibility/self-referencing-aria-labelledby.html: Updated. * accessibility/svg-bounds.html: Updated. * accessibility/svg-group-element-with-title-expected.txt: Updated. * accessibility/svg-group-element-with-title.html: Updated. * accessibility/svg-image-expected.txt: Updated. * accessibility/svg-image.html: Updated. * accessibility/svg-labelledby-expected.txt: Updated. * accessibility/svg-labelledby.html: Updated. * accessibility/svg-remote-element.html: Updated. * accessibility/w3c-svg-description-calculation.html: Updated. * accessibility/w3c-svg-name-calculation.html: Updated. * platform/gtk/accessibility/alt-tag-on-image-with-nonimage-role-expected.txt: Removed. * platform/gtk/accessibility/aria-labeled-with-hidden-node-expected.txt: Removed. * platform/gtk/accessibility/aria-labelledby-on-input-expected.txt: Removed. * platform/gtk/accessibility/aria-labelledby-overrides-aria-labeledby-expected.txt: Removed. * platform/gtk/accessibility/aria-labelledby-overrides-label-expected.txt: Updated. * platform/gtk/accessibility/aria-labelledby-with-descendants-expected.txt: Removed. * platform/gtk/accessibility/aria-namefrom-author-expected.txt: Removed. * platform/gtk/accessibility/aria-text-role-expected.txt: Removed. * platform/gtk/accessibility/canvas-description-and-role-expected.txt: Updated. * platform/gtk/accessibility/empty-image-with-title-expected.txt: Updated. * platform/gtk/accessibility/fieldset-element-expected.txt: Removed. * platform/gtk/accessibility/focusable-div-expected.txt: Removed. * platform/gtk/accessibility/img-alt-tag-only-whitespace-expected.txt: Removed. * platform/gtk/accessibility/img-aria-button-alt-tag-expected.txt: Removed. * platform/gtk/accessibility/img-fallsback-to-title-expected.txt: Updated. * platform/gtk/accessibility/input-image-alt-expected.txt: Removed. * platform/gtk/accessibility/self-referencing-aria-labelledby-expected.txt: Removed. * platform/gtk/accessibility/svg-group-element-with-title-expected.txt: Removed. * platform/gtk/accessibility/svg-image-expected.txt: Removed. * platform/gtk/accessibility/svg-labelledby-expected.txt: Removed. * platform/mac/accessibility/aria-help-expected.txt: Removed. * platform/mac/accessibility/aria-labelledby-overrides-label-expected.txt: Removed. * platform/mac/accessibility/canvas-description-and-role-expected.txt: Updated. * platform/mac/accessibility/fieldset-element-expected.txt: Removed. * platform/mac/accessibility/img-fallsback-to-title-expected.txt: Updated. * platform/win/accessibility/canvas-description-and-role-expected.txt: Updated. * resources/accessibility-helper.js: (platformValueForW3CName): Added. (platformValueForW3CDescription): Added. (platformTextAlternatives): Added. (platformRoleForComboBox): Added. (platformRoleForStaticText): Added. Canonical link: https://commits.webkit.org/176061@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@201216 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-05-20 18:34:14 +00:00
debug('Face label: ' + platformValueForW3CName(face, true));
AX: Support embedded SVG objects in AX tree https://bugs.webkit.org/show_bug.cgi?id=97571 Reviewed by Tim Horton. Source/WebCore: This patch allows an SVG image from another resource to be hooked into the AX hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto its native parent image. The SVGChromeClient is then used to connect to this SVG resource. Test: accessibility/svg-remote-element.html * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::createFromRenderer): * accessibility/AccessibilityAllInOne.cpp: * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAccessibilitySVGRoot): (AccessibilityObject): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::detach): (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement): (WebCore::AccessibilityRenderObject::boundingBoxRect): (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest): (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest): (WebCore::AccessibilityRenderObject::determineAccessibilityRole): (WebCore::AccessibilityRenderObject::isSVGImage): (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot): (WebCore::AccessibilityRenderObject::remoteSVGRootElement): (WebCore::AccessibilityRenderObject::addRemoteSVGChildren): (WebCore::AccessibilityRenderObject::addChildren): * accessibility/AccessibilityRenderObject.h: (AccessibilityRenderObject): * accessibility/AccessibilitySVGRoot.cpp: Added. (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::create): (WebCore::AccessibilitySVGRoot::parentObject): * accessibility/AccessibilitySVGRoot.h: Added. (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element. (WebCore::AccessibilitySVGRoot::setParent): (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot): (WebCore::toAccessibilitySVGRoot): * accessibility/mac/WebAccessibilityObjectWrapper.mm: (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled in a special manner. (createAccessibilityRoleMap): * loader/EmptyClients.h: (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding the accessibility bounding rect of elements. (WebCore::EmptyChromeClient::isEmptyChromeClient): * page/ChromeClient.h: (WebCore::ChromeClient::isEmptyChromeClient): (ChromeClient): * svg/graphics/SVGImage.cpp: * svg/graphics/SVGImageChromeClient.h: Added. (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image. (WebCore::SVGImageChromeClient::SVGImageChromeClient): (WebCore::SVGImageChromeClient::isSVGImageChromeClient): (WebCore::SVGImageChromeClient::image): (WebCore::SVGImageChromeClient::chromeDestroyed): (WebCore::SVGImageChromeClient::invalidateContentsAndRootView): (WebCore::toSVGImageChromeClient): LayoutTests: Added a new test that links in an svg file. Accessibility of that remote svg file is tested. Test skipped on chromium until clickPoint() is implemented in DRT. * accessibility/svg-remote-element.html: Added. * accessibility/resources/svg-face.svg: Added. * platform/chromium/TestExpectations: * platform/mac/accessibility/svg-remote-element-expected.txt: Added. Canonical link: https://commits.webkit.org/118799@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@132915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-10-30 16:02:36 +00:00
debug('FaceX: ' + (pageX(face) - x));
debug('FaceY: ' + Math.abs(pageY(face) - y));
debug('<br>');
var eye = container.childAtIndex(1);
debug('Eye role: ' + eye.role);
AX: Layout tests related to text alternative computation need to be done differently https://bugs.webkit.org/show_bug.cgi?id=157187 Create several utility methods to facilitate retrieval of platform-independent attribute values from platform-specific attributes: - platformValueForW3CName() and platformValueForW3CDescription() to retrieve a specific piece of text alternative information, stripping off the platform attribute name by default. These methods should make it possible to share tests and expectations files because the text alternative calculation defined by the W3C accessibility specifications should be the same for all platforms. (The differences are the result of the unique platform mappings.) - platformTextAlternatives() to dump out all the text alternative attributes and values, preserving the platform-specific attribute name. This, along with the use of the platformValue* methods with attribute name enabled, should make it possible to have shared tests with platform-specific expectations without the need to check the platform in the test itself. - platformRoleForComboBox() and platformRoleForStaticText() to eliminate the need for platform-specific expectations files simply because such an element happens to be included in the test file and verifying that element's role is desired. Begin using these methods in the tests related to text alternative computation which had platform-specific checks, update the expectations files when needed, and remove now-obsolete platform-specific expectations files. Reviewed by Chris Fleizach. * accessibility/alt-tag-on-image-with-nonimage-role-expected.txt: Updated. * accessibility/alt-tag-on-image-with-nonimage-role.html: Updated. * accessibility/aria-help-expected.txt: Added. * accessibility/aria-help.html: Updated. * accessibility/aria-label-expected.txt: Updated. * accessibility/aria-label.html: Updated. * accessibility/aria-labeled-with-hidden-node-expected.txt: Updated. * accessibility/aria-labeled-with-hidden-node.html: Updated. * accessibility/aria-labelledby-on-input-expected.txt: Updated. * accessibility/aria-labelledby-on-input.html: Updated. * accessibility/aria-labelledby-overrides-aria-labeledby-expected.txt: Updated. * accessibility/aria-labelledby-overrides-aria-labeledby.html: Updated. * accessibility/aria-labelledby-overrides-label-expected.txt: Updated. * accessibility/aria-labelledby-overrides-label.html: Updated. * accessibility/aria-labelledby-stay-within-expected.txt: Updated. * accessibility/aria-labelledby-stay-within.html: Updated. * accessibility/aria-labelledby-with-descendants-expected.txt: Updated. * accessibility/aria-labelledby-with-descendants.html: Updated. * accessibility/aria-namefrom-author-expected.txt: Updated. * accessibility/aria-namefrom-author.html: Updated. * accessibility/aria-text-role-expected.txt: Updated. * accessibility/aria-text-role.html: Updated. * accessibility/canvas-description-and-role-expected.txt: Updated. * accessibility/canvas-description-and-role.html: Updated. * accessibility/canvas-fallback-content.html: Updated. * accessibility/empty-image-with-title-expected.txt: Updated. * accessibility/empty-image-with-title.html: Updated. * accessibility/fieldset-element-expected.txt: Updated. * accessibility/fieldset-element.html: Updated. * accessibility/focusable-div-expected.txt: Updated. * accessibility/focusable-div.html: Updated. * accessibility/help-text.html: Updated. * accessibility/img-alt-tag-only-whitespace-expected.txt: Updated. * accessibility/img-alt-tag-only-whitespace.html: Updated. * accessibility/img-aria-button-alt-tag-expected.txt: Updated. * accessibility/img-aria-button-alt-tag.html: Updated. * accessibility/img-fallsback-to-title.html: Updated. * accessibility/input-image-alt-expected.txt: Updated. * accessibility/input-image-alt.html: Updated. * accessibility/loading-iframe-sends-notification.html: Updated. * accessibility/self-referencing-aria-labelledby-expected.txt: Updated. * accessibility/self-referencing-aria-labelledby.html: Updated. * accessibility/svg-bounds.html: Updated. * accessibility/svg-group-element-with-title-expected.txt: Updated. * accessibility/svg-group-element-with-title.html: Updated. * accessibility/svg-image-expected.txt: Updated. * accessibility/svg-image.html: Updated. * accessibility/svg-labelledby-expected.txt: Updated. * accessibility/svg-labelledby.html: Updated. * accessibility/svg-remote-element.html: Updated. * accessibility/w3c-svg-description-calculation.html: Updated. * accessibility/w3c-svg-name-calculation.html: Updated. * platform/gtk/accessibility/alt-tag-on-image-with-nonimage-role-expected.txt: Removed. * platform/gtk/accessibility/aria-labeled-with-hidden-node-expected.txt: Removed. * platform/gtk/accessibility/aria-labelledby-on-input-expected.txt: Removed. * platform/gtk/accessibility/aria-labelledby-overrides-aria-labeledby-expected.txt: Removed. * platform/gtk/accessibility/aria-labelledby-overrides-label-expected.txt: Updated. * platform/gtk/accessibility/aria-labelledby-with-descendants-expected.txt: Removed. * platform/gtk/accessibility/aria-namefrom-author-expected.txt: Removed. * platform/gtk/accessibility/aria-text-role-expected.txt: Removed. * platform/gtk/accessibility/canvas-description-and-role-expected.txt: Updated. * platform/gtk/accessibility/empty-image-with-title-expected.txt: Updated. * platform/gtk/accessibility/fieldset-element-expected.txt: Removed. * platform/gtk/accessibility/focusable-div-expected.txt: Removed. * platform/gtk/accessibility/img-alt-tag-only-whitespace-expected.txt: Removed. * platform/gtk/accessibility/img-aria-button-alt-tag-expected.txt: Removed. * platform/gtk/accessibility/img-fallsback-to-title-expected.txt: Updated. * platform/gtk/accessibility/input-image-alt-expected.txt: Removed. * platform/gtk/accessibility/self-referencing-aria-labelledby-expected.txt: Removed. * platform/gtk/accessibility/svg-group-element-with-title-expected.txt: Removed. * platform/gtk/accessibility/svg-image-expected.txt: Removed. * platform/gtk/accessibility/svg-labelledby-expected.txt: Removed. * platform/mac/accessibility/aria-help-expected.txt: Removed. * platform/mac/accessibility/aria-labelledby-overrides-label-expected.txt: Removed. * platform/mac/accessibility/canvas-description-and-role-expected.txt: Updated. * platform/mac/accessibility/fieldset-element-expected.txt: Removed. * platform/mac/accessibility/img-fallsback-to-title-expected.txt: Updated. * platform/win/accessibility/canvas-description-and-role-expected.txt: Updated. * resources/accessibility-helper.js: (platformValueForW3CName): Added. (platformValueForW3CDescription): Added. (platformTextAlternatives): Added. (platformRoleForComboBox): Added. (platformRoleForStaticText): Added. Canonical link: https://commits.webkit.org/176061@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@201216 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-05-20 18:34:14 +00:00
debug('Eye label: ' + platformValueForW3CName(eye, true));
AX: Support embedded SVG objects in AX tree https://bugs.webkit.org/show_bug.cgi?id=97571 Reviewed by Tim Horton. Source/WebCore: This patch allows an SVG image from another resource to be hooked into the AX hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto its native parent image. The SVGChromeClient is then used to connect to this SVG resource. Test: accessibility/svg-remote-element.html * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::createFromRenderer): * accessibility/AccessibilityAllInOne.cpp: * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAccessibilitySVGRoot): (AccessibilityObject): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::detach): (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement): (WebCore::AccessibilityRenderObject::boundingBoxRect): (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest): (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest): (WebCore::AccessibilityRenderObject::determineAccessibilityRole): (WebCore::AccessibilityRenderObject::isSVGImage): (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot): (WebCore::AccessibilityRenderObject::remoteSVGRootElement): (WebCore::AccessibilityRenderObject::addRemoteSVGChildren): (WebCore::AccessibilityRenderObject::addChildren): * accessibility/AccessibilityRenderObject.h: (AccessibilityRenderObject): * accessibility/AccessibilitySVGRoot.cpp: Added. (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::create): (WebCore::AccessibilitySVGRoot::parentObject): * accessibility/AccessibilitySVGRoot.h: Added. (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element. (WebCore::AccessibilitySVGRoot::setParent): (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot): (WebCore::toAccessibilitySVGRoot): * accessibility/mac/WebAccessibilityObjectWrapper.mm: (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled in a special manner. (createAccessibilityRoleMap): * loader/EmptyClients.h: (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding the accessibility bounding rect of elements. (WebCore::EmptyChromeClient::isEmptyChromeClient): * page/ChromeClient.h: (WebCore::ChromeClient::isEmptyChromeClient): (ChromeClient): * svg/graphics/SVGImage.cpp: * svg/graphics/SVGImageChromeClient.h: Added. (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image. (WebCore::SVGImageChromeClient::SVGImageChromeClient): (WebCore::SVGImageChromeClient::isSVGImageChromeClient): (WebCore::SVGImageChromeClient::image): (WebCore::SVGImageChromeClient::chromeDestroyed): (WebCore::SVGImageChromeClient::invalidateContentsAndRootView): (WebCore::toSVGImageChromeClient): LayoutTests: Added a new test that links in an svg file. Accessibility of that remote svg file is tested. Test skipped on chromium until clickPoint() is implemented in DRT. * accessibility/svg-remote-element.html: Added. * accessibility/resources/svg-face.svg: Added. * platform/chromium/TestExpectations: * platform/mac/accessibility/svg-remote-element-expected.txt: Added. Canonical link: https://commits.webkit.org/118799@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@132915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-10-30 16:02:36 +00:00
debug('EyeX: ' + (pageX(eye) - x));
debug('EyeY: ' + Math.abs(pageY(eye) - y));
debug('<br>');
var nose = container.childAtIndex(3);
debug('Nose role: ' + nose.role);
AX: Layout tests related to text alternative computation need to be done differently https://bugs.webkit.org/show_bug.cgi?id=157187 Create several utility methods to facilitate retrieval of platform-independent attribute values from platform-specific attributes: - platformValueForW3CName() and platformValueForW3CDescription() to retrieve a specific piece of text alternative information, stripping off the platform attribute name by default. These methods should make it possible to share tests and expectations files because the text alternative calculation defined by the W3C accessibility specifications should be the same for all platforms. (The differences are the result of the unique platform mappings.) - platformTextAlternatives() to dump out all the text alternative attributes and values, preserving the platform-specific attribute name. This, along with the use of the platformValue* methods with attribute name enabled, should make it possible to have shared tests with platform-specific expectations without the need to check the platform in the test itself. - platformRoleForComboBox() and platformRoleForStaticText() to eliminate the need for platform-specific expectations files simply because such an element happens to be included in the test file and verifying that element's role is desired. Begin using these methods in the tests related to text alternative computation which had platform-specific checks, update the expectations files when needed, and remove now-obsolete platform-specific expectations files. Reviewed by Chris Fleizach. * accessibility/alt-tag-on-image-with-nonimage-role-expected.txt: Updated. * accessibility/alt-tag-on-image-with-nonimage-role.html: Updated. * accessibility/aria-help-expected.txt: Added. * accessibility/aria-help.html: Updated. * accessibility/aria-label-expected.txt: Updated. * accessibility/aria-label.html: Updated. * accessibility/aria-labeled-with-hidden-node-expected.txt: Updated. * accessibility/aria-labeled-with-hidden-node.html: Updated. * accessibility/aria-labelledby-on-input-expected.txt: Updated. * accessibility/aria-labelledby-on-input.html: Updated. * accessibility/aria-labelledby-overrides-aria-labeledby-expected.txt: Updated. * accessibility/aria-labelledby-overrides-aria-labeledby.html: Updated. * accessibility/aria-labelledby-overrides-label-expected.txt: Updated. * accessibility/aria-labelledby-overrides-label.html: Updated. * accessibility/aria-labelledby-stay-within-expected.txt: Updated. * accessibility/aria-labelledby-stay-within.html: Updated. * accessibility/aria-labelledby-with-descendants-expected.txt: Updated. * accessibility/aria-labelledby-with-descendants.html: Updated. * accessibility/aria-namefrom-author-expected.txt: Updated. * accessibility/aria-namefrom-author.html: Updated. * accessibility/aria-text-role-expected.txt: Updated. * accessibility/aria-text-role.html: Updated. * accessibility/canvas-description-and-role-expected.txt: Updated. * accessibility/canvas-description-and-role.html: Updated. * accessibility/canvas-fallback-content.html: Updated. * accessibility/empty-image-with-title-expected.txt: Updated. * accessibility/empty-image-with-title.html: Updated. * accessibility/fieldset-element-expected.txt: Updated. * accessibility/fieldset-element.html: Updated. * accessibility/focusable-div-expected.txt: Updated. * accessibility/focusable-div.html: Updated. * accessibility/help-text.html: Updated. * accessibility/img-alt-tag-only-whitespace-expected.txt: Updated. * accessibility/img-alt-tag-only-whitespace.html: Updated. * accessibility/img-aria-button-alt-tag-expected.txt: Updated. * accessibility/img-aria-button-alt-tag.html: Updated. * accessibility/img-fallsback-to-title.html: Updated. * accessibility/input-image-alt-expected.txt: Updated. * accessibility/input-image-alt.html: Updated. * accessibility/loading-iframe-sends-notification.html: Updated. * accessibility/self-referencing-aria-labelledby-expected.txt: Updated. * accessibility/self-referencing-aria-labelledby.html: Updated. * accessibility/svg-bounds.html: Updated. * accessibility/svg-group-element-with-title-expected.txt: Updated. * accessibility/svg-group-element-with-title.html: Updated. * accessibility/svg-image-expected.txt: Updated. * accessibility/svg-image.html: Updated. * accessibility/svg-labelledby-expected.txt: Updated. * accessibility/svg-labelledby.html: Updated. * accessibility/svg-remote-element.html: Updated. * accessibility/w3c-svg-description-calculation.html: Updated. * accessibility/w3c-svg-name-calculation.html: Updated. * platform/gtk/accessibility/alt-tag-on-image-with-nonimage-role-expected.txt: Removed. * platform/gtk/accessibility/aria-labeled-with-hidden-node-expected.txt: Removed. * platform/gtk/accessibility/aria-labelledby-on-input-expected.txt: Removed. * platform/gtk/accessibility/aria-labelledby-overrides-aria-labeledby-expected.txt: Removed. * platform/gtk/accessibility/aria-labelledby-overrides-label-expected.txt: Updated. * platform/gtk/accessibility/aria-labelledby-with-descendants-expected.txt: Removed. * platform/gtk/accessibility/aria-namefrom-author-expected.txt: Removed. * platform/gtk/accessibility/aria-text-role-expected.txt: Removed. * platform/gtk/accessibility/canvas-description-and-role-expected.txt: Updated. * platform/gtk/accessibility/empty-image-with-title-expected.txt: Updated. * platform/gtk/accessibility/fieldset-element-expected.txt: Removed. * platform/gtk/accessibility/focusable-div-expected.txt: Removed. * platform/gtk/accessibility/img-alt-tag-only-whitespace-expected.txt: Removed. * platform/gtk/accessibility/img-aria-button-alt-tag-expected.txt: Removed. * platform/gtk/accessibility/img-fallsback-to-title-expected.txt: Updated. * platform/gtk/accessibility/input-image-alt-expected.txt: Removed. * platform/gtk/accessibility/self-referencing-aria-labelledby-expected.txt: Removed. * platform/gtk/accessibility/svg-group-element-with-title-expected.txt: Removed. * platform/gtk/accessibility/svg-image-expected.txt: Removed. * platform/gtk/accessibility/svg-labelledby-expected.txt: Removed. * platform/mac/accessibility/aria-help-expected.txt: Removed. * platform/mac/accessibility/aria-labelledby-overrides-label-expected.txt: Removed. * platform/mac/accessibility/canvas-description-and-role-expected.txt: Updated. * platform/mac/accessibility/fieldset-element-expected.txt: Removed. * platform/mac/accessibility/img-fallsback-to-title-expected.txt: Updated. * platform/win/accessibility/canvas-description-and-role-expected.txt: Updated. * resources/accessibility-helper.js: (platformValueForW3CName): Added. (platformValueForW3CDescription): Added. (platformTextAlternatives): Added. (platformRoleForComboBox): Added. (platformRoleForStaticText): Added. Canonical link: https://commits.webkit.org/176061@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@201216 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-05-20 18:34:14 +00:00
debug('Nose label: ' + platformValueForW3CName(nose, true));
AX: Support embedded SVG objects in AX tree https://bugs.webkit.org/show_bug.cgi?id=97571 Reviewed by Tim Horton. Source/WebCore: This patch allows an SVG image from another resource to be hooked into the AX hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto its native parent image. The SVGChromeClient is then used to connect to this SVG resource. Test: accessibility/svg-remote-element.html * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::createFromRenderer): * accessibility/AccessibilityAllInOne.cpp: * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAccessibilitySVGRoot): (AccessibilityObject): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::detach): (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement): (WebCore::AccessibilityRenderObject::boundingBoxRect): (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest): (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest): (WebCore::AccessibilityRenderObject::determineAccessibilityRole): (WebCore::AccessibilityRenderObject::isSVGImage): (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot): (WebCore::AccessibilityRenderObject::remoteSVGRootElement): (WebCore::AccessibilityRenderObject::addRemoteSVGChildren): (WebCore::AccessibilityRenderObject::addChildren): * accessibility/AccessibilityRenderObject.h: (AccessibilityRenderObject): * accessibility/AccessibilitySVGRoot.cpp: Added. (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::create): (WebCore::AccessibilitySVGRoot::parentObject): * accessibility/AccessibilitySVGRoot.h: Added. (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element. (WebCore::AccessibilitySVGRoot::setParent): (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot): (WebCore::toAccessibilitySVGRoot): * accessibility/mac/WebAccessibilityObjectWrapper.mm: (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled in a special manner. (createAccessibilityRoleMap): * loader/EmptyClients.h: (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding the accessibility bounding rect of elements. (WebCore::EmptyChromeClient::isEmptyChromeClient): * page/ChromeClient.h: (WebCore::ChromeClient::isEmptyChromeClient): (ChromeClient): * svg/graphics/SVGImage.cpp: * svg/graphics/SVGImageChromeClient.h: Added. (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image. (WebCore::SVGImageChromeClient::SVGImageChromeClient): (WebCore::SVGImageChromeClient::isSVGImageChromeClient): (WebCore::SVGImageChromeClient::image): (WebCore::SVGImageChromeClient::chromeDestroyed): (WebCore::SVGImageChromeClient::invalidateContentsAndRootView): (WebCore::toSVGImageChromeClient): LayoutTests: Added a new test that links in an svg file. Accessibility of that remote svg file is tested. Test skipped on chromium until clickPoint() is implemented in DRT. * accessibility/svg-remote-element.html: Added. * accessibility/resources/svg-face.svg: Added. * platform/chromium/TestExpectations: * platform/mac/accessibility/svg-remote-element-expected.txt: Added. Canonical link: https://commits.webkit.org/118799@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@132915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-10-30 16:02:36 +00:00
debug('NoseX: ' + (pageX(nose) - x));
debug('NoseY: ' + Math.abs(pageY(nose) - y));
debug('<br>');
var mouth = container.childAtIndex(4);
debug('Mouth role: ' + mouth.role);
AX: Layout tests related to text alternative computation need to be done differently https://bugs.webkit.org/show_bug.cgi?id=157187 Create several utility methods to facilitate retrieval of platform-independent attribute values from platform-specific attributes: - platformValueForW3CName() and platformValueForW3CDescription() to retrieve a specific piece of text alternative information, stripping off the platform attribute name by default. These methods should make it possible to share tests and expectations files because the text alternative calculation defined by the W3C accessibility specifications should be the same for all platforms. (The differences are the result of the unique platform mappings.) - platformTextAlternatives() to dump out all the text alternative attributes and values, preserving the platform-specific attribute name. This, along with the use of the platformValue* methods with attribute name enabled, should make it possible to have shared tests with platform-specific expectations without the need to check the platform in the test itself. - platformRoleForComboBox() and platformRoleForStaticText() to eliminate the need for platform-specific expectations files simply because such an element happens to be included in the test file and verifying that element's role is desired. Begin using these methods in the tests related to text alternative computation which had platform-specific checks, update the expectations files when needed, and remove now-obsolete platform-specific expectations files. Reviewed by Chris Fleizach. * accessibility/alt-tag-on-image-with-nonimage-role-expected.txt: Updated. * accessibility/alt-tag-on-image-with-nonimage-role.html: Updated. * accessibility/aria-help-expected.txt: Added. * accessibility/aria-help.html: Updated. * accessibility/aria-label-expected.txt: Updated. * accessibility/aria-label.html: Updated. * accessibility/aria-labeled-with-hidden-node-expected.txt: Updated. * accessibility/aria-labeled-with-hidden-node.html: Updated. * accessibility/aria-labelledby-on-input-expected.txt: Updated. * accessibility/aria-labelledby-on-input.html: Updated. * accessibility/aria-labelledby-overrides-aria-labeledby-expected.txt: Updated. * accessibility/aria-labelledby-overrides-aria-labeledby.html: Updated. * accessibility/aria-labelledby-overrides-label-expected.txt: Updated. * accessibility/aria-labelledby-overrides-label.html: Updated. * accessibility/aria-labelledby-stay-within-expected.txt: Updated. * accessibility/aria-labelledby-stay-within.html: Updated. * accessibility/aria-labelledby-with-descendants-expected.txt: Updated. * accessibility/aria-labelledby-with-descendants.html: Updated. * accessibility/aria-namefrom-author-expected.txt: Updated. * accessibility/aria-namefrom-author.html: Updated. * accessibility/aria-text-role-expected.txt: Updated. * accessibility/aria-text-role.html: Updated. * accessibility/canvas-description-and-role-expected.txt: Updated. * accessibility/canvas-description-and-role.html: Updated. * accessibility/canvas-fallback-content.html: Updated. * accessibility/empty-image-with-title-expected.txt: Updated. * accessibility/empty-image-with-title.html: Updated. * accessibility/fieldset-element-expected.txt: Updated. * accessibility/fieldset-element.html: Updated. * accessibility/focusable-div-expected.txt: Updated. * accessibility/focusable-div.html: Updated. * accessibility/help-text.html: Updated. * accessibility/img-alt-tag-only-whitespace-expected.txt: Updated. * accessibility/img-alt-tag-only-whitespace.html: Updated. * accessibility/img-aria-button-alt-tag-expected.txt: Updated. * accessibility/img-aria-button-alt-tag.html: Updated. * accessibility/img-fallsback-to-title.html: Updated. * accessibility/input-image-alt-expected.txt: Updated. * accessibility/input-image-alt.html: Updated. * accessibility/loading-iframe-sends-notification.html: Updated. * accessibility/self-referencing-aria-labelledby-expected.txt: Updated. * accessibility/self-referencing-aria-labelledby.html: Updated. * accessibility/svg-bounds.html: Updated. * accessibility/svg-group-element-with-title-expected.txt: Updated. * accessibility/svg-group-element-with-title.html: Updated. * accessibility/svg-image-expected.txt: Updated. * accessibility/svg-image.html: Updated. * accessibility/svg-labelledby-expected.txt: Updated. * accessibility/svg-labelledby.html: Updated. * accessibility/svg-remote-element.html: Updated. * accessibility/w3c-svg-description-calculation.html: Updated. * accessibility/w3c-svg-name-calculation.html: Updated. * platform/gtk/accessibility/alt-tag-on-image-with-nonimage-role-expected.txt: Removed. * platform/gtk/accessibility/aria-labeled-with-hidden-node-expected.txt: Removed. * platform/gtk/accessibility/aria-labelledby-on-input-expected.txt: Removed. * platform/gtk/accessibility/aria-labelledby-overrides-aria-labeledby-expected.txt: Removed. * platform/gtk/accessibility/aria-labelledby-overrides-label-expected.txt: Updated. * platform/gtk/accessibility/aria-labelledby-with-descendants-expected.txt: Removed. * platform/gtk/accessibility/aria-namefrom-author-expected.txt: Removed. * platform/gtk/accessibility/aria-text-role-expected.txt: Removed. * platform/gtk/accessibility/canvas-description-and-role-expected.txt: Updated. * platform/gtk/accessibility/empty-image-with-title-expected.txt: Updated. * platform/gtk/accessibility/fieldset-element-expected.txt: Removed. * platform/gtk/accessibility/focusable-div-expected.txt: Removed. * platform/gtk/accessibility/img-alt-tag-only-whitespace-expected.txt: Removed. * platform/gtk/accessibility/img-aria-button-alt-tag-expected.txt: Removed. * platform/gtk/accessibility/img-fallsback-to-title-expected.txt: Updated. * platform/gtk/accessibility/input-image-alt-expected.txt: Removed. * platform/gtk/accessibility/self-referencing-aria-labelledby-expected.txt: Removed. * platform/gtk/accessibility/svg-group-element-with-title-expected.txt: Removed. * platform/gtk/accessibility/svg-image-expected.txt: Removed. * platform/gtk/accessibility/svg-labelledby-expected.txt: Removed. * platform/mac/accessibility/aria-help-expected.txt: Removed. * platform/mac/accessibility/aria-labelledby-overrides-label-expected.txt: Removed. * platform/mac/accessibility/canvas-description-and-role-expected.txt: Updated. * platform/mac/accessibility/fieldset-element-expected.txt: Removed. * platform/mac/accessibility/img-fallsback-to-title-expected.txt: Updated. * platform/win/accessibility/canvas-description-and-role-expected.txt: Updated. * resources/accessibility-helper.js: (platformValueForW3CName): Added. (platformValueForW3CDescription): Added. (platformTextAlternatives): Added. (platformRoleForComboBox): Added. (platformRoleForStaticText): Added. Canonical link: https://commits.webkit.org/176061@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@201216 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-05-20 18:34:14 +00:00
debug('Mouth label: ' + platformValueForW3CName(mouth, true));
AX: Support embedded SVG objects in AX tree https://bugs.webkit.org/show_bug.cgi?id=97571 Reviewed by Tim Horton. Source/WebCore: This patch allows an SVG image from another resource to be hooked into the AX hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto its native parent image. The SVGChromeClient is then used to connect to this SVG resource. Test: accessibility/svg-remote-element.html * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::createFromRenderer): * accessibility/AccessibilityAllInOne.cpp: * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAccessibilitySVGRoot): (AccessibilityObject): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::detach): (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement): (WebCore::AccessibilityRenderObject::boundingBoxRect): (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest): (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest): (WebCore::AccessibilityRenderObject::determineAccessibilityRole): (WebCore::AccessibilityRenderObject::isSVGImage): (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot): (WebCore::AccessibilityRenderObject::remoteSVGRootElement): (WebCore::AccessibilityRenderObject::addRemoteSVGChildren): (WebCore::AccessibilityRenderObject::addChildren): * accessibility/AccessibilityRenderObject.h: (AccessibilityRenderObject): * accessibility/AccessibilitySVGRoot.cpp: Added. (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::create): (WebCore::AccessibilitySVGRoot::parentObject): * accessibility/AccessibilitySVGRoot.h: Added. (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element. (WebCore::AccessibilitySVGRoot::setParent): (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot): (WebCore::toAccessibilitySVGRoot): * accessibility/mac/WebAccessibilityObjectWrapper.mm: (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled in a special manner. (createAccessibilityRoleMap): * loader/EmptyClients.h: (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding the accessibility bounding rect of elements. (WebCore::EmptyChromeClient::isEmptyChromeClient): * page/ChromeClient.h: (WebCore::ChromeClient::isEmptyChromeClient): (ChromeClient): * svg/graphics/SVGImage.cpp: * svg/graphics/SVGImageChromeClient.h: Added. (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image. (WebCore::SVGImageChromeClient::SVGImageChromeClient): (WebCore::SVGImageChromeClient::isSVGImageChromeClient): (WebCore::SVGImageChromeClient::image): (WebCore::SVGImageChromeClient::chromeDestroyed): (WebCore::SVGImageChromeClient::invalidateContentsAndRootView): (WebCore::toSVGImageChromeClient): LayoutTests: Added a new test that links in an svg file. Accessibility of that remote svg file is tested. Test skipped on chromium until clickPoint() is implemented in DRT. * accessibility/svg-remote-element.html: Added. * accessibility/resources/svg-face.svg: Added. * platform/chromium/TestExpectations: * platform/mac/accessibility/svg-remote-element-expected.txt: Added. Canonical link: https://commits.webkit.org/118799@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@132915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-10-30 16:02:36 +00:00
debug('MouthX: ' + (pageX(mouth) - x));
AX: support clickPoint in DRT for chromium https://bugs.webkit.org/show_bug.cgi?id=97359 Reviewed by Chris Fleizach. Source/WebCore: When computing the accessible bounding box of an SVG root, be sure to call a method that uses transforms, otherwise an assertion fails. Newly unskipped tests: accessibility/svg-bounds.html and accessibility/svg-remote-element.html * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::boundingBoxRect): Source/WebKit/chromium: Exposes the clickPoint accessibility method in WebAccessibilityObject. * public/WebAccessibilityObject.h: (WebAccessibilityObject): * src/WebAccessibilityObject.cpp: (WebKit::WebAccessibilityObject::clickPoint): (WebKit): Tools: Implement clickPointX, clickPointY, and elementAtPoint for Chromium, so that several more tests can pass. * DumpRenderTree/chromium/TestRunner/src/AccessibilityUIElementChromium.cpp: (WebTestRunner::AccessibilityUIElement::AccessibilityUIElement): (WebTestRunner::AccessibilityUIElement::clickPointXGetterCallback): (WebTestRunner): (WebTestRunner::AccessibilityUIElement::clickPointYGetterCallback): (WebTestRunner::AccessibilityUIElement::elementAtPointCallback): * DumpRenderTree/chromium/TestRunner/src/AccessibilityUIElementChromium.h: (AccessibilityUIElement): LayoutTests: Enable four more tests now that clickPointX, clickPointY, and elementAtPoint are implemented for Chromium. Minor fixes to two tests to make them more robust across platfoms and when run in parallel. * accessibility/svg-bounds.html: Updated * accessibility/svg-bounds-expected.txt: Added (made cross-platform * accessibility/svg-remote-element.html: Updated * accessibility/svg-remote-element-expected.txt: Added (made cross-platform) * platform/mac/accessibility/svg-bounds-expected.txt: Deleted * platform/mac/accessibility/svg-remote-element-expected.txt: Deleted * platform/chromium/TestExpectations: Updated Canonical link: https://commits.webkit.org/123750@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@138260 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-12-20 17:29:34 +00:00
debug('MouthY: ' + Math.floor(Math.abs(pageY(mouth) - y)));
AX: Support embedded SVG objects in AX tree https://bugs.webkit.org/show_bug.cgi?id=97571 Reviewed by Tim Horton. Source/WebCore: This patch allows an SVG image from another resource to be hooked into the AX hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto its native parent image. The SVGChromeClient is then used to connect to this SVG resource. Test: accessibility/svg-remote-element.html * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::createFromRenderer): * accessibility/AccessibilityAllInOne.cpp: * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAccessibilitySVGRoot): (AccessibilityObject): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::detach): (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement): (WebCore::AccessibilityRenderObject::boundingBoxRect): (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest): (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest): (WebCore::AccessibilityRenderObject::determineAccessibilityRole): (WebCore::AccessibilityRenderObject::isSVGImage): (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot): (WebCore::AccessibilityRenderObject::remoteSVGRootElement): (WebCore::AccessibilityRenderObject::addRemoteSVGChildren): (WebCore::AccessibilityRenderObject::addChildren): * accessibility/AccessibilityRenderObject.h: (AccessibilityRenderObject): * accessibility/AccessibilitySVGRoot.cpp: Added. (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::create): (WebCore::AccessibilitySVGRoot::parentObject): * accessibility/AccessibilitySVGRoot.h: Added. (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element. (WebCore::AccessibilitySVGRoot::setParent): (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot): (WebCore::toAccessibilitySVGRoot): * accessibility/mac/WebAccessibilityObjectWrapper.mm: (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled in a special manner. (createAccessibilityRoleMap): * loader/EmptyClients.h: (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding the accessibility bounding rect of elements. (WebCore::EmptyChromeClient::isEmptyChromeClient): * page/ChromeClient.h: (WebCore::ChromeClient::isEmptyChromeClient): (ChromeClient): * svg/graphics/SVGImage.cpp: * svg/graphics/SVGImageChromeClient.h: Added. (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image. (WebCore::SVGImageChromeClient::SVGImageChromeClient): (WebCore::SVGImageChromeClient::isSVGImageChromeClient): (WebCore::SVGImageChromeClient::image): (WebCore::SVGImageChromeClient::chromeDestroyed): (WebCore::SVGImageChromeClient::invalidateContentsAndRootView): (WebCore::toSVGImageChromeClient): LayoutTests: Added a new test that links in an svg file. Accessibility of that remote svg file is tested. Test skipped on chromium until clickPoint() is implemented in DRT. * accessibility/svg-remote-element.html: Added. * accessibility/resources/svg-face.svg: Added. * platform/chromium/TestExpectations: * platform/mac/accessibility/svg-remote-element-expected.txt: Added. Canonical link: https://commits.webkit.org/118799@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@132915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-10-30 16:02:36 +00:00
debug('<br>');
AX: support clickPoint in DRT for chromium https://bugs.webkit.org/show_bug.cgi?id=97359 Reviewed by Chris Fleizach. Source/WebCore: When computing the accessible bounding box of an SVG root, be sure to call a method that uses transforms, otherwise an assertion fails. Newly unskipped tests: accessibility/svg-bounds.html and accessibility/svg-remote-element.html * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::boundingBoxRect): Source/WebKit/chromium: Exposes the clickPoint accessibility method in WebAccessibilityObject. * public/WebAccessibilityObject.h: (WebAccessibilityObject): * src/WebAccessibilityObject.cpp: (WebKit::WebAccessibilityObject::clickPoint): (WebKit): Tools: Implement clickPointX, clickPointY, and elementAtPoint for Chromium, so that several more tests can pass. * DumpRenderTree/chromium/TestRunner/src/AccessibilityUIElementChromium.cpp: (WebTestRunner::AccessibilityUIElement::AccessibilityUIElement): (WebTestRunner::AccessibilityUIElement::clickPointXGetterCallback): (WebTestRunner): (WebTestRunner::AccessibilityUIElement::clickPointYGetterCallback): (WebTestRunner::AccessibilityUIElement::elementAtPointCallback): * DumpRenderTree/chromium/TestRunner/src/AccessibilityUIElementChromium.h: (AccessibilityUIElement): LayoutTests: Enable four more tests now that clickPointX, clickPointY, and elementAtPoint are implemented for Chromium. Minor fixes to two tests to make them more robust across platfoms and when run in parallel. * accessibility/svg-bounds.html: Updated * accessibility/svg-bounds-expected.txt: Added (made cross-platform * accessibility/svg-remote-element.html: Updated * accessibility/svg-remote-element-expected.txt: Added (made cross-platform) * platform/mac/accessibility/svg-bounds-expected.txt: Deleted * platform/mac/accessibility/svg-remote-element-expected.txt: Deleted * platform/chromium/TestExpectations: Updated Canonical link: https://commits.webkit.org/123750@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@138260 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-12-20 17:29:34 +00:00
finishJSTest();
AX: Support embedded SVG objects in AX tree https://bugs.webkit.org/show_bug.cgi?id=97571 Reviewed by Tim Horton. Source/WebCore: This patch allows an SVG image from another resource to be hooked into the AX hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto its native parent image. The SVGChromeClient is then used to connect to this SVG resource. Test: accessibility/svg-remote-element.html * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::createFromRenderer): * accessibility/AccessibilityAllInOne.cpp: * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAccessibilitySVGRoot): (AccessibilityObject): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::detach): (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement): (WebCore::AccessibilityRenderObject::boundingBoxRect): (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest): (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest): (WebCore::AccessibilityRenderObject::determineAccessibilityRole): (WebCore::AccessibilityRenderObject::isSVGImage): (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot): (WebCore::AccessibilityRenderObject::remoteSVGRootElement): (WebCore::AccessibilityRenderObject::addRemoteSVGChildren): (WebCore::AccessibilityRenderObject::addChildren): * accessibility/AccessibilityRenderObject.h: (AccessibilityRenderObject): * accessibility/AccessibilitySVGRoot.cpp: Added. (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::create): (WebCore::AccessibilitySVGRoot::parentObject): * accessibility/AccessibilitySVGRoot.h: Added. (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element. (WebCore::AccessibilitySVGRoot::setParent): (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot): (WebCore::toAccessibilitySVGRoot): * accessibility/mac/WebAccessibilityObjectWrapper.mm: (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled in a special manner. (createAccessibilityRoleMap): * loader/EmptyClients.h: (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding the accessibility bounding rect of elements. (WebCore::EmptyChromeClient::isEmptyChromeClient): * page/ChromeClient.h: (WebCore::ChromeClient::isEmptyChromeClient): (ChromeClient): * svg/graphics/SVGImage.cpp: * svg/graphics/SVGImageChromeClient.h: Added. (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image. (WebCore::SVGImageChromeClient::SVGImageChromeClient): (WebCore::SVGImageChromeClient::isSVGImageChromeClient): (WebCore::SVGImageChromeClient::image): (WebCore::SVGImageChromeClient::chromeDestroyed): (WebCore::SVGImageChromeClient::invalidateContentsAndRootView): (WebCore::toSVGImageChromeClient): LayoutTests: Added a new test that links in an svg file. Accessibility of that remote svg file is tested. Test skipped on chromium until clickPoint() is implemented in DRT. * accessibility/svg-remote-element.html: Added. * accessibility/resources/svg-face.svg: Added. * platform/chromium/TestExpectations: * platform/mac/accessibility/svg-remote-element-expected.txt: Added. Canonical link: https://commits.webkit.org/118799@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@132915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-10-30 16:02:36 +00:00
}
if (window.accessibilityController) {
document.getElementById("svg-image").addEventListener("load", runAXTest);
}
document.getElementById("svg-image").src = "resources/svg-face.svg";
AX: Support embedded SVG objects in AX tree https://bugs.webkit.org/show_bug.cgi?id=97571 Reviewed by Tim Horton. Source/WebCore: This patch allows an SVG image from another resource to be hooked into the AX hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto its native parent image. The SVGChromeClient is then used to connect to this SVG resource. Test: accessibility/svg-remote-element.html * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::createFromRenderer): * accessibility/AccessibilityAllInOne.cpp: * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAccessibilitySVGRoot): (AccessibilityObject): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::detach): (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement): (WebCore::AccessibilityRenderObject::boundingBoxRect): (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest): (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest): (WebCore::AccessibilityRenderObject::determineAccessibilityRole): (WebCore::AccessibilityRenderObject::isSVGImage): (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot): (WebCore::AccessibilityRenderObject::remoteSVGRootElement): (WebCore::AccessibilityRenderObject::addRemoteSVGChildren): (WebCore::AccessibilityRenderObject::addChildren): * accessibility/AccessibilityRenderObject.h: (AccessibilityRenderObject): * accessibility/AccessibilitySVGRoot.cpp: Added. (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::create): (WebCore::AccessibilitySVGRoot::parentObject): * accessibility/AccessibilitySVGRoot.h: Added. (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element. (WebCore::AccessibilitySVGRoot::setParent): (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot): (WebCore::toAccessibilitySVGRoot): * accessibility/mac/WebAccessibilityObjectWrapper.mm: (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled in a special manner. (createAccessibilityRoleMap): * loader/EmptyClients.h: (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding the accessibility bounding rect of elements. (WebCore::EmptyChromeClient::isEmptyChromeClient): * page/ChromeClient.h: (WebCore::ChromeClient::isEmptyChromeClient): (ChromeClient): * svg/graphics/SVGImage.cpp: * svg/graphics/SVGImageChromeClient.h: Added. (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image. (WebCore::SVGImageChromeClient::SVGImageChromeClient): (WebCore::SVGImageChromeClient::isSVGImageChromeClient): (WebCore::SVGImageChromeClient::image): (WebCore::SVGImageChromeClient::chromeDestroyed): (WebCore::SVGImageChromeClient::invalidateContentsAndRootView): (WebCore::toSVGImageChromeClient): LayoutTests: Added a new test that links in an svg file. Accessibility of that remote svg file is tested. Test skipped on chromium until clickPoint() is implemented in DRT. * accessibility/svg-remote-element.html: Added. * accessibility/resources/svg-face.svg: Added. * platform/chromium/TestExpectations: * platform/mac/accessibility/svg-remote-element-expected.txt: Added. Canonical link: https://commits.webkit.org/118799@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@132915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-10-30 16:02:36 +00:00
</script>
Change LayoutTests' a* and b* files to use pre and post js files in LayoutTests/resources. https://bugs.webkit.org/show_bug.cgi?id=120985. Rubber stamped by Filip Pizlo. * accessibility/accessibility-node-memory-management.html: * accessibility/accessibility-node-reparent.html: * accessibility/accessibility-object-detached.html: * accessibility/adjacent-continuations-cause-assertion-failure.html: * accessibility/anonymous-render-block-in-continuation-causes-crash.html: * accessibility/aria-checkbox-checked.html: * accessibility/aria-checkbox-sends-notification.html: * accessibility/aria-checkbox-text.html: * accessibility/aria-combobox.html: * accessibility/aria-controls-with-tabs.html: * accessibility/aria-disabled.html: * accessibility/aria-fallback-roles.html: * accessibility/aria-help.html: * accessibility/aria-hidden-hides-all-elements.html: * accessibility/aria-hidden-update.html: * accessibility/aria-hidden-updates-alldescendants.html: * accessibility/aria-hidden-with-elements.html: * accessibility/aria-hidden.html: * accessibility/aria-invalid.html: * accessibility/aria-label.html: * accessibility/aria-labelledby-overrides-label.html: * accessibility/aria-list-and-listitem.html: * accessibility/aria-menubar-menuitems.html: * accessibility/aria-option-role.html: * accessibility/aria-presentational-role.html: * accessibility/aria-readonly.html: * accessibility/aria-required.html: * accessibility/aria-scrollbar-role.html: * accessibility/aria-sort.html: * accessibility/aria-tab-role-on-buttons.html: * accessibility/aria-tab-roles.html: * accessibility/aria-text-role.html: * accessibility/aria-toggle-button-with-title.html: * accessibility/aria-used-on-image-maps.html: * accessibility/button-title-uses-inner-img-alt.html: * accessibility/canvas-accessibilitynodeobject.html: * accessibility/canvas-description-and-role.html: * accessibility/canvas-fallback-content-2.html: * accessibility/canvas-fallback-content.html: * accessibility/color-well.html: * accessibility/container-node-delete-causes-crash.html: * accessibility/content-changed-notification-causes-crash.html: * accessibility/contenteditable-hidden-div.html: * accessibility/contenteditable-table-check-causes-crash.html: * accessibility/corresponding-control-deleted-crash.html: * accessibility/crash-adopt-node-from-new-document.html: * accessibility/crash-determining-aria-role-when-label-present.html: * accessibility/crash-with-noelement-selectbox.html: * accessibility/crashing-a-tag-in-map.html: * accessibility/deleting-iframe-destroys-axcache.html: * accessibility/disabled-controls-not-focusable.html: * accessibility/div-within-anchors-causes-crash.html: * accessibility/duplicate-axrenderobject-crash.html: * accessibility/duplicate-child-nodes.html: * accessibility/element-haspopup.html: * accessibility/ellipsis-text.html: * accessibility/empty-image-with-title.html: * accessibility/file-upload-button-with-axpress.html: * accessibility/first-letter-text-transform-causes-crash.html: * accessibility/focusable-div.html: * accessibility/global-aria-attributes-invalidate-presentational.html: * accessibility/hang-in-isignored.html: * accessibility/heading-level.html: * accessibility/heading-title-includes-links.html: * accessibility/hidden-legend.html: * accessibility/html-html-element-is-ignored.html: * accessibility/html5-required-attribute.html: * accessibility/iframe-bastardization.html: * accessibility/image-map-title-causes-crash.html: * accessibility/image-map-update-parent-crash.html: * accessibility/image-map1.html: * accessibility/img-alt-tag-only-whitespace.html: * accessibility/img-aria-button-alt-tag.html: * accessibility/img-fallsback-to-title.html: * accessibility/inline-continuations.html: * accessibility/input-file-causes-crash.html: * accessibility/input-image-alt.html: * accessibility/insert-selected-option-into-select-causes-crash.html: * accessibility/label-element-press.html: * accessibility/label-for-control-hittest.html: * accessibility/legend.html: * accessibility/link-inside-button-accessible-text.html: * accessibility/listbox-enabled-states.html: * accessibility/loading-iframe-sends-notification.html: * accessibility/loading-iframe-updates-axtree.html: * accessibility/media-controls.html: * accessibility/media-element.html: * accessibility/menu-item-crash.html: * accessibility/menu-list-sends-change-notification.html: * accessibility/meter-element.html: * accessibility/multiselect-list-reports-active-option.html: * accessibility/non-native-image-crash.html: * accessibility/noscript-ignored.html: * accessibility/notification-listeners.html: * accessibility/placeholder.html: * accessibility/platform-name.html: * accessibility/poorly-formed-aria-table.html: * accessibility/popup-button-title.html: * accessibility/presentational-elements-with-focus.html: * accessibility/press-works-on-control-types.html: * accessibility/radio-button-title-label.html: * accessibility/removed-anonymous-block-child-causes-crash.html: * accessibility/removed-continuation-element-causes-crash.html: * accessibility/render-counter-text.html: * accessibility/selection-states.html: * accessibility/spinbutton-value.html: * accessibility/svg-bounds.html: * accessibility/svg-group-element-with-title.html: * accessibility/svg-image.html: * accessibility/svg-remote-element.html: * accessibility/table-cell-for-column-and-row-crash.html: * accessibility/table-destroyed-crash.html: * accessibility/table-remove-cell-crash.html: * accessibility/table-with-empty-thead-causes-crash.html: * accessibility/table-with-hidden-head-section.html: * accessibility/table-with-mismatch-column-count-in-initial-section.html: * accessibility/text-role-with-aria-hidden-inside.html: * accessibility/textarea-insertion-point-line-number.html: * accessibility/textbox-role-reports-selection.html: * accessibility/title-ui-element-correctness.html: * accessibility/transformed-bounds.html: * accessibility/updating-attribute-in-table-causes-crash.html: * animations/animation-css-rule-types.html: * animations/animation-events-create.html: * animations/computed-style.html: * animations/keyframes-rule.html: * animations/script-tests/TEMPLATE.html: * batterystatus/add-listener-from-callback.html: * batterystatus/basic-all-types-of-events.html: * batterystatus/basic-operation.html: * batterystatus/event-after-navigation.html: * batterystatus/multiple-frames.html: * batterystatus/updates.html: * batterystatus/window-property.html: Canonical link: https://commits.webkit.org/138878@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@155274 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2013-09-08 01:18:24 +00:00
<script src="../resources/js-test-post.js"></script>
AX: Support embedded SVG objects in AX tree https://bugs.webkit.org/show_bug.cgi?id=97571 Reviewed by Tim Horton. Source/WebCore: This patch allows an SVG image from another resource to be hooked into the AX hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto its native parent image. The SVGChromeClient is then used to connect to this SVG resource. Test: accessibility/svg-remote-element.html * CMakeLists.txt: * GNUmakefile.list.am: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * accessibility/AXObjectCache.cpp: (WebCore::createFromRenderer): * accessibility/AccessibilityAllInOne.cpp: * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAccessibilitySVGRoot): (AccessibilityObject): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::detach): (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement): (WebCore::AccessibilityRenderObject::boundingBoxRect): (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest): (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest): (WebCore::AccessibilityRenderObject::determineAccessibilityRole): (WebCore::AccessibilityRenderObject::isSVGImage): (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot): (WebCore::AccessibilityRenderObject::remoteSVGRootElement): (WebCore::AccessibilityRenderObject::addRemoteSVGChildren): (WebCore::AccessibilityRenderObject::addChildren): * accessibility/AccessibilityRenderObject.h: (AccessibilityRenderObject): * accessibility/AccessibilitySVGRoot.cpp: Added. (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot): (WebCore::AccessibilitySVGRoot::create): (WebCore::AccessibilitySVGRoot::parentObject): * accessibility/AccessibilitySVGRoot.h: Added. (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element. (WebCore::AccessibilitySVGRoot::setParent): (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot): (WebCore::toAccessibilitySVGRoot): * accessibility/mac/WebAccessibilityObjectWrapper.mm: (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled in a special manner. (createAccessibilityRoleMap): * loader/EmptyClients.h: (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding the accessibility bounding rect of elements. (WebCore::EmptyChromeClient::isEmptyChromeClient): * page/ChromeClient.h: (WebCore::ChromeClient::isEmptyChromeClient): (ChromeClient): * svg/graphics/SVGImage.cpp: * svg/graphics/SVGImageChromeClient.h: Added. (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image. (WebCore::SVGImageChromeClient::SVGImageChromeClient): (WebCore::SVGImageChromeClient::isSVGImageChromeClient): (WebCore::SVGImageChromeClient::image): (WebCore::SVGImageChromeClient::chromeDestroyed): (WebCore::SVGImageChromeClient::invalidateContentsAndRootView): (WebCore::toSVGImageChromeClient): LayoutTests: Added a new test that links in an svg file. Accessibility of that remote svg file is tested. Test skipped on chromium until clickPoint() is implemented in DRT. * accessibility/svg-remote-element.html: Added. * accessibility/resources/svg-face.svg: Added. * platform/chromium/TestExpectations: * platform/mac/accessibility/svg-remote-element-expected.txt: Added. Canonical link: https://commits.webkit.org/118799@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@132915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-10-30 16:02:36 +00:00
</body>
</html>