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/README.md +4 -2
- package/dist/index.cjs +1451 -522
- package/dist/index.d.cts +148 -65
- package/dist/index.d.mts +148 -65
- package/dist/index.mjs +1451 -522
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -3,10 +3,10 @@ declare const outcomes: readonly ['failed', 'cantTell'];
|
|
|
3
3
|
declare const uncertainties: readonly ['not-computable', 'judgement-required', 'runtime-dependent', 'spec-only', 'equivalence-unknown', 'out-of-scope'];
|
|
4
4
|
declare const whyIgnore: readonly ['duplicative', 'invalid', 'irrelevant', 'speculative', 'unreliable'];
|
|
5
5
|
type IssueID = keyof typeof issuesData;
|
|
6
|
-
type IssueEngineRuleCounts = Record<string, number>;
|
|
7
|
-
type Outcome = typeof outcomes[number];
|
|
8
|
-
type Uncertainty = typeof uncertainties[number];
|
|
9
|
-
type WhyIgnore = typeof whyIgnore[number];
|
|
6
|
+
export type IssueEngineRuleCounts = Record<string, number>;
|
|
7
|
+
export type Outcome = typeof outcomes[number];
|
|
8
|
+
export type Uncertainty = typeof uncertainties[number];
|
|
9
|
+
export type WhyIgnore = typeof whyIgnore[number];
|
|
10
10
|
interface Issue {
|
|
11
11
|
summary: string;
|
|
12
12
|
why: string;
|
|
@@ -14,7 +14,7 @@ interface Issue {
|
|
|
14
14
|
weight: number;
|
|
15
15
|
max?: number;
|
|
16
16
|
}
|
|
17
|
-
interface ruleIDsByType {
|
|
17
|
+
export interface ruleIDsByType {
|
|
18
18
|
invariant: string[];
|
|
19
19
|
variable: string[];
|
|
20
20
|
}
|
|
@@ -75,6 +75,12 @@ declare const issuesData: {
|
|
|
75
75
|
readonly wcag: '2.2.2';
|
|
76
76
|
readonly weight: 3;
|
|
77
77
|
};
|
|
78
|
+
readonly animationTriggered: {
|
|
79
|
+
readonly summary: 'interaction triggers unpreventable animation';
|
|
80
|
+
readonly why: 'Motion-sensitive user may suffer harm';
|
|
81
|
+
readonly wcag: '2.3.3';
|
|
82
|
+
readonly weight: 3;
|
|
83
|
+
};
|
|
78
84
|
readonly appletNoText: {
|
|
79
85
|
readonly summary: 'applet not named';
|
|
80
86
|
readonly why: 'User cannot get help on how to use a custom item';
|
|
@@ -125,7 +131,7 @@ declare const issuesData: {
|
|
|
125
131
|
};
|
|
126
132
|
readonly ariaRedundant: {
|
|
127
133
|
readonly summary: 'aria attribute redundant';
|
|
128
|
-
readonly why: '
|
|
134
|
+
readonly why: 'Page includes unnecessary code';
|
|
129
135
|
readonly wcag: '4.1.2';
|
|
130
136
|
readonly weight: 1;
|
|
131
137
|
};
|
|
@@ -161,7 +167,7 @@ declare const issuesData: {
|
|
|
161
167
|
};
|
|
162
168
|
readonly atRuleInvalid: {
|
|
163
169
|
readonly summary: 'invalid at-rule';
|
|
164
|
-
readonly why: '
|
|
170
|
+
readonly why: 'Page cannot be properly displayed in particular contexts';
|
|
165
171
|
readonly wcag: '4.1';
|
|
166
172
|
readonly weight: 3;
|
|
167
173
|
};
|
|
@@ -179,7 +185,7 @@ declare const issuesData: {
|
|
|
179
185
|
};
|
|
180
186
|
readonly attributeObsolete: {
|
|
181
187
|
readonly summary: 'attribute obsolete';
|
|
182
|
-
readonly why: '
|
|
188
|
+
readonly why: 'Page includes obsolete code that the browser may fail to process';
|
|
183
189
|
readonly wcag: '4.1';
|
|
184
190
|
readonly weight: 3;
|
|
185
191
|
};
|
|
@@ -207,6 +213,12 @@ declare const issuesData: {
|
|
|
207
213
|
readonly wcag: '1.2.1';
|
|
208
214
|
readonly weight: 1;
|
|
209
215
|
};
|
|
216
|
+
readonly autoAuthBanned: {
|
|
217
|
+
readonly summary: 'login automation prohibited';
|
|
218
|
+
readonly why: 'User cannot get help needed for logging in';
|
|
219
|
+
readonly wcag: '3.3.8';
|
|
220
|
+
readonly weight: 4;
|
|
221
|
+
};
|
|
210
222
|
readonly autocompleteBad: {
|
|
211
223
|
readonly summary: 'autocomplete invalid';
|
|
212
224
|
readonly why: 'User cannot get help entering personal information in a form item';
|
|
@@ -307,7 +319,7 @@ declare const issuesData: {
|
|
|
307
319
|
readonly boxInvisibleRisk: {
|
|
308
320
|
readonly summary: 'border or outline invisible?';
|
|
309
321
|
readonly why: 'User cannot perceive the boundary of an item';
|
|
310
|
-
readonly wcag: '
|
|
322
|
+
readonly wcag: '1.4.11';
|
|
311
323
|
readonly weight: 1;
|
|
312
324
|
};
|
|
313
325
|
readonly boxSizeAbsolute: {
|
|
@@ -316,15 +328,21 @@ declare const issuesData: {
|
|
|
316
328
|
readonly wcag: '1.4.4';
|
|
317
329
|
readonly weight: 3;
|
|
318
330
|
};
|
|
331
|
+
readonly brailleOnly: {
|
|
332
|
+
readonly summary: 'element has only a Braille name or role';
|
|
333
|
+
readonly why: 'User cannot get help understanding an item';
|
|
334
|
+
readonly wcag: '4.1.2';
|
|
335
|
+
readonly weight: 4;
|
|
336
|
+
};
|
|
319
337
|
readonly browserSupportRisk: {
|
|
320
338
|
readonly summary: 'inputmode attribute';
|
|
321
|
-
readonly why: '
|
|
339
|
+
readonly why: 'Page may include code that the browser cannot process';
|
|
322
340
|
readonly wcag: '4.1';
|
|
323
341
|
readonly weight: 1;
|
|
324
342
|
};
|
|
325
343
|
readonly buttonAlt: {
|
|
326
344
|
readonly summary: 'button has alt';
|
|
327
|
-
readonly why: 'User cannot get help
|
|
345
|
+
readonly why: 'User cannot get help explaining a button';
|
|
328
346
|
readonly wcag: '4.1.2';
|
|
329
347
|
readonly weight: 4;
|
|
330
348
|
};
|
|
@@ -374,7 +392,7 @@ declare const issuesData: {
|
|
|
374
392
|
readonly clickOnly: {
|
|
375
393
|
readonly summary: 'name dubiously mouse-specific';
|
|
376
394
|
readonly why: 'User may misunderstand how to activate a link';
|
|
377
|
-
readonly wcag: '2.
|
|
395
|
+
readonly wcag: '2.1.1';
|
|
378
396
|
readonly weight: 1;
|
|
379
397
|
};
|
|
380
398
|
readonly colorNamedRisk: {
|
|
@@ -404,7 +422,7 @@ declare const issuesData: {
|
|
|
404
422
|
readonly contentHidden: {
|
|
405
423
|
readonly summary: 'page hidden';
|
|
406
424
|
readonly why: 'User cannot get the page content';
|
|
407
|
-
readonly wcag: '
|
|
425
|
+
readonly wcag: '1';
|
|
408
426
|
readonly weight: 4;
|
|
409
427
|
readonly max: 1;
|
|
410
428
|
};
|
|
@@ -458,7 +476,7 @@ declare const issuesData: {
|
|
|
458
476
|
};
|
|
459
477
|
readonly cssInvalid: {
|
|
460
478
|
readonly summary: 'CSS invalid';
|
|
461
|
-
readonly why: '
|
|
479
|
+
readonly why: 'Page cannot be properly displayed';
|
|
462
480
|
readonly wcag: '4.1';
|
|
463
481
|
readonly weight: 3;
|
|
464
482
|
};
|
|
@@ -547,9 +565,9 @@ declare const issuesData: {
|
|
|
547
565
|
readonly weight: 1;
|
|
548
566
|
};
|
|
549
567
|
readonly directionRisk: {
|
|
550
|
-
readonly summary: '
|
|
551
|
-
readonly why: '
|
|
552
|
-
readonly wcag: '1
|
|
568
|
+
readonly summary: 'text direction wrong?';
|
|
569
|
+
readonly why: 'Helper may misread text to the user';
|
|
570
|
+
readonly wcag: '4.1';
|
|
553
571
|
readonly weight: 1;
|
|
554
572
|
};
|
|
555
573
|
readonly divInTable: {
|
|
@@ -568,21 +586,21 @@ declare const issuesData: {
|
|
|
568
586
|
readonly docTypeBad: {
|
|
569
587
|
readonly summary: 'DOCTYPE invalid';
|
|
570
588
|
readonly why: 'Browser processes the page improperly';
|
|
571
|
-
readonly wcag: '
|
|
589
|
+
readonly wcag: '4.1';
|
|
572
590
|
readonly weight: 3;
|
|
573
591
|
readonly max: 1;
|
|
574
592
|
};
|
|
575
593
|
readonly docTypeMisplaced: {
|
|
576
594
|
readonly summary: 'DOCTYPE in invalid location';
|
|
577
595
|
readonly why: 'Browser processes the page improperly';
|
|
578
|
-
readonly wcag: '
|
|
596
|
+
readonly wcag: '4.1';
|
|
579
597
|
readonly weight: 4;
|
|
580
598
|
readonly max: 1;
|
|
581
599
|
};
|
|
582
600
|
readonly docTypeMissing: {
|
|
583
601
|
readonly summary: 'DOCTYPE missing';
|
|
584
602
|
readonly why: 'Browser processes the page improperly';
|
|
585
|
-
readonly wcag: '
|
|
603
|
+
readonly wcag: '4.1';
|
|
586
604
|
readonly weight: 4;
|
|
587
605
|
readonly max: 1;
|
|
588
606
|
};
|
|
@@ -592,16 +610,22 @@ declare const issuesData: {
|
|
|
592
610
|
readonly wcag: '1.3.6';
|
|
593
611
|
readonly weight: 3;
|
|
594
612
|
};
|
|
613
|
+
readonly dragAlt: {
|
|
614
|
+
readonly summary: 'no single-pointer alternative to dragging';
|
|
615
|
+
readonly why: 'Click-only user cannot perform an operation';
|
|
616
|
+
readonly wcag: '2.5.7';
|
|
617
|
+
readonly weight: 4;
|
|
618
|
+
};
|
|
595
619
|
readonly duplicateAttribute: {
|
|
596
620
|
readonly summary: 'duplicate attribute';
|
|
597
621
|
readonly why: 'Browser processes the page improperly';
|
|
598
|
-
readonly wcag: '4.1
|
|
622
|
+
readonly wcag: '4.1';
|
|
599
623
|
readonly weight: 2;
|
|
600
624
|
};
|
|
601
625
|
readonly duplicateID: {
|
|
602
626
|
readonly summary: 'ID not unique';
|
|
603
627
|
readonly why: 'User may be pointed to the wrong item';
|
|
604
|
-
readonly wcag: '4.1
|
|
628
|
+
readonly wcag: '4.1';
|
|
605
629
|
readonly weight: 4;
|
|
606
630
|
};
|
|
607
631
|
readonly editableHow: {
|
|
@@ -618,8 +642,8 @@ declare const issuesData: {
|
|
|
618
642
|
};
|
|
619
643
|
readonly elementClosure: {
|
|
620
644
|
readonly summary: 'element closure invalid';
|
|
621
|
-
readonly why: '
|
|
622
|
-
readonly wcag: '4.1
|
|
645
|
+
readonly why: 'Page contains invalid code';
|
|
646
|
+
readonly wcag: '4.1';
|
|
623
647
|
readonly weight: 3;
|
|
624
648
|
};
|
|
625
649
|
readonly elementLanguageBad: {
|
|
@@ -630,7 +654,7 @@ declare const issuesData: {
|
|
|
630
654
|
};
|
|
631
655
|
readonly elementObsolete: {
|
|
632
656
|
readonly summary: 'element obsolete';
|
|
633
|
-
readonly why: '
|
|
657
|
+
readonly why: 'Page includes obsolete code that the browser may fail to process';
|
|
634
658
|
readonly wcag: '4.1';
|
|
635
659
|
readonly weight: 3;
|
|
636
660
|
};
|
|
@@ -643,7 +667,7 @@ declare const issuesData: {
|
|
|
643
667
|
readonly encodingBad: {
|
|
644
668
|
readonly summary: 'text not Unicode-compliant';
|
|
645
669
|
readonly why: 'User cannot read all of the text';
|
|
646
|
-
readonly wcag: '
|
|
670
|
+
readonly wcag: '4.1';
|
|
647
671
|
readonly weight: 4;
|
|
648
672
|
};
|
|
649
673
|
readonly encodingMisdeclared: {
|
|
@@ -680,7 +704,7 @@ declare const issuesData: {
|
|
|
680
704
|
};
|
|
681
705
|
readonly fatalError: {
|
|
682
706
|
readonly summary: 'fatal error';
|
|
683
|
-
readonly why: '
|
|
707
|
+
readonly why: 'Page prevents testing for accessibility';
|
|
684
708
|
readonly wcag: '4.1';
|
|
685
709
|
readonly weight: 4;
|
|
686
710
|
readonly max: 1;
|
|
@@ -705,7 +729,7 @@ declare const issuesData: {
|
|
|
705
729
|
};
|
|
706
730
|
readonly flash: {
|
|
707
731
|
readonly summary: 'flash content';
|
|
708
|
-
readonly why: '
|
|
732
|
+
readonly why: 'Page includes code that may not work and may jeopardize user security';
|
|
709
733
|
readonly wcag: '4.1';
|
|
710
734
|
readonly weight: 1;
|
|
711
735
|
readonly max: 1;
|
|
@@ -740,6 +764,12 @@ declare const issuesData: {
|
|
|
740
764
|
readonly wcag: '4.1.2';
|
|
741
765
|
readonly weight: 3;
|
|
742
766
|
};
|
|
767
|
+
readonly focusCovered: {
|
|
768
|
+
readonly summary: 'focused element covered';
|
|
769
|
+
readonly why: 'User cannot see which item will be operated on';
|
|
770
|
+
readonly wcag: '2.4.11';
|
|
771
|
+
readonly weight: 4;
|
|
772
|
+
};
|
|
743
773
|
readonly focusDiscrepancy: {
|
|
744
774
|
readonly summary: 'Tab-focusable elements wrong';
|
|
745
775
|
readonly why: 'Item selections by a keyboard-only user are useless or impossible';
|
|
@@ -770,6 +800,12 @@ declare const issuesData: {
|
|
|
770
800
|
readonly wcag: '2.4.7';
|
|
771
801
|
readonly weight: 1;
|
|
772
802
|
};
|
|
803
|
+
readonly focusSurprise: {
|
|
804
|
+
readonly summary: 'autofocus unexpected';
|
|
805
|
+
readonly why: 'Unexpected navigation to an item confuses the user';
|
|
806
|
+
readonly wcag: '3.2.5';
|
|
807
|
+
readonly weight: 2;
|
|
808
|
+
};
|
|
773
809
|
readonly fontSizeAbsolute: {
|
|
774
810
|
readonly summary: 'font size absolute';
|
|
775
811
|
readonly why: 'User cannot adjust the text size for readability';
|
|
@@ -833,7 +869,7 @@ declare const issuesData: {
|
|
|
833
869
|
};
|
|
834
870
|
readonly frameSandboxRisk: {
|
|
835
871
|
readonly summary: 'iframe sandbox attributes risky';
|
|
836
|
-
readonly why: '
|
|
872
|
+
readonly why: 'Page may be unsafe to use';
|
|
837
873
|
readonly wcag: '4.1';
|
|
838
874
|
readonly weight: 2;
|
|
839
875
|
};
|
|
@@ -878,7 +914,7 @@ declare const issuesData: {
|
|
|
878
914
|
readonly headElementsBad: {
|
|
879
915
|
readonly summary: 'element in head invalid';
|
|
880
916
|
readonly why: 'Browser processes the page improperly';
|
|
881
|
-
readonly wcag: '4.1
|
|
917
|
+
readonly wcag: '4.1';
|
|
882
918
|
readonly weight: 3;
|
|
883
919
|
};
|
|
884
920
|
readonly headingConfusion: {
|
|
@@ -945,7 +981,7 @@ declare const issuesData: {
|
|
|
945
981
|
readonly hideFailureRisk: {
|
|
946
982
|
readonly summary: 'false aria-hidden value risky';
|
|
947
983
|
readonly why: 'User may be misled by erroneously hidden or revealed page content';
|
|
948
|
-
readonly wcag: '
|
|
984
|
+
readonly wcag: '1.3.1';
|
|
949
985
|
readonly weight: 1;
|
|
950
986
|
};
|
|
951
987
|
readonly horizontalSpacingFrozen: {
|
|
@@ -957,7 +993,7 @@ declare const issuesData: {
|
|
|
957
993
|
readonly hoverIndication: {
|
|
958
994
|
readonly summary: 'hover indication poor';
|
|
959
995
|
readonly why: 'User cannot explore the page reliably with a mouse';
|
|
960
|
-
readonly wcag: '
|
|
996
|
+
readonly wcag: '2.4';
|
|
961
997
|
readonly weight: 3;
|
|
962
998
|
};
|
|
963
999
|
readonly hoverSurprise: {
|
|
@@ -978,6 +1014,12 @@ declare const issuesData: {
|
|
|
978
1014
|
readonly wcag: '1.3.1';
|
|
979
1015
|
readonly weight: 4;
|
|
980
1016
|
};
|
|
1017
|
+
readonly iframeConfusion: {
|
|
1018
|
+
readonly summary: 'different iframes named identically';
|
|
1019
|
+
readonly why: 'User gets incorrect help about parts of a page';
|
|
1020
|
+
readonly wcag: '4.1.2';
|
|
1021
|
+
readonly weight: 1;
|
|
1022
|
+
};
|
|
981
1023
|
readonly iframeTitleBad: {
|
|
982
1024
|
readonly summary: 'iframe not named';
|
|
983
1025
|
readonly why: 'User cannot get help on the topic of an embedded page';
|
|
@@ -1026,6 +1068,12 @@ declare const issuesData: {
|
|
|
1026
1068
|
readonly wcag: '1.1.1';
|
|
1027
1069
|
readonly weight: 4;
|
|
1028
1070
|
};
|
|
1071
|
+
readonly imageMapServerSide: {
|
|
1072
|
+
readonly summary: 'image map is server-side';
|
|
1073
|
+
readonly why: 'Keyboard-only user cannot choose a region of an image';
|
|
1074
|
+
readonly wcag: '2.1.1';
|
|
1075
|
+
readonly weight: 4;
|
|
1076
|
+
};
|
|
1029
1077
|
readonly imageNoText: {
|
|
1030
1078
|
readonly summary: 'image not named';
|
|
1031
1079
|
readonly why: 'User cannot get help to know what is in an image';
|
|
@@ -1110,6 +1158,18 @@ declare const issuesData: {
|
|
|
1110
1158
|
readonly wcag: '4.1.2';
|
|
1111
1159
|
readonly weight: 3;
|
|
1112
1160
|
};
|
|
1161
|
+
readonly inputRepeat: {
|
|
1162
|
+
readonly summary: 'form requires non-automatic duplicate re-entry';
|
|
1163
|
+
readonly why: 'Form completion is slower and more difficult than necessary';
|
|
1164
|
+
readonly wcag: '3.3.7';
|
|
1165
|
+
readonly weight: 4;
|
|
1166
|
+
};
|
|
1167
|
+
readonly inputSurprise: {
|
|
1168
|
+
readonly summary: 'operating on an input unexpectedly alters the page';
|
|
1169
|
+
readonly why: 'User cannot predict the effect of using a form';
|
|
1170
|
+
readonly wcag: '3.2.2';
|
|
1171
|
+
readonly weight: 4;
|
|
1172
|
+
};
|
|
1113
1173
|
readonly internalLinkBroken: {
|
|
1114
1174
|
readonly summary: 'internal link broken';
|
|
1115
1175
|
readonly why: 'User cannot reach a promised page location';
|
|
@@ -1166,7 +1226,7 @@ declare const issuesData: {
|
|
|
1166
1226
|
};
|
|
1167
1227
|
readonly labeledHidden: {
|
|
1168
1228
|
readonly summary: 'control hidden but labeled';
|
|
1169
|
-
readonly why: '
|
|
1229
|
+
readonly why: 'Page includes unnecessary code';
|
|
1170
1230
|
readonly wcag: '1.3.1';
|
|
1171
1231
|
readonly weight: 1;
|
|
1172
1232
|
};
|
|
@@ -1274,13 +1334,13 @@ declare const issuesData: {
|
|
|
1274
1334
|
};
|
|
1275
1335
|
readonly linkElementBad: {
|
|
1276
1336
|
readonly summary: 'link element invalid';
|
|
1277
|
-
readonly why: '
|
|
1337
|
+
readonly why: 'Page fails to get a needed external resource';
|
|
1278
1338
|
readonly wcag: '1.3.1';
|
|
1279
1339
|
readonly weight: 4;
|
|
1280
1340
|
};
|
|
1281
1341
|
readonly linkElementMisplaced: {
|
|
1282
1342
|
readonly summary: 'link element misplaced';
|
|
1283
|
-
readonly why: '
|
|
1343
|
+
readonly why: 'Page fails to get a needed external resource';
|
|
1284
1344
|
readonly wcag: '1.3.1';
|
|
1285
1345
|
readonly weight: 4;
|
|
1286
1346
|
};
|
|
@@ -1475,8 +1535,8 @@ declare const issuesData: {
|
|
|
1475
1535
|
};
|
|
1476
1536
|
readonly nestingBad: {
|
|
1477
1537
|
readonly summary: 'nesting invalid';
|
|
1478
|
-
readonly why: '
|
|
1479
|
-
readonly wcag: '4.1
|
|
1538
|
+
readonly why: 'Page contains invalid code';
|
|
1539
|
+
readonly wcag: '4.1';
|
|
1480
1540
|
readonly weight: 3;
|
|
1481
1541
|
};
|
|
1482
1542
|
readonly newTabSurprise: {
|
|
@@ -1500,7 +1560,7 @@ declare const issuesData: {
|
|
|
1500
1560
|
};
|
|
1501
1561
|
readonly nonElement: {
|
|
1502
1562
|
readonly summary: 'element unknown';
|
|
1503
|
-
readonly why: '
|
|
1563
|
+
readonly why: 'Page includes an unknown element that the browser cannot process';
|
|
1504
1564
|
readonly wcag: '4.1';
|
|
1505
1565
|
readonly weight: 4;
|
|
1506
1566
|
};
|
|
@@ -1524,8 +1584,8 @@ declare const issuesData: {
|
|
|
1524
1584
|
};
|
|
1525
1585
|
readonly nonWebLink: {
|
|
1526
1586
|
readonly summary: 'link to non-web resource';
|
|
1527
|
-
readonly why: '
|
|
1528
|
-
readonly wcag: '1
|
|
1587
|
+
readonly why: 'Page points to harder-to-use resources';
|
|
1588
|
+
readonly wcag: '4.1';
|
|
1529
1589
|
readonly weight: 1;
|
|
1530
1590
|
};
|
|
1531
1591
|
readonly noOptionFocusable: {
|
|
@@ -1549,7 +1609,7 @@ declare const issuesData: {
|
|
|
1549
1609
|
readonly objectAudioRisk: {
|
|
1550
1610
|
readonly summary: 'non-audio element plays audio?';
|
|
1551
1611
|
readonly why: 'User may get inadequate help consuming audio content';
|
|
1552
|
-
readonly wcag: '
|
|
1612
|
+
readonly wcag: '3.2';
|
|
1553
1613
|
readonly weight: 1;
|
|
1554
1614
|
};
|
|
1555
1615
|
readonly objectBlurKeyboardRisk: {
|
|
@@ -1572,10 +1632,16 @@ declare const issuesData: {
|
|
|
1572
1632
|
};
|
|
1573
1633
|
readonly obsolete: {
|
|
1574
1634
|
readonly summary: 'code obsolete';
|
|
1575
|
-
readonly why: '
|
|
1635
|
+
readonly why: 'Page contains code that is no longer standard';
|
|
1576
1636
|
readonly wcag: '4.1';
|
|
1577
1637
|
readonly weight: 3;
|
|
1578
1638
|
};
|
|
1639
|
+
readonly obsoleteMotion: {
|
|
1640
|
+
readonly summary: 'obsolete element creates non-stoppable motion';
|
|
1641
|
+
readonly why: 'Motion-sensitive user suffers harm';
|
|
1642
|
+
readonly wcag: '2.2.2';
|
|
1643
|
+
readonly weight: 4;
|
|
1644
|
+
};
|
|
1579
1645
|
readonly optionNoText: {
|
|
1580
1646
|
readonly summary: 'option not named';
|
|
1581
1647
|
readonly why: 'User cannot get help to understand an option';
|
|
@@ -1638,7 +1704,7 @@ declare const issuesData: {
|
|
|
1638
1704
|
readonly pageTitleBad: {
|
|
1639
1705
|
readonly summary: 'page title invalid';
|
|
1640
1706
|
readonly why: 'Browser processes the page improperly';
|
|
1641
|
-
readonly wcag: '
|
|
1707
|
+
readonly wcag: '2.4.2';
|
|
1642
1708
|
readonly weight: 3;
|
|
1643
1709
|
readonly max: 1;
|
|
1644
1710
|
};
|
|
@@ -1762,9 +1828,15 @@ declare const issuesData: {
|
|
|
1762
1828
|
readonly wcag: '3.2.4';
|
|
1763
1829
|
readonly weight: 1;
|
|
1764
1830
|
};
|
|
1831
|
+
readonly reflow: {
|
|
1832
|
+
readonly summary: 'non-reflowing content forces 2D scrolling';
|
|
1833
|
+
readonly why: 'Reading content is slow and difficult';
|
|
1834
|
+
readonly wcag: '1.4.10';
|
|
1835
|
+
readonly weight: 4;
|
|
1836
|
+
};
|
|
1765
1837
|
readonly refresh: {
|
|
1766
1838
|
readonly summary: 'element reloads or redirects';
|
|
1767
|
-
readonly why: '
|
|
1839
|
+
readonly why: 'Page change may surprise a user';
|
|
1768
1840
|
readonly wcag: '2.2.1';
|
|
1769
1841
|
readonly weight: 3;
|
|
1770
1842
|
};
|
|
@@ -1837,7 +1909,7 @@ declare const issuesData: {
|
|
|
1837
1909
|
};
|
|
1838
1910
|
readonly roleRedundant: {
|
|
1839
1911
|
readonly summary: 'role redundant';
|
|
1840
|
-
readonly why: '
|
|
1912
|
+
readonly why: 'Page includes unnecessary code';
|
|
1841
1913
|
readonly wcag: '4.1.2';
|
|
1842
1914
|
readonly weight: 1;
|
|
1843
1915
|
};
|
|
@@ -1934,7 +2006,7 @@ declare const issuesData: {
|
|
|
1934
2006
|
};
|
|
1935
2007
|
readonly specRulesScriptBad: {
|
|
1936
2008
|
readonly summary: 'speculation rules script element invalid';
|
|
1937
|
-
readonly why: '
|
|
2009
|
+
readonly why: 'Page navigation performs poorly';
|
|
1938
2010
|
readonly wcag: '1.3.1';
|
|
1939
2011
|
readonly weight: 1;
|
|
1940
2012
|
};
|
|
@@ -2107,6 +2179,12 @@ declare const issuesData: {
|
|
|
2107
2179
|
readonly wcag: '2.1.1';
|
|
2108
2180
|
readonly weight: 2;
|
|
2109
2181
|
};
|
|
2182
|
+
readonly tabOrderBad: {
|
|
2183
|
+
readonly summary: 'keyboard navigation sequence wrong';
|
|
2184
|
+
readonly why: 'Sequential navigation moves in a meaningless or useless order';
|
|
2185
|
+
readonly wcag: '2.4.3';
|
|
2186
|
+
readonly weight: 3;
|
|
2187
|
+
};
|
|
2110
2188
|
readonly tabularTableless: {
|
|
2111
2189
|
readonly summary: 'table not marked as such';
|
|
2112
2190
|
readonly why: 'Helper misinforms a user about whether items are cells of a table';
|
|
@@ -2140,7 +2218,7 @@ declare const issuesData: {
|
|
|
2140
2218
|
readonly textAreaNoText: {
|
|
2141
2219
|
readonly summary: 'text area not named';
|
|
2142
2220
|
readonly why: 'User cannot get help on what information to enter in a form item';
|
|
2143
|
-
readonly wcag: '1.
|
|
2221
|
+
readonly wcag: '4.1.2';
|
|
2144
2222
|
readonly weight: 4;
|
|
2145
2223
|
};
|
|
2146
2224
|
readonly textContentBad: {
|
|
@@ -2176,13 +2254,13 @@ declare const issuesData: {
|
|
|
2176
2254
|
readonly titleLong: {
|
|
2177
2255
|
readonly summary: 'title long';
|
|
2178
2256
|
readonly why: 'Hovering makes an overly verbose explanation pop up';
|
|
2179
|
-
readonly wcag: '3.1
|
|
2257
|
+
readonly wcag: '1.3.1';
|
|
2180
2258
|
readonly weight: 2;
|
|
2181
2259
|
};
|
|
2182
2260
|
readonly titleNotText: {
|
|
2183
2261
|
readonly summary: 'title contains ASCII art';
|
|
2184
2262
|
readonly why: 'Hovering makes a hard-to-understand explanation pop up';
|
|
2185
|
-
readonly wcag: '3.1
|
|
2263
|
+
readonly wcag: '1.3.1';
|
|
2186
2264
|
readonly weight: 2;
|
|
2187
2265
|
};
|
|
2188
2266
|
readonly titleRedundant: {
|
|
@@ -2193,13 +2271,13 @@ declare const issuesData: {
|
|
|
2193
2271
|
};
|
|
2194
2272
|
readonly typeBad: {
|
|
2195
2273
|
readonly summary: 'type invalid';
|
|
2196
|
-
readonly why: '
|
|
2274
|
+
readonly why: 'Page styles are at risk of corruption';
|
|
2197
2275
|
readonly wcag: '1.3.1';
|
|
2198
2276
|
readonly weight: 4;
|
|
2199
2277
|
};
|
|
2200
2278
|
readonly typeRedundant: {
|
|
2201
2279
|
readonly summary: 'type redundant';
|
|
2202
|
-
readonly why: '
|
|
2280
|
+
readonly why: 'Page includes unnecessary code';
|
|
2203
2281
|
readonly wcag: '1.3.1';
|
|
2204
2282
|
readonly weight: 1;
|
|
2205
2283
|
};
|
|
@@ -2230,7 +2308,7 @@ declare const issuesData: {
|
|
|
2230
2308
|
readonly videoNoAudioDescription: {
|
|
2231
2309
|
readonly summary: 'video audio description missing';
|
|
2232
2310
|
readonly why: 'User cannot get help hearing video content as speech';
|
|
2233
|
-
readonly wcag: '1.2.
|
|
2311
|
+
readonly wcag: '1.2.5';
|
|
2234
2312
|
readonly weight: 4;
|
|
2235
2313
|
};
|
|
2236
2314
|
readonly videoNoAudioTrack: {
|
|
@@ -2240,7 +2318,7 @@ declare const issuesData: {
|
|
|
2240
2318
|
readonly weight: 4;
|
|
2241
2319
|
};
|
|
2242
2320
|
readonly videoNoText: {
|
|
2243
|
-
readonly summary: 'video
|
|
2321
|
+
readonly summary: 'no video text alternative';
|
|
2244
2322
|
readonly why: 'User cannot get help reading video content as text';
|
|
2245
2323
|
readonly wcag: '1.2.2';
|
|
2246
2324
|
readonly weight: 4;
|
|
@@ -2248,7 +2326,7 @@ declare const issuesData: {
|
|
|
2248
2326
|
readonly videoNoTranscript: {
|
|
2249
2327
|
readonly summary: 'video transcript missing';
|
|
2250
2328
|
readonly why: 'User cannot get help reading video content as text';
|
|
2251
|
-
readonly wcag: '1.2.
|
|
2329
|
+
readonly wcag: '1.2.1';
|
|
2252
2330
|
readonly weight: 4;
|
|
2253
2331
|
};
|
|
2254
2332
|
readonly visibleBulk: {
|
|
@@ -2264,6 +2342,12 @@ declare const issuesData: {
|
|
|
2264
2342
|
readonly wcag: '2.5.3';
|
|
2265
2343
|
readonly weight: 3;
|
|
2266
2344
|
};
|
|
2345
|
+
readonly visualSequenceDeviant: {
|
|
2346
|
+
readonly summary: 'visual and programmatic content sequences differ';
|
|
2347
|
+
readonly why: 'Sequence of page items confuses the user';
|
|
2348
|
+
readonly wcag: '1.3.2';
|
|
2349
|
+
readonly weight: 2;
|
|
2350
|
+
};
|
|
2267
2351
|
readonly zIndexNotZero: {
|
|
2268
2352
|
readonly summary: 'z-index not zero';
|
|
2269
2353
|
readonly why: 'User cannot predict the effect of clicking';
|
|
@@ -2271,22 +2355,21 @@ declare const issuesData: {
|
|
|
2271
2355
|
readonly weight: 1;
|
|
2272
2356
|
};
|
|
2273
2357
|
};
|
|
2274
|
-
declare const issues: Readonly<Record<string, Issue>>;
|
|
2275
|
-
declare const rules: Readonly<Record<string, EngineRules>>;
|
|
2276
|
-
declare const makeIssueRules: (ruleTable: Record<string, EngineRules>, issueTable?: Record<string, Issue>) => Record<string, Record<string, ruleIDsByType>>;
|
|
2277
|
-
declare const getEditableData: () => {
|
|
2358
|
+
export declare const issues: Readonly<Record<string, Issue>>;
|
|
2359
|
+
export declare const rules: Readonly<Record<string, EngineRules>>;
|
|
2360
|
+
export declare const makeIssueRules: (ruleTable: Record<string, EngineRules>, issueTable?: Record<string, Issue>) => Record<string, Record<string, ruleIDsByType>>;
|
|
2361
|
+
export declare const getEditableData: () => {
|
|
2278
2362
|
issues: Readonly<Record<string, Issue>>;
|
|
2279
2363
|
rules: Readonly<Record<string, EngineRules>>;
|
|
2280
2364
|
issueRules: Record<string, Record<string, ruleIDsByType>>;
|
|
2281
2365
|
};
|
|
2282
|
-
declare const makeIssueStats: (issueRuleTable?: Record<string, Record<string, ruleIDsByType>>) => Record<string, IssueEngineRuleCounts>;
|
|
2283
|
-
declare const getSingleEngineIssues: (stats?: Record<string, IssueEngineRuleCounts>) => Array<{
|
|
2366
|
+
export declare const makeIssueStats: (issueRuleTable?: Record<string, Record<string, ruleIDsByType>>) => Record<string, IssueEngineRuleCounts>;
|
|
2367
|
+
export declare const getSingleEngineIssues: (stats?: Record<string, IssueEngineRuleCounts>) => Array<{
|
|
2284
2368
|
issueID: string;
|
|
2285
2369
|
engineID: string;
|
|
2286
2370
|
ruleCount: number;
|
|
2287
2371
|
}>;
|
|
2288
|
-
declare const getEngineRuleCounts: (ruleTable?: Record<string, EngineRules>) => Record<string, number>;
|
|
2289
|
-
declare const issueRules: Record<string, Record<string, ruleIDsByType>>;
|
|
2290
|
-
declare const issueStats: Record<string, IssueEngineRuleCounts>;
|
|
2291
|
-
//#endregion
|
|
2292
|
-
export { IssueEngineRuleCounts, Outcome, Uncertainty, WhyIgnore, getEditableData, getEngineRuleCounts, getSingleEngineIssues, issueRules, issueStats, issues, makeIssueRules, makeIssueStats, ruleIDsByType, rules };
|
|
2372
|
+
export declare const getEngineRuleCounts: (ruleTable?: Record<string, EngineRules>) => Record<string, number>;
|
|
2373
|
+
export declare const issueRules: Record<string, Record<string, ruleIDsByType>>;
|
|
2374
|
+
export declare const issueStats: Record<string, IssueEngineRuleCounts>;
|
|
2375
|
+
//#endregion
|