mirror of
https://github.com/roytam1/palemoon26.git
synced 2026-05-26 13:58:38 +00:00
8d816ab963
bug886205, bug870103, bug886611, bug886241, bug878142, bug857334, bug886128, bug885596, bug887068, bug868302, bug886575, bug809969, bug860782, bug886285, bug848592, bug877748, bug886647, bug879079, bug886827, bug884648, bug866638, bug885463, bug826124, bug844805, bug886551, bug884407, bug884369, bug887002, bug886632, 572efc8fea86, bug886230, bug886689, bug884124
246 lines
10 KiB
HTML
246 lines
10 KiB
HTML
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=475006
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=391829
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=581952
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=558036
|
|
-->
|
|
<head>
|
|
<title>Group attributes 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="../common.js"></script>
|
|
<script type="application/javascript"
|
|
src="../attributes.js"></script>
|
|
|
|
<script type="application/javascript">
|
|
function doTest()
|
|
{
|
|
// aria
|
|
testAttrs("atomic", {"atomic" : "true", "container-atomic" : "true"}, true);
|
|
testAttrs(getNode("atomic").firstChild, {"container-atomic" : "true"}, true);
|
|
testAbsentAttrs("atomic_false", {"atomic" : "false", "container-atomic" : "false"});
|
|
testAbsentAttrs(getNode("atomic_false").firstChild, {"container-atomic" : "false"});
|
|
|
|
testAttrs("autocomplete", {"autocomplete" : "true"}, true);
|
|
testAttrs("checkbox", {"checkable" : "true"}, true);
|
|
testAttrs("checkedCheckbox", {"checkable" : "true"}, true);
|
|
testAttrs("checkedMenuitem", {"checkable" : "true"}, true);
|
|
testAttrs("checkedOption", {"checkable" : "true"}, true);
|
|
testAttrs("checkedRadio", {"checkable" : "true"}, true);
|
|
testAttrs("checkedTreeitem", {"checkable" : "true"}, true);
|
|
testAttrs("dropeffect", {"dropeffect" : "copy"}, true);
|
|
testAttrs("grabbed", {"grabbed" : "true"}, true);
|
|
testAttrs("hidden", {"hidden" : "true"}, true);
|
|
testAbsentAttrs("hidden_false", { "hidden": "false" });
|
|
testAttrs("sortAscending", {"sort" : "ascending"}, true);
|
|
testAttrs("sortDescending", {"sort" : "descending"}, true);
|
|
testAttrs("sortNone", {"sort" : "none"}, true);
|
|
testAttrs("sortOther", {"sort" : "other"}, true);
|
|
|
|
// inherited attributes by subdocuments
|
|
var subdoc = getAccessible("iframe").firstChild;
|
|
testAttrs(subdoc, {"busy" : "true"}, true);
|
|
|
|
// live object attribute
|
|
|
|
// HTML
|
|
testAttrs("output", {"live" : "polite"}, true);
|
|
|
|
// ARIA
|
|
testAttrs("live", {"live" : "polite"}, true);
|
|
testAttrs("live2", {"live" : "polite"}, true);
|
|
testAbsentAttrs("live3", {"live" : ""});
|
|
testAttrs("log", {"live" : "polite"}, true);
|
|
testAttrs("logAssertive", {"live" : "assertive"}, true);
|
|
testAttrs("marquee", {"live" : "off"}, true);
|
|
testAttrs("status", {"live" : "polite"}, true);
|
|
testAttrs("tablist", {"live" : "polite"}, true);
|
|
testAttrs("timer", {"live" : "off"}, true);
|
|
|
|
// container-live object attribute
|
|
testAttrs("liveChild", {"container-live" : "polite"}, true);
|
|
testAttrs("live2Child", {"container-live" : "polite"}, true);
|
|
testAttrs("logChild", {"container-live" : "polite"}, true);
|
|
testAttrs("logAssertiveChild", {"container-live" : "assertive"}, true);
|
|
testAttrs("marqueeChild", {"container-live" : "off"}, true);
|
|
testAttrs("statusChild", {"container-live" : "polite"}, true);
|
|
testAttrs("tablistChild", {"container-live" : "polite"}, true);
|
|
testAttrs("timerChild", {"container-live" : "off"}, true);
|
|
|
|
// container-live-role object attribute
|
|
testAttrs("log", {"container-live-role" : "log"}, true);
|
|
testAttrs("logAssertive", {"container-live-role" : "log"}, true);
|
|
testAttrs("marquee", {"container-live-role" : "marquee"}, true);
|
|
testAttrs("status", {"container-live-role" : "status"}, true);
|
|
testAttrs("timer", {"container-live-role" : "timer"}, true);
|
|
testAttrs("logChild", {"container-live-role" : "log"}, true);
|
|
testAttrs("logAssertive", {"container-live-role" : "log"}, true);
|
|
testAttrs("logAssertiveChild", {"container-live-role" : "log"}, true);
|
|
testAttrs("marqueeChild", {"container-live-role" : "marquee"}, true);
|
|
testAttrs("statusChild", {"container-live-role" : "status"}, true);
|
|
testAttrs("tablistChild", {"container-live-role" : "tablist"}, true);
|
|
testAttrs("timerChild", {"container-live-role" : "timer"}, true);
|
|
|
|
// absent aria-label and aria-labelledby object attribute
|
|
testAbsentAttrs("label", {"label" : "foo"});
|
|
testAbsentAttrs("labelledby", {"labelledby" : "label"});
|
|
|
|
// container that has no default live attribute
|
|
testAttrs("liveGroup", {"live" : "polite"}, true);
|
|
testAttrs("liveGroupChild", {"container-live" : "polite"}, true);
|
|
testAttrs("liveGroup", {"container-live-role" : "group"}, true);
|
|
testAttrs("liveGroupChild", {"container-live-role" : "group"}, true);
|
|
|
|
// html
|
|
testAttrs("radio", {"checkable" : "true"}, true);
|
|
testAttrs("checkbox", {"checkable" : "true"}, true);
|
|
testAttrs("draggable", {"draggable" : "true"}, true);
|
|
testAttrs("th1", { "abbr": "SS#" }, true);
|
|
testAttrs("th2", { "abbr": "SS#" }, true);
|
|
testAttrs("th2", { "axis": "social" }, true);
|
|
|
|
// don't barf on an empty abbr element.
|
|
testAbsentAttrs("th3", { "abbr": "" }, true);
|
|
|
|
// application accessible
|
|
if (WIN) {
|
|
var gfxInfo = Components.classes["@mozilla.org/gfx/info;1"].
|
|
getService(Components.interfaces.nsIGfxInfo);
|
|
var attrs = {
|
|
"D2D": (gfxInfo.D2DEnabled ? "true" : "false")
|
|
}
|
|
testAttrs(getApplicationAccessible(), attrs, false);
|
|
}
|
|
|
|
// no object attributes
|
|
testAbsentAttrs(getAccessible("listitem").firstChild, { "tag": "" });
|
|
|
|
// experimental aria
|
|
testAttrs("experimental", {"blah" : "true"}, true);
|
|
|
|
SimpleTest.finish();
|
|
}
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
addA11yLoadEvent(doTest);
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<a target="_blank"
|
|
href="https://bugzilla.mozilla.org/show_bug.cgi?id=475006"
|
|
title="Extend nsARIAMap to capture ARIA attribute characteristics">
|
|
Mozilla Bug 475006
|
|
</a>
|
|
<a target="_blank"
|
|
href="https://bugzilla.mozilla.org/show_bug.cgi?id=391829"
|
|
title="Add support for container-live-role to object attributes">
|
|
Mozilla Bug 391829
|
|
</a>
|
|
<a target="_blank"
|
|
href="https://bugzilla.mozilla.org/show_bug.cgi?id=581952"
|
|
title="Make explicit that aria-label is not an object attribute">
|
|
Mozilla Bug 475006
|
|
</a>
|
|
<a target="_blank"
|
|
href="https://bugzilla.mozilla.org/show_bug.cgi?id=558036"
|
|
title="make HTML <output> accessible">
|
|
Mozilla Bug 558036
|
|
</a>
|
|
<a target="_blank"
|
|
href="https://bugzilla.mozilla.org/show_bug.cgi?id=663136"
|
|
title="Add test coverage for tablist as implicit live region">
|
|
Mozilla Bug 663136
|
|
</a>
|
|
<a target="_blank"
|
|
href="https://bugzilla.mozilla.org/show_bug.cgi?id=563862"
|
|
title="Expand support for nsIAccessibleEvent::OBJECT_ATTRIBUTE_CHANGE">
|
|
Mozilla Bug 563862
|
|
</a>
|
|
<a target="_blank"
|
|
href="https://bugzilla.mozilla.org/show_bug.cgi?id=819303"
|
|
title="crash in nsTextEquivUtils::AppendTextEquivFromTextContent">
|
|
Mozilla Bug 819303
|
|
</a>
|
|
<a target="_blank"
|
|
href="https://bugzilla.mozilla.org/show_bug.cgi?id=838407"
|
|
title="aria-hidden false value shouldn't be exposed via object attributes">
|
|
Mozilla Bug 838407
|
|
</a>
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none"></div>
|
|
<pre id="test">
|
|
</pre>
|
|
|
|
<!-- aria -->
|
|
<div id="atomic" aria-atomic="true">live region</div>
|
|
<div id="atomic_false" aria-atomic="false">live region</div>
|
|
<div id="autocomplete" role="textbox" aria-autocomplete="true"></div>
|
|
<div id="checkbox" role="checkbox"></div>
|
|
<div id="checkedCheckbox" role="checkbox" aria-checked="true"></div>
|
|
<div id="checkedMenuitem" role="menuitem" aria-checked="true"></div>
|
|
<div id="checkedOption" role="option" aria-checked="true"></div>
|
|
<div id="checkedRadio" role="radio" aria-checked="true"></div>
|
|
<div id="checkedTreeitem" role="treeitem" aria-checked="true"></div>
|
|
<div id="dropeffect" aria-dropeffect="copy"></div>
|
|
<div id="grabbed" aria-grabbed="true"></div>
|
|
<div id="hidden" aria-hidden="true"></div>
|
|
<div id="hidden_false" aria-hidden="false"></div>
|
|
<div id="sortAscending" role="columnheader" aria-sort="ascending"></div>
|
|
<div id="sortDescending" role="columnheader" aria-sort="descending"></div>
|
|
<div id="sortNone" role="columnheader" aria-sort="none"></div>
|
|
<div id="sortOther" role="columnheader" aria-sort="other"></div>
|
|
|
|
<!-- inherited from iframe -->
|
|
<iframe id="iframe" src="data:text/html,<html><body></body></html>"
|
|
aria-busy="true"></iframe>
|
|
|
|
<!-- html -->
|
|
<output id="output"></output>
|
|
|
|
<!-- back to aria -->
|
|
<div id="live" aria-live="polite">excuse <div id="liveChild">me</div></div>
|
|
<div id="live2" role="marquee" aria-live="polite">excuse <div id="live2Child">me</div></div>
|
|
<div id="live3" role="region">excuse</div>
|
|
<div id="log" role="log">excuse <div id="logChild">me</div></div>
|
|
<div id="logAssertive" role="log" aria-live="assertive">excuse <div id="logAssertiveChild">me</div></div>
|
|
<div id="marquee" role="marquee">excuse <div id="marqueeChild">me</div></div>
|
|
<div id="status" role="status">excuse <div id="statusChild">me</div></div>
|
|
<div id="tablist" role="tablist">tablist <div id="tablistChild">tab</div></div>
|
|
<div id="timer" role="timer">excuse <div id="timerChild">me</div></div>
|
|
|
|
<!-- aria-label[ledby] should not be an object attribute -->
|
|
<div id="label" role="checkbox" aria-label="foo"></div>
|
|
<div id="labelledby" role="checkbox" aria-labelledby="label"></div>
|
|
|
|
<!-- unusual live case -->
|
|
<div id="liveGroup" role="group" aria-live="polite">
|
|
excuse <div id="liveGroupChild">me</div>
|
|
</div>
|
|
|
|
<!-- html -->
|
|
<input id="radio" type="radio"/>
|
|
<input id="checkbox" type="checkbox"/>
|
|
<div id="draggable" draggable="true">Draggable div</div>
|
|
<table>
|
|
<tr>
|
|
<th id="th1"><abbr title="Social Security Number">SS#</abbr></th>
|
|
<th id="th2" abbr="SS#" axis="social">Social Security Number</th>
|
|
<th id="th3"><abbr></abbr></th>
|
|
</tr>
|
|
</table>
|
|
|
|
<ul>
|
|
<li id="listitem">item
|
|
</ul>
|
|
|
|
<!-- experimental aria -->
|
|
<div id="experimental" aria-blah="true">Fake beer</div>
|
|
</body>
|
|
</html>
|