blob: 0c3d909b7a28d96539538b4d58158a0b2e13e6f2 [file] [log] [blame] [edit]
<!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>
<progress id="native-progress" value="70" max="100"></progress>
<div id="aria-progress" role="progressbar"
aria-valuenow="70" aria-valuemax="100"
style="width: 200px; height: 20px; background-color: blue; margin-top: 30px">
</div>
<script>
var output = "This test ensures that an indeterminate value is properly reported for native and ARIA progress elements.\n\n";
if (window.accessibilityController) {
window.jsTestIsAsync = true;
// A progress element with a value should not be considered indeterminate.
output += expect("accessibilityController.accessibleElementById('native-progress').isIndeterminate", "false");
output += expect("accessibilityController.accessibleElementById('aria-progress').isIndeterminate", "false");
output += evalAndReturn("document.getElementById('native-progress').removeAttribute('value')");
output += evalAndReturn("document.getElementById('aria-progress').removeAttribute('aria-valuenow')");
setTimeout(async function() {
output += await expectAsync("accessibilityController.accessibleElementById('native-progress').isIndeterminate", "true");
output += await expectAsync("accessibilityController.accessibleElementById('aria-progress').isIndeterminate", "true");
// ARIA progress elements should stop being indeterminate if they lose the "progressbar" role.
output += evalAndReturn("document.getElementById('aria-progress').setAttribute('role', 'group')");
output += await expectAsync("accessibilityController.accessibleElementById('aria-progress').isIndeterminate", "false");
debug(output);
finishJSTest();
}, 0);
}
</script>
</body>
</html>