blob: d3a9bcb1ade5df0c6197171a81f667972d8f8fb4 [file] [log] [blame]
<!DOCTYPE HTML>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<style>
#outer {
width: 400px;
height: 200px;
background-color: #99f;
padding: 30px;
}
</style>
<div id="outer">
<div id="shadowHost" aria-label="Don't ignore me">
This content goes inside inner.
</div>
<p>
This element totally obscures "inner", but it's still possible to context-click
on "inner" using accessibiltiy APIs.
</p>
</div>
<div id="inner" aria-label="Don't ignore me either">
<style>
#inner_wrap {
position: relative;
left: 50px;
top: 50px;
width: 300px;
height: 100px;
background-color: #f99;
z-index: -1;
}
</style>
<div id="inner_wrap">
<p>Before the content.</p>
<p id="target"><content></content></p>
<p>After the content.</p>
</div>
</div>
<script>
var target = document.getElementById('target');
var shadowHost = document.getElementById('shadowHost');
var shadowRoot = shadowHost.createShadowRoot();
shadowRoot.appendChild(document.getElementById('inner'));
async_test(function(t)
{
target.addEventListener('contextmenu', function() {
document.getElementById("outer").style.display = "none";
t.done();
}, false);
if (window.accessibilityController) {
var axTarget = accessibilityController.accessibleElementById("target");
axTargetText = axTarget.childAtIndex(0);
assert_equals(axTargetText.role, 'AXRole: AXStaticText');
assert_equals(axTargetText.stringValue, 'AXValue: This content goes inside inner.');
axTargetText.showMenu();
}
}, "can use accessibility to show context menu on element that's obscured behind another");
</script>