<
html>
<
head>
<
title>Aria-owns targets shouldn
't be on invalidation list so shouldn't have
show/hide events</
title>
<
link rel=
"stylesheet" type=
"text/css"
href=
"chrome://mochikit/content/tests/SimpleTest/test.css" />
<
script src=
"chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></
script>
<
script src=
"chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></
script>
<
script type=
"application/javascript"
src=
"../common.js"></
script>
<
script type=
"application/javascript"
src=
"../states.js"></
script>
<
script type=
"application/javascript"
src=
"../events.js"></
script>
<
script type=
"application/javascript">
// //////////////////////////////////////////////////////////////////////////
// Do tests.
// gA11yEventDumpToConsole = true; // debug stuff
// enableLogging(
"tree,eventTree,verbose");
/**
* Aria-owns target shouldn
't have a show event.
* Markup:
* <
div id=
"t1_fc" aria-owns=
"t1_owns"></
div>
* <
span id=
"t1_owns"></
div>
*/
function testAriaOwns() {
this.parent = getNode(
"t1");
this.fc = document.createElement(
"div");
this.fc.setAttribute(
"id",
"t1_fc");
this.owns = document.createElement(
"span");
this.owns.setAttribute(
"id",
"t1_owns");
this.eventSeq = [
new invokerChecker(EVENT_SHOW, this.fc),
new unexpectedInvokerChecker(EVENT_SHOW, this.owns),
];
this.invoke = function testAriaOwns_invoke() {
getNode(
"t1").appendChild(this.fc);
getNode(
"t1").appendChild(this.owns);
getNode(
"t1_fc").setAttribute(
"aria-owns",
"t1_owns");
};
this.getID = function testAriaOwns_getID() {
return
"Aria-owns target shouldn't have show event";
};
}
/**
* Target of both aria-owns and other aria attribute like aria-labelledby
* shouldn
't have a show event.
* Markup:
* <
div id=
"t2_fc" aria-owns=
"t1_owns"></
div>
* <
div id=
"t2_sc" aria-labelledby=
"t2_owns"></
div>
* <
span id=
"t2_owns"></
div>
*/
function testAriaOwnsAndLabelledBy() {
this.parent = getNode(
"t2");
this.fc = document.createElement(
"div");
this.fc.setAttribute(
"id",
"t2_fc");
this.sc = document.createElement(
"div");
this.sc.setAttribute(
"id",
"t2_sc");
this.owns = document.createElement(
"span");
this.owns.setAttribute(
"id",
"t2_owns");
this.eventSeq = [
new invokerChecker(EVENT_SHOW, this.fc),
new invokerChecker(EVENT_SHOW, this.sc),
new unexpectedInvokerChecker(EVENT_SHOW, this.owns),
];
this.invoke = function testAriaOwns_invoke() {
getNode(
"t2").appendChild(this.fc);
getNode(
"t2").appendChild(this.sc);
getNode(
"t2").appendChild(this.owns);
getNode(
"t2_fc").setAttribute(
"aria-owns",
"t2_owns");
getNode(
"t2_sc").setAttribute(
"aria-labelledby",
"t2_owns");
};
this.getID = function testAriaOwns_getID() {
return
"Aria-owns and aria-labelledby target shouldn't have show event";
};
}
var gQueue = null;
function doTests() {
gQueue = new eventQueue();
gQueue.push(new testAriaOwns());
gQueue.push(new testAriaOwnsAndLabelledBy());
gQueue.invoke(); // Will call SimpleTest.finish();
}
SimpleTest.waitForExplicitFinish();
addA11yLoadEvent(doTests);
</
script>
</
head>
<
body>
<a target=
"_blank"
href=
"https://bugzilla.mozilla.org/show_bug.cgi?id=1296420"
title=
"Aria-owns targets shouldn't be on invalidation list so shouldn't
have show/hide events
">
Mozilla Bug 1296420
</a><
br>
<
div id=
"testContainer">
<
div id=
"t1"></
div>
<
div id=
"t2"></
div>
</
div>
</
body>
</
html>