<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin" type="text/css"?> <?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" title="Accessibility Group Attributes ('level', 'setsize', 'posinset') Test."> <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" /> <script type="application/javascript" src="../common.js" /> <script type="application/javascript" src="../events.js" /> <script type="application/javascript" src="../attributes.js" /> <script type="application/javascript"> <![CDATA[ function openMenu(aID) { this.menuNode = getNode(aID); this.eventSeq = [ new invokerChecker(EVENT_FOCUS, this.menuNode) ]; this.invoke = function openMenu_invoke() { this.menuNode.open = true; } this.finalCheck = function openMenu_finalCheck() { testGroupAttrs("menu_item1.1", 1, 1); testGroupAttrs("menu_item1.2", 1, 3); testGroupAttrs("menu_item1.4", 2, 3); testGroupAttrs("menu_item2", 3, 3); } this.getID = function openMenu_getID() { return "open menu " + prettyName(aID); } } function openSubMenu(aID) { this.menuNode = getNode(aID); this.eventSeq = [ new invokerChecker(EVENT_FOCUS, this.menuNode) ]; this.invoke = function openSubMenu_invoke() { this.menuNode.open = true; } this.finalCheck = function openSubMenu_finalCheck() { testGroupAttrs("menu_item2.1", 1, 2, 1); testGroupAttrs("menu_item2.2", 2, 2, 1); } this.getID = function openSubMenu_getID() { return "open submenu " + prettyName(aID); } } //gA11yEventDumpToConsole = true; // debug stuff var gQueue = null; function doTest() { ////////////////////////////////////////////////////////////////////////// // xul:listbox (bug 417317) testGroupAttrs("listitem1", 1, 4); testGroupAttrs("listitem2", 2, 4); testGroupAttrs("listitem3", 3, 4); testGroupAttrs("listitem4", 4, 4); ////////////////////////////////////////////////////////////////////////// // xul:tab testGroupAttrs("tab1", 1, 2); testGroupAttrs("tab2", 2, 2); ////////////////////////////////////////////////////////////////////////// // xul:radio testGroupAttrs("radio1", 1, 2); testGroupAttrs("radio2", 2, 2); ////////////////////////////////////////////////////////////////////////// // xul:menulist testGroupAttrs("menulist1.1", 1); testGroupAttrs("menulist1.2", 2); testGroupAttrs("menulist1.3", 3); testGroupAttrs("menulist1.4", 4); ////////////////////////////////////////////////////////////////////////// // ARIA menu (bug 441888) testGroupAttrs("aria-menuitem", 1, 3); testGroupAttrs("aria-menuitemcheckbox", 2, 3); testGroupAttrs("aria-menuitemradio", 3, 3); testGroupAttrs("aria-menuitem2", 1, 1); ////////////////////////////////////////////////////////////////////////// // xul:menu (bug 443881) gQueue = new eventQueue(); gQueue.push(new openMenu("menu_item1")); gQueue.push(new openSubMenu("menu_item2")); gQueue.invoke(); // SimpleTest.finish(); } SimpleTest.waitForExplicitFinish(); addA11yLoadEvent(doTest); ]]> </script> <hbox flex="1" style="overflow: auto;"> <body xmlns="http://www.w3.org/1999/xhtml"> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=417317" title="Certain types of LISTITEM accessibles no longer get attributes set like 'x of y', regression from fix for bug 389926"> Mozilla Bug 417317 </a><br/> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=443881" title="take into account separators in xul menus when group attributes are calculating"> Mozilla Bug 443881 </a><br/> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=441888" title="ARIA checked menu items are not included in the total list of menu items"> Mozilla Bug 441888 </a><br/> <p id="display"></p> <div id="content" style="display: none"> </div> <pre id="test"> </pre> </body> <vbox flex="1"> <richlistbox> <richlistitem id="listitem1"/> <richlistitem id="listitem2"><label value="listitem2"/></richlistitem> <richlistitem id="listitem3"/> <richlistitem id="listitem4"><label value="listitem4"/></richlistitem> </richlistbox> <menubar> <menu label="item1" id="menu_item1"> <menupopup> <menuitem label="item1.1" id="menu_item1.1"/> <menuseparator/> <menuitem label="item1.2" id="menu_item1.2"/> <menuitem label="item1.3" hidden="true"/> <menuitem label="item1.4" id="menu_item1.4"/> <menu label="item2" id="menu_item2"> <menupopup> <menuitem label="item2.1" id="menu_item2.1"/> <menuitem label="item2.2" id="menu_item2.2"/> </menupopup> </menu> </menupopup> </menu> </menubar> <tabbox> <tabs> <tab id="tab1" label="tab1"/> <tab id="tab2" label="tab3"/> </tabs> <tabpanels> <tabpanel/> <tabpanel/> </tabpanels> </tabbox> <radiogroup> <radio id="radio1" label="radio1"/> <radio id="radio2" label="radio2"/> </radiogroup> <menulist id="menulist1" label="Vehicle"> <menupopup> <menuitem id="menulist1.1" label="Car"/> <menuitem id="menulist1.2" label="Taxi"/> <menuitem id="menulist1.3" label="Bus" selected="true"/> <menuitem id="menulist1.4" label="Train"/> </menupopup> </menulist> <vbox> <description role="menuitem" id="aria-menuitem" value="conventional menuitem"/> <description role="menuitemcheckbox" id="aria-menuitemcheckbox" value="conventional checkbox menuitem"/> <description role="menuitem" hidden="true"/> <description role="menuitemradio" id="aria-menuitemradio" value="conventional radio menuitem"/> <description role="separator" value="conventional separator"/> <description role="menuitem" id="aria-menuitem2" value="conventional menuitem"/> </vbox> </vbox> </hbox> </window>