Bug 1880533 - Update name when hidden text changes in aria-labelledby. r=Jamie

Differential Revision: https://phabricator.services.mozilla.com/D247808
This commit is contained in:
Eitan Isaacson
2025-05-06 05:34:35 +00:00
committed by eisaacson@mozilla.com
parent 2d14bc890e
commit 3872b9b621
2 changed files with 12 additions and 3 deletions

View File

@@ -1114,7 +1114,9 @@ void DocAccessible::CharacterDataWillChange(nsIContent* aContent,
const CharacterDataChangeInfo&) {}
void DocAccessible::CharacterDataChanged(nsIContent* aContent,
const CharacterDataChangeInfo&) {}
const CharacterDataChangeInfo&) {
MaybeHandleChangeToHiddenNameOrDescription(aContent);
}
void DocAccessible::ContentInserted(nsIContent* aChild) {
MaybeHandleChangeToHiddenNameOrDescription(aChild);

View File

@@ -515,7 +515,7 @@ addAccessibleTask(
*/
addAccessibleTask(
`
<button id="button" aria-labelledby="label">
<button id="button" aria-labelledby="label"></button>
<div id="label" hidden>a</div>
`,
async function (browser, docAcc) {
@@ -528,6 +528,13 @@ addAccessibleTask(
});
await nameChanged;
testName(button, "c");
info("Change label text node's data");
nameChanged = waitForEvent(EVENT_NAME_CHANGE, button);
await invokeContentTask(browser, [], () => {
content.document.getElementById("label").firstChild.data = "d";
});
await nameChanged;
testName(button, "d");
info("Prepending text node to label");
nameChanged = waitForEvent(EVENT_NAME_CHANGE, button);
await invokeContentTask(browser, [], () => {
@@ -536,7 +543,7 @@ addAccessibleTask(
.prepend(content.document.createTextNode("b"));
});
await nameChanged;
testName(button, "bc");
testName(button, "bd");
},
{ chrome: true, topLevel: true, iframe: true, remoteIframe: true }
);