| <!DOCTYPE HTML> | |
| <html> | |
| <body> | |
| <script src="../resources/js-test.js"></script> | |
| <div id="myContainer" tabindex="-1"> | |
| <a href="#">Link</a> | |
| <button>Button</button> | |
| <input type="text"> | |
| <input type="checkbox"> | |
| <input type="radio"> | |
| <input type="submit"> | |
| <select><option>1<option>2</select> | |
| <span tabindex="0" role="button">ARIA button</span> | |
| <span tabindex="0" role="link">ARIA link</span> | |
| </div> | |
| <canvas id="myCanvas" width="300" height="300" tabindex="-1"> | |
| <a href="#">Link</a> | |
| <button>Button</button> | |
| <input type="text"> | |
| <input type="checkbox"> | |
| <input type="radio"> | |
| <input type="submit"> | |
| <select><option>1<option>2</select> | |
| <span tabindex="0" role="button">ARIA button</span> | |
| <span tabindex="0" role="link">ARIA link</span> | |
| </canvas> | |
| <div id="console"></div> | |
| <script> | |
| description("This test makes sure that AccessibilityNodeObjects are created for elements in a canvas subtree."); | |
| if (window.testRunner && window.accessibilityController) { | |
| window.testRunner.dumpAsText(); | |
| function appendFocusableDescendants(axObject, axFocusableList) { | |
| for (var i = 0; i < axObject.childrenCount; i++) { | |
| var axChild = axObject.childAtIndex(i); | |
| if (axChild.isFocusable) | |
| axFocusableList.push(axChild); | |
| appendFocusableDescendants(axChild, axFocusableList); | |
| } | |
| } | |
| var container = document.getElementById("myContainer"); | |
| container.focus(); | |
| var axContainer = accessibilityController.focusedElement; | |
| var canvas = document.getElementById("myCanvas"); | |
| canvas.focus(); | |
| var axCanvas = accessibilityController.focusedElement; | |
| var axRenderObjects = []; | |
| var axNodeObjects = []; | |
| appendFocusableDescendants(axContainer, axRenderObjects); | |
| appendFocusableDescendants(axCanvas, axNodeObjects); | |
| shouldBe("axRenderObjects.length", "axNodeObjects.length"); | |
| for (var i = 0; i < axRenderObjects.length; i++) { | |
| var axRenderObject = axRenderObjects[i]; | |
| var axNodeObject = axNodeObjects[i]; | |
| shouldBe("i == " + i + "; axRenderObject.role == axNodeObject.role", "true"); | |
| } | |
| } | |
| </script> | |
| </body> | |
| </html> |