testaro-issues 0.5.2 → 0.7.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/dist/index.mjs CHANGED
@@ -58,6 +58,12 @@ const issuesData = {
58
58
  "wcag": "2.2.2",
59
59
  "weight": 3
60
60
  },
61
+ "animationTriggered": {
62
+ "summary": "interaction triggers unpreventable animation",
63
+ "why": "Motion-sensitive user may suffer harm",
64
+ "wcag": "2.3.3",
65
+ "weight": 3
66
+ },
61
67
  "appletNoText": {
62
68
  "summary": "applet not named",
63
69
  "why": "User cannot get help on how to use a custom item",
@@ -108,7 +114,7 @@ const issuesData = {
108
114
  },
109
115
  "ariaRedundant": {
110
116
  "summary": "aria attribute redundant",
111
- "why": "Document includes unnecessary code",
117
+ "why": "Page includes unnecessary code",
112
118
  "wcag": "4.1.2",
113
119
  "weight": 1
114
120
  },
@@ -144,7 +150,7 @@ const issuesData = {
144
150
  },
145
151
  "atRuleInvalid": {
146
152
  "summary": "invalid at-rule",
147
- "why": "Document cannot be properly displayed in particular contexts",
153
+ "why": "Page cannot be properly displayed in particular contexts",
148
154
  "wcag": "4.1",
149
155
  "weight": 3
150
156
  },
@@ -162,7 +168,7 @@ const issuesData = {
162
168
  },
163
169
  "attributeObsolete": {
164
170
  "summary": "attribute obsolete",
165
- "why": "Document includes obsolete code that the browser may fail to process",
171
+ "why": "Page includes obsolete code that the browser may fail to process",
166
172
  "wcag": "4.1",
167
173
  "weight": 3
168
174
  },
@@ -190,6 +196,12 @@ const issuesData = {
190
196
  "wcag": "1.2.1",
191
197
  "weight": 1
192
198
  },
199
+ "autoAuthBanned": {
200
+ "summary": "login automation prohibited",
201
+ "why": "User cannot get help needed for logging in",
202
+ "wcag": "3.3.8",
203
+ "weight": 4
204
+ },
193
205
  "autocompleteBad": {
194
206
  "summary": "autocomplete invalid",
195
207
  "why": "User cannot get help entering personal information in a form item",
@@ -290,7 +302,7 @@ const issuesData = {
290
302
  "boxInvisibleRisk": {
291
303
  "summary": "border or outline invisible?",
292
304
  "why": "User cannot perceive the boundary of an item",
293
- "wcag": "2.5.8",
305
+ "wcag": "1.4.11",
294
306
  "weight": 1
295
307
  },
296
308
  "boxSizeAbsolute": {
@@ -299,15 +311,21 @@ const issuesData = {
299
311
  "wcag": "1.4.4",
300
312
  "weight": 3
301
313
  },
314
+ "brailleOnly": {
315
+ "summary": "element has only a Braille name or role",
316
+ "why": "User cannot get help understanding an item",
317
+ "wcag": "4.1.2",
318
+ "weight": 4
319
+ },
302
320
  "browserSupportRisk": {
303
321
  "summary": "inputmode attribute",
304
- "why": "Document may include code that the browser cannot process",
322
+ "why": "Page may include code that the browser cannot process",
305
323
  "wcag": "4.1",
306
324
  "weight": 1
307
325
  },
308
326
  "buttonAlt": {
309
327
  "summary": "button has alt",
310
- "why": "User cannot get help explaing a button",
328
+ "why": "User cannot get help explaining a button",
311
329
  "wcag": "4.1.2",
312
330
  "weight": 4
313
331
  },
@@ -357,7 +375,7 @@ const issuesData = {
357
375
  "clickOnly": {
358
376
  "summary": "name dubiously mouse-specific",
359
377
  "why": "User may misunderstand how to activate a link",
360
- "wcag": "2.4.4",
378
+ "wcag": "2.1.1",
361
379
  "weight": 1
362
380
  },
363
381
  "colorNamedRisk": {
@@ -387,7 +405,7 @@ const issuesData = {
387
405
  "contentHidden": {
388
406
  "summary": "page hidden",
389
407
  "why": "User cannot get the page content",
390
- "wcag": "2.4.7",
408
+ "wcag": "1",
391
409
  "weight": 4,
392
410
  "max": 1
393
411
  },
@@ -441,7 +459,7 @@ const issuesData = {
441
459
  },
442
460
  "cssInvalid": {
443
461
  "summary": "CSS invalid",
444
- "why": "Document cannot be properly displayed",
462
+ "why": "Page cannot be properly displayed",
445
463
  "wcag": "4.1",
446
464
  "weight": 3
447
465
  },
@@ -530,9 +548,9 @@ const issuesData = {
530
548
  "weight": 1
531
549
  },
532
550
  "directionRisk": {
533
- "summary": "dubious direction",
534
- "why": "Item may behave incorrectly",
535
- "wcag": "1.3.2",
551
+ "summary": "text direction wrong?",
552
+ "why": "Helper may misread text to the user",
553
+ "wcag": "4.1",
536
554
  "weight": 1
537
555
  },
538
556
  "divInTable": {
@@ -551,21 +569,21 @@ const issuesData = {
551
569
  "docTypeBad": {
552
570
  "summary": "DOCTYPE invalid",
553
571
  "why": "Browser processes the page improperly",
554
- "wcag": "1.3.1",
572
+ "wcag": "4.1",
555
573
  "weight": 3,
556
574
  "max": 1
557
575
  },
558
576
  "docTypeMisplaced": {
559
577
  "summary": "DOCTYPE in invalid location",
560
578
  "why": "Browser processes the page improperly",
561
- "wcag": "1.3.1",
579
+ "wcag": "4.1",
562
580
  "weight": 4,
563
581
  "max": 1
564
582
  },
565
583
  "docTypeMissing": {
566
584
  "summary": "DOCTYPE missing",
567
585
  "why": "Browser processes the page improperly",
568
- "wcag": "1.3.1",
586
+ "wcag": "4.1",
569
587
  "weight": 4,
570
588
  "max": 1
571
589
  },
@@ -575,16 +593,22 @@ const issuesData = {
575
593
  "wcag": "1.3.6",
576
594
  "weight": 3
577
595
  },
596
+ "dragAlt": {
597
+ "summary": "no single-pointer alternative to dragging",
598
+ "why": "Click-only user cannot perform an operation",
599
+ "wcag": "2.5.7",
600
+ "weight": 4
601
+ },
578
602
  "duplicateAttribute": {
579
603
  "summary": "duplicate attribute",
580
604
  "why": "Browser processes the page improperly",
581
- "wcag": "4.1.1",
605
+ "wcag": "4.1",
582
606
  "weight": 2
583
607
  },
584
608
  "duplicateID": {
585
609
  "summary": "ID not unique",
586
610
  "why": "User may be pointed to the wrong item",
587
- "wcag": "4.1.1",
611
+ "wcag": "4.1",
588
612
  "weight": 4
589
613
  },
590
614
  "editableHow": {
@@ -601,8 +625,8 @@ const issuesData = {
601
625
  },
602
626
  "elementClosure": {
603
627
  "summary": "element closure invalid",
604
- "why": "Document contains invalid code",
605
- "wcag": "4.1.1",
628
+ "why": "Page contains invalid code",
629
+ "wcag": "4.1",
606
630
  "weight": 3
607
631
  },
608
632
  "elementLanguageBad": {
@@ -613,7 +637,7 @@ const issuesData = {
613
637
  },
614
638
  "elementObsolete": {
615
639
  "summary": "element obsolete",
616
- "why": "Document includes obsolete code that the browser may fail to process",
640
+ "why": "Page includes obsolete code that the browser may fail to process",
617
641
  "wcag": "4.1",
618
642
  "weight": 3
619
643
  },
@@ -626,7 +650,7 @@ const issuesData = {
626
650
  "encodingBad": {
627
651
  "summary": "text not Unicode-compliant",
628
652
  "why": "User cannot read all of the text",
629
- "wcag": "3.1.3",
653
+ "wcag": "4.1",
630
654
  "weight": 4
631
655
  },
632
656
  "encodingMisdeclared": {
@@ -663,7 +687,7 @@ const issuesData = {
663
687
  },
664
688
  "fatalError": {
665
689
  "summary": "fatal error",
666
- "why": "Document prevents testing for accessibility",
690
+ "why": "Page prevents testing for accessibility",
667
691
  "wcag": "4.1",
668
692
  "weight": 4,
669
693
  "max": 1
@@ -688,7 +712,7 @@ const issuesData = {
688
712
  },
689
713
  "flash": {
690
714
  "summary": "flash content",
691
- "why": "Document includes code that may not work and may jeopardize user security",
715
+ "why": "Page includes code that may not work and may jeopardize user security",
692
716
  "wcag": "4.1",
693
717
  "weight": 1,
694
718
  "max": 1
@@ -723,6 +747,12 @@ const issuesData = {
723
747
  "wcag": "4.1.2",
724
748
  "weight": 3
725
749
  },
750
+ "focusCovered": {
751
+ "summary": "focused element covered",
752
+ "why": "User cannot see which item will be operated on",
753
+ "wcag": "2.4.11",
754
+ "weight": 4
755
+ },
726
756
  "focusDiscrepancy": {
727
757
  "summary": "Tab-focusable elements wrong",
728
758
  "why": "Item selections by a keyboard-only user are useless or impossible",
@@ -753,6 +783,12 @@ const issuesData = {
753
783
  "wcag": "2.4.7",
754
784
  "weight": 1
755
785
  },
786
+ "focusSurprise": {
787
+ "summary": "autofocus unexpected",
788
+ "why": "Unexpected navigation to an item confuses the user",
789
+ "wcag": "3.2.5",
790
+ "weight": 2
791
+ },
756
792
  "fontSizeAbsolute": {
757
793
  "summary": "font size absolute",
758
794
  "why": "User cannot adjust the text size for readability",
@@ -816,7 +852,7 @@ const issuesData = {
816
852
  },
817
853
  "frameSandboxRisk": {
818
854
  "summary": "iframe sandbox attributes risky",
819
- "why": "Document may be unsafe to use",
855
+ "why": "Page may be unsafe to use",
820
856
  "wcag": "4.1",
821
857
  "weight": 2
822
858
  },
@@ -861,7 +897,7 @@ const issuesData = {
861
897
  "headElementsBad": {
862
898
  "summary": "element in head invalid",
863
899
  "why": "Browser processes the page improperly",
864
- "wcag": "4.1.1",
900
+ "wcag": "4.1",
865
901
  "weight": 3
866
902
  },
867
903
  "headingConfusion": {
@@ -928,7 +964,7 @@ const issuesData = {
928
964
  "hideFailureRisk": {
929
965
  "summary": "false aria-hidden value risky",
930
966
  "why": "User may be misled by erroneously hidden or revealed page content",
931
- "wcag": "2.4.6",
967
+ "wcag": "1.3.1",
932
968
  "weight": 1
933
969
  },
934
970
  "horizontalSpacingFrozen": {
@@ -940,7 +976,7 @@ const issuesData = {
940
976
  "hoverIndication": {
941
977
  "summary": "hover indication poor",
942
978
  "why": "User cannot explore the page reliably with a mouse",
943
- "wcag": "3.3.2",
979
+ "wcag": "2.4",
944
980
  "weight": 3
945
981
  },
946
982
  "hoverSurprise": {
@@ -961,6 +997,12 @@ const issuesData = {
961
997
  "wcag": "1.3.1",
962
998
  "weight": 4
963
999
  },
1000
+ "iframeConfusion": {
1001
+ "summary": "different iframes named identically",
1002
+ "why": "User gets incorrect help about parts of a page",
1003
+ "wcag": "4.1.2",
1004
+ "weight": 1
1005
+ },
964
1006
  "iframeTitleBad": {
965
1007
  "summary": "iframe not named",
966
1008
  "why": "User cannot get help on the topic of an embedded page",
@@ -1009,6 +1051,12 @@ const issuesData = {
1009
1051
  "wcag": "1.1.1",
1010
1052
  "weight": 4
1011
1053
  },
1054
+ "imageMapServerSide": {
1055
+ "summary": "image map is server-side",
1056
+ "why": "Keyboard-only user cannot choose a region of an image",
1057
+ "wcag": "2.1.1",
1058
+ "weight": 4
1059
+ },
1012
1060
  "imageNoText": {
1013
1061
  "summary": "image not named",
1014
1062
  "why": "User cannot get help to know what is in an image",
@@ -1093,6 +1141,18 @@ const issuesData = {
1093
1141
  "wcag": "4.1.2",
1094
1142
  "weight": 3
1095
1143
  },
1144
+ "inputRepeat": {
1145
+ "summary": "form requires non-automatic duplicate re-entry",
1146
+ "why": "Form completion is slower and more difficult than necessary",
1147
+ "wcag": "3.3.7",
1148
+ "weight": 4
1149
+ },
1150
+ "inputSurprise": {
1151
+ "summary": "operating on an input unexpectedly alters the page",
1152
+ "why": "User cannot predict the effect of using a form",
1153
+ "wcag": "3.2.2",
1154
+ "weight": 4
1155
+ },
1096
1156
  "internalLinkBroken": {
1097
1157
  "summary": "internal link broken",
1098
1158
  "why": "User cannot reach a promised page location",
@@ -1149,7 +1209,7 @@ const issuesData = {
1149
1209
  },
1150
1210
  "labeledHidden": {
1151
1211
  "summary": "control hidden but labeled",
1152
- "why": "Document includes unnecessary code",
1212
+ "why": "Page includes unnecessary code",
1153
1213
  "wcag": "1.3.1",
1154
1214
  "weight": 1
1155
1215
  },
@@ -1257,13 +1317,13 @@ const issuesData = {
1257
1317
  },
1258
1318
  "linkElementBad": {
1259
1319
  "summary": "link element invalid",
1260
- "why": "Document fails to get a needed external resource",
1320
+ "why": "Page fails to get a needed external resource",
1261
1321
  "wcag": "1.3.1",
1262
1322
  "weight": 4
1263
1323
  },
1264
1324
  "linkElementMisplaced": {
1265
1325
  "summary": "link element misplaced",
1266
- "why": "Document fails to get a needed external resource",
1326
+ "why": "Page fails to get a needed external resource",
1267
1327
  "wcag": "1.3.1",
1268
1328
  "weight": 4
1269
1329
  },
@@ -1458,8 +1518,8 @@ const issuesData = {
1458
1518
  },
1459
1519
  "nestingBad": {
1460
1520
  "summary": "nesting invalid",
1461
- "why": "Document contains invalid code",
1462
- "wcag": "4.1.1",
1521
+ "why": "Page contains invalid code",
1522
+ "wcag": "4.1",
1463
1523
  "weight": 3
1464
1524
  },
1465
1525
  "newTabSurprise": {
@@ -1483,7 +1543,7 @@ const issuesData = {
1483
1543
  },
1484
1544
  "nonElement": {
1485
1545
  "summary": "element unknown",
1486
- "why": "Document includes an unknown element that the browser cannot process",
1546
+ "why": "Page includes an unknown element that the browser cannot process",
1487
1547
  "wcag": "4.1",
1488
1548
  "weight": 4
1489
1549
  },
@@ -1507,8 +1567,8 @@ const issuesData = {
1507
1567
  },
1508
1568
  "nonWebLink": {
1509
1569
  "summary": "link to non-web resource",
1510
- "why": "Document points to harder-to-use resources",
1511
- "wcag": "1.3.3",
1570
+ "why": "Page points to harder-to-use resources",
1571
+ "wcag": "4.1",
1512
1572
  "weight": 1
1513
1573
  },
1514
1574
  "noOptionFocusable": {
@@ -1532,7 +1592,7 @@ const issuesData = {
1532
1592
  "objectAudioRisk": {
1533
1593
  "summary": "non-audio element plays audio?",
1534
1594
  "why": "User may get inadequate help consuming audio content",
1535
- "wcag": "1.1.1",
1595
+ "wcag": "3.2",
1536
1596
  "weight": 1
1537
1597
  },
1538
1598
  "objectBlurKeyboardRisk": {
@@ -1555,10 +1615,16 @@ const issuesData = {
1555
1615
  },
1556
1616
  "obsolete": {
1557
1617
  "summary": "code obsolete",
1558
- "why": "Document contains code that is no longer standard",
1618
+ "why": "Page contains code that is no longer standard",
1559
1619
  "wcag": "4.1",
1560
1620
  "weight": 3
1561
1621
  },
1622
+ "obsoleteMotion": {
1623
+ "summary": "obsolete element creates non-stoppable motion",
1624
+ "why": "Motion-sensitive user suffers harm",
1625
+ "wcag": "2.2.2",
1626
+ "weight": 4
1627
+ },
1562
1628
  "optionNoText": {
1563
1629
  "summary": "option not named",
1564
1630
  "why": "User cannot get help to understand an option",
@@ -1621,7 +1687,7 @@ const issuesData = {
1621
1687
  "pageTitleBad": {
1622
1688
  "summary": "page title invalid",
1623
1689
  "why": "Browser processes the page improperly",
1624
- "wcag": "1.3.1",
1690
+ "wcag": "2.4.2",
1625
1691
  "weight": 3,
1626
1692
  "max": 1
1627
1693
  },
@@ -1745,9 +1811,15 @@ const issuesData = {
1745
1811
  "wcag": "3.2.4",
1746
1812
  "weight": 1
1747
1813
  },
1814
+ "reflow": {
1815
+ "summary": "non-reflowing content forces 2D scrolling",
1816
+ "why": "Reading content is slow and difficult",
1817
+ "wcag": "1.4.10",
1818
+ "weight": 4
1819
+ },
1748
1820
  "refresh": {
1749
1821
  "summary": "element reloads or redirects",
1750
- "why": "Document change may surprise a user",
1822
+ "why": "Page change may surprise a user",
1751
1823
  "wcag": "2.2.1",
1752
1824
  "weight": 3
1753
1825
  },
@@ -1820,7 +1892,7 @@ const issuesData = {
1820
1892
  },
1821
1893
  "roleRedundant": {
1822
1894
  "summary": "role redundant",
1823
- "why": "Document includes unnecessary code",
1895
+ "why": "Page includes unnecessary code",
1824
1896
  "wcag": "4.1.2",
1825
1897
  "weight": 1
1826
1898
  },
@@ -1917,7 +1989,7 @@ const issuesData = {
1917
1989
  },
1918
1990
  "specRulesScriptBad": {
1919
1991
  "summary": "speculation rules script element invalid",
1920
- "why": "Document navigation performs poorly",
1992
+ "why": "Page navigation performs poorly",
1921
1993
  "wcag": "1.3.1",
1922
1994
  "weight": 1
1923
1995
  },
@@ -2090,6 +2162,12 @@ const issuesData = {
2090
2162
  "wcag": "2.1.1",
2091
2163
  "weight": 2
2092
2164
  },
2165
+ "tabOrderBad": {
2166
+ "summary": "keyboard navigation sequence wrong",
2167
+ "why": "Sequential navigation moves in a meaningless or useless order",
2168
+ "wcag": "2.4.3",
2169
+ "weight": 3
2170
+ },
2093
2171
  "tabularTableless": {
2094
2172
  "summary": "table not marked as such",
2095
2173
  "why": "Helper misinforms a user about whether items are cells of a table",
@@ -2123,7 +2201,7 @@ const issuesData = {
2123
2201
  "textAreaNoText": {
2124
2202
  "summary": "text area not named",
2125
2203
  "why": "User cannot get help on what information to enter in a form item",
2126
- "wcag": "1.3.1",
2204
+ "wcag": "4.1.2",
2127
2205
  "weight": 4
2128
2206
  },
2129
2207
  "textContentBad": {
@@ -2159,13 +2237,13 @@ const issuesData = {
2159
2237
  "titleLong": {
2160
2238
  "summary": "title long",
2161
2239
  "why": "Hovering makes an overly verbose explanation pop up",
2162
- "wcag": "3.1.5",
2240
+ "wcag": "1.3.1",
2163
2241
  "weight": 2
2164
2242
  },
2165
2243
  "titleNotText": {
2166
2244
  "summary": "title contains ASCII art",
2167
2245
  "why": "Hovering makes a hard-to-understand explanation pop up",
2168
- "wcag": "3.1.5",
2246
+ "wcag": "1.3.1",
2169
2247
  "weight": 2
2170
2248
  },
2171
2249
  "titleRedundant": {
@@ -2176,13 +2254,13 @@ const issuesData = {
2176
2254
  },
2177
2255
  "typeBad": {
2178
2256
  "summary": "type invalid",
2179
- "why": "Document styles are at risk of corruption",
2257
+ "why": "Page styles are at risk of corruption",
2180
2258
  "wcag": "1.3.1",
2181
2259
  "weight": 4
2182
2260
  },
2183
2261
  "typeRedundant": {
2184
2262
  "summary": "type redundant",
2185
- "why": "Document includes unnecessary code",
2263
+ "why": "Page includes unnecessary code",
2186
2264
  "wcag": "1.3.1",
2187
2265
  "weight": 1
2188
2266
  },
@@ -2213,7 +2291,7 @@ const issuesData = {
2213
2291
  "videoNoAudioDescription": {
2214
2292
  "summary": "video audio description missing",
2215
2293
  "why": "User cannot get help hearing video content as speech",
2216
- "wcag": "1.2.1",
2294
+ "wcag": "1.2.5",
2217
2295
  "weight": 4
2218
2296
  },
2219
2297
  "videoNoAudioTrack": {
@@ -2223,7 +2301,7 @@ const issuesData = {
2223
2301
  "weight": 4
2224
2302
  },
2225
2303
  "videoNoText": {
2226
- "summary": "video not named",
2304
+ "summary": "no video text alternative",
2227
2305
  "why": "User cannot get help reading video content as text",
2228
2306
  "wcag": "1.2.2",
2229
2307
  "weight": 4
@@ -2231,7 +2309,7 @@ const issuesData = {
2231
2309
  "videoNoTranscript": {
2232
2310
  "summary": "video transcript missing",
2233
2311
  "why": "User cannot get help reading video content as text",
2234
- "wcag": "1.2.2",
2312
+ "wcag": "1.2.1",
2235
2313
  "weight": 4
2236
2314
  },
2237
2315
  "visibleBulk": {
@@ -2247,6 +2325,12 @@ const issuesData = {
2247
2325
  "wcag": "2.5.3",
2248
2326
  "weight": 3
2249
2327
  },
2328
+ "visualSequenceDeviant": {
2329
+ "summary": "visual and programmatic content sequences differ",
2330
+ "why": "Sequence of page items confuses the user",
2331
+ "wcag": "1.3.2",
2332
+ "weight": 2
2333
+ },
2250
2334
  "zIndexNotZero": {
2251
2335
  "summary": "z-index not zero",
2252
2336
  "why": "User cannot predict the effect of clicking",
@@ -2459,7 +2543,7 @@ const rulesData = {
2459
2543
  "r1": {
2460
2544
  "issueID": "pageTitle",
2461
2545
  "quality": 1,
2462
- "what": "Document has no valid title element"
2546
+ "what": "Page has no valid title element"
2463
2547
  },
2464
2548
  "r53": {
2465
2549
  "issueID": "headingLevelSkip",
@@ -2469,7 +2553,7 @@ const rulesData = {
2469
2553
  "r59": {
2470
2554
  "issueID": "headingNone",
2471
2555
  "quality": 1,
2472
- "what": "Document has no headings"
2556
+ "what": "Page has no headings"
2473
2557
  },
2474
2558
  "r61": {
2475
2559
  "issueID": "h1Not1st",
@@ -2662,13 +2746,13 @@ const rulesData = {
2662
2746
  "motion_actuation": {
2663
2747
  "issueID": "ignorable",
2664
2748
  "quality": 0,
2665
- "what": "Document listens for device motion or rotation",
2749
+ "what": "Page listens for device motion or rotation",
2666
2750
  "whyIgnore": "speculative"
2667
2751
  },
2668
2752
  "overlay": {
2669
2753
  "issueID": "ignorable",
2670
2754
  "quality": 0,
2671
- "what": "Document contains a commercial overlay modifier that may fail or invalidate test results",
2755
+ "what": "Page contains a commercial overlay modifier that may fail or invalidate test results",
2672
2756
  "whyIgnore": "unreliable"
2673
2757
  },
2674
2758
  "object_missing_body": {
@@ -3017,7 +3101,7 @@ const rulesData = {
3017
3101
  "no_headings": {
3018
3102
  "issueID": "headingNone",
3019
3103
  "quality": 1,
3020
- "what": "Document has no headings"
3104
+ "what": "Page has no headings"
3021
3105
  },
3022
3106
  "h1_must_be": {
3023
3107
  "issueID": "h1Not1",
@@ -3117,7 +3201,7 @@ const rulesData = {
3117
3201
  "main_element_only_one": {
3118
3202
  "issueID": "mainNot1",
3119
3203
  "quality": 1,
3120
- "what": "Document has more than 1 main landmark"
3204
+ "what": "Page has more than 1 main landmark"
3121
3205
  },
3122
3206
  "contentinfo_landmark_only_one": {
3123
3207
  "issueID": "footerNot1",
@@ -3277,7 +3361,7 @@ const rulesData = {
3277
3361
  "flash_content": {
3278
3362
  "issueID": "flash",
3279
3363
  "quality": 1,
3280
- "what": "Document contains Adobe Flash content"
3364
+ "what": "Page contains Adobe Flash content"
3281
3365
  },
3282
3366
  "obsolete_html_attributes": {
3283
3367
  "issueID": "attributeObsolete",
@@ -3297,7 +3381,7 @@ const rulesData = {
3297
3381
  "captcha_google": {
3298
3382
  "issueID": "captcha2",
3299
3383
  "quality": 1,
3300
- "what": "Document employs Google CAPTCHA version 2"
3384
+ "what": "Page employs Google CAPTCHA version 2"
3301
3385
  }
3302
3386
  },
3303
3387
  "variable": {}
@@ -3530,7 +3614,7 @@ const rulesData = {
3530
3614
  "document-title": {
3531
3615
  "issueID": "pageTitle",
3532
3616
  "quality": 1,
3533
- "what": "Document contains no title element"
3617
+ "what": "Page contains no title element"
3534
3618
  },
3535
3619
  "heading-order": {
3536
3620
  "issueID": "headingLevelSkip",
@@ -3540,7 +3624,7 @@ const rulesData = {
3540
3624
  "page-has-heading-one": {
3541
3625
  "issueID": "h1Not1",
3542
3626
  "quality": 1,
3543
- "what": "Document contains no level-one heading"
3627
+ "what": "Page contains no level-one heading"
3544
3628
  },
3545
3629
  "p-as-heading": {
3546
3630
  "issueID": "pseudoHeadingRisk",
@@ -4531,12 +4615,12 @@ const rulesData = {
4531
4615
  "E-AAA.2_4_2.H25.1.NoTitleEl": {
4532
4616
  "issueID": "pageTitle",
4533
4617
  "quality": 1,
4534
- "what": "Document head element contains no title element"
4618
+ "what": "Page head element contains no title element"
4535
4619
  },
4536
4620
  "E-AAA.2_4_2.H25.1.EmptyTitle": {
4537
4621
  "issueID": "pageTitle",
4538
4622
  "quality": 1,
4539
- "what": "Document head element contains an empty title element"
4623
+ "what": "Page head element contains an empty title element"
4540
4624
  },
4541
4625
  "E-AAA.1_3_1_AAA.G141": {
4542
4626
  "issueID": "headingStructure",
@@ -8548,723 +8632,1568 @@ const rulesData = {
8548
8632
  }
8549
8633
  }
8550
8634
  },
8551
- "qualWeb": {
8635
+ "pour": {
8552
8636
  "invariant": {
8553
- "QW-ACT-R10": {
8554
- "issueID": "ignorable",
8637
+ "document-title": {
8638
+ "issueID": "pageTitle",
8555
8639
  "quality": 1,
8556
- "what": "iframe elements with identical accessible names have different purposes (on invisible elements)",
8557
- "whyIgnore": "invalid"
8640
+ "what": "Page has no title element"
8558
8641
  },
8559
- "QW-ACT-R13": {
8560
- "issueID": "ignorable",
8642
+ "html-lang": {
8643
+ "issueID": "pageLanguage",
8561
8644
  "quality": 1,
8562
- "what": "Element with aria-hidden has focusable content",
8563
- "whyIgnore": "invalid"
8645
+ "what": "html element has no lang attribute or an invalid one"
8564
8646
  },
8565
- "QW-ACT-R41": {
8566
- "issueID": "ignorable",
8647
+ "valid-lang-parts": {
8648
+ "issueID": "languageChange",
8567
8649
  "quality": 1,
8568
- "what": "Error message describes no invalid form field value",
8569
- "whyIgnore": "speculative"
8650
+ "what": "lang attribute on an element has an invalid value"
8570
8651
  },
8571
- "QW-ACT-R52": {
8572
- "issueID": "ignorable",
8573
- "quality": 0,
8574
- "what": "video element visual-only content has no description track (description tracks and this ACT rule have been deprecated)",
8575
- "whyIgnore": "irrelevant"
8652
+ "image-alt": {
8653
+ "issueID": "imageNoText",
8654
+ "quality": 1,
8655
+ "what": "Image has no text alternative"
8576
8656
  },
8577
- "QW-ACT-R57": {
8578
- "issueID": "ignorable",
8579
- "quality": 0,
8580
- "what": "video element visual content has no description track (description tracks and this ACT rule have been deprecated)",
8581
- "whyIgnore": "irrelevant"
8657
+ "svg-img-alt": {
8658
+ "issueID": "svgImageNoText",
8659
+ "quality": 1,
8660
+ "what": "SVG element has no accessible name"
8582
8661
  },
8583
- "QW-ACT-R62": {
8584
- "issueID": "ignorable",
8585
- "quality": 0,
8586
- "what": "Element in the sequential focus order may have no visible focus",
8587
- "whyIgnore": "speculative"
8662
+ "button-name": {
8663
+ "issueID": "buttonNoText",
8664
+ "quality": 1,
8665
+ "what": "Button has no accessible name"
8588
8666
  },
8589
- "QW-ACT-R63": {
8590
- "issueID": "ignorable",
8591
- "quality": 0,
8592
- "what": "Document has no landmark with non-repeated content",
8593
- "whyIgnore": "invalid"
8667
+ "link-name": {
8668
+ "issueID": "linkNoText",
8669
+ "quality": 1,
8670
+ "what": "Link has no accessible name"
8594
8671
  },
8595
- "QW-ACT-R64": {
8596
- "issueID": "ignorable",
8597
- "quality": 0,
8598
- "what": "Document has no heading for non-repeated content",
8599
- "whyIgnore": "invalid"
8672
+ "link-text-generic": {
8673
+ "issueID": "linkVaguenessRisk",
8674
+ "quality": 1,
8675
+ "what": "Link text does not describe the destination"
8600
8676
  },
8601
- "QW-ACT-R73": {
8602
- "issueID": "ignorable",
8603
- "quality": 0,
8604
- "what": "Block of repeated content is not collapsible",
8605
- "whyIgnore": "invalid"
8677
+ "link-text-generic-only": {
8678
+ "issueID": "linkVaguenessRisk",
8679
+ "quality": 1,
8680
+ "what": "Link text alone does not identify its destination"
8606
8681
  },
8607
- "QW-ACT-R74": {
8608
- "issueID": "ignorable",
8609
- "quality": 0,
8610
- "what": "Document has no instrument to move focus to non-repeated content",
8611
- "whyIgnore": "invalid"
8682
+ "form-label": {
8683
+ "issueID": "controlNoText",
8684
+ "quality": 1,
8685
+ "what": "Form control has no label"
8612
8686
  },
8613
- "QW-ACT-R75": {
8614
- "issueID": "ignorable",
8615
- "quality": 0,
8616
- "what": "Blocks of repeated content cannot be bypassed",
8617
- "whyIgnore": "invalid"
8687
+ "autocomplete-valid": {
8688
+ "issueID": "autocompleteBad",
8689
+ "quality": 1,
8690
+ "what": "autocomplete attribute has invalid tokens"
8618
8691
  },
8619
- "QW-BP1": {
8620
- "issueID": "ignorable",
8621
- "quality": 0,
8622
- "what": "h1-h6 may fail to be used to identify headings",
8623
- "whyIgnore": "speculative"
8692
+ "orientation-lock": {
8693
+ "issueID": "cssBansPageRotate",
8694
+ "quality": 1,
8695
+ "what": "CSS locks content to one display orientation"
8624
8696
  },
8625
- "QW-BP2": {
8626
- "issueID": "ignorable",
8697
+ "meta-viewport": {
8698
+ "issueID": "metaBansZoom",
8627
8699
  "quality": 1,
8628
- "what": "Image text alternative is not concise",
8629
- "whyIgnore": "invalid"
8700
+ "what": "Viewport prevents user zoom"
8630
8701
  },
8631
- "QW-BP17": {
8632
- "issueID": "ignorable",
8702
+ "color-contrast": {
8703
+ "issueID": "contrastAA",
8633
8704
  "quality": 1,
8634
- "what": "No link at the beginning of a block of repeated content goes to the end of the block",
8635
- "whyIgnore": "invalid"
8705
+ "what": "Text has insufficient contrast against its background"
8636
8706
  },
8637
- "QW-BP20": {
8638
- "issueID": "ignorable",
8707
+ "frame-title": {
8708
+ "issueID": "iframeTitleBad",
8639
8709
  "quality": 1,
8640
- "what": "Document has more than 1 banner landmark (counts hidden elements)",
8641
- "whyIgnore": "invalid"
8710
+ "what": "Frame has no accessible name"
8642
8711
  },
8643
- "QW-BP22": {
8644
- "issueID": "ignorable",
8712
+ "aria-valid-refs": {
8713
+ "issueID": "ariaReferenceBad",
8645
8714
  "quality": 1,
8646
- "what": "Document has more than 1 element with a main role",
8647
- "whyIgnore": "invalid"
8715
+ "what": "ARIA id refers to no element"
8648
8716
  },
8649
- "QW-BP23": {
8650
- "issueID": "ignorable",
8651
- "quality": .1,
8652
- "what": "Element is not in a true list",
8653
- "whyIgnore": "invalid"
8717
+ "valid-role": {
8718
+ "issueID": "roleBad",
8719
+ "quality": 1,
8720
+ "what": "Element has an invalid role"
8654
8721
  },
8655
- "QW-BP24": {
8656
- "issueID": "ignorable",
8722
+ "aria-hidden-focus": {
8723
+ "issueID": "focusableHidden",
8657
8724
  "quality": 1,
8658
- "what": "ul or ol element has a child other than li, script, or template",
8659
- "whyIgnore": "invalid"
8725
+ "what": "Element has an aria-hidden attribute but is or has a focusable element"
8660
8726
  },
8661
- "QW-BP28": {
8662
- "issueID": "ignorable",
8727
+ "list-structure": {
8728
+ "issueID": "listChild",
8663
8729
  "quality": 1,
8664
- "what": "h1 element missing or used more than once",
8665
- "whyIgnore": "invalid"
8730
+ "what": "List contains a child other than a list item"
8666
8731
  },
8667
- "QW-BP29": {
8668
- "issueID": "ignorable",
8669
- "quality": 0,
8670
- "what": "lang and xml:lang attribute of html element differ",
8671
- "whyIgnore": "invalid"
8732
+ "nested-interactive": {
8733
+ "issueID": "activeEmbedding",
8734
+ "quality": 1,
8735
+ "what": "Interactive control contains another interactive control"
8672
8736
  },
8673
- "QW-WCAG-T4": {
8674
- "issueID": "ignorable",
8675
- "quality": 0,
8676
- "what": "summary attribute is not used to give an overview of a data table",
8677
- "whyIgnore": "invalid"
8737
+ "bypass-blocks": {
8738
+ "issueID": "skipRepeatedContent",
8739
+ "quality": 1,
8740
+ "what": "Page has no way to bypass repeated blocks"
8678
8741
  },
8679
- "QW-WCAG-T8": {
8680
- "issueID": "ignorable",
8742
+ "target-size": {
8743
+ "issueID": "targetTiny",
8681
8744
  "quality": 1,
8682
- "what": "Text alternative is suspect",
8683
- "whyIgnore": "invalid"
8745
+ "what": "Interactive target is smaller than 24 CSS pixels"
8684
8746
  },
8685
- "QW-WCAG-T9": {
8686
- "issueID": "ignorable",
8687
- "quality": 0,
8688
- "what": "Page may fail to be organized using headings",
8689
- "whyIgnore": "speculative"
8747
+ "audio-control": {
8748
+ "issueID": "autoplay",
8749
+ "quality": 1,
8750
+ "what": "Auto-playing audio cannot be stopped or muted"
8690
8751
  },
8691
- "QW-WCAG-T15": {
8692
- "issueID": "ignorable",
8693
- "quality": 0,
8694
- "what": "link element may be used for navigation but not in the head",
8695
- "whyIgnore": "invalid"
8752
+ "pause-stop-hide": {
8753
+ "issueID": "animationLong",
8754
+ "quality": 1,
8755
+ "what": "Moving content cannot be paused"
8696
8756
  },
8697
- "QW-WCAG-T20": {
8698
- "issueID": "ignorable",
8699
- "quality": 0,
8700
- "what": "Link title may fail to describe the link correctly",
8701
- "whyIgnore": "speculative"
8757
+ "media-captions": {
8758
+ "issueID": "videoNoText",
8759
+ "quality": 1,
8760
+ "what": "Video has no captions"
8702
8761
  },
8703
- "QW-WCAG-T23": {
8704
- "issueID": "ignorable",
8705
- "quality": 0,
8706
- "what": "No link at the top of the page goes directly to the main content area",
8707
- "whyIgnore": "invalid"
8762
+ "aria-attr-valid": {
8763
+ "issueID": "ariaAttributeBad",
8764
+ "quality": 1,
8765
+ "what": "ARIA attribute gives the element an invalid name or value"
8708
8766
  },
8709
- "QW-WCAG-T24": {
8710
- "issueID": "ignorable",
8711
- "quality": .5,
8712
- "what": "Script removes the focus when focus is received",
8713
- "whyIgnore": "invalid"
8767
+ "aria-allowed-attr": {
8768
+ "issueID": "ariaAttributeBad",
8769
+ "quality": 1,
8770
+ "what": "ARIA attribute is not allowed for the role of its element"
8714
8771
  },
8715
- "QW-WCAG-T28": {
8716
- "issueID": "ignorable",
8717
- "quality": .8,
8718
- "what": "Font size set to an absolute unit value",
8719
- "whyIgnore": "invalid"
8772
+ "aria-field-name": {
8773
+ "issueID": "inputNoText",
8774
+ "quality": 1,
8775
+ "what": "ARIA field or value widget has no accessible name"
8720
8776
  },
8721
- "QW-WCAG-T31": {
8722
- "issueID": "ignorable",
8777
+ "aria-label-misuse": {
8778
+ "issueID": "nonLabelableRole",
8723
8779
  "quality": 1,
8724
- "what": "Foreground or background color is specified but not both (on invisible elements)",
8725
- "whyIgnore": "invalid"
8780
+ "what": "Plain container has an aria-label or aria-labelledby attribute"
8726
8781
  },
8727
- "QW-WCAG-T32": {
8728
- "issueID": "ignorable",
8782
+ "role-required-aria": {
8783
+ "issueID": "ariaMissing",
8729
8784
  "quality": 1,
8730
- "what": "ol, ul or dl may fail to be used for a list or group of links",
8731
- "whyIgnore": "speculative"
8785
+ "what": "Role is missing a required state or property attribute"
8732
8786
  },
8733
- "QW-WCAG-T35": {
8734
- "issueID": "ignorable",
8787
+ "label-for-valid": {
8788
+ "issueID": "labelForBad",
8735
8789
  "quality": 1,
8736
- "what": "Several elements have this id attribute value",
8737
- "whyIgnore": "invalid"
8790
+ "what": "for attribute of a label refers to no form control"
8738
8791
  },
8739
- "QW-ACT-R18": {
8740
- "issueID": "duplicateID",
8792
+ "listitem-parent": {
8793
+ "issueID": "listItemOrphan",
8741
8794
  "quality": 1,
8742
- "what": "id attribute value is not unique"
8795
+ "what": "li element is not inside a ul or ol element"
8743
8796
  },
8744
- "QW-BP30": {
8745
- "issueID": "duplicateID",
8797
+ "definition-list": {
8798
+ "issueID": "listChild",
8746
8799
  "quality": 1,
8747
- "what": "id attribute value is shared with another element"
8800
+ "what": "dl element contains a child other than dt or dd"
8748
8801
  },
8749
- "QW-BP8": {
8750
- "issueID": "headingImageNoText",
8802
+ "dlitem-parent": {
8803
+ "issueID": "descriptionOrphan",
8751
8804
  "quality": 1,
8752
- "what": "Heading with an image has no accessible name"
8805
+ "what": "dt or dd element is not inside a dl element"
8753
8806
  },
8754
- "QW-ACT-R6": {
8755
- "issueID": "imageButtonNoText",
8807
+ "area-alt": {
8808
+ "issueID": "imageMapAreaNoText",
8756
8809
  "quality": 1,
8757
- "what": "Image button has no accessible name"
8810
+ "what": "Image map area has no text alternative"
8758
8811
  },
8759
- "QW-WCAG-T5": {
8812
+ "object-alt": {
8813
+ "issueID": "objectNoText",
8814
+ "quality": 1,
8815
+ "what": "object element has no text alternative"
8816
+ },
8817
+ "input-image-alt-present": {
8760
8818
  "issueID": "imageButtonNoText",
8761
8819
  "quality": 1,
8762
- "what": "alt attribute not used on an image used as a submit button"
8820
+ "what": "Image input has no alt text"
8763
8821
  },
8764
- "QW-ACT-R17": {
8765
- "issueID": "imageNoText",
8822
+ "multiple-labels": {
8823
+ "issueID": "labelNot1",
8766
8824
  "quality": 1,
8767
- "what": "Image has no accessible name"
8825
+ "what": "Form field has multiple label elements"
8768
8826
  },
8769
- "QW-BP6": {
8770
- "issueID": "titleLong",
8827
+ "meta-refresh": {
8828
+ "issueID": "refresh",
8771
8829
  "quality": 1,
8772
- "what": "title element is too long (more than 64 characters)"
8830
+ "what": "Page uses a timed refresh"
8773
8831
  },
8774
- "QW-BP7": {
8775
- "issueID": "titleNotText",
8832
+ "link-in-text-block": {
8833
+ "issueID": "linkIndication",
8776
8834
  "quality": 1,
8777
- "what": "Title element contains ASCII-art"
8835
+ "what": "Link is not distinguishable from surrounding text without color"
8778
8836
  },
8779
- "QW-ACT-R48": {
8780
- "issueID": "decorativeElementExposed",
8837
+ "p-as-heading": {
8838
+ "issueID": "pseudoHeadingRisk",
8781
8839
  "quality": 1,
8782
- "what": "Element marked as decorative is exposed"
8840
+ "what": "Styled paragraph is used instead of a heading"
8783
8841
  },
8784
- "QW-ACT-R2": {
8785
- "issueID": "pageLanguage",
8842
+ "aria-required-children": {
8843
+ "issueID": "descendantMissing",
8786
8844
  "quality": 1,
8787
- "what": "HTML page has no lang attribute"
8845
+ "what": "ARIA role is missing a required child"
8788
8846
  },
8789
- "QW-ACT-R5": {
8790
- "issueID": "pageLanguageBad",
8847
+ "aria-required-parent": {
8848
+ "issueID": "parentMissing",
8791
8849
  "quality": 1,
8792
- "what": "HTML lang attribute is invalid"
8850
+ "what": "ARIA role is not inside its required parent"
8793
8851
  },
8794
- "QW-ACT-R3": {
8795
- "issueID": "pageLanguageBad",
8852
+ "scrollable-region-focusable": {
8853
+ "issueID": "keyboardScroll",
8796
8854
  "quality": 1,
8797
- "what": "HTML lang and xml:lang do not match"
8855
+ "what": "Scrollable region is not reachable by keyboard"
8798
8856
  },
8799
- "QW-ACT-R22": {
8800
- "issueID": "elementLanguageBad",
8857
+ "table-headers": {
8858
+ "issueID": "tableHeaderless",
8801
8859
  "quality": 1,
8802
- "what": "Element within the body has no valid lang attribute"
8860
+ "what": "Data table has no properly associated header cells"
8803
8861
  },
8804
- "QW-ACT-R42": {
8805
- "issueID": "objectNoText",
8862
+ "color-contrast-enhanced": {
8863
+ "issueID": "contrastAAA",
8806
8864
  "quality": 1,
8807
- "what": "Object element has no non-empty accessible name"
8865
+ "what": "Text contrast can be improved"
8808
8866
  },
8809
- "QW-WCAG-T11": {
8810
- "issueID": "appletNoText",
8867
+ "target-size-enhanced": {
8868
+ "issueID": "targetSmall",
8811
8869
  "quality": 1,
8812
- "what": "Text alternative not provided on an applet element"
8870
+ "what": "Interactive target is smaller than 44 CSS pixels"
8813
8871
  },
8814
- "QW-WCAG-T1": {
8815
- "issueID": "imageMapAreaNoText",
8872
+ "dialog-name": {
8873
+ "issueID": "dialogNoText",
8816
8874
  "quality": 1,
8817
- "what": "Text alternative for an area element of an image map is not provided"
8875
+ "what": "Dialog has no accessible name"
8818
8876
  },
8819
- "QW-WCAG-T6": {
8820
- "issueID": "eventKeyboardRisk",
8877
+ "control-contrast": {
8878
+ "issueID": "contrastAA",
8821
8879
  "quality": 1,
8822
- "what": "Both keyboard and other device-specific functions are not used"
8880
+ "what": "Text inside a form control has insufficient contrast"
8823
8881
  },
8824
- "QW-WCAG-T17": {
8825
- "issueID": "labelConfusionRisk",
8882
+ "non-text-contrast": {
8883
+ "issueID": "boxInvisibleRisk",
8826
8884
  "quality": 1,
8827
- "what": "label not positioned to maximize the predictability of the relationship"
8885
+ "what": "Form field boundary has contrast less than 3:1"
8828
8886
  },
8829
- "QW-ACT-R12": {
8830
- "issueID": "linkNoText",
8887
+ "text-spacing": {
8888
+ "issueID": "horizontalSpacingFrozen",
8831
8889
  "quality": 1,
8832
- "what": "Link has no accessible name"
8890
+ "what": "User adjustment of text spacing is prevented"
8833
8891
  },
8834
- "QW-WCAG-T21": {
8835
- "issueID": "imageLinkNoText",
8892
+ "reflow": {
8893
+ "issueID": "reflow",
8836
8894
  "quality": 1,
8837
- "what": "Accessible name is not provided for an image which is the only content in a link"
8895
+ "what": "Content does not reflow to permit one-dimensional scrolling"
8838
8896
  },
8839
- "QW-WCAG-T7": {
8840
- "issueID": "abbreviationNoTitle",
8897
+ "focus-visible": {
8898
+ "issueID": "focusIndicationBad",
8841
8899
  "quality": 1,
8842
- "what": "Definition for an abbreviation not provided with an abbr element"
8900
+ "what": "Keyboard focus is not visible"
8843
8901
  },
8844
- "QW-ACT-R9": {
8845
- "issueID": "linkTextsSame",
8902
+ "focus-not-obscured": {
8903
+ "issueID": "focusCovered",
8846
8904
  "quality": 1,
8847
- "what": "Links with identical accessible names have different purposes"
8905
+ "what": "Focused element is fully obscured by an overlay"
8848
8906
  },
8849
- "QW-ACT-R44": {
8850
- "issueID": "linkTextsSame",
8907
+ "auth-field-obstruction": {
8908
+ "issueID": "autoAuthBanned",
8851
8909
  "quality": 1,
8852
- "what": "Links with identical accessible names and context serve different purposes"
8910
+ "what": "Login input blocks paste or password managers"
8853
8911
  },
8854
- "QW-BP4": {
8855
- "issueID": "linksNoNav",
8912
+ "embed-alt": {
8913
+ "issueID": "objectNoText",
8856
8914
  "quality": 1,
8857
- "what": "Grouped links are not within a nav element"
8915
+ "what": "embed element has no accessible name"
8858
8916
  },
8859
- "QW-BP13": {
8860
- "issueID": "linkPair",
8917
+ "canvas-alt": {
8918
+ "issueID": "objectNoText",
8861
8919
  "quality": 1,
8862
- "what": "Consecutive links have the same href and one contains an image"
8920
+ "what": "canvas element has no accessible name or fallback"
8863
8921
  },
8864
- "QW-WCAG-T10": {
8865
- "issueID": "linkNameRisk",
8866
- "quality": .8,
8867
- "what": "Link name repeats its image name and/or that name is suspect"
8922
+ "video-loop-motion": {
8923
+ "issueID": "animationLong",
8924
+ "quality": 1,
8925
+ "what": "Looping autoplay video cannot be paused"
8868
8926
  },
8869
- "QW-WCAG-T22": {
8870
- "issueID": "pageNewWindow",
8927
+ "visual-order-divergence": {
8928
+ "issueID": "tabOrderBad",
8871
8929
  "quality": 1,
8872
- "what": "New window opens as soon as a new page is loaded"
8930
+ "what": "CSS reordering makes the tab order diverge from the visual order"
8873
8931
  },
8874
- "QW-ACT-R11": {
8932
+ "audio-transcript": {
8933
+ "issueID": "videoNoTranscript",
8934
+ "quality": 1,
8935
+ "what": "Prerecorded audio-only content has no transcript"
8936
+ },
8937
+ "reading-order-divergence": {
8938
+ "issueID": "visualSequenceDeviant",
8939
+ "quality": 1,
8940
+ "what": "CSS reordering makes the reading order diverge from the visual order"
8941
+ },
8942
+ "drag-alternative": {
8943
+ "issueID": "dragAlt",
8944
+ "quality": 1,
8945
+ "what": "Dragging has no click alternative"
8946
+ },
8947
+ "redundant-entry": {
8948
+ "issueID": "inputRepeat",
8949
+ "quality": 1,
8950
+ "what": "Form asks for the same information twice"
8951
+ },
8952
+ "invoker-target": {
8953
+ "issueID": "ariaReferenceBad",
8954
+ "quality": 1,
8955
+ "what": "popovertarget or commandfor attribute refers to no valid element"
8956
+ },
8957
+ "reduced-motion": {
8958
+ "issueID": "animationTriggered",
8959
+ "quality": 1,
8960
+ "what": "Interaction-triggered motion cannot be switched off"
8961
+ },
8962
+ "on-input-navigation": {
8963
+ "issueID": "inputSurprise",
8964
+ "quality": 1,
8965
+ "what": "Changing a control unexpectedly changes the context"
8966
+ },
8967
+ "error-message-linkage": {
8968
+ "issueID": "errorReferenceBad",
8969
+ "quality": 1,
8970
+ "what": "Field marked invalid has no text error description"
8971
+ },
8972
+ "composite-widget-name": {
8973
+ "issueID": "componentNoText",
8974
+ "quality": 1,
8975
+ "what": "Tab, menu item, option, or tree item has no accessible name"
8976
+ },
8977
+ "summary-name": {
8875
8978
  "issueID": "buttonNoText",
8876
8979
  "quality": 1,
8877
- "what": "button element has no accessible name"
8980
+ "what": "summary element has no accessible name"
8878
8981
  },
8879
- "QW-ACT-R66": {
8880
- "issueID": "menuItemNoText",
8982
+ "heading-order": {
8983
+ "issueID": "headingLevelSkip",
8881
8984
  "quality": 1,
8882
- "what": "menuitem element has no non-empty accessible name"
8985
+ "what": "Heading levels do not increase by only one"
8883
8986
  },
8884
- "QW-ACT-R33": {
8885
- "issueID": "parentMissing",
8987
+ "empty-heading": {
8988
+ "issueID": "headingEmpty",
8886
8989
  "quality": 1,
8887
- "what": "Element has no ARIA required context role"
8990
+ "what": "Heading contains no text"
8888
8991
  },
8889
- "QW-ACT-R38": {
8890
- "issueID": "descendantMissing",
8992
+ "positive-tabindex": {
8993
+ "issueID": "tabIndexPositive",
8891
8994
  "quality": 1,
8892
- "what": "Element has no ARIA required owned element"
8995
+ "what": "Positive tabindex disrupts the natural focus order"
8893
8996
  },
8894
- "QW-ACT-R21": {
8895
- "issueID": "svgImageNoText",
8997
+ "region": {
8998
+ "issueID": "contentBeyondLandmarks",
8896
8999
  "quality": 1,
8897
- "what": "Element with an explicit role has no accessible name"
9000
+ "what": "Content is not inside a landmark region"
8898
9001
  },
8899
- "QW-ACT-R7": {
8900
- "issueID": "cssBansPageRotate",
9002
+ "landmark-one-main": {
9003
+ "issueID": "mainNone",
8901
9004
  "quality": 1,
8902
- "what": "Orientation of the page is restricted by a CSS transform property"
9005
+ "what": "Page has no main landmark"
8903
9006
  },
8904
- "QW-ACT-R14": {
8905
- "issueID": "metaBansZoom",
9007
+ "page-heading-one": {
9008
+ "issueID": "h1Not1",
8906
9009
  "quality": 1,
8907
- "what": "meta viewport prevents zoom"
9010
+ "what": "Page has no h1 heading"
8908
9011
  },
8909
- "QW-ACT-R67": {
8910
- "issueID": "horizontalSpacingFrozen",
9012
+ "landmark-unique": {
9013
+ "issueID": "landmarkConfusion",
8911
9014
  "quality": 1,
8912
- "what": "Letter spacing in a style attribute is !important"
9015
+ "what": "Landmarks of the same type are not distinguished by a label"
8913
9016
  },
8914
- "QW-ACT-R69": {
8915
- "issueID": "horizontalSpacingFrozen",
9017
+ "redundant-role": {
9018
+ "issueID": "roleRedundant",
8916
9019
  "quality": 1,
8917
- "what": "Word spacing in a style attribute is !important"
9020
+ "what": "role attribute repeats the built-in role of its element"
8918
9021
  },
8919
- "QW-ACT-R68": {
8920
- "issueID": "verticalSpacingFrozen",
9022
+ "redundant-aria": {
9023
+ "issueID": "ariaRedundant",
8921
9024
  "quality": 1,
8922
- "what": "Line height in a style attribute is !important"
9025
+ "what": "aria attribute duplicates a native HTML attribute"
8923
9026
  },
8924
- "QW-ACT-R40": {
8925
- "issueID": "overflowHiddenRisk",
9027
+ "redundant-aria-label": {
9028
+ "issueID": "ariaRedundant",
8926
9029
  "quality": 1,
8927
- "what": "Zoomed text node is clipped by a CSS overflow declaration?"
9030
+ "what": "aria-label repeats the visible text of its element"
8928
9031
  },
8929
- "QW-BP14": {
8930
- "issueID": "boxSizeAbsolute",
9032
+ "redundant-alt-phrase": {
9033
+ "issueID": "imageTextRedundant",
8931
9034
  "quality": 1,
8932
- "what": "Container width is specified in px"
9035
+ "what": "alt attribute value starts with a redundant phrase"
8933
9036
  },
8934
- "QW-BP15": {
8935
- "issueID": "boxSizeAbsolute",
9037
+ "redundant-tabindex": {
9038
+ "issueID": "tabIndexExtra",
8936
9039
  "quality": 1,
8937
- "what": "Element width is specified in an absolute value"
9040
+ "what": "Element is natively focused, so tabindex=0 is unnecessary"
8938
9041
  },
8939
- "QW-ACT-R19": {
8940
- "issueID": "iframeTitleBad",
9042
+ "redundant-image-alt": {
9043
+ "issueID": "imageTextRedundant",
8941
9044
  "quality": 1,
8942
- "what": "iframe element has no accessible name"
9045
+ "what": "Image alt attribute value repeats adjacent link or button text"
8943
9046
  },
8944
- "QW-ACT-R20": {
8945
- "issueID": "roleBad",
9047
+ "landmark-top-level": {
9048
+ "issueID": "mainNotTop",
8946
9049
  "quality": 1,
8947
- "what": "role attribute has an invalid value"
9050
+ "what": "Landmark is nested inside another landmark instead of being top-level"
8948
9051
  },
8949
- "QW-ACT-R28": {
8950
- "issueID": "ariaMissing",
9052
+ "accesskeys": {
9053
+ "issueID": "accessKeyDuplicate",
8951
9054
  "quality": 1,
8952
- "what": "Element with a role attribute does not have the required states and properties"
9055
+ "what": "Multiple element have the same accesskey attribute value"
8953
9056
  },
8954
- "QW-ACT-R25": {
8955
- "issueID": "ariaAttributeBad",
9057
+ "button-type": {
9058
+ "issueID": "typeBad",
9059
+ "quality": 1,
9060
+ "what": "Button inside a form has no type attribute declared"
9061
+ },
9062
+ "no-autofocus": {
9063
+ "issueID": "focusSurprise",
9064
+ "quality": 1,
9065
+ "what": "autofocus attribute disorients assistive-technology users"
9066
+ },
9067
+ "new-window-link": {
9068
+ "issueID": "newTabSurpriseRisk",
9069
+ "quality": 1,
9070
+ "what": "Link opens a new window without warning"
9071
+ },
9072
+ "fieldset-legend": {
9073
+ "issueID": "legendMissing",
9074
+ "quality": 1,
9075
+ "what": "Radio or checkbox group has no fieldset legend"
9076
+ }
9077
+ },
9078
+ "variable": {}
9079
+ },
9080
+ "qualWeb": {
9081
+ "invariant": {
9082
+ "QW-ACT-R10": {
9083
+ "issueID": "ignorable",
9084
+ "quality": 1,
9085
+ "what": "iframe elements with identical accessible names have different purposes (on invisible elements)",
9086
+ "whyIgnore": "invalid"
9087
+ },
9088
+ "QW-ACT-R13": {
9089
+ "issueID": "ignorable",
9090
+ "quality": 1,
9091
+ "what": "Element with aria-hidden has focusable content",
9092
+ "whyIgnore": "invalid"
9093
+ },
9094
+ "QW-ACT-R41": {
9095
+ "issueID": "ignorable",
9096
+ "quality": 1,
9097
+ "what": "Error message describes no invalid form field value",
9098
+ "whyIgnore": "speculative"
9099
+ },
9100
+ "QW-ACT-R52": {
9101
+ "issueID": "ignorable",
9102
+ "quality": 0,
9103
+ "what": "video element visual-only content has no description track (description tracks and this ACT rule have been deprecated)",
9104
+ "whyIgnore": "irrelevant"
9105
+ },
9106
+ "QW-ACT-R57": {
9107
+ "issueID": "ignorable",
9108
+ "quality": 0,
9109
+ "what": "video element visual content has no description track (description tracks and this ACT rule have been deprecated)",
9110
+ "whyIgnore": "irrelevant"
9111
+ },
9112
+ "QW-ACT-R62": {
9113
+ "issueID": "ignorable",
9114
+ "quality": 0,
9115
+ "what": "Element in the sequential focus order may have no visible focus",
9116
+ "whyIgnore": "speculative"
9117
+ },
9118
+ "QW-ACT-R63": {
9119
+ "issueID": "ignorable",
9120
+ "quality": 0,
9121
+ "what": "Page has no landmark with non-repeated content",
9122
+ "whyIgnore": "invalid"
9123
+ },
9124
+ "QW-ACT-R64": {
9125
+ "issueID": "ignorable",
9126
+ "quality": 0,
9127
+ "what": "Page has no heading for non-repeated content",
9128
+ "whyIgnore": "invalid"
9129
+ },
9130
+ "QW-ACT-R73": {
9131
+ "issueID": "ignorable",
9132
+ "quality": 0,
9133
+ "what": "Block of repeated content is not collapsible",
9134
+ "whyIgnore": "invalid"
9135
+ },
9136
+ "QW-ACT-R74": {
9137
+ "issueID": "ignorable",
9138
+ "quality": 0,
9139
+ "what": "Page has no instrument to move focus to non-repeated content",
9140
+ "whyIgnore": "invalid"
9141
+ },
9142
+ "QW-ACT-R75": {
9143
+ "issueID": "ignorable",
9144
+ "quality": 0,
9145
+ "what": "Blocks of repeated content cannot be bypassed",
9146
+ "whyIgnore": "invalid"
9147
+ },
9148
+ "QW-BP1": {
9149
+ "issueID": "ignorable",
9150
+ "quality": 0,
9151
+ "what": "h1-h6 may fail to be used to identify headings",
9152
+ "whyIgnore": "speculative"
9153
+ },
9154
+ "QW-BP2": {
9155
+ "issueID": "ignorable",
9156
+ "quality": 1,
9157
+ "what": "Image text alternative is not concise",
9158
+ "whyIgnore": "invalid"
9159
+ },
9160
+ "QW-BP17": {
9161
+ "issueID": "ignorable",
9162
+ "quality": 1,
9163
+ "what": "No link at the beginning of a block of repeated content goes to the end of the block",
9164
+ "whyIgnore": "invalid"
9165
+ },
9166
+ "QW-BP20": {
9167
+ "issueID": "ignorable",
9168
+ "quality": 1,
9169
+ "what": "Page has more than 1 banner landmark (counts hidden elements)",
9170
+ "whyIgnore": "invalid"
9171
+ },
9172
+ "QW-BP22": {
9173
+ "issueID": "ignorable",
9174
+ "quality": 1,
9175
+ "what": "Page has more than 1 element with a main role",
9176
+ "whyIgnore": "invalid"
9177
+ },
9178
+ "QW-BP23": {
9179
+ "issueID": "ignorable",
9180
+ "quality": .1,
9181
+ "what": "Element is not in a true list",
9182
+ "whyIgnore": "invalid"
9183
+ },
9184
+ "QW-BP24": {
9185
+ "issueID": "ignorable",
9186
+ "quality": 1,
9187
+ "what": "ul or ol element has a child other than li, script, or template",
9188
+ "whyIgnore": "invalid"
9189
+ },
9190
+ "QW-BP28": {
9191
+ "issueID": "ignorable",
9192
+ "quality": 1,
9193
+ "what": "h1 element missing or used more than once",
9194
+ "whyIgnore": "invalid"
9195
+ },
9196
+ "QW-BP29": {
9197
+ "issueID": "ignorable",
9198
+ "quality": 0,
9199
+ "what": "lang and xml:lang attribute of html element differ",
9200
+ "whyIgnore": "invalid"
9201
+ },
9202
+ "QW-WCAG-T4": {
9203
+ "issueID": "ignorable",
9204
+ "quality": 0,
9205
+ "what": "summary attribute is not used to give an overview of a data table",
9206
+ "whyIgnore": "invalid"
9207
+ },
9208
+ "QW-WCAG-T8": {
9209
+ "issueID": "ignorable",
9210
+ "quality": 1,
9211
+ "what": "Text alternative is suspect",
9212
+ "whyIgnore": "invalid"
9213
+ },
9214
+ "QW-WCAG-T9": {
9215
+ "issueID": "ignorable",
9216
+ "quality": 0,
9217
+ "what": "Page may fail to be organized using headings",
9218
+ "whyIgnore": "speculative"
9219
+ },
9220
+ "QW-WCAG-T15": {
9221
+ "issueID": "ignorable",
9222
+ "quality": 0,
9223
+ "what": "link element may be used for navigation but not in the head",
9224
+ "whyIgnore": "invalid"
9225
+ },
9226
+ "QW-WCAG-T20": {
9227
+ "issueID": "ignorable",
9228
+ "quality": 0,
9229
+ "what": "Link title may fail to describe the link correctly",
9230
+ "whyIgnore": "speculative"
9231
+ },
9232
+ "QW-WCAG-T23": {
9233
+ "issueID": "ignorable",
9234
+ "quality": 0,
9235
+ "what": "No link at the top of the page goes directly to the main content area",
9236
+ "whyIgnore": "invalid"
9237
+ },
9238
+ "QW-WCAG-T24": {
9239
+ "issueID": "ignorable",
9240
+ "quality": .5,
9241
+ "what": "Script removes the focus when focus is received",
9242
+ "whyIgnore": "invalid"
9243
+ },
9244
+ "QW-WCAG-T28": {
9245
+ "issueID": "ignorable",
9246
+ "quality": .8,
9247
+ "what": "Font size set to an absolute unit value",
9248
+ "whyIgnore": "invalid"
9249
+ },
9250
+ "QW-WCAG-T31": {
9251
+ "issueID": "ignorable",
9252
+ "quality": 1,
9253
+ "what": "Foreground or background color is specified but not both (on invisible elements)",
9254
+ "whyIgnore": "invalid"
9255
+ },
9256
+ "QW-WCAG-T32": {
9257
+ "issueID": "ignorable",
9258
+ "quality": 1,
9259
+ "what": "ol, ul or dl may fail to be used for a list or group of links",
9260
+ "whyIgnore": "speculative"
9261
+ },
9262
+ "QW-WCAG-T35": {
9263
+ "issueID": "ignorable",
9264
+ "quality": 1,
9265
+ "what": "Several elements have this id attribute value",
9266
+ "whyIgnore": "invalid"
9267
+ },
9268
+ "QW-ACT-R18": {
9269
+ "issueID": "duplicateID",
9270
+ "quality": 1,
9271
+ "what": "id attribute value is not unique"
9272
+ },
9273
+ "QW-BP30": {
9274
+ "issueID": "duplicateID",
9275
+ "quality": 1,
9276
+ "what": "id attribute value is shared with another element"
9277
+ },
9278
+ "QW-BP8": {
9279
+ "issueID": "headingImageNoText",
9280
+ "quality": 1,
9281
+ "what": "Heading with an image has no accessible name"
9282
+ },
9283
+ "QW-ACT-R6": {
9284
+ "issueID": "imageButtonNoText",
9285
+ "quality": 1,
9286
+ "what": "Image button has no accessible name"
9287
+ },
9288
+ "QW-WCAG-T5": {
9289
+ "issueID": "imageButtonNoText",
9290
+ "quality": 1,
9291
+ "what": "alt attribute not used on an image used as a submit button"
9292
+ },
9293
+ "QW-ACT-R17": {
9294
+ "issueID": "imageNoText",
9295
+ "quality": 1,
9296
+ "what": "Image has no accessible name"
9297
+ },
9298
+ "QW-BP6": {
9299
+ "issueID": "titleLong",
9300
+ "quality": 1,
9301
+ "what": "title element is too long (more than 64 characters)"
9302
+ },
9303
+ "QW-BP7": {
9304
+ "issueID": "titleNotText",
9305
+ "quality": 1,
9306
+ "what": "Title element contains ASCII-art"
9307
+ },
9308
+ "QW-ACT-R48": {
9309
+ "issueID": "decorativeElementExposed",
9310
+ "quality": 1,
9311
+ "what": "Element marked as decorative is exposed"
9312
+ },
9313
+ "QW-ACT-R2": {
9314
+ "issueID": "pageLanguage",
9315
+ "quality": 1,
9316
+ "what": "HTML page has no lang attribute"
9317
+ },
9318
+ "QW-ACT-R5": {
9319
+ "issueID": "pageLanguageBad",
9320
+ "quality": 1,
9321
+ "what": "HTML lang attribute is invalid"
9322
+ },
9323
+ "QW-ACT-R3": {
9324
+ "issueID": "pageLanguageBad",
9325
+ "quality": 1,
9326
+ "what": "HTML lang and xml:lang do not match"
9327
+ },
9328
+ "QW-ACT-R22": {
9329
+ "issueID": "elementLanguageBad",
9330
+ "quality": 1,
9331
+ "what": "Element within the body has no valid lang attribute"
9332
+ },
9333
+ "QW-ACT-R42": {
9334
+ "issueID": "objectNoText",
9335
+ "quality": 1,
9336
+ "what": "Object element has no non-empty accessible name"
9337
+ },
9338
+ "QW-WCAG-T11": {
9339
+ "issueID": "appletNoText",
9340
+ "quality": 1,
9341
+ "what": "Text alternative not provided on an applet element"
9342
+ },
9343
+ "QW-WCAG-T1": {
9344
+ "issueID": "imageMapAreaNoText",
9345
+ "quality": 1,
9346
+ "what": "Text alternative for an area element of an image map is not provided"
9347
+ },
9348
+ "QW-WCAG-T6": {
9349
+ "issueID": "eventKeyboardRisk",
9350
+ "quality": 1,
9351
+ "what": "Both keyboard and other device-specific functions are not used"
9352
+ },
9353
+ "QW-WCAG-T17": {
9354
+ "issueID": "labelConfusionRisk",
9355
+ "quality": 1,
9356
+ "what": "label not positioned to maximize the predictability of the relationship"
9357
+ },
9358
+ "QW-ACT-R12": {
9359
+ "issueID": "linkNoText",
9360
+ "quality": 1,
9361
+ "what": "Link has no accessible name"
9362
+ },
9363
+ "QW-WCAG-T21": {
9364
+ "issueID": "imageLinkNoText",
9365
+ "quality": 1,
9366
+ "what": "Accessible name is not provided for an image which is the only content in a link"
9367
+ },
9368
+ "QW-WCAG-T7": {
9369
+ "issueID": "abbreviationNoTitle",
9370
+ "quality": 1,
9371
+ "what": "Definition for an abbreviation not provided with an abbr element"
9372
+ },
9373
+ "QW-ACT-R9": {
9374
+ "issueID": "linkTextsSame",
9375
+ "quality": 1,
9376
+ "what": "Links with identical accessible names have different purposes"
9377
+ },
9378
+ "QW-ACT-R44": {
9379
+ "issueID": "linkTextsSame",
9380
+ "quality": 1,
9381
+ "what": "Links with identical accessible names and context serve different purposes"
9382
+ },
9383
+ "QW-BP4": {
9384
+ "issueID": "linksNoNav",
9385
+ "quality": 1,
9386
+ "what": "Grouped links are not within a nav element"
9387
+ },
9388
+ "QW-BP13": {
9389
+ "issueID": "linkPair",
9390
+ "quality": 1,
9391
+ "what": "Consecutive links have the same href and one contains an image"
9392
+ },
9393
+ "QW-WCAG-T10": {
9394
+ "issueID": "linkNameRisk",
9395
+ "quality": .8,
9396
+ "what": "Link name repeats its image name and/or that name is suspect"
9397
+ },
9398
+ "QW-WCAG-T22": {
9399
+ "issueID": "pageNewWindow",
9400
+ "quality": 1,
9401
+ "what": "New window opens as soon as a new page is loaded"
9402
+ },
9403
+ "QW-ACT-R11": {
9404
+ "issueID": "buttonNoText",
9405
+ "quality": 1,
9406
+ "what": "button element has no accessible name"
9407
+ },
9408
+ "QW-ACT-R66": {
9409
+ "issueID": "menuItemNoText",
9410
+ "quality": 1,
9411
+ "what": "menuitem element has no non-empty accessible name"
9412
+ },
9413
+ "QW-ACT-R33": {
9414
+ "issueID": "parentMissing",
9415
+ "quality": 1,
9416
+ "what": "Element has no ARIA required context role"
9417
+ },
9418
+ "QW-ACT-R38": {
9419
+ "issueID": "descendantMissing",
9420
+ "quality": 1,
9421
+ "what": "Element has no ARIA required owned element"
9422
+ },
9423
+ "QW-ACT-R21": {
9424
+ "issueID": "svgImageNoText",
9425
+ "quality": 1,
9426
+ "what": "Element with an explicit role has no accessible name"
9427
+ },
9428
+ "QW-ACT-R7": {
9429
+ "issueID": "cssBansPageRotate",
9430
+ "quality": 1,
9431
+ "what": "Orientation of the page is restricted by a CSS transform property"
9432
+ },
9433
+ "QW-ACT-R14": {
9434
+ "issueID": "metaBansZoom",
9435
+ "quality": 1,
9436
+ "what": "meta viewport prevents zoom"
9437
+ },
9438
+ "QW-ACT-R67": {
9439
+ "issueID": "horizontalSpacingFrozen",
9440
+ "quality": 1,
9441
+ "what": "Letter spacing in a style attribute is !important"
9442
+ },
9443
+ "QW-ACT-R69": {
9444
+ "issueID": "horizontalSpacingFrozen",
9445
+ "quality": 1,
9446
+ "what": "Word spacing in a style attribute is !important"
9447
+ },
9448
+ "QW-ACT-R68": {
9449
+ "issueID": "verticalSpacingFrozen",
9450
+ "quality": 1,
9451
+ "what": "Line height in a style attribute is !important"
9452
+ },
9453
+ "QW-ACT-R40": {
9454
+ "issueID": "overflowHiddenRisk",
9455
+ "quality": 1,
9456
+ "what": "Zoomed text node is clipped by a CSS overflow declaration?"
9457
+ },
9458
+ "QW-BP14": {
9459
+ "issueID": "boxSizeAbsolute",
9460
+ "quality": 1,
9461
+ "what": "Container width is specified in px"
9462
+ },
9463
+ "QW-BP15": {
9464
+ "issueID": "boxSizeAbsolute",
9465
+ "quality": 1,
9466
+ "what": "Element width is specified in an absolute value"
9467
+ },
9468
+ "QW-ACT-R19": {
9469
+ "issueID": "iframeTitleBad",
9470
+ "quality": 1,
9471
+ "what": "iframe element has no accessible name"
9472
+ },
9473
+ "QW-ACT-R20": {
9474
+ "issueID": "roleBad",
9475
+ "quality": 1,
9476
+ "what": "role attribute has an invalid value"
9477
+ },
9478
+ "QW-ACT-R28": {
9479
+ "issueID": "ariaMissing",
9480
+ "quality": 1,
9481
+ "what": "Element with a role attribute does not have the required states and properties"
9482
+ },
9483
+ "QW-ACT-R25": {
9484
+ "issueID": "ariaAttributeBad",
9485
+ "quality": 1,
9486
+ "what": "ARIA state or property is not permitted"
9487
+ },
9488
+ "QW-ACT-R27": {
9489
+ "issueID": "ariaAttributeBad",
9490
+ "quality": 1,
9491
+ "what": "aria- attribute is not defined in ARIA 1.1"
9492
+ },
9493
+ "QW-ACT-R34": {
9494
+ "issueID": "ariaAttributeBad",
9495
+ "quality": 1,
9496
+ "what": "ARIA state or property has an invalid value"
9497
+ },
9498
+ "QW-ACT-R24": {
9499
+ "issueID": "autocompleteBad",
9500
+ "quality": 1,
9501
+ "what": "autocomplete attribute has no valid value"
9502
+ },
9503
+ "QW-ACT-R76": {
9504
+ "issueID": "contrastAAA",
9505
+ "quality": 1,
9506
+ "what": "Text has less than the enhanced minimum contrast"
9507
+ },
9508
+ "QW-ACT-R37": {
9509
+ "issueID": "contrastRisk",
9510
+ "quality": 1,
9511
+ "what": "Text has less than the minimum contrast or has an image background"
9512
+ },
9513
+ "text-color-convey-information": {
9514
+ "issueID": "colorNamedRisk",
9515
+ "quality": 1,
9516
+ "what": "Text naming a color requires the ability to distinguish colors?"
9517
+ },
9518
+ "QW-ACT-R35": {
9519
+ "issueID": "headingEmpty",
9520
+ "quality": 1,
9521
+ "what": "Heading has no accessible name"
9522
+ },
9523
+ "QW-BP3": {
9524
+ "issueID": "titleRedundant",
9525
+ "quality": 1,
9526
+ "what": "Link text content is equal to the title attribute"
9527
+ },
9528
+ "QW-ACT-R1": {
9529
+ "issueID": "pageTitle",
9530
+ "quality": 1,
9531
+ "what": "HTML page has no title"
9532
+ },
9533
+ "QW-WCAG-T27": {
9534
+ "issueID": "justification",
9535
+ "quality": 1,
9536
+ "what": "Text is justified (aligned to both the left and the right margins)"
9537
+ },
9538
+ "QW-WCAG-T29": {
9539
+ "issueID": "justificationRisk",
9540
+ "quality": 1,
9541
+ "what": "Alignment either to the left or right is not specified in CSS"
9542
+ },
9543
+ "QW-WCAG-T33": {
9544
+ "issueID": "descriptionOrphan",
9545
+ "quality": 1,
9546
+ "what": "Element is not contained by a valid dl element"
9547
+ },
9548
+ "QW-WCAG-T34": {
9549
+ "issueID": "descriptionOrder",
9550
+ "quality": 1,
9551
+ "what": "Description list element is not ordered correctly"
9552
+ },
9553
+ "QW-BP11": {
9554
+ "issueID": "pseudoList",
9555
+ "quality": 1,
9556
+ "what": "br is used to make a list"
9557
+ },
9558
+ "QW-WCAG-T3": {
9559
+ "issueID": "legendMissing",
9560
+ "quality": 1,
9561
+ "what": "Description for a group of form controls using fieldset and legend elements is not provided"
9562
+ },
9563
+ "QW-WCAG-T12": {
9564
+ "issueID": "layoutTable",
9565
+ "quality": 1,
9566
+ "what": "th or caption element or non-empty summary attribute used in a layout table"
9567
+ },
9568
+ "QW-BP9": {
9569
+ "issueID": "layoutTable",
9570
+ "quality": 1,
9571
+ "what": "Table element without header cells has a caption"
9572
+ },
9573
+ "QW-WCAG-T18": {
9574
+ "issueID": "tabularTableless",
9575
+ "quality": 1,
9576
+ "what": "Table markup not used to present tabular information"
9577
+ },
9578
+ "QW-WCAG-T2": {
9579
+ "issueID": "tableCaption",
9580
+ "quality": 1,
9581
+ "what": "caption element not used to associate a caption with a data table"
9582
+ },
9583
+ "QW-ACT-R36": {
9584
+ "issueID": "cellHeadersOutsideTable",
9585
+ "quality": 1,
9586
+ "what": "Headers attribute does not refer to a cell in the same table element"
9587
+ },
9588
+ "QW-WCAG-T14": {
9589
+ "issueID": "cellHeadersAmbiguityRisk",
9590
+ "quality": 1,
9591
+ "what": "id and headers attributes not used to associate data cells with header cells in a data table"
9592
+ },
9593
+ "QW-WCAG-T25": {
9594
+ "issueID": "cellHeadersAmbiguityRisk",
9595
+ "quality": 1,
9596
+ "what": "scope attribute not used to associate header cells and data cells in a data table"
9597
+ },
9598
+ "QW-BP12": {
9599
+ "issueID": "cellHeadersAmbiguityRisk",
9600
+ "quality": 1,
9601
+ "what": "scope col and row are not used"
9602
+ },
9603
+ "QW-ACT-R39": {
9604
+ "issueID": "tableHeaderCellless",
9605
+ "quality": 1,
9606
+ "what": "Table header cell has no assigned data cell"
9607
+ },
9608
+ "QW-BP5": {
9609
+ "issueID": "tableEmbedded",
9610
+ "quality": 1,
9611
+ "what": "table element is inside another table element"
9612
+ },
9613
+ "QW-ACT-R16": {
9614
+ "issueID": "controlNoText",
9615
+ "quality": 1,
9616
+ "what": "Form control has no accessible name"
9617
+ },
9618
+ "QW-ACT-R30": {
9619
+ "issueID": "visibleLabelNotInName",
9620
+ "quality": 1,
9621
+ "what": "Visible label is not part of the accessible name"
9622
+ },
9623
+ "QW-ACT-R70": {
9624
+ "issueID": "unfocusability",
9625
+ "quality": 1,
9626
+ "what": "iframe with negative tabindex has interactive elements"
9627
+ },
9628
+ "QW-BP25": {
9629
+ "issueID": "asideNotTop",
9630
+ "quality": 1,
9631
+ "what": "complementary landmark is not at the top level"
9632
+ },
9633
+ "QW-BP26": {
9634
+ "issueID": "asideNotTop",
9635
+ "quality": 1,
9636
+ "what": "complementary landmark is not at the top level"
9637
+ },
9638
+ "QW-BP27": {
9639
+ "issueID": "mainNotTop",
9640
+ "quality": 1,
9641
+ "what": "main landmark is not at the top level"
9642
+ },
9643
+ "QW-BP19": {
9644
+ "issueID": "bannerNotTop",
9645
+ "quality": 1,
9646
+ "what": "banner landmark is not at the top level"
9647
+ },
9648
+ "QW-BP21": {
9649
+ "issueID": "footerNot1",
9650
+ "quality": .5,
9651
+ "what": "There are multiple contentinfo or banner landmarks"
9652
+ },
9653
+ "QW-WCAG-T26": {
9654
+ "issueID": "focusableRole",
9655
+ "quality": 1,
9656
+ "what": "Script makes a div or span a user interface control without providing a role for the control"
9657
+ },
9658
+ "QW-ACT-R65": {
9659
+ "issueID": "focusableDescendants",
9660
+ "quality": 1,
9661
+ "what": "Element with presentational children has focusable content"
9662
+ },
9663
+ "QW-WCAG-T13": {
9664
+ "issueID": "blink",
9665
+ "quality": 1,
9666
+ "what": "Element is blink"
9667
+ },
9668
+ "QW-WCAG-T30": {
9669
+ "issueID": "blink",
9670
+ "quality": 1,
9671
+ "what": "text-decoration:blink is used without a mechanism to stop it in less than five seconds"
9672
+ },
9673
+ "QW-ACT-R15": {
9674
+ "issueID": "autoplay",
9675
+ "quality": 1,
9676
+ "what": "Element has audio that plays automatically"
9677
+ },
9678
+ "QW-ACT-R49": {
9679
+ "issueID": "autoplayLong",
9680
+ "quality": 1,
9681
+ "what": "Element that plays automatically has audio lasting more than 3 seconds"
9682
+ },
9683
+ "QW-ACT-R50": {
9684
+ "issueID": "autoplayControl",
9685
+ "quality": 1,
9686
+ "what": "audio or video that plays automatically has no control mechanism"
9687
+ },
9688
+ "QW-ACT-R4": {
9689
+ "issueID": "refresh",
9690
+ "quality": 1,
9691
+ "what": "Element refreshes or redirects with delay"
9692
+ },
9693
+ "QW-ACT-R71": {
9694
+ "issueID": "refresh",
9695
+ "quality": 1,
9696
+ "what": "Element has a refresh delay (no exception)"
9697
+ },
9698
+ "QW-ACT-R26": {
9699
+ "issueID": "audioNoText",
9700
+ "quality": 1,
9701
+ "what": "Auditory content of the element has no accessible alternative"
9702
+ },
9703
+ "QW-ACT-R29": {
9704
+ "issueID": "audioNoText",
9705
+ "quality": 1,
9706
+ "what": "Content of the element has no text alternative"
9707
+ },
9708
+ "QW-ACT-R58": {
9709
+ "issueID": "audioNoText",
9710
+ "quality": 1,
9711
+ "what": "Content of the element has no transcript"
9712
+ },
9713
+ "QW-ACT-R59": {
9714
+ "issueID": "audioNoText",
9715
+ "quality": 1,
9716
+ "what": "Element content is not a media alternative for text"
9717
+ },
9718
+ "QW-ACT-R60": {
9719
+ "issueID": "audioNoText",
9720
+ "quality": 1,
9721
+ "what": "Auditory content of the element has no captions"
9722
+ },
9723
+ "QW-ACT-R23": {
9724
+ "issueID": "videoNoText",
9725
+ "quality": 1,
9726
+ "what": "video element visual content has no accessible alternative"
9727
+ },
9728
+ "QW-ACT-R31": {
9729
+ "issueID": "videoNoText",
9730
+ "quality": 1,
9731
+ "what": "video element visual-only content has no accessible alternative"
9732
+ },
9733
+ "QW-ACT-R32": {
9734
+ "issueID": "videoNoText",
9735
+ "quality": 1,
9736
+ "what": "video element visual-only content has no strict accessible alternative"
9737
+ },
9738
+ "QW-ACT-R51": {
9739
+ "issueID": "videoNoText",
9740
+ "quality": 1,
9741
+ "what": "video element visual-only content is not a media alternative for text"
9742
+ },
9743
+ "QW-ACT-R56": {
9744
+ "issueID": "videoNoText",
9745
+ "quality": 1,
9746
+ "what": "video element content is not a media alternative for text"
9747
+ },
9748
+ "QW-ACT-R61": {
9749
+ "issueID": "videoNoText",
9750
+ "quality": 1,
9751
+ "what": "video element visual content has no transcript"
9752
+ },
9753
+ "QW-ACT-R53": {
9754
+ "issueID": "videoNoTranscript",
9755
+ "quality": 1,
9756
+ "what": "video element visual-only content has no transcript"
9757
+ },
9758
+ "QW-ACT-R55": {
9759
+ "issueID": "videoNoAudioDescription",
9760
+ "quality": 1,
9761
+ "what": "video element visual content has no audio description"
9762
+ },
9763
+ "QW-ACT-R54": {
9764
+ "issueID": "videoNoAudioTrack",
9765
+ "quality": 1,
9766
+ "what": "Visual-only content of the element has no audio track alternative"
9767
+ },
9768
+ "QW-ACT-R43": {
9769
+ "issueID": "keyboardScroll",
9770
+ "quality": 1,
9771
+ "what": "Scrollable element is not keyboard accessible"
9772
+ },
9773
+ "QW-BP18": {
9774
+ "issueID": "scrollRisk",
9775
+ "quality": 1,
9776
+ "what": "Percentage is not used in CSS for a container size"
9777
+ },
9778
+ "QW-ACT-R72": {
9779
+ "issueID": "repeatedContentRisk",
9780
+ "quality": 1,
9781
+ "what": "First focusable element is not a link to the non-repeated content"
9782
+ },
9783
+ "QW-WCAG-T19": {
9784
+ "issueID": "submitButton",
9785
+ "quality": 1,
9786
+ "what": "Submit button not provided"
9787
+ },
9788
+ "QW-BP10": {
9789
+ "issueID": "elementObsolete",
9790
+ "quality": 1,
9791
+ "what": "HTML element is used to control the visual presentation of content"
9792
+ },
9793
+ "QW-WCAG-T16": {
9794
+ "issueID": "parseError",
9795
+ "quality": 1,
9796
+ "what": "HTML is not used according to spec"
9797
+ }
9798
+ },
9799
+ "variable": {}
9800
+ },
9801
+ "sureA11y": {
9802
+ "invariant": {
9803
+ "area-alt-present": {
9804
+ "issueID": "imageMapAreaNoText",
9805
+ "quality": 1,
9806
+ "what": "area element has no alt attribute"
9807
+ },
9808
+ "aria-allowed-attr": {
9809
+ "issueID": "ariaAttributeBad",
9810
+ "quality": 1,
9811
+ "what": "aria attribute is not permitted for the element role"
9812
+ },
9813
+ "aria-allowed-role": {
9814
+ "issueID": "roleBad",
9815
+ "quality": 1,
9816
+ "what": "Explicit role is not permitted for the element"
9817
+ },
9818
+ "aria-braille-equivalent": {
9819
+ "issueID": "brailleOnly",
9820
+ "quality": 1,
9821
+ "what": "aria-braillelabel or aria-brailleroledescription has no non-braille equivalent"
9822
+ },
9823
+ "aria-conditional-attr": {
9824
+ "issueID": "ariaMissing",
9825
+ "quality": 1,
9826
+ "what": "aria-errormessage is used without aria-invalid set to a non-false value"
9827
+ },
9828
+ "aria-deprecated-role": {
9829
+ "issueID": "roleBad",
9830
+ "quality": 1,
9831
+ "what": "role attribute uses a deprecated or author-discouraged ARIA role"
9832
+ },
9833
+ "aria-hidden-body": {
9834
+ "issueID": "contentHidden",
9835
+ "quality": 1,
9836
+ "what": "The body element is aria-hidden"
9837
+ },
9838
+ "aria-hidden-focus": {
9839
+ "issueID": "focusableHidden",
9840
+ "quality": 1,
9841
+ "what": "aria-hidden element is focusable or contains a focusable element"
9842
+ },
9843
+ "aria-prohibited-attr": {
9844
+ "issueID": "attributeBad",
9845
+ "quality": 1,
9846
+ "what": "ARIA naming attribute is used on a role that prohibits it"
9847
+ },
9848
+ "aria-prohibited-children": {
9849
+ "issueID": "roleHierarchyBad",
9850
+ "quality": 1,
9851
+ "what": "Container role owns a child with a disallowed role"
9852
+ },
9853
+ "aria-required-attr": {
9854
+ "issueID": "ariaMissing",
9855
+ "quality": 1,
9856
+ "what": "Role is missing a required ARIA state or property"
9857
+ },
9858
+ "aria-required-children": {
9859
+ "issueID": "descendantMissing",
9860
+ "quality": 1,
9861
+ "what": "Container role is missing a required child role"
9862
+ },
9863
+ "aria-required-parent": {
9864
+ "issueID": "parentMissing",
9865
+ "quality": 1,
9866
+ "what": "Role requiring a specific context is not in that context"
9867
+ },
9868
+ "aria-role-name-present": {
9869
+ "issueID": "roleNoText",
9870
+ "quality": 1,
9871
+ "what": "ARIA role that requires an accessible name has none"
9872
+ },
9873
+ "aria-roles-valid": {
9874
+ "issueID": "roleBad",
9875
+ "quality": 1,
9876
+ "what": "role attribute is not a valid non-abstract ARIA role"
9877
+ },
9878
+ "aria-valid-attr": {
9879
+ "issueID": "ariaAttributeBad",
9880
+ "quality": 1,
9881
+ "what": "aria attribute is not a real defined ARIA attribute"
9882
+ },
9883
+ "aria-valid-attr-value": {
9884
+ "issueID": "ariaAttributeBad",
9885
+ "quality": 1,
9886
+ "what": "aria attribute value does not match its declared type"
9887
+ },
9888
+ "autocomplete-valid": {
9889
+ "issueID": "autocompleteBad",
9890
+ "quality": 1,
9891
+ "what": "autocomplete attribute is not a valid autofill value"
9892
+ },
9893
+ "avoid-inline-spacing": {
9894
+ "issueID": "horizontalSpacingFrozen",
8956
9895
  "quality": 1,
8957
- "what": "ARIA state or property is not permitted"
9896
+ "what": "Inline style forces text spacing below the WCAG metric"
8958
9897
  },
8959
- "QW-ACT-R27": {
8960
- "issueID": "ariaAttributeBad",
9898
+ "binary-control-name-present": {
9899
+ "issueID": "inputNoText",
8961
9900
  "quality": 1,
8962
- "what": "aria- attribute is not defined in ARIA 1.1"
9901
+ "what": "Binary control has no accessible name"
8963
9902
  },
8964
- "QW-ACT-R34": {
8965
- "issueID": "ariaAttributeBad",
9903
+ "button-name-present": {
9904
+ "issueID": "buttonNoText",
8966
9905
  "quality": 1,
8967
- "what": "ARIA state or property has an invalid value"
9906
+ "what": "Button has no accessible name"
8968
9907
  },
8969
- "QW-ACT-R24": {
8970
- "issueID": "autocompleteBad",
9908
+ "canvas-text-alternative-present": {
9909
+ "issueID": "objectNoText",
8971
9910
  "quality": 1,
8972
- "what": "autocomplete attribute has no valid value"
9911
+ "what": "canvas element has no text alternative"
8973
9912
  },
8974
- "QW-ACT-R76": {
8975
- "issueID": "contrastAAA",
9913
+ "combobox-name-present": {
9914
+ "issueID": "componentNoText",
8976
9915
  "quality": 1,
8977
- "what": "Text has less than the enhanced minimum contrast"
9916
+ "what": "Combobox has no accessible name"
8978
9917
  },
8979
- "QW-ACT-R37": {
9918
+ "contrast-computable": {
8980
9919
  "issueID": "contrastRisk",
8981
9920
  "quality": 1,
8982
- "what": "Text has less than the minimum contrast or has an image background"
9921
+ "what": "Color contrast cannot be computed for rendered text"
8983
9922
  },
8984
- "text-color-convey-information": {
8985
- "issueID": "colorNamedRisk",
9923
+ "contrast-enhanced": {
9924
+ "issueID": "contrastAAA",
8986
9925
  "quality": 1,
8987
- "what": "Text naming a color requires the ability to distinguish colors?"
9926
+ "what": "Text does not meet enhanced color contrast"
8988
9927
  },
8989
- "QW-ACT-R35": {
8990
- "issueID": "headingEmpty",
9928
+ "contrast-minimum": {
9929
+ "issueID": "contrastAA",
8991
9930
  "quality": 1,
8992
- "what": "Heading has no accessible name"
9931
+ "what": "Text does not meet minimum color contrast"
8993
9932
  },
8994
- "QW-BP3": {
8995
- "issueID": "titleRedundant",
9933
+ "css-orientation-lock": {
9934
+ "issueID": "cssBansPageRotate",
8996
9935
  "quality": 1,
8997
- "what": "Link text content is equal to the title attribute"
9936
+ "what": "CSS locks the page to a single orientation"
8998
9937
  },
8999
- "QW-ACT-R1": {
9000
- "issueID": "pageTitle",
9938
+ "definition-list-children-valid": {
9939
+ "issueID": "listChild",
9001
9940
  "quality": 1,
9002
- "what": "HTML page has no title"
9941
+ "what": "Description list contains a child other than dt or dd"
9003
9942
  },
9004
- "QW-WCAG-T27": {
9005
- "issueID": "justification",
9943
+ "deprecated-elements-not-used": {
9944
+ "issueID": "obsoleteMotion",
9006
9945
  "quality": 1,
9007
- "what": "Text is justified (aligned to both the left and the right margins)"
9946
+ "what": "Obsolete non-stoppable motion element (blink or marquee) is used"
9008
9947
  },
9009
- "QW-WCAG-T29": {
9010
- "issueID": "justificationRisk",
9948
+ "dialog-name-present": {
9949
+ "issueID": "dialogNoText",
9011
9950
  "quality": 1,
9012
- "what": "Alignment either to the left or right is not specified in CSS"
9951
+ "what": "Dialog has no accessible name"
9013
9952
  },
9014
- "QW-WCAG-T33": {
9953
+ "dlitem-parent-valid": {
9015
9954
  "issueID": "descriptionOrphan",
9016
9955
  "quality": 1,
9017
- "what": "Element is not contained by a valid dl element"
9018
- },
9019
- "QW-WCAG-T34": {
9020
- "issueID": "descriptionOrder",
9021
- "quality": 1,
9022
- "what": "Description list element is not ordered correctly"
9956
+ "what": "dt or dd element is not inside a dl element"
9023
9957
  },
9024
- "QW-BP11": {
9025
- "issueID": "pseudoList",
9958
+ "duplicate-id": {
9959
+ "issueID": "duplicateID",
9026
9960
  "quality": 1,
9027
- "what": "br is used to make a list"
9961
+ "what": "id attribute is not unique"
9028
9962
  },
9029
- "QW-WCAG-T3": {
9030
- "issueID": "legendMissing",
9963
+ "duplicate-id-aria": {
9964
+ "issueID": "duplicateID",
9031
9965
  "quality": 1,
9032
- "what": "Description for a group of form controls using fieldset and legend elements is not provided"
9966
+ "what": "id referenced by ARIA is not unique"
9033
9967
  },
9034
- "QW-WCAG-T12": {
9035
- "issueID": "layoutTable",
9968
+ "embed-text-alternative-present": {
9969
+ "issueID": "objectNoText",
9036
9970
  "quality": 1,
9037
- "what": "th or caption element or non-empty summary attribute used in a layout table"
9971
+ "what": "embed element has no text alternative"
9038
9972
  },
9039
- "QW-BP9": {
9040
- "issueID": "layoutTable",
9973
+ "form-control-programmatic-label-present": {
9974
+ "issueID": "controlNoText",
9041
9975
  "quality": 1,
9042
- "what": "Table element without header cells has a caption"
9976
+ "what": "Form control has no programmatic label"
9043
9977
  },
9044
- "QW-WCAG-T18": {
9045
- "issueID": "tabularTableless",
9978
+ "form-control-single-label": {
9979
+ "issueID": "labelNot1",
9046
9980
  "quality": 1,
9047
- "what": "Table markup not used to present tabular information"
9981
+ "what": "Form control has multiple labels"
9048
9982
  },
9049
- "QW-WCAG-T2": {
9050
- "issueID": "tableCaption",
9983
+ "html-lang-attr-present": {
9984
+ "issueID": "pageLanguage",
9051
9985
  "quality": 1,
9052
- "what": "caption element not used to associate a caption with a data table"
9986
+ "what": "html element has no lang attribute"
9053
9987
  },
9054
- "QW-ACT-R36": {
9055
- "issueID": "cellHeadersOutsideTable",
9988
+ "html-xml-lang-mismatch": {
9989
+ "issueID": "pageLanguageBad",
9056
9990
  "quality": 1,
9057
- "what": "Headers attribute does not refer to a cell in the same table element"
9991
+ "what": "lang and xml:lang attributes disagree"
9058
9992
  },
9059
- "QW-WCAG-T14": {
9060
- "issueID": "cellHeadersAmbiguityRisk",
9993
+ "identical-iframes-same-purpose": {
9994
+ "issueID": "iframeConfusion",
9061
9995
  "quality": 1,
9062
- "what": "id and headers attributes not used to associate data cells with header cells in a data table"
9996
+ "what": "Frames with the same accessible name embed different resources"
9063
9997
  },
9064
- "QW-WCAG-T25": {
9065
- "issueID": "cellHeadersAmbiguityRisk",
9998
+ "iframe-focusable-content": {
9999
+ "issueID": "focusableHidden",
9066
10000
  "quality": 1,
9067
- "what": "scope attribute not used to associate header cells and data cells in a data table"
10001
+ "what": "Frame with tabindex of -1 contains focusable content"
9068
10002
  },
9069
- "QW-BP12": {
9070
- "issueID": "cellHeadersAmbiguityRisk",
10003
+ "iframe-name-present": {
10004
+ "issueID": "iframeTitleBad",
9071
10005
  "quality": 1,
9072
- "what": "scope col and row are not used"
10006
+ "what": "Frame has no accessible name"
9073
10007
  },
9074
- "QW-ACT-R39": {
9075
- "issueID": "tableHeaderCellless",
10008
+ "iframe-title-unique": {
10009
+ "issueID": "iframeTitleBad",
9076
10010
  "quality": 1,
9077
- "what": "Table header cell has no assigned data cell"
10011
+ "what": "Frame title is not unique"
9078
10012
  },
9079
- "QW-BP5": {
9080
- "issueID": "tableEmbedded",
10013
+ "img-alt-present": {
10014
+ "issueID": "imageNoText",
9081
10015
  "quality": 1,
9082
- "what": "table element is inside another table element"
10016
+ "what": "img element has no alt attribute"
9083
10017
  },
9084
- "QW-ACT-R16": {
9085
- "issueID": "controlNoText",
10018
+ "input-image-alt-present": {
10019
+ "issueID": "imageButtonNoText",
9086
10020
  "quality": 1,
9087
- "what": "Form control has no accessible name"
10021
+ "what": "Image input has no text alternative"
9088
10022
  },
9089
- "QW-ACT-R30": {
10023
+ "label-in-name": {
9090
10024
  "issueID": "visibleLabelNotInName",
9091
10025
  "quality": 1,
9092
- "what": "Visible label is not part of the accessible name"
10026
+ "what": "Accessible name does not contain the visible text"
9093
10027
  },
9094
- "QW-ACT-R70": {
9095
- "issueID": "unfocusability",
10028
+ "link-in-text-block": {
10029
+ "issueID": "linkIndication",
9096
10030
  "quality": 1,
9097
- "what": "iframe with negative tabindex has interactive elements"
10031
+ "what": "Link is not distinguishable from surrounding text without color"
9098
10032
  },
9099
- "QW-BP25": {
9100
- "issueID": "asideNotTop",
10033
+ "link-name-present": {
10034
+ "issueID": "linkNoText",
9101
10035
  "quality": 1,
9102
- "what": "complementary landmark is not at the top level"
10036
+ "what": "Link has no accessible name"
9103
10037
  },
9104
- "QW-BP26": {
9105
- "issueID": "asideNotTop",
10038
+ "list-children-valid": {
10039
+ "issueID": "listChild",
9106
10040
  "quality": 1,
9107
- "what": "complementary landmark is not at the top level"
10041
+ "what": "List contains a child other than a list item"
9108
10042
  },
9109
- "QW-BP27": {
9110
- "issueID": "mainNotTop",
10043
+ "listbox-name-present": {
10044
+ "issueID": "componentNoText",
9111
10045
  "quality": 1,
9112
- "what": "main landmark is not at the top level"
10046
+ "what": "Listbox has no accessible name"
9113
10047
  },
9114
- "QW-BP19": {
9115
- "issueID": "bannerNotTop",
10048
+ "listitem-parent-valid": {
10049
+ "issueID": "listItemOrphan",
9116
10050
  "quality": 1,
9117
- "what": "banner landmark is not at the top level"
9118
- },
9119
- "QW-BP21": {
9120
- "issueID": "footerNot1",
9121
- "quality": .5,
9122
- "what": "There are multiple contentinfo or banner landmarks"
10051
+ "what": "li element is not inside a ul or ol element"
9123
10052
  },
9124
- "QW-WCAG-T26": {
9125
- "issueID": "focusableRole",
10053
+ "menuitem-name-present": {
10054
+ "issueID": "menuItemNoText",
9126
10055
  "quality": 1,
9127
- "what": "Script makes a div or span a user interface control without providing a role for the control"
10056
+ "what": "Menu item has no accessible name"
9128
10057
  },
9129
- "QW-ACT-R65": {
9130
- "issueID": "focusableDescendants",
10058
+ "meta-refresh-no-exceptions": {
10059
+ "issueID": "refresh",
9131
10060
  "quality": 1,
9132
- "what": "Element with presentational children has focusable content"
10061
+ "what": "Page uses a meta refresh"
9133
10062
  },
9134
- "QW-WCAG-T13": {
9135
- "issueID": "blink",
10063
+ "meta-refresh-timing-absent": {
10064
+ "issueID": "refresh",
9136
10065
  "quality": 1,
9137
- "what": "Element is blink"
10066
+ "what": "Page uses a timed meta refresh"
9138
10067
  },
9139
- "QW-WCAG-T30": {
9140
- "issueID": "blink",
10068
+ "meta-viewport-zoom-enabled": {
10069
+ "issueID": "metaBansZoom",
9141
10070
  "quality": 1,
9142
- "what": "text-decoration:blink is used without a mechanism to stop it in less than five seconds"
10071
+ "what": "Viewport meta tag disables zoom"
9143
10072
  },
9144
- "QW-ACT-R15": {
9145
- "issueID": "autoplay",
10073
+ "meter-name-present": {
10074
+ "issueID": "progressNoText",
9146
10075
  "quality": 1,
9147
- "what": "Element has audio that plays automatically"
10076
+ "what": "Meter has no accessible name"
9148
10077
  },
9149
- "QW-ACT-R49": {
9150
- "issueID": "autoplayLong",
10078
+ "nested-interactive-controls-absent": {
10079
+ "issueID": "activeEmbedding",
9151
10080
  "quality": 1,
9152
- "what": "Element that plays automatically has audio lasting more than 3 seconds"
10081
+ "what": "Interactive control contains another interactive control"
9153
10082
  },
9154
- "QW-ACT-R50": {
9155
- "issueID": "autoplayControl",
10083
+ "object-text-alternative-present": {
10084
+ "issueID": "objectNoText",
9156
10085
  "quality": 1,
9157
- "what": "audio or video that plays automatically has no control mechanism"
10086
+ "what": "object element has no text alternative"
9158
10087
  },
9159
- "QW-ACT-R4": {
9160
- "issueID": "refresh",
10088
+ "option-name-present": {
10089
+ "issueID": "componentNoText",
9161
10090
  "quality": 1,
9162
- "what": "Element refreshes or redirects with delay"
10091
+ "what": "Option has no accessible name"
9163
10092
  },
9164
- "QW-ACT-R71": {
9165
- "issueID": "refresh",
10093
+ "page-title-present": {
10094
+ "issueID": "pageTitle",
9166
10095
  "quality": 1,
9167
- "what": "Element has a refresh delay (no exception)"
10096
+ "what": "Page has no title or an empty title"
9168
10097
  },
9169
- "QW-ACT-R26": {
9170
- "issueID": "audioNoText",
10098
+ "presentational-children-focusable-absent": {
10099
+ "issueID": "focusableDescendants",
9171
10100
  "quality": 1,
9172
- "what": "Auditory content of the element has no accessible alternative"
10101
+ "what": "Role with presentational children contains focusable content"
9173
10102
  },
9174
- "QW-ACT-R29": {
9175
- "issueID": "audioNoText",
10103
+ "progressbar-name-present": {
10104
+ "issueID": "progressNoText",
9176
10105
  "quality": 1,
9177
- "what": "Content of the element has no text alternative"
10106
+ "what": "Progress bar has no accessible name"
9178
10107
  },
9179
- "QW-ACT-R58": {
9180
- "issueID": "audioNoText",
10108
+ "role-img-text-alternative-present": {
10109
+ "issueID": "imageNoText",
9181
10110
  "quality": 1,
9182
- "what": "Content of the element has no transcript"
10111
+ "what": "Element with role of img has no text alternative"
9183
10112
  },
9184
- "QW-ACT-R59": {
9185
- "issueID": "audioNoText",
10113
+ "searchbox-name-present": {
10114
+ "issueID": "inputNoText",
9186
10115
  "quality": 1,
9187
- "what": "Element content is not a media alternative for text"
10116
+ "what": "Searchbox has no accessible name"
9188
10117
  },
9189
- "QW-ACT-R60": {
9190
- "issueID": "audioNoText",
10118
+ "server-side-image-map-absent": {
10119
+ "issueID": "imageMapServerSide",
9191
10120
  "quality": 1,
9192
- "what": "Auditory content of the element has no captions"
10121
+ "what": "img element has an ismap attribute"
9193
10122
  },
9194
- "QW-ACT-R23": {
9195
- "issueID": "videoNoText",
10123
+ "slider-name-present": {
10124
+ "issueID": "inputNoText",
9196
10125
  "quality": 1,
9197
- "what": "video element visual content has no accessible alternative"
10126
+ "what": "Slider has no accessible name"
9198
10127
  },
9199
- "QW-ACT-R31": {
9200
- "issueID": "videoNoText",
10128
+ "spinbutton-name-present": {
10129
+ "issueID": "inputNoText",
9201
10130
  "quality": 1,
9202
- "what": "video element visual-only content has no accessible alternative"
10131
+ "what": "Spinbutton has no accessible name"
9203
10132
  },
9204
- "QW-ACT-R32": {
9205
- "issueID": "videoNoText",
10133
+ "summary-name-present": {
10134
+ "issueID": "buttonNoText",
9206
10135
  "quality": 1,
9207
- "what": "video element visual-only content has no strict accessible alternative"
10136
+ "what": "summary element has no accessible name"
9208
10137
  },
9209
- "QW-ACT-R51": {
9210
- "issueID": "videoNoText",
10138
+ "svg-image-text-alternative-present": {
10139
+ "issueID": "svgImageNoText",
9211
10140
  "quality": 1,
9212
- "what": "video element visual-only content is not a media alternative for text"
10141
+ "what": "SVG image element has no text alternative"
9213
10142
  },
9214
- "QW-ACT-R56": {
9215
- "issueID": "videoNoText",
10143
+ "svg-text-alternative-present": {
10144
+ "issueID": "svgImageNoText",
9216
10145
  "quality": 1,
9217
- "what": "video element content is not a media alternative for text"
10146
+ "what": "SVG element has no text alternative"
9218
10147
  },
9219
- "QW-ACT-R61": {
9220
- "issueID": "videoNoText",
10148
+ "tab-name-present": {
10149
+ "issueID": "componentNoText",
9221
10150
  "quality": 1,
9222
- "what": "video element visual content has no transcript"
10151
+ "what": "Tab has no accessible name"
9223
10152
  },
9224
- "QW-ACT-R53": {
9225
- "issueID": "videoNoTranscript",
10153
+ "table-headers-attr-valid": {
10154
+ "issueID": "tableHeaderless",
9226
10155
  "quality": 1,
9227
- "what": "video element visual-only content has no transcript"
10156
+ "what": "Table header attributes are invalid"
9228
10157
  },
9229
- "QW-ACT-R55": {
9230
- "issueID": "videoNoAudioDescription",
10158
+ "table-th-has-data-cells": {
10159
+ "issueID": "tableHeaderCellless",
9231
10160
  "quality": 1,
9232
- "what": "video element visual content has no audio description"
10161
+ "what": "th element does not describe any data cell"
9233
10162
  },
9234
- "QW-ACT-R54": {
9235
- "issueID": "videoNoAudioTrack",
10163
+ "target-size-minimum": {
10164
+ "issueID": "targetTiny",
9236
10165
  "quality": 1,
9237
- "what": "Visual-only content of the element has no audio track alternative"
10166
+ "what": "Pointer target is smaller than 24 CSS pixels"
9238
10167
  },
9239
- "QW-ACT-R43": {
9240
- "issueID": "keyboardScroll",
10168
+ "td-has-header": {
10169
+ "issueID": "tableCellHeaderless",
9241
10170
  "quality": 1,
9242
- "what": "Scrollable element is not keyboard accessible"
10171
+ "what": "Data cell in a large table has no associated header"
9243
10172
  },
9244
- "QW-BP18": {
9245
- "issueID": "scrollRisk",
10173
+ "textbox-name-present": {
10174
+ "issueID": "inputNoText",
9246
10175
  "quality": 1,
9247
- "what": "Percentage is not used in CSS for a container size"
10176
+ "what": "Textbox has no accessible name"
9248
10177
  },
9249
- "QW-ACT-R72": {
9250
- "issueID": "repeatedContentRisk",
10178
+ "tooltip-name-present": {
10179
+ "issueID": "componentNoText",
9251
10180
  "quality": 1,
9252
- "what": "First focusable element is not a link to the non-repeated content"
10181
+ "what": "Tooltip has no accessible name"
9253
10182
  },
9254
- "QW-WCAG-T19": {
9255
- "issueID": "submitButton",
10183
+ "treeitem-name-present": {
10184
+ "issueID": "componentNoText",
9256
10185
  "quality": 1,
9257
- "what": "Submit button not provided"
10186
+ "what": "Tree item has no accessible name"
9258
10187
  },
9259
- "QW-BP10": {
9260
- "issueID": "elementObsolete",
10188
+ "valid-lang": {
10189
+ "issueID": "elementLanguageBad",
9261
10190
  "quality": 1,
9262
- "what": "HTML element is used to control the visual presentation of content"
10191
+ "what": "Element lang attribute is not syntactically valid"
9263
10192
  },
9264
- "QW-WCAG-T16": {
9265
- "issueID": "parseError",
10193
+ "video-poster-text-alternative-present": {
10194
+ "issueID": "imageNoText",
9266
10195
  "quality": 1,
9267
- "what": "HTML is not used according to spec"
10196
+ "what": "Video poster has no text alternative"
9268
10197
  }
9269
10198
  },
9270
10199
  "variable": {}