testilo 17.0.10 → 17.1.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.
- package/package.json +1 -1
- package/procs/score/tic36.js +580 -42
package/package.json
CHANGED
package/procs/score/tic36.js
CHANGED
|
@@ -24,6 +24,23 @@ 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
|
+
reflow: {
|
|
39
|
+
variable: false,
|
|
40
|
+
quality: 0,
|
|
41
|
+
what: 'Page may require horizontal scrolling'
|
|
42
|
+
}
|
|
43
|
+
},
|
|
27
44
|
nuVal: {
|
|
28
45
|
'Element mediaelementwrapper not allowed as child of element div in this context. (Suppressing further errors from this subtree.)': {
|
|
29
46
|
variable: false,
|
|
@@ -34,12 +51,12 @@ exports.issues = {
|
|
|
34
51
|
qualWeb: {
|
|
35
52
|
'QW-ACT-R52': {
|
|
36
53
|
variable: false,
|
|
37
|
-
quality:
|
|
54
|
+
quality: 0,
|
|
38
55
|
what: 'video element visual-only content has no description track (description tracks and this ACT rule have been deprecated)'
|
|
39
56
|
},
|
|
40
57
|
'QW-ACT-R57': {
|
|
41
58
|
variable: false,
|
|
42
|
-
quality:
|
|
59
|
+
quality: 0,
|
|
43
60
|
what: 'video element visual content has no description track (description tracks and this ACT rule have been deprecated)'
|
|
44
61
|
},
|
|
45
62
|
'QW-WCAG-T4': {
|
|
@@ -49,12 +66,12 @@ exports.issues = {
|
|
|
49
66
|
},
|
|
50
67
|
'QW-WCAG-T15': {
|
|
51
68
|
variable: false,
|
|
52
|
-
quality:
|
|
69
|
+
quality: 0,
|
|
53
70
|
what: 'link element may be used for navigation but not in the head'
|
|
54
71
|
},
|
|
55
72
|
'QW-WCAG-T20': {
|
|
56
73
|
variable: false,
|
|
57
|
-
quality:
|
|
74
|
+
quality: 0,
|
|
58
75
|
what: 'Link text is not supplemented with a title attribute'
|
|
59
76
|
}
|
|
60
77
|
}
|
|
@@ -81,7 +98,7 @@ exports.issues = {
|
|
|
81
98
|
}
|
|
82
99
|
}
|
|
83
100
|
},
|
|
84
|
-
|
|
101
|
+
IDUnique: {
|
|
85
102
|
why: 'User may be pointed to the wrong item',
|
|
86
103
|
wcag: '4.1.1',
|
|
87
104
|
weight: 4,
|
|
@@ -93,6 +110,13 @@ exports.issues = {
|
|
|
93
110
|
what: 'Element id attribute value is not unique'
|
|
94
111
|
}
|
|
95
112
|
},
|
|
113
|
+
aslint: {
|
|
114
|
+
'duplicated-id-attribute': {
|
|
115
|
+
variable: false,
|
|
116
|
+
quality: 1,
|
|
117
|
+
what: 'Element id attribute value is not unique'
|
|
118
|
+
}
|
|
119
|
+
},
|
|
96
120
|
axe: {
|
|
97
121
|
'duplicate-id': {
|
|
98
122
|
variable: false,
|
|
@@ -545,6 +569,11 @@ exports.issues = {
|
|
|
545
569
|
variable: false,
|
|
546
570
|
quality: 1,
|
|
547
571
|
what: 'Image may be better described by a revised text alternative and an aria-label attribute'
|
|
572
|
+
},
|
|
573
|
+
'alt-color-convey-information': {
|
|
574
|
+
variable: false,
|
|
575
|
+
quality: 1,
|
|
576
|
+
what: 'Text alternative may fail to give information provided by colors'
|
|
548
577
|
}
|
|
549
578
|
}
|
|
550
579
|
}
|
|
@@ -774,7 +803,19 @@ exports.issues = {
|
|
|
774
803
|
r4: {
|
|
775
804
|
variable: false,
|
|
776
805
|
quality: 1,
|
|
777
|
-
what: '
|
|
806
|
+
what: 'lang attribute missing, empty, or only whitespace'
|
|
807
|
+
}
|
|
808
|
+
},
|
|
809
|
+
aslint: {
|
|
810
|
+
'html-lang-attrN': {
|
|
811
|
+
variable: false,
|
|
812
|
+
quality: 1,
|
|
813
|
+
what: 'lang attribute missing from the html element'
|
|
814
|
+
},
|
|
815
|
+
'html-lang-attrE': {
|
|
816
|
+
variable: false,
|
|
817
|
+
quality: 1,
|
|
818
|
+
what: 'lang attribute of the html element is empty'
|
|
778
819
|
}
|
|
779
820
|
},
|
|
780
821
|
axe: {
|
|
@@ -843,6 +884,13 @@ exports.issues = {
|
|
|
843
884
|
what: 'lang attribute has no valid primary language tag'
|
|
844
885
|
}
|
|
845
886
|
},
|
|
887
|
+
aslint: {
|
|
888
|
+
'html-lang-attrP': {
|
|
889
|
+
variable: false,
|
|
890
|
+
quality: 1,
|
|
891
|
+
what: 'value of the lang attribute of the html element has too many segments'
|
|
892
|
+
}
|
|
893
|
+
},
|
|
846
894
|
axe: {
|
|
847
895
|
'html-lang-valid': {
|
|
848
896
|
variable: false,
|
|
@@ -1140,6 +1188,20 @@ exports.issues = {
|
|
|
1140
1188
|
}
|
|
1141
1189
|
}
|
|
1142
1190
|
},
|
|
1191
|
+
customKeyboardRisk: {
|
|
1192
|
+
why: 'Custom item may prevent a no-mouse user from operating it',
|
|
1193
|
+
wcag: '2.1.1',
|
|
1194
|
+
weight: 1,
|
|
1195
|
+
tools: {
|
|
1196
|
+
htmlcs: {
|
|
1197
|
+
'link-button-space-key': {
|
|
1198
|
+
variable: false,
|
|
1199
|
+
quality: 1,
|
|
1200
|
+
what: 'Element has a button role but may fail to be keyboard-operable'
|
|
1201
|
+
}
|
|
1202
|
+
}
|
|
1203
|
+
}
|
|
1204
|
+
},
|
|
1143
1205
|
objectBlurKeyboardRisk: {
|
|
1144
1206
|
why: 'Custom item may trap a no-mouse user',
|
|
1145
1207
|
wcag: '2.1.1',
|
|
@@ -1207,6 +1269,13 @@ exports.issues = {
|
|
|
1207
1269
|
wcag: '1.3.1',
|
|
1208
1270
|
weight: 4,
|
|
1209
1271
|
tools: {
|
|
1272
|
+
aslint: {
|
|
1273
|
+
'broken-same-page-link': {
|
|
1274
|
+
variable: false,
|
|
1275
|
+
quality: 1,
|
|
1276
|
+
what: 'Same-page destination of the link does not exist'
|
|
1277
|
+
}
|
|
1278
|
+
},
|
|
1210
1279
|
htmlcs: {
|
|
1211
1280
|
'AAA.2_4_1.G1,G123,G124.NoSuchID': {
|
|
1212
1281
|
variable: false,
|
|
@@ -1228,6 +1297,13 @@ exports.issues = {
|
|
|
1228
1297
|
wcag: '1.3.1',
|
|
1229
1298
|
weight: 3,
|
|
1230
1299
|
tools: {
|
|
1300
|
+
aslint: {
|
|
1301
|
+
'label-inappropriate-associationN': {
|
|
1302
|
+
variable: false,
|
|
1303
|
+
quality: 1,
|
|
1304
|
+
what: 'Element referenced by the for attribute is not a form control'
|
|
1305
|
+
}
|
|
1306
|
+
},
|
|
1231
1307
|
htmlcs: {
|
|
1232
1308
|
'AAA.1_3_1.H44.NotFormControl': {
|
|
1233
1309
|
variable: false,
|
|
@@ -1338,6 +1414,13 @@ exports.issues = {
|
|
|
1338
1414
|
wcag: '3.3.2',
|
|
1339
1415
|
weight: 1,
|
|
1340
1416
|
tools: {
|
|
1417
|
+
aslint: {
|
|
1418
|
+
'incorrect-label-placement': {
|
|
1419
|
+
variable: false,
|
|
1420
|
+
quality: 1,
|
|
1421
|
+
what: 'label element precedes the labeled radio button or checkbox'
|
|
1422
|
+
}
|
|
1423
|
+
},
|
|
1341
1424
|
ibm: {
|
|
1342
1425
|
WCAG20_Input_LabelBefore: {
|
|
1343
1426
|
variable: false,
|
|
@@ -1374,6 +1457,23 @@ exports.issues = {
|
|
|
1374
1457
|
wcag: '1.3.1',
|
|
1375
1458
|
weight: 4,
|
|
1376
1459
|
tools: {
|
|
1460
|
+
aslint: {
|
|
1461
|
+
'label-inappropriate-associationM': {
|
|
1462
|
+
variable: false,
|
|
1463
|
+
quality: 1,
|
|
1464
|
+
what: 'Element referenced by the for attribute is missing'
|
|
1465
|
+
},
|
|
1466
|
+
'aria-labelledby-associationN': {
|
|
1467
|
+
variable: false,
|
|
1468
|
+
quality: 1,
|
|
1469
|
+
what: 'Element referenced by the aria-labelledby attribute is missing'
|
|
1470
|
+
},
|
|
1471
|
+
'aria-labelledby-associationE': {
|
|
1472
|
+
variable: false,
|
|
1473
|
+
quality: 1,
|
|
1474
|
+
what: 'aria-labelledby attribute refers to no element'
|
|
1475
|
+
}
|
|
1476
|
+
},
|
|
1377
1477
|
htmlcs: {
|
|
1378
1478
|
'AAA.1_3_1.H44.NonExistentFragment': {
|
|
1379
1479
|
variable: false,
|
|
@@ -1461,6 +1561,20 @@ exports.issues = {
|
|
|
1461
1561
|
}
|
|
1462
1562
|
}
|
|
1463
1563
|
},
|
|
1564
|
+
clickOnly: {
|
|
1565
|
+
why: 'User may misunderstand how to activate a link',
|
|
1566
|
+
wcag: '2.4.4',
|
|
1567
|
+
weight: 1,
|
|
1568
|
+
tools: {
|
|
1569
|
+
aslint: {
|
|
1570
|
+
'click-verb': {
|
|
1571
|
+
variable: false,
|
|
1572
|
+
quality: 1,
|
|
1573
|
+
what: 'Mouse-specific word click is in the element text'
|
|
1574
|
+
}
|
|
1575
|
+
}
|
|
1576
|
+
}
|
|
1577
|
+
},
|
|
1464
1578
|
linkNoText: {
|
|
1465
1579
|
why: 'User cannot get help understanding what a link points to',
|
|
1466
1580
|
wcag: '2.4.4',
|
|
@@ -1478,6 +1592,11 @@ exports.issues = {
|
|
|
1478
1592
|
variable: false,
|
|
1479
1593
|
quality: 1,
|
|
1480
1594
|
what: 'Element is an image in a link but has no text alternative'
|
|
1595
|
+
},
|
|
1596
|
+
'empty-link-element': {
|
|
1597
|
+
variable: false,
|
|
1598
|
+
quality: 1,
|
|
1599
|
+
what: 'Element has no visible and accessible name'
|
|
1481
1600
|
}
|
|
1482
1601
|
},
|
|
1483
1602
|
axe: {
|
|
@@ -1592,6 +1711,13 @@ exports.issues = {
|
|
|
1592
1711
|
wcag: '3.1.4',
|
|
1593
1712
|
weight: 4,
|
|
1594
1713
|
tools: {
|
|
1714
|
+
aslint: {
|
|
1715
|
+
'title-for-abbr': {
|
|
1716
|
+
variable: false,
|
|
1717
|
+
quality: 1,
|
|
1718
|
+
what: 'Element as an abbr but its defining title attribute is missing or empty'
|
|
1719
|
+
}
|
|
1720
|
+
},
|
|
1595
1721
|
qualWeb: {
|
|
1596
1722
|
'QW-WCAG-T7': {
|
|
1597
1723
|
variable: false,
|
|
@@ -1702,6 +1828,13 @@ exports.issues = {
|
|
|
1702
1828
|
wcag: '2.4.4',
|
|
1703
1829
|
weight: 2,
|
|
1704
1830
|
tools: {
|
|
1831
|
+
aslint: {
|
|
1832
|
+
'links-same-content-different-url': {
|
|
1833
|
+
variable: false,
|
|
1834
|
+
quality: 1,
|
|
1835
|
+
what: 'Links with the same text content have different destination URLs'
|
|
1836
|
+
}
|
|
1837
|
+
},
|
|
1705
1838
|
qualWeb: {
|
|
1706
1839
|
'QW-ACT-R9': {
|
|
1707
1840
|
variable: false,
|
|
@@ -1817,6 +1950,13 @@ exports.issues = {
|
|
|
1817
1950
|
wcag: '3.2.5',
|
|
1818
1951
|
weight: 1,
|
|
1819
1952
|
tools: {
|
|
1953
|
+
aslint: {
|
|
1954
|
+
linkExt: {
|
|
1955
|
+
variable: false,
|
|
1956
|
+
quality: 1,
|
|
1957
|
+
what: 'Indicator that the link opens a new window or tab may be missing'
|
|
1958
|
+
}
|
|
1959
|
+
},
|
|
1820
1960
|
htmlcs: {
|
|
1821
1961
|
'WCAG2AAA.Principle3.Guideline3_2.3_2_5.H83.3': {
|
|
1822
1962
|
variable: false,
|
|
@@ -1852,6 +1992,20 @@ exports.issues = {
|
|
|
1852
1992
|
}
|
|
1853
1993
|
}
|
|
1854
1994
|
},
|
|
1995
|
+
preselectedOption: {
|
|
1996
|
+
why: 'User may risk erroneously submitting a form',
|
|
1997
|
+
wcag: '4.1.2',
|
|
1998
|
+
weight: 1,
|
|
1999
|
+
tools: {
|
|
2000
|
+
aslint: {
|
|
2001
|
+
'select-initial-option': {
|
|
2002
|
+
variable: false,
|
|
2003
|
+
quality: 1,
|
|
2004
|
+
what: 'No option has been made the default with a selected attribute'
|
|
2005
|
+
}
|
|
2006
|
+
}
|
|
2007
|
+
}
|
|
2008
|
+
},
|
|
1855
2009
|
buttonAlt: {
|
|
1856
2010
|
why: 'User cannot get help explaing a button',
|
|
1857
2011
|
wcag: '4.1.2',
|
|
@@ -1878,6 +2032,13 @@ exports.issues = {
|
|
|
1878
2032
|
what: 'Button has no accessible name'
|
|
1879
2033
|
}
|
|
1880
2034
|
},
|
|
2035
|
+
aslint: {
|
|
2036
|
+
'empty-button-description': {
|
|
2037
|
+
variable: false,
|
|
2038
|
+
quality: 1,
|
|
2039
|
+
what: 'Button has no visible accessible name'
|
|
2040
|
+
}
|
|
2041
|
+
},
|
|
1881
2042
|
axe: {
|
|
1882
2043
|
'aria-command-name': {
|
|
1883
2044
|
variable: false,
|
|
@@ -2109,6 +2270,13 @@ exports.issues = {
|
|
|
2109
2270
|
wcag: '1.3.4',
|
|
2110
2271
|
weight: 4,
|
|
2111
2272
|
tools: {
|
|
2273
|
+
aslint: {
|
|
2274
|
+
'orientation': {
|
|
2275
|
+
variable: false,
|
|
2276
|
+
quality: 1,
|
|
2277
|
+
what: 'CSS media query specifies an orientation'
|
|
2278
|
+
}
|
|
2279
|
+
},
|
|
2112
2280
|
axe: {
|
|
2113
2281
|
'css-orientation-lock': {
|
|
2114
2282
|
variable: false,
|
|
@@ -2125,6 +2293,20 @@ exports.issues = {
|
|
|
2125
2293
|
}
|
|
2126
2294
|
}
|
|
2127
2295
|
},
|
|
2296
|
+
orientationRisk: {
|
|
2297
|
+
why: 'User may need to read sideways after rotating a device',
|
|
2298
|
+
wcag: '1.3.4',
|
|
2299
|
+
weight: 1,
|
|
2300
|
+
tools: {
|
|
2301
|
+
aslint: {
|
|
2302
|
+
'orientationT': {
|
|
2303
|
+
variable: false,
|
|
2304
|
+
quality: 1,
|
|
2305
|
+
what: 'Failure to read a stylesheet prevents testing for orientation violations'
|
|
2306
|
+
}
|
|
2307
|
+
}
|
|
2308
|
+
}
|
|
2309
|
+
},
|
|
2128
2310
|
metaBansZoom: {
|
|
2129
2311
|
why: 'User cannot adjust the document size for readability',
|
|
2130
2312
|
wcag: '1.4.4',
|
|
@@ -2134,7 +2316,14 @@ exports.issues = {
|
|
|
2134
2316
|
r47: {
|
|
2135
2317
|
variable: false,
|
|
2136
2318
|
quality: 1,
|
|
2137
|
-
what: '
|
|
2319
|
+
what: 'Element restricts zooming'
|
|
2320
|
+
}
|
|
2321
|
+
},
|
|
2322
|
+
aslint: {
|
|
2323
|
+
'zoom-disabled': {
|
|
2324
|
+
variable: false,
|
|
2325
|
+
quality: 1,
|
|
2326
|
+
what: 'Element specifies a minimum or maximum scale or prohibits zooming'
|
|
2138
2327
|
}
|
|
2139
2328
|
},
|
|
2140
2329
|
axe: {
|
|
@@ -2165,6 +2354,20 @@ exports.issues = {
|
|
|
2165
2354
|
}
|
|
2166
2355
|
}
|
|
2167
2356
|
},
|
|
2357
|
+
deviceRisk: {
|
|
2358
|
+
why: 'User may be unable to produce required device movement',
|
|
2359
|
+
wcag: '2.5.4',
|
|
2360
|
+
weight: 1,
|
|
2361
|
+
tools: {
|
|
2362
|
+
aslint: {
|
|
2363
|
+
'motion-actuation': {
|
|
2364
|
+
variable: false,
|
|
2365
|
+
quality: 1,
|
|
2366
|
+
what: 'Document listens for device motion or rotation'
|
|
2367
|
+
}
|
|
2368
|
+
}
|
|
2369
|
+
}
|
|
2370
|
+
},
|
|
2168
2371
|
fontSizeAbsolute: {
|
|
2169
2372
|
why: 'User cannot adjust the document size for readability',
|
|
2170
2373
|
wcag: '1.4.4',
|
|
@@ -2490,6 +2693,13 @@ exports.issues = {
|
|
|
2490
2693
|
what: 'iframe has no accessible name'
|
|
2491
2694
|
}
|
|
2492
2695
|
},
|
|
2696
|
+
aslint: {
|
|
2697
|
+
'title-iframe': {
|
|
2698
|
+
variable: false,
|
|
2699
|
+
quality: 1,
|
|
2700
|
+
what: 'Element is an iframe or object but its title attribute is missing or empty'
|
|
2701
|
+
}
|
|
2702
|
+
},
|
|
2493
2703
|
axe: {
|
|
2494
2704
|
'frame-title': {
|
|
2495
2705
|
variable: false,
|
|
@@ -3142,7 +3352,14 @@ exports.issues = {
|
|
|
3142
3352
|
r10: {
|
|
3143
3353
|
variable: false,
|
|
3144
3354
|
quality: 1,
|
|
3145
|
-
what: '
|
|
3355
|
+
what: 'autocomplete attribute has no valid value'
|
|
3356
|
+
}
|
|
3357
|
+
},
|
|
3358
|
+
aslint: {
|
|
3359
|
+
'identify-input-purpose': {
|
|
3360
|
+
variable: false,
|
|
3361
|
+
quality: 1,
|
|
3362
|
+
what: 'autocomplete attribute has an invalid value'
|
|
3146
3363
|
}
|
|
3147
3364
|
},
|
|
3148
3365
|
axe: {
|
|
@@ -3260,6 +3477,23 @@ exports.issues = {
|
|
|
3260
3477
|
what: 'Text outside widget has subminimum contrast'
|
|
3261
3478
|
}
|
|
3262
3479
|
},
|
|
3480
|
+
aslint: {
|
|
3481
|
+
'color-contrast-aa': {
|
|
3482
|
+
variable: false,
|
|
3483
|
+
quality: 1,
|
|
3484
|
+
what: 'Text has contrast less than 4.5:1'
|
|
3485
|
+
},
|
|
3486
|
+
'color-contrast-state-pseudo-classes-abstract3': {
|
|
3487
|
+
variable: false,
|
|
3488
|
+
quality: 1,
|
|
3489
|
+
what: 'Text has contrast less than 3:1'
|
|
3490
|
+
},
|
|
3491
|
+
'color-contrast-state-pseudo-classes-abstract4': {
|
|
3492
|
+
variable: false,
|
|
3493
|
+
quality: 1,
|
|
3494
|
+
what: 'Text has contrast less than 4.5:1'
|
|
3495
|
+
}
|
|
3496
|
+
},
|
|
3263
3497
|
axe: {
|
|
3264
3498
|
'color-contrast': {
|
|
3265
3499
|
variable: false,
|
|
@@ -3326,6 +3560,20 @@ exports.issues = {
|
|
|
3326
3560
|
}
|
|
3327
3561
|
}
|
|
3328
3562
|
},
|
|
3563
|
+
colorNamedRisk: {
|
|
3564
|
+
why: 'Content is impossible to perceive under some conditions',
|
|
3565
|
+
wcag: '1.4.1',
|
|
3566
|
+
weight: 1,
|
|
3567
|
+
tools: {
|
|
3568
|
+
qualWeb: {
|
|
3569
|
+
'text-color-convey-information': {
|
|
3570
|
+
variable: false,
|
|
3571
|
+
quality: 1,
|
|
3572
|
+
what: 'Text naming a color may require the ability to distinguish colors'
|
|
3573
|
+
}
|
|
3574
|
+
}
|
|
3575
|
+
}
|
|
3576
|
+
},
|
|
3329
3577
|
contrastAAA: {
|
|
3330
3578
|
why: 'Text is difficult to read',
|
|
3331
3579
|
wcag: '1.4.6',
|
|
@@ -3338,6 +3586,18 @@ exports.issues = {
|
|
|
3338
3586
|
what: 'Text contrast less than AAA requires'
|
|
3339
3587
|
}
|
|
3340
3588
|
},
|
|
3589
|
+
aslint: {
|
|
3590
|
+
'color-contrast-aaa4': {
|
|
3591
|
+
variable: false,
|
|
3592
|
+
quality: 1,
|
|
3593
|
+
what: 'Text has contrast less than 4.5:1'
|
|
3594
|
+
},
|
|
3595
|
+
'color-contrast-aaa7': {
|
|
3596
|
+
variable: false,
|
|
3597
|
+
quality: 1,
|
|
3598
|
+
what: 'Text has contrast less than 7:1'
|
|
3599
|
+
}
|
|
3600
|
+
},
|
|
3341
3601
|
axe: {
|
|
3342
3602
|
'color-contrast-enhanced': {
|
|
3343
3603
|
variable: false,
|
|
@@ -3371,6 +3631,23 @@ exports.issues = {
|
|
|
3371
3631
|
wcag: '1.4.3',
|
|
3372
3632
|
weight: 1,
|
|
3373
3633
|
tools: {
|
|
3634
|
+
aslint: {
|
|
3635
|
+
'color-contrast-state-pseudo-classes-abstractF': {
|
|
3636
|
+
variable: false,
|
|
3637
|
+
quality: 1,
|
|
3638
|
+
what: 'Fixed position of the element prevents contrast measurement'
|
|
3639
|
+
},
|
|
3640
|
+
'color-contrast-state-pseudo-classes-abstractB': {
|
|
3641
|
+
variable: false,
|
|
3642
|
+
quality: 1,
|
|
3643
|
+
what: 'Transparent background color of the element prevents contrast measurement'
|
|
3644
|
+
},
|
|
3645
|
+
'color-contrast-aaaB': {
|
|
3646
|
+
variable: false,
|
|
3647
|
+
quality: 1,
|
|
3648
|
+
what: 'Transparent background color of the element prevents contrast measurement'
|
|
3649
|
+
}
|
|
3650
|
+
},
|
|
3374
3651
|
htmlcs: {
|
|
3375
3652
|
'AAA.1_4_3_F24.F24.BGColour': {
|
|
3376
3653
|
variable: false,
|
|
@@ -3480,6 +3757,13 @@ exports.issues = {
|
|
|
3480
3757
|
what: 'Heading has no non-empty accessible name'
|
|
3481
3758
|
}
|
|
3482
3759
|
},
|
|
3760
|
+
aslint: {
|
|
3761
|
+
'empty-heading': {
|
|
3762
|
+
variable: false,
|
|
3763
|
+
quality: 1,
|
|
3764
|
+
what: 'Element is a heading but is empty'
|
|
3765
|
+
}
|
|
3766
|
+
},
|
|
3483
3767
|
axe: {
|
|
3484
3768
|
'empty-heading': {
|
|
3485
3769
|
variable: false,
|
|
@@ -3726,6 +4010,27 @@ exports.issues = {
|
|
|
3726
4010
|
}
|
|
3727
4011
|
}
|
|
3728
4012
|
},
|
|
4013
|
+
pageTitleBad: {
|
|
4014
|
+
why: 'Browser processes the document improperly',
|
|
4015
|
+
wcag: '1.3.1',
|
|
4016
|
+
weight: 4,
|
|
4017
|
+
tools: {
|
|
4018
|
+
aslint: {
|
|
4019
|
+
'page-titleU': {
|
|
4020
|
+
variable: false,
|
|
4021
|
+
quality: 1,
|
|
4022
|
+
what: 'Page title does not identify the contents or purpose of the page'
|
|
4023
|
+
}
|
|
4024
|
+
},
|
|
4025
|
+
wave: {
|
|
4026
|
+
title_invalid: {
|
|
4027
|
+
variable: false,
|
|
4028
|
+
quality: 1,
|
|
4029
|
+
what: 'Missing or uninformative page title'
|
|
4030
|
+
}
|
|
4031
|
+
}
|
|
4032
|
+
}
|
|
4033
|
+
},
|
|
3729
4034
|
pageTitle: {
|
|
3730
4035
|
why: 'User is not informed of the topic of the document',
|
|
3731
4036
|
wcag: '2.4.2',
|
|
@@ -3738,6 +4043,13 @@ exports.issues = {
|
|
|
3738
4043
|
what: 'Document has no valid title element'
|
|
3739
4044
|
}
|
|
3740
4045
|
},
|
|
4046
|
+
aslint: {
|
|
4047
|
+
'page-titleN': {
|
|
4048
|
+
variable: false,
|
|
4049
|
+
quality: 1,
|
|
4050
|
+
what: 'Page title is missing or empty'
|
|
4051
|
+
}
|
|
4052
|
+
},
|
|
3741
4053
|
axe: {
|
|
3742
4054
|
'document-title': {
|
|
3743
4055
|
variable: false,
|
|
@@ -3777,13 +4089,6 @@ exports.issues = {
|
|
|
3777
4089
|
quality: 1,
|
|
3778
4090
|
what: 'HTML page has no title'
|
|
3779
4091
|
}
|
|
3780
|
-
},
|
|
3781
|
-
wave: {
|
|
3782
|
-
title_invalid: {
|
|
3783
|
-
variable: false,
|
|
3784
|
-
quality: 1,
|
|
3785
|
-
what: 'Missing or uninformative page title'
|
|
3786
|
-
}
|
|
3787
4092
|
}
|
|
3788
4093
|
}
|
|
3789
4094
|
},
|
|
@@ -3878,7 +4183,7 @@ exports.issues = {
|
|
|
3878
4183
|
}
|
|
3879
4184
|
}
|
|
3880
4185
|
},
|
|
3881
|
-
|
|
4186
|
+
headingNone: {
|
|
3882
4187
|
why: 'User cannot survey parts of the document',
|
|
3883
4188
|
wcag: '1.3.1',
|
|
3884
4189
|
weight: 3,
|
|
@@ -3890,6 +4195,13 @@ exports.issues = {
|
|
|
3890
4195
|
what: 'Document has no headings'
|
|
3891
4196
|
}
|
|
3892
4197
|
},
|
|
4198
|
+
aslint: {
|
|
4199
|
+
'no-headings': {
|
|
4200
|
+
variable: false,
|
|
4201
|
+
quality: 1,
|
|
4202
|
+
what: 'Document has no headings'
|
|
4203
|
+
}
|
|
4204
|
+
},
|
|
3893
4205
|
qualWeb: {
|
|
3894
4206
|
'QW-BP1': {
|
|
3895
4207
|
variable: false,
|
|
@@ -4449,6 +4761,13 @@ exports.issues = {
|
|
|
4449
4761
|
wcag: '1.3.1',
|
|
4450
4762
|
weight: 1,
|
|
4451
4763
|
tools: {
|
|
4764
|
+
aslint: {
|
|
4765
|
+
'group-elements-name-attribute': {
|
|
4766
|
+
variable: false,
|
|
4767
|
+
quality: 1,
|
|
4768
|
+
what: 'Element is an input with a name attribute but has no fieldset parent'
|
|
4769
|
+
}
|
|
4770
|
+
},
|
|
4452
4771
|
htmlcs: {
|
|
4453
4772
|
'AAA.1_3_1.H71.SameName': {
|
|
4454
4773
|
variable: false,
|
|
@@ -4477,11 +4796,23 @@ exports.issues = {
|
|
|
4477
4796
|
wcag: '4.1.2',
|
|
4478
4797
|
weight: 2,
|
|
4479
4798
|
tools: {
|
|
4799
|
+
aslint: {
|
|
4800
|
+
'fieldset-no-legend': {
|
|
4801
|
+
variable: false,
|
|
4802
|
+
quality: 1,
|
|
4803
|
+
what: 'First child element of the element is not a legend'
|
|
4804
|
+
},
|
|
4805
|
+
'legend-first-child-of-fieldset': {
|
|
4806
|
+
variable: false,
|
|
4807
|
+
quality: 1,
|
|
4808
|
+
what: 'First child element of the element is not a legend'
|
|
4809
|
+
}
|
|
4810
|
+
},
|
|
4480
4811
|
htmlcs: {
|
|
4481
4812
|
'AAA.1_3_1.H71.NoLegend': {
|
|
4482
4813
|
variable: false,
|
|
4483
4814
|
quality: 1,
|
|
4484
|
-
what: '
|
|
4815
|
+
what: 'Element has no legend element'
|
|
4485
4816
|
}
|
|
4486
4817
|
},
|
|
4487
4818
|
ibm: {
|
|
@@ -4493,7 +4824,7 @@ exports.issues = {
|
|
|
4493
4824
|
fieldset_legend_valid: {
|
|
4494
4825
|
variable: false,
|
|
4495
4826
|
quality: 1,
|
|
4496
|
-
what: '
|
|
4827
|
+
what: 'Element does not have a legend element'
|
|
4497
4828
|
}
|
|
4498
4829
|
},
|
|
4499
4830
|
qualWeb: {
|
|
@@ -4507,7 +4838,7 @@ exports.issues = {
|
|
|
4507
4838
|
legend_missing: {
|
|
4508
4839
|
variable: false,
|
|
4509
4840
|
quality: 1,
|
|
4510
|
-
what: '
|
|
4841
|
+
what: 'Element has no legend element'
|
|
4511
4842
|
}
|
|
4512
4843
|
}
|
|
4513
4844
|
}
|
|
@@ -4802,6 +5133,13 @@ exports.issues = {
|
|
|
4802
5133
|
wcag: '1.3.1',
|
|
4803
5134
|
weight: 3,
|
|
4804
5135
|
tools: {
|
|
5136
|
+
aslint: {
|
|
5137
|
+
'table-row-and-column-headersRC': {
|
|
5138
|
+
variable: false,
|
|
5139
|
+
quality: 1,
|
|
5140
|
+
what: 'None of the cells in the table is a header'
|
|
5141
|
+
}
|
|
5142
|
+
},
|
|
4805
5143
|
ibm: {
|
|
4806
5144
|
RPT_Table_DataHeadingsAria: {
|
|
4807
5145
|
variable: false,
|
|
@@ -4883,7 +5221,35 @@ exports.issues = {
|
|
|
4883
5221
|
th_empty: {
|
|
4884
5222
|
variable: false,
|
|
4885
5223
|
quality: 1,
|
|
4886
|
-
what: '
|
|
5224
|
+
what: 'Element contains no text'
|
|
5225
|
+
}
|
|
5226
|
+
}
|
|
5227
|
+
}
|
|
5228
|
+
},
|
|
5229
|
+
tableHead: {
|
|
5230
|
+
why: 'User cannot get help on parts of a table',
|
|
5231
|
+
wcag: '1.3.1',
|
|
5232
|
+
weight: 1,
|
|
5233
|
+
tools: {
|
|
5234
|
+
aslint: {
|
|
5235
|
+
'table-row-and-column-headersH': {
|
|
5236
|
+
variable: false,
|
|
5237
|
+
quality: 1,
|
|
5238
|
+
what: 'Element does not contain a thead element'
|
|
5239
|
+
}
|
|
5240
|
+
}
|
|
5241
|
+
}
|
|
5242
|
+
},
|
|
5243
|
+
tableBody: {
|
|
5244
|
+
why: 'User cannot get help on parts of a table',
|
|
5245
|
+
wcag: '1.3.1',
|
|
5246
|
+
weight: 1,
|
|
5247
|
+
tools: {
|
|
5248
|
+
aslint: {
|
|
5249
|
+
'table-row-and-column-headersB': {
|
|
5250
|
+
variable: false,
|
|
5251
|
+
quality: 1,
|
|
5252
|
+
what: 'Element does not contain a tbody element'
|
|
4887
5253
|
}
|
|
4888
5254
|
}
|
|
4889
5255
|
}
|
|
@@ -4961,11 +5327,18 @@ exports.issues = {
|
|
|
4961
5327
|
wcag: '2.4.6',
|
|
4962
5328
|
weight: 4,
|
|
4963
5329
|
tools: {
|
|
5330
|
+
aslint: {
|
|
5331
|
+
'label-visually-hidden-only': {
|
|
5332
|
+
variable: false,
|
|
5333
|
+
quality: 1,
|
|
5334
|
+
what: 'Form control has a label but it is not visible'
|
|
5335
|
+
}
|
|
5336
|
+
},
|
|
4964
5337
|
axe: {
|
|
4965
5338
|
'label-title-only': {
|
|
4966
5339
|
variable: false,
|
|
4967
5340
|
quality: 1,
|
|
4968
|
-
what: 'Form
|
|
5341
|
+
what: 'Form control has no visible label'
|
|
4969
5342
|
}
|
|
4970
5343
|
}
|
|
4971
5344
|
}
|
|
@@ -5981,16 +6354,23 @@ exports.issues = {
|
|
|
5981
6354
|
wcag: '1.3.1',
|
|
5982
6355
|
weight: 4,
|
|
5983
6356
|
tools: {
|
|
6357
|
+
aslint: {
|
|
6358
|
+
'label-implicitly-associatedM': {
|
|
6359
|
+
variable: false,
|
|
6360
|
+
quality: 1,
|
|
6361
|
+
what: 'Element contains more than 1 labelable element.'
|
|
6362
|
+
}
|
|
6363
|
+
},
|
|
5984
6364
|
nuVal: {
|
|
5985
6365
|
'The label element may contain at most one button, input, meter, output, progress, select, or textarea descendant.': {
|
|
5986
6366
|
variable: false,
|
|
5987
6367
|
quality: 1,
|
|
5988
|
-
what: '
|
|
6368
|
+
what: 'Element has more than 1 labelable descendant.'
|
|
5989
6369
|
},
|
|
5990
6370
|
'label element with multiple labelable descendants.': {
|
|
5991
6371
|
variable: false,
|
|
5992
6372
|
quality: 1,
|
|
5993
|
-
what: '
|
|
6373
|
+
what: 'Element has multiple labelable descendants.'
|
|
5994
6374
|
}
|
|
5995
6375
|
}
|
|
5996
6376
|
}
|
|
@@ -6131,18 +6511,37 @@ exports.issues = {
|
|
|
6131
6511
|
wcag: '1.3.1',
|
|
6132
6512
|
weight: 2,
|
|
6133
6513
|
tools: {
|
|
6134
|
-
|
|
6135
|
-
|
|
6514
|
+
testaro: {
|
|
6515
|
+
labClash: {
|
|
6136
6516
|
variable: false,
|
|
6137
6517
|
quality: 1,
|
|
6138
|
-
what: '
|
|
6518
|
+
what: 'Incompatible label types'
|
|
6519
|
+
}
|
|
6520
|
+
}
|
|
6521
|
+
}
|
|
6522
|
+
},
|
|
6523
|
+
labelNot1: {
|
|
6524
|
+
why: 'User cannot get reliable help on the topics of form items',
|
|
6525
|
+
wcag: '1.3.1',
|
|
6526
|
+
weight: 1,
|
|
6527
|
+
tools: {
|
|
6528
|
+
aslint: {
|
|
6529
|
+
'duplicated-for-attribute': {
|
|
6530
|
+
variable: false,
|
|
6531
|
+
quality: 1,
|
|
6532
|
+
what: 'More than 1 label element has the same for attribute'
|
|
6533
|
+
},
|
|
6534
|
+
'missing-labelM': {
|
|
6535
|
+
variable: false,
|
|
6536
|
+
quality: 1,
|
|
6537
|
+
what: 'More than 1 label element refers to the element'
|
|
6139
6538
|
}
|
|
6140
6539
|
},
|
|
6141
|
-
|
|
6142
|
-
|
|
6540
|
+
axe: {
|
|
6541
|
+
'form-field-multiple-labels': {
|
|
6143
6542
|
variable: false,
|
|
6144
6543
|
quality: 1,
|
|
6145
|
-
what: '
|
|
6544
|
+
what: 'Form field has multiple label elements'
|
|
6146
6545
|
}
|
|
6147
6546
|
},
|
|
6148
6547
|
ibm: {
|
|
@@ -6171,6 +6570,23 @@ exports.issues = {
|
|
|
6171
6570
|
wcag: '1.3.1',
|
|
6172
6571
|
weight: 3,
|
|
6173
6572
|
tools: {
|
|
6573
|
+
aslint: {
|
|
6574
|
+
'empty-label-element': {
|
|
6575
|
+
variable: false,
|
|
6576
|
+
quality: 1,
|
|
6577
|
+
what: 'Element has no content'
|
|
6578
|
+
},
|
|
6579
|
+
'label-implicitly-associatedW': {
|
|
6580
|
+
variable: false,
|
|
6581
|
+
quality: 1,
|
|
6582
|
+
what: 'Element has no labeling content except whitespace'
|
|
6583
|
+
},
|
|
6584
|
+
'aria-labelledby-association-empty-element': {
|
|
6585
|
+
variable: false,
|
|
6586
|
+
quality: 1,
|
|
6587
|
+
what: 'Referenced label has no content'
|
|
6588
|
+
}
|
|
6589
|
+
},
|
|
6174
6590
|
htmlcs: {
|
|
6175
6591
|
'AAA.1_3_1.ARIA6': {
|
|
6176
6592
|
variable: false,
|
|
@@ -6192,11 +6608,37 @@ exports.issues = {
|
|
|
6192
6608
|
}
|
|
6193
6609
|
}
|
|
6194
6610
|
},
|
|
6611
|
+
labelRisk: {
|
|
6612
|
+
why: 'User may misunderstand a form control',
|
|
6613
|
+
wcag: '3.3.2',
|
|
6614
|
+
weight: 1,
|
|
6615
|
+
tools: {
|
|
6616
|
+
aslint: {
|
|
6617
|
+
'missing-labelI': {
|
|
6618
|
+
variable: false,
|
|
6619
|
+
quality: 1,
|
|
6620
|
+
what: 'Element has no id attribute for an explicit label to reference'
|
|
6621
|
+
},
|
|
6622
|
+
'missing-labelN': {
|
|
6623
|
+
variable: false,
|
|
6624
|
+
quality: 1,
|
|
6625
|
+
what: 'Element has an id attribute but no explicit label references it'
|
|
6626
|
+
}
|
|
6627
|
+
}
|
|
6628
|
+
}
|
|
6629
|
+
},
|
|
6195
6630
|
linkComprehensionRisk: {
|
|
6196
6631
|
why: 'User may misunderstand what a link points to',
|
|
6197
6632
|
wcag: '2.4.4',
|
|
6198
6633
|
weight: 1,
|
|
6199
6634
|
tools: {
|
|
6635
|
+
aslint: {
|
|
6636
|
+
'link-with-unclear-purpose': {
|
|
6637
|
+
variable: false,
|
|
6638
|
+
quality: 1,
|
|
6639
|
+
what: 'Element is a link but has vague or generic content'
|
|
6640
|
+
}
|
|
6641
|
+
},
|
|
6200
6642
|
wave: {
|
|
6201
6643
|
link_suspicious: {
|
|
6202
6644
|
variable: false,
|
|
@@ -6249,11 +6691,18 @@ exports.issues = {
|
|
|
6249
6691
|
what: 'Inline link is not distinct from the surrounding text except by color'
|
|
6250
6692
|
}
|
|
6251
6693
|
},
|
|
6694
|
+
aslint: {
|
|
6695
|
+
'links-not-visually-evident-without-color-vision': {
|
|
6696
|
+
variable: false,
|
|
6697
|
+
quality: 1,
|
|
6698
|
+
what: 'Element is a link, but its style properties do not differentiate it from its parent'
|
|
6699
|
+
}
|
|
6700
|
+
},
|
|
6252
6701
|
axe: {
|
|
6253
6702
|
'link-in-text-block': {
|
|
6254
6703
|
variable: false,
|
|
6255
6704
|
quality: 1,
|
|
6256
|
-
what: '
|
|
6705
|
+
what: 'Element is not distinct from surrounding text without reliance on color'
|
|
6257
6706
|
}
|
|
6258
6707
|
},
|
|
6259
6708
|
testaro: {
|
|
@@ -6318,6 +6767,32 @@ exports.issues = {
|
|
|
6318
6767
|
quality: 1,
|
|
6319
6768
|
what: 'Change of visible content not requested by user'
|
|
6320
6769
|
}
|
|
6770
|
+
},
|
|
6771
|
+
aslint: {
|
|
6772
|
+
animationM: {
|
|
6773
|
+
variable: false,
|
|
6774
|
+
quality: 1,
|
|
6775
|
+
what: 'Animation may fail to give user a pause, stop, or hide mechanism'
|
|
6776
|
+
}
|
|
6777
|
+
}
|
|
6778
|
+
}
|
|
6779
|
+
},
|
|
6780
|
+
animationLong: {
|
|
6781
|
+
why: 'Motion-sensitive user may suffer harm',
|
|
6782
|
+
wcag: '2.2.2',
|
|
6783
|
+
weight: 3,
|
|
6784
|
+
tools: {
|
|
6785
|
+
aslint: {
|
|
6786
|
+
animationD: {
|
|
6787
|
+
variable: false,
|
|
6788
|
+
quality: 1,
|
|
6789
|
+
what: 'Animation lasts more than 5 seconds'
|
|
6790
|
+
},
|
|
6791
|
+
animationI: {
|
|
6792
|
+
variable: false,
|
|
6793
|
+
quality: 1,
|
|
6794
|
+
what: 'Animation is repetitive'
|
|
6795
|
+
}
|
|
6321
6796
|
}
|
|
6322
6797
|
}
|
|
6323
6798
|
},
|
|
@@ -6326,11 +6801,18 @@ exports.issues = {
|
|
|
6326
6801
|
wcag: '2.2.2',
|
|
6327
6802
|
weight: 4,
|
|
6328
6803
|
tools: {
|
|
6804
|
+
aslint: {
|
|
6805
|
+
'blink-element': {
|
|
6806
|
+
variable: false,
|
|
6807
|
+
quality: 1,
|
|
6808
|
+
what: 'Element is blink'
|
|
6809
|
+
}
|
|
6810
|
+
},
|
|
6329
6811
|
qualWeb: {
|
|
6330
6812
|
'QW-WCAG-T13': {
|
|
6331
6813
|
variable: false,
|
|
6332
6814
|
quality: 1,
|
|
6333
|
-
what: '
|
|
6815
|
+
what: 'Element is blink'
|
|
6334
6816
|
},
|
|
6335
6817
|
'QW-WCAG-T30': {
|
|
6336
6818
|
variable: false,
|
|
@@ -6345,18 +6827,25 @@ exports.issues = {
|
|
|
6345
6827
|
wcag: '1.4.2',
|
|
6346
6828
|
weight: 2,
|
|
6347
6829
|
tools: {
|
|
6830
|
+
aslint: {
|
|
6831
|
+
'autoplay-audio-video': {
|
|
6832
|
+
variable: false,
|
|
6833
|
+
quality: 1,
|
|
6834
|
+
what: 'Element plays automatically'
|
|
6835
|
+
}
|
|
6836
|
+
},
|
|
6348
6837
|
axe: {
|
|
6349
6838
|
'no-autoplay-audio': {
|
|
6350
6839
|
variable: false,
|
|
6351
6840
|
quality: 1,
|
|
6352
|
-
what: '
|
|
6841
|
+
what: 'Element plays automatically'
|
|
6353
6842
|
}
|
|
6354
6843
|
},
|
|
6355
6844
|
qualWeb: {
|
|
6356
6845
|
'QW-ACT-R15': {
|
|
6357
6846
|
variable: false,
|
|
6358
6847
|
quality: 1,
|
|
6359
|
-
what: '
|
|
6848
|
+
what: 'Element has audio that plays automatically'
|
|
6360
6849
|
}
|
|
6361
6850
|
}
|
|
6362
6851
|
}
|
|
@@ -6370,7 +6859,7 @@ exports.issues = {
|
|
|
6370
6859
|
'QW-ACT-R49': {
|
|
6371
6860
|
variable: false,
|
|
6372
6861
|
quality: 1,
|
|
6373
|
-
what: '
|
|
6862
|
+
what: 'Element that plays automatically has audio lasting more than 3 seconds'
|
|
6374
6863
|
}
|
|
6375
6864
|
}
|
|
6376
6865
|
}
|
|
@@ -6390,20 +6879,27 @@ exports.issues = {
|
|
|
6390
6879
|
}
|
|
6391
6880
|
},
|
|
6392
6881
|
refresh: {
|
|
6393
|
-
why: '
|
|
6882
|
+
why: 'Document change may surprise a user',
|
|
6394
6883
|
wcag: '2.2.1',
|
|
6395
6884
|
weight: 3,
|
|
6396
6885
|
tools: {
|
|
6886
|
+
aslint: {
|
|
6887
|
+
'no-meta-http-equiv-refresh': {
|
|
6888
|
+
variable: false,
|
|
6889
|
+
quality: 1,
|
|
6890
|
+
what: 'Element forces a page reload'
|
|
6891
|
+
}
|
|
6892
|
+
},
|
|
6397
6893
|
qualWeb: {
|
|
6398
6894
|
'QW-ACT-R4': {
|
|
6399
6895
|
variable: false,
|
|
6400
6896
|
quality: 1,
|
|
6401
|
-
what: '
|
|
6897
|
+
what: 'Element refreshes or redirects with delay'
|
|
6402
6898
|
},
|
|
6403
6899
|
'QW-ACT-R71': {
|
|
6404
6900
|
variable: false,
|
|
6405
6901
|
quality: 1,
|
|
6406
|
-
what: '
|
|
6902
|
+
what: 'Element has a refresh delay (no exception)'
|
|
6407
6903
|
}
|
|
6408
6904
|
}
|
|
6409
6905
|
}
|
|
@@ -6476,6 +6972,13 @@ exports.issues = {
|
|
|
6476
6972
|
wcag: '2.4.3',
|
|
6477
6973
|
weight: 1,
|
|
6478
6974
|
tools: {
|
|
6975
|
+
aslint: {
|
|
6976
|
+
'positive-tabindex': {
|
|
6977
|
+
variable: false,
|
|
6978
|
+
quality: 1,
|
|
6979
|
+
what: 'Element has a positive tabIndex value'
|
|
6980
|
+
}
|
|
6981
|
+
},
|
|
6479
6982
|
axe: {
|
|
6480
6983
|
tabindex: {
|
|
6481
6984
|
variable: false,
|
|
@@ -6520,6 +7023,20 @@ exports.issues = {
|
|
|
6520
7023
|
}
|
|
6521
7024
|
}
|
|
6522
7025
|
},
|
|
7026
|
+
tabIndexExtra: {
|
|
7027
|
+
why: 'Revision risks interfering with navigation by a no-mouse user',
|
|
7028
|
+
wcag: '1.3.1',
|
|
7029
|
+
weight: 1,
|
|
7030
|
+
tools: {
|
|
7031
|
+
aslint: {
|
|
7032
|
+
'misused-tabindex-attribute': {
|
|
7033
|
+
variable: true,
|
|
7034
|
+
quality: 1,
|
|
7035
|
+
what: 'Element has an implicit tabIndex value 0, but also has a tabindex attribute'
|
|
7036
|
+
}
|
|
7037
|
+
}
|
|
7038
|
+
}
|
|
7039
|
+
},
|
|
6523
7040
|
avNoText: {
|
|
6524
7041
|
why: 'User cannot get help reading speech as text',
|
|
6525
7042
|
wcag: '1.2.1',
|
|
@@ -6750,18 +7267,32 @@ exports.issues = {
|
|
|
6750
7267
|
}
|
|
6751
7268
|
}
|
|
6752
7269
|
},
|
|
6753
|
-
|
|
6754
|
-
why: 'User may be unable to see
|
|
7270
|
+
positionSticky: {
|
|
7271
|
+
why: 'User may be unable to see needed content or may be forced to scroll in both dimensions',
|
|
6755
7272
|
wcag: '1.4.10',
|
|
6756
7273
|
weight: 1,
|
|
6757
7274
|
tools: {
|
|
7275
|
+
aslint: {
|
|
7276
|
+
'position-sticky': {
|
|
7277
|
+
variable: false,
|
|
7278
|
+
quality: 1,
|
|
7279
|
+
what: 'Element has a sticky position'
|
|
7280
|
+
}
|
|
7281
|
+
},
|
|
6758
7282
|
htmlcs: {
|
|
6759
7283
|
'AAA.1_4_10.C32,C31,C33,C38,SCR34,G206': {
|
|
6760
7284
|
variable: false,
|
|
6761
7285
|
quality: 1,
|
|
6762
7286
|
what: 'Fixed-position element may force bidirectional scrolling'
|
|
6763
7287
|
}
|
|
6764
|
-
}
|
|
7288
|
+
}
|
|
7289
|
+
}
|
|
7290
|
+
},
|
|
7291
|
+
scrollRisk: {
|
|
7292
|
+
why: 'User may be unable to see all of an item without scrolling in both dimensions',
|
|
7293
|
+
wcag: '1.4.10',
|
|
7294
|
+
weight: 1,
|
|
7295
|
+
tools: {
|
|
6765
7296
|
qualWeb: {
|
|
6766
7297
|
'QW-BP18': {
|
|
6767
7298
|
variable: false,
|
|
@@ -6864,9 +7395,16 @@ exports.issues = {
|
|
|
6864
7395
|
},
|
|
6865
7396
|
submitButton: {
|
|
6866
7397
|
why: 'User cannot easily submit a form',
|
|
6867
|
-
wcag: '2.
|
|
7398
|
+
wcag: '3.2.2',
|
|
6868
7399
|
weight: 3,
|
|
6869
7400
|
tools: {
|
|
7401
|
+
aslint: {
|
|
7402
|
+
'missing-submit-button': {
|
|
7403
|
+
variable: false,
|
|
7404
|
+
quality: 1,
|
|
7405
|
+
what: 'Element is a form but contains no input or button element for submission'
|
|
7406
|
+
}
|
|
7407
|
+
},
|
|
6870
7408
|
htmlcs: {
|
|
6871
7409
|
'AAA.3_2_2.H32.2': {
|
|
6872
7410
|
variable: false,
|
|
@@ -7551,7 +8089,7 @@ exports.issues = {
|
|
|
7551
8089
|
quality: 1,
|
|
7552
8090
|
what: 'longdesc attribute has a value that is not a URL (and is obsolete)'
|
|
7553
8091
|
}
|
|
7554
|
-
}
|
|
8092
|
+
}
|
|
7555
8093
|
}
|
|
7556
8094
|
},
|
|
7557
8095
|
slashParseRisk: {
|