testilo 41.5.4 → 41.5.6
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/package.json +1 -1
- package/procs/score/tic49.js +39 -45
- package/procs/score/tsp49.js +3 -7
package/package.json
CHANGED
package/procs/score/tic49.js
CHANGED
|
@@ -66,6 +66,16 @@ exports.issues = {
|
|
|
66
66
|
quality: 1,
|
|
67
67
|
what: 'Background image may be informative [speculative]'
|
|
68
68
|
},
|
|
69
|
+
empty_link_element: {
|
|
70
|
+
variable: false,
|
|
71
|
+
quality: 1,
|
|
72
|
+
what: 'Element has no visible and accessible name [invalid]'
|
|
73
|
+
},
|
|
74
|
+
fieldset_no_legend: {
|
|
75
|
+
variable: false,
|
|
76
|
+
quality: 1,
|
|
77
|
+
what: 'First child element of the element is not a legend [duplicative]'
|
|
78
|
+
},
|
|
69
79
|
flickering: {
|
|
70
80
|
variable: false,
|
|
71
81
|
quality: 0,
|
|
@@ -76,11 +86,21 @@ exports.issues = {
|
|
|
76
86
|
quality: 1,
|
|
77
87
|
what: 'Link destination has a named host and may be in an unexpected language [speculative]'
|
|
78
88
|
},
|
|
89
|
+
links_not_visually_evident_without_color_vision: {
|
|
90
|
+
variable: false,
|
|
91
|
+
quality: 1,
|
|
92
|
+
what: 'Element is a link, but its style properties do not differentiate it from its parent [irrelevant]'
|
|
93
|
+
},
|
|
79
94
|
meaningful_content_sequence: {
|
|
80
95
|
variable: false,
|
|
81
96
|
quality: 0,
|
|
82
97
|
what: 'The content sequence may fail to be meaningful [speculative]'
|
|
83
98
|
},
|
|
99
|
+
missing_alt_attribute: {
|
|
100
|
+
variable: false,
|
|
101
|
+
quality: 1,
|
|
102
|
+
what: 'Image has no alt attribute [invalid]'
|
|
103
|
+
},
|
|
84
104
|
motion_actuation: {
|
|
85
105
|
variable: false,
|
|
86
106
|
quality: 0,
|
|
@@ -161,6 +181,13 @@ exports.issues = {
|
|
|
161
181
|
what: 'Element is a visualization, so may lack a nonvisual equivalent [speculative]'
|
|
162
182
|
}
|
|
163
183
|
},
|
|
184
|
+
ibm: {
|
|
185
|
+
aria_child_valid: {
|
|
186
|
+
variable: false,
|
|
187
|
+
quality: 1,
|
|
188
|
+
what: 'Child element has a role not allowed for the role of the parent [invalid]'
|
|
189
|
+
}
|
|
190
|
+
},
|
|
164
191
|
nuVal: {
|
|
165
192
|
'Element head is missing a required instance of child element title.': {
|
|
166
193
|
variable: false,
|
|
@@ -174,6 +201,11 @@ exports.issues = {
|
|
|
174
201
|
}
|
|
175
202
|
},
|
|
176
203
|
qualWeb: {
|
|
204
|
+
'QW-ACT-R13': {
|
|
205
|
+
variable: false,
|
|
206
|
+
quality: 1,
|
|
207
|
+
what: 'Element with aria-hidden has focusable content [invalid]'
|
|
208
|
+
},
|
|
177
209
|
'QW-ACT-R52': {
|
|
178
210
|
variable: false,
|
|
179
211
|
quality: 0,
|
|
@@ -284,12 +316,10 @@ exports.issues = {
|
|
|
284
316
|
quality: 0.5,
|
|
285
317
|
what: 'Script removes the focus when focus is received [invalid]'
|
|
286
318
|
},
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
what: 'ol, ul or dl may fail to be used for a list or group of links [speculative]'
|
|
292
|
-
}
|
|
319
|
+
'QW-WCAG-T32': {
|
|
320
|
+
variable: false,
|
|
321
|
+
quality: 1,
|
|
322
|
+
what: 'ol, ul or dl may fail to be used for a list or group of links [speculative]'
|
|
293
323
|
}
|
|
294
324
|
}
|
|
295
325
|
}
|
|
@@ -612,13 +642,6 @@ exports.issues = {
|
|
|
612
642
|
what: 'Image has no accessible name'
|
|
613
643
|
}
|
|
614
644
|
},
|
|
615
|
-
aslint: {
|
|
616
|
-
missing_alt_attribute: {
|
|
617
|
-
variable: false,
|
|
618
|
-
quality: 1,
|
|
619
|
-
what: 'Image has no alt attribute'
|
|
620
|
-
}
|
|
621
|
-
},
|
|
622
645
|
axe: {
|
|
623
646
|
'image-alt': {
|
|
624
647
|
variable: false,
|
|
@@ -1900,11 +1923,6 @@ exports.issues = {
|
|
|
1900
1923
|
variable: false,
|
|
1901
1924
|
quality: 1,
|
|
1902
1925
|
what: 'Element is an image in a link but has no text alternative'
|
|
1903
|
-
},
|
|
1904
|
-
empty_link_element: {
|
|
1905
|
-
variable: false,
|
|
1906
|
-
quality: 1,
|
|
1907
|
-
what: 'Element has no visible and accessible name'
|
|
1908
1926
|
}
|
|
1909
1927
|
},
|
|
1910
1928
|
axe: {
|
|
@@ -2839,8 +2857,8 @@ exports.issues = {
|
|
|
2839
2857
|
qualWeb: {
|
|
2840
2858
|
'QW-WCAG-T28': {
|
|
2841
2859
|
variable: false,
|
|
2842
|
-
quality:
|
|
2843
|
-
what: '
|
|
2860
|
+
quality: 0.8,
|
|
2861
|
+
what: 'Font size set to an absolute unit value'
|
|
2844
2862
|
}
|
|
2845
2863
|
}
|
|
2846
2864
|
}
|
|
@@ -3417,11 +3435,6 @@ exports.issues = {
|
|
|
3417
3435
|
weight: 4,
|
|
3418
3436
|
tools: {
|
|
3419
3437
|
ibm: {
|
|
3420
|
-
aria_child_valid: {
|
|
3421
|
-
variable: false,
|
|
3422
|
-
quality: 1,
|
|
3423
|
-
what: 'Child element has a role not allowed for the role of the parent'
|
|
3424
|
-
},
|
|
3425
3438
|
aria_descendant_valid: {
|
|
3426
3439
|
variable: false,
|
|
3427
3440
|
quality: 1,
|
|
@@ -4826,7 +4839,7 @@ exports.issues = {
|
|
|
4826
4839
|
'heading-order': {
|
|
4827
4840
|
variable: false,
|
|
4828
4841
|
quality: 1,
|
|
4829
|
-
what: 'Heading levels do not increase by only one'
|
|
4842
|
+
what: 'Heading levels do not increase by only one or their order is ambiguous'
|
|
4830
4843
|
}
|
|
4831
4844
|
},
|
|
4832
4845
|
ed11y: {
|
|
@@ -5574,11 +5587,6 @@ exports.issues = {
|
|
|
5574
5587
|
weight: 2,
|
|
5575
5588
|
tools: {
|
|
5576
5589
|
aslint: {
|
|
5577
|
-
fieldset_no_legend: {
|
|
5578
|
-
variable: false,
|
|
5579
|
-
quality: 1,
|
|
5580
|
-
what: 'First child element of the element is not a legend'
|
|
5581
|
-
},
|
|
5582
5590
|
legend_first_child_of_fieldset: {
|
|
5583
5591
|
variable: false,
|
|
5584
5592
|
quality: 1,
|
|
@@ -7253,13 +7261,6 @@ exports.issues = {
|
|
|
7253
7261
|
quality: 1,
|
|
7254
7262
|
what: 'Element has an ancestor with a true aria-hidden attribute but is focusable'
|
|
7255
7263
|
}
|
|
7256
|
-
},
|
|
7257
|
-
qualWeb: {
|
|
7258
|
-
'QW-ACT-R13': {
|
|
7259
|
-
variable: false,
|
|
7260
|
-
quality: 1,
|
|
7261
|
-
what: 'Element with aria-hidden has focusable content'
|
|
7262
|
-
}
|
|
7263
7264
|
}
|
|
7264
7265
|
}
|
|
7265
7266
|
},
|
|
@@ -7664,13 +7665,6 @@ exports.issues = {
|
|
|
7664
7665
|
what: 'Inline link is not distinct from the surrounding text except by color'
|
|
7665
7666
|
}
|
|
7666
7667
|
},
|
|
7667
|
-
aslint: {
|
|
7668
|
-
links_not_visually_evident_without_color_vision: {
|
|
7669
|
-
variable: false,
|
|
7670
|
-
quality: 1,
|
|
7671
|
-
what: 'Element is a link, but its style properties do not differentiate it from its parent'
|
|
7672
|
-
}
|
|
7673
|
-
},
|
|
7674
7668
|
axe: {
|
|
7675
7669
|
'link-in-text-block': {
|
|
7676
7670
|
variable: false,
|
package/procs/score/tsp49.js
CHANGED
|
@@ -50,8 +50,6 @@ const issueCountWeight = 10;
|
|
|
50
50
|
*/
|
|
51
51
|
const maxWeight = 30;
|
|
52
52
|
|
|
53
|
-
// 2. Solo
|
|
54
|
-
|
|
55
53
|
// 3. Tool
|
|
56
54
|
/*
|
|
57
55
|
Severity: amount added to each raw tool score by each violation of a rule with ordinal severity 0
|
|
@@ -90,7 +88,7 @@ const latencyWeight = 2;
|
|
|
90
88
|
|
|
91
89
|
// RULE CONSTANTS
|
|
92
90
|
|
|
93
|
-
// Initialize a table of tool rules.
|
|
91
|
+
// Initialize a table of issue-classified tool rules.
|
|
94
92
|
const issueIndex = {};
|
|
95
93
|
// Initialize an array of variably named tool rules.
|
|
96
94
|
const issueMatcher = [];
|
|
@@ -100,10 +98,8 @@ Object.keys(issues).forEach(issueName => {
|
|
|
100
98
|
Object.keys(issues[issueName].tools).forEach(toolName => {
|
|
101
99
|
// For each of those rules:
|
|
102
100
|
Object.keys(issues[issueName].tools[toolName]).forEach(ruleID => {
|
|
101
|
+
issueIndex[toolName] ??= {};
|
|
103
102
|
// Add it to the table of tool rules.
|
|
104
|
-
if (! issueIndex[toolName]) {
|
|
105
|
-
issueIndex[toolName] = {};
|
|
106
|
-
}
|
|
107
103
|
issueIndex[toolName][ruleID] = issueName;
|
|
108
104
|
// If it is variably named:
|
|
109
105
|
if (issues[issueName].tools[toolName][ruleID].variable) {
|
|
@@ -197,8 +193,8 @@ exports.scorer = report => {
|
|
|
197
193
|
standardResult.instances.forEach(instance => {
|
|
198
194
|
const {ordinalSeverity, pathID, ruleID, what} = instance;
|
|
199
195
|
const count = instance.count || 1;
|
|
200
|
-
// If the rule ID is not in the table of tool rules:
|
|
201
196
|
let canonicalRuleID = ruleID;
|
|
197
|
+
// If the rule ID is not in the table of issue-classified tool rules:
|
|
202
198
|
if (! issueIndex[which][ruleID]) {
|
|
203
199
|
// Convert it to the variably named tool rule that it matches, if any.
|
|
204
200
|
canonicalRuleID = issueMatcher.find(pattern => {
|