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