| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../resources/js-test.js"></script> |
| <script src="../../resources/accessibility-helper.js"></script> |
| </head> |
| <body> |
| |
| <div id="content"> |
| <div id="empty-group-with-title" role="group" title="Group title"></div> |
| |
| <div id="empty-div-with-label" aria-label="Div label"></div> |
| |
| <div id="empty-group-with-title-and-br" role="group" title="Group title"> |
| <!-- BR tags are ignored, so include one here to ensure we skip ignored content. --> |
| <br /> |
| </div> |
| |
| <div id="group-with-direct-text-descendant" role="group" aria-label="Group label"> |
| Child text |
| </div> |
| |
| <div id="group-with-non-empty-div" role="group" title="Group title"> |
| <div> |
| Group title |
| </div> |
| </div> |
| |
| <div id="group-with-heading" role="group" aria-label="Group label"> |
| <h1> |
| <div>Hello world</div> |
| </h1> |
| </div> |
| |
| <div id="group-with-contenteditable" role="group" aria-label="Group label"> |
| <div contenteditable="true"></div> |
| </div> |
| |
| <div id="group-with-empty-table" role="group" aria-label="Group label"> |
| <table> |
| <thead> |
| </thead> |
| <tbody> |
| </tbody> |
| </table> |
| </div> |
| |
| <div id="group-with-nested-content" role="group" aria-label="Group label"> |
| <!-- BR tags are ignored, so include one here to ensure we skip ignored content. --> |
| <br /> |
| <div> |
| <div> |
| Text |
| </div> |
| </div> |
| </div> |
| |
| <div id="group-with-image" role="group" aria-label="Group label"> |
| <img src="resources/cake.png" onload="runTest()"> |
| </div> |
| </div> |
| |
| <script> |
| description("This test ensures WebKit properly reports groups as empty (or not empty).") |
| |
| var group; |
| const runTest = () => { |
| if (window.accessibilityController) { |
| const groupShouldBeEmpty = (id, shouldBeEmpty) => { |
| group = accessibilityController.accessibleElementById(id); |
| debug(`Testing element with ID: ${id}`); |
| shouldBe("group.subrole", shouldBeEmpty ? "'AXSubrole: AXEmptyGroup'" : "'AXSubrole: AXApplicationGroup'"); |
| }; |
| |
| groupShouldBeEmpty("empty-group-with-title", true); |
| groupShouldBeEmpty("empty-div-with-label", true); |
| groupShouldBeEmpty("empty-group-with-title-and-br", true); |
| groupShouldBeEmpty("group-with-direct-text-descendant", false); |
| groupShouldBeEmpty("group-with-non-empty-div", false); |
| groupShouldBeEmpty("group-with-heading", false); |
| groupShouldBeEmpty("group-with-contenteditable", false); |
| groupShouldBeEmpty("group-with-empty-table", false); |
| groupShouldBeEmpty("group-with-nested-content", false); |
| groupShouldBeEmpty("group-with-image", false); |
| |
| document.getElementById("content").style.visibility = "hidden"; |
| } |
| } |
| </script> |
| </body> |
| </html> |
| |