testaro 55.5.13 → 56.0.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.
- package/actSpecs.js +1 -1
- package/package.json +1 -1
- package/procs/doTestAct.js +2 -2
- package/procs/isInlineLink.js +9 -26
- package/run.js +4 -0
- package/testaro/focVis.js +21 -26
- package/tests/testaro.js +2 -1
- package/validation/done/README.md +1 -1
- package/validation/tests/{jobs → jobProperties}/allCaps.json +6 -13
- package/validation/tests/{jobs → jobProperties}/allHidden.json +6 -13
- package/validation/tests/{jobs → jobProperties}/allSlanted.json +6 -13
- package/validation/tests/{jobs → jobProperties}/attVal.json +6 -13
- package/validation/tests/{jobs → jobProperties}/autocomplete.json +6 -13
- package/validation/tests/{jobs → jobProperties}/bulk.json +6 -13
- package/validation/tests/{jobs → jobProperties}/buttonMenu.json +6 -13
- package/validation/tests/{jobs → jobProperties}/distortion.json +6 -13
- package/validation/tests/{jobs → jobProperties}/docType.json +6 -13
- package/validation/tests/{jobs → jobProperties}/dupAtt.json +6 -13
- package/validation/tests/{jobs → jobProperties}/elements.json +6 -12
- package/validation/tests/{jobs → jobProperties}/embAc.json +6 -13
- package/validation/tests/{jobs → jobProperties}/focAll.json +6 -13
- package/validation/tests/{jobs → jobProperties}/focInd.json +6 -13
- package/validation/tests/{jobs → jobProperties}/focOp.json +6 -13
- package/validation/tests/{jobs → jobProperties}/focVis.json +6 -13
- package/validation/tests/{jobs → jobProperties}/headEl.json +6 -13
- package/validation/tests/{jobs → jobProperties}/headingAmb.json +6 -13
- package/validation/tests/{jobs → jobProperties}/hovInd.json +6 -13
- package/validation/tests/{jobs → jobProperties}/hover.json +6 -13
- package/validation/tests/{jobs → jobProperties}/hr.json +6 -13
- package/validation/tests/{jobs → jobProperties}/labClash.json +6 -13
- package/validation/tests/{jobs → jobProperties}/lineHeight.json +6 -13
- package/validation/tests/{jobs → jobProperties}/linkAmb.json +8 -17
- package/validation/tests/{jobs → jobProperties}/linkExt.json +6 -13
- package/validation/tests/{jobs → jobProperties}/linkOldAtt.json +6 -13
- package/validation/tests/{jobs → jobProperties}/linkTitle.json +6 -13
- package/validation/tests/{jobs → jobProperties}/linkTo.json +6 -13
- package/validation/tests/{jobs → jobProperties}/linkUl.json +17 -24
- package/validation/tests/{jobs → jobProperties}/miniText.json +6 -13
- package/validation/tests/{jobs → jobProperties}/motion.json +6 -13
- package/validation/tests/{jobs → jobProperties}/nonTable.json +6 -13
- package/validation/tests/{jobs → jobProperties}/opFoc.json +6 -13
- package/validation/tests/{jobs → jobProperties/pending}/adbID.json +6 -13
- package/validation/tests/{jobs → jobProperties/pending}/altScheme.json +6 -13
- package/validation/tests/{jobs → jobProperties/pending}/captionLoc.json +6 -13
- package/validation/tests/{jobs → jobProperties/pending}/datalistRef.json +6 -13
- package/validation/tests/{jobs → jobProperties/pending}/imageLink.json +6 -13
- package/validation/tests/{jobs → jobProperties/pending}/legendLoc.json +6 -13
- package/validation/tests/{jobs → jobProperties/pending}/optRoleSel.json +6 -13
- package/validation/tests/{jobs → jobProperties/pending}/phOnly.json +6 -13
- package/validation/tests/{jobs → jobProperties/pending}/secHeading.json +6 -13
- package/validation/tests/{jobs → jobProperties/pending}/textSem.json +6 -13
- package/validation/tests/{jobs → jobProperties}/pseudoP.json +6 -13
- package/validation/tests/{jobs → jobProperties}/radioSet.json +6 -13
- package/validation/tests/{jobs → jobProperties}/role.json +6 -13
- package/validation/tests/{jobs → jobProperties}/styleDiff.json +6 -13
- package/validation/tests/{jobs → jobProperties}/tabNav.json +6 -13
- package/validation/tests/{jobs → jobProperties}/targetSize.json +6 -13
- package/validation/tests/{jobs → jobProperties}/textNodes.json +6 -12
- package/validation/tests/{jobs → jobProperties}/title.json +6 -12
- package/validation/tests/{jobs → jobProperties}/titledEl.json +6 -13
- package/validation/tests/{jobs → jobProperties}/zIndex.json +6 -13
- package/validation/tests/targets/linkUl/bad.html +4 -16
- package/validation/tests/targets/linkUl/good.html +3 -2
- package/validation/tests/targets/linkUl/na.html +5 -3
- package/validation/validateTest.js +77 -46
package/actSpecs.js
CHANGED
|
@@ -146,7 +146,7 @@ exports.actSpecs = {
|
|
|
146
146
|
'Perform tests of a tool',
|
|
147
147
|
{
|
|
148
148
|
which: [true, 'string', 'isTest', 'tool name'],
|
|
149
|
-
launch: [false, 'object', '', '
|
|
149
|
+
launch: [false, 'object', '', 'new target, browserID, and/or what, if any'],
|
|
150
150
|
rules: [false, 'array', 'areStrings', 'rule IDs or (for nuVal) specifications, if not all']
|
|
151
151
|
}
|
|
152
152
|
],
|
package/package.json
CHANGED
package/procs/doTestAct.js
CHANGED
|
@@ -63,8 +63,8 @@ const doTestAct = async () => {
|
|
|
63
63
|
report,
|
|
64
64
|
debug,
|
|
65
65
|
waits,
|
|
66
|
-
act.launch.browserID || report.browserID,
|
|
67
|
-
act.launch.target && act.launch.target.url || report.target.url
|
|
66
|
+
act.launch && act.launch.browserID || report.browserID,
|
|
67
|
+
act.launch && act.launch.target && act.launch.target.url || report.target.url
|
|
68
68
|
);
|
|
69
69
|
// If the launch aborted the job:
|
|
70
70
|
if (report.jobData && report.jobData.aborted) {
|
package/procs/isInlineLink.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
© 2023–
|
|
2
|
+
© 2023–2025 CVS Health and/or one of its affiliates. All rights reserved.
|
|
3
3
|
|
|
4
4
|
MIT License
|
|
5
5
|
|
|
@@ -30,6 +30,9 @@
|
|
|
30
30
|
*/
|
|
31
31
|
|
|
32
32
|
exports.isInlineLink = async loc => await loc.evaluate(element => {
|
|
33
|
+
// Returns the normalized text content of an element.
|
|
34
|
+
const realTextOf = element => element ? element.textContent.replace(/\s/g, '') : '';
|
|
35
|
+
const blockElementTypes = 'p, div, li, h1, h2, h3, h4, h5, h6';
|
|
33
36
|
// If the element is not a link:
|
|
34
37
|
if (element.tagName !== 'A' && element.getAttribute('role') !== 'link') {
|
|
35
38
|
// Classify it as not an inline link.
|
|
@@ -37,36 +40,16 @@ exports.isInlineLink = async loc => await loc.evaluate(element => {
|
|
|
37
40
|
}
|
|
38
41
|
// Otherwise, i.e. if it is a link:
|
|
39
42
|
else {
|
|
40
|
-
let listAncestor;
|
|
41
43
|
// Initialize the link as inline.
|
|
42
44
|
let result = true;
|
|
43
|
-
// If its display style property is block:
|
|
44
|
-
|
|
45
|
-
|
|
45
|
+
// If its display style property is block or is tantamount to block:
|
|
46
|
+
if (
|
|
47
|
+
window.getComputedStyle(element).display === 'block'
|
|
48
|
+
|| realTextOf(element.closest(blockElementTypes)) === realTextOf(element)
|
|
49
|
+
) {
|
|
46
50
|
// Reclassify the link as non-inline.
|
|
47
51
|
result = false;
|
|
48
52
|
}
|
|
49
|
-
// Otherwise, if it is in a list item in a list of at least 2 links:
|
|
50
|
-
else if (listAncestor = element.closest('ul, ol')) {
|
|
51
|
-
if (listAncestor.children.length > 1 && Array.from(listAncestor.children).every(child => {
|
|
52
|
-
const isValidListItem = child.tagName === 'LI';
|
|
53
|
-
const has1Link = child.querySelectorAll('a').length === 1;
|
|
54
|
-
return isValidListItem && has1Link;
|
|
55
|
-
})) {
|
|
56
|
-
// If the list text is entirely link text:
|
|
57
|
-
const listText = listAncestor.textContent.replace(/\s/g, '');
|
|
58
|
-
let linkTextRaw = '';
|
|
59
|
-
listAncestor.querySelectorAll('a').forEach(link => {
|
|
60
|
-
linkTextRaw += link.textContent;
|
|
61
|
-
});
|
|
62
|
-
const linkText = linkTextRaw.replace(/\s/g, '');
|
|
63
|
-
console.log(linkText);
|
|
64
|
-
if (listText === linkText && listText.length) {
|
|
65
|
-
// Reclassify the link as non-inline.
|
|
66
|
-
result = false;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
53
|
// Return the result.
|
|
71
54
|
return result;
|
|
72
55
|
}
|
package/run.js
CHANGED
|
@@ -246,6 +246,8 @@ const launch = exports.launch = async (report, debug, waits, tempBrowserID, temp
|
|
|
246
246
|
const url = tempURL || report.target && report.target.url || '';
|
|
247
247
|
// If the specified browser and device types and URL exist:
|
|
248
248
|
if (isBrowserID(browserID) && isDeviceID(deviceID) && isURL(url)) {
|
|
249
|
+
// Replace the report target URL with this URL.
|
|
250
|
+
report.target.url = url;
|
|
249
251
|
// Create a browser of the specified or default type.
|
|
250
252
|
const browserType = require('playwright')[browserID];
|
|
251
253
|
// Close the current browser, if any.
|
|
@@ -762,6 +764,8 @@ const doActs = async (report) => {
|
|
|
762
764
|
const navResult = await goTo(report, page, requestedURL, 15000, 'domcontentloaded');
|
|
763
765
|
// If the visit succeeded:
|
|
764
766
|
if (navResult.success) {
|
|
767
|
+
// Revise the report URL to this URL.
|
|
768
|
+
report.target.url = requestedURL;
|
|
765
769
|
// Add the script nonce, if any, to the act.
|
|
766
770
|
const {response} = navResult;
|
|
767
771
|
const scriptNonce = getNonce(response);
|
package/testaro/focVis.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
© 2022–
|
|
2
|
+
© 2022–2025 CVS Health and/or one of its affiliates. All rights reserved.
|
|
3
3
|
|
|
4
4
|
MIT License
|
|
5
5
|
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
/*
|
|
26
26
|
focVis
|
|
27
27
|
Derived from the bbc-a11y elementsMustBeVisibleOnFocus test.
|
|
28
|
-
This test reports links that are off the display when focused.
|
|
28
|
+
This test reports links that are at least partly off the display when focused.
|
|
29
29
|
*/
|
|
30
30
|
|
|
31
31
|
// ########## IMPORTS
|
|
@@ -37,35 +37,30 @@ const {init, report} = require('../procs/testaro');
|
|
|
37
37
|
|
|
38
38
|
// Runs the test and returns the result.
|
|
39
39
|
exports.reporter = async (page, withItems) => {
|
|
40
|
-
// Initialize
|
|
40
|
+
// Initialize a sample of locators and a result.
|
|
41
41
|
const all = await init(100, page, 'a:visible');
|
|
42
42
|
// For each locator:
|
|
43
43
|
for (const loc of all.allLocs) {
|
|
44
|
+
// Focus it.
|
|
45
|
+
await loc.focus();
|
|
46
|
+
// Get its location.
|
|
47
|
+
const box = await loc.boundingBox();
|
|
44
48
|
// Get how its element violates the rule, if it does.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
if (isBad[0] || isBad[1]) {
|
|
53
|
-
// Add the locator to the array of violators.
|
|
54
|
-
let param;
|
|
55
|
-
if (isBad[0] && isBad[1]) {
|
|
56
|
-
param = 'above and to the left of';
|
|
57
|
-
}
|
|
58
|
-
else if (isBad[0]) {
|
|
59
|
-
param = 'above';
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
param = 'to the left of';
|
|
63
|
-
}
|
|
64
|
-
all.locs.push([loc, param]);
|
|
49
|
+
const isBad = [box.x < 0, box.y < 0];
|
|
50
|
+
// If it does:
|
|
51
|
+
if (isBad.some(item => item)) {
|
|
52
|
+
// Add the locator to the array of violators.
|
|
53
|
+
let param;
|
|
54
|
+
if (isBad.every(item => item)) {
|
|
55
|
+
param = 'above and to the left of';
|
|
65
56
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
57
|
+
else if (isBad[0]) {
|
|
58
|
+
param = 'to the left of';
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
param = 'above';
|
|
62
|
+
}
|
|
63
|
+
all.locs.push([loc, param]);
|
|
69
64
|
}
|
|
70
65
|
}
|
|
71
66
|
// Populate and return the result.
|
package/tests/testaro.js
CHANGED
|
@@ -38,6 +38,7 @@ const {tellServer} = require('../procs/tellServer');
|
|
|
38
38
|
|
|
39
39
|
// ######## CONSTANTS
|
|
40
40
|
|
|
41
|
+
// The validation job data for the tests listed below are in the pending directory.
|
|
41
42
|
/*
|
|
42
43
|
const futureEvalRulesTraining = {
|
|
43
44
|
altScheme: 'img elements with alt attributes having URLs as their entire values',
|
|
@@ -81,7 +82,7 @@ const evalRules = {
|
|
|
81
82
|
focAll: 'discrepancies between focusable and Tab-focused elements',
|
|
82
83
|
focInd: 'missing and nonstandard focus indicators',
|
|
83
84
|
focOp: 'Tab-focusable elements that are not operable',
|
|
84
|
-
focVis: 'links that are
|
|
85
|
+
focVis: 'links that are not entirely visible when focused',
|
|
85
86
|
headEl: 'invalid elements within the head',
|
|
86
87
|
headingAmb: 'same-level sibling headings with identical texts',
|
|
87
88
|
hover: 'hover-caused content changes',
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"what": "validation of allCaps test",
|
|
4
|
-
"strict": true,
|
|
2
|
+
"rule": "allCaps",
|
|
5
3
|
"timeLimit": 20,
|
|
6
4
|
"acts": [
|
|
7
5
|
{
|
|
8
6
|
"type": "launch",
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
"target": {
|
|
8
|
+
"url": "file://validation/tests/targets/allCaps/index.html",
|
|
9
|
+
"what": "page with various letter cases"
|
|
10
|
+
}
|
|
12
11
|
},
|
|
13
12
|
{
|
|
14
13
|
"type": "test",
|
|
@@ -134,11 +133,5 @@
|
|
|
134
133
|
"allCaps"
|
|
135
134
|
]
|
|
136
135
|
}
|
|
137
|
-
]
|
|
138
|
-
"sources": {
|
|
139
|
-
},
|
|
140
|
-
"standard": "only",
|
|
141
|
-
"observe": false,
|
|
142
|
-
"timeStamp": "240101T1500",
|
|
143
|
-
"creationTimeStamp": "240101T1200"
|
|
136
|
+
]
|
|
144
137
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"what": "validation of allHidden test",
|
|
4
|
-
"strict": true,
|
|
2
|
+
"rule": "allHidden",
|
|
5
3
|
"timeLimit": 20,
|
|
6
4
|
"acts": [
|
|
7
5
|
{
|
|
8
6
|
"type": "launch",
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
"target": {
|
|
8
|
+
"url": "file://validation/tests/targets/allHidden/good.html",
|
|
9
|
+
"what": "page with nothing hidden"
|
|
10
|
+
}
|
|
12
11
|
},
|
|
13
12
|
{
|
|
14
13
|
"type": "test",
|
|
@@ -307,11 +306,5 @@
|
|
|
307
306
|
"allHidden"
|
|
308
307
|
]
|
|
309
308
|
}
|
|
310
|
-
]
|
|
311
|
-
"sources": {
|
|
312
|
-
},
|
|
313
|
-
"standard": "only",
|
|
314
|
-
"observe": false,
|
|
315
|
-
"timeStamp": "240101T1500",
|
|
316
|
-
"creationTimeStamp": "240101T1200"
|
|
309
|
+
]
|
|
317
310
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"what": "validation of allSlanted test",
|
|
4
|
-
"strict": true,
|
|
2
|
+
"rule": "allSlanted",
|
|
5
3
|
"timeLimit": 20,
|
|
6
4
|
"acts": [
|
|
7
5
|
{
|
|
8
6
|
"type": "launch",
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
"target": {
|
|
8
|
+
"url": "file://validation/tests/targets/allSlanted/index.html",
|
|
9
|
+
"what": "page with various slantednesses"
|
|
10
|
+
}
|
|
12
11
|
},
|
|
13
12
|
{
|
|
14
13
|
"type": "test",
|
|
@@ -129,11 +128,5 @@
|
|
|
129
128
|
"allSlanted"
|
|
130
129
|
]
|
|
131
130
|
}
|
|
132
|
-
]
|
|
133
|
-
"sources": {
|
|
134
|
-
},
|
|
135
|
-
"standard": "only",
|
|
136
|
-
"observe": false,
|
|
137
|
-
"timeStamp": "240101T1500",
|
|
138
|
-
"creationTimeStamp": "240101T1200"
|
|
131
|
+
]
|
|
139
132
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"what": "validation of attVal test",
|
|
4
|
-
"strict": true,
|
|
2
|
+
"rule": "attVal",
|
|
5
3
|
"timeLimit": 20,
|
|
6
4
|
"acts": [
|
|
7
5
|
{
|
|
8
6
|
"type": "launch",
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
"target": {
|
|
8
|
+
"url": "file://validation/tests/targets/attVal/good.html",
|
|
9
|
+
"what": "page with permitted attribute values"
|
|
10
|
+
}
|
|
12
11
|
},
|
|
13
12
|
{
|
|
14
13
|
"type": "test",
|
|
@@ -180,11 +179,5 @@
|
|
|
180
179
|
"attVal": ["lang", true, ["en-US", "de-CH"]]
|
|
181
180
|
}
|
|
182
181
|
}
|
|
183
|
-
]
|
|
184
|
-
"sources": {
|
|
185
|
-
},
|
|
186
|
-
"standard": "only",
|
|
187
|
-
"observe": false,
|
|
188
|
-
"timeStamp": "240101T1500",
|
|
189
|
-
"creationTimeStamp": "240101T1200"
|
|
182
|
+
]
|
|
190
183
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"what": "validation of autocomplete test",
|
|
4
|
-
"strict": true,
|
|
2
|
+
"rule": "autocomplete",
|
|
5
3
|
"timeLimit": 20,
|
|
6
4
|
"acts": [
|
|
7
5
|
{
|
|
8
6
|
"type": "launch",
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
"target": {
|
|
8
|
+
"url": "file://validation/tests/targets/autocomplete/good.html",
|
|
9
|
+
"what": "page with correct autocomplete attributes"
|
|
10
|
+
}
|
|
12
11
|
},
|
|
13
12
|
{
|
|
14
13
|
"type": "test",
|
|
@@ -144,11 +143,5 @@
|
|
|
144
143
|
"autocomplete"
|
|
145
144
|
]
|
|
146
145
|
}
|
|
147
|
-
]
|
|
148
|
-
"sources": {
|
|
149
|
-
},
|
|
150
|
-
"standard": "only",
|
|
151
|
-
"observe": false,
|
|
152
|
-
"timeStamp": "240101T1500",
|
|
153
|
-
"creationTimeStamp": "240101T1200"
|
|
146
|
+
]
|
|
154
147
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"what": "validation of bulk test",
|
|
4
|
-
"strict": true,
|
|
2
|
+
"rule": "bulk",
|
|
5
3
|
"timeLimit": 20,
|
|
6
4
|
"acts": [
|
|
7
5
|
{
|
|
8
6
|
"type": "launch",
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
"target": {
|
|
8
|
+
"url": "file://validation/tests/targets/bulk/good.html",
|
|
9
|
+
"what": "small page"
|
|
10
|
+
}
|
|
12
11
|
},
|
|
13
12
|
{
|
|
14
13
|
"type": "test",
|
|
@@ -79,11 +78,5 @@
|
|
|
79
78
|
"bulk"
|
|
80
79
|
]
|
|
81
80
|
}
|
|
82
|
-
]
|
|
83
|
-
"sources": {
|
|
84
|
-
},
|
|
85
|
-
"standard": "only",
|
|
86
|
-
"observe": false,
|
|
87
|
-
"timeStamp": "240101T1500",
|
|
88
|
-
"creationTimeStamp": "240101T1200"
|
|
81
|
+
]
|
|
89
82
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"what": "validation of buttonMenu test",
|
|
4
|
-
"strict": true,
|
|
2
|
+
"rule": "buttonMenu",
|
|
5
3
|
"timeLimit": 20,
|
|
6
4
|
"acts": [
|
|
7
5
|
{
|
|
8
6
|
"type": "launch",
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
"target": {
|
|
8
|
+
"url": "file://validation/tests/targets/buttonMenu/good.html",
|
|
9
|
+
"what": "page with standard menu navigation"
|
|
10
|
+
}
|
|
12
11
|
},
|
|
13
12
|
{
|
|
14
13
|
"type": "test",
|
|
@@ -207,11 +206,5 @@
|
|
|
207
206
|
"buttonMenu"
|
|
208
207
|
]
|
|
209
208
|
}
|
|
210
|
-
]
|
|
211
|
-
"sources": {
|
|
212
|
-
},
|
|
213
|
-
"standard": "only",
|
|
214
|
-
"observe": false,
|
|
215
|
-
"timeStamp": "240101T1500",
|
|
216
|
-
"creationTimeStamp": "240101T1200"
|
|
209
|
+
]
|
|
217
210
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"what": "validation of distortion test",
|
|
4
|
-
"strict": true,
|
|
2
|
+
"rule": "distortion",
|
|
5
3
|
"timeLimit": 20,
|
|
6
4
|
"acts": [
|
|
7
5
|
{
|
|
8
6
|
"type": "launch",
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
"target": {
|
|
8
|
+
"url": "file://validation/tests/targets/distortion/index.html",
|
|
9
|
+
"what": "page with distorted text"
|
|
10
|
+
}
|
|
12
11
|
},
|
|
13
12
|
{
|
|
14
13
|
"type": "test",
|
|
@@ -104,11 +103,5 @@
|
|
|
104
103
|
"distortion"
|
|
105
104
|
]
|
|
106
105
|
}
|
|
107
|
-
]
|
|
108
|
-
"sources": {
|
|
109
|
-
},
|
|
110
|
-
"standard": "only",
|
|
111
|
-
"observe": false,
|
|
112
|
-
"timeStamp": "240101T1500",
|
|
113
|
-
"creationTimeStamp": "240101T1200"
|
|
106
|
+
]
|
|
114
107
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"what": "validation of docType test",
|
|
4
|
-
"strict": true,
|
|
2
|
+
"rule": "docType",
|
|
5
3
|
"timeLimit": 20,
|
|
6
4
|
"acts": [
|
|
7
5
|
{
|
|
8
6
|
"type": "launch",
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
"target": {
|
|
8
|
+
"url": "file://validation/tests/targets/docType/good.html",
|
|
9
|
+
"what": "page with doctype"
|
|
10
|
+
}
|
|
12
11
|
},
|
|
13
12
|
{
|
|
14
13
|
"type": "test",
|
|
@@ -84,11 +83,5 @@
|
|
|
84
83
|
"docType"
|
|
85
84
|
]
|
|
86
85
|
}
|
|
87
|
-
]
|
|
88
|
-
"sources": {
|
|
89
|
-
},
|
|
90
|
-
"standard": "only",
|
|
91
|
-
"observe": false,
|
|
92
|
-
"timeStamp": "240101T1500",
|
|
93
|
-
"creationTimeStamp": "240101T1200"
|
|
86
|
+
]
|
|
94
87
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"what": "validation of dupAtt test",
|
|
4
|
-
"strict": true,
|
|
2
|
+
"rule": "dupAtt",
|
|
5
3
|
"timeLimit": 20,
|
|
6
4
|
"acts": [
|
|
7
5
|
{
|
|
8
6
|
"type": "launch",
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
"target": {
|
|
8
|
+
"url": "file://validation/tests/targets/dupAtt/good.html",
|
|
9
|
+
"what": "page without duplicate attributes"
|
|
10
|
+
}
|
|
12
11
|
},
|
|
13
12
|
{
|
|
14
13
|
"type": "test",
|
|
@@ -131,11 +130,5 @@
|
|
|
131
130
|
"dupAtt"
|
|
132
131
|
]
|
|
133
132
|
}
|
|
134
|
-
]
|
|
135
|
-
"sources": {
|
|
136
|
-
},
|
|
137
|
-
"standard": "only",
|
|
138
|
-
"observe": false,
|
|
139
|
-
"timeStamp": "240101T1500",
|
|
140
|
-
"creationTimeStamp": "240101T1200"
|
|
133
|
+
]
|
|
141
134
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"what": "validation of elements test",
|
|
4
|
-
"strict": true,
|
|
2
|
+
"rule": "elements",
|
|
5
3
|
"timeLimit": 20,
|
|
6
4
|
"acts": [
|
|
7
5
|
{
|
|
8
6
|
"type": "launch",
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
"target": {
|
|
8
|
+
"url": "file://validation/tests/targets/elements/index.html",
|
|
9
|
+
"what": "page with a shadow root"
|
|
10
|
+
}
|
|
12
11
|
},
|
|
13
12
|
{
|
|
14
13
|
"type": "test",
|
|
@@ -293,10 +292,5 @@
|
|
|
293
292
|
}
|
|
294
293
|
}
|
|
295
294
|
],
|
|
296
|
-
"
|
|
297
|
-
},
|
|
298
|
-
"standard": "no",
|
|
299
|
-
"observe": false,
|
|
300
|
-
"timeStamp": "240101T1500",
|
|
301
|
-
"creationTimeStamp": "240101T1200"
|
|
295
|
+
"standard": "no"
|
|
302
296
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"what": "validation of embAc test",
|
|
4
|
-
"strict": true,
|
|
2
|
+
"rule": "embAc",
|
|
5
3
|
"timeLimit": 20,
|
|
6
4
|
"acts": [
|
|
7
5
|
{
|
|
8
6
|
"type": "launch",
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
"target": {
|
|
8
|
+
"url": "file://validation/tests/targets/embAc/good.html",
|
|
9
|
+
"what": "page without embedding in links or buttons"
|
|
10
|
+
}
|
|
12
11
|
},
|
|
13
12
|
{
|
|
14
13
|
"type": "test",
|
|
@@ -141,11 +140,5 @@
|
|
|
141
140
|
"embAc"
|
|
142
141
|
]
|
|
143
142
|
}
|
|
144
|
-
]
|
|
145
|
-
"sources": {
|
|
146
|
-
},
|
|
147
|
-
"standard": "only",
|
|
148
|
-
"observe": false,
|
|
149
|
-
"timeStamp": "240101T1500",
|
|
150
|
-
"creationTimeStamp": "240101T1200"
|
|
143
|
+
]
|
|
151
144
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"what": "validation of focAll test",
|
|
4
|
-
"strict": true,
|
|
2
|
+
"rule": "focAll",
|
|
5
3
|
"timeLimit": 20,
|
|
6
4
|
"acts": [
|
|
7
5
|
{
|
|
8
6
|
"type": "launch",
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
"target": {
|
|
8
|
+
"url": "file://validation/tests/targets/focAll/good.html",
|
|
9
|
+
"what": "fully Tab-focusable page"
|
|
10
|
+
}
|
|
12
11
|
},
|
|
13
12
|
{
|
|
14
13
|
"type": "test",
|
|
@@ -126,11 +125,5 @@
|
|
|
126
125
|
"focAll"
|
|
127
126
|
]
|
|
128
127
|
}
|
|
129
|
-
]
|
|
130
|
-
"sources": {
|
|
131
|
-
},
|
|
132
|
-
"standard": "only",
|
|
133
|
-
"observe": false,
|
|
134
|
-
"timeStamp": "240101T1500",
|
|
135
|
-
"creationTimeStamp": "240101T1200"
|
|
128
|
+
]
|
|
136
129
|
}
|