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
@@ -2,7 +2,20 @@
2
2
  "id": "240101T1200-simple-example",
3
3
  "what": "Test example.edu with bulk",
4
4
  "strict": true,
5
+ "standard": "only",
6
+ "device": {
7
+ "id": "default",
8
+ "windowOptions": {}
9
+ },
10
+ "browserID": "chromium",
5
11
  "timeLimit": 10,
12
+ "creationTimeStamp": "240101T1200",
13
+ "executionTimeStamp": "240101T1200",
14
+ "target": {
15
+ "what": "example.edu home page",
16
+ "url": "https://example.edu/"
17
+ },
18
+ "sources": {},
6
19
  "acts": [
7
20
  {
8
21
  "type": "launch",
@@ -20,10 +33,5 @@
20
33
  "bulk"
21
34
  ]
22
35
  }
23
- ],
24
- "sources": {},
25
- "standard": "only",
26
- "sendReportTo": "http://localhost:3007/api",
27
- "timeStamp": "240101T1500",
28
- "creationTimeStamp": "240101T1200"
36
+ ]
29
37
  }
@@ -42,5 +42,6 @@
42
42
  "observe": false,
43
43
  "sendReportTo": "http://localhost:3007/api",
44
44
  "timeStamp": "240101T1300",
45
- "creationTimeStamp": "240101T1300"
45
+ "creationTimeStamp": "240101T1300",
46
+ "executionTimeStamp": "240101T1300"
46
47
  }
@@ -0,0 +1,45 @@
1
+ {
2
+ "id": "260821T1900-pour-validation",
3
+ "what": "Validate pour tool on webaim.org",
4
+ "strict": true,
5
+ "timeLimit": 60,
6
+ "acts": [
7
+ {
8
+ "type": "launch",
9
+ "which": "chromium",
10
+ "url": "https://webaim.org/",
11
+ "what": "Chromium browser"
12
+ },
13
+ {
14
+ "type": "test",
15
+ "which": "pour",
16
+ "what": "Pour Engine",
17
+ "expect": [
18
+ [
19
+ "standardResult.outcomeTotals.failed",
20
+ ">",
21
+ 0
22
+ ],
23
+ [
24
+ "standardResult.instances.0.outcome",
25
+ "!",
26
+ ""
27
+ ]
28
+ ]
29
+ }
30
+ ],
31
+ "sources": {},
32
+ "standard": "also",
33
+ "target": {
34
+ "url": "https://webaim.org/",
35
+ "what": "WebAIM home page"
36
+ },
37
+ "device": {
38
+ "id": "default",
39
+ "windowOptions": {}
40
+ },
41
+ "browserID": "chromium",
42
+ "timeStamp": "260821T1900",
43
+ "creationTimeStamp": "260821T1900",
44
+ "executionTimeStamp": "260821T1900"
45
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "id": "260901T1000-surea11y-validation",
3
+ "what": "Validate surea11y tool on webaim.org",
4
+ "strict": true,
5
+ "timeLimit": 60,
6
+ "acts": [
7
+ {
8
+ "type": "launch",
9
+ "which": "chromium",
10
+ "url": "https://webaim.org/",
11
+ "what": "Chromium browser"
12
+ },
13
+ {
14
+ "type": "test",
15
+ "which": "surea11y",
16
+ "what": "SureA11y",
17
+ "expect": [
18
+ [
19
+ "standardResult.outcomeTotals.failed",
20
+ ">",
21
+ 0
22
+ ],
23
+ [
24
+ "standardResult.instances.0.outcome",
25
+ "!",
26
+ ""
27
+ ]
28
+ ]
29
+ }
30
+ ],
31
+ "sources": {},
32
+ "standard": "also",
33
+ "target": {
34
+ "url": "https://webaim.org/",
35
+ "what": "WebAIM home page"
36
+ },
37
+ "device": {
38
+ "id": "default",
39
+ "windowOptions": {}
40
+ },
41
+ "browserID": "chromium",
42
+ "timeStamp": "260901T1000",
43
+ "creationTimeStamp": "260901T1000",
44
+ "executionTimeStamp": "260901T1000"
45
+ }
@@ -0,0 +1 @@
1
+ {}
@@ -25,6 +25,11 @@
25
25
  "=",
26
26
  2
27
27
  ],
28
+ [
29
+ "standardResult.instances.length",
30
+ "=",
31
+ 2
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
- "Referenced description of the element is ambiguous or missing"
41
+ "No element has the aria-describedby ID wwwWhat"
37
42
  ],
38
43
  [
39
44
  "standardResult.instances.0.ordinalSeverity",
@@ -79,6 +84,21 @@
79
84
  "standardResult.instances.1.location.spec.y",
80
85
  ">",
81
86
  0
87
+ ],
88
+ [
89
+ "standardResult.instances.1.what",
90
+ "=",
91
+ "Multiple elements share the aria-describedby ID usaAlt"
92
+ ],
93
+ [
94
+ "standardResult.instances.1.ordinalSeverity",
95
+ "=",
96
+ 3
97
+ ],
98
+ [
99
+ "standardResult.instances.1.outcome",
100
+ "=",
101
+ "failed"
82
102
  ]
83
103
  ],
84
104
  "rules": [
@@ -110,7 +130,7 @@
110
130
  [
111
131
  "standardResult.instances.0.what",
112
132
  "=",
113
- "Referenced descriptions of elements are ambiguous or missing"
133
+ "Elements have aria-describedby attributes with missing or invalid id values"
114
134
  ],
115
135
  [
116
136
  "standardResult.instances.0.ordinalSeverity",
@@ -121,6 +141,11 @@
121
141
  "standardResult.instances.0.count",
122
142
  "=",
123
143
  2
144
+ ],
145
+ [
146
+ "standardResult.instances.length",
147
+ "=",
148
+ 1
124
149
  ]
125
150
  ],
126
151
  "rules": [
@@ -1,12 +1,12 @@
1
1
  {
2
- "rule": "focOp",
2
+ "rule": "allCapStyle",
3
3
  "timeLimit": 20,
4
4
  "acts": [
5
5
  {
6
6
  "type": "launch",
7
7
  "target": {
8
- "url": "file://validation/tests/targets/focOp/good.html",
9
- "what": "page with standard focusability and operability"
8
+ "url": "file://validation/tests/targets/allCapStyle/index.html",
9
+ "what": "page with all-capital text transformations"
10
10
  }
11
11
  },
12
12
  {
@@ -16,71 +16,59 @@
16
16
  "stopOnFail": true,
17
17
  "expect": [
18
18
  [
19
- "standardResult.totals.2",
19
+ "standardResult.totals.0",
20
20
  "=",
21
- 0
21
+ 2
22
22
  ],
23
23
  [
24
- "standardResult.totals.3",
24
+ "standardResult.totals.1",
25
25
  "=",
26
26
  0
27
27
  ],
28
- [
29
- "standardResult.instances.length",
30
- "=",
31
- 0
32
- ]
33
- ],
34
- "rules": [
35
- "y",
36
- "focOp"
37
- ]
38
- },
39
- {
40
- "type": "url",
41
- "which": "file://validation/tests/targets/focOp/bad.html",
42
- "what": "page with deviant focusability and operability"
43
- },
44
- {
45
- "type": "test",
46
- "which": "testaro",
47
- "withItems": true,
48
- "stopOnFail": true,
49
- "expect": [
50
28
  [
51
29
  "standardResult.totals.2",
52
30
  "=",
53
- 1
31
+ 0
54
32
  ],
55
33
  [
56
34
  "standardResult.totals.3",
57
35
  "=",
58
36
  0
59
37
  ],
38
+ [
39
+ "standardResult.instances.length",
40
+ "=",
41
+ 2
42
+ ],
60
43
  [
61
44
  "standardResult.instances.0.ruleID",
62
45
  "=",
63
- "focOp"
46
+ "allCapStyle"
64
47
  ],
65
48
  [
66
49
  "standardResult.instances.0.what",
67
- "i",
68
- "Element is Tab-focusable but"
50
+ "=",
51
+ "Element text is transformed into all-capitals"
69
52
  ],
70
53
  [
71
54
  "standardResult.instances.0.ordinalSeverity",
72
55
  "=",
73
- 2
56
+ 0
57
+ ],
58
+ [
59
+ "standardResult.instances.0.outcome",
60
+ "=",
61
+ "failed"
74
62
  ],
75
63
  [
76
64
  "standardResult.instances.0.tagName",
77
65
  "=",
78
- "SPAN"
66
+ "P"
79
67
  ],
80
68
  [
81
69
  "standardResult.instances.0.id",
82
70
  "=",
83
- "badSpan"
71
+ "shout"
84
72
  ],
85
73
  [
86
74
  "standardResult.instances.0.location.doc",
@@ -95,17 +83,32 @@
95
83
  [
96
84
  "standardResult.instances.0.location.spec",
97
85
  "=",
98
- "#badSpan"
86
+ "#shout"
99
87
  ],
100
88
  [
101
89
  "standardResult.instances.0.excerpt",
90
+ "i",
91
+ "DEFECT 1"
92
+ ],
93
+ [
94
+ "standardResult.instances.1.tagName",
95
+ "=",
96
+ "SPAN"
97
+ ],
98
+ [
99
+ "standardResult.instances.1.id",
102
100
  "=",
103
- "focusable span"
101
+ "capSpan"
102
+ ],
103
+ [
104
+ "standardResult.instances.1.excerpt",
105
+ "=",
106
+ "SPAN TRANSFORMED INTO CAPITALS"
104
107
  ]
105
108
  ],
106
109
  "rules": [
107
110
  "y",
108
- "focOp"
111
+ "allCapStyle"
109
112
  ]
110
113
  },
111
114
  {
@@ -115,44 +118,44 @@
115
118
  "stopOnFail": true,
116
119
  "expect": [
117
120
  [
118
- "standardResult.totals.2",
121
+ "standardResult.totals.0",
119
122
  "=",
120
- 1
121
- ],
122
- [
123
- "standardResult.totals.3",
124
- "=",
125
- 0
123
+ 2
126
124
  ],
127
125
  [
128
- "standardResult.totals.1",
126
+ "standardResult.instances.length",
129
127
  "=",
130
- 0
128
+ 1
131
129
  ],
132
130
  [
133
131
  "standardResult.instances.0.ruleID",
134
132
  "=",
135
- "focOp"
133
+ "allCapStyle"
136
134
  ],
137
135
  [
138
136
  "standardResult.instances.0.what",
139
- "i",
140
- "Elements are"
137
+ "=",
138
+ "Elements have an all-capital text transformation style"
141
139
  ],
142
140
  [
143
141
  "standardResult.instances.0.ordinalSeverity",
144
142
  "=",
145
- 2
143
+ 0
146
144
  ],
147
145
  [
148
146
  "standardResult.instances.0.count",
149
147
  "=",
150
- 1
148
+ 2
149
+ ],
150
+ [
151
+ "standardResult.instances.0.tagName",
152
+ "=",
153
+ ""
151
154
  ]
152
155
  ],
153
156
  "rules": [
154
157
  "y",
155
- "focOp"
158
+ "allCapStyle"
156
159
  ]
157
160
  }
158
161
  ]
@@ -45,6 +45,21 @@
45
45
  "=",
46
46
  0
47
47
  ],
48
+ [
49
+ "standardResult.instances.0.outcome",
50
+ "=",
51
+ "cantTell"
52
+ ],
53
+ [
54
+ "standardResult.instances.0.uncertainty",
55
+ "=",
56
+ "judgement-required"
57
+ ],
58
+ [
59
+ "standardResult.outcomeTotals.cantTell",
60
+ "=",
61
+ 4
62
+ ],
48
63
  [
49
64
  "standardResult.instances.1.tagName",
50
65
  "=",
@@ -117,6 +132,16 @@
117
132
  "=",
118
133
  0
119
134
  ],
135
+ [
136
+ "standardResult.instances.0.outcome",
137
+ "=",
138
+ "cantTell"
139
+ ],
140
+ [
141
+ "standardResult.outcomeTotals.failed",
142
+ "=",
143
+ 0
144
+ ],
120
145
  [
121
146
  "standardResult.instances.0.what",
122
147
  "i",
@@ -56,6 +56,11 @@
56
56
  "which": "testaro",
57
57
  "stopOnFail": true,
58
58
  "expect": [
59
+ [
60
+ "standardResult.totals.0",
61
+ "=",
62
+ 0
63
+ ],
59
64
  [
60
65
  "standardResult.totals.1",
61
66
  "=",
@@ -109,6 +114,11 @@
109
114
  "=",
110
115
  0
111
116
  ],
117
+ [
118
+ "standardResult.totals.3",
119
+ "=",
120
+ 0
121
+ ],
112
122
  [
113
123
  "standardResult.instances.length",
114
124
  "=",
@@ -140,13 +150,18 @@
140
150
  [
141
151
  "standardResult.totals.1",
142
152
  "=",
143
- 1
153
+ 0
144
154
  ],
145
155
  [
146
156
  "standardResult.totals.2",
147
157
  "=",
148
158
  0
149
159
  ],
160
+ [
161
+ "standardResult.totals.3",
162
+ "=",
163
+ 1
164
+ ],
150
165
  [
151
166
  "standardResult.instances.length",
152
167
  "=",
@@ -155,7 +170,22 @@
155
170
  [
156
171
  "standardResult.instances.0.what",
157
172
  "=",
158
- "Main region is hidden"
173
+ "The entire page body is hidden or empty"
174
+ ],
175
+ [
176
+ "standardResult.instances.0.ordinalSeverity",
177
+ "=",
178
+ 3
179
+ ],
180
+ [
181
+ "standardResult.instances.0.count",
182
+ "=",
183
+ 1
184
+ ],
185
+ [
186
+ "standardResult.instances.0.outcome",
187
+ "=",
188
+ "failed"
159
189
  ]
160
190
  ],
161
191
  "withItems": true,
@@ -175,16 +205,26 @@
175
205
  "what": "entirely or mainly hidden page",
176
206
  "stopOnFail": true,
177
207
  "expect": [
208
+ [
209
+ "standardResult.totals.0",
210
+ "=",
211
+ 0
212
+ ],
178
213
  [
179
214
  "standardResult.totals.1",
180
215
  "=",
181
- 1
216
+ 0
182
217
  ],
183
218
  [
184
219
  "standardResult.totals.2",
185
220
  "=",
186
221
  0
187
222
  ],
223
+ [
224
+ "standardResult.totals.3",
225
+ "=",
226
+ 1
227
+ ],
188
228
  [
189
229
  "standardResult.instances.length",
190
230
  "=",
@@ -193,7 +233,22 @@
193
233
  [
194
234
  "standardResult.instances.0.what",
195
235
  "=",
196
- "Main region is hidden"
236
+ "The entire page body is hidden or empty"
237
+ ],
238
+ [
239
+ "standardResult.instances.0.ordinalSeverity",
240
+ "=",
241
+ 3
242
+ ],
243
+ [
244
+ "standardResult.instances.0.count",
245
+ "=",
246
+ 1
247
+ ],
248
+ [
249
+ "standardResult.instances.0.outcome",
250
+ "=",
251
+ "failed"
197
252
  ]
198
253
  ],
199
254
  "withItems": true,
@@ -210,23 +265,33 @@
210
265
  {
211
266
  "type": "test",
212
267
  "which": "testaro",
213
- "what": "entirely or mainly hidden page",
268
+ "what": "ARIA-hidden body is not visually hidden, so out of scope for this rule (see axe aria-hidden-body)",
214
269
  "stopOnFail": true,
215
270
  "expect": [
271
+ [
272
+ "standardResult.totals.0",
273
+ "=",
274
+ 0
275
+ ],
276
+ [
277
+ "standardResult.totals.1",
278
+ "=",
279
+ 0
280
+ ],
216
281
  [
217
282
  "standardResult.totals.2",
218
283
  "=",
219
- 1
284
+ 0
220
285
  ],
221
286
  [
222
- "standardResult.instances.length",
287
+ "standardResult.totals.3",
223
288
  "=",
224
- 1
289
+ 0
225
290
  ],
226
291
  [
227
- "standardResult.instances.0.what",
292
+ "standardResult.instances.length",
228
293
  "=",
229
- "Body is hidden"
294
+ 0
230
295
  ]
231
296
  ],
232
297
  "withItems": true,
@@ -246,6 +311,21 @@
246
311
  "what": "entirely or mainly hidden page",
247
312
  "stopOnFail": true,
248
313
  "expect": [
314
+ [
315
+ "standardResult.totals.0",
316
+ "=",
317
+ 0
318
+ ],
319
+ [
320
+ "standardResult.totals.1",
321
+ "=",
322
+ 0
323
+ ],
324
+ [
325
+ "standardResult.totals.2",
326
+ "=",
327
+ 0
328
+ ],
249
329
  [
250
330
  "standardResult.totals.3",
251
331
  "=",
@@ -254,12 +334,27 @@
254
334
  [
255
335
  "standardResult.instances.length",
256
336
  "=",
257
- 3
337
+ 1
258
338
  ],
259
339
  [
260
340
  "standardResult.instances.0.what",
261
341
  "=",
262
- "Document is hidden"
342
+ "The entire page body is hidden or empty"
343
+ ],
344
+ [
345
+ "standardResult.instances.0.ordinalSeverity",
346
+ "=",
347
+ 3
348
+ ],
349
+ [
350
+ "standardResult.instances.0.count",
351
+ "=",
352
+ 1
353
+ ],
354
+ [
355
+ "standardResult.instances.0.outcome",
356
+ "=",
357
+ "failed"
263
358
  ]
264
359
  ],
265
360
  "withItems": true,
@@ -279,6 +374,16 @@
279
374
  "what": "entirely or mainly hidden page",
280
375
  "stopOnFail": true,
281
376
  "expect": [
377
+ [
378
+ "standardResult.totals.0",
379
+ "=",
380
+ 0
381
+ ],
382
+ [
383
+ "standardResult.totals.1",
384
+ "=",
385
+ 0
386
+ ],
282
387
  [
283
388
  "standardResult.totals.2",
284
389
  "=",
@@ -297,7 +402,22 @@
297
402
  [
298
403
  "standardResult.instances.0.what",
299
404
  "=",
300
- "Document is hidden"
405
+ "The entire page body is hidden or empty"
406
+ ],
407
+ [
408
+ "standardResult.instances.0.ordinalSeverity",
409
+ "=",
410
+ 3
411
+ ],
412
+ [
413
+ "standardResult.instances.0.count",
414
+ "=",
415
+ 1
416
+ ],
417
+ [
418
+ "standardResult.instances.0.outcome",
419
+ "=",
420
+ "failed"
301
421
  ]
302
422
  ],
303
423
  "withItems": true,