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
@@ -1,56 +1,15 @@
1
1
  {
2
2
  "rule": "motion",
3
3
  "timeLimit": 20,
4
+ "imageColor": 2,
4
5
  "acts": [
5
6
  {
6
7
  "type": "launch",
7
8
  "target": {
8
- "url": "file://validation/tests/targets/motion/good.html",
9
- "what": "page without motion"
9
+ "url": "file://validation/tests/targets/motion/bad.html",
10
+ "what": "page with motion"
10
11
  }
11
12
  },
12
- {
13
- "type": "test",
14
- "which": "testaro",
15
- "stopOnFail": true,
16
- "expect": [
17
- [
18
- "standardResult.totals.0",
19
- "=",
20
- 0
21
- ],
22
- [
23
- "standardResult.totals.1",
24
- "=",
25
- 0
26
- ],
27
- [
28
- "standardResult.totals.2",
29
- "=",
30
- 0
31
- ],
32
- [
33
- "standardResult.totals.3",
34
- "=",
35
- 0
36
- ],
37
- [
38
- "standardResult.instances.length",
39
- "=",
40
- 0
41
- ]
42
- ],
43
- "withItems": true,
44
- "rules": [
45
- "y",
46
- "motion"
47
- ]
48
- },
49
- {
50
- "type": "url",
51
- "which": "file://validation/tests/targets/motion/bad.html",
52
- "what": "page with motion"
53
- },
54
13
  {
55
14
  "type": "test",
56
15
  "which": "testaro",
@@ -69,17 +28,12 @@
69
28
  [
70
29
  "standardResult.instances.0.what",
71
30
  "i",
72
- "moves or changes"
31
+ "changes spontaneously"
73
32
  ],
74
33
  [
75
34
  "standardResult.instances.0.ordinalSeverity",
76
35
  ">",
77
36
  -1
78
- ],
79
- [
80
- "standardResult.instances.0.tagName",
81
- "=",
82
- "HTML"
83
37
  ]
84
38
  ],
85
39
  "withItems": true,
@@ -25,6 +25,11 @@
25
25
  "=",
26
26
  0
27
27
  ],
28
+ [
29
+ "standardResult.instances.length",
30
+ "=",
31
+ 3
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
  "i",
36
- "is misused"
41
+ "Element contains another table"
37
42
  ],
38
43
  [
39
44
  "standardResult.instances.0.ordinalSeverity",
@@ -89,6 +94,36 @@
89
94
  "standardResult.instances.2.location.spec",
90
95
  "=",
91
96
  "#ring"
97
+ ],
98
+ [
99
+ "standardResult.instances.0.outcome",
100
+ "=",
101
+ "failed"
102
+ ],
103
+ [
104
+ "standardResult.instances.1.what",
105
+ "=",
106
+ "Element has only one row or one column"
107
+ ],
108
+ [
109
+ "standardResult.instances.1.tagName",
110
+ "=",
111
+ "TABLE"
112
+ ],
113
+ [
114
+ "standardResult.instances.1.excerpt",
115
+ "i",
116
+ "Advertising"
117
+ ],
118
+ [
119
+ "standardResult.instances.2.what",
120
+ "=",
121
+ "Element contains an object or player"
122
+ ],
123
+ [
124
+ "standardResult.instances.2.tagName",
125
+ "=",
126
+ "TABLE"
92
127
  ]
93
128
  ],
94
129
  "rules": [
@@ -120,7 +155,7 @@
120
155
  [
121
156
  "standardResult.instances.0.what",
122
157
  "i",
123
- "are misused"
158
+ "table elements are misused"
124
159
  ],
125
160
  [
126
161
  "standardResult.instances.0.ordinalSeverity",
@@ -130,7 +165,17 @@
130
165
  [
131
166
  "standardResult.instances.0.tagName",
132
167
  "=",
133
- "TABLE"
168
+ ""
169
+ ],
170
+ [
171
+ "standardResult.instances.0.count",
172
+ "=",
173
+ 3
174
+ ],
175
+ [
176
+ "standardResult.instances.length",
177
+ "=",
178
+ 1
134
179
  ]
135
180
  ],
136
181
  "rules": [
@@ -25,6 +25,11 @@
25
25
  "=",
26
26
  0
27
27
  ],
28
+ [
29
+ "standardResult.instances.length",
30
+ "=",
31
+ 1
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 has an explicit option role but no aria-selected attribute"
41
+ "Element has role=option but no aria-selected attribute"
37
42
  ],
38
43
  [
39
44
  "standardResult.instances.0.ordinalSeverity",
@@ -64,6 +69,11 @@
64
69
  "standardResult.instances.0.excerpt",
65
70
  "=",
66
71
  "Vegan"
72
+ ],
73
+ [
74
+ "standardResult.instances.0.outcome",
75
+ "=",
76
+ "failed"
67
77
  ]
68
78
  ],
69
79
  "rules": [
@@ -100,7 +110,7 @@
100
110
  [
101
111
  "standardResult.instances.0.what",
102
112
  "=",
103
- "Elements with explicit option roles have no aria-selected attributes"
113
+ "Elements with role=option have no aria-selected attributes"
104
114
  ],
105
115
  [
106
116
  "standardResult.instances.0.ordinalSeverity",
@@ -18,7 +18,7 @@
18
18
  [
19
19
  "standardResult.totals.2",
20
20
  "=",
21
- 2
21
+ 1
22
22
  ],
23
23
  [
24
24
  "standardResult.totals.0",
@@ -63,17 +63,12 @@
63
63
  [
64
64
  "standardResult.instances.0.excerpt",
65
65
  "i",
66
- "river2"
66
+ "company2"
67
67
  ],
68
68
  [
69
- "standardResult.instances.1.tagName",
69
+ "standardResult.instances.length",
70
70
  "=",
71
- "INPUT"
72
- ],
73
- [
74
- "standardResult.instances.1.excerpt",
75
- "i",
76
- "company2"
71
+ 1
77
72
  ]
78
73
  ],
79
74
  "rules": [
@@ -90,7 +85,7 @@
90
85
  [
91
86
  "standardResult.totals.2",
92
87
  "=",
93
- 2
88
+ 1
94
89
  ],
95
90
  [
96
91
  "standardResult.totals.1",
@@ -120,12 +115,7 @@
120
115
  [
121
116
  "standardResult.instances.0.count",
122
117
  "=",
123
- 2
124
- ],
125
- [
126
- "standardResult.instances.0.tagName",
127
- "=",
128
- "INPUT"
118
+ 1
129
119
  ]
130
120
  ],
131
121
  "rules": [
@@ -25,6 +25,11 @@
25
25
  "=",
26
26
  0
27
27
  ],
28
+ [
29
+ "standardResult.instances.length",
30
+ "=",
31
+ 1
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
  "i",
36
- "Adjacent BR elements within"
41
+ "Element follows another br element"
37
42
  ],
38
43
  [
39
44
  "standardResult.instances.0.ordinalSeverity",
@@ -64,6 +69,11 @@
64
69
  "standardResult.instances.0.excerpt",
65
70
  "i",
66
71
  "Shame"
72
+ ],
73
+ [
74
+ "standardResult.instances.0.outcome",
75
+ "=",
76
+ "failed"
67
77
  ]
68
78
  ],
69
79
  "rules": [
@@ -95,7 +105,7 @@
95
105
  [
96
106
  "standardResult.instances.0.what",
97
107
  "i",
98
- "Elements contain 2 or more"
108
+ "br elements follow other br elements"
99
109
  ],
100
110
  [
101
111
  "standardResult.instances.0.ordinalSeverity",
@@ -106,6 +116,11 @@
106
116
  "standardResult.instances.0.count",
107
117
  "=",
108
118
  1
119
+ ],
120
+ [
121
+ "standardResult.instances.length",
122
+ "=",
123
+ 1
109
124
  ]
110
125
  ],
111
126
  "rules": [
@@ -5,38 +5,10 @@
5
5
  {
6
6
  "type": "launch",
7
7
  "target": {
8
- "url": "file://validation/tests/targets/radioSet/good.html",
9
- "what": "page with standard radio-button grouping"
8
+ "url": "file://validation/tests/targets/radioSet/bad.html",
9
+ "what": "page with deviant radio-button grouping"
10
10
  }
11
11
  },
12
- {
13
- "type": "test",
14
- "which": "testaro",
15
- "what": "radioSet",
16
- "withItems": true,
17
- "stopOnFail": true,
18
- "expect": [
19
- [
20
- "standardResult.totals.2",
21
- "=",
22
- 0
23
- ],
24
- [
25
- "standardResult.instances.length",
26
- "=",
27
- 0
28
- ]
29
- ],
30
- "rules": [
31
- "y",
32
- "radioSet"
33
- ]
34
- },
35
- {
36
- "type": "url",
37
- "which": "file://validation/tests/targets/radioSet/bad.html",
38
- "what": "page with deviant radio-button grouping"
39
- },
40
12
  {
41
13
  "type": "test",
42
14
  "which": "testaro",
@@ -185,6 +157,34 @@
185
157
  "y",
186
158
  "radioSet"
187
159
  ]
160
+ },
161
+ {
162
+ "type": "url",
163
+ "which": "file://validation/tests/targets/radioSet/good.html",
164
+ "what": "page with standard radio-button grouping"
165
+ },
166
+ {
167
+ "type": "test",
168
+ "which": "testaro",
169
+ "what": "radioSet",
170
+ "withItems": true,
171
+ "stopOnFail": true,
172
+ "expect": [
173
+ [
174
+ "standardResult.totals.2",
175
+ "=",
176
+ 0
177
+ ],
178
+ [
179
+ "standardResult.instances.length",
180
+ "=",
181
+ 0
182
+ ]
183
+ ],
184
+ "rules": [
185
+ "y",
186
+ "radioSet"
187
+ ]
188
188
  }
189
189
  ]
190
190
  }
@@ -56,6 +56,11 @@
56
56
  "=",
57
57
  0
58
58
  ],
59
+ [
60
+ "standardResult.instances.length",
61
+ "=",
62
+ 8
63
+ ],
59
64
  [
60
65
  "standardResult.instances.1.ruleID",
61
66
  "=",
@@ -64,7 +69,7 @@
64
69
  [
65
70
  "standardResult.instances.1.what",
66
71
  "i",
67
- "which is also an implicit"
72
+ "is also an implicit HTML element role"
68
73
  ],
69
74
  [
70
75
  "standardResult.instances.1.ordinalSeverity",
@@ -84,7 +89,7 @@
84
89
  [
85
90
  "standardResult.instances.2.what",
86
91
  "i",
87
- "which is also an implicit"
92
+ "is also an implicit HTML element role"
88
93
  ],
89
94
  [
90
95
  "standardResult.instances.2.ordinalSeverity",
@@ -99,7 +104,7 @@
99
104
  [
100
105
  "standardResult.instances.4.what",
101
106
  "i",
102
- "which is also an implicit"
107
+ "is also an implicit HTML element role"
103
108
  ],
104
109
  [
105
110
  "standardResult.instances.4.ordinalSeverity",
@@ -117,9 +122,24 @@
117
122
  "INPUT"
118
123
  ],
119
124
  [
120
- "standardResult.instances.4.ordinalSeverity",
125
+ "standardResult.instances.7.what",
126
+ "i",
127
+ "Explicit combobox role"
128
+ ],
129
+ [
130
+ "standardResult.instances.0.what",
131
+ "i",
132
+ "Explicit main role"
133
+ ],
134
+ [
135
+ "standardResult.instances.0.tagName",
121
136
  "=",
122
- 0
137
+ "SECTION"
138
+ ],
139
+ [
140
+ "standardResult.instances.0.outcome",
141
+ "=",
142
+ "failed"
123
143
  ]
124
144
  ],
125
145
  "withItems": true,
@@ -15,15 +15,20 @@
15
15
  "withItems": true,
16
16
  "stopOnFail": true,
17
17
  "expect": [
18
+ [
19
+ "standardResult.totals.0",
20
+ "=",
21
+ 2
22
+ ],
18
23
  [
19
24
  "standardResult.totals.1",
20
25
  "=",
21
- 3
26
+ 0
22
27
  ],
23
28
  [
24
29
  "standardResult.instances.length",
25
30
  "=",
26
- 3
31
+ 2
27
32
  ],
28
33
  [
29
34
  "standardResult.instances.0.ruleID",
@@ -33,17 +38,17 @@
33
38
  [
34
39
  "standardResult.instances.0.what",
35
40
  "=",
36
- "Element violates the logical level order in its sectioning container"
41
+ "First child heading is H2, but another is H1"
37
42
  ],
38
43
  [
39
44
  "standardResult.instances.0.ordinalSeverity",
40
45
  "=",
41
- 1
46
+ 0
42
47
  ],
43
48
  [
44
49
  "standardResult.instances.0.tagName",
45
50
  "=",
46
- "H2"
51
+ "SECTION"
47
52
  ],
48
53
  [
49
54
  "standardResult.instances.0.location.doc",
@@ -62,28 +67,23 @@
62
67
  ],
63
68
  [
64
69
  "standardResult.instances.0.excerpt",
65
- "=",
66
- "This heading is illogical"
70
+ "i",
71
+ "This heads a truly illogical section."
67
72
  ],
68
73
  [
69
74
  "standardResult.instances.1.tagName",
70
75
  "=",
71
- "H1"
76
+ "ARTICLE"
72
77
  ],
73
78
  [
74
- "standardResult.instances.1.excerpt",
79
+ "standardResult.instances.1.what",
75
80
  "=",
76
- "This heading is fundamentally illogical"
81
+ "First child heading is H2, but another is H1"
77
82
  ],
78
83
  [
79
- "standardResult.instances.2.tagName",
80
- "=",
81
- "H2"
82
- ],
83
- [
84
- "standardResult.instances.2.excerpt",
85
- "=",
86
- "This article heading is illogical"
84
+ "standardResult.instances.1.excerpt",
85
+ "i",
86
+ "This heads an illogical article."
87
87
  ]
88
88
  ],
89
89
  "rules": [
@@ -97,10 +97,15 @@
97
97
  "withItems": false,
98
98
  "stopOnFail": true,
99
99
  "expect": [
100
+ [
101
+ "standardResult.totals.0",
102
+ "=",
103
+ 2
104
+ ],
100
105
  [
101
106
  "standardResult.totals.1",
102
107
  "=",
103
- 3
108
+ 0
104
109
  ],
105
110
  [
106
111
  "standardResult.totals.3",
@@ -120,12 +125,12 @@
120
125
  [
121
126
  "standardResult.instances.0.count",
122
127
  "=",
123
- 3
128
+ 2
124
129
  ],
125
130
  [
126
131
  "standardResult.instances.0.what",
127
132
  "=",
128
- "Heading elements violate the logical level order in their sectioning containers"
133
+ "First child headings of sectioning containers are deeper than others"
129
134
  ]
130
135
  ],
131
136
  "rules": [
@@ -39,7 +39,7 @@
39
39
  {
40
40
  "type": "url",
41
41
  "which": "file://validation/tests/targets/styleDiff/bad.html",
42
- "what": "page with consistent styles"
42
+ "what": "page with inconsistent styles"
43
43
  },
44
44
  {
45
45
  "type": "test",
@@ -67,6 +67,11 @@
67
67
  "=",
68
68
  2
69
69
  ],
70
+ [
71
+ "standardResult.instances.length",
72
+ "=",
73
+ 4
74
+ ],
70
75
  [
71
76
  "standardResult.instances.0.ruleID",
72
77
  "=",
@@ -88,9 +93,34 @@
88
93
  0
89
94
  ],
90
95
  [
91
- "standardResult.instances.0.tagName",
96
+ "standardResult.instances.0.outcome",
97
+ "=",
98
+ "failed"
99
+ ],
100
+ [
101
+ "standardResult.instances.1.what",
102
+ "i",
103
+ "Links in columns have 2"
104
+ ],
105
+ [
106
+ "standardResult.instances.1.count",
107
+ "=",
108
+ 1
109
+ ],
110
+ [
111
+ "standardResult.instances.1.ordinalSeverity",
92
112
  "=",
93
- "A"
113
+ 1
114
+ ],
115
+ [
116
+ "standardResult.instances.2.what",
117
+ "i",
118
+ "Buttons have 2"
119
+ ],
120
+ [
121
+ "standardResult.instances.2.ordinalSeverity",
122
+ "=",
123
+ 2
94
124
  ],
95
125
  [
96
126
  "standardResult.instances.3.ruleID",
@@ -113,9 +143,9 @@
113
143
  3
114
144
  ],
115
145
  [
116
- "standardResult.instances.3.tagName",
146
+ "standardResult.outcomeTotals.failed",
117
147
  "=",
118
- "H2"
148
+ 5
119
149
  ]
120
150
  ],
121
151
  "rules": [
@@ -83,7 +83,9 @@
83
83
  1
84
84
  ],
85
85
  [
86
- "standardResult.instances.0.count"
86
+ "standardResult.instances.0.count",
87
+ "=",
88
+ 1
87
89
  ],
88
90
  [
89
91
  "standardResult.instances.0.tagName",