haikuwebkit/LayoutTests/accessibility/presentation-role-iframe.html

72 lines
2.0 KiB
HTML
Raw Permalink Normal View History

AX: role="none" (or presentation) does not work on iframes https://bugs.webkit.org/show_bug.cgi?id=173930 <rdar://problem/33034347> Reviewed by Ryosuke Niwa. Source/WebCore: Support setting a presentational role on an iframe so that the AXWebArea disappears from the hierarchy. Accomplish this by adding children for attachment and scroll view elements the way other children are added. That is, only add the non-ignored children directly (which means move the addChild logic into AccessibilityObject.) Test: accessibility/presentation-role-iframe.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::AccessibilityNodeObject): (WebCore::AccessibilityNodeObject::insertChild): Deleted. (WebCore::AccessibilityNodeObject::addChild): Deleted. * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::AccessibilityObject): (WebCore::AccessibilityObject::insertChild): (WebCore::AccessibilityObject::addChild): (WebCore::nodeHasPresentationRole): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::addChild): Deleted. (WebCore::AccessibilityObject::insertChild): Deleted. * accessibility/AccessibilityRenderObject.cpp: (WebCore::webAreaIsPresentational): (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored): (WebCore::AccessibilityRenderObject::addAttachmentChildren): * accessibility/AccessibilityScrollView.cpp: (WebCore::AccessibilityScrollView::addChildren): LayoutTests: * accessibility/presentation-role-iframe-expected.txt: Added. * accessibility/presentation-role-iframe.html: Added. Canonical link: https://commits.webkit.org/190928@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219075 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-03 17:18:34 +00:00
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../resources/js-test.js"></script>
</head>
<body id="body">
<div id="content1" role="group">
<iframe onload="runTest(1)" id="iframe1" role='presentation' src="data:text/html,<body><button>Click me</button></body>"></iframe>
</div>
<div id="content2" role="group">
<iframe onload="runTest(2)" id="iframe2" src="data:text/html,<body><button>Click me</button></body>"></iframe>
</div>
<div id="content3" role="group">
<object type="text/html" onload="runTest(3)" role="none" id="object1" data="data:text/html,<body><div role='group'><button>Click me</button></div></body>"></object>
</div>
<p id="description"></p>
<div id="console"></div>
<script>
description("This tests that setting role=presentation on an iframe/object hides the AXWebArea.");
jsTestIsAsync = true;
var test1Ran = false;
var test2Ran = false;
var test3Ran = false;
var test1Log;
var test2Log;
var test3Log;
AX: role="none" (or presentation) does not work on iframes https://bugs.webkit.org/show_bug.cgi?id=173930 <rdar://problem/33034347> Reviewed by Ryosuke Niwa. Source/WebCore: Support setting a presentational role on an iframe so that the AXWebArea disappears from the hierarchy. Accomplish this by adding children for attachment and scroll view elements the way other children are added. That is, only add the non-ignored children directly (which means move the addChild logic into AccessibilityObject.) Test: accessibility/presentation-role-iframe.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::AccessibilityNodeObject): (WebCore::AccessibilityNodeObject::insertChild): Deleted. (WebCore::AccessibilityNodeObject::addChild): Deleted. * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::AccessibilityObject): (WebCore::AccessibilityObject::insertChild): (WebCore::AccessibilityObject::addChild): (WebCore::nodeHasPresentationRole): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::addChild): Deleted. (WebCore::AccessibilityObject::insertChild): Deleted. * accessibility/AccessibilityRenderObject.cpp: (WebCore::webAreaIsPresentational): (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored): (WebCore::AccessibilityRenderObject::addAttachmentChildren): * accessibility/AccessibilityScrollView.cpp: (WebCore::AccessibilityScrollView::addChildren): LayoutTests: * accessibility/presentation-role-iframe-expected.txt: Added. * accessibility/presentation-role-iframe.html: Added. Canonical link: https://commits.webkit.org/190928@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219075 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-03 17:18:34 +00:00
// Run the test for a iframe that has presentation role and one that does not.
// The children should be different.
function runTest(testNumber)
{
if (window.accessibilityController) {
var content = accessibilityController.accessibleElementById("content" + testNumber);
if (testNumber == 1) {
test1Ran = true;
test1Log = testLog(content, testNumber);
AX: role="none" (or presentation) does not work on iframes https://bugs.webkit.org/show_bug.cgi?id=173930 <rdar://problem/33034347> Reviewed by Ryosuke Niwa. Source/WebCore: Support setting a presentational role on an iframe so that the AXWebArea disappears from the hierarchy. Accomplish this by adding children for attachment and scroll view elements the way other children are added. That is, only add the non-ignored children directly (which means move the addChild logic into AccessibilityObject.) Test: accessibility/presentation-role-iframe.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::AccessibilityNodeObject): (WebCore::AccessibilityNodeObject::insertChild): Deleted. (WebCore::AccessibilityNodeObject::addChild): Deleted. * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::AccessibilityObject): (WebCore::AccessibilityObject::insertChild): (WebCore::AccessibilityObject::addChild): (WebCore::nodeHasPresentationRole): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::addChild): Deleted. (WebCore::AccessibilityObject::insertChild): Deleted. * accessibility/AccessibilityRenderObject.cpp: (WebCore::webAreaIsPresentational): (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored): (WebCore::AccessibilityRenderObject::addAttachmentChildren): * accessibility/AccessibilityScrollView.cpp: (WebCore::AccessibilityScrollView::addChildren): LayoutTests: * accessibility/presentation-role-iframe-expected.txt: Added. * accessibility/presentation-role-iframe.html: Added. Canonical link: https://commits.webkit.org/190928@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219075 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-03 17:18:34 +00:00
} else if (testNumber == 2) {
test2Ran = true;
test2Log = testLog(content, testNumber);
AX: role="none" (or presentation) does not work on iframes https://bugs.webkit.org/show_bug.cgi?id=173930 <rdar://problem/33034347> Reviewed by Ryosuke Niwa. Source/WebCore: Support setting a presentational role on an iframe so that the AXWebArea disappears from the hierarchy. Accomplish this by adding children for attachment and scroll view elements the way other children are added. That is, only add the non-ignored children directly (which means move the addChild logic into AccessibilityObject.) Test: accessibility/presentation-role-iframe.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::AccessibilityNodeObject): (WebCore::AccessibilityNodeObject::insertChild): Deleted. (WebCore::AccessibilityNodeObject::addChild): Deleted. * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::AccessibilityObject): (WebCore::AccessibilityObject::insertChild): (WebCore::AccessibilityObject::addChild): (WebCore::nodeHasPresentationRole): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::addChild): Deleted. (WebCore::AccessibilityObject::insertChild): Deleted. * accessibility/AccessibilityRenderObject.cpp: (WebCore::webAreaIsPresentational): (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored): (WebCore::AccessibilityRenderObject::addAttachmentChildren): * accessibility/AccessibilityScrollView.cpp: (WebCore::AccessibilityScrollView::addChildren): LayoutTests: * accessibility/presentation-role-iframe-expected.txt: Added. * accessibility/presentation-role-iframe.html: Added. Canonical link: https://commits.webkit.org/190928@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219075 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-03 17:18:34 +00:00
} else if (testNumber == 3) {
test3Ran = true;
test3Log = testLog(content, testNumber);
AX: role="none" (or presentation) does not work on iframes https://bugs.webkit.org/show_bug.cgi?id=173930 <rdar://problem/33034347> Reviewed by Ryosuke Niwa. Source/WebCore: Support setting a presentational role on an iframe so that the AXWebArea disappears from the hierarchy. Accomplish this by adding children for attachment and scroll view elements the way other children are added. That is, only add the non-ignored children directly (which means move the addChild logic into AccessibilityObject.) Test: accessibility/presentation-role-iframe.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::AccessibilityNodeObject): (WebCore::AccessibilityNodeObject::insertChild): Deleted. (WebCore::AccessibilityNodeObject::addChild): Deleted. * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::AccessibilityObject): (WebCore::AccessibilityObject::insertChild): (WebCore::AccessibilityObject::addChild): (WebCore::nodeHasPresentationRole): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::addChild): Deleted. (WebCore::AccessibilityObject::insertChild): Deleted. * accessibility/AccessibilityRenderObject.cpp: (WebCore::webAreaIsPresentational): (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored): (WebCore::AccessibilityRenderObject::addAttachmentChildren): * accessibility/AccessibilityScrollView.cpp: (WebCore::AccessibilityScrollView::addChildren): LayoutTests: * accessibility/presentation-role-iframe-expected.txt: Added. * accessibility/presentation-role-iframe.html: Added. Canonical link: https://commits.webkit.org/190928@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219075 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-03 17:18:34 +00:00
}
if (test3Ran && test2Ran && test1Ran) {
debug(test1Log);
debug(test2Log);
debug(test3Log);
AX: role="none" (or presentation) does not work on iframes https://bugs.webkit.org/show_bug.cgi?id=173930 <rdar://problem/33034347> Reviewed by Ryosuke Niwa. Source/WebCore: Support setting a presentational role on an iframe so that the AXWebArea disappears from the hierarchy. Accomplish this by adding children for attachment and scroll view elements the way other children are added. That is, only add the non-ignored children directly (which means move the addChild logic into AccessibilityObject.) Test: accessibility/presentation-role-iframe.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::AccessibilityNodeObject): (WebCore::AccessibilityNodeObject::insertChild): Deleted. (WebCore::AccessibilityNodeObject::addChild): Deleted. * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::AccessibilityObject): (WebCore::AccessibilityObject::insertChild): (WebCore::AccessibilityObject::addChild): (WebCore::nodeHasPresentationRole): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::addChild): Deleted. (WebCore::AccessibilityObject::insertChild): Deleted. * accessibility/AccessibilityRenderObject.cpp: (WebCore::webAreaIsPresentational): (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored): (WebCore::AccessibilityRenderObject::addAttachmentChildren): * accessibility/AccessibilityScrollView.cpp: (WebCore::AccessibilityScrollView::addChildren): LayoutTests: * accessibility/presentation-role-iframe-expected.txt: Added. * accessibility/presentation-role-iframe.html: Added. Canonical link: https://commits.webkit.org/190928@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219075 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-03 17:18:34 +00:00
finishJSTest();
}
}
}
function testLog(content, testNumber) {
var result = testNumber + ". Content child: " + content.childAtIndex(0).role;
result += "\n" + testNumber + ". Content grand child: " + content.childAtIndex(0).childAtIndex(0).role;
return result;
}
AX: role="none" (or presentation) does not work on iframes https://bugs.webkit.org/show_bug.cgi?id=173930 <rdar://problem/33034347> Reviewed by Ryosuke Niwa. Source/WebCore: Support setting a presentational role on an iframe so that the AXWebArea disappears from the hierarchy. Accomplish this by adding children for attachment and scroll view elements the way other children are added. That is, only add the non-ignored children directly (which means move the addChild logic into AccessibilityObject.) Test: accessibility/presentation-role-iframe.html * accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::AccessibilityNodeObject): (WebCore::AccessibilityNodeObject::insertChild): Deleted. (WebCore::AccessibilityNodeObject::addChild): Deleted. * accessibility/AccessibilityNodeObject.h: * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::AccessibilityObject): (WebCore::AccessibilityObject::insertChild): (WebCore::AccessibilityObject::addChild): (WebCore::nodeHasPresentationRole): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::addChild): Deleted. (WebCore::AccessibilityObject::insertChild): Deleted. * accessibility/AccessibilityRenderObject.cpp: (WebCore::webAreaIsPresentational): (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored): (WebCore::AccessibilityRenderObject::addAttachmentChildren): * accessibility/AccessibilityScrollView.cpp: (WebCore::AccessibilityScrollView::addChildren): LayoutTests: * accessibility/presentation-role-iframe-expected.txt: Added. * accessibility/presentation-role-iframe.html: Added. Canonical link: https://commits.webkit.org/190928@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219075 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-07-03 17:18:34 +00:00
</script>
</body>
</html>