blob: 0e5242aa87afd8ed76765023a3f2b0820816b437 [file] [log] [blame]
<!DOCTYPE HTML>
<html>
<head>
<script src="../fast/js/resources/js-test-pre.js"></script>
</head>
<body>
<div id="container">
<button id="aria-busy" aria-busy="false">Busy</button>
<button id="aria-disabled" aria-disabled="false">Disabled</button>
<button id="aria-readonly" aria-readonly="false">Readonly</button>
<button id="aria-required" aria-required="false">Required</button>
</div>
<div id="console"></div>
<script>
description("This test ensures that a change to any ARIA attribute, not just a state, sends a notification.");
window.jsTestIsAsync = true;
if (window.testRunner && window.accessibilityController) {
testRunner.dumpAsText();
function accessibleElementById(id) {
return accessibilityController.accessibleElementById(id);
}
window.successCount = 0;
function gotSuccessfulNotification() {
successCount++;
if (successCount != 4)
return;
debug('All notifications received successfully.');
accessibleElementById('aria-busy').removeNotificationListener();
accessibleElementById('aria-disabled').removeNotificationListener();
accessibleElementById('aria-readonly').removeNotificationListener();
accessibleElementById('aria-required').removeNotificationListener();
document.getElementById('container').hidden = true;
finishJSTest();
}
accessibleElementById('aria-busy').addNotificationListener(function(notification) {
debug('Got ' + notification + ' notification on aria-busy');
gotSuccessfulNotification();
});
document.getElementById('aria-busy').setAttribute('aria-busy', 'true');
accessibleElementById('aria-disabled').addNotificationListener(function(notification) {
debug('Got ' + notification + ' notification on aria-disabled');
gotSuccessfulNotification();
});
document.getElementById('aria-disabled').setAttribute('aria-disabled', 'true');
accessibleElementById('aria-readonly').addNotificationListener(function(notification) {
debug('Got ' + notification + ' notification on aria-readonly');
gotSuccessfulNotification();
});
document.getElementById('aria-readonly').setAttribute('aria-readonly', 'true');
accessibleElementById('aria-required').addNotificationListener(function(notification) {
debug('Got ' + notification + ' notification on aria-required');
gotSuccessfulNotification();
});
document.getElementById('aria-required').setAttribute('aria-required', 'true');
debug('');
}
</script>
<script src="../fast/js/resources/js-test-post.js"></script>
</body>
</html>