testilo 17.2.2 → 17.2.4

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": "17.2.2",
3
+ "version": "17.2.4",
4
4
  "description": "Prepares and processes Testaro reports",
5
5
  "main": "aim.js",
6
6
  "scripts": {
@@ -30,9 +30,8 @@
30
30
  </table>
31
31
  </header>
32
32
  <h2>Introduction</h2>
33
- <p>This is a digest of a <a href="__reportURL__">report of results</a> from a battery of <a href="https://www.w3.org/WAI/">web accessibility</a> tests.</p>
34
- <p>Nine different <dfn>tools</dfn> (Alfa, ASLint, Axe, Equal Access, HTML CodeSniffer, Nu Html Checker, QualWeb, Testaro, and WAVE) tested the web page of __org__ at __url__ to check its compliance with various <dfn>rules</dfn>. There were a total of about 960 rules, classified into about 290 accessibility <dfn>issues</dfn>.</p>
35
- <p>The results were interpreted to yield an aggregate score of __total__, where 0 would be <q>perfect</q>.</p>
33
+ <p>How <a href="https://www.w3.org/WAI/">accessible</a> is the __org__ web page at <a href="__reportURL__"><code>__reportURL__</code></a>?</p>
34
+ <p>This digest can help answer that question. Nine different tools (Alfa, ASLint, Axe, Equal Access, HTML CodeSniffer, Nu Html Checker, QualWeb, Testaro, and WAVE) tested the page to check its compliance with their accessibility rules. In all, the tools define about 960 rules, which are classified here into about 290 accessibility issues. The results were interpreted to yield a score. If the page passed every test, its score would be 0. The score for this page was __total__.</p>
36
35
  <h2>Total score</h2>
37
36
  <p>The total score is the sum of five components.</p>
38
37
  <table class="allBorder secondCellRight">
@@ -41,16 +40,18 @@
41
40
  <tr><th>Component</th><th>Score</th><th>Description</th></tr>
42
41
  </thead>
43
42
  <tbody class="headersLeft">
44
- <tr><th>total</th><td>__total__</td><td>Sum of the component scores</td></tr>
45
43
  <tr><th>issue</th><td>__issue__</td><td>Severity and number of reported defects</td></tr>
46
44
  <tr><th>tool</th><td>__tool__</td><td>Tool-by-tool defect ratings</td></tr>
47
45
  <tr><th>prevention</th><td>__prevention__</td><td>Failed attempts by tools to test the page</td></tr>
48
46
  <tr><th>log</th><td>__log__</td><td>Browser warnings about the page</td></tr>
49
47
  <tr><th>latency</th><td>__latency__</td><td>Abnormal delay in page responses</td></tr>
50
48
  </tbody>
49
+ <tfoot>
50
+ <tr><th>total</th><td>__total__</td><td>Sum of the component scores</td></tr>
51
+ </tfoot>
51
52
  </table>
52
53
  <h2>Issue scores</h2>
53
- <p>The score of an issue depends on the <dfn>severity</dfn> (user impact and certainty) of the issue and on how many instances were reported (by one or more tools).</p>
54
+ <p>The score on an issue depends on the <dfn>severity</dfn> (user impact and certainty) of the issue and on how many instances were reported (by one or more tools).</p>
54
55
  <table class="allBorder secondCellRight">
55
56
  <caption>Issue scores</caption>
56
57
  <thead>
@@ -68,19 +68,13 @@ const populateQuery = (report, query) => {
68
68
  issueDetailRows.push(`<p>Score: ${issueData.score}</p>`);
69
69
  const toolIDs = Object.keys(issueData.tools);
70
70
  toolIDs.forEach(toolID => {
71
- issueDetailRows.push(`<h4>Complaints by <code>${toolID}</code></h5>`);
71
+ issueDetailRows.push(`<h4>Violations of <code>${toolID}</code> rules</h5>`);
72
72
  const ruleIDs = Object.keys(issueData.tools[toolID]);
73
73
  ruleIDs.forEach(ruleID => {
74
74
  const ruleData = issueData.tools[toolID][ruleID];
75
75
  issueDetailRows.push(`<h5>Rule <code>${ruleID}</code></h5>`);
76
76
  issueDetailRows.push(`<p>Description: ${ruleData.what}</p>`);
77
77
  issueDetailRows.push(`<p>Count of instances: ${ruleData.complaints.countTotal}</p>`);
78
- issueDetailRows.push('<h6>Complaint specifics</h6>');
79
- issueDetailRows.push('<ul>');
80
- ruleData.complaints.texts.forEach(text => {
81
- issueDetailRows.push(` <li>${htmlEscape(text || '')}</li>`);
82
- });
83
- issueDetailRows.push('</ul>');
84
78
  });
85
79
  });
86
80
  });
@@ -1203,12 +1203,12 @@ exports.issues = {
1203
1203
  }
1204
1204
  },
1205
1205
  customKeyboardRisk: {
1206
- why: 'Custom item may prevent a no-mouse user from operating it',
1206
+ why: 'Custom item may prevent a keyboard-only user from operating it',
1207
1207
  wcag: '2.1.1',
1208
1208
  weight: 1,
1209
1209
  tools: {
1210
1210
  htmlcs: {
1211
- 'link-button-space-key': {
1211
+ 'link_button_space_key': {
1212
1212
  variable: false,
1213
1213
  quality: 1,
1214
1214
  what: 'Element has a button role but may fail to be keyboard-operable'
@@ -1217,7 +1217,7 @@ exports.issues = {
1217
1217
  }
1218
1218
  },
1219
1219
  objectBlurKeyboardRisk: {
1220
- why: 'Custom item may trap a no-mouse user',
1220
+ why: 'Custom item may trap a keyboard-only user',
1221
1221
  wcag: '2.1.1',
1222
1222
  weight: 1,
1223
1223
  tools: {
@@ -1231,7 +1231,7 @@ exports.issues = {
1231
1231
  }
1232
1232
  },
1233
1233
  eventKeyboardRisk: {
1234
- why: 'No-mouse user may be unable to perform an action',
1234
+ why: 'Keyboard-only user may be unable to perform an action',
1235
1235
  wcag: '2.1.1',
1236
1236
  weight: 1,
1237
1237
  tools: {
@@ -1356,7 +1356,7 @@ exports.issues = {
1356
1356
  }
1357
1357
  },
1358
1358
  activeDescendantBadID: {
1359
- why: 'No-mouse user cannot reach an item in a menu',
1359
+ why: 'Keyboard-only user cannot reach an item in a menu',
1360
1360
  wcag: '1.3.1',
1361
1361
  weight: 4,
1362
1362
  tools: {
@@ -1370,7 +1370,7 @@ exports.issues = {
1370
1370
  }
1371
1371
  },
1372
1372
  governedBadID: {
1373
- why: 'No-mouse user cannot reach an item',
1373
+ why: 'Keyboard-only user cannot reach an item',
1374
1374
  wcag: '1.3.1',
1375
1375
  weight: 4,
1376
1376
  tools: {
@@ -1534,7 +1534,7 @@ exports.issues = {
1534
1534
  }
1535
1535
  },
1536
1536
  haspopupBad: {
1537
- why: 'No-mouse user cannot operate a custom tool',
1537
+ why: 'Keyboard-only user cannot operate a custom tool',
1538
1538
  wcag: '1.3.1',
1539
1539
  weight: 4,
1540
1540
  tools: {
@@ -1913,7 +1913,7 @@ exports.issues = {
1913
1913
  }
1914
1914
  },
1915
1915
  linkPair: {
1916
- why: 'No-mouse user expends twice the effort to pass a link',
1916
+ why: 'Keyboard-only user expends extra effort to skip a link',
1917
1917
  wcag: '2.4.4',
1918
1918
  weight: 2,
1919
1919
  tools: {
@@ -2147,7 +2147,7 @@ exports.issues = {
2147
2147
  }
2148
2148
  },
2149
2149
  parentMissing: {
2150
- why: 'No-mouse user cannot operate a custom tool',
2150
+ why: 'Keyboard-only user cannot operate a custom tool',
2151
2151
  wcag: '1.3.1',
2152
2152
  weight: 4,
2153
2153
  tools: {
@@ -2189,7 +2189,7 @@ exports.issues = {
2189
2189
  }
2190
2190
  },
2191
2191
  descendantMissing: {
2192
- why: 'No-mouse user cannot operate a custom tool',
2192
+ why: 'Keyboard-only user cannot operate a custom tool',
2193
2193
  wcag: '1.3.1',
2194
2194
  weight: 4,
2195
2195
  tools: {
@@ -2217,7 +2217,7 @@ exports.issues = {
2217
2217
  }
2218
2218
  },
2219
2219
  presentationChild: {
2220
- why: 'No-mouse user cannot reach an item intended to be reachable',
2220
+ why: 'Keyboard-only user cannot reach an item intended to be reachable',
2221
2221
  wcag: '1.3.1',
2222
2222
  weight: 4,
2223
2223
  tools: {
@@ -3913,7 +3913,7 @@ exports.issues = {
3913
3913
  }
3914
3914
  },
3915
3915
  decorativeTitle: {
3916
- why: 'Hovering gives information withheld from a no-mouse user',
3916
+ why: 'Hovering-produced information is denied to a keyboard-only user',
3917
3917
  wcag: '1.3.1',
3918
3918
  weight: 1,
3919
3919
  tools: {
@@ -4708,7 +4708,7 @@ exports.issues = {
4708
4708
  }
4709
4709
  },
4710
4710
  noOptionFocusable: {
4711
- why: 'No-mouse user cannot choose an option',
4711
+ why: 'Keyboard-only user cannot choose an option',
4712
4712
  wcag: '2.1.1',
4713
4713
  weight: 1,
4714
4714
  tools: {
@@ -5552,7 +5552,7 @@ exports.issues = {
5552
5552
  }
5553
5553
  },
5554
5554
  tabFocusability: {
5555
- why: 'No-mouse user cannot choose an item to operate',
5555
+ why: 'Keyboard-only user cannot choose an item to operate',
5556
5556
  wcag: '2.1.1',
5557
5557
  weight: 4,
5558
5558
  tools: {
@@ -5592,7 +5592,7 @@ exports.issues = {
5592
5592
  }
5593
5593
  },
5594
5594
  focusIndication: {
5595
- why: 'No-mouse user cannot choose an item to operate',
5595
+ why: 'Keyboard-only user cannot choose an item to operate',
5596
5596
  wcag: '2.4.7',
5597
5597
  weight: 4,
5598
5598
  tools: {
@@ -6254,7 +6254,7 @@ exports.issues = {
6254
6254
  }
6255
6255
  },
6256
6256
  operableFocusable: {
6257
- why: 'No-mouse user cannot navigate properly to an operable item',
6257
+ why: 'Keyboard-only user cannot navigate properly to an operable item',
6258
6258
  wcag: '2.1.1',
6259
6259
  weight: 4,
6260
6260
  tools: {
@@ -6268,7 +6268,7 @@ exports.issues = {
6268
6268
  }
6269
6269
  },
6270
6270
  focusableRole: {
6271
- why: 'No-mouse user cannot navigate properly to the operable items',
6271
+ why: 'Keyboard-only user cannot navigate properly to the operable items',
6272
6272
  wcag: '4.1.2',
6273
6273
  weight: 3,
6274
6274
  tools: {
@@ -6289,7 +6289,7 @@ exports.issues = {
6289
6289
  }
6290
6290
  },
6291
6291
  focusableHidden: {
6292
- why: 'No-mouse user cannot navigate properly to the operable items',
6292
+ why: 'Keyboard-only user cannot navigate properly to the operable items',
6293
6293
  wcag: '4.1.2',
6294
6294
  weight: 4,
6295
6295
  tools: {
@@ -6341,7 +6341,7 @@ exports.issues = {
6341
6341
  }
6342
6342
  },
6343
6343
  focusedAway: {
6344
- why: 'No-mouse user cannot navigate properly to the operable items',
6344
+ why: 'Keyboard-only user cannot navigate properly to the operable items',
6345
6345
  wcag: '1.4.10',
6346
6346
  weight: 3,
6347
6347
  tools: {
@@ -6355,7 +6355,7 @@ exports.issues = {
6355
6355
  }
6356
6356
  },
6357
6357
  focusableDescendants: {
6358
- why: 'No-mouse user cannot navigate properly to the operable items',
6358
+ why: 'Keyboard-only user cannot navigate properly to the operable items',
6359
6359
  wcag: '4.1.2',
6360
6360
  weight: 4,
6361
6361
  tools: {
@@ -6746,7 +6746,7 @@ exports.issues = {
6746
6746
  }
6747
6747
  },
6748
6748
  menuNavigation: {
6749
- why: 'Menu items behave improperly for a no-mouse user',
6749
+ why: 'Menu items behave improperly for a keyboard-only user',
6750
6750
  wcag: '2.1.1',
6751
6751
  weight: 2,
6752
6752
  tools: {
@@ -6774,7 +6774,7 @@ exports.issues = {
6774
6774
  }
6775
6775
  },
6776
6776
  tabNavigation: {
6777
- why: 'Tablist items behave improperly for a no-mouse user',
6777
+ why: 'Tablist items behave improperly for a keyboard-only user',
6778
6778
  wcag: '2.1.1',
6779
6779
  weight: 2,
6780
6780
  tools: {
@@ -6999,7 +6999,7 @@ exports.issues = {
6999
6999
  }
7000
7000
  },
7001
7001
  tabIndexPositive: {
7002
- why: 'No-mouse user cannot predict the navigation sequence',
7002
+ why: 'Keyboard-only user cannot predict the navigation sequence',
7003
7003
  wcag: '2.4.3',
7004
7004
  weight: 1,
7005
7005
  tools: {
@@ -7027,7 +7027,7 @@ exports.issues = {
7027
7027
  }
7028
7028
  },
7029
7029
  tabIndexEmpty: {
7030
- why: 'No-mouse user cannot follow the intended navigation sequence',
7030
+ why: 'Keyboard-only user cannot follow the intended navigation sequence',
7031
7031
  wcag: '1.3.1',
7032
7032
  weight: 4,
7033
7033
  tools: {
@@ -7041,7 +7041,7 @@ exports.issues = {
7041
7041
  }
7042
7042
  },
7043
7043
  tabIndexInt: {
7044
- why: 'No-mouse user cannot follow the intended navigation sequence',
7044
+ why: 'Keyboard-only user cannot follow the intended navigation sequence',
7045
7045
  wcag: '1.3.1',
7046
7046
  weight: 4,
7047
7047
  tools: {
@@ -7055,7 +7055,7 @@ exports.issues = {
7055
7055
  }
7056
7056
  },
7057
7057
  tabIndexExtra: {
7058
- why: 'Revision risks interfering with navigation by a no-mouse user',
7058
+ why: 'Revision risks interfering with navigation by a keyboard-only user',
7059
7059
  wcag: '1.3.1',
7060
7060
  weight: 1,
7061
7061
  tools: {
@@ -7271,7 +7271,7 @@ exports.issues = {
7271
7271
  }
7272
7272
  },
7273
7273
  keyboardScroll: {
7274
- why: 'No-mouse user cannot scroll an item',
7274
+ why: 'Keyboard-only user cannot scroll an item',
7275
7275
  wcag: '2.1.1',
7276
7276
  weight: 4,
7277
7277
  tools: {
@@ -7334,7 +7334,7 @@ exports.issues = {
7334
7334
  }
7335
7335
  },
7336
7336
  skipRepeatedContent: {
7337
- why: 'No-mouse user cannot easily reach the specific content of the document',
7337
+ why: 'Keyboard-only user cannot easily reach the specific content of the document',
7338
7338
  wcag: '2.4.1',
7339
7339
  weight: 3,
7340
7340
  tools: {
@@ -7384,7 +7384,7 @@ exports.issues = {
7384
7384
  }
7385
7385
  },
7386
7386
  repeatedContentRisk: {
7387
- why: 'No-mouse user may be unable easily to reach the specific content of the document',
7387
+ why: 'Keyboard-only user may be unable easily to reach the specific content of the document',
7388
7388
  wcag: '2.4.1',
7389
7389
  weight: 1,
7390
7390
  tools: {