Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
type="text/css"?>
title="Accessibility Group Attributes ('level', 'setsize', 'posinset') Test.">
<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;">
<a target="_blank"
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"
title="take into account separators in xul menus when group attributes are calculating">
Mozilla Bug 443881
</a><br/>
<a target="_blank"
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>
<div role="menu">
<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"/>
</div>
</vbox>
</vbox>
</hbox>
</window>