<!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) {
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 axLayoutObjects = [];
var axNodeObjects = [];
appendFocusableDescendants(axContainer, axLayoutObjects);
appendFocusableDescendants(axCanvas, axNodeObjects);
shouldBe("axLayoutObjects.length", "axNodeObjects.length");
for (var i = 0; i < axLayoutObjects.length; i++) {
var axLayoutObject = axLayoutObjects[i];
var axNodeObject = axNodeObjects[i];
shouldBe("i == " + i + "; axLayoutObject.role == axNodeObject.role", "true");
}
}
</script>
</body>
</html>