testilo 17.0.8 → 17.0.11
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/tic36.js +495 -45
package/package.json
CHANGED
package/procs/score/tic36.js
CHANGED
|
@@ -24,6 +24,18 @@ exports.issues = {
|
|
|
24
24
|
wcag: '',
|
|
25
25
|
weight: 0,
|
|
26
26
|
tools: {
|
|
27
|
+
aslint: {
|
|
28
|
+
'meaningful-content-sequence': {
|
|
29
|
+
variable: false,
|
|
30
|
+
quality: 0,
|
|
31
|
+
what: 'The content sequence may fail to be meaningful'
|
|
32
|
+
},
|
|
33
|
+
'flickering': {
|
|
34
|
+
variable: false,
|
|
35
|
+
quality: 0,
|
|
36
|
+
what: 'Excessive flashing may exist'
|
|
37
|
+
}
|
|
38
|
+
},
|
|
27
39
|
nuVal: {
|
|
28
40
|
'Element mediaelementwrapper not allowed as child of element div in this context. (Suppressing further errors from this subtree.)': {
|
|
29
41
|
variable: false,
|
|
@@ -34,12 +46,12 @@ exports.issues = {
|
|
|
34
46
|
qualWeb: {
|
|
35
47
|
'QW-ACT-R52': {
|
|
36
48
|
variable: false,
|
|
37
|
-
quality:
|
|
49
|
+
quality: 0,
|
|
38
50
|
what: 'video element visual-only content has no description track (description tracks and this ACT rule have been deprecated)'
|
|
39
51
|
},
|
|
40
52
|
'QW-ACT-R57': {
|
|
41
53
|
variable: false,
|
|
42
|
-
quality:
|
|
54
|
+
quality: 0,
|
|
43
55
|
what: 'video element visual content has no description track (description tracks and this ACT rule have been deprecated)'
|
|
44
56
|
},
|
|
45
57
|
'QW-WCAG-T4': {
|
|
@@ -49,12 +61,12 @@ exports.issues = {
|
|
|
49
61
|
},
|
|
50
62
|
'QW-WCAG-T15': {
|
|
51
63
|
variable: false,
|
|
52
|
-
quality:
|
|
64
|
+
quality: 0,
|
|
53
65
|
what: 'link element may be used for navigation but not in the head'
|
|
54
66
|
},
|
|
55
67
|
'QW-WCAG-T20': {
|
|
56
68
|
variable: false,
|
|
57
|
-
quality:
|
|
69
|
+
quality: 0,
|
|
58
70
|
what: 'Link text is not supplemented with a title attribute'
|
|
59
71
|
}
|
|
60
72
|
}
|
|
@@ -545,6 +557,11 @@ exports.issues = {
|
|
|
545
557
|
variable: false,
|
|
546
558
|
quality: 1,
|
|
547
559
|
what: 'Image may be better described by a revised text alternative and an aria-label attribute'
|
|
560
|
+
},
|
|
561
|
+
'alt-color-convey-information': {
|
|
562
|
+
variable: false,
|
|
563
|
+
quality: 1,
|
|
564
|
+
what: 'Text alternative may fail to give information provided by colors'
|
|
548
565
|
}
|
|
549
566
|
}
|
|
550
567
|
}
|
|
@@ -1032,6 +1049,20 @@ exports.issues = {
|
|
|
1032
1049
|
}
|
|
1033
1050
|
}
|
|
1034
1051
|
},
|
|
1052
|
+
objectAudioRisk: {
|
|
1053
|
+
why: 'User may get inadequate help consuming audio content',
|
|
1054
|
+
wcag: '1.1.1',
|
|
1055
|
+
weight: 1,
|
|
1056
|
+
tools: {
|
|
1057
|
+
aslint: {
|
|
1058
|
+
'audio-alternative': {
|
|
1059
|
+
variable: false,
|
|
1060
|
+
quality: 1,
|
|
1061
|
+
what: 'Element is inferior to an audio element if it plays audio'
|
|
1062
|
+
}
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1065
|
+
},
|
|
1035
1066
|
appletNoText: {
|
|
1036
1067
|
why: 'User cannot get help on how to use a custom item',
|
|
1037
1068
|
wcag: '1.1.1',
|
|
@@ -1126,6 +1157,20 @@ exports.issues = {
|
|
|
1126
1157
|
}
|
|
1127
1158
|
}
|
|
1128
1159
|
},
|
|
1160
|
+
customKeyboardRisk: {
|
|
1161
|
+
why: 'Custom item may prevent a no-mouse user from operating it',
|
|
1162
|
+
wcag: '2.1.1',
|
|
1163
|
+
weight: 1,
|
|
1164
|
+
tools: {
|
|
1165
|
+
htmlcs: {
|
|
1166
|
+
'link-button-space-key': {
|
|
1167
|
+
variable: false,
|
|
1168
|
+
quality: 1,
|
|
1169
|
+
what: 'Element has a button role but may fail to be keyboard-operable'
|
|
1170
|
+
}
|
|
1171
|
+
}
|
|
1172
|
+
}
|
|
1173
|
+
},
|
|
1129
1174
|
objectBlurKeyboardRisk: {
|
|
1130
1175
|
why: 'Custom item may trap a no-mouse user',
|
|
1131
1176
|
wcag: '2.1.1',
|
|
@@ -1193,6 +1238,13 @@ exports.issues = {
|
|
|
1193
1238
|
wcag: '1.3.1',
|
|
1194
1239
|
weight: 4,
|
|
1195
1240
|
tools: {
|
|
1241
|
+
aslint: {
|
|
1242
|
+
'broken-same-page-link': {
|
|
1243
|
+
variable: false,
|
|
1244
|
+
quality: 1,
|
|
1245
|
+
what: 'Same-page destination of the link does not exist'
|
|
1246
|
+
}
|
|
1247
|
+
},
|
|
1196
1248
|
htmlcs: {
|
|
1197
1249
|
'AAA.2_4_1.G1,G123,G124.NoSuchID': {
|
|
1198
1250
|
variable: false,
|
|
@@ -1214,6 +1266,13 @@ exports.issues = {
|
|
|
1214
1266
|
wcag: '1.3.1',
|
|
1215
1267
|
weight: 3,
|
|
1216
1268
|
tools: {
|
|
1269
|
+
aslint: {
|
|
1270
|
+
'label-inappropriate-associationN': {
|
|
1271
|
+
variable: false,
|
|
1272
|
+
quality: 1,
|
|
1273
|
+
what: 'Element referenced by the for attribute is not a form control'
|
|
1274
|
+
}
|
|
1275
|
+
},
|
|
1217
1276
|
htmlcs: {
|
|
1218
1277
|
'AAA.1_3_1.H44.NotFormControl': {
|
|
1219
1278
|
variable: false,
|
|
@@ -1296,6 +1355,13 @@ exports.issues = {
|
|
|
1296
1355
|
wcag: '1.3.1',
|
|
1297
1356
|
weight: 4,
|
|
1298
1357
|
tools: {
|
|
1358
|
+
aslint: {
|
|
1359
|
+
'aria-describedby-association': {
|
|
1360
|
+
variable: false,
|
|
1361
|
+
quality: 1,
|
|
1362
|
+
what: 'aria-describedby attribute references a missing or empty element'
|
|
1363
|
+
}
|
|
1364
|
+
},
|
|
1299
1365
|
nuVal: {
|
|
1300
1366
|
'The aria-describedby attribute must point to an element in the same document.': {
|
|
1301
1367
|
variable: false,
|
|
@@ -1317,6 +1383,13 @@ exports.issues = {
|
|
|
1317
1383
|
wcag: '3.3.2',
|
|
1318
1384
|
weight: 1,
|
|
1319
1385
|
tools: {
|
|
1386
|
+
aslint: {
|
|
1387
|
+
'incorrect-label-placement': {
|
|
1388
|
+
variable: false,
|
|
1389
|
+
quality: 1,
|
|
1390
|
+
what: 'label element precedes the labeled radio button or checkbox'
|
|
1391
|
+
}
|
|
1392
|
+
},
|
|
1320
1393
|
ibm: {
|
|
1321
1394
|
WCAG20_Input_LabelBefore: {
|
|
1322
1395
|
variable: false,
|
|
@@ -1353,6 +1426,13 @@ exports.issues = {
|
|
|
1353
1426
|
wcag: '1.3.1',
|
|
1354
1427
|
weight: 4,
|
|
1355
1428
|
tools: {
|
|
1429
|
+
aslint: {
|
|
1430
|
+
'label-inappropriate-associationM': {
|
|
1431
|
+
variable: false,
|
|
1432
|
+
quality: 1,
|
|
1433
|
+
what: 'Element referenced by the for attribute is missing'
|
|
1434
|
+
}
|
|
1435
|
+
},
|
|
1356
1436
|
htmlcs: {
|
|
1357
1437
|
'AAA.1_3_1.H44.NonExistentFragment': {
|
|
1358
1438
|
variable: false,
|
|
@@ -2047,7 +2127,7 @@ exports.issues = {
|
|
|
2047
2127
|
}
|
|
2048
2128
|
},
|
|
2049
2129
|
aslint: {
|
|
2050
|
-
'accessible-
|
|
2130
|
+
'accessible-svg': {
|
|
2051
2131
|
variable: false,
|
|
2052
2132
|
quality: 1,
|
|
2053
2133
|
what: 'Element has no title, description, text, attribute label, or role description'
|
|
@@ -2113,7 +2193,14 @@ exports.issues = {
|
|
|
2113
2193
|
r47: {
|
|
2114
2194
|
variable: false,
|
|
2115
2195
|
quality: 1,
|
|
2116
|
-
what: '
|
|
2196
|
+
what: 'Element restricts zooming'
|
|
2197
|
+
}
|
|
2198
|
+
},
|
|
2199
|
+
aslint: {
|
|
2200
|
+
'zoom-disabled': {
|
|
2201
|
+
variable: false,
|
|
2202
|
+
quality: 1,
|
|
2203
|
+
what: 'Element specifies a minimum or maximum scale or prohibits zooming'
|
|
2117
2204
|
}
|
|
2118
2205
|
},
|
|
2119
2206
|
axe: {
|
|
@@ -3239,6 +3326,23 @@ exports.issues = {
|
|
|
3239
3326
|
what: 'Text outside widget has subminimum contrast'
|
|
3240
3327
|
}
|
|
3241
3328
|
},
|
|
3329
|
+
aslint: {
|
|
3330
|
+
'color-contrast-aa': {
|
|
3331
|
+
variable: false,
|
|
3332
|
+
quality: 1,
|
|
3333
|
+
what: 'Text has contrast less than 4.5:1'
|
|
3334
|
+
},
|
|
3335
|
+
'color-contrast-state-pseudo-classes-abstract3': {
|
|
3336
|
+
variable: false,
|
|
3337
|
+
quality: 1,
|
|
3338
|
+
what: 'Text has contrast less than 3:1'
|
|
3339
|
+
},
|
|
3340
|
+
'color-contrast-state-pseudo-classes-abstract4': {
|
|
3341
|
+
variable: false,
|
|
3342
|
+
quality: 1,
|
|
3343
|
+
what: 'Text has contrast less than 4.5:1'
|
|
3344
|
+
}
|
|
3345
|
+
},
|
|
3242
3346
|
axe: {
|
|
3243
3347
|
'color-contrast': {
|
|
3244
3348
|
variable: false,
|
|
@@ -3305,6 +3409,20 @@ exports.issues = {
|
|
|
3305
3409
|
}
|
|
3306
3410
|
}
|
|
3307
3411
|
},
|
|
3412
|
+
colorNamedRisk: {
|
|
3413
|
+
why: 'Content is impossible to perceive under some conditions',
|
|
3414
|
+
wcag: '1.4.1',
|
|
3415
|
+
weight: 1,
|
|
3416
|
+
tools: {
|
|
3417
|
+
qualWeb: {
|
|
3418
|
+
'text-color-convey-information': {
|
|
3419
|
+
variable: false,
|
|
3420
|
+
quality: 1,
|
|
3421
|
+
what: 'Text naming a color may require the ability to distinguish colors'
|
|
3422
|
+
}
|
|
3423
|
+
}
|
|
3424
|
+
}
|
|
3425
|
+
},
|
|
3308
3426
|
contrastAAA: {
|
|
3309
3427
|
why: 'Text is difficult to read',
|
|
3310
3428
|
wcag: '1.4.6',
|
|
@@ -3317,6 +3435,18 @@ exports.issues = {
|
|
|
3317
3435
|
what: 'Text contrast less than AAA requires'
|
|
3318
3436
|
}
|
|
3319
3437
|
},
|
|
3438
|
+
aslint: {
|
|
3439
|
+
'color-contrast-aaa4': {
|
|
3440
|
+
variable: false,
|
|
3441
|
+
quality: 1,
|
|
3442
|
+
what: 'Text has contrast less than 4.5:1'
|
|
3443
|
+
},
|
|
3444
|
+
'color-contrast-aaa7': {
|
|
3445
|
+
variable: false,
|
|
3446
|
+
quality: 1,
|
|
3447
|
+
what: 'Text has contrast less than 7:1'
|
|
3448
|
+
}
|
|
3449
|
+
},
|
|
3320
3450
|
axe: {
|
|
3321
3451
|
'color-contrast-enhanced': {
|
|
3322
3452
|
variable: false,
|
|
@@ -3350,6 +3480,23 @@ exports.issues = {
|
|
|
3350
3480
|
wcag: '1.4.3',
|
|
3351
3481
|
weight: 1,
|
|
3352
3482
|
tools: {
|
|
3483
|
+
aslint: {
|
|
3484
|
+
'color-contrast-state-pseudo-classes-abstractF': {
|
|
3485
|
+
variable: false,
|
|
3486
|
+
quality: 1,
|
|
3487
|
+
what: 'Fixed position of the element prevents contrast measurement'
|
|
3488
|
+
},
|
|
3489
|
+
'color-contrast-state-pseudo-classes-abstractB': {
|
|
3490
|
+
variable: false,
|
|
3491
|
+
quality: 1,
|
|
3492
|
+
what: 'Transparent background color of the element prevents contrast measurement'
|
|
3493
|
+
},
|
|
3494
|
+
'color-contrast-aaaB': {
|
|
3495
|
+
variable: false,
|
|
3496
|
+
quality: 1,
|
|
3497
|
+
what: 'Transparent background color of the element prevents contrast measurement'
|
|
3498
|
+
}
|
|
3499
|
+
},
|
|
3353
3500
|
htmlcs: {
|
|
3354
3501
|
'AAA.1_4_3_F24.F24.BGColour': {
|
|
3355
3502
|
variable: false,
|
|
@@ -3705,6 +3852,27 @@ exports.issues = {
|
|
|
3705
3852
|
}
|
|
3706
3853
|
}
|
|
3707
3854
|
},
|
|
3855
|
+
pageTitleBad: {
|
|
3856
|
+
why: 'Browser processes the document improperly',
|
|
3857
|
+
wcag: '1.3.1',
|
|
3858
|
+
weight: 4,
|
|
3859
|
+
tools: {
|
|
3860
|
+
aslint: {
|
|
3861
|
+
'page-titleU': {
|
|
3862
|
+
variable: false,
|
|
3863
|
+
quality: 1,
|
|
3864
|
+
what: 'Page title does not identify the contents or purpose of the page'
|
|
3865
|
+
}
|
|
3866
|
+
},
|
|
3867
|
+
wave: {
|
|
3868
|
+
title_invalid: {
|
|
3869
|
+
variable: false,
|
|
3870
|
+
quality: 1,
|
|
3871
|
+
what: 'Missing or uninformative page title'
|
|
3872
|
+
}
|
|
3873
|
+
}
|
|
3874
|
+
}
|
|
3875
|
+
},
|
|
3708
3876
|
pageTitle: {
|
|
3709
3877
|
why: 'User is not informed of the topic of the document',
|
|
3710
3878
|
wcag: '2.4.2',
|
|
@@ -3717,6 +3885,13 @@ exports.issues = {
|
|
|
3717
3885
|
what: 'Document has no valid title element'
|
|
3718
3886
|
}
|
|
3719
3887
|
},
|
|
3888
|
+
aslint: {
|
|
3889
|
+
'page-titleN': {
|
|
3890
|
+
variable: false,
|
|
3891
|
+
quality: 1,
|
|
3892
|
+
what: 'Page title is missing or empty'
|
|
3893
|
+
}
|
|
3894
|
+
},
|
|
3720
3895
|
axe: {
|
|
3721
3896
|
'document-title': {
|
|
3722
3897
|
variable: false,
|
|
@@ -3756,13 +3931,6 @@ exports.issues = {
|
|
|
3756
3931
|
quality: 1,
|
|
3757
3932
|
what: 'HTML page has no title'
|
|
3758
3933
|
}
|
|
3759
|
-
},
|
|
3760
|
-
wave: {
|
|
3761
|
-
title_invalid: {
|
|
3762
|
-
variable: false,
|
|
3763
|
-
quality: 1,
|
|
3764
|
-
what: 'Missing or uninformative page title'
|
|
3765
|
-
}
|
|
3766
3934
|
}
|
|
3767
3935
|
}
|
|
3768
3936
|
},
|
|
@@ -3820,6 +3988,13 @@ exports.issues = {
|
|
|
3820
3988
|
wcag: '1.3.1',
|
|
3821
3989
|
weight: 2,
|
|
3822
3990
|
tools: {
|
|
3991
|
+
aslint: {
|
|
3992
|
+
'headings-hierarchy': {
|
|
3993
|
+
variable: false,
|
|
3994
|
+
quality: 1,
|
|
3995
|
+
what: 'Heading level is illogical in its context'
|
|
3996
|
+
}
|
|
3997
|
+
},
|
|
3823
3998
|
htmlcs: {
|
|
3824
3999
|
'AAA.1_3_1_AAA.G141': {
|
|
3825
4000
|
variable: false,
|
|
@@ -3850,7 +4025,7 @@ exports.issues = {
|
|
|
3850
4025
|
}
|
|
3851
4026
|
}
|
|
3852
4027
|
},
|
|
3853
|
-
|
|
4028
|
+
headingNone: {
|
|
3854
4029
|
why: 'User cannot survey parts of the document',
|
|
3855
4030
|
wcag: '1.3.1',
|
|
3856
4031
|
weight: 3,
|
|
@@ -3862,6 +4037,13 @@ exports.issues = {
|
|
|
3862
4037
|
what: 'Document has no headings'
|
|
3863
4038
|
}
|
|
3864
4039
|
},
|
|
4040
|
+
aslint: {
|
|
4041
|
+
'no-headings': {
|
|
4042
|
+
variable: false,
|
|
4043
|
+
quality: 1,
|
|
4044
|
+
what: 'Document has no headings'
|
|
4045
|
+
}
|
|
4046
|
+
},
|
|
3865
4047
|
qualWeb: {
|
|
3866
4048
|
'QW-BP1': {
|
|
3867
4049
|
variable: false,
|
|
@@ -4421,6 +4603,13 @@ exports.issues = {
|
|
|
4421
4603
|
wcag: '1.3.1',
|
|
4422
4604
|
weight: 1,
|
|
4423
4605
|
tools: {
|
|
4606
|
+
aslint: {
|
|
4607
|
+
'group-elements-name-attribute': {
|
|
4608
|
+
variable: false,
|
|
4609
|
+
quality: 1,
|
|
4610
|
+
what: 'Element is an input with a name attribute but has no fieldset parent'
|
|
4611
|
+
}
|
|
4612
|
+
},
|
|
4424
4613
|
htmlcs: {
|
|
4425
4614
|
'AAA.1_3_1.H71.SameName': {
|
|
4426
4615
|
variable: false,
|
|
@@ -4449,11 +4638,18 @@ exports.issues = {
|
|
|
4449
4638
|
wcag: '4.1.2',
|
|
4450
4639
|
weight: 2,
|
|
4451
4640
|
tools: {
|
|
4641
|
+
aslint: {
|
|
4642
|
+
'fieldset-no-legend': {
|
|
4643
|
+
variable: false,
|
|
4644
|
+
quality: 1,
|
|
4645
|
+
what: 'First child element of the element is not a legend'
|
|
4646
|
+
}
|
|
4647
|
+
},
|
|
4452
4648
|
htmlcs: {
|
|
4453
4649
|
'AAA.1_3_1.H71.NoLegend': {
|
|
4454
4650
|
variable: false,
|
|
4455
4651
|
quality: 1,
|
|
4456
|
-
what: '
|
|
4652
|
+
what: 'Element has no legend element'
|
|
4457
4653
|
}
|
|
4458
4654
|
},
|
|
4459
4655
|
ibm: {
|
|
@@ -4465,7 +4661,7 @@ exports.issues = {
|
|
|
4465
4661
|
fieldset_legend_valid: {
|
|
4466
4662
|
variable: false,
|
|
4467
4663
|
quality: 1,
|
|
4468
|
-
what: '
|
|
4664
|
+
what: 'Element does not have a legend element'
|
|
4469
4665
|
}
|
|
4470
4666
|
},
|
|
4471
4667
|
qualWeb: {
|
|
@@ -4479,7 +4675,7 @@ exports.issues = {
|
|
|
4479
4675
|
legend_missing: {
|
|
4480
4676
|
variable: false,
|
|
4481
4677
|
quality: 1,
|
|
4482
|
-
what: '
|
|
4678
|
+
what: 'Element has no legend element'
|
|
4483
4679
|
}
|
|
4484
4680
|
}
|
|
4485
4681
|
}
|
|
@@ -4588,6 +4784,18 @@ exports.issues = {
|
|
|
4588
4784
|
wcag: '1.3.1',
|
|
4589
4785
|
weight: 1,
|
|
4590
4786
|
tools: {
|
|
4787
|
+
aslint: {
|
|
4788
|
+
'table-missing-descriptionC': {
|
|
4789
|
+
variable: false,
|
|
4790
|
+
quality: 1,
|
|
4791
|
+
what: 'Element contains no caption element'
|
|
4792
|
+
},
|
|
4793
|
+
'table-missing-descriptionE': {
|
|
4794
|
+
variable: false,
|
|
4795
|
+
quality: 1,
|
|
4796
|
+
what: 'Element contains a caption element, but it is empty'
|
|
4797
|
+
}
|
|
4798
|
+
},
|
|
4591
4799
|
axe: {
|
|
4592
4800
|
'table-fake-caption': {
|
|
4593
4801
|
variable: false,
|
|
@@ -4599,7 +4807,7 @@ exports.issues = {
|
|
|
4599
4807
|
'AAA.1_3_1.H39.3.NoCaption': {
|
|
4600
4808
|
variable: false,
|
|
4601
4809
|
quality: 1,
|
|
4602
|
-
what: '
|
|
4810
|
+
what: 'Element contains no caption element'
|
|
4603
4811
|
}
|
|
4604
4812
|
},
|
|
4605
4813
|
qualWeb: {
|
|
@@ -4625,6 +4833,72 @@ exports.issues = {
|
|
|
4625
4833
|
}
|
|
4626
4834
|
}
|
|
4627
4835
|
},
|
|
4836
|
+
tableCapSum: {
|
|
4837
|
+
why: 'Helper informs a user repetitively about the topic of a table',
|
|
4838
|
+
wcag: '1.3.1',
|
|
4839
|
+
weight: 2,
|
|
4840
|
+
tools: {
|
|
4841
|
+
aslint: {
|
|
4842
|
+
'table-caption-summary-identical': {
|
|
4843
|
+
variable: false,
|
|
4844
|
+
quality: 1,
|
|
4845
|
+
what: 'Element has a summary attribute identical to its caption element'
|
|
4846
|
+
}
|
|
4847
|
+
}
|
|
4848
|
+
}
|
|
4849
|
+
},
|
|
4850
|
+
tableSum: {
|
|
4851
|
+
why: 'User cannot get help summarizing a table',
|
|
4852
|
+
wcag: '1.3.1',
|
|
4853
|
+
weight: 4,
|
|
4854
|
+
tools: {
|
|
4855
|
+
aslint: {
|
|
4856
|
+
'table-missing-descriptionS': {
|
|
4857
|
+
variable: false,
|
|
4858
|
+
quality: 1,
|
|
4859
|
+
what: 'Element has a summary attribute, but it is empty'
|
|
4860
|
+
}
|
|
4861
|
+
}
|
|
4862
|
+
}
|
|
4863
|
+
},
|
|
4864
|
+
tablelabelID: {
|
|
4865
|
+
why: 'User cannot get help on the topic of a table',
|
|
4866
|
+
wcag: '1.3.1',
|
|
4867
|
+
weight: 4,
|
|
4868
|
+
tools: {
|
|
4869
|
+
aslint: {
|
|
4870
|
+
'table-missing-descriptionLM': {
|
|
4871
|
+
variable: false,
|
|
4872
|
+
quality: 1,
|
|
4873
|
+
what: 'Element has a broken aria-labelledby ID'
|
|
4874
|
+
},
|
|
4875
|
+
'table-missing-descriptionLE': {
|
|
4876
|
+
variable: false,
|
|
4877
|
+
quality: 1,
|
|
4878
|
+
what: 'Element has an aria-labelledby attribute, but it is empty'
|
|
4879
|
+
}
|
|
4880
|
+
}
|
|
4881
|
+
}
|
|
4882
|
+
},
|
|
4883
|
+
tableDescriptionID: {
|
|
4884
|
+
why: 'User cannot get help on the topic of a table',
|
|
4885
|
+
wcag: '1.3.1',
|
|
4886
|
+
weight: 4,
|
|
4887
|
+
tools: {
|
|
4888
|
+
aslint: {
|
|
4889
|
+
'table-missing-descriptionDM': {
|
|
4890
|
+
variable: false,
|
|
4891
|
+
quality: 1,
|
|
4892
|
+
what: 'Element has a broken aria-describedby ID'
|
|
4893
|
+
},
|
|
4894
|
+
'table-missing-descriptionDE': {
|
|
4895
|
+
variable: false,
|
|
4896
|
+
quality: 1,
|
|
4897
|
+
what: 'Element has an aria-describedby attribute, but it is empty'
|
|
4898
|
+
}
|
|
4899
|
+
}
|
|
4900
|
+
}
|
|
4901
|
+
},
|
|
4628
4902
|
cellHeadersNotInferrable: {
|
|
4629
4903
|
why: 'User cannot get help on relationships in a table',
|
|
4630
4904
|
wcag: '1.3.1',
|
|
@@ -4696,6 +4970,13 @@ exports.issues = {
|
|
|
4696
4970
|
wcag: '1.3.1',
|
|
4697
4971
|
weight: 3,
|
|
4698
4972
|
tools: {
|
|
4973
|
+
aslint: {
|
|
4974
|
+
'table-row-and-column-headersRC': {
|
|
4975
|
+
variable: false,
|
|
4976
|
+
quality: 1,
|
|
4977
|
+
what: 'None of the cells in the table is a header'
|
|
4978
|
+
}
|
|
4979
|
+
},
|
|
4699
4980
|
ibm: {
|
|
4700
4981
|
RPT_Table_DataHeadingsAria: {
|
|
4701
4982
|
variable: false,
|
|
@@ -4777,7 +5058,35 @@ exports.issues = {
|
|
|
4777
5058
|
th_empty: {
|
|
4778
5059
|
variable: false,
|
|
4779
5060
|
quality: 1,
|
|
4780
|
-
what: '
|
|
5061
|
+
what: 'Element contains no text'
|
|
5062
|
+
}
|
|
5063
|
+
}
|
|
5064
|
+
}
|
|
5065
|
+
},
|
|
5066
|
+
tableHead: {
|
|
5067
|
+
why: 'User cannot get help on parts of a table',
|
|
5068
|
+
wcag: '1.3.1',
|
|
5069
|
+
weight: 1,
|
|
5070
|
+
tools: {
|
|
5071
|
+
aslint: {
|
|
5072
|
+
'table-row-and-column-headersH': {
|
|
5073
|
+
variable: false,
|
|
5074
|
+
quality: 1,
|
|
5075
|
+
what: 'Element does not contain a thead element'
|
|
5076
|
+
}
|
|
5077
|
+
}
|
|
5078
|
+
}
|
|
5079
|
+
},
|
|
5080
|
+
tableBody: {
|
|
5081
|
+
why: 'User cannot get help on parts of a table',
|
|
5082
|
+
wcag: '1.3.1',
|
|
5083
|
+
weight: 1,
|
|
5084
|
+
tools: {
|
|
5085
|
+
aslint: {
|
|
5086
|
+
'table-row-and-column-headersB': {
|
|
5087
|
+
variable: false,
|
|
5088
|
+
quality: 1,
|
|
5089
|
+
what: 'Element does not contain a tbody element'
|
|
4781
5090
|
}
|
|
4782
5091
|
}
|
|
4783
5092
|
}
|
|
@@ -5875,16 +6184,23 @@ exports.issues = {
|
|
|
5875
6184
|
wcag: '1.3.1',
|
|
5876
6185
|
weight: 4,
|
|
5877
6186
|
tools: {
|
|
6187
|
+
aslint: {
|
|
6188
|
+
'label-implicitly-associatedM': {
|
|
6189
|
+
variable: false,
|
|
6190
|
+
quality: 1,
|
|
6191
|
+
what: 'Element contains more than 1 labelable element.'
|
|
6192
|
+
}
|
|
6193
|
+
},
|
|
5878
6194
|
nuVal: {
|
|
5879
6195
|
'The label element may contain at most one button, input, meter, output, progress, select, or textarea descendant.': {
|
|
5880
6196
|
variable: false,
|
|
5881
6197
|
quality: 1,
|
|
5882
|
-
what: '
|
|
6198
|
+
what: 'Element has more than 1 labelable descendant.'
|
|
5883
6199
|
},
|
|
5884
6200
|
'label element with multiple labelable descendants.': {
|
|
5885
6201
|
variable: false,
|
|
5886
6202
|
quality: 1,
|
|
5887
|
-
what: '
|
|
6203
|
+
what: 'Element has multiple labelable descendants.'
|
|
5888
6204
|
}
|
|
5889
6205
|
}
|
|
5890
6206
|
}
|
|
@@ -6025,18 +6341,32 @@ exports.issues = {
|
|
|
6025
6341
|
wcag: '1.3.1',
|
|
6026
6342
|
weight: 2,
|
|
6027
6343
|
tools: {
|
|
6028
|
-
|
|
6029
|
-
|
|
6344
|
+
testaro: {
|
|
6345
|
+
labClash: {
|
|
6030
6346
|
variable: false,
|
|
6031
6347
|
quality: 1,
|
|
6032
|
-
what: '
|
|
6348
|
+
what: 'Incompatible label types'
|
|
6349
|
+
}
|
|
6350
|
+
}
|
|
6351
|
+
}
|
|
6352
|
+
},
|
|
6353
|
+
labelNot1: {
|
|
6354
|
+
why: 'User cannot get reliable help on the topics of form items',
|
|
6355
|
+
wcag: '1.3.1',
|
|
6356
|
+
weight: 1,
|
|
6357
|
+
tools: {
|
|
6358
|
+
aslint: {
|
|
6359
|
+
'duplicated-for-attribute': {
|
|
6360
|
+
variable: false,
|
|
6361
|
+
quality: 1,
|
|
6362
|
+
what: 'More than 1 label element has the same for attribute'
|
|
6033
6363
|
}
|
|
6034
6364
|
},
|
|
6035
|
-
|
|
6036
|
-
|
|
6365
|
+
axe: {
|
|
6366
|
+
'form-field-multiple-labels': {
|
|
6037
6367
|
variable: false,
|
|
6038
6368
|
quality: 1,
|
|
6039
|
-
what: '
|
|
6369
|
+
what: 'Form field has multiple label elements'
|
|
6040
6370
|
}
|
|
6041
6371
|
},
|
|
6042
6372
|
ibm: {
|
|
@@ -6065,6 +6395,18 @@ exports.issues = {
|
|
|
6065
6395
|
wcag: '1.3.1',
|
|
6066
6396
|
weight: 3,
|
|
6067
6397
|
tools: {
|
|
6398
|
+
aslint: {
|
|
6399
|
+
'empty-label-element': {
|
|
6400
|
+
variable: false,
|
|
6401
|
+
quality: 1,
|
|
6402
|
+
what: 'Element has no content'
|
|
6403
|
+
},
|
|
6404
|
+
'label-implicitly-associatedW': {
|
|
6405
|
+
variable: false,
|
|
6406
|
+
quality: 1,
|
|
6407
|
+
what: 'Element has no labeling content except whitespace'
|
|
6408
|
+
}
|
|
6409
|
+
},
|
|
6068
6410
|
htmlcs: {
|
|
6069
6411
|
'AAA.1_3_1.ARIA6': {
|
|
6070
6412
|
variable: false,
|
|
@@ -6143,11 +6485,18 @@ exports.issues = {
|
|
|
6143
6485
|
what: 'Inline link is not distinct from the surrounding text except by color'
|
|
6144
6486
|
}
|
|
6145
6487
|
},
|
|
6488
|
+
aslint: {
|
|
6489
|
+
'links-not-visually-evident-without-color-vision': {
|
|
6490
|
+
variable: false,
|
|
6491
|
+
quality: 1,
|
|
6492
|
+
what: 'Element is a link, but its style properties do not differentiate it from its parent'
|
|
6493
|
+
}
|
|
6494
|
+
},
|
|
6146
6495
|
axe: {
|
|
6147
6496
|
'link-in-text-block': {
|
|
6148
6497
|
variable: false,
|
|
6149
6498
|
quality: 1,
|
|
6150
|
-
what: '
|
|
6499
|
+
what: 'Element is not distinct from surrounding text without reliance on color'
|
|
6151
6500
|
}
|
|
6152
6501
|
},
|
|
6153
6502
|
testaro: {
|
|
@@ -6212,6 +6561,32 @@ exports.issues = {
|
|
|
6212
6561
|
quality: 1,
|
|
6213
6562
|
what: 'Change of visible content not requested by user'
|
|
6214
6563
|
}
|
|
6564
|
+
},
|
|
6565
|
+
aslint: {
|
|
6566
|
+
animationM: {
|
|
6567
|
+
variable: false,
|
|
6568
|
+
quality: 1,
|
|
6569
|
+
what: 'Animation may fail to give user a pause, stop, or hide mechanism'
|
|
6570
|
+
}
|
|
6571
|
+
}
|
|
6572
|
+
}
|
|
6573
|
+
},
|
|
6574
|
+
animationLong: {
|
|
6575
|
+
why: 'Motion-sensitive user may suffer harm',
|
|
6576
|
+
wcag: '2.2.2',
|
|
6577
|
+
weight: 3,
|
|
6578
|
+
tools: {
|
|
6579
|
+
aslint: {
|
|
6580
|
+
animationD: {
|
|
6581
|
+
variable: false,
|
|
6582
|
+
quality: 1,
|
|
6583
|
+
what: 'Animation lasts more than 5 seconds'
|
|
6584
|
+
},
|
|
6585
|
+
animationI: {
|
|
6586
|
+
variable: false,
|
|
6587
|
+
quality: 1,
|
|
6588
|
+
what: 'Animation is repetitive'
|
|
6589
|
+
}
|
|
6215
6590
|
}
|
|
6216
6591
|
}
|
|
6217
6592
|
},
|
|
@@ -6220,11 +6595,18 @@ exports.issues = {
|
|
|
6220
6595
|
wcag: '2.2.2',
|
|
6221
6596
|
weight: 4,
|
|
6222
6597
|
tools: {
|
|
6598
|
+
aslint: {
|
|
6599
|
+
'blink-element': {
|
|
6600
|
+
variable: false,
|
|
6601
|
+
quality: 1,
|
|
6602
|
+
what: 'Element is blink'
|
|
6603
|
+
}
|
|
6604
|
+
},
|
|
6223
6605
|
qualWeb: {
|
|
6224
6606
|
'QW-WCAG-T13': {
|
|
6225
6607
|
variable: false,
|
|
6226
6608
|
quality: 1,
|
|
6227
|
-
what: '
|
|
6609
|
+
what: 'Element is blink'
|
|
6228
6610
|
},
|
|
6229
6611
|
'QW-WCAG-T30': {
|
|
6230
6612
|
variable: false,
|
|
@@ -6239,18 +6621,25 @@ exports.issues = {
|
|
|
6239
6621
|
wcag: '1.4.2',
|
|
6240
6622
|
weight: 2,
|
|
6241
6623
|
tools: {
|
|
6624
|
+
aslint: {
|
|
6625
|
+
'autoplay-audio-video': {
|
|
6626
|
+
variable: false,
|
|
6627
|
+
quality: 1,
|
|
6628
|
+
what: 'Element plays automatically'
|
|
6629
|
+
}
|
|
6630
|
+
},
|
|
6242
6631
|
axe: {
|
|
6243
6632
|
'no-autoplay-audio': {
|
|
6244
6633
|
variable: false,
|
|
6245
6634
|
quality: 1,
|
|
6246
|
-
what: '
|
|
6635
|
+
what: 'Element plays automatically'
|
|
6247
6636
|
}
|
|
6248
6637
|
},
|
|
6249
6638
|
qualWeb: {
|
|
6250
6639
|
'QW-ACT-R15': {
|
|
6251
6640
|
variable: false,
|
|
6252
6641
|
quality: 1,
|
|
6253
|
-
what: '
|
|
6642
|
+
what: 'Element has audio that plays automatically'
|
|
6254
6643
|
}
|
|
6255
6644
|
}
|
|
6256
6645
|
}
|
|
@@ -6264,7 +6653,7 @@ exports.issues = {
|
|
|
6264
6653
|
'QW-ACT-R49': {
|
|
6265
6654
|
variable: false,
|
|
6266
6655
|
quality: 1,
|
|
6267
|
-
what: '
|
|
6656
|
+
what: 'Element that plays automatically has audio lasting more than 3 seconds'
|
|
6268
6657
|
}
|
|
6269
6658
|
}
|
|
6270
6659
|
}
|
|
@@ -6284,20 +6673,27 @@ exports.issues = {
|
|
|
6284
6673
|
}
|
|
6285
6674
|
},
|
|
6286
6675
|
refresh: {
|
|
6287
|
-
why: '
|
|
6676
|
+
why: 'Document change may surprise a user',
|
|
6288
6677
|
wcag: '2.2.1',
|
|
6289
6678
|
weight: 3,
|
|
6290
6679
|
tools: {
|
|
6680
|
+
aslint: {
|
|
6681
|
+
'no-meta-http-equiv-refresh': {
|
|
6682
|
+
variable: false,
|
|
6683
|
+
quality: 1,
|
|
6684
|
+
what: 'Element forces a page reload'
|
|
6685
|
+
}
|
|
6686
|
+
},
|
|
6291
6687
|
qualWeb: {
|
|
6292
6688
|
'QW-ACT-R4': {
|
|
6293
6689
|
variable: false,
|
|
6294
6690
|
quality: 1,
|
|
6295
|
-
what: '
|
|
6691
|
+
what: 'Element refreshes or redirects with delay'
|
|
6296
6692
|
},
|
|
6297
6693
|
'QW-ACT-R71': {
|
|
6298
6694
|
variable: false,
|
|
6299
6695
|
quality: 1,
|
|
6300
|
-
what: '
|
|
6696
|
+
what: 'Element has a refresh delay (no exception)'
|
|
6301
6697
|
}
|
|
6302
6698
|
}
|
|
6303
6699
|
}
|
|
@@ -6414,43 +6810,78 @@ exports.issues = {
|
|
|
6414
6810
|
}
|
|
6415
6811
|
}
|
|
6416
6812
|
},
|
|
6813
|
+
avNoText: {
|
|
6814
|
+
why: 'User cannot get help reading speech as text',
|
|
6815
|
+
wcag: '1.2.1',
|
|
6816
|
+
weight: 4,
|
|
6817
|
+
tools: {
|
|
6818
|
+
aslint: {
|
|
6819
|
+
'audio-video-captions': {
|
|
6820
|
+
variable: false,
|
|
6821
|
+
quality: 1,
|
|
6822
|
+
what: 'Element is audio or video but contains no caption track element'
|
|
6823
|
+
}
|
|
6824
|
+
}
|
|
6825
|
+
}
|
|
6826
|
+
},
|
|
6417
6827
|
audioNoText: {
|
|
6418
6828
|
why: 'User cannot get help reading speech as text',
|
|
6419
6829
|
wcag: '1.2.1',
|
|
6420
6830
|
weight: 4,
|
|
6421
6831
|
tools: {
|
|
6832
|
+
aslint: {
|
|
6833
|
+
'audio-alternativeT': {
|
|
6834
|
+
variable: false,
|
|
6835
|
+
quality: 1,
|
|
6836
|
+
what: 'Element contains no track element'
|
|
6837
|
+
}
|
|
6838
|
+
},
|
|
6422
6839
|
axe: {
|
|
6423
6840
|
'audio-caption': {
|
|
6424
6841
|
variable: false,
|
|
6425
6842
|
quality: 1,
|
|
6426
|
-
what: '
|
|
6843
|
+
what: 'Element has no captions track'
|
|
6427
6844
|
}
|
|
6428
6845
|
},
|
|
6429
6846
|
qualWeb: {
|
|
6430
6847
|
'QW-ACT-R26': {
|
|
6431
6848
|
variable: false,
|
|
6432
6849
|
quality: 1,
|
|
6433
|
-
what: '
|
|
6850
|
+
what: 'Auditory content of the element has no accessible alternative'
|
|
6434
6851
|
},
|
|
6435
6852
|
'QW-ACT-R29': {
|
|
6436
6853
|
variable: false,
|
|
6437
6854
|
quality: 1,
|
|
6438
|
-
what: '
|
|
6855
|
+
what: 'Content of the element has no text alternative'
|
|
6439
6856
|
},
|
|
6440
6857
|
'QW-ACT-R58': {
|
|
6441
6858
|
variable: false,
|
|
6442
6859
|
quality: 1,
|
|
6443
|
-
what: '
|
|
6860
|
+
what: 'Content of the element has no transcript'
|
|
6444
6861
|
},
|
|
6445
6862
|
'QW-ACT-R59': {
|
|
6446
6863
|
variable: false,
|
|
6447
6864
|
quality: 1,
|
|
6448
|
-
what: '
|
|
6865
|
+
what: 'Element content is not a media alternative for text'
|
|
6449
6866
|
},
|
|
6450
6867
|
'QW-ACT-R60': {
|
|
6451
6868
|
variable: false,
|
|
6452
6869
|
quality: 1,
|
|
6453
|
-
what: '
|
|
6870
|
+
what: 'Auditory content of the element has no captions'
|
|
6871
|
+
}
|
|
6872
|
+
}
|
|
6873
|
+
}
|
|
6874
|
+
},
|
|
6875
|
+
audioTextRisk: {
|
|
6876
|
+
why: 'User may be unable to get help reading speech as text',
|
|
6877
|
+
wcag: '1.2.1',
|
|
6878
|
+
weight: 1,
|
|
6879
|
+
tools: {
|
|
6880
|
+
aslint: {
|
|
6881
|
+
'audio-alternativeA': {
|
|
6882
|
+
variable: false,
|
|
6883
|
+
quality: 1,
|
|
6884
|
+
what: 'Referenced description or another text alternative may be missing'
|
|
6454
6885
|
}
|
|
6455
6886
|
}
|
|
6456
6887
|
}
|
|
@@ -6464,7 +6895,7 @@ exports.issues = {
|
|
|
6464
6895
|
'video-caption': {
|
|
6465
6896
|
variable: false,
|
|
6466
6897
|
quality: 1,
|
|
6467
|
-
what: '
|
|
6898
|
+
what: 'Element has no captions'
|
|
6468
6899
|
}
|
|
6469
6900
|
},
|
|
6470
6901
|
qualWeb: {
|
|
@@ -6562,12 +6993,26 @@ exports.issues = {
|
|
|
6562
6993
|
'QW-ACT-R54': {
|
|
6563
6994
|
variable: false,
|
|
6564
6995
|
quality: 1,
|
|
6565
|
-
what: '
|
|
6996
|
+
what: 'Visual-only content of the element has no audio track alternative'
|
|
6997
|
+
}
|
|
6998
|
+
}
|
|
6999
|
+
}
|
|
7000
|
+
},
|
|
7001
|
+
videoAlternative: {
|
|
7002
|
+
why: 'User cannot get help consuming a video recording as text or speech',
|
|
7003
|
+
wcag: '1.2.1',
|
|
7004
|
+
weight: 4,
|
|
7005
|
+
tools: {
|
|
7006
|
+
aslint: {
|
|
7007
|
+
'video-audio-descriptions': {
|
|
7008
|
+
variable: false,
|
|
7009
|
+
quality: 1,
|
|
7010
|
+
what: 'Element has neither an audio source nor a description track'
|
|
6566
7011
|
}
|
|
6567
7012
|
}
|
|
6568
7013
|
}
|
|
6569
7014
|
},
|
|
6570
|
-
|
|
7015
|
+
keyboardScroll: {
|
|
6571
7016
|
why: 'No-mouse user cannot scroll an item',
|
|
6572
7017
|
wcag: '2.1.1',
|
|
6573
7018
|
weight: 4,
|
|
@@ -6896,6 +7341,11 @@ exports.issues = {
|
|
|
6896
7341
|
variable: false,
|
|
6897
7342
|
quality: 1,
|
|
6898
7343
|
what: 'Element is obsolete'
|
|
7344
|
+
},
|
|
7345
|
+
'audio-alternativeB': {
|
|
7346
|
+
variable: false,
|
|
7347
|
+
quality: 1,
|
|
7348
|
+
what: 'Element is obsolete and inferior to an audio element'
|
|
6899
7349
|
}
|
|
6900
7350
|
},
|
|
6901
7351
|
htmlcs: {
|
|
@@ -7391,7 +7841,7 @@ exports.issues = {
|
|
|
7391
7841
|
quality: 1,
|
|
7392
7842
|
what: 'longdesc attribute has a value that is not a URL (and is obsolete)'
|
|
7393
7843
|
}
|
|
7394
|
-
}
|
|
7844
|
+
}
|
|
7395
7845
|
}
|
|
7396
7846
|
},
|
|
7397
7847
|
slashParseRisk: {
|