testaro-issues 0.6.0 → 0.7.1
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 +1393 -464
- package/dist/index.d.cts +103 -20
- package/dist/index.d.mts +103 -20
- package/dist/index.mjs +1393 -464
- 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';
|
|
@@ -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';
|
|
@@ -316,6 +328,12 @@ 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
339
|
readonly why: 'Page may include code that the browser cannot process';
|
|
@@ -324,7 +342,7 @@ declare const issuesData: {
|
|
|
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
|
};
|
|
@@ -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: {
|
|
@@ -592,6 +610,12 @@ 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';
|
|
@@ -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';
|
|
@@ -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';
|
|
@@ -1576,6 +1636,12 @@ declare const issuesData: {
|
|
|
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';
|
|
@@ -1762,6 +1828,12 @@ 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
1839
|
readonly why: 'Page change may surprise a user';
|
|
@@ -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';
|
|
@@ -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
|
package/dist/index.d.mts
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';
|
|
@@ -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';
|
|
@@ -316,6 +328,12 @@ 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
339
|
readonly why: 'Page may include code that the browser cannot process';
|
|
@@ -324,7 +342,7 @@ declare const issuesData: {
|
|
|
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
|
};
|
|
@@ -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: {
|
|
@@ -592,6 +610,12 @@ 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';
|
|
@@ -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';
|
|
@@ -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';
|
|
@@ -1576,6 +1636,12 @@ declare const issuesData: {
|
|
|
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';
|
|
@@ -1762,6 +1828,12 @@ 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
1839
|
readonly why: 'Page change may surprise a user';
|
|
@@ -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';
|
|
@@ -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
|