| <!DOCTYPE HTML> |
| <html> |
| <head> |
| <script src="../resources/js-test.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> |
| |
| </body> |
| </html> |