Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<html>
<head>
<title>Accessible document focus event testing</title>
<link rel="stylesheet" type="text/css"
<script type="application/javascript"
src="../common.js"></script>
<script type="application/javascript"
src="../events.js"></script>
<script type="application/javascript"
src="../role.js"></script>
<script type="application/javascript"
src="../states.js"></script>
<script type="application/javascript">
var gQueue = null;
// var gA11yEventDumpID = "eventdump";
// gA11yEventDumpToConsole = true;
function doTests() {
// setup
var frameDoc = document.getElementById("iframe").contentDocument;
frameDoc.designMode = "on";
var frameDocAcc = getAccessible(frameDoc, [nsIAccessibleDocument]);
var buttonAcc = getAccessible("b1");
var frame2Doc = document.getElementById("iframe2").contentDocument;
var frame2Input = frame2Doc.getElementById("input");
var frame2DocAcc = getAccessible(frame2Doc);
var frame2InputAcc = getAccessible(frame2Input);
// Test focus events.
gQueue = new eventQueue();
// try to give focus to contentEditable frame twice to cover bug 512059
gQueue.push(new synthFocus(buttonAcc));
gQueue.push(new synthTab(frameDocAcc, new focusChecker(frameDocAcc)));
gQueue.push(new synthFocus(buttonAcc));
gQueue.push(new synthTab(frameDocAcc, new focusChecker(frameDocAcc)));
// focus on not editable document
gQueue.push(new synthFocus(frame2InputAcc));
var canTabMoveFocusToRootElement =
!SpecialPowers.getBoolPref("dom.disable_tab_focus_to_root_element");
if (canTabMoveFocusToRootElement) {
// Moves the focus to the root element
gQueue.push(new synthShiftTab(frame2DocAcc, new focusChecker(frame2DocAcc)));
} else {
// Skips the root element, so the focus got moved to buttonAcc2.
var buttonAcc2 = getAccessible("b2");
gQueue.push(new synthShiftTab(buttonAcc2, new focusChecker(buttonAcc2)));
}
gQueue.invoke(); // Will call SimpleTest.finish();
}
SimpleTest.waitForExplicitFinish();
addA11yLoadEvent(doTests);
</script>
</head>
<body>
<a target="_blank"
title="Can't set focus to designMode document via accessibility APIs">
Mozilla Bug 512058
</a>
<a target="_blank"
title="Accessibility focus event never fired for designMode document after the first focus">
Mozilla Bug 512059
</a>
<a target="_blank"
title="No focus change event when Shift+Tab at top of screen">
Mozilla Bug 618046
</a>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test">
</pre>
<div id="eventdump"></div>
<div id="testContainer">
<button id="b1">a button</button>
<iframe id="iframe" src="about:blank"></iframe>
<button id="b2">a button</button>
<iframe id="iframe2" src="data:text/html,<html><input id='input'></html>"></iframe>
</div>
</body>
</html>