/* 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(
`
`,
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 }
);