<html> <head> <title>Accessible ARIA object attribute changes</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="../attributes.js"></script> <script type="application/javascript" src="../events.js"></script> <script type="application/javascript"> /** * Do tests. */ var gQueue = null; function updateAttribute(aID, aAttr, aValue) { this.node = getNode(aID); this.accessible = getAccessible(this.node); this.eventSeq = [ new objAttrChangedChecker(aID, aAttr), ]; this.invoke = function updateAttribute_invoke() { this.node.setAttribute(aAttr, aValue); }; this.getID = function updateAttribute_getID() { return aAttr + " for " + aID + " " + aValue; }; } function updateARIAHidden(aID, aIsDefined, aChildId) { this.__proto__ = new updateAttribute(aID, "aria-hidden", aIsDefined ? "true" : "false"); this.finalCheck = function updateARIAHidden() { if (aIsDefined) { testAttrs(aID, {"hidden" : "true"}, true); testAttrs(aChildId, {"hidden" : "true"}, true); } else { testAbsentAttrs(aID, { "hidden": "true"}); testAbsentAttrs(aChildId, { "hidden": "true"}); } } } // Debug stuff. // gA11yEventDumpID = "eventdump"; //gA11yEventDumpToConsole = true; function doTests() { gQueue = new eventQueue(); gQueue.push(new updateARIAHidden("hideable", true, "hideable_child")); gQueue.push(new updateARIAHidden("hideable", false, "hideable_child")); gQueue.push(new updateAttribute("sortable", "aria-sort", "ascending")); // For experimental ARIA extensions gQueue.push(new updateAttribute("custom", "aria-blah", "true")); 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=581096" title="Add support for aria-hidden"> Mozilla Bug 581096 </a> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=640707" title="Add event support for aria-sort"> Mozilla Bug 640707 </a> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=640707" title="Expand support for aria attribute change events"> Mozilla Bug 563862 </a> <p id="display"></p> <div id="content" style="display: none"></div> <pre id="test"> </pre> <div id="eventdump"></div> <div id="hideable"><div id="hideable_child">Hi</div><div>there</div></div> <div id="sortable" role="columnheader" aria-sort="none">aria-sort</div> <div id="custom" role="custom" aria-blah="false">Fat free cheese</div> </body> </html>