<html> <head> <title>nsIAccessible::takeFocus testing</title> <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" /> <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> <script type="application/javascript" src="../common.js"></script> <script type="application/javascript" src="../role.js"></script> <script type="application/javascript" src="../states.js"></script> <script type="application/javascript" src="../events.js"></script> <script type="application/javascript"> //////////////////////////////////////////////////////////////////////////// // Invokers function takeFocusInvoker(aID) { this.accessible = getAccessible(aID); this.eventSeq = [ new focusChecker(this.accessible) ]; this.invoke = function takeFocusInvoker_invoke() { this.accessible.takeFocus(); } this.getID = function takeFocusInvoker_getID() { return "takeFocus for " + prettyName(aID); } } //////////////////////////////////////////////////////////////////////////// // Test //gA11yEventDumpToConsole = true; // debug stuff var gQueue = null; function doTest() { disableLogging(); // from test_focusedChild gQueue = new eventQueue(); gQueue.push(new takeFocusInvoker("aria-link")); gQueue.push(new takeFocusInvoker("aria-link2")); gQueue.push(new takeFocusInvoker("link")); gQueue.push(new takeFocusInvoker("item2")); gQueue.push(new takeFocusInvoker("plugin")); gQueue.push(new takeFocusInvoker(document)); gQueue.push(new takeFocusInvoker("lb_item2")); gQueue.push(new takeFocusInvoker(document)); gQueue.push(new takeFocusInvoker("lb_item3.2")); gQueue.push(new takeFocusInvoker(document)); gQueue.push(new takeFocusInvoker("lb_item3.1")); gQueue.invoke(); // Will call SimpleTest.finish(); } function waitForPlugin() { window.setTimeout((isAccessible("plugin") ? doTest : waitForPlugin), 0); } SimpleTest.waitForExplicitFinish(); setTestPluginEnabledState(SpecialPowers.Ci.nsIPluginTag.STATE_ENABLED); addA11yLoadEvent(waitForPlugin); </script> </head> <body> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=429547" title="Support aria-activedescendant usage in nsIAccesible::TakeFocus()"> Mozilla Bug 429547 </a> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=452710" title="nsIAccessible::takeFocus testing"> Mozilla Bug 452710 </a> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=646361" title="No focus event fired on document when focus is set to the document while focused in a plugin"> Mozilla Bug 646361 </a> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=706067" title="Make takeFocus work on widget items"> Mozilla Bug 706067 </a> <p id="display"></p> <div id="content" style="display: none"></div> <pre id="test"> </pre> <span id="aria-link" role="link" tabindex="0">link</span> <span id="aria-link2" role="link" tabindex="0">link</span> <a id="link" href="">link</a> <div role="listbox" aria-activedescendant="item1" id="container" tabindex="1"> <div role="option" id="item1">item1</div> <div role="option" id="item2">item2</div> <div role="option" id="item3">item3</div> </div> <embed id="plugin" type="application/x-test" width="200" height="200" wmode="window"></embed> <select id="listbox" size="5"> <option id="lb_item1">item1</option> <option id="lb_item2">item2</option> <optgroup> <option id="lb_item3.1">item 3.1</option> <option id="lb_item3.2">item 3.2</option> </optgroup> </select> </body> </html>