/** * Focus hyperlink invoker. * * @param aID [in] hyperlink identifier * @param aSelectedAfter [in] specifies if hyperlink is selected/focused after * the focus */ function focusLink(aID, aSelectedAfter) { this.node = getNode(aID); this.accessible = getAccessible(this.node); this.eventSeq = []; this.unexpectedEventSeq = []; var checker = new invokerChecker(EVENT_FOCUS, this.accessible); if (aSelectedAfter) this.eventSeq.push(checker); else this.unexpectedEventSeq.push(checker); this.invoke = function focusLink_invoke() { var expectedStates = (aSelectedAfter ? STATE_FOCUSABLE : 0); var unexpectedStates = (!aSelectedAfter ? STATE_FOCUSABLE : 0) | STATE_FOCUSED; testStates(aID, expectedStates, 0, unexpectedStates, 0); this.node.focus(); } this.finalCheck = function focusLink_finalCheck() { var expectedStates = (aSelectedAfter ? STATE_FOCUSABLE | STATE_FOCUSED : 0); var unexpectedStates = (!aSelectedAfter ? STATE_FOCUSABLE | STATE_FOCUSED : 0); testStates(aID, expectedStates, 0, unexpectedStates, 0); } this.getID = function focusLink_getID() { return "focus hyperlink " + prettyName(aID); } }