mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-14 15:37:55 +00:00
181 lines
5.7 KiB
HTML
181 lines
5.7 KiB
HTML
<html>
|
|
|
|
<head>
|
|
<title>HTML selects accessible states tests</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="../role.js"></script>
|
|
<script type="application/javascript"
|
|
src="../states.js"></script>
|
|
<script type="application/javascript"
|
|
src="../events.js"></script>
|
|
|
|
<script type="application/javascript">
|
|
function openComboboxNCheckStates(aID)
|
|
{
|
|
this.combobox = getAccessible(aID);
|
|
this.comboboxList = this.combobox.firstChild;
|
|
this.comboboxOption = this.comboboxList.firstChild;
|
|
|
|
this.eventSeq = [
|
|
new invokerChecker(EVENT_FOCUS, this.comboboxOption)
|
|
];
|
|
|
|
this.invoke = function openComboboxNCheckStates_invoke()
|
|
{
|
|
getNode(aID).focus();
|
|
synthesizeKey("VK_DOWN", { altKey: true });
|
|
}
|
|
|
|
this.finalCheck = function openComboboxNCheckStates_invoke()
|
|
{
|
|
// Expanded state on combobox.
|
|
testStates(this.combobox, STATE_EXPANDED);
|
|
|
|
// Floating state on combobox list.
|
|
testStates(this.comboboxList, STATE_FLOATING);
|
|
}
|
|
|
|
this.getID = function openComboboxNCheckStates_getID()
|
|
{
|
|
return "open combobox and test states";
|
|
}
|
|
}
|
|
|
|
//gA11yEventDumpToConsole = true;
|
|
|
|
var gQueue = null;
|
|
function doTest()
|
|
{
|
|
// combobox
|
|
var combobox = getAccessible("combobox");
|
|
testStates(combobox,
|
|
STATE_HASPOPUP | STATE_COLLAPSED | STATE_FOCUSABLE, 0,
|
|
STATE_FOCUSED, 0);
|
|
|
|
var comboboxList = combobox.firstChild;
|
|
testStates(comboboxList, STATE_INVISIBLE, 0, STATE_FOCUSABLE, 0);
|
|
|
|
var opt1 = comboboxList.firstChild;
|
|
testStates(opt1, STATE_SELECTABLE | STATE_SELECTED | STATE_FOCUSABLE,
|
|
EXT_STATE_ACTIVE, STATE_FOCUSED, 0);
|
|
|
|
var opt2 = comboboxList.lastChild;
|
|
testStates(opt2, STATE_SELECTABLE | STATE_FOCUSABLE, 0, STATE_SELECTED, 0,
|
|
STATE_FOCUSED, EXT_STATE_ACTIVE);
|
|
|
|
// listbox
|
|
testStates("listbox",
|
|
STATE_FOCUSABLE, 0,
|
|
STATE_HASPOPUP | STATE_COLLAPSED | STATE_FOCUSED);
|
|
|
|
testStates("listitem-active",
|
|
STATE_FOCUSABLE | STATE_SELECTABLE, EXT_STATE_ACTIVE,
|
|
STATE_SELECTED | STATE_FOCUSED);
|
|
|
|
testStates("listitem",
|
|
STATE_FOCUSABLE | STATE_SELECTABLE, 0,
|
|
STATE_SELECTED | STATE_FOCUSED, EXT_STATE_ACTIVE);
|
|
|
|
testStates("listitem-disabled",
|
|
STATE_UNAVAILABLE, 0,
|
|
STATE_SELECTABLE | STATE_SELECTED | STATE_FOCUSABLE,
|
|
EXT_STATE_ACTIVE);
|
|
|
|
testStates("listgroup",
|
|
0, 0,
|
|
STATE_UNAVAILABLE | STATE_SELECTABLE | STATE_SELECTED | STATE_FOCUSABLE,
|
|
EXT_STATE_ACTIVE);
|
|
|
|
testStates("listgroup-disabled",
|
|
STATE_UNAVAILABLE, 0,
|
|
STATE_SELECTABLE | STATE_SELECTED | STATE_FOCUSABLE,
|
|
EXT_STATE_ACTIVE);
|
|
|
|
todo(false, "no unavailable state on option in disabled group (bug 759666)");
|
|
// testStates("listitem-disabledgroup",
|
|
// STATE_UNAVAILABLE, 0,
|
|
// STATE_SELECTABLE | STATE_SELECTED | STATE_FOCUSABLE,
|
|
// EXT_STATE_ACTIVE);
|
|
|
|
testStates("listbox-disabled",
|
|
STATE_UNAVAILABLE, 0,
|
|
STATE_FOCUSABLE);
|
|
|
|
todo(false, "no unavailable state on option in disabled select (bug 759666)");
|
|
// testStates("listitem-disabledlistbox",
|
|
// STATE_UNAVAILABLE, 0,
|
|
// STATE_SELECTABLE | STATE_SELECTED | STATE_FOCUSABLE,
|
|
// EXT_STATE_ACTIVE);
|
|
|
|
// open combobox
|
|
gQueue = new eventQueue();
|
|
gQueue.push(new openComboboxNCheckStates("combobox"));
|
|
gQueue.invoke(); // Will call */SimpleTest.finish();
|
|
}
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
addA11yLoadEvent(doTest);
|
|
</script>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
<a target="_blank"
|
|
href="https://bugzilla.mozilla.org/show_bug.cgi?id=443889"
|
|
title="mochitest for selects and lists">
|
|
Mozilla Bug 443889
|
|
</a>
|
|
<a target="_blank"
|
|
href="https://bugzilla.mozilla.org/show_bug.cgi?id=640716"
|
|
title="mochitest for selects and lists">
|
|
Mozilla Bug 640716
|
|
</a>
|
|
<a target="_blank"
|
|
href="https://bugzilla.mozilla.org/show_bug.cgi?id=689847"
|
|
title="Expose active state on current item of selectable widgets">
|
|
Mozilla Bug 689847
|
|
</a>
|
|
<a target="_blank"
|
|
href="https://bugzilla.mozilla.org/show_bug.cgi?id=756983"
|
|
title="Isolate focusable and unavailable states from State()">
|
|
Mozilla Bug 756983
|
|
</a>
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none"></div>
|
|
<pre id="test">
|
|
</pre>
|
|
|
|
<select id="combobox">
|
|
<option>item 1</option>
|
|
<option>item 2</option>
|
|
</select>
|
|
|
|
<select id="listbox" name="component" size="3">
|
|
<option id="listitem-active">Build</option>
|
|
<option id="listitem">Disability Access APIs</option>
|
|
<option id="listitem-disabled" disabled>General</option>
|
|
<optgroup id="listgroup" label="group">
|
|
<option>option</option>
|
|
</optgroup>
|
|
<optgroup id="listgroup-disabled" disabled label="group2">
|
|
<option id="listitem-disabledgroup">UI</option>
|
|
</optgroup>
|
|
</select>
|
|
|
|
<select id="listbox-disabled" size="3" disabled>
|
|
<option id="listitem-disabledlistbox">option</option>
|
|
</select>
|
|
|
|
</body>
|
|
</html>
|