[css-grid] Scroll reset position when updating inner html on content
[WebKit-https.git] / LayoutTests / resources / accessibility-helper.js
1 function dumpAccessibilityTree(accessibilityObject, stopElement, indent, allAttributesIfNeeded, getValueFromTitle, includeSubrole) {
2     var str = "";
3     var i = 0;
4
5     for (i = 0; i < indent; i++)
6         str += "    ";
7     str += accessibilityObject.role;
8     if (includeSubrole === true && accessibilityObject.subrole)
9         str += " " + accessibilityObject.subrole;
10     str += " " + (getValueFromTitle === true ? accessibilityObject.title : accessibilityObject.stringValue);
11     str += allAttributesIfNeeded && accessibilityObject.role == '' ? accessibilityObject.allAttributes() : '';
12     str += "\n";
13
14     document.getElementById("tree").innerText += str;
15
16     if (stopElement && stopElement.isEqual(accessibilityObject))
17         return;
18
19     var count = accessibilityObject.childrenCount;
20     for (i = 0; i < count; ++i) {
21         if (!dumpAccessibilityTree(accessibilityObject.childAtIndex(i), stopElement, indent + 1, allAttributesIfNeeded, getValueFromTitle, includeSubrole))
22             return false;
23     }
24
25     return true;
26 }
27
28 function touchAccessibilityTree(accessibilityObject) {
29     var count = accessibilityObject.childrenCount;
30     for (var i = 0; i < count; ++i) {
31         if (!touchAccessibilityTree(accessibilityObject.childAtIndex(i)))
32             return false;
33     }
34
35     return true;
36 }
37
38 function platformValueForW3CName(accessibilityObject, includeSource=false) {
39     var result;
40     if (accessibilityController.platformName == "atk")
41         result = accessibilityObject.title
42     else
43         result = accessibilityObject.description
44
45     if (!includeSource) {
46         var splitResult = result.split(": ");
47         return splitResult[1];
48     }
49
50     return result;
51 }
52
53 function platformValueForW3CDescription(accessibilityObject, includeSource=false) {
54     var result;
55     if (accessibilityController.platformName == "atk")
56         result = accessibilityObject.description
57     else
58         result = accessibilityObject.helpText;
59
60     if (!includeSource) {
61         var splitResult = result.split(": ");
62         return splitResult[1];
63     }
64
65     return result;
66 }
67
68 function platformTextAlternatives(accessibilityObject, includeTitleUIElement=false) {
69     if (!accessibilityObject)
70         return "Element not exposed";
71
72     result = "\t" + accessibilityObject.title + "\n\t" + accessibilityObject.description;
73     if (accessibilityController.platformName == "mac")
74        result += "\n\t" + accessibilityObject.helpText;
75     if (includeTitleUIElement)
76         result += "\n\tAXTitleUIElement: " + (accessibilityObject.titleUIElement() ? "non-null" : "null");
77     return result;
78 }
79
80 function platformRoleForComboBox() {
81     return accessibilityController.platformName == "atk" ? "AXRole: AXComboBox" : "AXRole: AXPopUpButton";
82 }
83
84 function platformRoleForStaticText() {
85     return accessibilityController.platformName == "atk" ? "AXRole: AXStatic" : "AXRole: AXStaticText";
86 }
87
88 function spinnerForTextInput(accessibilityObject) {
89     var index = accessibilityController.platformName == "atk" ? 0 : 1;
90     return accessibilityObject.childAtIndex(index);
91 }