testilo 48.0.1 → 49.0.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.
@@ -0,0 +1,66 @@
1
+ /*
2
+ modify-htmlcs.js
3
+
4
+ This script modifies a tic-old.js file to add prefixes to the htmlcs rule IDs.
5
+
6
+ The script is run from the command line as:
7
+ node modify-htmlcs.js
8
+
9
+ This script is no longer needed, but may serve as a template for future code modifications.
10
+ */
11
+
12
+ const fs = require('fs');
13
+
14
+ const filePath = '/Users/pool/Documents/Topics/repos/a11yTesting/testilo/procs/score/tic-old.js';
15
+
16
+ let content = fs.readFileSync(filePath, 'utf8');
17
+
18
+ const lines = content.split('\n');
19
+ let currentWeight = null;
20
+ let inHtmlcs = false;
21
+ let htmlcsIndent = 0;
22
+
23
+ for (let i = 0; i < lines.length; i++) {
24
+ const line = lines[i];
25
+
26
+ const weightMatch = line.match(/^\s+weight:\s*(\d+),?\s*$/);
27
+ if (weightMatch) {
28
+ currentWeight = parseInt(weightMatch[1]);
29
+ }
30
+
31
+ if (line.match(/^\s+htmlcs:\s*\{/)) {
32
+ inHtmlcs = true;
33
+ htmlcsIndent = line.search(/\S/);
34
+ continue;
35
+ }
36
+
37
+ if (inHtmlcs) {
38
+ const currentIndent = line.search(/\S/);
39
+
40
+ if (currentIndent !== -1 && currentIndent <= htmlcsIndent) {
41
+ inHtmlcs = false;
42
+ currentWeight = null;
43
+ continue;
44
+ }
45
+
46
+ const propertyMatch = line.match(/^(\s+)'([^']+)':\s*\{/);
47
+ if (propertyMatch && currentWeight !== null) {
48
+ const indent = propertyMatch[1];
49
+ let propName = propertyMatch[2];
50
+
51
+ // Remove existing prefix if present
52
+ if (propName.startsWith('W-') || propName.startsWith('E-')) {
53
+ propName = propName.substring(2);
54
+ }
55
+
56
+ // Apply correct prefix based on weight
57
+ const prefix = currentWeight === 1 ? 'W-' : 'E-';
58
+ lines[i] = `${indent}'${prefix}${propName}': {`;
59
+ }
60
+ }
61
+ }
62
+
63
+ content = lines.join('\n');
64
+ fs.writeFileSync(filePath, content, 'utf8');
65
+
66
+ console.log('Modifications complete!');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "testilo",
3
- "version": "48.0.1",
3
+ "version": "49.0.0",
4
4
  "description": "Prepares Testaro jobs and processes Testaro reports",
5
5
  "main": "call.js",
6
6
  "scripts": {
@@ -527,7 +527,7 @@ exports.issues = {
527
527
  }
528
528
  },
529
529
  htmlcs: {
530
- 'AAA.4_1_1.F77': {
530
+ 'E-AAA.4_1_1.F77': {
531
531
  variable: false,
532
532
  quality: 1,
533
533
  what: 'Duplicate id attribute value'
@@ -685,12 +685,12 @@ exports.issues = {
685
685
  }
686
686
  },
687
687
  htmlcs: {
688
- 'AAA.4_1_2.H91.Input.Name': {
688
+ 'E-AAA.4_1_2.H91.Input.Name': {
689
689
  variable: false,
690
690
  quality: 1,
691
691
  what: 'Text input has no accessible name'
692
692
  },
693
- '^AAA\.4_1_2\.H91\.Input[-a-zA-Z]+\.Name$': {
693
+ 'E-^AAA\.4_1_2\.H91\.Input[-a-zA-Z]+\.Name$': {
694
694
  variable: true,
695
695
  quality: 1,
696
696
  what: 'input element has no accessible name'
@@ -756,12 +756,12 @@ exports.issues = {
756
756
  }
757
757
  },
758
758
  htmlcs: {
759
- 'H36': {
759
+ 'E-H36': {
760
760
  variable: false,
761
761
  quality: 1,
762
762
  what: 'Image submit button has no alt attribute'
763
763
  },
764
- 'AAA.1_1_1.H36': {
764
+ 'E-AAA.1_1_1.H36': {
765
765
  variable: false,
766
766
  quality: 1,
767
767
  what: 'Image submit button has no alt attribute'
@@ -809,7 +809,7 @@ exports.issues = {
809
809
  }
810
810
  },
811
811
  htmlcs: {
812
- 'AAA.4_1_2.H91.InputImage.Name': {
812
+ 'E-AAA.4_1_2.H91.InputImage.Name': {
813
813
  variable: false,
814
814
  quality: 1,
815
815
  what: 'Element is an image input but has no accessible name'
@@ -872,7 +872,7 @@ exports.issues = {
872
872
  }
873
873
  },
874
874
  htmlcs: {
875
- 'AAA.1_1_1.H37': {
875
+ 'E-AAA.1_1_1.H37': {
876
876
  variable: false,
877
877
  quality: 1,
878
878
  what: 'img element has no alt attribute'
@@ -959,7 +959,7 @@ exports.issues = {
959
959
  weight: 4,
960
960
  tools: {
961
961
  htmlcs: {
962
- 'AAA.4_1_2.H91.Svg.Name': {
962
+ 'E-AAA.4_1_2.H91.Svg.Name': {
963
963
  variable: false,
964
964
  quality: 1,
965
965
  what: 'Element is svg but has no accessible name'
@@ -1350,7 +1350,7 @@ exports.issues = {
1350
1350
  weight: 1,
1351
1351
  tools: {
1352
1352
  htmlcs: {
1353
- 'AAA.1_1_1.H67.2': {
1353
+ 'W-AAA.1_1_1.H67.2': {
1354
1354
  variable: false,
1355
1355
  quality: 1,
1356
1356
  what: 'Image marked as decorative is informative?'
@@ -1443,7 +1443,7 @@ exports.issues = {
1443
1443
  }
1444
1444
  },
1445
1445
  htmlcs: {
1446
- 'AAA.3_1_1.H57.2': {
1446
+ 'E-AAA.3_1_1.H57.2': {
1447
1447
  variable: false,
1448
1448
  quality: 1,
1449
1449
  what: 'html element has no lang or xml:lang attribute'
@@ -1530,7 +1530,7 @@ exports.issues = {
1530
1530
  }
1531
1531
  },
1532
1532
  htmlcs: {
1533
- 'AAA.3_1_1.H57.3.Lang': {
1533
+ 'E-AAA.3_1_1.H57.3.Lang': {
1534
1534
  variable: false,
1535
1535
  quality: 1,
1536
1536
  what: 'Language specified in the lang attribute of the document does not appear to be well-formed'
@@ -1571,7 +1571,7 @@ exports.issues = {
1571
1571
  weight: 4,
1572
1572
  tools: {
1573
1573
  htmlcs: {
1574
- 'AAA.3_1_2.H58.1.Lang': {
1574
+ 'E-AAA.3_1_2.H58.1.Lang': {
1575
1575
  variable: false,
1576
1576
  quality: 1,
1577
1577
  what: 'Language specified in the lang attribute of the element does not appear to be well-formed'
@@ -1628,7 +1628,7 @@ exports.issues = {
1628
1628
  }
1629
1629
  },
1630
1630
  htmlcs: {
1631
- 'WCAG2AAA.Principle3.Guideline3_1.3_1_2.H58': {
1631
+ 'E-WCAG2AAA.Principle3.Guideline3_1.3_1_2.H58': {
1632
1632
  variable: false,
1633
1633
  quality: 1,
1634
1634
  what: 'Change in language is not marked'
@@ -1691,12 +1691,12 @@ exports.issues = {
1691
1691
  }
1692
1692
  },
1693
1693
  htmlcs: {
1694
- 'ARIA6+H53': {
1694
+ 'E-ARIA6+H53': {
1695
1695
  variable: false,
1696
1696
  quality: 1,
1697
1697
  what: 'object element contains no text alternative'
1698
1698
  },
1699
- 'AAA.1_1_1.H53,ARIA6': {
1699
+ 'E-AAA.1_1_1.H53,ARIA6': {
1700
1700
  variable: false,
1701
1701
  quality: 1,
1702
1702
  what: 'object element contains no text alternative after all other alternatives are exhausted'
@@ -1818,7 +1818,7 @@ exports.issues = {
1818
1818
  }
1819
1819
  },
1820
1820
  htmlcs: {
1821
- 'AAA.1_1_1.H24': {
1821
+ 'E-AAA.1_1_1.H24': {
1822
1822
  variable: false,
1823
1823
  quality: 1,
1824
1824
  what: 'Element is an area in an image map but has no alt attribute'
@@ -1862,7 +1862,7 @@ exports.issues = {
1862
1862
  weight: 1,
1863
1863
  tools: {
1864
1864
  htmlcs: {
1865
- 'AAA.2_1_2.F10': {
1865
+ 'W-AAA.2_1_2.F10': {
1866
1866
  variable: false,
1867
1867
  quality: 1,
1868
1868
  what: 'Applet or plugin fails to enable moving the focus away with the keyboard?'
@@ -1877,27 +1877,27 @@ exports.issues = {
1877
1877
  weight: 1,
1878
1878
  tools: {
1879
1879
  htmlcs: {
1880
- 'AAA.2_1_1.G90': {
1880
+ 'W-AAA.2_1_1.G90': {
1881
1881
  variable: false,
1882
1882
  quality: 1,
1883
1883
  what: 'Event handler functionality is not available by keyboard?'
1884
1884
  },
1885
- 'AAA.2_1_1.SCR20.MouseOut': {
1885
+ 'W-AAA.2_1_1.SCR20.MouseOut': {
1886
1886
  variable: false,
1887
1887
  quality: 1,
1888
1888
  what: 'Mousing-out functionality is not available by keyboard?'
1889
1889
  },
1890
- 'AAA.2_1_1.SCR20.MouseOver': {
1890
+ 'W-AAA.2_1_1.SCR20.MouseOver': {
1891
1891
  variable: false,
1892
1892
  quality: 1,
1893
1893
  what: 'Mousing-over functionality is not available by keyboard?'
1894
1894
  },
1895
- 'AAA.2_1_1.SCR20.MouseDown': {
1895
+ 'W-AAA.2_1_1.SCR20.MouseDown': {
1896
1896
  variable: false,
1897
1897
  quality: 1,
1898
1898
  what: 'Mousing-down functionality is not available by keyboard?'
1899
1899
  },
1900
- 'AAA.2_1_1.SCR20.MouseUp': {
1900
+ 'W-AAA.2_1_1.SCR20.MouseUp': {
1901
1901
  variable: false,
1902
1902
  quality: 1,
1903
1903
  what: 'Mousing-up functionality is not available by keyboard?'
@@ -1947,7 +1947,7 @@ exports.issues = {
1947
1947
  }
1948
1948
  },
1949
1949
  htmlcs: {
1950
- 'AAA.2_4_1.G1,G123,G124.NoSuchID': {
1950
+ 'E-AAA.2_4_1.G1,G123,G124.NoSuchID': {
1951
1951
  variable: false,
1952
1952
  quality: 1,
1953
1953
  what: 'Internal link references a nonexistent destination'
@@ -1983,7 +1983,7 @@ exports.issues = {
1983
1983
  }
1984
1984
  },
1985
1985
  htmlcs: {
1986
- 'AAA.1_3_1.H44.NotFormControl': {
1986
+ 'E-AAA.1_3_1.H44.NotFormControl': {
1987
1987
  variable: false,
1988
1988
  quality: 1,
1989
1989
  what: 'Referent of the for attribute of the label is not a form control, so is wrong?'
@@ -2247,17 +2247,17 @@ exports.issues = {
2247
2247
  }
2248
2248
  },
2249
2249
  htmlcs: {
2250
- 'AAA.1_3_1.H44.NonExistentFragment': {
2250
+ 'E-AAA.1_3_1.H44.NonExistentFragment': {
2251
2251
  variable: false,
2252
2252
  quality: 1,
2253
2253
  what: 'Label for attribute references a nonexistent element'
2254
2254
  },
2255
- 'AAA.1_3_1.ARIA16,ARIA9': {
2255
+ 'E-AAA.1_3_1.ARIA16,ARIA9': {
2256
2256
  variable: false,
2257
2257
  quality: 1,
2258
2258
  what: 'aria-labelledby attribute references a nonexistent element'
2259
2259
  },
2260
- 'AAA.4_1_2.ARIA16,ARIA9': {
2260
+ 'E-AAA.4_1_2.ARIA16,ARIA9': {
2261
2261
  variable: false,
2262
2262
  quality: 1,
2263
2263
  what: 'aria-labelledby attribute references a nonexistent element'
@@ -2396,22 +2396,22 @@ exports.issues = {
2396
2396
  }
2397
2397
  },
2398
2398
  htmlcs: {
2399
- 'AAA.4_1_2.H91.A.Empty': {
2399
+ 'E-AAA.4_1_2.H91.A.Empty': {
2400
2400
  variable: false,
2401
2401
  quality: 1,
2402
2402
  what: 'a element has an id attribute but no href attribute or text'
2403
2403
  },
2404
- 'AAA.4_1_2.H91.A.EmptyNoId': {
2404
+ 'E-AAA.4_1_2.H91.A.EmptyNoId': {
2405
2405
  variable: false,
2406
2406
  quality: 1,
2407
2407
  what: 'Link has no name or id attribute or value'
2408
2408
  },
2409
- 'AAA.4_1_2.H91.A.EmptyWithName': {
2409
+ 'E-AAA.4_1_2.H91.A.EmptyWithName': {
2410
2410
  variable: false,
2411
2411
  quality: 1,
2412
2412
  what: 'Link has a name attribute but no href attribute or text'
2413
2413
  },
2414
- 'AAA.4_1_2.H91.A.NoContent': {
2414
+ 'E-AAA.4_1_2.H91.A.NoContent': {
2415
2415
  variable: false,
2416
2416
  quality: 1,
2417
2417
  what: 'Link has an href attribute but not named'
@@ -2483,7 +2483,7 @@ exports.issues = {
2483
2483
  }
2484
2484
  },
2485
2485
  htmlcs: {
2486
- 'AAA.1_1_1.H30.2': {
2486
+ 'E-AAA.1_1_1.H30.2': {
2487
2487
  variable: false,
2488
2488
  quality: 1,
2489
2489
  what: 'img element is the only link content but has no text alternative'
@@ -2539,7 +2539,7 @@ exports.issues = {
2539
2539
  weight: 2,
2540
2540
  tools: {
2541
2541
  htmlcs: {
2542
- 'AAA.4_1_2.H91.A.Placeholder': {
2542
+ 'E-AAA.4_1_2.H91.A.Placeholder': {
2543
2543
  variable: false,
2544
2544
  quality: 1,
2545
2545
  what: 'Link has text but no href, id, or name attribute'
@@ -2561,7 +2561,7 @@ exports.issues = {
2561
2561
  weight: 3,
2562
2562
  tools: {
2563
2563
  htmlcs: {
2564
- 'AAA.2_4_8.H59.2b': {
2564
+ 'E-AAA.2_4_8.H59.2b': {
2565
2565
  variable: false,
2566
2566
  quality: 1,
2567
2567
  what: 'link element is missing a non-empty href for the linked resource'
@@ -2656,7 +2656,7 @@ exports.issues = {
2656
2656
  }
2657
2657
  },
2658
2658
  htmlcs: {
2659
- 'AAA.4_1_2.H91.A.NoHref': {
2659
+ 'E-AAA.4_1_2.H91.A.NoHref': {
2660
2660
  variable: false,
2661
2661
  quality: 1,
2662
2662
  what: 'Link is misused as a link destination'
@@ -2744,7 +2744,7 @@ exports.issues = {
2744
2744
  weight: 4,
2745
2745
  tools: {
2746
2746
  htmlcs: {
2747
- 'AAA.4_1_2.H91.Textarea.Name': {
2747
+ 'E-AAA.4_1_2.H91.Textarea.Name': {
2748
2748
  variable: false,
2749
2749
  quality: 1,
2750
2750
  what: 'textarea element has no accessible name'
@@ -2766,7 +2766,7 @@ exports.issues = {
2766
2766
  weight: 2,
2767
2767
  tools: {
2768
2768
  htmlcs: {
2769
- 'AAA.1_1_1.H2.EG3': {
2769
+ 'E-AAA.1_1_1.H2.EG3': {
2770
2770
  variable: false,
2771
2771
  quality: 1,
2772
2772
  what: 'alt value of the link img element duplicates the text of a link beside it'
@@ -2867,7 +2867,7 @@ exports.issues = {
2867
2867
  weight: 1,
2868
2868
  tools: {
2869
2869
  htmlcs: {
2870
- 'AAA.1_1_1.H2.EG4': {
2870
+ 'W-AAA.1_1_1.H2.EG4': {
2871
2871
  variable: false,
2872
2872
  quality: 1,
2873
2873
  what: 'Adjacent links, one with text and the other with a textless image, merit combination?'
@@ -2935,12 +2935,12 @@ exports.issues = {
2935
2935
  }
2936
2936
  },
2937
2937
  htmlcs: {
2938
- 'WCAG2AAA.Principle3.Guideline3_2.3_2_5.H83.3': {
2938
+ 'W-WCAG2AAA.Principle3.Guideline3_2.3_2_5.H83.3': {
2939
2939
  variable: false,
2940
2940
  quality: 1,
2941
2941
  what: 'Link opens in a new window without notice?'
2942
2942
  },
2943
- 'AAA.3_2_5.H83.3': {
2943
+ 'W-AAA.3_2_5.H83.3': {
2944
2944
  variable: false,
2945
2945
  quality: 1,
2946
2946
  what: 'Link text fails to indicate that the link will open in a new window?'
@@ -3105,32 +3105,32 @@ exports.issues = {
3105
3105
  }
3106
3106
  },
3107
3107
  htmlcs: {
3108
- 'AAA.4_1_2.H91.A.Name': {
3108
+ 'E-AAA.4_1_2.H91.A.Name': {
3109
3109
  variable: false,
3110
3110
  quality: 1,
3111
3111
  what: 'Link with button role has no accessible name'
3112
3112
  },
3113
- 'AAA.4_1_2.H91.Div.Name': {
3113
+ 'E-AAA.4_1_2.H91.Div.Name': {
3114
3114
  variable: false,
3115
3115
  quality: 1,
3116
3116
  what: 'div element with button role has no accessible name'
3117
3117
  },
3118
- 'AAA.4_1_2.H91.Button.Name': {
3118
+ 'E-AAA.4_1_2.H91.Button.Name': {
3119
3119
  variable: false,
3120
3120
  quality: 1,
3121
3121
  what: 'button element has no accessible name'
3122
3122
  },
3123
- 'AAA.4_1_2.H91.Img.Name': {
3123
+ 'E-AAA.4_1_2.H91.Img.Name': {
3124
3124
  variable: false,
3125
3125
  quality: 1,
3126
3126
  what: 'img element with button role has no accessible name'
3127
3127
  },
3128
- 'AAA.4_1_2.H91.InputButton.Name': {
3128
+ 'E-AAA.4_1_2.H91.InputButton.Name': {
3129
3129
  variable: false,
3130
3130
  quality: 1,
3131
3131
  what: 'Button input element has no accessible name'
3132
3132
  },
3133
- 'AAA.4_1_2.H91.Span.Name': {
3133
+ 'E-AAA.4_1_2.H91.Span.Name': {
3134
3134
  variable: false,
3135
3135
  quality: 1,
3136
3136
  what: 'Element with button role has no accessible name'
@@ -3347,7 +3347,7 @@ exports.issues = {
3347
3347
  weight: 4,
3348
3348
  tools: {
3349
3349
  htmlcs: {
3350
- 'AAA.1_3_1.F92,ARIA4': {
3350
+ 'E-AAA.1_3_1.F92,ARIA4': {
3351
3351
  variable: false,
3352
3352
  quality: 1,
3353
3353
  what: 'Element has presentation role but semantic child'
@@ -3813,7 +3813,7 @@ exports.issues = {
3813
3813
  weight: 4,
3814
3814
  tools: {
3815
3815
  htmlcs: {
3816
- 'AAA.2_4_8.H59.1': {
3816
+ 'E-AAA.2_4_8.H59.1': {
3817
3817
  variable: false,
3818
3818
  quality: 1,
3819
3819
  what: 'Element is not in the document head'
@@ -3849,12 +3849,12 @@ exports.issues = {
3849
3849
  weight: 4,
3850
3850
  tools: {
3851
3851
  htmlcs: {
3852
- 'AAA.2_4_8.H59.2a': {
3852
+ 'E-AAA.2_4_8.H59.2a': {
3853
3853
  variable: false,
3854
3854
  quality: 1,
3855
3855
  what: 'Element has no nonempty rel attribute for the type'
3856
3856
  },
3857
- 'A link element with an as attribute must have a rel attribute that contains the value preload or the value modulepreload or the value prefetch.': {
3857
+ 'E-A link element with an as attribute must have a rel attribute that contains the value preload or the value modulepreload or the value prefetch.': {
3858
3858
  variable: false,
3859
3859
  quality: 1,
3860
3860
  what: 'Element with an as attribute has no rel attribute with preload, modulepreload, or prefetch as its value'
@@ -4188,7 +4188,7 @@ exports.issues = {
4188
4188
  }
4189
4189
  },
4190
4190
  htmlcs: {
4191
- 'AAA.2_4_1.H64.1': {
4191
+ 'E-AAA.2_4_1.H64.1': {
4192
4192
  variable: false,
4193
4193
  quality: 1,
4194
4194
  what: 'iframe element has no non-empty title attribute'
@@ -5276,7 +5276,7 @@ exports.issues = {
5276
5276
  }
5277
5277
  },
5278
5278
  htmlcs: {
5279
- 'AAA.1_3_5.H98': {
5279
+ 'E-AAA.1_3_5.H98': {
5280
5280
  variable: false,
5281
5281
  quality: 1,
5282
5282
  what: 'autocomplete attribute and the input type are mismatched'
@@ -5351,7 +5351,7 @@ exports.issues = {
5351
5351
  weight: 1,
5352
5352
  tools: {
5353
5353
  htmlcs: {
5354
- 'AAA.1_3_5.H98': {
5354
+ 'W-AAA.1_3_5.H98': {
5355
5355
  variable: false,
5356
5356
  quality: 1,
5357
5357
  what: 'Element contains a potentially faulty value in its autocomplete attribute'
@@ -5434,17 +5434,17 @@ exports.issues = {
5434
5434
  }
5435
5435
  },
5436
5436
  htmlcs: {
5437
- 'AAA.1_4_3.G145.Fail': {
5437
+ 'E-AAA.1_4_3.G145.Fail': {
5438
5438
  variable: false,
5439
5439
  quality: 1,
5440
5440
  what: 'Contrast between the text and its background is less than 3:1'
5441
5441
  },
5442
- 'AAA.1_4_3.G18.Fail': {
5442
+ 'E-AAA.1_4_3.G18.Fail': {
5443
5443
  variable: false,
5444
5444
  quality: 1,
5445
5445
  what: 'Contrast between the text and its background is less than 4.5:1'
5446
5446
  },
5447
- 'AAA.1_4_6.G18.Fail': {
5447
+ 'E-AAA.1_4_6.G18.Fail': {
5448
5448
  variable: false,
5449
5449
  quality: 1,
5450
5450
  what: 'Contrast between the text and its background is less than 4.5:1'
@@ -5511,12 +5511,12 @@ exports.issues = {
5511
5511
  }
5512
5512
  },
5513
5513
  htmlcs: {
5514
- 'WCAG2AAA.Principle1.Guideline1_4.1_4_3.G18': {
5514
+ 'W-WCAG2AAA.Principle1.Guideline1_4.1_4_3.G18': {
5515
5515
  variable: false,
5516
5516
  quality: 1,
5517
5517
  what: 'Insufficient contrast'
5518
5518
  },
5519
- 'AAA.1_4_6.G17.Fail': {
5519
+ 'W-AAA.1_4_6.G17.Fail': {
5520
5520
  variable: false,
5521
5521
  quality: 1,
5522
5522
  what: 'Text has insufficient contrast'
@@ -5569,62 +5569,62 @@ exports.issues = {
5569
5569
  }
5570
5570
  },
5571
5571
  htmlcs: {
5572
- 'AAA.1_4_3_F24.F24.BGColour': {
5572
+ 'W-AAA.1_4_3_F24.F24.BGColour': {
5573
5573
  variable: false,
5574
5574
  quality: 1,
5575
5575
  what: 'Inline background color lacks a complementary foreground color?'
5576
5576
  },
5577
- 'AAA.1_4_6.G18.BgImage': {
5577
+ 'W-AAA.1_4_6.G18.BgImage': {
5578
5578
  variable: false,
5579
5579
  quality: 1,
5580
5580
  what: 'Contrast between the text and the background image is less than 4.5:1?'
5581
5581
  },
5582
- 'AAA.1_4_3_F24.F24.FGColour': {
5582
+ 'W-AAA.1_4_3_F24.F24.FGColour': {
5583
5583
  variable: false,
5584
5584
  quality: 1,
5585
5585
  what: 'Inline foreground color lacks a complementary background color?'
5586
5586
  },
5587
- 'AAA.1_4_3.G18.Abs': {
5587
+ 'W-AAA.1_4_3.G18.Abs': {
5588
5588
  variable: false,
5589
5589
  quality: 1,
5590
5590
  what: 'Contrast between the absolutely positioned text and its background is inadequate?'
5591
5591
  },
5592
- 'AAA.1_4_6.G18.Abs': {
5592
+ 'W-AAA.1_4_6.G18.Abs': {
5593
5593
  variable: false,
5594
5594
  quality: 1,
5595
5595
  what: 'Contrast between the absolutely positioned text and its background is less than 4.5:1?'
5596
5596
  },
5597
- 'AAA.1_4_3.G18.Alpha': {
5597
+ 'W-AAA.1_4_3.G18.Alpha': {
5598
5598
  variable: false,
5599
5599
  quality: 1,
5600
5600
  what: 'Contrast between the text and its background is less than 4.5:1, given the transparency?'
5601
5601
  },
5602
- 'AAA.1_4_3.G145.Abs': {
5602
+ 'W-AAA.1_4_3.G145.Abs': {
5603
5603
  variable: false,
5604
5604
  quality: 1,
5605
5605
  what: 'Contrast between the absolutely positioned large text and its background is less than 3:1?'
5606
5606
  },
5607
- 'AAA.1_4_3.G145.Alpha': {
5607
+ 'W-AAA.1_4_3.G145.Alpha': {
5608
5608
  variable: false,
5609
5609
  quality: 1,
5610
5610
  what: 'Contrast between the text and its background is less than 3:1, given the transparency?'
5611
5611
  },
5612
- 'AAA.1_4_3.G145.BgImage': {
5612
+ 'W-AAA.1_4_3.G145.BgImage': {
5613
5613
  variable: false,
5614
5614
  quality: 1,
5615
5615
  what: 'Contrast between the text and its background image is less than 3:1?'
5616
5616
  },
5617
- 'AAA.1_4_3.G18.BgImage': {
5617
+ 'W-AAA.1_4_3.G18.BgImage': {
5618
5618
  variable: false,
5619
5619
  quality: 1,
5620
5620
  what: 'Contrast between the text and its background image is less than 4.5:1?',
5621
5621
  },
5622
- 'AAA.1_4_6.G17.Abs': {
5622
+ 'W-AAA.1_4_6.G17.Abs': {
5623
5623
  variable: false,
5624
5624
  quality: 1,
5625
5625
  what: 'Contrast between the absolutely positioned text and its background is less than 7:1?'
5626
5626
  },
5627
- 'AAA.1_4_6.G17.BgImage': {
5627
+ 'W-AAA.1_4_6.G17.BgImage': {
5628
5628
  variable: false,
5629
5629
  quality: 1,
5630
5630
  what: 'Contrast between the text and its background image is less than 7:1?'
@@ -5795,7 +5795,7 @@ exports.issues = {
5795
5795
  }
5796
5796
  },
5797
5797
  htmlcs: {
5798
- 'AAA.1_3_1.H42.2': {
5798
+ 'E-AAA.1_3_1.H42.2': {
5799
5799
  variable: false,
5800
5800
  quality: 1,
5801
5801
  what: 'Heading is empty'
@@ -5964,7 +5964,7 @@ exports.issues = {
5964
5964
  }
5965
5965
  },
5966
5966
  htmlcs: {
5967
- 'AAA.1_1_1.H67.1': {
5967
+ 'W-AAA.1_1_1.H67.1': {
5968
5968
  variable: false,
5969
5969
  quality: 1,
5970
5970
  what: 'Element has an empty alt attribute but has a nonempty title attribute'
@@ -6037,12 +6037,12 @@ exports.issues = {
6037
6037
  }
6038
6038
  },
6039
6039
  htmlcs: {
6040
- 'AAA.1_3_1.H65': {
6040
+ 'W-AAA.1_3_1.H65': {
6041
6041
  variable: false,
6042
6042
  quality: 0.5,
6043
6043
  what: 'title attribute of the form control is empty or only whitespace'
6044
6044
  },
6045
- 'AAA.4_1_2.H65': {
6045
+ 'W-AAA.4_1_2.H65': {
6046
6046
  variable: false,
6047
6047
  quality: 0.5,
6048
6048
  what: 'title attribute of the form control is empty or only whitespace'
@@ -6209,12 +6209,12 @@ exports.issues = {
6209
6209
  }
6210
6210
  },
6211
6211
  htmlcs: {
6212
- 'AAA.2_4_2.H25.1.NoTitleEl': {
6212
+ 'E-AAA.2_4_2.H25.1.NoTitleEl': {
6213
6213
  variable: false,
6214
6214
  quality: 1,
6215
6215
  what: 'Document head element contains no title element'
6216
6216
  },
6217
- 'AAA.2_4_2.H25.1.EmptyTitle': {
6217
+ 'E-AAA.2_4_2.H25.1.EmptyTitle': {
6218
6218
  variable: false,
6219
6219
  quality: 1,
6220
6220
  what: 'Document head element contains an empty title element'
@@ -6332,7 +6332,7 @@ exports.issues = {
6332
6332
  }
6333
6333
  },
6334
6334
  htmlcs: {
6335
- 'AAA.1_3_1_AAA.G141': {
6335
+ 'E-AAA.1_3_1_AAA.G141': {
6336
6336
  variable: false,
6337
6337
  quality: 1,
6338
6338
  what: 'Heading level is incorrect'
@@ -6642,42 +6642,42 @@ exports.issues = {
6642
6642
  weight: 2,
6643
6643
  tools: {
6644
6644
  htmlcs: {
6645
- 'AAA.1_3_1.H49.AlignAttr': {
6645
+ 'E-AAA.1_3_1.H49.AlignAttr': {
6646
6646
  variable: false,
6647
6647
  quality: 1,
6648
6648
  what: 'Special text is aligned nonsemantically'
6649
6649
  },
6650
- 'AAA.1_3_1.H49.B': {
6650
+ 'E-AAA.1_3_1.H49.B': {
6651
6651
  variable: false,
6652
6652
  quality: 1,
6653
6653
  what: 'Special text is bolded nonsemantically'
6654
6654
  },
6655
- 'AAA.1_3_1.H49.I': {
6655
+ 'E-AAA.1_3_1.H49.I': {
6656
6656
  variable: false,
6657
6657
  quality: 1,
6658
6658
  what: 'Special text is italicized nonsemantically'
6659
6659
  },
6660
- 'AAA.1_3_1.H49.Big': {
6660
+ 'E-AAA.1_3_1.H49.Big': {
6661
6661
  variable: false,
6662
6662
  quality: 1,
6663
6663
  what: 'Special text is enlarged nonsemantically'
6664
6664
  },
6665
- 'AAA.1_3_1.H49.Small': {
6665
+ 'E-AAA.1_3_1.H49.Small': {
6666
6666
  variable: false,
6667
6667
  quality: 1,
6668
6668
  what: 'Special text is made small nonsemantically'
6669
6669
  },
6670
- 'AAA.1_3_1.H49.U': {
6670
+ 'E-AAA.1_3_1.H49.U': {
6671
6671
  variable: false,
6672
6672
  quality: 1,
6673
6673
  what: 'Special text is underlined nonsemantically'
6674
6674
  },
6675
- 'AAA.1_3_1.H49.Center': {
6675
+ 'E-AAA.1_3_1.H49.Center': {
6676
6676
  variable: false,
6677
6677
  quality: 1,
6678
6678
  what: 'Special text is centered nonsemantically'
6679
6679
  },
6680
- 'AAA.1_3_1.H49.Font': {
6680
+ 'E-AAA.1_3_1.H49.Font': {
6681
6681
  variable: false,
6682
6682
  quality: 1,
6683
6683
  what: 'Special text is designated nonsemantically with a (deprecated) font element'
@@ -6772,7 +6772,7 @@ exports.issues = {
6772
6772
  }
6773
6773
  },
6774
6774
  htmlcs: {
6775
- 'AAA.1_3_1.H42': {
6775
+ 'W-AAA.1_3_1.H42': {
6776
6776
  variable: false,
6777
6777
  quality: 1,
6778
6778
  what: 'Heading coding is not used but the element is intended as a heading?'
@@ -6963,7 +6963,7 @@ exports.issues = {
6963
6963
  }
6964
6964
  },
6965
6965
  htmlcs: {
6966
- 'AAA.1_3_1.H48.1': {
6966
+ 'W-AAA.1_3_1.H48.1': {
6967
6967
  variable: false,
6968
6968
  quality: 1,
6969
6969
  what: 'Content simulates an unordered list without a ul?'
@@ -6992,7 +6992,7 @@ exports.issues = {
6992
6992
  weight: 1,
6993
6993
  tools: {
6994
6994
  htmlcs: {
6995
- 'AAA.1_3_1.H48.2': {
6995
+ 'W-AAA.1_3_1.H48.2': {
6996
6996
  variable: false,
6997
6997
  quality: 1,
6998
6998
  what: 'Ordered list fails to be coded as such?'
@@ -7007,7 +7007,7 @@ exports.issues = {
7007
7007
  weight: 2,
7008
7008
  tools: {
7009
7009
  htmlcs: {
7010
- 'AAA.1_3_1.H48': {
7010
+ 'E-AAA.1_3_1.H48': {
7011
7011
  variable: false,
7012
7012
  quality: 1,
7013
7013
  what: 'Navigation links are not coded as a list'
@@ -7059,12 +7059,12 @@ exports.issues = {
7059
7059
  }
7060
7060
  },
7061
7061
  htmlcs: {
7062
- 'AAA.4_1_2.H91.Select.Name': {
7062
+ 'E-AAA.4_1_2.H91.Select.Name': {
7063
7063
  variable: false,
7064
7064
  quality: 1,
7065
7065
  what: 'Select element has no accessible name'
7066
7066
  },
7067
- 'AAA.4_1_2.H91.Select.Value': {
7067
+ 'E-AAA.4_1_2.H91.Select.Value': {
7068
7068
  variable: false,
7069
7069
  quality: 1,
7070
7070
  what: 'Select element value has no accessible name'
@@ -7120,7 +7120,7 @@ exports.issues = {
7120
7120
  weight: 1,
7121
7121
  tools: {
7122
7122
  htmlcs: {
7123
- 'AAA.1_3_1.H85.2': {
7123
+ 'W-AAA.1_3_1.H85.2': {
7124
7124
  variable: false,
7125
7125
  quality: 1,
7126
7126
  what: 'Selection list contains groups of related options not grouped with optgroup?'
@@ -7222,7 +7222,7 @@ exports.issues = {
7222
7222
  }
7223
7223
  },
7224
7224
  htmlcs: {
7225
- 'AAA.1_3_1.H71.SameName': {
7225
+ 'W-AAA.1_3_1.H71.SameName': {
7226
7226
  variable: false,
7227
7227
  quality: 1,
7228
7228
  what: 'Radio buttons or check boxes require a fieldset element?'
@@ -7266,7 +7266,7 @@ exports.issues = {
7266
7266
  }
7267
7267
  },
7268
7268
  htmlcs: {
7269
- 'AAA.1_3_1.H71.NoLegend': {
7269
+ 'E-AAA.1_3_1.H71.NoLegend': {
7270
7270
  variable: false,
7271
7271
  quality: 1,
7272
7272
  what: 'Element has no legend element'
@@ -7316,7 +7316,7 @@ exports.issues = {
7316
7316
  }
7317
7317
  },
7318
7318
  htmlcs: {
7319
- 'AAA.4_1_2.H91.Fieldset.Name': {
7319
+ 'E-AAA.4_1_2.H91.Fieldset.Name': {
7320
7320
  variable: false,
7321
7321
  quality: 1,
7322
7322
  what: 'fieldset element has no accessible name'
@@ -7467,7 +7467,7 @@ exports.issues = {
7467
7467
  }
7468
7468
  },
7469
7469
  htmlcs: {
7470
- 'AAA.1_3_1.H39.3.NoCaption': {
7470
+ 'W-AAA.1_3_1.H39.3.NoCaption': {
7471
7471
  variable: false,
7472
7472
  quality: 1,
7473
7473
  what: 'Element contains no caption element'
@@ -7581,12 +7581,12 @@ exports.issues = {
7581
7581
  weight: 4,
7582
7582
  tools: {
7583
7583
  htmlcs: {
7584
- 'AAA.1_3_1.H43.HeadersRequired': {
7584
+ 'E-AAA.1_3_1.H43.HeadersRequired': {
7585
7585
  variable: false,
7586
7586
  quality: 1,
7587
7587
  what: 'Complex table is missing headers attributes of cells'
7588
7588
  },
7589
- 'AAA.1_3_1.H43,H63': {
7589
+ 'E-AAA.1_3_1.H43,H63': {
7590
7590
  variable: false,
7591
7591
  quality: 1,
7592
7592
  what: 'Relationship among td and th elements of the table is not defined'
@@ -7623,7 +7623,7 @@ exports.issues = {
7623
7623
  weight: 2,
7624
7624
  tools: {
7625
7625
  htmlcs: {
7626
- 'AAA.1_3_1.H43.ScopeAmbiguous': {
7626
+ 'E-AAA.1_3_1.H43.ScopeAmbiguous': {
7627
7627
  variable: false,
7628
7628
  quality: 1,
7629
7629
  what: 'Complex table requires headers attributes of cells instead of header scopes'
@@ -7735,7 +7735,7 @@ exports.issues = {
7735
7735
  weight: 1,
7736
7736
  tools: {
7737
7737
  htmlcs: {
7738
- 'AAA.1_3_1.H63.1': {
7738
+ 'W-AAA.1_3_1.H63.1': {
7739
7739
  variable: false,
7740
7740
  quality: 1,
7741
7741
  what: 'Not all th elements in the table have a scope attribute, so an inferred scope may be incorrect'
@@ -7919,7 +7919,7 @@ exports.issues = {
7919
7919
  }
7920
7920
  },
7921
7921
  htmlcs: {
7922
- 'AAA.1_3_1.F68': {
7922
+ 'E-AAA.1_3_1.F68': {
7923
7923
  variable: false,
7924
7924
  quality: 1,
7925
7925
  what: 'Form control has no label'
@@ -8045,7 +8045,7 @@ exports.issues = {
8045
8045
  }
8046
8046
  },
8047
8047
  htmlcs: {
8048
- 'AAA.2_5_3.F96': {
8048
+ 'E-AAA.2_5_3.F96': {
8049
8049
  variable: false,
8050
8050
  quality: 1,
8051
8051
  what: 'Visible label is not in the accessible name'
@@ -9326,12 +9326,12 @@ exports.issues = {
9326
9326
  weight: 1,
9327
9327
  tools: {
9328
9328
  htmlcs: {
9329
- 'AAA.1_3_1.F68.Hidden': {
9329
+ 'W-AAA.1_3_1.F68.Hidden': {
9330
9330
  variable: false,
9331
9331
  quality: 1,
9332
9332
  what: 'Hidden form field is needlessly labeled'
9333
9333
  },
9334
- 'AAA.1_3_1.F68.HiddenAttr': {
9334
+ 'W-AAA.1_3_1.F68.HiddenAttr': {
9335
9335
  variable: false,
9336
9336
  quality: 1,
9337
9337
  what: 'Form field with a hidden attribute is needlessly labeled'
@@ -9544,12 +9544,12 @@ exports.issues = {
9544
9544
  }
9545
9545
  },
9546
9546
  htmlcs: {
9547
- 'AAA.1_3_1.ARIA6': {
9547
+ 'E-AAA.1_3_1.ARIA6': {
9548
9548
  variable: false,
9549
9549
  quality: 1,
9550
9550
  what: 'Value of the aria-label attribute of the form control is empty or only whitespace'
9551
9551
  },
9552
- 'AAA.4_1_2.ARIA6': {
9552
+ 'E-AAA.4_1_2.ARIA6': {
9553
9553
  variable: false,
9554
9554
  quality: 1,
9555
9555
  what: 'Value of the aria-label attribute of the form control is empty or only whitespace'
@@ -10336,7 +10336,7 @@ exports.issues = {
10336
10336
  }
10337
10337
  },
10338
10338
  htmlcs: {
10339
- 'AAA.1_4_10.C32,C31,C33,C38,SCR34,G206': {
10339
+ 'W-AAA.1_4_10.C32,C31,C33,C38,SCR34,G206': {
10340
10340
  variable: false,
10341
10341
  quality: 1,
10342
10342
  what: 'Fixed-position element forces bidirectional scrolling?'
@@ -10467,7 +10467,7 @@ exports.issues = {
10467
10467
  }
10468
10468
  },
10469
10469
  htmlcs: {
10470
- 'AAA.3_2_2.H32.2': {
10470
+ 'E-AAA.3_2_2.H32.2': {
10471
10471
  variable: false,
10472
10472
  quality: 1,
10473
10473
  what: 'Form has no submit button'
@@ -10593,12 +10593,12 @@ exports.issues = {
10593
10593
  }
10594
10594
  },
10595
10595
  htmlcs: {
10596
- 'AAA.1_3_1.H49.AlignAttr': {
10596
+ 'E-AAA.1_3_1.H49.AlignAttr': {
10597
10597
  variable: false,
10598
10598
  quality: 1,
10599
10599
  what: 'align attribute is obsolete'
10600
10600
  },
10601
- 'AAA.1_3_1.H63.2': {
10601
+ 'E-AAA.1_3_1.H63.2': {
10602
10602
  variable: false,
10603
10603
  quality: 1,
10604
10604
  what: 'scope attribute on a td element, instead of a th element, is obsolete'
@@ -10717,12 +10717,12 @@ exports.issues = {
10717
10717
  }
10718
10718
  },
10719
10719
  htmlcs: {
10720
- 'AAA.1_3_1.H49.Center': {
10720
+ 'E-AAA.1_3_1.H49.Center': {
10721
10721
  variable: false,
10722
10722
  quality: 1,
10723
10723
  what: 'center element is obsolete'
10724
10724
  },
10725
- 'AAA.1_3_1.H49.Font': {
10725
+ 'E-AAA.1_3_1.H49.Font': {
10726
10726
  variable: false,
10727
10727
  quality: 1,
10728
10728
  what: 'font element is obsolete'