<html> <head> <title>Accessible name change event 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="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script> <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"> //////////////////////////////////////////////////////////////////////////// // Invokers function setAttr(aID, aAttr, aValue, aChecker) { this.eventSeq = [ aChecker ]; this.invoke = function setAttr_invoke() { getNode(aID).setAttribute(aAttr, aValue); } this.getID = function setAttr_getID() { return "set attr '" + aAttr + "', value '" + aValue + "'"; } } /** * No name change on an accessible, because the accessible is recreated. */ function setAttr_recreate(aID, aAttr, aValue) { this.eventSeq = [ new invokerChecker(EVENT_HIDE, getAccessible(aID)), new invokerChecker(EVENT_SHOW, aID) ]; this.invoke = function setAttr_recreate_invoke() { todo(false, "No accessible recreation should happen, just name change event"); getNode(aID).setAttribute(aAttr, aValue); } this.getID = function setAttr_recreate_getID() { return "set attr '" + aAttr + "', value '" + aValue + "'"; } } //////////////////////////////////////////////////////////////////////////// // Do tests //gA11yEventDumpToConsole = true; // debuggin var gQueue = null; function doTests() { gQueue = new eventQueue(); gQueue.push(new setAttr("tst1", "aria-label", "hi", new invokerChecker(EVENT_NAME_CHANGE, "tst1"))); gQueue.push(new setAttr("tst1", "aria-labelledby", "display", new unexpectedInvokerChecker(EVENT_NAME_CHANGE, "tst1"))); gQueue.push(new setAttr("tst1", "alt", "alt", new unexpectedInvokerChecker(EVENT_NAME_CHANGE, "tst1"))); gQueue.push(new setAttr("tst1", "title", "title", new unexpectedInvokerChecker(EVENT_NAME_CHANGE, "tst1"))); gQueue.push(new setAttr("tst2", "aria-labelledby", "display", new invokerChecker(EVENT_NAME_CHANGE, "tst2"))); gQueue.push(new setAttr("tst2", "alt", "alt", new unexpectedInvokerChecker(EVENT_NAME_CHANGE, "tst2"))); gQueue.push(new setAttr("tst2", "title", "title", new unexpectedInvokerChecker(EVENT_NAME_CHANGE, "tst2"))); gQueue.push(new setAttr_recreate("tst3", "alt", "alt")); gQueue.push(new setAttr("tst3", "title", "title", new unexpectedInvokerChecker(EVENT_NAME_CHANGE, "tst3"))); gQueue.push(new setAttr("tst4", "title", "title", new invokerChecker(EVENT_NAME_CHANGE, "tst4"))); gQueue.invoke(); // Will call SimpleTest.finish(); } SimpleTest.waitForExplicitFinish(); addA11yLoadEvent(doTests); </script> </head> <body> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=991969" title="Event not fired when description changes"> Bug 991969 </a> <p id="display"></p> <div id="content" style="display: none"></div> <pre id="test"> </pre> <img id="tst1"> <img id="tst2"> <img id="tst3"> <img id="tst4"> <div id="eventdump"></div> </body> </html>