blob: 483c2175fbaf6dd15ee2df5ff2d05c1054d316bb [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../resources/accessibility-helper.js"></script>
<script src="../resources/js-test.js"></script>
</head>
<body>
<div id="button" role="button" aria-description="Longer description">button</div>
<div id="button1" role="button" aria-describedby="label1">button</div>
<div id="label1">text</div>
<div id="button2" role="button" aria-describedby="label2" aria-description="Longer description ignored">button</div>
<div id="label2">text</div>
<script>
var output = "This test ensures that aria-description maps to appropriate attributes and works with aria-describedby correctly.\n\n";
if (window.accessibilityController) {
window.jsTestIsAsync = true;
const isCocoa = accessibilityController.platformName == "mac" || accessibilityController.platformName == "ios";
// aria-description case.
var button = accessibilityController.accessibleElementById("button");
output += isCocoa ? `Custom content: ${button.customContent}\n` : `Help text: ${button.helpText}\n`;
// aria-describedby case.
const button1 = accessibilityController.accessibleElementById("button1");
output += isCocoa ? `Custom content: ${button1.customContent}\n` : `Help text: ${button1.helpText}\n`;
// aria-describedby and aria-description case.
const button2 = accessibilityController.accessibleElementById("button2");
output += isCocoa ? `Custom content: ${button2.customContent}\n` : `Help text: ${button2.helpText}\n`;
var newDescription = "Newly added description";
document.getElementById("button").setAttribute("aria-description", newDescription);
setTimeout(async function() {
// GTK / WPE seems to expect aria-description to have no effect.
if (isCocoa)
output += await expectAsync("button.customContent.includes(newDescription)", "true");
debug(output);
finishJSTest();
}, 0);
}
</script>
</body>
</html>