testilo 10.3.1 → 11.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.
Files changed (71) hide show
  1. package/README.md +188 -190
  2. package/batch.js +60 -0
  3. package/call.js +9 -4
  4. package/compare.js +2 -2
  5. package/merge.js +0 -6
  6. package/package.json +1 -1
  7. package/procs/compare/cp20sqrt/index.js +7 -10
  8. package/procs/compare/{cp15b → tcp24}/index.html +5 -5
  9. package/procs/compare/{cp12a → tcp24}/index.js +13 -20
  10. package/procs/score/{tic24.js → tic26.js} +205 -199
  11. package/procs/score/tsp24.js +8 -2
  12. package/procs/score/tsp26.js +120 -0
  13. package/score.js +2 -8
  14. package/procs/compare/cp0/index.html +0 -46
  15. package/procs/compare/cp0/index.js +0 -70
  16. package/procs/compare/cp1/index.html +0 -46
  17. package/procs/compare/cp1/index.js +0 -71
  18. package/procs/compare/cp12a/index.html +0 -47
  19. package/procs/compare/cp12b/index.html +0 -47
  20. package/procs/compare/cp12b/index.js +0 -71
  21. package/procs/compare/cp14a/index.html +0 -47
  22. package/procs/compare/cp14a/index.js +0 -71
  23. package/procs/compare/cp15a/index.html +0 -47
  24. package/procs/compare/cp15a/index.js +0 -71
  25. package/procs/compare/cp15b/index.js +0 -74
  26. package/procs/compare/cp16a/index.html +0 -47
  27. package/procs/compare/cp16a/index.js +0 -74
  28. package/procs/compare/cp16b/index.html +0 -47
  29. package/procs/compare/cp16b/index.js +0 -74
  30. package/procs/digest/dp10a/index.html +0 -137
  31. package/procs/digest/dp10a/index.js +0 -402
  32. package/procs/digest/dp10b/index.html +0 -74
  33. package/procs/digest/dp10b/index.js +0 -130
  34. package/procs/digest/dp10c/index.html +0 -55
  35. package/procs/digest/dp10c/index.js +0 -129
  36. package/procs/digest/dp11a/index.html +0 -76
  37. package/procs/digest/dp11a/index.js +0 -127
  38. package/procs/digest/dp12a/index.html +0 -78
  39. package/procs/digest/dp12a/index.js +0 -126
  40. package/procs/digest/dp12b/index.html +0 -78
  41. package/procs/digest/dp12b/index.js +0 -126
  42. package/procs/digest/dp13a/index.html +0 -78
  43. package/procs/digest/dp13a/index.js +0 -126
  44. package/procs/digest/dp14a/index.html +0 -79
  45. package/procs/digest/dp14a/index.js +0 -126
  46. package/procs/digest/dp15a/index.html +0 -80
  47. package/procs/digest/dp15a/index.js +0 -126
  48. package/procs/digest/dp16a/index.html +0 -80
  49. package/procs/digest/dp16a/index.js +0 -126
  50. package/procs/digest/dp16b/index.html +0 -80
  51. package/procs/digest/dp16b/index.js +0 -126
  52. package/procs/digest/dp18a/index.html +0 -80
  53. package/procs/digest/dp18a/index.js +0 -129
  54. package/procs/digest/dp20c/index.html +0 -54
  55. package/procs/digest/dp20c/index.js +0 -117
  56. package/procs/digest/dp20d/index.html +0 -54
  57. package/procs/digest/dp20d/index.js +0 -121
  58. package/procs/digest/tdp09a/index.html +0 -126
  59. package/procs/digest/tdp09a/index.js +0 -381
  60. package/procs/digest/tdp22/index.html +0 -54
  61. package/procs/digest/tdp22/index.js +0 -120
  62. package/procs/score/tic21.js +0 -6868
  63. package/procs/score/tic22.js +0 -6911
  64. package/procs/score/tic23.js +0 -6924
  65. package/procs/score/tsp21.js +0 -720
  66. package/procs/score/tsp22.js +0 -720
  67. package/procs/score/tsp23.js +0 -720
  68. package/specs/batches/orgs.json +0 -43
  69. package/specs/scripts/ts21.json +0 -213
  70. package/specs/scripts/ts23.json +0 -219
  71. package/specs/scripts/ts24.json +0 -225
@@ -10,7 +10,8 @@
10
10
  weight: weight of the issue in score computation.
11
11
  tools: tools (including Testaro) providing tests in the issue.
12
12
 
13
- Each property of tools specifies a test of that tool. Its key is the identifier of the test. Its value is an object with these properties:
13
+ Each property of tools specifies a test of that tool. Its key is the identifier of the test.
14
+ Its value is an object with these properties:
14
15
  - variable: whether the identifier is a regular expression.
15
16
  - quality: the estimated quality of the test (normally 1).
16
17
  - what: description of the test.
@@ -96,7 +97,7 @@ exports.issues = {
96
97
  }
97
98
  },
98
99
  htmlcs: {
99
- 'e:AAA.4_1_1.F77': {
100
+ 'AAA.4_1_1.F77': {
100
101
  variable: false,
101
102
  quality: 1,
102
103
  what: 'Duplicate id attribute value'
@@ -245,52 +246,52 @@ exports.issues = {
245
246
  }
246
247
  },
247
248
  htmlcs: {
248
- 'e:AAA.4_1_2.H91.InputText.Name': {
249
+ 'AAA.4_1_2.H91.InputText.Name': {
249
250
  variable: false,
250
251
  quality: 1,
251
252
  what: 'Text input has no accessible name'
252
253
  },
253
- 'e:AAA.4_1_2.H91.InputEmail.Name': {
254
+ 'AAA.4_1_2.H91.InputEmail.Name': {
254
255
  variable: false,
255
256
  quality: 1,
256
257
  what: 'Email input has no accessible name'
257
258
  },
258
- 'e:AAA.4_1_2.H91.InputPhone.Name': {
259
+ 'AAA.4_1_2.H91.InputPhone.Name': {
259
260
  variable: false,
260
261
  quality: 1,
261
262
  what: 'Telephone input has no accessible name'
262
263
  },
263
- 'e:AAA.4_1_2.H91.InputFile.Name': {
264
+ 'AAA.4_1_2.H91.InputFile.Name': {
264
265
  variable: false,
265
266
  quality: 1,
266
267
  what: 'File input element has no accessible name'
267
268
  },
268
- 'e:AAA.4_1_2.H91.InputTel.Name': {
269
+ 'AAA.4_1_2.H91.InputTel.Name': {
269
270
  variable: false,
270
271
  quality: 1,
271
272
  what: 'Telephone input has no accessible name'
272
273
  },
273
- 'e:AAA.4_1_2.H91.InputNumber.Name': {
274
+ 'AAA.4_1_2.H91.InputNumber.Name': {
274
275
  variable: false,
275
276
  quality: 1,
276
277
  what: 'Number input has no accessible name'
277
278
  },
278
- 'e:AAA.4_1_2.H91.InputPassword.Name': {
279
+ 'AAA.4_1_2.H91.InputPassword.Name': {
279
280
  variable: false,
280
281
  quality: 1,
281
282
  what: 'Password input has no accessible name'
282
283
  },
283
- 'e:AAA.4_1_2.H91.InputSearch.Name': {
284
+ 'AAA.4_1_2.H91.InputSearch.Name': {
284
285
  variable: false,
285
286
  quality: 1,
286
287
  what: 'Search input has no accessible name'
287
288
  },
288
- 'e:AAA.4_1_2.H91.InputCheckbox.Name': {
289
+ 'AAA.4_1_2.H91.InputCheckbox.Name': {
289
290
  variable: false,
290
291
  quality: 1,
291
292
  what: 'Checkbox input has no accessible name'
292
293
  },
293
- 'e:AAA.4_1_2.H91.InputRadio.Name': {
294
+ 'AAA.4_1_2.H91.InputRadio.Name': {
294
295
  variable: false,
295
296
  quality: 1,
296
297
  what: 'Radio input has no accessible name'
@@ -330,7 +331,7 @@ exports.issues = {
330
331
  }
331
332
  },
332
333
  htmlcs: {
333
- 'e:H36': {
334
+ 'H36': {
334
335
  variable: false,
335
336
  quality: 1,
336
337
  what: 'Image submit button has no alt attribute'
@@ -356,7 +357,7 @@ exports.issues = {
356
357
  }
357
358
  },
358
359
  wave: {
359
- 'e:alt_input_missing': {
360
+ 'alt_input_missing': {
360
361
  variable: false,
361
362
  quality: 1,
362
363
  what: 'Image button has no alternative text'
@@ -413,7 +414,7 @@ exports.issues = {
413
414
  }
414
415
  },
415
416
  htmlcs: {
416
- 'e:AAA.1_1_1.H37': {
417
+ 'AAA.1_1_1.H37': {
417
418
  variable: false,
418
419
  quality: 1,
419
420
  what: 'img element has no alt attribute'
@@ -446,12 +447,12 @@ exports.issues = {
446
447
  }
447
448
  },
448
449
  wave: {
449
- 'e:alt_missing': {
450
+ 'alt_missing': {
450
451
  variable: false,
451
452
  quality: 1,
452
453
  what: 'Text alternative is missing'
453
454
  },
454
- 'e:alt_spacer_missing': {
455
+ 'alt_spacer_missing': {
455
456
  variable: false,
456
457
  quality: 1,
457
458
  what: 'Spacer image has no text alternative'
@@ -570,7 +571,7 @@ exports.issues = {
570
571
  weight: 1,
571
572
  tools: {
572
573
  wave: {
573
- 'a:alt_duplicate': {
574
+ 'alt_duplicate': {
574
575
  variable: false,
575
576
  quality: 1,
576
577
  what: 'Two images near each other have the same text alternative'
@@ -590,7 +591,7 @@ exports.issues = {
590
591
  }
591
592
  },
592
593
  wave: {
593
- 'a:alt_long': {
594
+ 'alt_long': {
594
595
  variable: false,
595
596
  quality: 1,
596
597
  what: 'Long text alternative'
@@ -648,7 +649,7 @@ exports.issues = {
648
649
  }
649
650
  },
650
651
  wave: {
651
- 'a:alt_suspicious': {
652
+ 'alt_suspicious': {
652
653
  variable: false,
653
654
  quality: 1,
654
655
  what: 'Image text alternative is suspicious'
@@ -661,7 +662,7 @@ exports.issues = {
661
662
  weight: 1,
662
663
  tools: {
663
664
  htmlcs: {
664
- 'w:AAA.1_1_1.H67.2': {
665
+ 'AAA.1_1_1.H67.2': {
665
666
  variable: false,
666
667
  quality: 1,
667
668
  what: 'Image marked as decorative may be informative'
@@ -727,7 +728,7 @@ exports.issues = {
727
728
  }
728
729
  },
729
730
  htmlcs: {
730
- 'e:AAA.3_1_1.H57.2': {
731
+ 'AAA.3_1_1.H57.2': {
731
732
  variable: false,
732
733
  quality: 1,
733
734
  what: 'html element has no lang or xml:lang attribute'
@@ -760,7 +761,7 @@ exports.issues = {
760
761
  }
761
762
  },
762
763
  wave: {
763
- 'e:language_missing': {
764
+ 'language_missing': {
764
765
  variable: false,
765
766
  quality: 1,
766
767
  what: 'Language missing or invalid'
@@ -794,7 +795,7 @@ exports.issues = {
794
795
  }
795
796
  },
796
797
  htmlcs: {
797
- 'e:AAA.3_1_1.H57.3.Lang': {
798
+ 'AAA.3_1_1.H57.3.Lang': {
798
799
  variable: false,
799
800
  quality: 1,
800
801
  what: 'Language specified in the lang attribute of the document does not appear to be well-formed'
@@ -826,7 +827,7 @@ exports.issues = {
826
827
  weight: 4,
827
828
  tools: {
828
829
  htmlcs: {
829
- 'e:AAA.3_1_2.H58.1.Lang': {
830
+ 'AAA.3_1_2.H58.1.Lang': {
830
831
  variable: false,
831
832
  quality: 1,
832
833
  what: 'Language specified in the lang attribute of the element does not appear to be well-formed'
@@ -867,7 +868,7 @@ exports.issues = {
867
868
  }
868
869
  },
869
870
  htmlcs: {
870
- 'e:WCAG2AAA.Principle3.Guideline3_1.3_1_2.H58': {
871
+ 'WCAG2AAA.Principle3.Guideline3_1.3_1_2.H58': {
871
872
  variable: false,
872
873
  quality: 1,
873
874
  what: 'Change in language is not marked'
@@ -934,7 +935,7 @@ exports.issues = {
934
935
  }
935
936
  },
936
937
  htmlcs: {
937
- 'e:ARIA6+H53': {
938
+ 'ARIA6+H53': {
938
939
  variable: false,
939
940
  quality: 1,
940
941
  what: 'object element contains no text alternative'
@@ -955,7 +956,7 @@ exports.issues = {
955
956
  }
956
957
  },
957
958
  wave: {
958
- 'a:plugin': {
959
+ 'plugin': {
959
960
  variable: false,
960
961
  quality: 1,
961
962
  what: 'An unidentified plugin is present'
@@ -994,7 +995,7 @@ exports.issues = {
994
995
  weight: 4,
995
996
  tools: {
996
997
  wave: {
997
- 'e:alt_map_missing': {
998
+ 'alt_map_missing': {
998
999
  variable: false,
999
1000
  quality: 1,
1000
1001
  what: 'Image that has hot spots has no alt attribute'
@@ -1014,7 +1015,7 @@ exports.issues = {
1014
1015
  }
1015
1016
  },
1016
1017
  htmlcs: {
1017
- 'e:AAA.1_1_1.H24': {
1018
+ 'AAA.1_1_1.H24': {
1018
1019
  variable: false,
1019
1020
  quality: 1,
1020
1021
  what: 'Area element in an image map has no alt attribute'
@@ -1040,7 +1041,7 @@ exports.issues = {
1040
1041
  }
1041
1042
  },
1042
1043
  wave: {
1043
- 'e:alt_area_missing': {
1044
+ 'alt_area_missing': {
1044
1045
  variable: false,
1045
1046
  quality: 1,
1046
1047
  what: 'Image map area has no alternative text'
@@ -1053,7 +1054,7 @@ exports.issues = {
1053
1054
  weight: 1,
1054
1055
  tools: {
1055
1056
  htmlcs: {
1056
- 'w:AAA.2_1_2.F10': {
1057
+ 'AAA.2_1_2.F10': {
1057
1058
  variable: false,
1058
1059
  quality: 1,
1059
1060
  what: 'Applet or plugin may fail to enable moving the focus away with the keyboard'
@@ -1079,27 +1080,27 @@ exports.issues = {
1079
1080
  weight: 1,
1080
1081
  tools: {
1081
1082
  htmlcs: {
1082
- 'w:AAA.2_1_1.G90': {
1083
+ 'AAA.2_1_1.G90': {
1083
1084
  variable: false,
1084
1085
  quality: 1,
1085
1086
  what: 'Event handler functionality may not be available by keyboard'
1086
1087
  },
1087
- 'w:AAA.2_1_1.SCR20.MouseOut': {
1088
+ 'AAA.2_1_1.SCR20.MouseOut': {
1088
1089
  variable: false,
1089
1090
  quality: 1,
1090
1091
  what: 'Mousing-out functionality may not be available by keyboard'
1091
1092
  },
1092
- 'w:AAA.2_1_1.SCR20.MouseOver': {
1093
+ 'AAA.2_1_1.SCR20.MouseOver': {
1093
1094
  variable: false,
1094
1095
  quality: 1,
1095
1096
  what: 'Mousing-over functionality may not be available by keyboard'
1096
1097
  },
1097
- 'w:AAA.2_1_1.SCR20.MouseDown': {
1098
+ 'AAA.2_1_1.SCR20.MouseDown': {
1098
1099
  variable: false,
1099
1100
  quality: 1,
1100
1101
  what: 'Mousing-down functionality may not be available by keyboard'
1101
1102
  },
1102
- 'w:AAA.2_1_1.SCR20.MouseUp': {
1103
+ 'AAA.2_1_1.SCR20.MouseUp': {
1103
1104
  variable: false,
1104
1105
  quality: 1,
1105
1106
  what: 'Mousing-up functionality may not be available by keyboard'
@@ -1113,7 +1114,7 @@ exports.issues = {
1113
1114
  }
1114
1115
  },
1115
1116
  wave: {
1116
- 'a:event_handler': {
1117
+ 'event_handler': {
1117
1118
  variable: false,
1118
1119
  quality: 1,
1119
1120
  what: 'Device-dependent event handler'
@@ -1126,14 +1127,14 @@ exports.issues = {
1126
1127
  weight: 4,
1127
1128
  tools: {
1128
1129
  htmlcs: {
1129
- 'e:AAA.2_4_1.G1,G123,G124.NoSuchID': {
1130
+ 'AAA.2_4_1.G1,G123,G124.NoSuchID': {
1130
1131
  variable: false,
1131
1132
  quality: 1,
1132
1133
  what: 'Internal link references a nonexistent destination'
1133
1134
  }
1134
1135
  },
1135
1136
  wave: {
1136
- 'a:link_internal_broken': {
1137
+ 'link_internal_broken': {
1137
1138
  variable: false,
1138
1139
  quality: 1,
1139
1140
  what: 'Broken same-page link'
@@ -1146,7 +1147,7 @@ exports.issues = {
1146
1147
  weight: 3,
1147
1148
  tools: {
1148
1149
  htmlcs: {
1149
- 'w:AAA.1_3_1.H44.NotFormControl': {
1150
+ 'AAA.1_3_1.H44.NotFormControl': {
1150
1151
  variable: false,
1151
1152
  quality: 1,
1152
1153
  what: 'referent of the for attribute of the label is not a form control, so may be wrong'
@@ -1276,17 +1277,17 @@ exports.issues = {
1276
1277
  }
1277
1278
  },
1278
1279
  htmlcs: {
1279
- 'w:AAA.1_3_1.H44.NonExistentFragment': {
1280
+ 'AAA.1_3_1.H44.NonExistentFragment': {
1280
1281
  variable: false,
1281
1282
  quality: 1,
1282
1283
  what: 'Label for attribute references a nonexistent element'
1283
1284
  },
1284
- 'w:AAA.1_3_1.ARIA16,ARIA9': {
1285
+ 'AAA.1_3_1.ARIA16,ARIA9': {
1285
1286
  variable: false,
1286
1287
  quality: 1,
1287
1288
  what: 'aria-labelledby attribute references a nonexistent element'
1288
1289
  },
1289
- 'w:AAA.4_1_2.ARIA16,ARIA9': {
1290
+ 'AAA.4_1_2.ARIA16,ARIA9': {
1290
1291
  variable: false,
1291
1292
  quality: 1,
1292
1293
  what: 'aria-labelledby attribute references a nonexistent element'
@@ -1317,7 +1318,7 @@ exports.issues = {
1317
1318
  }
1318
1319
  },
1319
1320
  wave: {
1320
- 'a:label_orphaned': {
1321
+ 'label_orphaned': {
1321
1322
  variable: false,
1322
1323
  quality: 1,
1323
1324
  what: 'Orphaned form label'
@@ -1377,27 +1378,27 @@ exports.issues = {
1377
1378
  }
1378
1379
  },
1379
1380
  htmlcs: {
1380
- 'e:AAA.1_1_1.H30.2': {
1381
+ 'AAA.1_1_1.H30.2': {
1381
1382
  variable: false,
1382
1383
  quality: 1,
1383
1384
  what: 'img element is the only link content but has no text alternative'
1384
1385
  },
1385
- 'w:AAA.4_1_2.H91.A.Empty': {
1386
+ 'AAA.4_1_2.H91.A.Empty': {
1386
1387
  variable: false,
1387
1388
  quality: 1,
1388
1389
  what: 'a element has an id attribute but no href attribute or text'
1389
1390
  },
1390
- 'e:AAA.4_1_2.H91.A.EmptyNoId': {
1391
+ 'AAA.4_1_2.H91.A.EmptyNoId': {
1391
1392
  variable: false,
1392
1393
  quality: 1,
1393
1394
  what: 'Link has no name or id attribute or value'
1394
1395
  },
1395
- 'w:AAA.4_1_2.H91.A.EmptyWithName': {
1396
+ 'AAA.4_1_2.H91.A.EmptyWithName': {
1396
1397
  variable: false,
1397
1398
  quality: 1,
1398
1399
  what: 'Link has a name attribute but no href attribute or text'
1399
1400
  },
1400
- 'e:AAA.4_1_2.H91.A.NoContent': {
1401
+ 'AAA.4_1_2.H91.A.NoContent': {
1401
1402
  variable: false,
1402
1403
  quality: 1,
1403
1404
  what: 'Link has an href attribute but no text'
@@ -1435,12 +1436,12 @@ exports.issues = {
1435
1436
  }
1436
1437
  },
1437
1438
  wave: {
1438
- 'e:link_empty': {
1439
+ 'link_empty': {
1439
1440
  variable: false,
1440
1441
  quality: 1,
1441
1442
  what: 'Link contains no text'
1442
1443
  },
1443
- 'e:alt_link_missing': {
1444
+ 'alt_link_missing': {
1444
1445
  variable: false,
1445
1446
  quality: 1,
1446
1447
  what: 'Linked image has no text alternative'
@@ -1453,7 +1454,7 @@ exports.issues = {
1453
1454
  weight: 2,
1454
1455
  tools: {
1455
1456
  htmlcs: {
1456
- 'w:AAA.4_1_2.H91.A.Placeholder': {
1457
+ 'AAA.4_1_2.H91.A.Placeholder': {
1457
1458
  variable: false,
1458
1459
  quality: 1,
1459
1460
  what: 'Link has text but no href, id, or name attribute'
@@ -1466,7 +1467,7 @@ exports.issues = {
1466
1467
  weight: 3,
1467
1468
  tools: {
1468
1469
  htmlcs: {
1469
- 'e:AAA.2_4_8.H59.2b': {
1470
+ 'AAA.2_4_8.H59.2b': {
1470
1471
  variable: false,
1471
1472
  quality: 1,
1472
1473
  what: 'link element is missing a non-empty href for the linked resource'
@@ -1519,7 +1520,7 @@ exports.issues = {
1519
1520
  weight: 1,
1520
1521
  tools: {
1521
1522
  wave: {
1522
- 'a:link_pdf': {
1523
+ 'link_pdf': {
1523
1524
  variable: false,
1524
1525
  quality: 1,
1525
1526
  what: 'Link to PDF document'
@@ -1532,7 +1533,7 @@ exports.issues = {
1532
1533
  weight: 2,
1533
1534
  tools: {
1534
1535
  htmlcs: {
1535
- 'w:AAA.4_1_2.H91.A.NoHref': {
1536
+ 'AAA.4_1_2.H91.A.NoHref': {
1536
1537
  variable: false,
1537
1538
  quality: 1,
1538
1539
  what: 'Link is misused as a link destination'
@@ -1566,7 +1567,7 @@ exports.issues = {
1566
1567
  }
1567
1568
  },
1568
1569
  htmlcs: {
1569
- 'e:AAA.4_1_2.H91.Textarea.Name': {
1570
+ 'AAA.4_1_2.H91.Textarea.Name': {
1570
1571
  variable: false,
1571
1572
  quality: 1,
1572
1573
  what: 'textarea element has no accessible name'
@@ -1579,7 +1580,7 @@ exports.issues = {
1579
1580
  weight: 2,
1580
1581
  tools: {
1581
1582
  htmlcs: {
1582
- 'e:AAA.1_1_1.H2.EG3': {
1583
+ 'AAA.1_1_1.H2.EG3': {
1583
1584
  variable: false,
1584
1585
  quality: 1,
1585
1586
  what: 'alt value of the link img element duplicates the text of a link beside it'
@@ -1675,7 +1676,7 @@ exports.issues = {
1675
1676
  }
1676
1677
  },
1677
1678
  wave: {
1678
- 'a:link_redundant': {
1679
+ 'link_redundant': {
1679
1680
  variable: false,
1680
1681
  quality: 1,
1681
1682
  what: 'Adjacent links go to the same URL'
@@ -1727,12 +1728,12 @@ exports.issues = {
1727
1728
  weight: 1,
1728
1729
  tools: {
1729
1730
  htmlcs: {
1730
- 'w:WCAG2AAA.Principle3.Guideline3_2.3_2_5.H83.3': {
1731
+ 'WCAG2AAA.Principle3.Guideline3_2.3_2_5.H83.3': {
1731
1732
  variable: false,
1732
1733
  quality: 1,
1733
1734
  what: 'Link may open in a new window without notice'
1734
1735
  },
1735
- 'w:AAA.3_2_5.H83.3': {
1736
+ 'AAA.3_2_5.H83.3': {
1736
1737
  variable: false,
1737
1738
  quality: 1,
1738
1739
  what: 'Link text may fail to indicate that the link will open in a new window'
@@ -1745,7 +1746,7 @@ exports.issues = {
1745
1746
  weight: 1,
1746
1747
  tools: {
1747
1748
  wave: {
1748
- 'a:javascript_jumpmenu': {
1749
+ 'javascript_jumpmenu': {
1749
1750
  variable: false,
1750
1751
  quality: 1,
1751
1752
  what: 'selection change may navigate to another page without notice'
@@ -1812,32 +1813,32 @@ exports.issues = {
1812
1813
  }
1813
1814
  },
1814
1815
  htmlcs: {
1815
- 'e:AAA.4_1_2.H91.A.Name': {
1816
+ 'AAA.4_1_2.H91.A.Name': {
1816
1817
  variable: false,
1817
1818
  quality: 1,
1818
1819
  what: 'Link with button role has no accessible name'
1819
1820
  },
1820
- 'e:AAA.4_1_2.H91.Div.Name': {
1821
+ 'AAA.4_1_2.H91.Div.Name': {
1821
1822
  variable: false,
1822
1823
  quality: 1,
1823
1824
  what: 'div element with button role has no accessible name'
1824
1825
  },
1825
- 'e:AAA.4_1_2.H91.Button.Name': {
1826
+ 'AAA.4_1_2.H91.Button.Name': {
1826
1827
  variable: false,
1827
1828
  quality: 1,
1828
1829
  what: 'Button element has no accessible name'
1829
1830
  },
1830
- 'e:AAA.4_1_2.H91.Img.Name': {
1831
+ 'AAA.4_1_2.H91.Img.Name': {
1831
1832
  variable: false,
1832
1833
  quality: 1,
1833
1834
  what: 'img element with button role has no accessible name'
1834
1835
  },
1835
- 'e:AAA.4_1_2.H91.InputButton.Name': {
1836
+ 'AAA.4_1_2.H91.InputButton.Name': {
1836
1837
  variable: false,
1837
1838
  quality: 1,
1838
1839
  what: 'Button input element has no accessible name'
1839
1840
  },
1840
- 'e:AAA.4_1_2.H91.Span.Name': {
1841
+ 'AAA.4_1_2.H91.Span.Name': {
1841
1842
  variable: false,
1842
1843
  quality: 1,
1843
1844
  what: 'Element with button role has no accessible name'
@@ -1858,7 +1859,7 @@ exports.issues = {
1858
1859
  }
1859
1860
  },
1860
1861
  wave: {
1861
- 'e:button_empty': {
1862
+ 'button_empty': {
1862
1863
  variable: false,
1863
1864
  quality: 1,
1864
1865
  what: 'Button is empty or has no value text'
@@ -1959,7 +1960,7 @@ exports.issues = {
1959
1960
  weight: 4,
1960
1961
  tools: {
1961
1962
  htmlcs: {
1962
- 'e:AAA.1_3_1.F92,ARIA4': {
1963
+ 'AAA.1_3_1.F92,ARIA4': {
1963
1964
  variable: false,
1964
1965
  quality: 1,
1965
1966
  what: 'Element has presentation role but semantic child'
@@ -2131,7 +2132,7 @@ exports.issues = {
2131
2132
  }
2132
2133
  },
2133
2134
  wave: {
2134
- 'a:text_small': {
2135
+ 'text_small': {
2135
2136
  variable: false,
2136
2137
  quality: 1,
2137
2138
  what: 'Text is very small'
@@ -2406,7 +2407,7 @@ exports.issues = {
2406
2407
  }
2407
2408
  },
2408
2409
  htmlcs: {
2409
- 'e:AAA.2_4_1.H64.1': {
2410
+ 'AAA.2_4_1.H64.1': {
2410
2411
  variable: false,
2411
2412
  quality: 1,
2412
2413
  what: 'iframe element has no non-empty title attribute'
@@ -2827,13 +2828,6 @@ exports.issues = {
2827
2828
  quality: 1,
2828
2829
  what: 'Element with a role attribute does not have the required states and properties'
2829
2830
  }
2830
- },
2831
- wave: {
2832
- 'e:aria_reference_broken': {
2833
- variable: false,
2834
- quality: 1,
2835
- what: 'Broken ARIA reference'
2836
- }
2837
2831
  }
2838
2832
  }
2839
2833
  },
@@ -3104,7 +3098,7 @@ exports.issues = {
3104
3098
  }
3105
3099
  },
3106
3100
  wave: {
3107
- 'e:aria_reference_broken': {
3101
+ 'aria_reference_broken': {
3108
3102
  variable: false,
3109
3103
  quality: 1,
3110
3104
  what: 'Broken ARIA reference'
@@ -3112,7 +3106,7 @@ exports.issues = {
3112
3106
  }
3113
3107
  }
3114
3108
  },
3115
- autocompleteInvalid: {
3109
+ autocompleteBad: {
3116
3110
  wcag: '1.3.5',
3117
3111
  weight: 3,
3118
3112
  tools: {
@@ -3131,7 +3125,7 @@ exports.issues = {
3131
3125
  }
3132
3126
  },
3133
3127
  htmlcs: {
3134
- 'e:AAA.1_3_5.H98': {
3128
+ 'AAA.1_3_5.H98': {
3135
3129
  variable: false,
3136
3130
  quality: 1,
3137
3131
  what: 'autocomplete attribute and the input type are mismatched'
@@ -3160,14 +3154,14 @@ exports.issues = {
3160
3154
  }
3161
3155
  }
3162
3156
  },
3163
- autocompleteBad: {
3157
+ autocompleteNone: {
3164
3158
  wcag: '1.3.5',
3165
- weight: 4,
3159
+ weight: 1,
3166
3160
  tools: {
3167
3161
  testaro: {
3168
3162
  autocomplete: {
3169
3163
  variable: false,
3170
- quality: 0.7,
3164
+ quality: 1,
3171
3165
  what: 'Name or email input is missing its required autocomplete attribute'
3172
3166
  }
3173
3167
  }
@@ -3178,7 +3172,7 @@ exports.issues = {
3178
3172
  weight: 1,
3179
3173
  tools: {
3180
3174
  htmlcs: {
3181
- 'w:AAA.1_3_5.H98': {
3175
+ 'AAA.1_3_5.H98': {
3182
3176
  variable: false,
3183
3177
  quality: 1,
3184
3178
  what: 'Element contains a potentially faulty value in its autocomplete attribute'
@@ -3205,17 +3199,17 @@ exports.issues = {
3205
3199
  }
3206
3200
  },
3207
3201
  htmlcs: {
3208
- 'e:AAA.1_4_3.G145.Fail': {
3202
+ 'AAA.1_4_3.G145.Fail': {
3209
3203
  variable: false,
3210
3204
  quality: 1,
3211
3205
  what: 'Contrast between the text and its background is less than 3:1.'
3212
3206
  },
3213
- 'e:AAA.1_4_3.G18.Fail': {
3207
+ 'AAA.1_4_3.G18.Fail': {
3214
3208
  variable: false,
3215
3209
  quality: 1,
3216
3210
  what: 'Contrast between the text and its background is less than 4.5:1'
3217
3211
  },
3218
- 'e:AAA.1_4_6.G18.Fail': {
3212
+ 'AAA.1_4_6.G18.Fail': {
3219
3213
  variable: false,
3220
3214
  quality: 1,
3221
3215
  what: 'Contrast between the text and its background is less than 4.5:1'
@@ -3236,7 +3230,7 @@ exports.issues = {
3236
3230
  }
3237
3231
  },
3238
3232
  wave: {
3239
- 'c:contrast': {
3233
+ 'contrast': {
3240
3234
  variable: false,
3241
3235
  quality: 1,
3242
3236
  what: 'Very low contrast'
@@ -3276,12 +3270,12 @@ exports.issues = {
3276
3270
  }
3277
3271
  },
3278
3272
  htmlcs: {
3279
- 'e:WCAG2AAA.Principle1.Guideline1_4.1_4_3.G18': {
3273
+ 'WCAG2AAA.Principle1.Guideline1_4.1_4_3.G18': {
3280
3274
  variable: false,
3281
3275
  quality: 1,
3282
3276
  what: 'Insufficient contrast'
3283
3277
  },
3284
- 'e:AAA.1_4_6.G17.Fail': {
3278
+ 'AAA.1_4_6.G17.Fail': {
3285
3279
  variable: false,
3286
3280
  quality: 1,
3287
3281
  what: 'Text has insufficient contrast'
@@ -3308,57 +3302,57 @@ exports.issues = {
3308
3302
  weight: 1,
3309
3303
  tools: {
3310
3304
  htmlcs: {
3311
- 'w:AAA.1_4_3_F24.F24.BGColour': {
3305
+ 'AAA.1_4_3_F24.F24.BGColour': {
3312
3306
  variable: false,
3313
3307
  quality: 1,
3314
3308
  what: 'Inline background color may lack a complementary foreground color'
3315
3309
  },
3316
- 'w:AAA.1_4_3_F24.F24.FGColour': {
3310
+ 'AAA.1_4_3_F24.F24.FGColour': {
3317
3311
  variable: false,
3318
3312
  quality: 1,
3319
3313
  what: 'Inline foreground color may lack a complementary background color'
3320
3314
  },
3321
- 'w:AAA.1_4_3.G18.Abs': {
3315
+ 'AAA.1_4_3.G18.Abs': {
3322
3316
  variable: false,
3323
3317
  quality: 1,
3324
3318
  what: 'Contrast between the absolutely positioned text and its background may be inadequate'
3325
3319
  },
3326
- 'w:AAA.1_4_6.G18.Abs': {
3320
+ 'AAA.1_4_6.G18.Abs': {
3327
3321
  variable: false,
3328
3322
  quality: 1,
3329
3323
  what: 'Contrast between the absolutely positioned text and its background may be less than 4.5:1'
3330
3324
  },
3331
- 'w:AAA.1_4_3.G18.Alpha': {
3325
+ 'AAA.1_4_3.G18.Alpha': {
3332
3326
  variable: false,
3333
3327
  quality: 1,
3334
3328
  what: 'Contrast between the text and its background may be less than 4.5:1, given the transparency'
3335
3329
  },
3336
- 'w:AAA.1_4_3.G145.Abs': {
3330
+ 'AAA.1_4_3.G145.Abs': {
3337
3331
  variable: false,
3338
3332
  quality: 1,
3339
3333
  what: 'Contrast between the absolutely positioned large text and its background may be less than 3:1'
3340
3334
  },
3341
- 'w:AAA.1_4_3.G145.Alpha': {
3335
+ 'AAA.1_4_3.G145.Alpha': {
3342
3336
  variable: false,
3343
3337
  quality: 1,
3344
3338
  what: 'Contrast between the text and its background may be less than 3:1, given the transparency'
3345
3339
  },
3346
- 'w:AAA.1_4_3.G145.BgImage': {
3340
+ 'AAA.1_4_3.G145.BgImage': {
3347
3341
  variable: false,
3348
3342
  quality: 1,
3349
3343
  what: 'Contrast between the text and its background image may be less than 3:1'
3350
3344
  },
3351
- 'w:AAA.1_4_3.G18.BgImage': {
3345
+ 'AAA.1_4_3.G18.BgImage': {
3352
3346
  variable: false,
3353
3347
  quality: 1,
3354
3348
  what: 'Contrast between the text and its background image may be less than 4.5:1'
3355
3349
  },
3356
- 'w:AAA.1_4_6.G17.Abs': {
3350
+ 'AAA.1_4_6.G17.Abs': {
3357
3351
  variable: false,
3358
3352
  quality: 1,
3359
3353
  what: 'Contrast between the absolutely positioned text and its background may be less than 7:1'
3360
3354
  },
3361
- 'w:AAA.1_4_6.G17.BgImage': {
3355
+ 'AAA.1_4_6.G17.BgImage': {
3362
3356
  variable: false,
3363
3357
  quality: 1,
3364
3358
  what: 'Contrast between the text and its background image may be less than 7:1'
@@ -3416,7 +3410,7 @@ exports.issues = {
3416
3410
  }
3417
3411
  },
3418
3412
  htmlcs: {
3419
- 'e:AAA.1_3_1.H42.2': {
3413
+ 'AAA.1_3_1.H42.2': {
3420
3414
  variable: false,
3421
3415
  quality: 1,
3422
3416
  what: 'Heading empty'
@@ -3444,7 +3438,7 @@ exports.issues = {
3444
3438
  }
3445
3439
  },
3446
3440
  wave: {
3447
- 'e:heading_empty': {
3441
+ 'heading_empty': {
3448
3442
  variable: false,
3449
3443
  quality: 1,
3450
3444
  what: 'Empty heading'
@@ -3509,7 +3503,7 @@ exports.issues = {
3509
3503
  }
3510
3504
  },
3511
3505
  wave: {
3512
- 'a:alt_redundant': {
3506
+ 'alt_redundant': {
3513
3507
  variable: false,
3514
3508
  quality: 1,
3515
3509
  what: 'Redundant text alternative'
@@ -3522,7 +3516,7 @@ exports.issues = {
3522
3516
  weight: 1,
3523
3517
  tools: {
3524
3518
  htmlcs: {
3525
- 'e:AAA.1_1_1.H67.1': {
3519
+ 'AAA.1_1_1.H67.1': {
3526
3520
  variable: false,
3527
3521
  quality: 1,
3528
3522
  what: 'img element has an empty alt attribute but has a nonempty title attribute'
@@ -3536,7 +3530,7 @@ exports.issues = {
3536
3530
  }
3537
3531
  },
3538
3532
  wave: {
3539
- 'a:image_title': {
3533
+ 'image_title': {
3540
3534
  variable: false,
3541
3535
  quality: 1,
3542
3536
  what: 'Image has a title attribute value but no alt value'
@@ -3563,7 +3557,7 @@ exports.issues = {
3563
3557
  }
3564
3558
  },
3565
3559
  wave: {
3566
- 'a:title_redundant': {
3560
+ 'title_redundant': {
3567
3561
  variable: false,
3568
3562
  quality: 1,
3569
3563
  what: 'Title attribute text is the same as text or alternative text'
@@ -3583,12 +3577,12 @@ exports.issues = {
3583
3577
  }
3584
3578
  },
3585
3579
  htmlcs: {
3586
- 'w:AAA.1_3_1.H65': {
3580
+ 'AAA.1_3_1.H65': {
3587
3581
  variable: false,
3588
3582
  quality: 0.5,
3589
3583
  what: 'title attribute of the form control is empty or only whitespace'
3590
3584
  },
3591
- 'w:AAA.4_1_2.H65': {
3585
+ 'AAA.4_1_2.H65': {
3592
3586
  variable: false,
3593
3587
  quality: 0.5,
3594
3588
  what: 'title attribute of the form control is empty or only whitespace'
@@ -3649,12 +3643,12 @@ exports.issues = {
3649
3643
  }
3650
3644
  },
3651
3645
  htmlcs: {
3652
- 'e:AAA.2_4_2.H25.1.NoTitleEl': {
3646
+ 'AAA.2_4_2.H25.1.NoTitleEl': {
3653
3647
  variable: false,
3654
3648
  quality: 1,
3655
3649
  what: 'Document head element contains no title element'
3656
3650
  },
3657
- 'e:AAA.2_4_2.H25.1.EmptyTitle': {
3651
+ 'AAA.2_4_2.H25.1.EmptyTitle': {
3658
3652
  variable: false,
3659
3653
  quality: 1,
3660
3654
  what: 'Document head element contains an empty title element'
@@ -3682,7 +3676,7 @@ exports.issues = {
3682
3676
  }
3683
3677
  },
3684
3678
  wave: {
3685
- 'e:title_invalid': {
3679
+ 'title_invalid': {
3686
3680
  variable: false,
3687
3681
  quality: 1,
3688
3682
  what: 'Missing or uninformative page title'
@@ -3690,7 +3684,7 @@ exports.issues = {
3690
3684
  }
3691
3685
  }
3692
3686
  },
3693
- headingStructure: {
3687
+ headingLevelSkip: {
3694
3688
  wcag: '1.3.1',
3695
3689
  weight: 2,
3696
3690
  tools: {
@@ -3708,25 +3702,24 @@ exports.issues = {
3708
3702
  what: 'Heading levels do not increase by only one'
3709
3703
  }
3710
3704
  },
3711
- htmlcs: {
3712
- 'e:AAA.1_3_1_AAA.G141': {
3713
- variable: false,
3714
- quality: 1,
3715
- what: 'Heading level is incorrect'
3716
- }
3717
- },
3718
- nuVal: {
3719
- 'Consider using the h1 element as a top-level heading only (all h1 elements are treated as top-level headings by many screen readers and other tools).': {
3705
+ wave: {
3706
+ 'heading_skipped': {
3720
3707
  variable: false,
3721
3708
  quality: 1,
3722
- what: 'Page contains more than 1 h1 element'
3709
+ what: 'Skipped heading level'
3723
3710
  }
3724
- },
3725
- qualWeb: {
3726
- 'QW-WCAG-T9': {
3711
+ }
3712
+ }
3713
+ },
3714
+ headingStructure: {
3715
+ wcag: '1.3.1',
3716
+ weight: 2,
3717
+ tools: {
3718
+ htmlcs: {
3719
+ 'AAA.1_3_1_AAA.G141': {
3727
3720
  variable: false,
3728
3721
  quality: 1,
3729
- what: 'Page is not organized using headings'
3722
+ what: 'Heading level is incorrect'
3730
3723
  }
3731
3724
  },
3732
3725
  tenon: {
@@ -3735,13 +3728,6 @@ exports.issues = {
3735
3728
  quality: 1,
3736
3729
  what: 'Headings are not structured in a hierarchical manner'
3737
3730
  }
3738
- },
3739
- wave: {
3740
- 'a:heading_skipped': {
3741
- variable: false,
3742
- quality: 1,
3743
- what: 'Skipped heading level'
3744
- }
3745
3731
  }
3746
3732
  }
3747
3733
  },
@@ -3777,7 +3763,7 @@ exports.issues = {
3777
3763
  }
3778
3764
  },
3779
3765
  wave: {
3780
- 'a:heading_missing': {
3766
+ 'heading_missing': {
3781
3767
  variable: false,
3782
3768
  quality: 1,
3783
3769
  what: 'Page has no headings'
@@ -3785,6 +3771,19 @@ exports.issues = {
3785
3771
  }
3786
3772
  }
3787
3773
  },
3774
+ h1Multiple: {
3775
+ wcag: '1.3.1',
3776
+ weight: 2,
3777
+ tools: {
3778
+ nuVal: {
3779
+ 'Consider using the h1 element as a top-level heading only (all h1 elements are treated as top-level headings by many screen readers and other tools).': {
3780
+ variable: false,
3781
+ quality: 1,
3782
+ what: 'Page contains more than 1 h1 element'
3783
+ }
3784
+ }
3785
+ }
3786
+ },
3788
3787
  h1Missing: {
3789
3788
  wcag: '1.3.1',
3790
3789
  weight: 3,
@@ -3804,7 +3803,7 @@ exports.issues = {
3804
3803
  }
3805
3804
  },
3806
3805
  wave: {
3807
- 'a:h1_missing': {
3806
+ 'h1_missing': {
3808
3807
  variable: false,
3809
3808
  quality: 1,
3810
3809
  what: 'Missing first level heading'
@@ -3840,6 +3839,13 @@ exports.issues = {
3840
3839
  quality: 1,
3841
3840
  what: 'section has no heading'
3842
3841
  }
3842
+ },
3843
+ qualWeb: {
3844
+ 'QW-WCAG-T9': {
3845
+ variable: false,
3846
+ quality: 1,
3847
+ what: 'Page is not organized using headings'
3848
+ }
3843
3849
  }
3844
3850
  }
3845
3851
  },
@@ -3869,7 +3875,7 @@ exports.issues = {
3869
3875
  }
3870
3876
  },
3871
3877
  wave: {
3872
- 'a:text_justified': {
3878
+ 'text_justified': {
3873
3879
  variable: false,
3874
3880
  quality: 1,
3875
3881
  what: 'Text is justified'
@@ -3895,42 +3901,42 @@ exports.issues = {
3895
3901
  weight: 2,
3896
3902
  tools: {
3897
3903
  htmlcs: {
3898
- 'w:AAA.1_3_1.H49.AlignAttr': {
3904
+ 'AAA.1_3_1.H49.AlignAttr': {
3899
3905
  variable: false,
3900
3906
  quality: 1,
3901
3907
  what: 'Special text is aligned nonsemantically'
3902
3908
  },
3903
- 'w:AAA.1_3_1.H49.B': {
3909
+ 'AAA.1_3_1.H49.B': {
3904
3910
  variable: false,
3905
3911
  quality: 1,
3906
3912
  what: 'Special text is bolded nonsemantically'
3907
3913
  },
3908
- 'w:AAA.1_3_1.H49.I': {
3914
+ 'AAA.1_3_1.H49.I': {
3909
3915
  variable: false,
3910
3916
  quality: 1,
3911
3917
  what: 'Special text is italicized nonsemantically'
3912
3918
  },
3913
- 'w:AAA.1_3_1.H49.Big': {
3919
+ 'AAA.1_3_1.H49.Big': {
3914
3920
  variable: false,
3915
3921
  quality: 1,
3916
3922
  what: 'Special text is enlarged nonsemantically'
3917
3923
  },
3918
- 'w:AAA.1_3_1.H49.Small': {
3924
+ 'AAA.1_3_1.H49.Small': {
3919
3925
  variable: false,
3920
3926
  quality: 1,
3921
3927
  what: 'Special text is made small nonsemantically'
3922
3928
  },
3923
- 'w:AAA.1_3_1.H49.U': {
3929
+ 'AAA.1_3_1.H49.U': {
3924
3930
  variable: false,
3925
3931
  quality: 1,
3926
3932
  what: 'Special text is underlined nonsemantically'
3927
3933
  },
3928
- 'w:AAA.1_3_1.H49.Center': {
3934
+ 'AAA.1_3_1.H49.Center': {
3929
3935
  variable: false,
3930
3936
  quality: 1,
3931
3937
  what: 'Special text is centered nonsemantically'
3932
3938
  },
3933
- 'w:AAA.1_3_1.H49.Font': {
3939
+ 'AAA.1_3_1.H49.Font': {
3934
3940
  variable: false,
3935
3941
  quality: 1,
3936
3942
  what: 'Special text is designated nonsemantically with a (deprecated) font element'
@@ -3989,14 +3995,14 @@ exports.issues = {
3989
3995
  }
3990
3996
  },
3991
3997
  htmlcs: {
3992
- 'w:AAA.1_3_1.H42': {
3998
+ 'AAA.1_3_1.H42': {
3993
3999
  variable: false,
3994
4000
  quality: 1,
3995
4001
  what: 'Heading coding is not used but the element may be intended as a heading'
3996
4002
  }
3997
4003
  },
3998
4004
  wave: {
3999
- 'a:heading_possible': {
4005
+ 'heading_possible': {
4000
4006
  variable: false,
4001
4007
  quality: 1,
4002
4008
  what: 'Possible heading'
@@ -4016,7 +4022,7 @@ exports.issues = {
4016
4022
  }
4017
4023
  },
4018
4024
  wave: {
4019
- 'a:underline': {
4025
+ 'underline': {
4020
4026
  variable: false,
4021
4027
  quality: 1,
4022
4028
  what: 'CSS underline on text that is not a link'
@@ -4110,7 +4116,7 @@ exports.issues = {
4110
4116
  weight: 1,
4111
4117
  tools: {
4112
4118
  wave: {
4113
- 'a:list_possible': {
4119
+ 'list_possible': {
4114
4120
  variable: false,
4115
4121
  quality: 1,
4116
4122
  what: 'List may fail to be coded as such'
@@ -4123,7 +4129,7 @@ exports.issues = {
4123
4129
  weight: 1,
4124
4130
  tools: {
4125
4131
  htmlcs: {
4126
- 'w:AAA.1_3_1.H48.2': {
4132
+ 'AAA.1_3_1.H48.2': {
4127
4133
  variable: false,
4128
4134
  quality: 1,
4129
4135
  what: 'Ordered list may fail to be coded as such'
@@ -4136,7 +4142,7 @@ exports.issues = {
4136
4142
  weight: 2,
4137
4143
  tools: {
4138
4144
  htmlcs: {
4139
- 'w:AAA.1_3_1.H48': {
4145
+ 'AAA.1_3_1.H48': {
4140
4146
  variable: false,
4141
4147
  quality: 1,
4142
4148
  what: 'Navigation links are not coded as a list'
@@ -4170,19 +4176,19 @@ exports.issues = {
4170
4176
  }
4171
4177
  },
4172
4178
  htmlcs: {
4173
- 'e:AAA.4_1_2.H91.Select.Name': {
4179
+ 'AAA.4_1_2.H91.Select.Name': {
4174
4180
  variable: false,
4175
4181
  quality: 1,
4176
4182
  what: 'Select element has no accessible name'
4177
4183
  },
4178
- 'w:AAA.4_1_2.H91.Select.Value': {
4184
+ 'AAA.4_1_2.H91.Select.Value': {
4179
4185
  variable: false,
4180
4186
  quality: 1,
4181
4187
  what: 'Select element value has no accessible name'
4182
4188
  }
4183
4189
  },
4184
4190
  wave: {
4185
- 'a:select_missing_label': {
4191
+ 'select_missing_label': {
4186
4192
  variable: false,
4187
4193
  quality: 1,
4188
4194
  what: 'Select element has no label'
@@ -4208,7 +4214,7 @@ exports.issues = {
4208
4214
  weight: 1,
4209
4215
  tools: {
4210
4216
  htmlcs: {
4211
- 'w:AAA.1_3_1.H85.2': {
4217
+ 'AAA.1_3_1.H85.2': {
4212
4218
  variable: false,
4213
4219
  quality: 1,
4214
4220
  what: 'Selection list may contain groups of related options that are not grouped with optgroup'
@@ -4242,7 +4248,7 @@ exports.issues = {
4242
4248
  }
4243
4249
  },
4244
4250
  wave: {
4245
- 'a:accesskey': {
4251
+ 'accesskey': {
4246
4252
  variable: false,
4247
4253
  quality: 1,
4248
4254
  what: 'Accesskey'
@@ -4269,7 +4275,7 @@ exports.issues = {
4269
4275
  }
4270
4276
  },
4271
4277
  wave: {
4272
- 'a:fieldset_missing': {
4278
+ 'fieldset_missing': {
4273
4279
  variable: false,
4274
4280
  quality: 1,
4275
4281
  what: 'fieldset element is missing'
@@ -4282,7 +4288,7 @@ exports.issues = {
4282
4288
  weight: 1,
4283
4289
  tools: {
4284
4290
  htmlcs: {
4285
- 'w:AAA.1_3_1.H71.SameName': {
4291
+ 'AAA.1_3_1.H71.SameName': {
4286
4292
  variable: false,
4287
4293
  quality: 1,
4288
4294
  what: 'Radio buttons or check boxes may require a group description via a fieldset element'
@@ -4315,7 +4321,7 @@ exports.issues = {
4315
4321
  }
4316
4322
  },
4317
4323
  htmlcs: {
4318
- 'e:AAA.1_3_1.H71.NoLegend': {
4324
+ 'AAA.1_3_1.H71.NoLegend': {
4319
4325
  variable: false,
4320
4326
  quality: 1,
4321
4327
  what: 'fieldset has no legend element'
@@ -4336,7 +4342,7 @@ exports.issues = {
4336
4342
  }
4337
4343
  },
4338
4344
  wave: {
4339
- 'a:legend_missing': {
4345
+ 'legend_missing': {
4340
4346
  variable: false,
4341
4347
  quality: 1,
4342
4348
  what: 'fieldset has no legend element'
@@ -4356,7 +4362,7 @@ exports.issues = {
4356
4362
  }
4357
4363
  },
4358
4364
  htmlcs: {
4359
- 'e:AAA.4_1_2.H91.Fieldset.Name': {
4365
+ 'AAA.4_1_2.H91.Fieldset.Name': {
4360
4366
  variable: false,
4361
4367
  quality: 1,
4362
4368
  what: 'Fieldset has no accessible name'
@@ -4395,7 +4401,7 @@ exports.issues = {
4395
4401
  }
4396
4402
  },
4397
4403
  wave: {
4398
- 'a:table_layout': {
4404
+ 'table_layout': {
4399
4405
  variable: false,
4400
4406
  quality: 1,
4401
4407
  what: 'table element is misused to arrange content'
@@ -4459,7 +4465,7 @@ exports.issues = {
4459
4465
  }
4460
4466
  },
4461
4467
  htmlcs: {
4462
- 'w:AAA.1_3_1.H39.3.NoCaption': {
4468
+ 'AAA.1_3_1.H39.3.NoCaption': {
4463
4469
  variable: false,
4464
4470
  quality: 1,
4465
4471
  what: 'Table has no caption element'
@@ -4479,7 +4485,7 @@ exports.issues = {
4479
4485
  weight: 4,
4480
4486
  tools: {
4481
4487
  htmlcs: {
4482
- 'e:AAA.1_3_1.H43.HeadersRequired': {
4488
+ 'AAA.1_3_1.H43.HeadersRequired': {
4483
4489
  variable: false,
4484
4490
  quality: 1,
4485
4491
  what: 'Complex table requires headers attributes of cells'
@@ -4512,7 +4518,7 @@ exports.issues = {
4512
4518
  weight: 2,
4513
4519
  tools: {
4514
4520
  htmlcs: {
4515
- 'w:AAA.1_3_1.H43.ScopeAmbiguous': {
4521
+ 'AAA.1_3_1.H43.ScopeAmbiguous': {
4516
4522
  variable: false,
4517
4523
  quality: 1,
4518
4524
  what: 'Complex table requires headers attributes of cells instead of header scopes'
@@ -4609,7 +4615,7 @@ exports.issues = {
4609
4615
  weight: 1,
4610
4616
  tools: {
4611
4617
  htmlcs: {
4612
- 'e:AAA.1_3_1.H63.1': {
4618
+ 'AAA.1_3_1.H63.1': {
4613
4619
  variable: false,
4614
4620
  quality: 1,
4615
4621
  what: 'Not all th elements in the table have a scope attribute, so an inferred scope may be incorrect'
@@ -4622,7 +4628,7 @@ exports.issues = {
4622
4628
  weight: 2,
4623
4629
  tools: {
4624
4630
  wave: {
4625
- 'e:th_empty': {
4631
+ 'th_empty': {
4626
4632
  variable: false,
4627
4633
  quality: 1,
4628
4634
  what: 'th (table header) contains no text'
@@ -4655,7 +4661,7 @@ exports.issues = {
4655
4661
  }
4656
4662
  },
4657
4663
  htmlcs: {
4658
- 'e:AAA.1_3_1.F68': {
4664
+ 'AAA.1_3_1.F68': {
4659
4665
  variable: false,
4660
4666
  quality: 1,
4661
4667
  what: 'Form control has no label'
@@ -4676,7 +4682,7 @@ exports.issues = {
4676
4682
  }
4677
4683
  },
4678
4684
  wave: {
4679
- 'e:label_missing': {
4685
+ 'label_missing': {
4680
4686
  variable: false,
4681
4687
  quality: 1,
4682
4688
  what: 'form element has no label'
@@ -4702,7 +4708,7 @@ exports.issues = {
4702
4708
  weight: 3,
4703
4709
  tools: {
4704
4710
  wave: {
4705
- 'a:label_title': {
4711
+ 'label_title': {
4706
4712
  variable: false,
4707
4713
  quality: 1,
4708
4714
  what: 'Form control has a title but no label'
@@ -4729,7 +4735,7 @@ exports.issues = {
4729
4735
  }
4730
4736
  },
4731
4737
  htmlcs: {
4732
- 'w:AAA.2_5_3.F96': {
4738
+ 'AAA.2_5_3.F96': {
4733
4739
  variable: false,
4734
4740
  quality: 1,
4735
4741
  what: 'Visible label is not in the accessible name'
@@ -4987,7 +4993,7 @@ exports.issues = {
4987
4993
  weight: 2,
4988
4994
  tools: {
4989
4995
  wave: {
4990
- 'a:region_missing': {
4996
+ 'region_missing': {
4991
4997
  variable: false,
4992
4998
  quality: 1,
4993
4999
  what: 'Page has no regions or ARIA landmarks'
@@ -5516,12 +5522,12 @@ exports.issues = {
5516
5522
  weight: 2,
5517
5523
  tools: {
5518
5524
  htmlcs: {
5519
- 'w:AAA.1_3_1.F68.Hidden': {
5525
+ 'AAA.1_3_1.F68.Hidden': {
5520
5526
  variable: false,
5521
5527
  quality: 1,
5522
5528
  what: 'Hidden form field is needlessly labeled.'
5523
5529
  },
5524
- 'w:AAA.1_3_1.F68.HiddenAttr': {
5530
+ 'AAA.1_3_1.F68.HiddenAttr': {
5525
5531
  variable: false,
5526
5532
  quality: 1,
5527
5533
  what: 'Form field with a hidden attribute is needlessly labeled.'
@@ -5620,7 +5626,7 @@ exports.issues = {
5620
5626
  }
5621
5627
  },
5622
5628
  wave: {
5623
- 'e:label_multiple': {
5629
+ 'label_multiple': {
5624
5630
  variable: false,
5625
5631
  quality: 1,
5626
5632
  what: 'Form control has more than one label associated with it'
@@ -5633,19 +5639,19 @@ exports.issues = {
5633
5639
  weight: 3,
5634
5640
  tools: {
5635
5641
  htmlcs: {
5636
- 'w:AAA.1_3_1.ARIA6': {
5642
+ 'AAA.1_3_1.ARIA6': {
5637
5643
  variable: false,
5638
5644
  quality: 1,
5639
5645
  what: 'Value of the aria-label attribute of the form control is empty or only whitespace'
5640
5646
  },
5641
- 'w:AAA.4_1_2.ARIA6': {
5647
+ 'AAA.4_1_2.ARIA6': {
5642
5648
  variable: false,
5643
5649
  quality: 1,
5644
5650
  what: 'Value of the aria-label attribute of the form control is empty or only whitespace'
5645
5651
  }
5646
5652
  },
5647
5653
  wave: {
5648
- 'e:label_empty': {
5654
+ 'label_empty': {
5649
5655
  variable: false,
5650
5656
  quality: 1,
5651
5657
  what: 'Empty form label'
@@ -5658,7 +5664,7 @@ exports.issues = {
5658
5664
  weight: 1,
5659
5665
  tools: {
5660
5666
  wave: {
5661
- 'a:link_suspicious': {
5667
+ 'link_suspicious': {
5662
5668
  variable: false,
5663
5669
  quality: 1,
5664
5670
  what: 'Suspicious link text'
@@ -5678,12 +5684,12 @@ exports.issues = {
5678
5684
  }
5679
5685
  },
5680
5686
  wave: {
5681
- 'a:link_excel': {
5687
+ 'link_excel': {
5682
5688
  variable: false,
5683
5689
  quality: 1,
5684
5690
  what: 'Link to Microsoft Excel workbook'
5685
5691
  },
5686
- 'a:link_word': {
5692
+ 'link_word': {
5687
5693
  variable: false,
5688
5694
  quality: 1,
5689
5695
  what: 'Link to Microsoft Word document'
@@ -5749,7 +5755,7 @@ exports.issues = {
5749
5755
  weight: 4,
5750
5756
  tools: {
5751
5757
  wave: {
5752
- 'e:aria_menu_broken': {
5758
+ 'aria_menu_broken': {
5753
5759
  variable: false,
5754
5760
  quality: 1,
5755
5761
  what: 'ARIA menu does not contain required menu items'
@@ -5970,7 +5976,7 @@ exports.issues = {
5970
5976
  }
5971
5977
  },
5972
5978
  wave: {
5973
- 'a:tabindex': {
5979
+ 'tabindex': {
5974
5980
  variable: false,
5975
5981
  quality: 1,
5976
5982
  what: 'tabIndex value positive'
@@ -6150,17 +6156,17 @@ exports.issues = {
6150
6156
  weight: 1,
6151
6157
  tools: {
6152
6158
  wave: {
6153
- 'a:html5_video_audio': {
6159
+ 'html5_video_audio': {
6154
6160
  variable: false,
6155
6161
  quality: 1,
6156
6162
  what: 'video or audio element may have no or incorrect captions, transcript, or audio description'
6157
6163
  },
6158
- 'a:audio_video': {
6164
+ 'audio_video': {
6159
6165
  variable: false,
6160
6166
  quality: 1,
6161
6167
  what: 'audio or video file or link may have no or incorrect captions, transcript, or audio description'
6162
6168
  },
6163
- 'a:youtube_video': {
6169
+ 'youtube_video': {
6164
6170
  variable: false,
6165
6171
  quality: 1,
6166
6172
  what: 'YouTube video may have no or incorrect captions'
@@ -6239,7 +6245,7 @@ exports.issues = {
6239
6245
  weight: 1,
6240
6246
  tools: {
6241
6247
  htmlcs: {
6242
- 'w:AAA.1_4_10.C32,C31,C33,C38,SCR34,G206': {
6248
+ 'AAA.1_4_10.C32,C31,C33,C38,SCR34,G206': {
6243
6249
  variable: false,
6244
6250
  quality: 1,
6245
6251
  what: 'Fixed-position element may force bidirectional scrolling'
@@ -6290,7 +6296,7 @@ exports.issues = {
6290
6296
  }
6291
6297
  },
6292
6298
  wave: {
6293
- 'e:link_skip_broken': {
6299
+ 'link_skip_broken': {
6294
6300
  variable: false,
6295
6301
  quality: 1,
6296
6302
  what: 'Skip-navigation link has no target or is not keyboard accessible'
@@ -6343,7 +6349,7 @@ exports.issues = {
6343
6349
  weight: 3,
6344
6350
  tools: {
6345
6351
  htmlcs: {
6346
- 'e:AAA.3_2_2.H32.2': {
6352
+ 'AAA.3_2_2.H32.2': {
6347
6353
  variable: false,
6348
6354
  quality: 1,
6349
6355
  what: 'Form has no submit button'
@@ -6389,7 +6395,7 @@ exports.issues = {
6389
6395
  weight: 1,
6390
6396
  tools: {
6391
6397
  wave: {
6392
- 'a:noscript': {
6398
+ 'noscript': {
6393
6399
  variable: false,
6394
6400
  quality: 1,
6395
6401
  what: 'noscript element may fail to contain an accessible equivalent or alternative'
@@ -6422,22 +6428,22 @@ exports.issues = {
6422
6428
  }
6423
6429
  },
6424
6430
  htmlcs: {
6425
- 'e:AAA.1_3_1.H49.AlignAttr': {
6431
+ 'AAA.1_3_1.H49.AlignAttr': {
6426
6432
  variable: false,
6427
6433
  quality: 1,
6428
6434
  what: 'align attribute is obsolete'
6429
6435
  },
6430
- 'e:AAA.1_3_1.H49.Center': {
6436
+ 'AAA.1_3_1.H49.Center': {
6431
6437
  variable: false,
6432
6438
  quality: 1,
6433
6439
  what: 'center element is obsolete'
6434
6440
  },
6435
- 'w:AAA.1_3_1.H63.2': {
6441
+ 'AAA.1_3_1.H63.2': {
6436
6442
  variable: false,
6437
6443
  quality: 1,
6438
6444
  what: 'scope attribute on a td element, instead of a th element, is obsolete'
6439
6445
  },
6440
- 'e:AAA.1_3_1.H49.Font': {
6446
+ 'AAA.1_3_1.H49.Font': {
6441
6447
  variable: false,
6442
6448
  quality: 1,
6443
6449
  what: 'font element is obsolete'
@@ -6520,12 +6526,12 @@ exports.issues = {
6520
6526
  }
6521
6527
  },
6522
6528
  wave: {
6523
- 'a:longdesc': {
6529
+ 'longdesc': {
6524
6530
  variable: false,
6525
6531
  quality: 1,
6526
6532
  what: 'longdesc attribute is obsolete'
6527
6533
  },
6528
- 'a:flash': {
6534
+ 'flash': {
6529
6535
  variable: false,
6530
6536
  quality: 1,
6531
6537
  what: 'Flash content is present'
@@ -6898,7 +6904,7 @@ exports.issues = {
6898
6904
  }
6899
6905
  },
6900
6906
  wave: {
6901
- 'e:longdesc_invalid': {
6907
+ 'longdesc_invalid': {
6902
6908
  variable: false,
6903
6909
  quality: 1,
6904
6910
  what: 'longdesc attribute has a value that is not a URL (and is obsolete)'