| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body id="body"> |
| <div role="application"> |
| <span id="slider" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="100" aria-valuenow="50"></span> |
| </div> |
| <p id="description"></p> |
| <div id="console"></div> |
| <script> |
| window.jsTestIsAsync = true; |
| |
| description("This tests the exposure of attributes for an ARIA slider."); |
| |
| var valueChangedNotifications = 0; |
| |
| function notificationCallback(element, notification) { |
| if (element.role == "AXRole: AXSlider" && notification == "AXValueChanged") |
| valueChangedNotifications++; |
| } |
| |
| if (window.testRunner && window.accessibilityController) { |
| testRunner.dumpAsText(); |
| |
| slider = document.getElementById("slider"); |
| slider.focus(); |
| |
| axSlider = accessibilityController.focusedElement; |
| accessibilityController.addNotificationListener(notificationCallback); |
| |
| shouldBe("axSlider.role", "'AXRole: AXSlider'"); |
| shouldBe("axSlider.intValue", "50"); |
| shouldBe("axSlider.minValue", "0"); |
| shouldBe("axSlider.maxValue", "100"); |
| |
| slider.setAttribute("aria-valuenow", "75"); |
| shouldBe("axSlider.intValue", "75"); |
| |
| slider.setAttribute("aria-valuenow", "35"); |
| shouldBe("axSlider.intValue", "35"); |
| |
| window.setTimeout(function() { |
| if (window.accessibilityController) |
| accessibilityController.removeNotificationListener(); |
| |
| shouldBe("valueChangedNotifications", "2"); |
| finishJSTest(); |
| }, |
| 0); |
| } |
| |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |