46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
/**
|
|
* Test that alert events aren't fired when reflow happens but no actual
|
|
* insertion occurs.
|
|
*/
|
|
addAccessibleTask(
|
|
`
|
|
<div id="alert" role="alert">
|
|
<div id="content" hidden>content</div>
|
|
</div>
|
|
`,
|
|
async function (browser, docAcc) {
|
|
const alert = findAccessibleChildByID(docAcc, "alert");
|
|
info("Showing content");
|
|
await contentSpawnMutation(
|
|
browser,
|
|
{ expected: [[EVENT_ALERT, alert]] },
|
|
() => {
|
|
content.document.getElementById("content").hidden = false;
|
|
}
|
|
);
|
|
info("Changing content display style and removing text");
|
|
const content = findAccessibleChildByID(docAcc, "content");
|
|
await contentSpawnMutation(
|
|
browser,
|
|
{
|
|
expected: [[EVENT_REORDER, content]],
|
|
unexpected: [[EVENT_ALERT, alert]],
|
|
},
|
|
() => {
|
|
const node = content.document.getElementById("content");
|
|
node.textContent = "";
|
|
// This causes the node's layout frame to be reconstructed. This in
|
|
// turn causes a11y to queue it as an insertion in case there were
|
|
// changes. Because it already has an Accessible, This node is skipped
|
|
// when processing insertions, so we should not fire an alert event.
|
|
node.style.display = "flex";
|
|
}
|
|
);
|
|
},
|
|
{ chrome: true, topLevel: true, remoteIframe: true }
|
|
);
|