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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "testilo",
3
- "version": "41.5.4",
3
+ "version": "41.5.6",
4
4
  "description": "Prepares Testaro jobs and processes Testaro reports",
5
5
  "main": "call.js",
6
6
  "scripts": {
@@ -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
- qualWeb: {
288
- 'QW-WCAG-T32': {
289
- variable: false,
290
- quality: 1,
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: 1,
2843
- what: 'Percent, em, or name is used for a font size'
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,
@@ -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 => {