@qualweb/util 0.0.0-develop-20231124154536 → 0.0.0-develop-20241204121833

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/dist/__webpack/util.bundle.js +1 -0
  2. package/dist/accessibilityUtils/accessibilityUtils.d.ts +44 -0
  3. package/dist/accessibilityUtils/accessibilityUtils.d.ts.map +1 -0
  4. package/dist/accessibilityUtils/accessibilityUtils.js +292 -0
  5. package/dist/accessibilityUtils/allowsNameFromContent.d.ts +4 -0
  6. package/dist/accessibilityUtils/allowsNameFromContent.d.ts.map +1 -0
  7. package/dist/accessibilityUtils/allowsNameFromContent.js +9 -0
  8. package/dist/accessibilityUtils/ariaAttributesRoles.d.ts +11 -0
  9. package/dist/accessibilityUtils/ariaAttributesRoles.d.ts.map +1 -0
  10. package/dist/accessibilityUtils/ariaAttributesRoles.js +293 -0
  11. package/dist/accessibilityUtils/constants.d.ts +19 -0
  12. package/dist/accessibilityUtils/constants.d.ts.map +1 -0
  13. package/dist/accessibilityUtils/constants.js +244 -0
  14. package/dist/accessibilityUtils/elementHasGlobalARIAPropertyOrAttribute.d.ts +4 -0
  15. package/dist/accessibilityUtils/elementHasGlobalARIAPropertyOrAttribute.d.ts.map +1 -0
  16. package/dist/accessibilityUtils/elementHasGlobalARIAPropertyOrAttribute.js +17 -0
  17. package/dist/accessibilityUtils/elementHasValidRole.d.ts +4 -0
  18. package/dist/accessibilityUtils/elementHasValidRole.d.ts.map +1 -0
  19. package/dist/accessibilityUtils/elementHasValidRole.js +22 -0
  20. package/dist/accessibilityUtils/getAccessibleName.d.ts +4 -0
  21. package/dist/accessibilityUtils/getAccessibleName.d.ts.map +1 -0
  22. package/dist/accessibilityUtils/getAccessibleName.js +10 -0
  23. package/dist/accessibilityUtils/getAccessibleNameRecursion.d.ts +4 -0
  24. package/dist/accessibilityUtils/getAccessibleNameRecursion.d.ts.map +1 -0
  25. package/dist/accessibilityUtils/getAccessibleNameRecursion.js +275 -0
  26. package/dist/accessibilityUtils/getAccessibleNameSVG.d.ts +4 -0
  27. package/dist/accessibilityUtils/getAccessibleNameSVG.d.ts.map +1 -0
  28. package/dist/accessibilityUtils/getAccessibleNameSVG.js +10 -0
  29. package/dist/accessibilityUtils/getAccessibleNameSVGRecursion.d.ts +4 -0
  30. package/dist/accessibilityUtils/getAccessibleNameSVGRecursion.d.ts.map +1 -0
  31. package/dist/accessibilityUtils/getAccessibleNameSVGRecursion.js +124 -0
  32. package/dist/accessibilityUtils/getAccessibleNameSelector.d.ts +4 -0
  33. package/dist/accessibilityUtils/getAccessibleNameSelector.d.ts.map +1 -0
  34. package/dist/accessibilityUtils/getAccessibleNameSelector.js +200 -0
  35. package/dist/accessibilityUtils/getAriaOwner.d.ts +4 -0
  36. package/dist/accessibilityUtils/getAriaOwner.d.ts.map +1 -0
  37. package/dist/accessibilityUtils/getAriaOwner.js +21 -0
  38. package/dist/accessibilityUtils/getDefaultName.d.ts +4 -0
  39. package/dist/accessibilityUtils/getDefaultName.d.ts.map +1 -0
  40. package/dist/accessibilityUtils/getDefaultName.js +20 -0
  41. package/dist/accessibilityUtils/getDisabledWidgets.d.ts +4 -0
  42. package/dist/accessibilityUtils/getDisabledWidgets.d.ts.map +1 -0
  43. package/dist/accessibilityUtils/getDisabledWidgets.js +26 -0
  44. package/dist/accessibilityUtils/getElementRole.d.ts +4 -0
  45. package/dist/accessibilityUtils/getElementRole.d.ts.map +1 -0
  46. package/dist/accessibilityUtils/getElementRole.js +7 -0
  47. package/dist/accessibilityUtils/getElementRoleAName.d.ts +4 -0
  48. package/dist/accessibilityUtils/getElementRoleAName.d.ts.map +1 -0
  49. package/dist/accessibilityUtils/getElementRoleAName.js +14 -0
  50. package/dist/accessibilityUtils/getElementValidExplicitRole.d.ts +4 -0
  51. package/dist/accessibilityUtils/getElementValidExplicitRole.d.ts.map +1 -0
  52. package/dist/accessibilityUtils/getElementValidExplicitRole.js +22 -0
  53. package/dist/accessibilityUtils/getImplicitRole.d.ts +4 -0
  54. package/dist/accessibilityUtils/getImplicitRole.d.ts.map +1 -0
  55. package/dist/accessibilityUtils/getImplicitRole.js +187 -0
  56. package/dist/accessibilityUtils/getLinkContext.d.ts +4 -0
  57. package/dist/accessibilityUtils/getLinkContext.d.ts.map +1 -0
  58. package/dist/accessibilityUtils/getLinkContext.js +45 -0
  59. package/dist/accessibilityUtils/getOwnedElements.d.ts +4 -0
  60. package/dist/accessibilityUtils/getOwnedElements.d.ts.map +1 -0
  61. package/dist/accessibilityUtils/getOwnedElements.js +42 -0
  62. package/dist/accessibilityUtils/getOwnerElement.d.ts +4 -0
  63. package/dist/accessibilityUtils/getOwnerElement.d.ts.map +1 -0
  64. package/dist/accessibilityUtils/getOwnerElement.js +19 -0
  65. package/dist/accessibilityUtils/getTextFromCss.d.ts +4 -0
  66. package/dist/accessibilityUtils/getTextFromCss.d.ts.map +1 -0
  67. package/dist/accessibilityUtils/getTextFromCss.js +8 -0
  68. package/dist/accessibilityUtils/getValueFromEmbeddedControl.d.ts +4 -0
  69. package/dist/accessibilityUtils/getValueFromEmbeddedControl.d.ts.map +1 -0
  70. package/dist/accessibilityUtils/getValueFromEmbeddedControl.js +75 -0
  71. package/dist/accessibilityUtils/implicitRoles.d.ts +10 -0
  72. package/dist/accessibilityUtils/implicitRoles.d.ts.map +1 -0
  73. package/dist/accessibilityUtils/implicitRoles.js +494 -0
  74. package/dist/accessibilityUtils/isDataTable.d.ts +4 -0
  75. package/dist/accessibilityUtils/isDataTable.d.ts.map +1 -0
  76. package/dist/accessibilityUtils/isDataTable.js +14 -0
  77. package/dist/accessibilityUtils/isElementChildPresentational.d.ts +4 -0
  78. package/dist/accessibilityUtils/isElementChildPresentational.d.ts.map +1 -0
  79. package/dist/accessibilityUtils/isElementChildPresentational.js +17 -0
  80. package/dist/accessibilityUtils/isElementChildPresentationalAux.d.ts +4 -0
  81. package/dist/accessibilityUtils/isElementChildPresentationalAux.d.ts.map +1 -0
  82. package/dist/accessibilityUtils/isElementChildPresentationalAux.js +17 -0
  83. package/dist/accessibilityUtils/isElementControl.d.ts +4 -0
  84. package/dist/accessibilityUtils/isElementControl.d.ts.map +1 -0
  85. package/dist/accessibilityUtils/isElementControl.js +8 -0
  86. package/dist/accessibilityUtils/isElementFocusable.d.ts +4 -0
  87. package/dist/accessibilityUtils/isElementFocusable.d.ts.map +1 -0
  88. package/dist/accessibilityUtils/isElementFocusable.js +21 -0
  89. package/dist/accessibilityUtils/isElementFocusableByDefault.d.ts +4 -0
  90. package/dist/accessibilityUtils/isElementFocusableByDefault.d.ts.map +1 -0
  91. package/dist/accessibilityUtils/isElementFocusableByDefault.js +47 -0
  92. package/dist/accessibilityUtils/isElementInAT.d.ts +4 -0
  93. package/dist/accessibilityUtils/isElementInAT.d.ts.map +1 -0
  94. package/dist/accessibilityUtils/isElementInAT.js +71 -0
  95. package/dist/accessibilityUtils/isElementReferencedByAriaLabel.d.ts +4 -0
  96. package/dist/accessibilityUtils/isElementReferencedByAriaLabel.d.ts.map +1 -0
  97. package/dist/accessibilityUtils/isElementReferencedByAriaLabel.js +25 -0
  98. package/dist/accessibilityUtils/isElementWidget.d.ts +4 -0
  99. package/dist/accessibilityUtils/isElementWidget.d.ts.map +1 -0
  100. package/dist/accessibilityUtils/isElementWidget.js +8 -0
  101. package/dist/accessibilityUtils/isFocusableBrowser.d.ts +4 -0
  102. package/dist/accessibilityUtils/isFocusableBrowser.d.ts.map +1 -0
  103. package/dist/accessibilityUtils/isFocusableBrowser.js +8 -0
  104. package/dist/accessibilityUtils/isPartOfSequentialFocusNavigation.d.ts +4 -0
  105. package/dist/accessibilityUtils/isPartOfSequentialFocusNavigation.d.ts.map +1 -0
  106. package/dist/accessibilityUtils/isPartOfSequentialFocusNavigation.js +13 -0
  107. package/dist/accessibilityUtils/landmarkIsTopLevel.d.ts +4 -0
  108. package/dist/accessibilityUtils/landmarkIsTopLevel.d.ts.map +1 -0
  109. package/dist/accessibilityUtils/landmarkIsTopLevel.js +16 -0
  110. package/dist/accessibilityUtils/language.json +8129 -0
  111. package/dist/accessibilityUtils/roles.d.ts +15 -0
  112. package/dist/accessibilityUtils/roles.d.ts.map +1 -0
  113. package/dist/accessibilityUtils/roles.js +2787 -0
  114. package/dist/applicability/applicability.d.ts +37 -0
  115. package/dist/applicability/applicability.d.ts.map +1 -0
  116. package/dist/applicability/applicability.js +490 -0
  117. package/dist/cache.d.ts +4 -0
  118. package/dist/cache.d.ts.map +1 -0
  119. package/dist/cache.js +45 -0
  120. package/dist/domUtils/audio.json +33 -0
  121. package/dist/domUtils/constants.d.ts +6 -0
  122. package/dist/domUtils/constants.d.ts.map +1 -0
  123. package/dist/domUtils/constants.js +49 -0
  124. package/dist/domUtils/domUtils.d.ts +28 -0
  125. package/dist/domUtils/domUtils.d.ts.map +1 -0
  126. package/dist/domUtils/domUtils.js +124 -0
  127. package/dist/domUtils/elementHasContent.d.ts +4 -0
  128. package/dist/domUtils/elementHasContent.d.ts.map +1 -0
  129. package/dist/domUtils/elementHasContent.js +41 -0
  130. package/dist/domUtils/elementHasOnePixel.d.ts +4 -0
  131. package/dist/domUtils/elementHasOnePixel.d.ts.map +1 -0
  132. package/dist/domUtils/elementHasOnePixel.js +13 -0
  133. package/dist/domUtils/elementIdIsReferenced.d.ts +4 -0
  134. package/dist/domUtils/elementIdIsReferenced.d.ts.map +1 -0
  135. package/dist/domUtils/elementIdIsReferenced.js +13 -0
  136. package/dist/domUtils/getElementReferencedByHREF.d.ts +4 -0
  137. package/dist/domUtils/getElementReferencedByHREF.d.ts.map +1 -0
  138. package/dist/domUtils/getElementReferencedByHREF.js +22 -0
  139. package/dist/domUtils/getTextSize.d.ts +3 -0
  140. package/dist/domUtils/getTextSize.d.ts.map +1 -0
  141. package/dist/domUtils/getTextSize.js +21 -0
  142. package/dist/domUtils/getTrimmedText.d.ts +4 -0
  143. package/dist/domUtils/getTrimmedText.d.ts.map +1 -0
  144. package/dist/domUtils/getTrimmedText.js +13 -0
  145. package/dist/domUtils/getVideoMetadata.d.ts +4 -0
  146. package/dist/domUtils/getVideoMetadata.d.ts.map +1 -0
  147. package/dist/domUtils/getVideoMetadata.js +22 -0
  148. package/dist/domUtils/image.json +122 -0
  149. package/dist/domUtils/isElementADescendantOf.d.ts +4 -0
  150. package/dist/domUtils/isElementADescendantOf.d.ts.map +1 -0
  151. package/dist/domUtils/isElementADescendantOf.js +23 -0
  152. package/dist/domUtils/isElementADescendantOfExplicitRole.d.ts +4 -0
  153. package/dist/domUtils/isElementADescendantOfExplicitRole.d.ts.map +1 -0
  154. package/dist/domUtils/isElementADescendantOfExplicitRole.js +23 -0
  155. package/dist/domUtils/isElementHidden.d.ts +4 -0
  156. package/dist/domUtils/isElementHidden.d.ts.map +1 -0
  157. package/dist/domUtils/isElementHidden.js +17 -0
  158. package/dist/domUtils/isElementHiddenByCSS.d.ts +4 -0
  159. package/dist/domUtils/isElementHiddenByCSS.d.ts.map +1 -0
  160. package/dist/domUtils/isElementHiddenByCSS.js +15 -0
  161. package/dist/domUtils/isElementHiddenByCSSAux.d.ts +4 -0
  162. package/dist/domUtils/isElementHiddenByCSSAux.d.ts.map +1 -0
  163. package/dist/domUtils/isElementHiddenByCSSAux.js +10 -0
  164. package/dist/domUtils/isElementVisible.d.ts +4 -0
  165. package/dist/domUtils/isElementVisible.d.ts.map +1 -0
  166. package/dist/domUtils/isElementVisible.js +38 -0
  167. package/dist/domUtils/isHumanLanguage.d.ts +2 -0
  168. package/dist/domUtils/isHumanLanguage.d.ts.map +1 -0
  169. package/dist/domUtils/isHumanLanguage.js +10 -0
  170. package/dist/domUtils/objectElementIsNonText.d.ts +4 -0
  171. package/dist/domUtils/objectElementIsNonText.d.ts.map +1 -0
  172. package/dist/domUtils/objectElementIsNonText.js +21 -0
  173. package/dist/domUtils/textHasTheSameColorOfBackground.d.ts +4 -0
  174. package/dist/domUtils/textHasTheSameColorOfBackground.d.ts.map +1 -0
  175. package/dist/domUtils/textHasTheSameColorOfBackground.js +12 -0
  176. package/dist/domUtils/video.json +490 -0
  177. package/dist/domUtils/videoElementHasAudio.d.ts +4 -0
  178. package/dist/domUtils/videoElementHasAudio.d.ts.map +1 -0
  179. package/dist/domUtils/videoElementHasAudio.js +6 -0
  180. package/dist/index.d.ts +15 -0
  181. package/dist/index.d.ts.map +1 -0
  182. package/dist/index.js +13 -0
  183. package/package.json +45 -30
  184. package/dist/util.bundle.js +0 -1
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const constants_1 = require("./constants");
7
+ const isElementReferencedByAriaLabel_1 = __importDefault(require("./isElementReferencedByAriaLabel"));
8
+ function getAccessibleNameSVGRecursion(element, recursion) {
9
+ let AName, ariaLabelBy, tag;
10
+ tag = element.getElementTagName();
11
+ if (!tag)
12
+ tag = '';
13
+ const regex = new RegExp('^fe[a-zA-Z]+');
14
+ ariaLabelBy = element.getElementAttribute('aria-labelledby');
15
+ if (ariaLabelBy !== null && window.qwPage.getElementByID(ariaLabelBy) === null) {
16
+ ariaLabelBy = '';
17
+ }
18
+ const ariaLabel = element.getElementAttribute('aria-label');
19
+ const referencedByAriaLabel = (0, isElementReferencedByAriaLabel_1.default)(element);
20
+ const title = element.getElementChildTextContent('title');
21
+ const titleAtt = element.getElementAttribute('xlink:title');
22
+ const href = element.getElementAttribute('href');
23
+ const roleLink = tag === 'a' && href !== undefined;
24
+ if ((window.DomUtils.isElementHidden(element) ||
25
+ hasParentOfName(element, constants_1.noAccessibleObjectOrChild) ||
26
+ constants_1.noAccessibleObject.indexOf(tag) >= 0 ||
27
+ constants_1.noAccessibleObjectOrChild.indexOf(tag) >= 0 ||
28
+ regex.test(tag)) &&
29
+ !recursion) {
30
+ }
31
+ else if (ariaLabelBy && ariaLabelBy !== '' && !(referencedByAriaLabel && recursion)) {
32
+ AName = getAccessibleNameFromAriaLabelledBy(element, ariaLabelBy);
33
+ }
34
+ else if (constants_1.elementsLikeHtml.indexOf(tag) >= 0) {
35
+ AName = window.AccessibilityUtils.getAccessibleName(element);
36
+ }
37
+ else if (ariaLabel && ariaLabel.trim() !== '') {
38
+ AName = ariaLabel;
39
+ }
40
+ else if (title && title.trim() !== '') {
41
+ AName = title;
42
+ }
43
+ else if (titleAtt && titleAtt.trim() !== '' && roleLink) {
44
+ AName = titleAtt;
45
+ }
46
+ else if (roleLink) {
47
+ AName = getTextFromCss(element);
48
+ }
49
+ else if (tag && (tag === 'text' || tag === 'desc' || tag === 'title')) {
50
+ AName = window.DomUtils.getTrimmedText(element);
51
+ }
52
+ return AName;
53
+ }
54
+ function hasParentOfName(element, name) {
55
+ const parent = element.getElementParent();
56
+ if (parent) {
57
+ const parentName = parent.getElementTagName();
58
+ return (parentName && name.indexOf(parentName) >= 0) || hasParentOfName(parent, name);
59
+ }
60
+ else {
61
+ return false;
62
+ }
63
+ }
64
+ function getAccessibleNameFromAriaLabelledBy(element, ariaLabelId) {
65
+ const ListIdRefs = ariaLabelId.split(' ');
66
+ let result;
67
+ let accessNameFromId;
68
+ let elem;
69
+ const elementID = element.getElementAttribute('id');
70
+ for (const id of ListIdRefs) {
71
+ if (id !== '' && elementID !== id)
72
+ elem = window.qwPage.getElementByID(id);
73
+ if (elem)
74
+ accessNameFromId = getAccessibleNameSVGRecursion(elem, true);
75
+ if (accessNameFromId) {
76
+ if (result) {
77
+ result += accessNameFromId;
78
+ }
79
+ else {
80
+ result = accessNameFromId;
81
+ }
82
+ }
83
+ }
84
+ return result;
85
+ }
86
+ function getAccessibleNameFromChildren(element) {
87
+ let aName;
88
+ const children = element.getElementChildren();
89
+ const elementAnames = new Array();
90
+ if (children) {
91
+ for (const child of children) {
92
+ const name = child.getElementTagName();
93
+ if (constants_1.textContainer.indexOf(name) >= 0) {
94
+ aName = getAccessibleNameSVGRecursion(child, true);
95
+ if (aName) {
96
+ elementAnames.push(aName);
97
+ }
98
+ else {
99
+ elementAnames.push('');
100
+ }
101
+ }
102
+ }
103
+ }
104
+ return elementAnames;
105
+ }
106
+ function getTextFromCss(element) {
107
+ let before = element.getElementStyleProperty('content', ':before');
108
+ let after = element.getElementStyleProperty('content', ':after');
109
+ const aNameList = getAccessibleNameFromChildren(element);
110
+ const textValue = getConcatenatedText(aNameList);
111
+ if (after === 'none')
112
+ after = '';
113
+ if (before === 'none')
114
+ before = '';
115
+ return before.replace(/["']/g, '') + textValue + after.replace(/["']/g, '');
116
+ }
117
+ function getConcatenatedText(aNames) {
118
+ let result = '';
119
+ for (const aName of aNames) {
120
+ result += aName;
121
+ }
122
+ return result;
123
+ }
124
+ exports.default = getAccessibleNameSVGRecursion;
@@ -0,0 +1,4 @@
1
+ import type { QWElement } from '@qualweb/qw-element';
2
+ declare function getAccessibleNameSelector(element: QWElement): string | string[] | undefined;
3
+ export default getAccessibleNameSelector;
4
+ //# sourceMappingURL=getAccessibleNameSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAccessibleNameSelector.d.ts","sourceRoot":"","sources":["../../src/accessibilityUtils/getAccessibleNameSelector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,iBAAS,yBAAyB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAEpF;AA4MD,eAAe,yBAAyB,CAAC"}
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const constants_1 = require("./constants");
4
+ function getAccessibleNameSelector(element) {
5
+ return getAccessibleNameRecursion(element, false, false);
6
+ }
7
+ function getAccessibleNameRecursion(element, recursion, isWidget) {
8
+ let AName;
9
+ let ariaLabelBy;
10
+ const elementSelector = element.getElementSelector();
11
+ const name = element.getElementTagName();
12
+ const allowNameFromContent = window.AccessibilityUtils.allowsNameFromContent(element);
13
+ ariaLabelBy = element.getElementAttribute('aria-labelledby');
14
+ if (ariaLabelBy !== null && !verifyAriaLabel(ariaLabelBy)) {
15
+ ariaLabelBy = '';
16
+ }
17
+ const ariaLabel = element.getElementAttribute('aria-label') ? [elementSelector] : null;
18
+ const attrType = element.getElementAttribute('type');
19
+ const title = element.getElementAttribute('title') ? [elementSelector] : null;
20
+ const alt = element.getElementAttribute('alt') ? [elementSelector] : null;
21
+ const value = element.getElementAttribute('value') ? [elementSelector] : null;
22
+ const placeholder = element.getElementAttribute('placeholder') ? [elementSelector] : null;
23
+ const id = element.getElementAttribute('id');
24
+ const defaultName = window.AccessibilityUtils.getDefaultName(element) ? ['default'] : null;
25
+ const referencedByAriaLabel = window.AccessibilityUtils.isElementReferencedByAriaLabel(element);
26
+ if (ariaLabelBy && ariaLabelBy !== '' && !(referencedByAriaLabel && recursion)) {
27
+ AName = getAccessibleNameFromAriaLabelledBy(element, ariaLabelBy);
28
+ }
29
+ else if (ariaLabel) {
30
+ AName = ariaLabel;
31
+ }
32
+ else if (isWidget && window.AccessibilityUtils.isElementControl(element)) {
33
+ const valueFromEmbeddedControl = window.AccessibilityUtils.getValueFromEmbeddedControl(element)
34
+ ? elementSelector
35
+ : null;
36
+ AName = getFirstNotUndefined(valueFromEmbeddedControl, title);
37
+ }
38
+ else if (name === 'area' || (name === 'input' && attrType === 'image')) {
39
+ AName = getFirstNotUndefined(alt, title);
40
+ }
41
+ else if (name === 'img') {
42
+ AName = getFirstNotUndefined(alt, title);
43
+ }
44
+ else if (name === 'input' && (attrType === 'button' || attrType === 'submit' || attrType === 'reset')) {
45
+ AName = getFirstNotUndefined(value, defaultName, title);
46
+ }
47
+ else if (name === 'input' && (!attrType || constants_1.typesWithLabel.indexOf(attrType) >= 0)) {
48
+ if (!recursion) {
49
+ AName = getFirstNotUndefined(getValueFromLabel(element, id), title, placeholder);
50
+ }
51
+ else {
52
+ AName = getFirstNotUndefined(title, placeholder);
53
+ }
54
+ }
55
+ else if (name && constants_1.formElements.indexOf(name) >= 0) {
56
+ if (!recursion) {
57
+ AName = getFirstNotUndefined(getValueFromLabel(element, id), title);
58
+ }
59
+ else {
60
+ AName = getFirstNotUndefined(title);
61
+ }
62
+ }
63
+ else if (name === 'textarea') {
64
+ if (!recursion) {
65
+ AName = getFirstNotUndefined(getValueFromLabel(element, id), title, placeholder);
66
+ }
67
+ else {
68
+ AName = getFirstNotUndefined(getTextFromCss(element, isWidget), title, placeholder);
69
+ }
70
+ }
71
+ else if (name === 'figure') {
72
+ AName = getFirstNotUndefined(...(getValueFromSpecialLabel(element, 'figcaption') || []), title);
73
+ }
74
+ else if (name === 'table') {
75
+ AName = getFirstNotUndefined(...(getValueFromSpecialLabel(element, 'caption') || []), title);
76
+ }
77
+ else if (name === 'fieldset') {
78
+ AName = getFirstNotUndefined(...(getValueFromSpecialLabel(element, 'legend') || []), title);
79
+ }
80
+ else if (allowNameFromContent) {
81
+ AName = getFirstNotUndefined(...getTextFromCss(element, isWidget), title);
82
+ }
83
+ else {
84
+ AName = getFirstNotUndefined(title);
85
+ }
86
+ return AName;
87
+ }
88
+ function getFirstNotUndefined(...args) {
89
+ let result;
90
+ let i = 0;
91
+ let arg;
92
+ let end = false;
93
+ while (i < args.length && !end) {
94
+ arg = args[i];
95
+ if (arg !== undefined && arg !== null) {
96
+ result = arg;
97
+ if (String(arg).trim() !== '') {
98
+ end = true;
99
+ }
100
+ }
101
+ i++;
102
+ }
103
+ return result;
104
+ }
105
+ function getValueFromSpecialLabel(element, label) {
106
+ const labelElement = element.getElement(label);
107
+ let accessNameFromLabel, result;
108
+ if (labelElement)
109
+ accessNameFromLabel = getAccessibleNameRecursion(labelElement, true, false);
110
+ if (accessNameFromLabel)
111
+ result = [element.getElementSelector()];
112
+ return result;
113
+ }
114
+ function getValueFromLabel(element, id) {
115
+ const referencedByLabelList = new Array();
116
+ const referencedByLabel = window.qwPage.getElements(`label[for="${id}"]`, element);
117
+ if (referencedByLabel) {
118
+ referencedByLabelList.push(...referencedByLabel);
119
+ }
120
+ const parent = element.getElementParent();
121
+ const isWidget = window.AccessibilityUtils.isElementWidget(element);
122
+ if (parent && parent.getElementTagName() === 'label' && !isElementPresent(parent, referencedByLabelList)) {
123
+ referencedByLabelList.push(parent);
124
+ }
125
+ const result = new Array();
126
+ for (const label of referencedByLabelList) {
127
+ const accessNameFromLabel = getAccessibleNameRecursion(label, true, isWidget);
128
+ if (accessNameFromLabel) {
129
+ result.push(label.getElementSelector());
130
+ }
131
+ }
132
+ return result;
133
+ }
134
+ function isElementPresent(element, listElement) {
135
+ let result = false;
136
+ let i = 0;
137
+ const elementSelector = element.getElementSelector();
138
+ while (i < listElement.length && !result) {
139
+ result = elementSelector === listElement[i].getElementSelector();
140
+ i++;
141
+ }
142
+ return result;
143
+ }
144
+ function getAccessibleNameFromAriaLabelledBy(element, ariaLabelId) {
145
+ const ListIdRefs = ariaLabelId.split(' ');
146
+ const result = new Array();
147
+ let accessNameFromId;
148
+ const isWidget = window.AccessibilityUtils.isElementWidget(element);
149
+ const elementID = element.getElementAttribute('id');
150
+ for (const id of ListIdRefs || []) {
151
+ if (id !== '' && elementID !== id) {
152
+ const elem = window.qwPage.getElementByID(id);
153
+ if (elem) {
154
+ accessNameFromId = getAccessibleNameRecursion(elem, true, isWidget);
155
+ if (accessNameFromId) {
156
+ result.push(elem.getElementSelector());
157
+ }
158
+ }
159
+ }
160
+ }
161
+ return result;
162
+ }
163
+ function getTextFromCss(element, isWidget) {
164
+ const aNameList = getAccessibleNameFromChildren(element, isWidget);
165
+ const textValue = getConcatenatedText(element, []) ? element.getElementSelector() : null;
166
+ if (textValue)
167
+ aNameList.push(textValue);
168
+ return aNameList;
169
+ }
170
+ function getConcatenatedText(element, aNames) {
171
+ return element.concatANames(aNames);
172
+ }
173
+ function getAccessibleNameFromChildren(element, isWidget) {
174
+ if (!isWidget) {
175
+ isWidget = window.AccessibilityUtils.isElementWidget(element);
176
+ }
177
+ const children = element.getElementChildren();
178
+ const result = new Array();
179
+ let aName;
180
+ if (children) {
181
+ for (const child of children) {
182
+ aName = getAccessibleNameRecursion(child, true, isWidget);
183
+ if (aName) {
184
+ result.push(child.getElementSelector());
185
+ }
186
+ }
187
+ }
188
+ return result;
189
+ }
190
+ function verifyAriaLabel(ariaLabelBy) {
191
+ const elementIds = ariaLabelBy.split(' ');
192
+ let result = false;
193
+ for (const id of elementIds) {
194
+ if (!result) {
195
+ result = window.qwPage.getElementByID(id) !== null;
196
+ }
197
+ }
198
+ return result;
199
+ }
200
+ exports.default = getAccessibleNameSelector;
@@ -0,0 +1,4 @@
1
+ import type { QWElement } from '@qualweb/qw-element';
2
+ declare function getAriaOwner(element: QWElement): QWElement | null;
3
+ export default getAriaOwner;
4
+ //# sourceMappingURL=getAriaOwner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAriaOwner.d.ts","sourceRoot":"","sources":["../../src/accessibilityUtils/getAriaOwner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,iBAAS,YAAY,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAiB1D;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function getAriaOwner(element) {
4
+ const id = element.getElementAttribute('id');
5
+ const ariaOwns = window.qwPage.getElements('[aria-owns]', element);
6
+ let index = 0;
7
+ let ariaOwner;
8
+ while (id && index < ariaOwns.length && !!ariaOwns) {
9
+ const ariaElement = ariaOwns[index];
10
+ const ariaOwnsAttribute = ariaElement.getElementAttribute('aria-owns');
11
+ if (ariaOwnsAttribute) {
12
+ const idArray = ariaOwnsAttribute.split(' ');
13
+ if (idArray.includes(id) && window.AccessibilityUtils.isElementInAT(ariaElement)) {
14
+ ariaOwner = ariaElement;
15
+ }
16
+ }
17
+ index++;
18
+ }
19
+ return ariaOwner !== null && ariaOwner !== void 0 ? ariaOwner : null;
20
+ }
21
+ exports.default = getAriaOwner;
@@ -0,0 +1,4 @@
1
+ import type { QWElement } from '@qualweb/qw-element';
2
+ declare function getDefaultName(element: QWElement): string;
3
+ export default getDefaultName;
4
+ //# sourceMappingURL=getDefaultName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDefaultName.d.ts","sourceRoot":"","sources":["../../src/accessibilityUtils/getDefaultName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,iBAAS,cAAc,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAmBlD;AAED,eAAe,cAAc,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function getDefaultName(element) {
4
+ let name = element.getElementTagName();
5
+ if (!name)
6
+ name = '';
7
+ let type;
8
+ let result = '';
9
+ if (name === 'input') {
10
+ type = element.getElementAttribute('type');
11
+ }
12
+ if (type === 'submit') {
13
+ result = 'Reset';
14
+ }
15
+ else if (type === 'reset') {
16
+ result = 'Reset';
17
+ }
18
+ return result;
19
+ }
20
+ exports.default = getDefaultName;
@@ -0,0 +1,4 @@
1
+ import type { QWElement } from '@qualweb/qw-element';
2
+ declare function getDisabledWidgets(): Array<QWElement>;
3
+ export default getDisabledWidgets;
4
+ //# sourceMappingURL=getDisabledWidgets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDisabledWidgets.d.ts","sourceRoot":"","sources":["../../src/accessibilityUtils/getDisabledWidgets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,iBAAS,kBAAkB,IAAI,KAAK,CAAC,SAAS,CAAC,CAsB9C;AAED,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function getDisabledWidgets() {
4
+ const elements = window.qwPage.getElements('*');
5
+ const disabledElements = new Array();
6
+ let disable, ariaDisable, parent, parentTag;
7
+ for (const element of elements) {
8
+ const isWidget = window.AccessibilityUtils.isElementWidget(element);
9
+ disable = element.getElementAttribute('disabled') !== null;
10
+ ariaDisable = element.getElementAttribute('aria-disabled') === 'true';
11
+ parent = element.getElementParent();
12
+ if (parent && !(disable || ariaDisable)) {
13
+ parentTag = parent.getElementTagName();
14
+ if (parentTag === 'label') {
15
+ parent = parent.getElementParent();
16
+ disable = (parent === null || parent === void 0 ? void 0 : parent.getElementAttribute('disabled')) !== null;
17
+ ariaDisable = (parent === null || parent === void 0 ? void 0 : parent.getElementAttribute('aria-disabled')) === 'true';
18
+ }
19
+ }
20
+ if (isWidget && (disable || ariaDisable)) {
21
+ disabledElements.push(element);
22
+ }
23
+ }
24
+ return disabledElements;
25
+ }
26
+ exports.default = getDisabledWidgets;
@@ -0,0 +1,4 @@
1
+ import type { QWElement } from '@qualweb/qw-element';
2
+ declare function getElementRole(element: QWElement): string | null;
3
+ export default getElementRole;
4
+ //# sourceMappingURL=getElementRole.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getElementRole.d.ts","sourceRoot":"","sources":["../../src/accessibilityUtils/getElementRole.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,iBAAS,cAAc,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAGzD;AAED,eAAe,cAAc,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function getElementRole(element) {
4
+ const aName = window.AccessibilityUtils.getAccessibleName(element);
5
+ return window.AccessibilityUtils.getElementRoleAName(element, aName);
6
+ }
7
+ exports.default = getElementRole;
@@ -0,0 +1,4 @@
1
+ import type { QWElement } from '@qualweb/qw-element';
2
+ declare function getElementRoleAName(element: QWElement, aName: string | undefined): string | null;
3
+ export = getElementRoleAName;
4
+ //# sourceMappingURL=getElementRoleAName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getElementRoleAName.d.ts","sourceRoot":"","sources":["../../src/accessibilityUtils/getElementRoleAName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,iBAAS,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAazF;AAED,SAAS,mBAAmB,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ function getElementRoleAName(element, aName) {
3
+ const explicitRole = element.getElementAttribute('role');
4
+ let role = explicitRole;
5
+ if (explicitRole === null ||
6
+ ((explicitRole === 'none' || explicitRole === 'presentation') &&
7
+ (window.AccessibilityUtils.isElementFocusable(element) ||
8
+ window.AccessibilityUtils.elementHasGlobalARIAPropertyOrAttribute(element)))) {
9
+ const implicitRole = window.AccessibilityUtils.getImplicitRole(element, aName);
10
+ role = implicitRole || explicitRole;
11
+ }
12
+ return role;
13
+ }
14
+ module.exports = getElementRoleAName;
@@ -0,0 +1,4 @@
1
+ import type { QWElement } from '@qualweb/qw-element';
2
+ declare function getElementValidExplicitRole(element: QWElement): string | null;
3
+ export default getElementValidExplicitRole;
4
+ //# sourceMappingURL=getElementValidExplicitRole.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getElementValidExplicitRole.d.ts","sourceRoot":"","sources":["../../src/accessibilityUtils/getElementValidExplicitRole.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,iBAAS,2BAA2B,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAiBtE;AAED,eAAe,2BAA2B,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const roles_1 = require("./roles");
4
+ function getElementValidExplicitRole(element) {
5
+ const role = element.getElementAttribute('role');
6
+ let validRole = null;
7
+ if (role) {
8
+ if (role.trim().includes(' ')) {
9
+ for (const r of role.trim().split(' ')) {
10
+ validRole = Object.keys(roles_1.roles).includes(r) ? r : null;
11
+ if (validRole) {
12
+ break;
13
+ }
14
+ }
15
+ }
16
+ else {
17
+ validRole = Object.keys(roles_1.roles).includes(role) ? role : null;
18
+ }
19
+ }
20
+ return validRole;
21
+ }
22
+ exports.default = getElementValidExplicitRole;
@@ -0,0 +1,4 @@
1
+ import type { QWElement } from '@qualweb/qw-element';
2
+ declare function getImplicitRole(element: QWElement, accessibleName: string | undefined): string | null;
3
+ export default getImplicitRole;
4
+ //# sourceMappingURL=getImplicitRole.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getImplicitRole.d.ts","sourceRoot":"","sources":["../../src/accessibilityUtils/getImplicitRole.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,iBAAS,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CA2D9F;AAmID,eAAe,eAAe,CAAC"}