testaro 78.0.6 → 78.4.0

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 (361) hide show
  1. package/.gitattributes +94 -0
  2. package/.github/workflows/ci.yml +58 -0
  3. package/.github/workflows/publish.yml +49 -0
  4. package/.github/workflows/typescript.yml +35 -0
  5. package/AGENTS.md +2 -2
  6. package/CLAUDE.md +25 -19
  7. package/CONTAINERS.md +10 -6
  8. package/CONTRIBUTING.md +29 -3
  9. package/Dockerfile +1 -1
  10. package/README.md +75 -20
  11. package/UPGRADES.md +4 -0
  12. package/actSpecs-doc.md +13 -1
  13. package/actSpecs.js +29 -5
  14. package/call.js +6 -5
  15. package/docker-compose.yml +8 -2
  16. package/docs/checkpoint-scanning.md +199 -0
  17. package/docs/standard-result-outcome.md +165 -0
  18. package/env.example +44 -10
  19. package/eslint.config.mjs +101 -0
  20. package/netWatch.js +373 -222
  21. package/package.json +46 -31
  22. package/pour/README.md +47 -0
  23. package/pour/pour.min.js +8 -0
  24. package/procs/actDo.js +808 -0
  25. package/procs/catalog.d.ts +17 -0
  26. package/procs/catalog.js +313 -221
  27. package/procs/catalog.ts +398 -0
  28. package/procs/checkpoint.js +110 -0
  29. package/procs/config.d.ts +35 -0
  30. package/procs/config.js +63 -0
  31. package/procs/dateTime.js +2 -1
  32. package/procs/doActs.js +442 -849
  33. package/procs/doTestAct.js +27 -121
  34. package/procs/flow.js +221 -0
  35. package/procs/generateRuleRegistry.js +94 -0
  36. package/procs/getSource.d.ts +26 -0
  37. package/procs/getSource.js +1 -0
  38. package/procs/job.js +116 -1
  39. package/procs/launch.d.ts +40 -0
  40. package/procs/launch.js +239 -108
  41. package/procs/nu.d.ts +48 -0
  42. package/procs/nu.js +1 -0
  43. package/procs/scope.js +196 -0
  44. package/procs/shoot.d.ts +33 -0
  45. package/procs/shoot.js +3 -1
  46. package/procs/standard.d.ts +18 -0
  47. package/procs/standard.js +83 -0
  48. package/procs/standard.ts +126 -0
  49. package/procs/testAct.js +145 -0
  50. package/procs/testaro.d.ts +20 -0
  51. package/procs/testaro.js +237 -189
  52. package/procs/testaro.ts +321 -0
  53. package/procs/userPath.js +126 -0
  54. package/procs/xPath.d.ts +4 -0
  55. package/procs/xPath.js +82 -64
  56. package/procs/xPath.ts +106 -0
  57. package/procs/xPathScript.d.ts +6 -0
  58. package/procs/xPathScript.js +70 -0
  59. package/run.js +3 -2
  60. package/surea11y/README.md +44 -0
  61. package/surea11y/surea11y.browser.js +14 -0
  62. package/testaro/adbID.d.ts +3 -0
  63. package/testaro/adbID.js +39 -41
  64. package/testaro/adbID.ts +66 -0
  65. package/testaro/allCapStyle.d.ts +3 -0
  66. package/testaro/allCapStyle.js +32 -34
  67. package/testaro/allCapStyle.ts +55 -0
  68. package/testaro/allCaps.d.ts +16 -0
  69. package/testaro/allCaps.js +179 -151
  70. package/testaro/allCaps.ts +228 -0
  71. package/testaro/allHidden.d.ts +13 -0
  72. package/testaro/allHidden.js +30 -30
  73. package/testaro/allHidden.ts +50 -0
  74. package/testaro/allSlanted.d.ts +3 -0
  75. package/testaro/allSlanted.js +31 -33
  76. package/testaro/allSlanted.ts +54 -0
  77. package/testaro/altScheme.d.ts +3 -0
  78. package/testaro/altScheme.js +28 -30
  79. package/testaro/altScheme.ts +50 -0
  80. package/testaro/attVal.d.ts +3 -0
  81. package/testaro/attVal.js +21 -21
  82. package/testaro/attVal.ts +52 -0
  83. package/testaro/autocomplete.d.ts +3 -0
  84. package/testaro/autocomplete.js +60 -75
  85. package/testaro/autocomplete.ts +101 -0
  86. package/testaro/bulk.d.ts +13 -0
  87. package/testaro/bulk.js +33 -33
  88. package/testaro/bulk.ts +55 -0
  89. package/testaro/buttonMenu.d.ts +9 -0
  90. package/testaro/buttonMenu.js +318 -319
  91. package/testaro/buttonMenu.ts +391 -0
  92. package/testaro/captionLoc.d.ts +3 -0
  93. package/testaro/captionLoc.js +18 -20
  94. package/testaro/captionLoc.ts +40 -0
  95. package/testaro/datalistRef.d.ts +3 -0
  96. package/testaro/datalistRef.js +34 -36
  97. package/testaro/datalistRef.ts +55 -0
  98. package/testaro/distortion.d.ts +3 -0
  99. package/testaro/distortion.js +58 -26
  100. package/testaro/distortion.ts +81 -0
  101. package/testaro/docType.d.ts +15 -0
  102. package/testaro/docType.js +26 -25
  103. package/testaro/docType.ts +45 -0
  104. package/testaro/dupAtt.d.ts +16 -0
  105. package/testaro/dupAtt.js +114 -104
  106. package/testaro/dupAtt.ts +144 -0
  107. package/testaro/elements.d.ts +6 -0
  108. package/testaro/elements.js +153 -153
  109. package/testaro/elements.ts +215 -0
  110. package/testaro/embAc.d.ts +3 -0
  111. package/testaro/embAc.js +20 -20
  112. package/testaro/embAc.ts +40 -0
  113. package/testaro/focAll.d.ts +13 -0
  114. package/testaro/focAll.js +186 -191
  115. package/testaro/focAll.ts +217 -0
  116. package/testaro/focAndOp.d.ts +3 -0
  117. package/testaro/focAndOp.js +101 -104
  118. package/testaro/focAndOp.ts +128 -0
  119. package/testaro/focInd.d.ts +3 -0
  120. package/testaro/focInd.js +65 -66
  121. package/testaro/focInd.ts +96 -0
  122. package/testaro/focVis.d.ts +3 -0
  123. package/testaro/focVis.js +29 -30
  124. package/testaro/focVis.ts +52 -0
  125. package/testaro/headEl.d.ts +10 -0
  126. package/testaro/headEl.js +62 -62
  127. package/testaro/headEl.ts +82 -0
  128. package/testaro/headingAmb.d.ts +3 -0
  129. package/testaro/headingAmb.js +55 -63
  130. package/testaro/headingAmb.ts +72 -0
  131. package/testaro/hovInd.d.ts +12 -0
  132. package/testaro/hovInd.js +164 -130
  133. package/testaro/hovInd.ts +199 -0
  134. package/testaro/hover.d.ts +3 -0
  135. package/testaro/hover.js +156 -126
  136. package/testaro/hover.ts +154 -0
  137. package/testaro/hr.d.ts +3 -0
  138. package/testaro/hr.js +15 -17
  139. package/testaro/hr.ts +36 -0
  140. package/testaro/imageLink.d.ts +3 -0
  141. package/testaro/imageLink.js +18 -20
  142. package/testaro/imageLink.ts +42 -0
  143. package/testaro/labClash.d.ts +3 -0
  144. package/testaro/labClash.js +32 -33
  145. package/testaro/labClash.ts +54 -0
  146. package/testaro/legendLoc.d.ts +3 -0
  147. package/testaro/legendLoc.js +18 -20
  148. package/testaro/legendLoc.ts +42 -0
  149. package/testaro/lineHeight.d.ts +3 -0
  150. package/testaro/lineHeight.js +44 -48
  151. package/testaro/lineHeight.ts +70 -0
  152. package/testaro/linkAmb.d.ts +7 -0
  153. package/testaro/linkAmb.js +80 -80
  154. package/testaro/linkAmb.ts +105 -0
  155. package/testaro/linkExt.d.ts +3 -0
  156. package/testaro/linkExt.js +14 -16
  157. package/testaro/linkExt.ts +35 -0
  158. package/testaro/linkOldAtt.d.ts +3 -0
  159. package/testaro/linkOldAtt.js +26 -28
  160. package/testaro/linkOldAtt.ts +48 -0
  161. package/testaro/linkTo.d.ts +3 -0
  162. package/testaro/linkTo.js +23 -22
  163. package/testaro/linkTo.ts +43 -0
  164. package/testaro/linkUl.d.ts +3 -0
  165. package/testaro/linkUl.js +31 -34
  166. package/testaro/linkUl.ts +54 -0
  167. package/testaro/miniText.d.ts +3 -0
  168. package/testaro/miniText.js +42 -44
  169. package/testaro/miniText.ts +68 -0
  170. package/testaro/motion.d.ts +10 -0
  171. package/testaro/motion.js +93 -96
  172. package/testaro/motion.ts +125 -0
  173. package/testaro/nonTable.d.ts +3 -0
  174. package/testaro/nonTable.js +40 -45
  175. package/testaro/nonTable.ts +66 -0
  176. package/testaro/optRoleSel.d.ts +3 -0
  177. package/testaro/optRoleSel.js +17 -19
  178. package/testaro/optRoleSel.ts +41 -0
  179. package/testaro/phOnly.d.ts +3 -0
  180. package/testaro/phOnly.js +19 -21
  181. package/testaro/phOnly.ts +43 -0
  182. package/testaro/pseudoP.d.ts +3 -0
  183. package/testaro/pseudoP.js +37 -38
  184. package/testaro/pseudoP.ts +59 -0
  185. package/testaro/radioSet.d.ts +3 -0
  186. package/testaro/radioSet.js +58 -59
  187. package/testaro/radioSet.ts +79 -0
  188. package/testaro/registry.d.ts +63 -0
  189. package/testaro/registry.js +67 -0
  190. package/testaro/registry.ts +141 -0
  191. package/testaro/role.d.ts +3 -0
  192. package/testaro/role.js +28 -29
  193. package/testaro/role.ts +53 -0
  194. package/testaro/secHeading.d.ts +3 -0
  195. package/testaro/secHeading.js +31 -33
  196. package/testaro/secHeading.ts +53 -0
  197. package/testaro/styleDiff.d.ts +25 -0
  198. package/testaro/styleDiff.js +249 -252
  199. package/testaro/styleDiff.ts +303 -0
  200. package/testaro/tabNav.d.ts +33 -0
  201. package/testaro/tabNav.js +273 -342
  202. package/testaro/tabNav.ts +454 -0
  203. package/testaro/targetsNear.d.ts +9 -0
  204. package/testaro/targetsNear.js +131 -132
  205. package/testaro/targetsNear.ts +160 -0
  206. package/testaro/textNodes.d.ts +6 -0
  207. package/testaro/textNodes.js +139 -135
  208. package/testaro/textNodes.ts +185 -0
  209. package/testaro/textSem.d.ts +3 -0
  210. package/testaro/textSem.js +26 -28
  211. package/testaro/textSem.ts +47 -0
  212. package/testaro/title.d.ts +9 -0
  213. package/testaro/title.js +16 -13
  214. package/testaro/title.ts +31 -0
  215. package/testaro/titledEl.d.ts +3 -0
  216. package/testaro/titledEl.js +16 -18
  217. package/testaro/titledEl.ts +38 -0
  218. package/testaro/zIndex.d.ts +3 -0
  219. package/testaro/zIndex.js +20 -22
  220. package/testaro/zIndex.ts +42 -0
  221. package/tests/alfa.d.ts +45 -0
  222. package/tests/alfa.js +139 -141
  223. package/tests/alfa.ts +214 -0
  224. package/tests/aslint.d.ts +33 -0
  225. package/tests/aslint.js +273 -249
  226. package/tests/aslint.ts +301 -0
  227. package/tests/axe.d.ts +27 -0
  228. package/tests/axe.js +200 -200
  229. package/tests/axe.ts +277 -0
  230. package/tests/ed11y.d.ts +28 -0
  231. package/tests/ed11y.js +142 -99
  232. package/tests/ed11y.ts +178 -0
  233. package/tests/htmlcs.d.ts +21 -0
  234. package/tests/htmlcs.js +175 -140
  235. package/tests/htmlcs.ts +181 -0
  236. package/tests/ibm.d.ts +52 -0
  237. package/tests/ibm.js +165 -166
  238. package/tests/ibm.ts +251 -0
  239. package/tests/nuVal.d.ts +13 -0
  240. package/tests/nuVal.js +107 -112
  241. package/tests/nuVal.ts +145 -0
  242. package/tests/nuVnu.d.ts +15 -0
  243. package/tests/nuVnu.js +142 -111
  244. package/tests/nuVnu.ts +144 -0
  245. package/tests/pour.d.ts +31 -0
  246. package/tests/pour.js +242 -0
  247. package/tests/pour.ts +273 -0
  248. package/tests/qualWeb.d.ts +39 -0
  249. package/tests/qualWeb.js +303 -272
  250. package/tests/qualWeb.ts +415 -0
  251. package/tests/surea11y.d.ts +33 -0
  252. package/tests/surea11y.js +288 -0
  253. package/tests/surea11y.ts +334 -0
  254. package/tests/testaro.d.ts +25 -0
  255. package/tests/testaro.js +746 -652
  256. package/tests/testaro.ts +862 -0
  257. package/tests/wave.d.ts +46 -0
  258. package/tests/wave.js +167 -177
  259. package/tests/wave.ts +252 -0
  260. package/tsconfig.json +17 -0
  261. package/types.d.ts +243 -0
  262. package/types.js +10 -0
  263. package/types.ts +376 -0
  264. package/validation/act/README.md +46 -0
  265. package/validation/act/capture.js +424 -0
  266. package/validation/act/chromium-issue-draft.md +66 -0
  267. package/validation/act/fp-triage-2026-08-22.md +86 -0
  268. package/validation/act/isolation-notes.md +159 -0
  269. package/validation/act/playwright-issue-draft.md +73 -0
  270. package/validation/act/propose-mappings.js +0 -0
  271. package/validation/act/repro-cdp-raw.js +105 -0
  272. package/validation/act/repro-metarefresh.js +65 -0
  273. package/validation/act/score.js +184 -0
  274. package/validation/act/stage3a-stress-report.md +69 -0
  275. package/validation/act/stage3b-mapping-proposals.md +94 -0
  276. package/validation/act/stage3b-triage-draft.md +138 -0
  277. package/validation/act/surea11y-track-a-2026-09-01.md +50 -0
  278. package/validation/executors/netWatch.js +180 -90
  279. package/validation/executors/test.js +17 -2
  280. package/validation/executors/tests.js +118 -10
  281. package/validation/jobs/reports/raw/260901T1000-surea11y-validation.json +964 -0
  282. package/validation/jobs/todo/240101T1200-simple-example.json +14 -6
  283. package/validation/jobs/todo/240101T1300-shoot-example.json +2 -1
  284. package/validation/jobs/todo/260821T1900-pour-validation.json +45 -0
  285. package/validation/jobs/todo/260901T1000-surea11y-validation.json +45 -0
  286. package/validation/knownFailures.json +1 -0
  287. package/validation/tests/jobProperties/adbID.json +27 -2
  288. package/validation/tests/jobProperties/{focOp.json → allCapStyle.json} +56 -53
  289. package/validation/tests/jobProperties/allCaps.json +25 -0
  290. package/validation/tests/jobProperties/allHidden.json +133 -13
  291. package/validation/tests/jobProperties/allSlanted.json +3 -3
  292. package/validation/tests/jobProperties/altScheme.json +23 -8
  293. package/validation/tests/jobProperties/attVal.json +57 -57
  294. package/validation/tests/jobProperties/autocomplete.json +11 -1
  295. package/validation/tests/jobProperties/bulk.json +6 -1
  296. package/validation/tests/jobProperties/buttonMenu.json +63 -42
  297. package/validation/tests/jobProperties/captionLoc.json +1 -6
  298. package/validation/tests/jobProperties/checkpoint-browser.json +401 -0
  299. package/validation/tests/jobProperties/checkpoint-page.json +397 -0
  300. package/validation/tests/jobProperties/checkpoint.json +395 -0
  301. package/validation/tests/jobProperties/datalistRef.json +20 -5
  302. package/validation/tests/jobProperties/distortion.json +28 -3
  303. package/validation/tests/jobProperties/docType.json +2 -2
  304. package/validation/tests/jobProperties/dupAtt.json +48 -33
  305. package/validation/tests/jobProperties/elements.json +28 -28
  306. package/validation/tests/jobProperties/embAc.json +36 -31
  307. package/validation/tests/jobProperties/focAndOp.json +284 -0
  308. package/validation/tests/jobProperties/focInd.json +34 -34
  309. package/validation/tests/jobProperties/focVis.json +1 -1
  310. package/validation/tests/jobProperties/hover.json +39 -37
  311. package/validation/tests/jobProperties/hr.json +13 -3
  312. package/validation/tests/jobProperties/imageLink.json +0 -5
  313. package/validation/tests/jobProperties/labClash.json +68 -33
  314. package/validation/tests/jobProperties/legendLoc.json +1 -6
  315. package/validation/tests/jobProperties/lineHeight.json +2 -2
  316. package/validation/tests/jobProperties/linkAmb.json +13 -18
  317. package/validation/tests/jobProperties/linkExt.json +1 -1
  318. package/validation/tests/jobProperties/linkOldAtt.json +12 -2
  319. package/validation/tests/jobProperties/linkTo.json +1 -1
  320. package/validation/tests/jobProperties/linkUl.json +65 -65
  321. package/validation/tests/jobProperties/miniText.json +7 -2
  322. package/validation/tests/jobProperties/motion.json +4 -50
  323. package/validation/tests/jobProperties/nonTable.json +48 -3
  324. package/validation/tests/jobProperties/optRoleSel.json +12 -2
  325. package/validation/tests/jobProperties/phOnly.json +6 -16
  326. package/validation/tests/jobProperties/pseudoP.json +17 -2
  327. package/validation/tests/jobProperties/radioSet.json +30 -30
  328. package/validation/tests/jobProperties/role.json +25 -5
  329. package/validation/tests/jobProperties/secHeading.json +26 -21
  330. package/validation/tests/jobProperties/styleDiff.json +35 -5
  331. package/validation/tests/jobProperties/tabNav.json +3 -1
  332. package/validation/tests/jobProperties/targetsNear.json +237 -0
  333. package/validation/tests/jobProperties/textNodes.json +29 -29
  334. package/validation/tests/jobProperties/textSem.json +26 -1
  335. package/validation/tests/jobProperties/title.json +12 -2
  336. package/validation/tests/jobProperties/titledEl.json +39 -9
  337. package/validation/tests/jobProperties/userPath.json +317 -0
  338. package/validation/tests/jobProperties/zIndex.json +40 -35
  339. package/validation/tests/targets/allCapStyle/index.html +26 -0
  340. package/validation/tests/targets/checkpoint/index.html +38 -0
  341. package/validation/tests/targets/datalistRef/index.html +1 -1
  342. package/validation/tests/targets/focAndOp/bad.html +29 -0
  343. package/validation/tests/targets/{focOp → focAndOp}/good.html +3 -1
  344. package/validation/tests/targets/focInd/bad.html +2 -1
  345. package/validation/tests/targets/headEl/index.html +10 -1
  346. package/validation/tests/targets/{targetSmall → targetsNear}/index.html +15 -1
  347. package/validation/tests/targets/userPath/index.html +42 -0
  348. package/validation/validateTest.js +62 -10
  349. package/.claude/settings.local.json +0 -11
  350. package/.eslintrc.json +0 -41
  351. package/htmlcs/.eslintrc.json +0 -67
  352. package/memory/MEMORY.md +0 -3
  353. package/memory/project_validation_pause.md +0 -10
  354. package/validation/tests/jobProperties/linkTitle.json +0 -127
  355. package/validation/tests/jobProperties/opFoc.json +0 -164
  356. package/validation/tests/jobProperties/targetSmall.json +0 -152
  357. package/validation/tests/jobProperties/targetTiny.json +0 -142
  358. package/validation/tests/targets/focOp/bad.html +0 -25
  359. package/validation/tests/targets/linkTitle/index.html +0 -24
  360. package/validation/tests/targets/opFoc/bad.html +0 -26
  361. package/validation/tests/targets/opFoc/good.html +0 -23
@@ -0,0 +1,237 @@
1
+ {
2
+ "rule": "targetsNear",
3
+ "timeLimit": 20,
4
+ "acts": [
5
+ {
6
+ "type": "launch",
7
+ "target": {
8
+ "url": "file://validation/tests/targets/targetsNear/index.html",
9
+ "what": "page with variously sized and spaced pointer targets"
10
+ }
11
+ },
12
+ {
13
+ "type": "test",
14
+ "which": "testaro",
15
+ "withItems": true,
16
+ "stopOnFail": true,
17
+ "expect": [
18
+ [
19
+ "standardResult.totals.0",
20
+ "=",
21
+ 4
22
+ ],
23
+ [
24
+ "standardResult.totals.1",
25
+ "=",
26
+ 2
27
+ ],
28
+ [
29
+ "standardResult.totals.2",
30
+ "=",
31
+ 0
32
+ ],
33
+ [
34
+ "standardResult.totals.3",
35
+ "=",
36
+ 0
37
+ ],
38
+ [
39
+ "standardResult.instances.length",
40
+ "=",
41
+ 6
42
+ ],
43
+ [
44
+ "standardResult.instances.0.ruleID",
45
+ "=",
46
+ "targetsNear"
47
+ ],
48
+ [
49
+ "standardResult.instances.0.what",
50
+ "i",
51
+ "Pointer-target centerpoint is only"
52
+ ],
53
+ [
54
+ "standardResult.instances.0.what",
55
+ "i",
56
+ "px from another one"
57
+ ],
58
+ [
59
+ "standardResult.instances.0.ordinalSeverity",
60
+ "=",
61
+ 0
62
+ ],
63
+ [
64
+ "standardResult.instances.0.outcome",
65
+ "=",
66
+ "failed"
67
+ ],
68
+ [
69
+ "standardResult.instances.0.tagName",
70
+ "=",
71
+ "LABEL"
72
+ ],
73
+ [
74
+ "standardResult.instances.0.location.doc",
75
+ "=",
76
+ "dom"
77
+ ],
78
+ [
79
+ "standardResult.instances.0.location.type",
80
+ "=",
81
+ "box"
82
+ ],
83
+ [
84
+ "standardResult.instances.0.location.spec.height",
85
+ ">",
86
+ 0
87
+ ],
88
+ [
89
+ "standardResult.instances.0.excerpt",
90
+ "=",
91
+ "Small box:"
92
+ ],
93
+ [
94
+ "standardResult.instances.1.tagName",
95
+ "=",
96
+ "LABEL"
97
+ ],
98
+ [
99
+ "standardResult.instances.1.excerpt",
100
+ "=",
101
+ "Tiny box:"
102
+ ],
103
+ [
104
+ "standardResult.instances.1.ordinalSeverity",
105
+ "=",
106
+ 0
107
+ ],
108
+ [
109
+ "standardResult.instances.2.tagName",
110
+ "=",
111
+ "A"
112
+ ],
113
+ [
114
+ "standardResult.instances.2.excerpt",
115
+ "=",
116
+ "Wikimedia Foundation (small)"
117
+ ],
118
+ [
119
+ "standardResult.instances.2.ordinalSeverity",
120
+ "=",
121
+ 0
122
+ ],
123
+ [
124
+ "standardResult.instances.3.tagName",
125
+ "=",
126
+ "A"
127
+ ],
128
+ [
129
+ "standardResult.instances.3.excerpt",
130
+ "=",
131
+ "Wikimedia Foundation (tiny)"
132
+ ],
133
+ [
134
+ "standardResult.instances.3.location.spec.y",
135
+ ">",
136
+ 0
137
+ ],
138
+ [
139
+ "standardResult.instances.4.tagName",
140
+ "=",
141
+ "A"
142
+ ],
143
+ [
144
+ "standardResult.instances.4.excerpt",
145
+ "=",
146
+ "World Wide Web Consortium (stacked)"
147
+ ],
148
+ [
149
+ "standardResult.instances.4.ordinalSeverity",
150
+ "=",
151
+ 1
152
+ ],
153
+ [
154
+ "standardResult.instances.5.excerpt",
155
+ "=",
156
+ "Wikimedia Foundation (stacked)"
157
+ ],
158
+ [
159
+ "standardResult.instances.5.ordinalSeverity",
160
+ "=",
161
+ 1
162
+ ]
163
+ ],
164
+ "rules": [
165
+ "y",
166
+ "targetsNear"
167
+ ]
168
+ },
169
+ {
170
+ "type": "test",
171
+ "which": "testaro",
172
+ "withItems": false,
173
+ "stopOnFail": true,
174
+ "expect": [
175
+ [
176
+ "standardResult.totals.0",
177
+ "=",
178
+ 4
179
+ ],
180
+ [
181
+ "standardResult.totals.1",
182
+ "=",
183
+ 2
184
+ ],
185
+ [
186
+ "standardResult.instances.length",
187
+ "=",
188
+ 2
189
+ ],
190
+ [
191
+ "standardResult.instances.0.ruleID",
192
+ "=",
193
+ "targetsNear"
194
+ ],
195
+ [
196
+ "standardResult.instances.0.what",
197
+ "=",
198
+ "Pointer-target centerpoints are less than 24px from others"
199
+ ],
200
+ [
201
+ "standardResult.instances.0.ordinalSeverity",
202
+ "=",
203
+ 1
204
+ ],
205
+ [
206
+ "standardResult.instances.0.count",
207
+ "=",
208
+ 2
209
+ ],
210
+ [
211
+ "standardResult.instances.0.tagName",
212
+ "=",
213
+ ""
214
+ ],
215
+ [
216
+ "standardResult.instances.1.what",
217
+ "=",
218
+ "Pointer-target centerpoints are less than 44px from others"
219
+ ],
220
+ [
221
+ "standardResult.instances.1.ordinalSeverity",
222
+ "=",
223
+ 0
224
+ ],
225
+ [
226
+ "standardResult.instances.1.count",
227
+ "=",
228
+ 4
229
+ ]
230
+ ],
231
+ "rules": [
232
+ "y",
233
+ "targetsNear"
234
+ ]
235
+ }
236
+ ]
237
+ }
@@ -15,7 +15,7 @@
15
15
  "stopOnFail": true,
16
16
  "expect": [
17
17
  [
18
- "result.textNodes.data.nodeCount",
18
+ "data.ruleData.textNodes.nodeCount",
19
19
  "=",
20
20
  35
21
21
  ]
@@ -35,7 +35,7 @@
35
35
  "stopOnFail": true,
36
36
  "expect": [
37
37
  [
38
- "result.textNodes.data.nodeCount",
38
+ "data.ruleData.textNodes.nodeCount",
39
39
  "=",
40
40
  2
41
41
  ]
@@ -55,12 +55,12 @@
55
55
  "stopOnFail": true,
56
56
  "expect": [
57
57
  [
58
- "result.textNodes.data.nodeCount",
58
+ "data.ruleData.textNodes.nodeCount",
59
59
  "=",
60
60
  2
61
61
  ],
62
62
  [
63
- "result.textNodes.data.items.0.text",
63
+ "data.ruleData.textNodes.items.0.text",
64
64
  "=",
65
65
  "Io alia"
66
66
  ]
@@ -80,73 +80,73 @@
80
80
  "stopOnFail": true,
81
81
  "expect": [
82
82
  [
83
- "result.textNodes.data.nodeCount",
83
+ "data.ruleData.textNodes.nodeCount",
84
84
  "=",
85
85
  2
86
86
  ],
87
87
  [
88
- "result.textNodes.data.items.0.text",
88
+ "data.ruleData.textNodes.items.0.text",
89
89
  "=",
90
90
  "This is the first button"
91
91
  ],
92
92
  [
93
- "result.textNodes.data.items.1.text",
93
+ "data.ruleData.textNodes.items.1.text",
94
94
  "=",
95
95
  "This is the second button"
96
96
  ],
97
97
  [
98
- "result.textNodes.data.items.0.ancestors.0.tagName",
98
+ "data.ruleData.textNodes.items.0.ancestors.0.tagName",
99
99
  "=",
100
100
  "BUTTON"
101
101
  ],
102
102
  [
103
- "result.textNodes.data.items.1.ancestors.0.tagName",
103
+ "data.ruleData.textNodes.items.1.ancestors.0.tagName",
104
104
  "=",
105
105
  "BUTTON"
106
106
  ],
107
107
  [
108
- "result.textNodes.data.items.0.ancestors.0.attributes.0.name",
108
+ "data.ruleData.textNodes.items.0.ancestors.0.attributes.0.name",
109
109
  "=",
110
110
  "id"
111
111
  ],
112
112
  [
113
- "result.textNodes.data.items.0.ancestors.0.attributes.0.value",
113
+ "data.ruleData.textNodes.items.0.ancestors.0.attributes.0.value",
114
114
  "=",
115
115
  "button0"
116
116
  ],
117
117
  [
118
- "result.textNodes.data.items.1.ancestors.0.attributes.1.name",
118
+ "data.ruleData.textNodes.items.1.ancestors.0.attributes.1.name",
119
119
  "=",
120
120
  "aria-labelledby"
121
121
  ],
122
122
  [
123
- "result.textNodes.data.items.1.ancestors.0.attributes.1.value",
123
+ "data.ruleData.textNodes.items.1.ancestors.0.attributes.1.value",
124
124
  "=",
125
125
  "button1Label"
126
126
  ],
127
127
  [
128
- "result.textNodes.data.items.0.ancestors.0.refLabels"
128
+ "data.ruleData.textNodes.items.0.ancestors.0.refLabels"
129
129
  ],
130
130
  [
131
- "result.textNodes.data.items.1.ancestors.0.refLabels.0",
131
+ "data.ruleData.textNodes.items.1.ancestors.0.refLabels.0",
132
132
  "=",
133
133
  "Click the second button."
134
134
  ],
135
135
  [
136
- "result.textNodes.data.items.0.ancestors.0.labels.0",
136
+ "data.ruleData.textNodes.items.0.ancestors.0.labels.0",
137
137
  "=",
138
138
  "Click the first button."
139
139
  ],
140
140
  [
141
- "result.textNodes.data.items.0.ancestors.0.labels.1",
141
+ "data.ruleData.textNodes.items.0.ancestors.0.labels.1",
142
142
  "=",
143
143
  "Did you click it?"
144
144
  ],
145
145
  [
146
- "result.textNodes.data.items.1.ancestors.0.labels"
146
+ "data.ruleData.textNodes.items.1.ancestors.0.labels"
147
147
  ],
148
148
  [
149
- "result.textNodes.data.items.0.ancestors.0.children"
149
+ "data.ruleData.textNodes.items.0.ancestors.0.children"
150
150
  ]
151
151
  ],
152
152
  "withItems": true,
@@ -164,52 +164,52 @@
164
164
  "stopOnFail": true,
165
165
  "expect": [
166
166
  [
167
- "result.textNodes.data.nodeCount",
167
+ "data.ruleData.textNodes.nodeCount",
168
168
  "=",
169
169
  1
170
170
  ],
171
171
  [
172
- "result.textNodes.data.items.0.text",
172
+ "data.ruleData.textNodes.items.0.text",
173
173
  "=",
174
174
  "Io tute alia"
175
175
  ],
176
176
  [
177
- "result.textNodes.data.items.0.ancestors.0.tagName",
177
+ "data.ruleData.textNodes.items.0.ancestors.0.tagName",
178
178
  "=",
179
179
  "LI"
180
180
  ],
181
181
  [
182
- "result.textNodes.data.items.0.ancestors.1.tagName",
182
+ "data.ruleData.textNodes.items.0.ancestors.1.tagName",
183
183
  "=",
184
184
  "UL"
185
185
  ],
186
186
  [
187
- "result.textNodes.data.items.0.ancestors.0.attributes.0.name",
187
+ "data.ruleData.textNodes.items.0.ancestors.0.attributes.0.name",
188
188
  "=",
189
189
  "class"
190
190
  ],
191
191
  [
192
- "result.textNodes.data.items.0.ancestors.0.attributes.0.value",
192
+ "data.ruleData.textNodes.items.0.ancestors.0.attributes.0.value",
193
193
  "=",
194
194
  "last"
195
195
  ],
196
196
  [
197
- "result.textNodes.data.items.0.ancestors.1.attributes.0.name",
197
+ "data.ruleData.textNodes.items.0.ancestors.1.attributes.0.name",
198
198
  "=",
199
199
  "lang"
200
200
  ],
201
201
  [
202
- "result.textNodes.data.items.0.ancestors.1.attributes.0.value",
202
+ "data.ruleData.textNodes.items.0.ancestors.1.attributes.0.value",
203
203
  "=",
204
204
  "eo"
205
205
  ],
206
206
  [
207
- "result.textNodes.data.items.0.ancestors.1.children.1.tagName",
207
+ "data.ruleData.textNodes.items.0.ancestors.1.children.1.tagName",
208
208
  "=",
209
209
  "LI"
210
210
  ],
211
211
  [
212
- "result.textNodes.data.items.0.ancestors.1.children.2.attributes.1.name",
212
+ "data.ruleData.textNodes.items.0.ancestors.1.children.2.attributes.1.name",
213
213
  "=",
214
214
  "hidden"
215
215
  ]
@@ -25,6 +25,11 @@
25
25
  "=",
26
26
  0
27
27
  ],
28
+ [
29
+ "standardResult.instances.length",
30
+ "=",
31
+ 4
32
+ ],
28
33
  [
29
34
  "standardResult.instances.0.ruleID",
30
35
  "=",
@@ -33,7 +38,7 @@
33
38
  [
34
39
  "standardResult.instances.0.what",
35
40
  "=",
36
- "Element is semantically vague"
41
+ "Element type (I) is semantically vague"
37
42
  ],
38
43
  [
39
44
  "standardResult.instances.0.ordinalSeverity",
@@ -99,6 +104,21 @@
99
104
  "standardResult.instances.3.excerpt",
100
105
  "=",
101
106
  "This situation is rare and probably does not apply to you."
107
+ ],
108
+ [
109
+ "standardResult.instances.2.what",
110
+ "=",
111
+ "Element type (B) is semantically vague"
112
+ ],
113
+ [
114
+ "standardResult.instances.3.what",
115
+ "=",
116
+ "Element type (SMALL) is semantically vague"
117
+ ],
118
+ [
119
+ "standardResult.instances.0.outcome",
120
+ "=",
121
+ "failed"
102
122
  ]
103
123
  ],
104
124
  "rules": [
@@ -141,6 +161,11 @@
141
161
  "standardResult.instances.0.count",
142
162
  "=",
143
163
  4
164
+ ],
165
+ [
166
+ "standardResult.instances.length",
167
+ "=",
168
+ 1
144
169
  ]
145
170
  ],
146
171
  "rules": [
@@ -15,9 +15,14 @@
15
15
  "stopOnFail": true,
16
16
  "expect": [
17
17
  [
18
- "result.title.data.title",
18
+ "data.ruleData.title.title",
19
19
  "=",
20
20
  "Test page"
21
+ ],
22
+ [
23
+ "standardResult.instances.length",
24
+ "=",
25
+ 0
21
26
  ]
22
27
  ],
23
28
  "withItems": true,
@@ -37,9 +42,14 @@
37
42
  "stopOnFail": true,
38
43
  "expect": [
39
44
  [
40
- "result.title.data.title",
45
+ "data.ruleData.title.title",
41
46
  "=",
42
47
  ""
48
+ ],
49
+ [
50
+ "standardResult.instances.length",
51
+ "=",
52
+ 0
43
53
  ]
44
54
  ],
45
55
  "withItems": true,
@@ -15,10 +15,15 @@
15
15
  "withItems": true,
16
16
  "stopOnFail": true,
17
17
  "expect": [
18
+ [
19
+ "standardResult.totals.0",
20
+ "=",
21
+ 3
22
+ ],
18
23
  [
19
24
  "standardResult.totals.2",
20
25
  "=",
21
- 2
26
+ 0
22
27
  ],
23
28
  [
24
29
  "standardResult.totals.3",
@@ -28,7 +33,7 @@
28
33
  [
29
34
  "standardResult.instances.length",
30
35
  "=",
31
- 2
36
+ 3
32
37
  ],
33
38
  [
34
39
  "standardResult.instances.0.ruleID",
@@ -38,12 +43,17 @@
38
43
  [
39
44
  "standardResult.instances.0.what",
40
45
  "i",
41
- "Ineligible element has"
46
+ "Likely ineffective title attribute is used on the p element"
42
47
  ],
43
48
  [
44
49
  "standardResult.instances.0.ordinalSeverity",
45
50
  "=",
46
- 2
51
+ 0
52
+ ],
53
+ [
54
+ "standardResult.instances.0.outcome",
55
+ "=",
56
+ "failed"
47
57
  ],
48
58
  [
49
59
  "standardResult.instances.0.tagName",
@@ -79,6 +89,21 @@
79
89
  "standardResult.instances.1.excerpt",
80
90
  "i",
81
91
  "still violates"
92
+ ],
93
+ [
94
+ "standardResult.instances.2.what",
95
+ "i",
96
+ "on the button element"
97
+ ],
98
+ [
99
+ "standardResult.instances.2.tagName",
100
+ "=",
101
+ "BUTTON"
102
+ ],
103
+ [
104
+ "standardResult.instances.2.excerpt",
105
+ "i",
106
+ "Click me"
82
107
  ]
83
108
  ],
84
109
  "rules": [
@@ -93,15 +118,20 @@
93
118
  "stopOnFail": true,
94
119
  "expect": [
95
120
  [
96
- "standardResult.totals.2",
121
+ "standardResult.totals.0",
97
122
  "=",
98
- 2
123
+ 3
99
124
  ],
100
125
  [
101
126
  "standardResult.totals.1",
102
127
  "=",
103
128
  0
104
129
  ],
130
+ [
131
+ "standardResult.totals.2",
132
+ "=",
133
+ 0
134
+ ],
105
135
  [
106
136
  "standardResult.instances.length",
107
137
  "=",
@@ -115,17 +145,17 @@
115
145
  [
116
146
  "standardResult.instances.0.what",
117
147
  "i",
118
- "elements have"
148
+ "title attributes are used on elements they are likely ineffective on"
119
149
  ],
120
150
  [
121
151
  "standardResult.instances.0.ordinalSeverity",
122
152
  "=",
123
- 2
153
+ 0
124
154
  ],
125
155
  [
126
156
  "standardResult.instances.0.count",
127
157
  "=",
128
- 2
158
+ 3
129
159
  ],
130
160
  [
131
161
  "standardResult.instances.0.tagName",