1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/accessible/tests/mochitest/events/test_selection_aria.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,127 @@ 1.4 +<html> 1.5 + 1.6 +<head> 1.7 + <title>ARIA selection event testing</title> 1.8 + 1.9 + <link rel="stylesheet" type="text/css" 1.10 + href="chrome://mochikit/content/tests/SimpleTest/test.css" /> 1.11 + 1.12 + <script type="application/javascript" 1.13 + src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> 1.14 + <script type="application/javascript" 1.15 + src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script> 1.16 + 1.17 + <script type="application/javascript" 1.18 + src="../common.js"></script> 1.19 + <script type="application/javascript" 1.20 + src="../events.js"></script> 1.21 + <script type="application/javascript" 1.22 + src="../role.js"></script> 1.23 + <script type="application/javascript" 1.24 + src="../states.js"></script> 1.25 + 1.26 + <script type="application/javascript"> 1.27 + //////////////////////////////////////////////////////////////////////////// 1.28 + // Invokers 1.29 + 1.30 + function selectItem(aSelectID, aItemID) 1.31 + { 1.32 + this.selectNode = getNode(aSelectID); 1.33 + this.itemNode = getNode(aItemID); 1.34 + 1.35 + this.eventSeq = [ 1.36 + new invokerChecker(EVENT_SELECTION, aItemID) 1.37 + ]; 1.38 + 1.39 + this.invoke = function selectItem_invoke() { 1.40 + var itemNode = this.selectNode.querySelector("*[aria-selected='true']"); 1.41 + if (itemNode) 1.42 + itemNode.removeAttribute("aria-selected"); 1.43 + 1.44 + this.itemNode.setAttribute("aria-selected", "true"); 1.45 + } 1.46 + 1.47 + this.getID = function selectItem_getID() 1.48 + { 1.49 + return "select item " + prettyName(aItemID); 1.50 + } 1.51 + } 1.52 + 1.53 + //////////////////////////////////////////////////////////////////////////// 1.54 + // Do tests 1.55 + 1.56 + var gQueue = null; 1.57 + 1.58 + //gA11yEventDumpToConsole = true; // debug stuff 1.59 + 1.60 + function doTests() 1.61 + { 1.62 + gQueue = new eventQueue(); 1.63 + 1.64 + gQueue.push(new selectItem("tablist", "tab1")); 1.65 + gQueue.push(new selectItem("tablist", "tab2")); 1.66 + 1.67 + gQueue.push(new selectItem("tree", "treeitem1")); 1.68 + gQueue.push(new selectItem("tree", "treeitem1a")); 1.69 + gQueue.push(new selectItem("tree", "treeitem1a1")); 1.70 + 1.71 + gQueue.push(new selectItem("tree2", "tree2item1")); 1.72 + gQueue.push(new selectItem("tree2", "tree2item1a")); 1.73 + gQueue.push(new selectItem("tree2", "tree2item1a1")); 1.74 + 1.75 + gQueue.invoke(); // Will call SimpleTest.finish(); 1.76 + } 1.77 + 1.78 + SimpleTest.waitForExplicitFinish(); 1.79 + addA11yLoadEvent(doTests); 1.80 + </script> 1.81 +</head> 1.82 + 1.83 +<body> 1.84 + 1.85 + <a target="_blank" 1.86 + href="https://bugzilla.mozilla.org/show_bug.cgi?id=569653" 1.87 + title="Make selection events async"> 1.88 + Mozilla Bug 569653 1.89 + </a> 1.90 + <a target="_blank" 1.91 + href="https://bugzilla.mozilla.org/show_bug.cgi?id=804040" 1.92 + title="Selection event not fired when selection of ARIA tab changes"> 1.93 + Mozilla Bug 804040 1.94 + </a> 1.95 + 1.96 + <p id="display"></p> 1.97 + <div id="content" style="display: none"></div> 1.98 + <pre id="test"> 1.99 + </pre> 1.100 + 1.101 + <div role="tablist" id="tablist"> 1.102 + <div role="tab" id="tab1">tab1</div> 1.103 + <div role="tab" id="tab2">tab2</div> 1.104 + </div> 1.105 + 1.106 + <div id="tree" role="tree"> 1.107 + <div id="treeitem1" role="treeitem">Canada 1.108 + <div id="treeitem1a" role="treeitem">- Ontario 1.109 + <div id="treeitem1a1" role="treeitem">-- Toronto</div> 1.110 + </div> 1.111 + <div id="treeitem1b" role="treeitem">- Manitoba</div> 1.112 + </div> 1.113 + <div id="treeitem2" role="treeitem">Germany</div> 1.114 + <div id="treeitem3" role="treeitem">Russia</div> 1.115 + </div> 1.116 + 1.117 + <div id="tree2" role="tree" aria-multiselectable="true"> 1.118 + <div id="tree2item1" role="treeitem">Canada 1.119 + <div id="tree2item1a" role="treeitem">- Ontario 1.120 + <div id="tree2item1a1" role="treeitem">-- Toronto</div> 1.121 + </div> 1.122 + <div id="tree2item1b" role="treeitem">- Manitoba</div> 1.123 + </div> 1.124 + <div id="tree2item2" role="treeitem">Germany</div> 1.125 + <div id="tree2item3" role="treeitem">Russia</div> 1.126 + </div> 1.127 + 1.128 + <div id="eventdump"></div> 1.129 +</body> 1.130 +</html>