@qualweb/act-rules 0.0.0-develop-20231124154536 → 0.0.0-develop-20241204125016

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 (242) hide show
  1. package/README.md +109 -76
  2. package/dist/ACTRulesModule.d.ts +11 -0
  3. package/dist/ACTRulesModule.d.ts.map +1 -0
  4. package/dist/ACTRulesModule.js +65 -0
  5. package/dist/ACTRulesRunner.d.ts +14 -0
  6. package/dist/ACTRulesRunner.d.ts.map +1 -0
  7. package/dist/ACTRulesRunner.js +44 -0
  8. package/dist/__webpack/act.bundle.js +1 -0
  9. package/dist/index.d.ts +3 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +7 -0
  12. package/dist/lib/ACTRulesTester.object.d.ts +15 -0
  13. package/dist/lib/ACTRulesTester.object.d.ts.map +1 -0
  14. package/dist/lib/ACTRulesTester.object.js +150 -0
  15. package/dist/lib/AtomicRule.object.d.ts +7 -0
  16. package/dist/lib/AtomicRule.object.d.ts.map +1 -0
  17. package/dist/lib/AtomicRule.object.js +7 -0
  18. package/dist/lib/CompositeRule.object.d.ts +13 -0
  19. package/dist/lib/CompositeRule.object.d.ts.map +1 -0
  20. package/dist/lib/CompositeRule.object.js +80 -0
  21. package/dist/lib/Rule.object.d.ts +19 -0
  22. package/dist/lib/Rule.object.d.ts.map +1 -0
  23. package/dist/lib/Rule.object.js +76 -0
  24. package/dist/lib/mapping.d.ts +36 -0
  25. package/dist/lib/mapping.d.ts.map +1 -0
  26. package/dist/lib/mapping.js +38 -0
  27. package/dist/lib/mappingComposite.d.ts +39 -0
  28. package/dist/lib/mappingComposite.d.ts.map +1 -0
  29. package/dist/lib/mappingComposite.js +23 -0
  30. package/dist/lib/rules.json +1523 -0
  31. package/dist/lib/types.d.ts +15 -0
  32. package/dist/lib/types.d.ts.map +1 -0
  33. package/dist/lib/types.js +2 -0
  34. package/dist/rules/QW-ACT-R1.d.ts +7 -0
  35. package/dist/rules/QW-ACT-R1.d.ts.map +1 -0
  36. package/dist/rules/QW-ACT-R1.js +49 -0
  37. package/dist/rules/QW-ACT-R10.d.ts +8 -0
  38. package/dist/rules/QW-ACT-R10.d.ts.map +1 -0
  39. package/dist/rules/QW-ACT-R10.js +98 -0
  40. package/dist/rules/QW-ACT-R11.d.ts +7 -0
  41. package/dist/rules/QW-ACT-R11.d.ts.map +1 -0
  42. package/dist/rules/QW-ACT-R11.js +40 -0
  43. package/dist/rules/QW-ACT-R12.d.ts +7 -0
  44. package/dist/rules/QW-ACT-R12.d.ts.map +1 -0
  45. package/dist/rules/QW-ACT-R12.js +40 -0
  46. package/dist/rules/QW-ACT-R13.d.ts +9 -0
  47. package/dist/rules/QW-ACT-R13.d.ts.map +1 -0
  48. package/dist/rules/QW-ACT-R13.js +76 -0
  49. package/dist/rules/QW-ACT-R14.d.ts +7 -0
  50. package/dist/rules/QW-ACT-R14.d.ts.map +1 -0
  51. package/dist/rules/QW-ACT-R14.js +73 -0
  52. package/dist/rules/QW-ACT-R15.d.ts +6 -0
  53. package/dist/rules/QW-ACT-R15.d.ts.map +1 -0
  54. package/dist/rules/QW-ACT-R15.js +26 -0
  55. package/dist/rules/QW-ACT-R16.d.ts +7 -0
  56. package/dist/rules/QW-ACT-R16.d.ts.map +1 -0
  57. package/dist/rules/QW-ACT-R16.js +52 -0
  58. package/dist/rules/QW-ACT-R17.d.ts +7 -0
  59. package/dist/rules/QW-ACT-R17.d.ts.map +1 -0
  60. package/dist/rules/QW-ACT-R17.js +52 -0
  61. package/dist/rules/QW-ACT-R19.d.ts +7 -0
  62. package/dist/rules/QW-ACT-R19.d.ts.map +1 -0
  63. package/dist/rules/QW-ACT-R19.js +42 -0
  64. package/dist/rules/QW-ACT-R2.d.ts +7 -0
  65. package/dist/rules/QW-ACT-R2.d.ts.map +1 -0
  66. package/dist/rules/QW-ACT-R2.js +40 -0
  67. package/dist/rules/QW-ACT-R20.d.ts +7 -0
  68. package/dist/rules/QW-ACT-R20.d.ts.map +1 -0
  69. package/dist/rules/QW-ACT-R20.js +39 -0
  70. package/dist/rules/QW-ACT-R21.d.ts +8 -0
  71. package/dist/rules/QW-ACT-R21.d.ts.map +1 -0
  72. package/dist/rules/QW-ACT-R21.js +50 -0
  73. package/dist/rules/QW-ACT-R22.d.ts +9 -0
  74. package/dist/rules/QW-ACT-R22.d.ts.map +1 -0
  75. package/dist/rules/QW-ACT-R22.js +69 -0
  76. package/dist/rules/QW-ACT-R23.d.ts +6 -0
  77. package/dist/rules/QW-ACT-R23.d.ts.map +1 -0
  78. package/dist/rules/QW-ACT-R23.js +26 -0
  79. package/dist/rules/QW-ACT-R24.d.ts +12 -0
  80. package/dist/rules/QW-ACT-R24.d.ts.map +1 -0
  81. package/dist/rules/QW-ACT-R24.js +298 -0
  82. package/dist/rules/QW-ACT-R25.d.ts +7 -0
  83. package/dist/rules/QW-ACT-R25.d.ts.map +1 -0
  84. package/dist/rules/QW-ACT-R25.js +67 -0
  85. package/dist/rules/QW-ACT-R26.d.ts +6 -0
  86. package/dist/rules/QW-ACT-R26.d.ts.map +1 -0
  87. package/dist/rules/QW-ACT-R26.js +26 -0
  88. package/dist/rules/QW-ACT-R27.d.ts +7 -0
  89. package/dist/rules/QW-ACT-R27.d.ts.map +1 -0
  90. package/dist/rules/QW-ACT-R27.js +55 -0
  91. package/dist/rules/QW-ACT-R28.d.ts +7 -0
  92. package/dist/rules/QW-ACT-R28.d.ts.map +1 -0
  93. package/dist/rules/QW-ACT-R28.js +83 -0
  94. package/dist/rules/QW-ACT-R29.d.ts +6 -0
  95. package/dist/rules/QW-ACT-R29.d.ts.map +1 -0
  96. package/dist/rules/QW-ACT-R29.js +26 -0
  97. package/dist/rules/QW-ACT-R30.d.ts +9 -0
  98. package/dist/rules/QW-ACT-R30.d.ts.map +1 -0
  99. package/dist/rules/QW-ACT-R30.js +69 -0
  100. package/dist/rules/QW-ACT-R31.d.ts +6 -0
  101. package/dist/rules/QW-ACT-R31.d.ts.map +1 -0
  102. package/dist/rules/QW-ACT-R31.js +26 -0
  103. package/dist/rules/QW-ACT-R32.d.ts +6 -0
  104. package/dist/rules/QW-ACT-R32.d.ts.map +1 -0
  105. package/dist/rules/QW-ACT-R32.js +26 -0
  106. package/dist/rules/QW-ACT-R33.d.ts +8 -0
  107. package/dist/rules/QW-ACT-R33.d.ts.map +1 -0
  108. package/dist/rules/QW-ACT-R33.js +89 -0
  109. package/dist/rules/QW-ACT-R34.d.ts +7 -0
  110. package/dist/rules/QW-ACT-R34.d.ts.map +1 -0
  111. package/dist/rules/QW-ACT-R34.js +112 -0
  112. package/dist/rules/QW-ACT-R35.d.ts +7 -0
  113. package/dist/rules/QW-ACT-R35.d.ts.map +1 -0
  114. package/dist/rules/QW-ACT-R35.js +40 -0
  115. package/dist/rules/QW-ACT-R36.d.ts +7 -0
  116. package/dist/rules/QW-ACT-R36.d.ts.map +1 -0
  117. package/dist/rules/QW-ACT-R36.js +108 -0
  118. package/dist/rules/QW-ACT-R37.d.ts +23 -0
  119. package/dist/rules/QW-ACT-R37.d.ts.map +1 -0
  120. package/dist/rules/QW-ACT-R37.js +358 -0
  121. package/dist/rules/QW-ACT-R38.d.ts +9 -0
  122. package/dist/rules/QW-ACT-R38.d.ts.map +1 -0
  123. package/dist/rules/QW-ACT-R38.js +100 -0
  124. package/dist/rules/QW-ACT-R39.d.ts +8 -0
  125. package/dist/rules/QW-ACT-R39.d.ts.map +1 -0
  126. package/dist/rules/QW-ACT-R39.js +155 -0
  127. package/dist/rules/QW-ACT-R4.d.ts +8 -0
  128. package/dist/rules/QW-ACT-R4.d.ts.map +1 -0
  129. package/dist/rules/QW-ACT-R4.js +85 -0
  130. package/dist/rules/QW-ACT-R40.d.ts +7 -0
  131. package/dist/rules/QW-ACT-R40.d.ts.map +1 -0
  132. package/dist/rules/QW-ACT-R40.js +58 -0
  133. package/dist/rules/QW-ACT-R41.d.ts +7 -0
  134. package/dist/rules/QW-ACT-R41.d.ts.map +1 -0
  135. package/dist/rules/QW-ACT-R41.js +42 -0
  136. package/dist/rules/QW-ACT-R42.d.ts +7 -0
  137. package/dist/rules/QW-ACT-R42.d.ts.map +1 -0
  138. package/dist/rules/QW-ACT-R42.js +40 -0
  139. package/dist/rules/QW-ACT-R43.d.ts +8 -0
  140. package/dist/rules/QW-ACT-R43.d.ts.map +1 -0
  141. package/dist/rules/QW-ACT-R43.js +98 -0
  142. package/dist/rules/QW-ACT-R44.d.ts +8 -0
  143. package/dist/rules/QW-ACT-R44.d.ts.map +1 -0
  144. package/dist/rules/QW-ACT-R44.js +92 -0
  145. package/dist/rules/QW-ACT-R48.d.ts +7 -0
  146. package/dist/rules/QW-ACT-R48.d.ts.map +1 -0
  147. package/dist/rules/QW-ACT-R48.js +38 -0
  148. package/dist/rules/QW-ACT-R49.d.ts +8 -0
  149. package/dist/rules/QW-ACT-R49.d.ts.map +1 -0
  150. package/dist/rules/QW-ACT-R49.js +83 -0
  151. package/dist/rules/QW-ACT-R5.d.ts +8 -0
  152. package/dist/rules/QW-ACT-R5.d.ts.map +1 -0
  153. package/dist/rules/QW-ACT-R5.js +44 -0
  154. package/dist/rules/QW-ACT-R50.d.ts +8 -0
  155. package/dist/rules/QW-ACT-R50.d.ts.map +1 -0
  156. package/dist/rules/QW-ACT-R50.js +76 -0
  157. package/dist/rules/QW-ACT-R51.d.ts +7 -0
  158. package/dist/rules/QW-ACT-R51.d.ts.map +1 -0
  159. package/dist/rules/QW-ACT-R51.js +41 -0
  160. package/dist/rules/QW-ACT-R53.d.ts +7 -0
  161. package/dist/rules/QW-ACT-R53.d.ts.map +1 -0
  162. package/dist/rules/QW-ACT-R53.js +41 -0
  163. package/dist/rules/QW-ACT-R54.d.ts +7 -0
  164. package/dist/rules/QW-ACT-R54.d.ts.map +1 -0
  165. package/dist/rules/QW-ACT-R54.js +41 -0
  166. package/dist/rules/QW-ACT-R55.d.ts +7 -0
  167. package/dist/rules/QW-ACT-R55.d.ts.map +1 -0
  168. package/dist/rules/QW-ACT-R55.js +41 -0
  169. package/dist/rules/QW-ACT-R56.d.ts +7 -0
  170. package/dist/rules/QW-ACT-R56.d.ts.map +1 -0
  171. package/dist/rules/QW-ACT-R56.js +41 -0
  172. package/dist/rules/QW-ACT-R58.d.ts +7 -0
  173. package/dist/rules/QW-ACT-R58.d.ts.map +1 -0
  174. package/dist/rules/QW-ACT-R58.js +33 -0
  175. package/dist/rules/QW-ACT-R59.d.ts +7 -0
  176. package/dist/rules/QW-ACT-R59.d.ts.map +1 -0
  177. package/dist/rules/QW-ACT-R59.js +33 -0
  178. package/dist/rules/QW-ACT-R6.d.ts +7 -0
  179. package/dist/rules/QW-ACT-R6.d.ts.map +1 -0
  180. package/dist/rules/QW-ACT-R6.js +40 -0
  181. package/dist/rules/QW-ACT-R60.d.ts +7 -0
  182. package/dist/rules/QW-ACT-R60.d.ts.map +1 -0
  183. package/dist/rules/QW-ACT-R60.js +41 -0
  184. package/dist/rules/QW-ACT-R61.d.ts +7 -0
  185. package/dist/rules/QW-ACT-R61.d.ts.map +1 -0
  186. package/dist/rules/QW-ACT-R61.js +41 -0
  187. package/dist/rules/QW-ACT-R62.d.ts +7 -0
  188. package/dist/rules/QW-ACT-R62.d.ts.map +1 -0
  189. package/dist/rules/QW-ACT-R62.js +37 -0
  190. package/dist/rules/QW-ACT-R63.d.ts +8 -0
  191. package/dist/rules/QW-ACT-R63.d.ts.map +1 -0
  192. package/dist/rules/QW-ACT-R63.js +60 -0
  193. package/dist/rules/QW-ACT-R64.d.ts +8 -0
  194. package/dist/rules/QW-ACT-R64.d.ts.map +1 -0
  195. package/dist/rules/QW-ACT-R64.js +60 -0
  196. package/dist/rules/QW-ACT-R65.d.ts +7 -0
  197. package/dist/rules/QW-ACT-R65.d.ts.map +1 -0
  198. package/dist/rules/QW-ACT-R65.js +58 -0
  199. package/dist/rules/QW-ACT-R66.d.ts +7 -0
  200. package/dist/rules/QW-ACT-R66.d.ts.map +1 -0
  201. package/dist/rules/QW-ACT-R66.js +40 -0
  202. package/dist/rules/QW-ACT-R67.d.ts +12 -0
  203. package/dist/rules/QW-ACT-R67.d.ts.map +1 -0
  204. package/dist/rules/QW-ACT-R67.js +94 -0
  205. package/dist/rules/QW-ACT-R68.d.ts +14 -0
  206. package/dist/rules/QW-ACT-R68.d.ts.map +1 -0
  207. package/dist/rules/QW-ACT-R68.js +117 -0
  208. package/dist/rules/QW-ACT-R69.d.ts +12 -0
  209. package/dist/rules/QW-ACT-R69.d.ts.map +1 -0
  210. package/dist/rules/QW-ACT-R69.js +94 -0
  211. package/dist/rules/QW-ACT-R7.d.ts +14 -0
  212. package/dist/rules/QW-ACT-R7.d.ts.map +1 -0
  213. package/dist/rules/QW-ACT-R7.js +167 -0
  214. package/dist/rules/QW-ACT-R70.d.ts +7 -0
  215. package/dist/rules/QW-ACT-R70.d.ts.map +1 -0
  216. package/dist/rules/QW-ACT-R70.js +52 -0
  217. package/dist/rules/QW-ACT-R71.d.ts +8 -0
  218. package/dist/rules/QW-ACT-R71.d.ts.map +1 -0
  219. package/dist/rules/QW-ACT-R71.js +81 -0
  220. package/dist/rules/QW-ACT-R73.d.ts +8 -0
  221. package/dist/rules/QW-ACT-R73.d.ts.map +1 -0
  222. package/dist/rules/QW-ACT-R73.js +60 -0
  223. package/dist/rules/QW-ACT-R74.d.ts +8 -0
  224. package/dist/rules/QW-ACT-R74.d.ts.map +1 -0
  225. package/dist/rules/QW-ACT-R74.js +80 -0
  226. package/dist/rules/QW-ACT-R75.d.ts +6 -0
  227. package/dist/rules/QW-ACT-R75.d.ts.map +1 -0
  228. package/dist/rules/QW-ACT-R75.js +27 -0
  229. package/dist/rules/QW-ACT-R76.d.ts +23 -0
  230. package/dist/rules/QW-ACT-R76.d.ts.map +1 -0
  231. package/dist/rules/QW-ACT-R76.js +336 -0
  232. package/dist/rules/QW-ACT-R77.d.ts +7 -0
  233. package/dist/rules/QW-ACT-R77.d.ts.map +1 -0
  234. package/dist/rules/QW-ACT-R77.js +53 -0
  235. package/dist/rules/QW-ACT-R9.d.ts +7 -0
  236. package/dist/rules/QW-ACT-R9.d.ts.map +1 -0
  237. package/dist/rules/QW-ACT-R9.js +87 -0
  238. package/dist/rules/index.d.ts +69 -0
  239. package/dist/rules/index.d.ts.map +1 -0
  240. package/dist/rules/index.js +84 -0
  241. package/package.json +30 -27
  242. package/dist/act.bundle.js +0 -1
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.QW_ACT_R4 = void 0;
13
+ const applicability_1 = require("@qualweb/util/applicability");
14
+ const evaluation_1 = require("@qualweb/core/evaluation");
15
+ const AtomicRule_object_1 = require("../lib/AtomicRule.object");
16
+ class QW_ACT_R4 extends AtomicRule_object_1.AtomicRule {
17
+ execute(element) {
18
+ const content = element.getElementAttribute('content');
19
+ if (this.rule.metadata.passed + this.rule.metadata.failed > 0) {
20
+ return;
21
+ }
22
+ let n = -1;
23
+ const indexOf = content.indexOf(';');
24
+ if (indexOf === -1) {
25
+ if (this.checkIfIsNumber(content) && Number.isInteger(parseInt(content, 0))) {
26
+ n = Number(content);
27
+ }
28
+ }
29
+ else {
30
+ const split = content.split(';');
31
+ if (split.length === 2 &&
32
+ split[0].trim() !== '' &&
33
+ split[1].trim() !== '' &&
34
+ this.checkIfIsNumber(split[0]) &&
35
+ Number.isInteger(parseInt(split[0], 0))) {
36
+ n = Number(split[0]);
37
+ }
38
+ }
39
+ if (n >= 0) {
40
+ const test = new evaluation_1.Test();
41
+ if (n === 0) {
42
+ test.verdict = evaluation_1.Verdict.PASSED;
43
+ test.resultCode = 'P1';
44
+ }
45
+ else if (n > 72000) {
46
+ test.verdict = evaluation_1.Verdict.PASSED;
47
+ test.resultCode = 'P2';
48
+ }
49
+ else {
50
+ test.verdict = evaluation_1.Verdict.FAILED;
51
+ if (indexOf === -1) {
52
+ test.description = this.translate('F1', { seconds: n });
53
+ test.resultCode = 'F1';
54
+ }
55
+ else {
56
+ test.description = this.translate('F2', { seconds: n });
57
+ test.resultCode = 'F2';
58
+ }
59
+ }
60
+ test.addElement(element);
61
+ this.addTestResult(test);
62
+ }
63
+ }
64
+ checkIfIsNumber(num) {
65
+ let success = true;
66
+ for (const n of num || []) {
67
+ if (isNaN(parseInt(n, 0))) {
68
+ success = false;
69
+ break;
70
+ }
71
+ }
72
+ return success;
73
+ }
74
+ }
75
+ exports.QW_ACT_R4 = QW_ACT_R4;
76
+ __decorate([
77
+ applicability_1.ElementExists,
78
+ (0, applicability_1.ElementHasAttribute)('content'),
79
+ (0, applicability_1.ElementHasNonEmptyAttribute)('content'),
80
+ (0, applicability_1.ElementHasAttribute)('http-equiv'),
81
+ (0, applicability_1.ElementHasNonEmptyAttribute)('http-equiv'),
82
+ __metadata("design:type", Function),
83
+ __metadata("design:paramtypes", [Function]),
84
+ __metadata("design:returntype", void 0)
85
+ ], QW_ACT_R4.prototype, "execute", null);
@@ -0,0 +1,7 @@
1
+ import type { QWElement } from '@qualweb/qw-element';
2
+ import { AtomicRule } from '../lib/AtomicRule.object';
3
+ declare class QW_ACT_R40 extends AtomicRule {
4
+ execute(element: QWElement): void;
5
+ }
6
+ export { QW_ACT_R40 };
7
+ //# sourceMappingURL=QW-ACT-R40.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QW-ACT-R40.d.ts","sourceRoot":"","sources":["../../src/rules/QW-ACT-R40.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,cAAM,UAAW,SAAQ,UAAU;IAIjC,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;CAwClC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.QW_ACT_R40 = void 0;
13
+ const applicability_1 = require("@qualweb/util/applicability");
14
+ const evaluation_1 = require("@qualweb/core/evaluation");
15
+ const AtomicRule_object_1 = require("../lib/AtomicRule.object");
16
+ class QW_ACT_R40 extends AtomicRule_object_1.AtomicRule {
17
+ execute(element) {
18
+ let isApplicable = false;
19
+ let parent = element;
20
+ while (parent && parent.getElementTagName().toLowerCase() !== 'html') {
21
+ if (parent.getElementTagName().toLowerCase() === 'svg') {
22
+ isApplicable = false;
23
+ break;
24
+ }
25
+ const of = parent.getElementStyleProperty('overflow', null);
26
+ const ofx = parent.getElementStyleProperty('overflow-x', null);
27
+ const ofy = parent.getElementStyleProperty('overflow-y', null);
28
+ if (of === 'hidden' ||
29
+ of === 'clip' ||
30
+ ofx === 'hidden' ||
31
+ ofx === 'clip' ||
32
+ ofy === 'hidden' ||
33
+ ofy === 'clip') {
34
+ isApplicable = true;
35
+ }
36
+ const ariaHidden = parent.getElementAttribute('aria-hidden');
37
+ if (ariaHidden !== null && ariaHidden === 'true') {
38
+ isApplicable = false;
39
+ break;
40
+ }
41
+ parent = parent.getElementParent();
42
+ }
43
+ if (isApplicable) {
44
+ const test = new evaluation_1.Test(evaluation_1.Verdict.WARNING, undefined, 'W1');
45
+ test.addElement(element);
46
+ this.addTestResult(test);
47
+ }
48
+ }
49
+ }
50
+ exports.QW_ACT_R40 = QW_ACT_R40;
51
+ __decorate([
52
+ applicability_1.ElementExists,
53
+ applicability_1.ElementHasTextNode,
54
+ applicability_1.ElementIsVisible,
55
+ __metadata("design:type", Function),
56
+ __metadata("design:paramtypes", [Function]),
57
+ __metadata("design:returntype", void 0)
58
+ ], QW_ACT_R40.prototype, "execute", null);
@@ -0,0 +1,7 @@
1
+ import type { QWElement } from '@qualweb/qw-element';
2
+ import { AtomicRule } from '../lib/AtomicRule.object';
3
+ declare class QW_ACT_R41 extends AtomicRule {
4
+ execute(element: QWElement): void;
5
+ }
6
+ export { QW_ACT_R41 };
7
+ //# sourceMappingURL=QW-ACT-R41.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QW-ACT-R41.d.ts","sourceRoot":"","sources":["../../src/rules/QW-ACT-R41.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,cAAM,UAAW,SAAQ,UAAU;IAejC,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;CAKlC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.QW_ACT_R41 = void 0;
13
+ const applicability_1 = require("@qualweb/util/applicability");
14
+ const evaluation_1 = require("@qualweb/core/evaluation");
15
+ const AtomicRule_object_1 = require("../lib/AtomicRule.object");
16
+ class QW_ACT_R41 extends AtomicRule_object_1.AtomicRule {
17
+ execute(element) {
18
+ const test = new evaluation_1.Test(evaluation_1.Verdict.WARNING, undefined, 'W1');
19
+ test.addElement(element);
20
+ this.addTestResult(test);
21
+ }
22
+ }
23
+ exports.QW_ACT_R41 = QW_ACT_R41;
24
+ __decorate([
25
+ applicability_1.ElementExists,
26
+ (0, applicability_1.ElementHasOneOfTheFollowingRoles)([
27
+ 'checkbox',
28
+ 'combobox',
29
+ 'listbox',
30
+ 'menuitemcheckbox',
31
+ 'menuitemradio',
32
+ 'radio',
33
+ 'searchbox',
34
+ 'slider',
35
+ 'spinbutton',
36
+ 'switch',
37
+ 'textbox'
38
+ ]),
39
+ __metadata("design:type", Function),
40
+ __metadata("design:paramtypes", [Function]),
41
+ __metadata("design:returntype", void 0)
42
+ ], QW_ACT_R41.prototype, "execute", null);
@@ -0,0 +1,7 @@
1
+ import type { QWElement } from '@qualweb/qw-element';
2
+ import { AtomicRule } from '../lib/AtomicRule.object';
3
+ declare class QW_ACT_R42 extends AtomicRule {
4
+ execute(element: QWElement): void;
5
+ }
6
+ export { QW_ACT_R42 };
7
+ //# sourceMappingURL=QW-ACT-R42.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QW-ACT-R42.d.ts","sourceRoot":"","sources":["../../src/rules/QW-ACT-R42.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,cAAM,UAAW,SAAQ,UAAU;IAIjC,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;CAelC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.QW_ACT_R42 = void 0;
13
+ const applicability_1 = require("@qualweb/util/applicability");
14
+ const evaluation_1 = require("@qualweb/core/evaluation");
15
+ const AtomicRule_object_1 = require("../lib/AtomicRule.object");
16
+ class QW_ACT_R42 extends AtomicRule_object_1.AtomicRule {
17
+ execute(element) {
18
+ const test = new evaluation_1.Test();
19
+ const accessibleName = window.AccessibilityUtils.getAccessibleName(element);
20
+ if (accessibleName && accessibleName.trim() !== '') {
21
+ test.verdict = evaluation_1.Verdict.PASSED;
22
+ test.resultCode = 'P1';
23
+ }
24
+ else {
25
+ test.verdict = evaluation_1.Verdict.FAILED;
26
+ test.resultCode = 'F1';
27
+ }
28
+ test.addElement(element, true, false, true);
29
+ this.addTestResult(test);
30
+ }
31
+ }
32
+ exports.QW_ACT_R42 = QW_ACT_R42;
33
+ __decorate([
34
+ applicability_1.ElementExists,
35
+ applicability_1.ElementIsInAccessibilityTree,
36
+ applicability_1.ElementIsNonText,
37
+ __metadata("design:type", Function),
38
+ __metadata("design:paramtypes", [Function]),
39
+ __metadata("design:returntype", void 0)
40
+ ], QW_ACT_R42.prototype, "execute", null);
@@ -0,0 +1,8 @@
1
+ import type { QWElement } from '@qualweb/qw-element';
2
+ import { AtomicRule } from '../lib/AtomicRule.object';
3
+ declare class QW_ACT_R43 extends AtomicRule {
4
+ execute(element: QWElement): void;
5
+ private isInSequentialFocusNavigation;
6
+ }
7
+ export { QW_ACT_R43 };
8
+ //# sourceMappingURL=QW-ACT-R43.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QW-ACT-R43.d.ts","sourceRoot":"","sources":["../../src/rules/QW-ACT-R43.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,cAAM,UAAW,SAAQ,UAAU;IAGjC,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;IAqEjC,OAAO,CAAC,6BAA6B;CAetC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.QW_ACT_R43 = void 0;
13
+ const applicability_1 = require("@qualweb/util/applicability");
14
+ const evaluation_1 = require("@qualweb/core/evaluation");
15
+ const AtomicRule_object_1 = require("../lib/AtomicRule.object");
16
+ class QW_ACT_R43 extends AtomicRule_object_1.AtomicRule {
17
+ execute(element) {
18
+ if (element.getElementTagName().toLowerCase() === 'iframe') {
19
+ return;
20
+ }
21
+ let hasVisibleChildren = false;
22
+ let isApplicable = false;
23
+ for (const child of element.getElementChildren()) {
24
+ if (window.DomUtils.isElementVisible(child)) {
25
+ hasVisibleChildren = true;
26
+ break;
27
+ }
28
+ }
29
+ if (hasVisibleChildren) {
30
+ const of = element.getElementStyleProperty('overflow', null);
31
+ const ofx = element.getElementStyleProperty('overflow-x', null);
32
+ const ofy = element.getElementStyleProperty('overflow-y', null);
33
+ if (of === 'auto' ||
34
+ of === 'clip' ||
35
+ of === 'scroll' ||
36
+ ofx === 'auto' ||
37
+ ofx === 'clip' ||
38
+ ofx === 'scroll' ||
39
+ ofy === 'auto' ||
40
+ ofy === 'clip' ||
41
+ ofy === 'scroll') {
42
+ const scrollWidth = element.getElementProperty('scrollWidth');
43
+ const clientWidth = element.getElementProperty('clientWidth');
44
+ const differenceWidth = parseInt(scrollWidth) - parseInt(clientWidth);
45
+ const scrollHeight = element.getElementProperty('scrollHeight');
46
+ const clientHeight = element.getElementProperty('clientHeight');
47
+ const differenceHeight = parseInt(scrollHeight) - parseInt(clientHeight);
48
+ const paddingLeft = element.getElementStyleProperty('padding-left', null);
49
+ const paddingRight = element.getElementStyleProperty('padding-right', null);
50
+ const paddingTop = element.getElementStyleProperty('padding-top', null);
51
+ const paddingBottom = element.getElementStyleProperty('padding-bottom', null);
52
+ isApplicable =
53
+ differenceWidth > parseInt(paddingLeft) ||
54
+ differenceWidth > parseInt(paddingRight) ||
55
+ differenceHeight > parseInt(paddingTop) ||
56
+ differenceHeight > parseInt(paddingBottom);
57
+ }
58
+ }
59
+ if (isApplicable) {
60
+ const test = new evaluation_1.Test();
61
+ if (this.isInSequentialFocusNavigation(element)) {
62
+ test.verdict = evaluation_1.Verdict.PASSED;
63
+ test.resultCode = 'P1';
64
+ }
65
+ else {
66
+ test.verdict = evaluation_1.Verdict.FAILED;
67
+ test.resultCode = 'F1';
68
+ }
69
+ test.addElement(element);
70
+ this.addTestResult(test);
71
+ }
72
+ }
73
+ isInSequentialFocusNavigation(element) {
74
+ if (window.AccessibilityUtils.isPartOfSequentialFocusNavigation(element)) {
75
+ return true;
76
+ }
77
+ else {
78
+ let result = false;
79
+ for (const child of element.getElementChildren()) {
80
+ if (window.AccessibilityUtils.isPartOfSequentialFocusNavigation(child)) {
81
+ return true;
82
+ }
83
+ else {
84
+ result = result || this.isInSequentialFocusNavigation(child);
85
+ }
86
+ }
87
+ return result;
88
+ }
89
+ }
90
+ }
91
+ exports.QW_ACT_R43 = QW_ACT_R43;
92
+ __decorate([
93
+ applicability_1.ElementExists,
94
+ applicability_1.ElementIsVisible,
95
+ __metadata("design:type", Function),
96
+ __metadata("design:paramtypes", [Function]),
97
+ __metadata("design:returntype", void 0)
98
+ ], QW_ACT_R43.prototype, "execute", null);
@@ -0,0 +1,8 @@
1
+ import type { QWElement } from '@qualweb/qw-element';
2
+ import { AtomicRule } from '../lib/AtomicRule.object';
3
+ declare class QW_ACT_R44 extends AtomicRule {
4
+ execute(element: QWElement): void;
5
+ private isInListExceptIndex;
6
+ }
7
+ export { QW_ACT_R44 };
8
+ //# sourceMappingURL=QW-ACT-R44.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QW-ACT-R44.d.ts","sourceRoot":"","sources":["../../src/rules/QW-ACT-R44.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,cAAM,UAAW,SAAQ,UAAU;IAEjC,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;IAgEjC,OAAO,CAAC,mBAAmB;CAiB5B;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.QW_ACT_R44 = void 0;
13
+ const applicability_1 = require("@qualweb/util/applicability");
14
+ const evaluation_1 = require("@qualweb/core/evaluation");
15
+ const AtomicRule_object_1 = require("../lib/AtomicRule.object");
16
+ class QW_ACT_R44 extends AtomicRule_object_1.AtomicRule {
17
+ execute(element) {
18
+ const links = element.getElements('a[href], [role="link"]');
19
+ const linkDataList = new Array();
20
+ for (const link of links || []) {
21
+ let aName;
22
+ if (window.DomUtils.isElementADescendantOf(link, ['svg'], [])) {
23
+ aName = window.AccessibilityUtils.getAccessibleNameSVG(link);
24
+ }
25
+ else if (window.AccessibilityUtils.isElementInAT(link)) {
26
+ aName = window.AccessibilityUtils.getAccessibleName(link);
27
+ }
28
+ const href = link.getElementAttribute('href');
29
+ const context = window.AccessibilityUtils.getLinkContext(link);
30
+ if (aName) {
31
+ linkDataList.push({
32
+ context,
33
+ href,
34
+ aName,
35
+ link
36
+ });
37
+ }
38
+ }
39
+ let counter = 0;
40
+ const blacklist = new Array();
41
+ for (const linkData of linkDataList || []) {
42
+ const test = new evaluation_1.Test();
43
+ const elementList = new Array();
44
+ if (blacklist.indexOf(counter) >= 0) {
45
+ }
46
+ else if (!!linkData.aName && linkData.aName !== '') {
47
+ const hasEqualAn = this.isInListExceptIndex(linkData, linkDataList, counter);
48
+ if (hasEqualAn.length > 0) {
49
+ blacklist.push(...hasEqualAn);
50
+ let hasEqualHref = false;
51
+ for (const index of hasEqualAn) {
52
+ hasEqualHref =
53
+ linkDataList[index].href === linkDataList[counter].href && linkDataList[counter].href !== null;
54
+ elementList.push(linkDataList[index].link);
55
+ }
56
+ elementList.push(linkDataList[counter].link);
57
+ if (hasEqualHref) {
58
+ test.verdict = evaluation_1.Verdict.PASSED;
59
+ test.resultCode = 'P1';
60
+ }
61
+ else {
62
+ test.verdict = evaluation_1.Verdict.WARNING;
63
+ test.resultCode = 'W1';
64
+ }
65
+ test.addElements(elementList);
66
+ this.addTestResult(test);
67
+ }
68
+ }
69
+ counter++;
70
+ }
71
+ }
72
+ isInListExceptIndex(linkData, linkDataList, index) {
73
+ const result = new Array();
74
+ let counter = 0;
75
+ for (const linkDataToCompare of linkDataList || []) {
76
+ if (linkDataToCompare.aName === linkData.aName &&
77
+ linkData.context.toString() === linkDataToCompare.context.toString() &&
78
+ counter !== index) {
79
+ result.push(counter);
80
+ }
81
+ counter++;
82
+ }
83
+ return result;
84
+ }
85
+ }
86
+ exports.QW_ACT_R44 = QW_ACT_R44;
87
+ __decorate([
88
+ applicability_1.ElementExists,
89
+ __metadata("design:type", Function),
90
+ __metadata("design:paramtypes", [Function]),
91
+ __metadata("design:returntype", void 0)
92
+ ], QW_ACT_R44.prototype, "execute", null);
@@ -0,0 +1,7 @@
1
+ import type { QWElement } from '@qualweb/qw-element';
2
+ import { AtomicRule } from '../lib/AtomicRule.object';
3
+ declare class QW_ACT_R48 extends AtomicRule {
4
+ execute(element: QWElement): void;
5
+ }
6
+ export { QW_ACT_R48 };
7
+ //# sourceMappingURL=QW-ACT-R48.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QW-ACT-R48.d.ts","sourceRoot":"","sources":["../../src/rules/QW-ACT-R48.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,cAAM,UAAW,SAAQ,UAAU;IAEjC,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;CAelC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.QW_ACT_R48 = void 0;
13
+ const applicability_1 = require("@qualweb/util/applicability");
14
+ const evaluation_1 = require("@qualweb/core/evaluation");
15
+ const AtomicRule_object_1 = require("../lib/AtomicRule.object");
16
+ class QW_ACT_R48 extends AtomicRule_object_1.AtomicRule {
17
+ execute(element) {
18
+ const test = new evaluation_1.Test();
19
+ const isInAT = window.AccessibilityUtils.isElementInAT(element);
20
+ if (!isInAT) {
21
+ test.verdict = evaluation_1.Verdict.PASSED;
22
+ test.resultCode = 'P1';
23
+ }
24
+ else {
25
+ test.verdict = evaluation_1.Verdict.FAILED;
26
+ test.resultCode = 'F1';
27
+ }
28
+ test.addElement(element);
29
+ this.addTestResult(test);
30
+ }
31
+ }
32
+ exports.QW_ACT_R48 = QW_ACT_R48;
33
+ __decorate([
34
+ applicability_1.ElementExists,
35
+ __metadata("design:type", Function),
36
+ __metadata("design:paramtypes", [Function]),
37
+ __metadata("design:returntype", void 0)
38
+ ], QW_ACT_R48.prototype, "execute", null);
@@ -0,0 +1,8 @@
1
+ import type { QWElement } from '@qualweb/qw-element';
2
+ import { AtomicRule } from '../lib/AtomicRule.object';
3
+ declare class QW_ACT_R49 extends AtomicRule {
4
+ execute(element: QWElement): void;
5
+ private srcTimeIsLessThanThree;
6
+ }
7
+ export { QW_ACT_R49 };
8
+ //# sourceMappingURL=QW-ACT-R49.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QW-ACT-R49.d.ts","sourceRoot":"","sources":["../../src/rules/QW-ACT-R49.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,cAAM,UAAW,SAAQ,UAAU;IAEjC,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;IAyCjC,OAAO,CAAC,sBAAsB;CAoB/B;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.QW_ACT_R49 = void 0;
13
+ const applicability_1 = require("@qualweb/util/applicability");
14
+ const evaluation_1 = require("@qualweb/core/evaluation");
15
+ const AtomicRule_object_1 = require("../lib/AtomicRule.object");
16
+ class QW_ACT_R49 extends AtomicRule_object_1.AtomicRule {
17
+ execute(element) {
18
+ const test = new evaluation_1.Test();
19
+ const autoplay = element.getElementProperty('autoplay');
20
+ const paused = element.getElementAttribute('paused');
21
+ const muted = element.getElementProperty('muted');
22
+ const srcAttr = element.getElementAttribute('src');
23
+ const childSrc = element.getElements('source[src]');
24
+ const duration = parseInt(element.getElementProperty('duration'));
25
+ const hasSoundTrack = window.DomUtils.videoElementHasAudio(element);
26
+ const isAudioElement = element.getElementTagName() === 'audio';
27
+ const hasPuppeteerApplicableData = duration > 3 && (hasSoundTrack || isAudioElement);
28
+ const src = new Array();
29
+ if (childSrc.length > 0) {
30
+ for (const child of childSrc || []) {
31
+ src.push(child.getElementAttribute('src'));
32
+ }
33
+ }
34
+ else {
35
+ src.push(srcAttr);
36
+ }
37
+ if (!(!autoplay || paused || muted || (!srcAttr && childSrc.length === 0))) {
38
+ if (!(duration >= 0 && (hasSoundTrack || isAudioElement))) {
39
+ test.verdict = evaluation_1.Verdict.INAPPLICABLE;
40
+ test.resultCode = 'I1';
41
+ }
42
+ else if (hasPuppeteerApplicableData) {
43
+ if (this.srcTimeIsLessThanThree(src, duration)) {
44
+ test.verdict = evaluation_1.Verdict.PASSED;
45
+ test.resultCode = 'P1';
46
+ }
47
+ else {
48
+ test.verdict = evaluation_1.Verdict.FAILED;
49
+ test.resultCode = 'F1';
50
+ }
51
+ }
52
+ test.addElement(element);
53
+ this.addTestResult(test);
54
+ }
55
+ }
56
+ srcTimeIsLessThanThree(src, duration) {
57
+ let result = false;
58
+ for (const child of src || []) {
59
+ if (child) {
60
+ const values = String(child).split('#t=');
61
+ if (values.length > 1) {
62
+ const separatedValues = values[1].split(',');
63
+ const value1 = Number(separatedValues[0]);
64
+ const value2 = Number(separatedValues[1]);
65
+ if (value1 && value2) {
66
+ result = Math.abs(value1 - value2) <= 3;
67
+ }
68
+ else if (value1) {
69
+ result = Math.abs(duration - value1) <= 3;
70
+ }
71
+ }
72
+ }
73
+ }
74
+ return result;
75
+ }
76
+ }
77
+ exports.QW_ACT_R49 = QW_ACT_R49;
78
+ __decorate([
79
+ applicability_1.ElementExists,
80
+ __metadata("design:type", Function),
81
+ __metadata("design:paramtypes", [Function]),
82
+ __metadata("design:returntype", void 0)
83
+ ], QW_ACT_R49.prototype, "execute", null);
@@ -0,0 +1,8 @@
1
+ import type { QWElement } from '@qualweb/qw-element';
2
+ import { AtomicRule } from '../lib/AtomicRule.object';
3
+ declare class QW_ACT_R5 extends AtomicRule {
4
+ execute(element: QWElement): void;
5
+ private checkValidity;
6
+ }
7
+ export { QW_ACT_R5 };
8
+ //# sourceMappingURL=QW-ACT-R5.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QW-ACT-R5.d.ts","sourceRoot":"","sources":["../../src/rules/QW-ACT-R5.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,cAAM,SAAU,SAAQ,UAAU;IAKhC,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;IAiBjC,OAAO,CAAC,aAAa;CAItB;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}