4 <title>nsIAccessible::takeFocus testing
</title>
6 <link rel=
"stylesheet" type=
"text/css"
7 href=
"chrome://mochikit/content/tests/SimpleTest/test.css" />
9 <script type=
"application/javascript"
10 src=
"chrome://mochikit/content/MochiKit/packed.js"></script>
11 <script type=
"application/javascript"
12 src=
"chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
13 <script type=
"application/javascript"
14 src=
"chrome://mochikit/content/a11y/accessible/common.js"></script>
16 <script type=
"application/javascript">
17 ////////////////////////////////////////////////////////////////////////////
24 var linkAcc = getAccessible(ID);
26 gFocusManager.listenElement(linkAcc, ID, doTest2);
32 // focus first child of ARIA link
33 var ID =
"aria-link2";
34 var linkAcc = getAccessible(ID);
36 gFocusManager.listenElement(linkAcc, ID, doTest3);
37 linkAcc.firstChild.takeFocus();
44 var linkAcc = getAccessible(ID);
46 gFocusManager.listenElement(linkAcc, ID, finishTest);
55 SimpleTest.waitForExplicitFinish();
58 ////////////////////////////////////////////////////////////////////////////
64 listenElement: function listenElement(aAccOrID, aPrettyName, aCallback)
66 registerA11yEventListener(nsIAccessibleEvent.EVENT_FOCUS, this);
69 this.mAcc = getAccessible(aAccOrID, null, elmObj);
70 this.mElm = elmObj.value;
71 this.mName = aPrettyName ? aPrettyName : aAccOrID;
72 this.mCallback = aCallback;
77 aFocusMgr.checkWasFocusHandled();
82 handleEvent: function handleEvent(aAccEvent)
84 var node = aAccEvent.DOMNode;
85 if (node == this.mElm)
86 this.mIsFocusHandled = true;
89 checkWasFocusHandled: function checkWasFocusHandled()
94 unregisterA11yEventListener(nsIAccessibleEvent.EVENT_FOCUS, this);
96 ok(aFocusMgr.mIsFocusHandled,
97 "Focus wasn't recieved for element with ID " + aFocusMgr.mName +
".");
99 var states = {}, extraStates = {};
100 aFocusMgr.mAcc.getState(states, extraStates);
101 // XXX see bug
455840. Only fails on aria-link, the other two are OK.
102 // When fixing this bug, remove the if statement and else block and
"todo" statement.
103 if (states.value & nsIAccessibleStates.STATE_FOCUSED)
104 ok(states.value & nsIAccessibleStates.STATE_FOCUSED,
105 "No focused state for element with ID " + aFocusMgr.mName +
".");
107 todo(states.value & nsIAccessibleStates.STATE_FOCUSED,
108 "No focused state for element with ID " + aFocusMgr.mName +
".");
110 aFocusMgr.mCallback();
117 mIsFocusHandled: false
125 href=
"https://bugzilla.mozilla.org/show_bug.cgi?id=452710"
126 title=
"nsIAccessible::takeFocus testing">
130 <div id=
"content" style=
"display: none"></div>
134 <span id=
"aria-link" role=
"link" tabindex=
"0">link
</span>
135 <span id=
"aria-link2" role=
"link" tabindex=
"0">link
</span>
137 <a id=
"link" href=
"">link
</span>