blob: b953037dcce9eb5e10e9477ec767b60de9103d61 [file] [log] [blame]
function buildAccessibilityTree(accessibilityObject, indent, allAttributesRequired, rolesToIgnore, targetObject, targetString) {
// Progressively appending to a string is slow (https://crbug.com/900098),
// instead we build a list of lines and join that at the end.
var consoleLines = [];
var result = _buildAccessibilityTreeInner(accessibilityObject, indent, consoleLines, allAttributesRequired, rolesToIgnore, targetObject, targetString);
document.getElementById("console").innerText += consoleLines.join("");
return result;
}
function _buildAccessibilityTreeInner(accessibilityObject, indent, consoleLines, allAttributesRequired, rolesToIgnore, targetObject, targetString) {
if (rolesToIgnore) {
for (var i = 0; i < rolesToIgnore.length; i++) {
if (accessibilityObject.role == 'AXRole: ' + rolesToIgnore[i])
return true;
}
}
var str = "";
for (var i = 0; i < indent; i++)
str += " ";
str += accessibilityObject.role;
if (accessibilityObject.value)
str += " AXValue: " + accessibilityObject.value;
else if (accessibilityObject.name)
str += " \"" + accessibilityObject.name + "\"";
str += allAttributesRequired && accessibilityObject.role == '' ? accessibilityObject.allAttributes() : '';
str += targetObject && accessibilityObject.isEqual(targetObject) ? " " + targetString : '';
str += "\n";
consoleLines.push(str)
if (accessibilityObject.name.indexOf('End of test') >= 0)
return false;
var count = accessibilityObject.childrenCount;
for (var i = 0; i < count; i++) {
if (!_buildAccessibilityTreeInner(accessibilityObject.childAtIndex(i), indent + 1, consoleLines, allAttributesRequired, rolesToIgnore, targetObject, targetString))
return false;
}
return true;
}
function traverseAccessibilityTree(accessibilityObject) {
var count = accessibilityObject.childrenCount;
for (var i = 0; i < count; i++)
traverseAccessibilityTree(accessibilityObject.childAtIndex(i));
}