@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
package/README.md CHANGED
@@ -1,87 +1,120 @@
1
1
  # QualWeb ACT Rules Module
2
2
 
3
- Implementation of the [ACT rules](https://act-rules.github.io/rules/).
3
+ Implementation of the [ACT rules](https://www.w3.org/WAI/standards-guidelines/act/rules/).
4
4
 
5
5
  ## How to use
6
6
 
7
- **This is an internal module of QualWeb. To use it check either [@qualweb/cli](https://github.com/qualweb/cli) or [@qualweb/core](https://github.com/qualweb/core). You can also perform evaluations at [http://qualweb.di.fc.ul.pt/evaluator/](http://qualweb.di.fc.ul.pt/evaluator/), or by installing the [chrome extension](https://chrome.google.com/webstore/detail/qualweb-extension/ljgilomdnehokancdcbkmbndkkiggioc).**
7
+ This package is intended to be used with [@qualweb/core](https://github.com/qualweb/core).
8
+
9
+ Add both packages to your project:
10
+
11
+ ```bash
12
+ npm i --save @qualweb/core @qualweb/act-rules
13
+ ```
14
+
15
+ In your own code, pass an instance of the `ACTRules` class to QualWeb's evaluate method:
16
+
17
+ ```typescript
18
+ import { ACTRules } from '@qualweb/act-rules';
19
+ import { QualWeb } from '@qualweb/core';
20
+
21
+ async function main() {
22
+ const qw = new QualWeb();
23
+
24
+ await qw.start();
25
+
26
+ const actRuleInstance = new ACTRules({
27
+ // Include/exclude specific rules here. Omitting any filters implies *all*
28
+ // rules are included.
29
+ levels: ['A', 'AA'],
30
+ exclude: ['QW-ACT-R3'],
31
+ });
32
+
33
+ const urlToEvaluate = 'https://www.google.com';
34
+
35
+ const report = await qw.evaluate({
36
+ url: urlToEvaluate,
37
+ modules: [actRuleInstance],
38
+ });
39
+
40
+ await qw.stop();
41
+
42
+ console.debug(report[urlToEvaluate].metadata);
43
+ }
44
+ ```
8
45
 
9
46
  ## Implemented rules
10
47
 
11
- | QualWeb Rule ID | ACT Rule ID | ACT Rule Name |
12
- | --------------- | -------------------------------------------------- | ----------------------------------------------------------------------------------- |
13
- | QW-ACT-R1 | [2779a5](https://act-rules.github.io/rules/2779a5) | HTML page has non-empty title |
14
- | QW-ACT-R2 | [b5c3f8](https://act-rules.github.io/rules/b5c3f8) | HTML page has lang attribute |
15
- | QW-ACT-R3 | [5b7ae0](https://act-rules.github.io/rules/5b7ae0) | HTML page lang and xml:lang attributes have matching values |
16
- | QW-ACT-R4 | [bc659a](https://act-rules.github.io/rules/bc659a) | Meta element has no refresh delay |
17
- | QW-ACT-R5 | [bf051a](https://act-rules.github.io/rules/bf051a) | HTML page lang attribute has valid language tag |
18
- | QW-ACT-R6 | [59796f](https://act-rules.github.io/rules/59796f) | Image button has non-empty accessible name |
19
- | QW-ACT-R7 | [b33eff](https://act-rules.github.io/rules/b33eff) | Orientation of the page is not restricted using CSS transform property |
20
- | QW-ACT-R9 | [b20e66](https://act-rules.github.io/rules/b20e66) | Links with identical accessible names have equivalent purpose |
21
- | QW-ACT-R10 | [4b1c6c](https://act-rules.github.io/rules/4b1c6c) | Iframe elements with identical accessible names have equivalent purpose |
22
- | QW-ACT-R11 | [97a4e1](https://act-rules.github.io/rules/97a4e1) | Button has non-empty accessible name |
23
- | QW-ACT-R12 | [c487ae](https://act-rules.github.io/rules/c487ae) | Link has non-empty accessible name |
24
- | QW-ACT-R13 | [6cfa84](https://act-rules.github.io/rules/6cfa84) | Element with aria-hidden has no content in sequential focus navigation |
25
- | QW-ACT-R14 | [b4f0c3](https://act-rules.github.io/rules/b4f0c3) | Meta viewport allows for zoom |
26
- | QW-ACT-R15 | [80f0bf](https://act-rules.github.io/rules/80f0bf) | Audio or video element avoids automatically playing audio |
27
- | QW-ACT-R16 | [e086e5](https://act-rules.github.io/rules/e086e5) | Form field has non-empty accessible name |
28
- | QW-ACT-R17 | [23a2a8](https://act-rules.github.io/rules/23a2a8) | Image has non-empty accessible name |
29
- | QW-ACT-R18 | [3ea0c8](https://act-rules.github.io/rules/3ea0c8) | Id attribute value is unique |
30
- | QW-ACT-R19 | [cae760](https://act-rules.github.io/rules/cae760) | Iframe element has non-empty accessible name |
31
- | QW-ACT-R20 | [674b10](https://act-rules.github.io/rules/674b10) | Role attribute has valid value |
32
- | QW-ACT-R21 | [7d6734](https://act-rules.github.io/rules/7d6734) | SVG element with explicit role has non-empty accessible name |
33
- | QW-ACT-R22 | [de46e4](https://act-rules.github.io/rules/de46e4) | Element with lang attribute has valid language tag |
34
- | QW-ACT-R23 | [c5a4ea](https://act-rules.github.io/rules/c5a4ea) | Video element visual content has accessible alternative |
35
- | QW-ACT-R24 | [73f2c2](https://act-rules.github.io/rules/73f2c2) | autocomplete attribute has valid value |
36
- | QW-ACT-R25 | [5c01ea](https://act-rules.github.io/rules/5c01ea) | ARIA state or property is permitted |
37
- | QW-ACT-R26 | [eac66b](https://act-rules.github.io/rules/eac66b) | Video element auditory content has accessible alternative |
38
- | QW-ACT-R27 | [5f99a7](https://act-rules.github.io/rules/5f99a7) | ARIA attribute is defined in WAI-ARIA |
39
- | QW-ACT-R28 | [4e8ab6](https://act-rules.github.io/rules/4e8ab6) | Element with role attribute has required states and properties |
40
- | QW-ACT-R29 | [e7aa44](https://act-rules.github.io/rules/e7aa44) | Audio element content has text alternative |
41
- | QW-ACT-R30 | [2ee8b8](https://act-rules.github.io/rules/2ee8b8) | Visible label is part of accessible name |
42
- | QW-ACT-R31 | [c3232f](https://act-rules.github.io/rules/c3232f) | Video element visual-only content has accessible alternative |
43
- | QW-ACT-R32 | [1ec09b](https://act-rules.github.io/rules/1ec09b) | video element visual content has strict accessible alternative |
44
- | QW-ACT-R33 | [ff89c9](https://act-rules.github.io/rules/ff89c9) | ARIA required context role |
45
- | QW-ACT-R34 | [6a7281](https://act-rules.github.io/rules/6a7281) | ARIA state or property has valid value |
46
- | QW-ACT-R35 | [ffd0e9](https://act-rules.github.io/rules/ffd0e9) | Heading has non-empty accessible name |
47
- | QW-ACT-R36 | [a25f45](https://act-rules.github.io/rules/a25f45) | Headers attribute specified on a cell refers to cells in the same table element |
48
- | QW-ACT-R37 | [afw4f7](https://act-rules.github.io/rules/afw4f7) | Text has minimum contrast |
49
- | QW-ACT-R38 | [bc4a75](https://act-rules.github.io/rules/bc4a75) | ARIA required owned elements |
50
- | QW-ACT-R39 | [d0f69e](https://act-rules.github.io/rules/d0f69e) | Table header cell has assigned cells |
51
- | QW-ACT-R40 | [59br37](https://act-rules.github.io/rules/59br37) | Zoomed text node is not clipped with CSS overflow |
52
- | QW-ACT-R41 | [36b590](https://act-rules.github.io/rules/36b590) | Error message describes invalid form field value |
53
- | QW-ACT-R42 | [8fc3b6](https://act-rules.github.io/rules/8fc3b6) | Object element rendering non-text content has non-empty accessible name |
54
- | QW-ACT-R43 | [0ssw9k](https://act-rules.github.io/rules/0ssw9k) | Scrollable element is keyboard accessible |
55
- | QW-ACT-R44 | [fd3a94](https://act-rules.github.io/rules/fd3a94) | Links with identical accessible names and same context serve equivalent purpose |
56
- | QW-ACT-R48 | [46ca7f](https://act-rules.github.io/rules/46ca7f) | Element marked as decorative is not exposed |
57
- | QW-ACT-R49 | [aaa1bf](https://act-rules.github.io/rules/aaa1bf) | Audio or video that plays automatically has no audio that lasts more than 3 seconds |
58
- | QW-ACT-R50 | [4c31df](https://act-rules.github.io/rules/4c31df) | Audio or video that plays automatically has a control mechanism |
59
- | QW-ACT-R51 | [fd26cf](https://act-rules.github.io/rules/fd26cf) | Video element visual-only content is media alternative for text |
60
- | QW-ACT-R52 | [ac7dc6](https://act-rules.github.io/rules/ac7dc6) | Video element visual-only content has description track |
61
- | QW-ACT-R53 | [ee13b5](https://act-rules.github.io/rules/ee13b5) | Video element visual-only content has transcript |
62
- | QW-ACT-R54 | [d7ba54](https://act-rules.github.io/rules/d7ba54) | Video element visual-only content has audio track alternative |
63
- | QW-ACT-R55 | [1ea59c](https://act-rules.github.io/rules/1ea59c) | Video element visual content has audio description |
64
- | QW-ACT-R56 | [ab4d13](https://act-rules.github.io/rules/ab4d13) | Video element content is media alternative for text |
65
- | QW-ACT-R57 | [f196ce](https://act-rules.github.io/rules/f196ce) | Video element visual content has description track |
66
- | QW-ACT-R58 | [2eb176](https://act-rules.github.io/rules/2eb176) | Audio element content has transcript |
67
- | QW-ACT-R59 | [afb423](https://act-rules.github.io/rules/afb423) | Audio element content is media alternative for text |
68
- | QW-ACT-R60 | [f51b46](https://act-rules.github.io/rules/f51b46) | Video element auditory content has captions |
69
- | QW-ACT-R61 | [1a02b0](https://act-rules.github.io/rules/1a02b0) | Audio and visuals of video element have transcript |
70
- | QW-ACT-R62 | [oj04fd](https://act-rules.github.io/rules/oj04fd) | Element in sequential focus order has visible focus |
71
- | QW-ACT-R63 | [b40fd1](https://act-rules.github.io/rules/b40fd1) | Document has a landmark with non-repeated content |
72
- | QW-ACT-R64 | [047fe0](https://act-rules.github.io/rules/047fe0) | Document has heading for non-repeated content |
73
- | QW-ACT-R65 | [307n5z](https://act-rules.github.io/rules/307n5z) | Element with presentational children has no focusable content |
74
- | QW-ACT-R66 | [m6b1q3](https://act-rules.github.io/rules/m6b1q3) | Menuitem has non-empty accessible name |
75
- | QW-ACT-R67 | [24afc2](https://act-rules.github.io/rules/24afc2) | Letter spacing in style attributes is not !important |
76
- | QW-ACT-R68 | [78fd32](https://act-rules.github.io/rules/78fd32) | Line height in style attributes is not !important |
77
- | QW-ACT-R69 | [9e45ec](https://act-rules.github.io/rules/9e45ec) | Word spacing in style attributes is not !important |
78
- | QW-ACT-R70 | [akn7bn](https://act-rules.github.io/rules/akn7bn) | Iframe with interactive elements is not excluded from tab-order |
79
- | QW-ACT-R71 | [bisz58](https://act-rules.github.io/rules/bisz58) | Meta element has no refresh delay (no exception) |
80
- | QW-ACT-R72 | [8a213c](https://act-rules.github.io/rules/8a213c) | First focusable element is link to non-repeated content |
81
- | QW-ACT-R73 | [3e12e1](https://act-rules.github.io/rules/3e12e1) | Block of repeated content is collapsible |
82
- | QW-ACT-R74 | [ye5d6e](https://act-rules.github.io/rules/ye5d6e) | Document has an instrument to move focus to non-repeated content |
83
- | QW-ACT-R75 | [cf77f2](https://act-rules.github.io/rules/cf77f2) | Bypass Blocks of Repeated Content |
84
- | QW-ACT-R76 | [09o5cg](https://act-rules.github.io/rules/09o5cg) | Text has enhanced contrast |
48
+ | QualWeb Rule ID | ACT Rule ID | ACT Rule Name |
49
+ | --------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
50
+ | QW-ACT-R1 | [2779a5](https://www.w3.org/WAI/standards-guidelines/act/rules/2779a5/) | HTML page has non-empty title |
51
+ | QW-ACT-R2 | [b5c3f8](https://www.w3.org/WAI/standards-guidelines/act/rules/b5c3f8/) | HTML page has lang attribute |
52
+ | QW-ACT-R4 | [bc659a](https://www.w3.org/WAI/standards-guidelines/act/rules/bc659a/) | Meta element has no refresh delay |
53
+ | QW-ACT-R5 | [bf051a](https://www.w3.org/WAI/standards-guidelines/act/rules/bf051a/) | HTML page lang attribute has valid language tag |
54
+ | QW-ACT-R6 | [59796f](https://www.w3.org/WAI/standards-guidelines/act/rules/59796f/) | Image button has non-empty accessible name |
55
+ | QW-ACT-R7 | [b33eff](https://www.w3.org/WAI/standards-guidelines/act/rules/b33eff/) | Orientation of the page is not restricted using CSS transform property |
56
+ | QW-ACT-R9 | [b20e66](https://www.w3.org/WAI/standards-guidelines/act/rules/b20e66/) | Links with identical accessible names have equivalent purpose |
57
+ | QW-ACT-R10 | [4b1c6c](https://www.w3.org/WAI/standards-guidelines/act/rules/4b1c6c/) | Iframe elements with identical accessible names have equivalent purpose |
58
+ | QW-ACT-R11 | [97a4e1](https://www.w3.org/WAI/standards-guidelines/act/rules/97a4e1/) | Button has non-empty accessible name |
59
+ | QW-ACT-R12 | [c487ae](https://www.w3.org/WAI/standards-guidelines/act/rules/c487ae/) | Link has non-empty accessible name |
60
+ | QW-ACT-R13 | [6cfa84](https://www.w3.org/WAI/standards-guidelines/act/rules/6cfa84/) | Element with aria-hidden has no content in sequential focus navigation |
61
+ | QW-ACT-R14 | [b4f0c3](https://www.w3.org/WAI/standards-guidelines/act/rules/b4f0c3/) | Meta viewport allows for zoom |
62
+ | QW-ACT-R15 | [80f0bf](https://www.w3.org/WAI/standards-guidelines/act/rules/80f0bf/) | Audio or video element avoids automatically playing audio |
63
+ | QW-ACT-R16 | [e086e5](https://www.w3.org/WAI/standards-guidelines/act/rules/e086e5/) | Form field has non-empty accessible name |
64
+ | QW-ACT-R17 | [23a2a8](https://www.w3.org/WAI/standards-guidelines/act/rules/23a2a8/) | Image has non-empty accessible name |
65
+ | QW-ACT-R19 | [cae760](https://www.w3.org/WAI/standards-guidelines/act/rules/cae760/) | Iframe element has non-empty accessible name |
66
+ | QW-ACT-R20 | [674b10](https://www.w3.org/WAI/standards-guidelines/act/rules/674b10/) | Role attribute has valid value |
67
+ | QW-ACT-R21 | [7d6734](https://www.w3.org/WAI/standards-guidelines/act/rules/7d6734/) | SVG element with explicit role has non-empty accessible name |
68
+ | QW-ACT-R22 | [de46e4](https://www.w3.org/WAI/standards-guidelines/act/rules/de46e4/) | Element with lang attribute has valid language tag |
69
+ | QW-ACT-R23 | [c5a4ea](https://www.w3.org/WAI/standards-guidelines/act/rules/c5a4ea/) | Video element visual content has accessible alternative |
70
+ | QW-ACT-R24 | [73f2c2](https://www.w3.org/WAI/standards-guidelines/act/rules/73f2c2/) | autocomplete attribute has valid value |
71
+ | QW-ACT-R25 | [5c01ea](https://www.w3.org/WAI/standards-guidelines/act/rules/5c01ea/) | ARIA state or property is permitted |
72
+ | QW-ACT-R26 | [eac66b](https://www.w3.org/WAI/standards-guidelines/act/rules/eac66b/) | Video element auditory content has accessible alternative |
73
+ | QW-ACT-R27 | [5f99a7](https://www.w3.org/WAI/standards-guidelines/act/rules/5f99a7/) | ARIA attribute is defined in WAI-ARIA |
74
+ | QW-ACT-R28 | [4e8ab6](https://www.w3.org/WAI/standards-guidelines/act/rules/4e8ab6/) | Element with role attribute has required states and properties |
75
+ | QW-ACT-R29 | [e7aa44](https://www.w3.org/WAI/standards-guidelines/act/rules/e7aa44/) | Audio element content has text alternative |
76
+ | QW-ACT-R30 | [2ee8b8](https://www.w3.org/WAI/standards-guidelines/act/rules/2ee8b8/) | Visible label is part of accessible name |
77
+ | QW-ACT-R31 | [c3232f](https://www.w3.org/WAI/standards-guidelines/act/rules/c3232f/) | Video element visual-only content has accessible alternative |
78
+ | QW-ACT-R32 | [1ec09b](https://www.w3.org/WAI/standards-guidelines/act/rules/1ec09b/) | video element visual content has strict accessible alternative |
79
+ | QW-ACT-R33 | [ff89c9](https://www.w3.org/WAI/standards-guidelines/act/rules/ff89c9/) | ARIA required context role |
80
+ | QW-ACT-R34 | [6a7281](https://www.w3.org/WAI/standards-guidelines/act/rules/6a7281/) | ARIA state or property has valid value |
81
+ | QW-ACT-R35 | [ffd0e9](https://www.w3.org/WAI/standards-guidelines/act/rules/ffd0e9/) | Heading has non-empty accessible name |
82
+ | QW-ACT-R36 | [a25f45](https://www.w3.org/WAI/standards-guidelines/act/rules/a25f45/) | Headers attribute specified on a cell refers to cells in the same table element |
83
+ | QW-ACT-R37 | [afw4f7](https://www.w3.org/WAI/standards-guidelines/act/rules/afw4f7/) | Text has minimum contrast |
84
+ | QW-ACT-R38 | [bc4a75](https://www.w3.org/WAI/standards-guidelines/act/rules/bc4a75/) | ARIA required owned elements |
85
+ | QW-ACT-R39 | [d0f69e](https://www.w3.org/WAI/standards-guidelines/act/rules/d0f69e/) | Table header cell has assigned cells |
86
+ | QW-ACT-R40 | [59br37](https://www.w3.org/WAI/standards-guidelines/act/rules/59br37/) | Zoomed text node is not clipped with CSS overflow |
87
+ | QW-ACT-R41 | [36b590](https://www.w3.org/WAI/standards-guidelines/act/rules/36b590/) | Error message describes invalid form field value |
88
+ | QW-ACT-R42 | [8fc3b6](https://www.w3.org/WAI/standards-guidelines/act/rules/8fc3b6/) | Object element rendering non-text content has non-empty accessible name |
89
+ | QW-ACT-R43 | [0ssw9k](https://www.w3.org/WAI/standards-guidelines/act/rules/0ssw9k/) | Scrollable element is keyboard accessible |
90
+ | QW-ACT-R44 | [fd3a94](https://www.w3.org/WAI/standards-guidelines/act/rules/fd3a94/) | Links with identical accessible names and same context serve equivalent purpose |
91
+ | QW-ACT-R48 | [46ca7f](https://www.w3.org/WAI/standards-guidelines/act/rules/46ca7f/) | Element marked as decorative is not exposed |
92
+ | QW-ACT-R49 | [aaa1bf](https://www.w3.org/WAI/standards-guidelines/act/rules/aaa1bf/) | Audio or video that plays automatically has no audio that lasts more than 3 seconds |
93
+ | QW-ACT-R50 | [4c31df](https://www.w3.org/WAI/standards-guidelines/act/rules/4c31df/) | Audio or video that plays automatically has a control mechanism |
94
+ | QW-ACT-R51 | [fd26cf](https://www.w3.org/WAI/standards-guidelines/act/rules/fd26cf/) | Video element visual-only content is media alternative for text |
95
+ | QW-ACT-R53 | [ee13b5](https://www.w3.org/WAI/standards-guidelines/act/rules/ee13b5/) | Video element visual-only content has transcript |
96
+ | QW-ACT-R54 | [d7ba54](https://www.w3.org/WAI/standards-guidelines/act/rules/d7ba54/) | Video element visual-only content has audio track alternative |
97
+ | QW-ACT-R55 | [1ea59c](https://www.w3.org/WAI/standards-guidelines/act/rules/1ea59c/) | Video element visual content has audio description |
98
+ | QW-ACT-R56 | [ab4d13](https://www.w3.org/WAI/standards-guidelines/act/rules/ab4d13/) | Video element content is media alternative for text |
99
+ | QW-ACT-R58 | [2eb176](https://www.w3.org/WAI/standards-guidelines/act/rules/2eb176/) | Audio element content has transcript |
100
+ | QW-ACT-R59 | [afb423](https://www.w3.org/WAI/standards-guidelines/act/rules/afb423/) | Audio element content is media alternative for text |
101
+ | QW-ACT-R60 | [f51b46](https://www.w3.org/WAI/standards-guidelines/act/rules/f51b46/) | Video element auditory content has captions |
102
+ | QW-ACT-R61 | [1a02b0](https://www.w3.org/WAI/standards-guidelines/act/rules/1a02b0/) | Audio and visuals of video element have transcript |
103
+ | QW-ACT-R62 | [oj04fd](https://www.w3.org/WAI/standards-guidelines/act/rules/oj04fd/) | Element in sequential focus order has visible focus |
104
+ | QW-ACT-R63 | [b40fd1](https://www.w3.org/WAI/standards-guidelines/act/rules/b40fd1/) | Document has a landmark with non-repeated content |
105
+ | QW-ACT-R64 | [047fe0](https://www.w3.org/WAI/standards-guidelines/act/rules/047fe0/) | Document has heading for non-repeated content |
106
+ | QW-ACT-R65 | [307n5z](https://www.w3.org/WAI/standards-guidelines/act/rules/307n5z/) | Element with presentational children has no focusable content |
107
+ | QW-ACT-R66 | [m6b1q3](https://www.w3.org/WAI/standards-guidelines/act/rules/m6b1q3/) | Menuitem has non-empty accessible name |
108
+ | QW-ACT-R67 | [24afc2](https://www.w3.org/WAI/standards-guidelines/act/rules/24afc2/) | Letter spacing in style attributes is not !important |
109
+ | QW-ACT-R68 | [78fd32](https://www.w3.org/WAI/standards-guidelines/act/rules/78fd32/) | Line height in style attributes is not !important |
110
+ | QW-ACT-R69 | [9e45ec](https://www.w3.org/WAI/standards-guidelines/act/rules/9e45ec/) | Word spacing in style attributes is not !important |
111
+ | QW-ACT-R70 | [akn7bn](https://www.w3.org/WAI/standards-guidelines/act/rules/akn7bn/) | Iframe with interactive elements is not excluded from tab-order |
112
+ | QW-ACT-R71 | [bisz58](https://www.w3.org/WAI/standards-guidelines/act/rules/bisz58/) | Meta element has no refresh delay (no exception) |
113
+ | QW-ACT-R73 | [3e12e1](https://www.w3.org/WAI/standards-guidelines/act/rules/3e12e1/) | Block of repeated content is collapsible |
114
+ | QW-ACT-R74 | [ye5d6e](https://www.w3.org/WAI/standards-guidelines/act/rules/ye5d6e/) | Document has an instrument to move focus to non-repeated content |
115
+ | QW-ACT-R75 | [cf77f2](https://www.w3.org/WAI/standards-guidelines/act/rules/cf77f2/) | Bypass Blocks of Repeated Content |
116
+ | QW-ACT-R76 | [09o5cg](https://www.w3.org/WAI/standards-guidelines/act/rules/09o5cg/) | Text has enhanced contrast |
117
+ | QW-ACT-R77 | [in6db8](https://www.w3.org/WAI/standards-guidelines/act/rules/in6db8/) | ARIA required ID references exist |
85
118
 
86
119
  # License
87
120
 
@@ -0,0 +1,11 @@
1
+ import type { EvaluationReport, ModuleOptions, TestingData } from '@qualweb/core/evaluation';
2
+ import { ModuleType, ExecutableModuleContext } from '@qualweb/core/evaluation';
3
+ import type { TranslationOptions } from '@qualweb/locale';
4
+ import type { QualwebPage } from '@qualweb/core/lib';
5
+ export declare class ACTRulesModule extends ExecutableModuleContext {
6
+ readonly name = ModuleType.ACT_RULES;
7
+ protected getModulePackage(): string;
8
+ protected runModule(page: QualwebPage, options: ModuleOptions, translate: TranslationOptions, data: TestingData): Promise<EvaluationReport>;
9
+ private testSpecialCases;
10
+ }
11
+ //# sourceMappingURL=ACTRulesModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ACTRulesModule.d.ts","sourceRoot":"","sources":["../src/ACTRulesModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,UAAU,EACV,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,qBAAa,cAAe,SAAQ,uBAAuB;IACzD,SAAgB,IAAI,wBAAwB;IAE5C,SAAS,CAAC,gBAAgB,IAAI,MAAM;cAIpB,SAAS,CACvB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,kBAAkB,EAC7B,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,gBAAgB,CAAC;IAgD5B,OAAO,CAAC,gBAAgB;CAOzB"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ACTRulesModule = void 0;
13
+ const evaluation_1 = require("@qualweb/core/evaluation");
14
+ class ACTRulesModule extends evaluation_1.ExecutableModuleContext {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.name = evaluation_1.ModuleType.ACT_RULES;
18
+ }
19
+ getModulePackage() {
20
+ return '@qualweb/act-rules';
21
+ }
22
+ runModule(page, options, translate, data) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ yield page.evaluate((translate, options, data) => {
25
+ window.act = new ACTRulesRunner(options, translate).configure(options).test(data);
26
+ }, translate, options, data);
27
+ if (this.testSpecialCases(options)) {
28
+ const viewport = page.getViewport();
29
+ yield page.setViewport({
30
+ resolution: {
31
+ width: 640,
32
+ height: 512
33
+ },
34
+ mobile: viewport === null || viewport === void 0 ? void 0 : viewport.isMobile,
35
+ landscape: viewport === null || viewport === void 0 ? void 0 : viewport.isLandscape,
36
+ touch: viewport === null || viewport === void 0 ? void 0 : viewport.hasTouch
37
+ });
38
+ yield page.evaluate(() => {
39
+ var _a, _b;
40
+ (_b = (_a = window.act).testSpecial) === null || _b === void 0 ? void 0 : _b.call(_a);
41
+ });
42
+ if (viewport) {
43
+ yield page.setViewport({
44
+ resolution: {
45
+ width: viewport.width,
46
+ height: viewport.height
47
+ },
48
+ mobile: viewport === null || viewport === void 0 ? void 0 : viewport.isMobile,
49
+ landscape: viewport === null || viewport === void 0 ? void 0 : viewport.isLandscape,
50
+ touch: viewport === null || viewport === void 0 ? void 0 : viewport.hasTouch
51
+ });
52
+ }
53
+ }
54
+ return page.evaluate(() => {
55
+ return window.act.getReport();
56
+ });
57
+ });
58
+ }
59
+ testSpecialCases(options) {
60
+ return (!options ||
61
+ ((!options.include || options.include.includes('QW-ACT-R40') || options.include.includes('59br37')) &&
62
+ (!options.exclude || !options.exclude.includes('QW-ACT-R40') || !options.exclude.includes('59br37'))));
63
+ }
64
+ }
65
+ exports.ACTRulesModule = ACTRulesModule;
@@ -0,0 +1,14 @@
1
+ import { ModuleTranslator } from '@qualweb/core/locale';
2
+ import type { ModuleOptions, TestingData } from '@qualweb/core/evaluation';
3
+ import { EvaluationModuleDefinition } from '@qualweb/core/evaluation';
4
+ import { ACTRulesTester } from './lib/ACTRulesTester.object';
5
+ import { TranslationOptions } from '@qualweb/locale';
6
+ export declare class ACTRulesRunner extends EvaluationModuleDefinition<ACTRulesTester> {
7
+ protected readonly translator: ModuleTranslator;
8
+ constructor(moduleOptions: ModuleOptions, translationOptions: TranslationOptions);
9
+ configure(options?: ModuleOptions): this;
10
+ test(data: TestingData): this;
11
+ private getMetaElements;
12
+ testSpecial(): this;
13
+ }
14
+ //# sourceMappingURL=ACTRulesRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ACTRulesRunner.d.ts","sourceRoot":"","sources":["../src/ACTRulesRunner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,0BAA0B,EAE3B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,qBAAa,cAAe,SAAQ,0BAA0B,CAAC,cAAc,CAAC;IAK5E,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;gBAE7B,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB;IAiBvE,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IAMxC,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAO7C,OAAO,CAAC,eAAe;IAgBhB,WAAW,IAAI,IAAI;CAI3B"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ACTRulesRunner = void 0;
4
+ const locale_1 = require("@qualweb/core/locale");
5
+ const evaluation_1 = require("@qualweb/core/evaluation");
6
+ const ACTRulesTester_object_1 = require("./lib/ACTRulesTester.object");
7
+ class ACTRulesRunner extends evaluation_1.EvaluationModuleDefinition {
8
+ constructor(moduleOptions, translationOptions) {
9
+ const moduleType = evaluation_1.ModuleType.ACT_RULES;
10
+ const report = new evaluation_1.ModuleReport(moduleType);
11
+ const tester = new ACTRulesTester_object_1.ACTRulesTester(report);
12
+ super(moduleType, moduleOptions, translationOptions, report, tester);
13
+ this.translator = new locale_1.ModuleTranslator(this.type, this.translate);
14
+ this.tester.init(this.translator);
15
+ }
16
+ configure(options) {
17
+ super.configure(options || this.moduleOptions);
18
+ this.tester.configureCompositeRules();
19
+ return this;
20
+ }
21
+ test(data) {
22
+ const metaElements = this.getMetaElements(data.sourceHtml);
23
+ this.tester.validateMetaElements(metaElements);
24
+ this.tester.execute();
25
+ return this;
26
+ }
27
+ getMetaElements(sourceHtml) {
28
+ if (!sourceHtml) {
29
+ return [];
30
+ }
31
+ const parser = new DOMParser();
32
+ const sourceDoc = parser.parseFromString('', 'text/html');
33
+ sourceDoc.documentElement.innerHTML = sourceHtml;
34
+ const elements = sourceDoc.querySelectorAll('meta');
35
+ const metaElements = new Array();
36
+ elements.forEach((element) => metaElements.push(window.qwPage.createQWElement(element)));
37
+ return metaElements;
38
+ }
39
+ testSpecial() {
40
+ this.tester.validateZoomedTextNodeNotClippedWithCSSOverflow();
41
+ return this;
42
+ }
43
+ }
44
+ exports.ACTRulesRunner = ACTRulesRunner;