testaro-issues 0.3.0 → 0.4.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.cjs +84 -73
- package/dist/index.d.cts +73 -73
- package/dist/index.d.mts +73 -73
- package/dist/index.mjs +84 -73
- package/package.json +3 -2
package/dist/index.mjs
CHANGED
|
@@ -8,7 +8,7 @@ const issuesData = {
|
|
|
8
8
|
},
|
|
9
9
|
"duplicateAttribute": {
|
|
10
10
|
"summary": "duplicate attribute",
|
|
11
|
-
"why": "Browser processes the
|
|
11
|
+
"why": "Browser processes the page improperly",
|
|
12
12
|
"wcag": "4.1.1",
|
|
13
13
|
"weight": 2
|
|
14
14
|
},
|
|
@@ -38,7 +38,7 @@ const issuesData = {
|
|
|
38
38
|
},
|
|
39
39
|
"regionNoText": {
|
|
40
40
|
"summary": "region not named",
|
|
41
|
-
"why": "User cannot get help surveying the parts of the
|
|
41
|
+
"why": "User cannot get help surveying the parts of the page",
|
|
42
42
|
"wcag": "4.1.2",
|
|
43
43
|
"weight": 4
|
|
44
44
|
},
|
|
@@ -151,7 +151,7 @@ const issuesData = {
|
|
|
151
151
|
"weight": 4
|
|
152
152
|
},
|
|
153
153
|
"gapBad": {
|
|
154
|
-
"summary": "CSS
|
|
154
|
+
"summary": "CSS gap invalid",
|
|
155
155
|
"why": "Content is displayed improperly",
|
|
156
156
|
"wcag": "4.1",
|
|
157
157
|
"weight": 4
|
|
@@ -212,14 +212,14 @@ const issuesData = {
|
|
|
212
212
|
},
|
|
213
213
|
"pageLanguage": {
|
|
214
214
|
"summary": "page language missing",
|
|
215
|
-
"why": "Speaking helper may mispronounce the
|
|
215
|
+
"why": "Speaking helper may mispronounce the page text",
|
|
216
216
|
"wcag": "3.1.1",
|
|
217
217
|
"weight": 4,
|
|
218
218
|
"max": 1
|
|
219
219
|
},
|
|
220
220
|
"pageLanguageBad": {
|
|
221
221
|
"summary": "page language invalid",
|
|
222
|
-
"why": "Speaking helper may mispronounce the
|
|
222
|
+
"why": "Speaking helper may mispronounce the page text",
|
|
223
223
|
"wcag": "3.1.1",
|
|
224
224
|
"weight": 4,
|
|
225
225
|
"max": 1
|
|
@@ -298,7 +298,7 @@ const issuesData = {
|
|
|
298
298
|
},
|
|
299
299
|
"internalLinkBroken": {
|
|
300
300
|
"summary": "internal link broken",
|
|
301
|
-
"why": "User cannot reach a promised
|
|
301
|
+
"why": "User cannot reach a promised page location",
|
|
302
302
|
"wcag": "1.3.1",
|
|
303
303
|
"weight": 4
|
|
304
304
|
},
|
|
@@ -496,7 +496,7 @@ const issuesData = {
|
|
|
496
496
|
},
|
|
497
497
|
"pageNewWindow": {
|
|
498
498
|
"summary": "page immediately opens window",
|
|
499
|
-
"why": "User promised a
|
|
499
|
+
"why": "User promised a page gets another page, too",
|
|
500
500
|
"wcag": "3.2.5",
|
|
501
501
|
"weight": 3,
|
|
502
502
|
"max": 1
|
|
@@ -606,7 +606,7 @@ const issuesData = {
|
|
|
606
606
|
},
|
|
607
607
|
"metaBansZoom": {
|
|
608
608
|
"summary": "meta bans zoom",
|
|
609
|
-
"why": "User cannot adjust the
|
|
609
|
+
"why": "User cannot adjust the page size for readability",
|
|
610
610
|
"wcag": "1.4.4",
|
|
611
611
|
"weight": 4,
|
|
612
612
|
"max": 1
|
|
@@ -690,7 +690,7 @@ const issuesData = {
|
|
|
690
690
|
"weight": 4
|
|
691
691
|
},
|
|
692
692
|
"linkElementMisplaced": {
|
|
693
|
-
"summary": "link element
|
|
693
|
+
"summary": "link element misplaced",
|
|
694
694
|
"why": "Document fails to get a needed external resource",
|
|
695
695
|
"wcag": "1.3.1",
|
|
696
696
|
"weight": 4
|
|
@@ -739,25 +739,25 @@ const issuesData = {
|
|
|
739
739
|
},
|
|
740
740
|
"stylesheetBanned": {
|
|
741
741
|
"summary": "stylesheet prohibited",
|
|
742
|
-
"why": "Browser displays the
|
|
742
|
+
"why": "Browser displays the page improperly",
|
|
743
743
|
"wcag": "1.4",
|
|
744
744
|
"weight": 3
|
|
745
745
|
},
|
|
746
746
|
"scriptNotDeferrable": {
|
|
747
747
|
"summary": "script element invalidly deferred",
|
|
748
|
-
"why": "Browser processes the
|
|
748
|
+
"why": "Browser processes the page improperly",
|
|
749
749
|
"wcag": "1.3.1",
|
|
750
750
|
"weight": 4
|
|
751
751
|
},
|
|
752
752
|
"scriptBanned": {
|
|
753
753
|
"summary": "script prohibited",
|
|
754
|
-
"why": "Browser processes the
|
|
754
|
+
"why": "Browser processes the page improperly",
|
|
755
755
|
"wcag": "4.1",
|
|
756
756
|
"weight": 3
|
|
757
757
|
},
|
|
758
758
|
"scriptElementBad": {
|
|
759
759
|
"summary": "script element invalid",
|
|
760
|
-
"why": "Browser processes the
|
|
760
|
+
"why": "Browser processes the page improperly",
|
|
761
761
|
"wcag": "1.3.1",
|
|
762
762
|
"weight": 4
|
|
763
763
|
},
|
|
@@ -781,7 +781,7 @@ const issuesData = {
|
|
|
781
781
|
},
|
|
782
782
|
"iframeTitleBad": {
|
|
783
783
|
"summary": "iframe not named",
|
|
784
|
-
"why": "User cannot get help on the topic of an embedded
|
|
784
|
+
"why": "User cannot get help on the topic of an embedded page",
|
|
785
785
|
"wcag": "4.1.2",
|
|
786
786
|
"weight": 4
|
|
787
787
|
},
|
|
@@ -979,13 +979,13 @@ const issuesData = {
|
|
|
979
979
|
},
|
|
980
980
|
"headingEmpty": {
|
|
981
981
|
"summary": "heading empty",
|
|
982
|
-
"why": "User cannot get help on the topic of a part of the
|
|
982
|
+
"why": "User cannot get help on the topic of a part of the page",
|
|
983
983
|
"wcag": "2.4.6",
|
|
984
984
|
"weight": 3
|
|
985
985
|
},
|
|
986
986
|
"headingOfNothing": {
|
|
987
987
|
"summary": "heading heads nothing",
|
|
988
|
-
"why": "Helper misdescribes the
|
|
988
|
+
"why": "Helper misdescribes the page",
|
|
989
989
|
"wcag": "1.3.1",
|
|
990
990
|
"weight": 2
|
|
991
991
|
},
|
|
@@ -1027,112 +1027,112 @@ const issuesData = {
|
|
|
1027
1027
|
},
|
|
1028
1028
|
"docTypeMissing": {
|
|
1029
1029
|
"summary": "DOCTYPE missing",
|
|
1030
|
-
"why": "Browser processes the
|
|
1030
|
+
"why": "Browser processes the page improperly",
|
|
1031
1031
|
"wcag": "1.3.1",
|
|
1032
1032
|
"weight": 4,
|
|
1033
1033
|
"max": 1
|
|
1034
1034
|
},
|
|
1035
1035
|
"docTypeMisplaced": {
|
|
1036
1036
|
"summary": "DOCTYPE in invalid location",
|
|
1037
|
-
"why": "Browser processes the
|
|
1037
|
+
"why": "Browser processes the page improperly",
|
|
1038
1038
|
"wcag": "1.3.1",
|
|
1039
1039
|
"weight": 4,
|
|
1040
1040
|
"max": 1
|
|
1041
1041
|
},
|
|
1042
1042
|
"docTypeBad": {
|
|
1043
1043
|
"summary": "DOCTYPE invalid",
|
|
1044
|
-
"why": "Browser processes the
|
|
1044
|
+
"why": "Browser processes the page improperly",
|
|
1045
1045
|
"wcag": "1.3.1",
|
|
1046
1046
|
"weight": 3,
|
|
1047
1047
|
"max": 1
|
|
1048
1048
|
},
|
|
1049
1049
|
"pageTitleBad": {
|
|
1050
1050
|
"summary": "page title invalid",
|
|
1051
|
-
"why": "Browser processes the
|
|
1051
|
+
"why": "Browser processes the page improperly",
|
|
1052
1052
|
"wcag": "1.3.1",
|
|
1053
1053
|
"weight": 3,
|
|
1054
1054
|
"max": 1
|
|
1055
1055
|
},
|
|
1056
1056
|
"pageTitle": {
|
|
1057
1057
|
"summary": "page title missing",
|
|
1058
|
-
"why": "User is not informed of the topic of the
|
|
1058
|
+
"why": "User is not informed of the topic of the page",
|
|
1059
1059
|
"wcag": "2.4.2",
|
|
1060
1060
|
"weight": 4,
|
|
1061
1061
|
"max": 1
|
|
1062
1062
|
},
|
|
1063
1063
|
"headElementsBad": {
|
|
1064
1064
|
"summary": "element in head invalid",
|
|
1065
|
-
"why": "Browser processes the
|
|
1065
|
+
"why": "Browser processes the page improperly",
|
|
1066
1066
|
"wcag": "4.1.1",
|
|
1067
1067
|
"weight": 3
|
|
1068
1068
|
},
|
|
1069
1069
|
"headingLevelSkip": {
|
|
1070
1070
|
"summary": "heading level skipped",
|
|
1071
|
-
"why": "Helper misdescribes the
|
|
1071
|
+
"why": "Helper misdescribes the page",
|
|
1072
1072
|
"wcag": "1.3.1",
|
|
1073
1073
|
"weight": 2
|
|
1074
1074
|
},
|
|
1075
1075
|
"headingStructure": {
|
|
1076
1076
|
"summary": "heading structure illogical",
|
|
1077
|
-
"why": "Helper misdescribes the
|
|
1077
|
+
"why": "Helper misdescribes the page",
|
|
1078
1078
|
"wcag": "1.3.1",
|
|
1079
1079
|
"weight": 2
|
|
1080
1080
|
},
|
|
1081
1081
|
"headingConfusion": {
|
|
1082
1082
|
"summary": "heading names repeated",
|
|
1083
|
-
"why": "User cannot differentiate parts of the
|
|
1083
|
+
"why": "User cannot differentiate parts of the page",
|
|
1084
1084
|
"wcag": "1.3.1",
|
|
1085
1085
|
"weight": 2
|
|
1086
1086
|
},
|
|
1087
1087
|
"headingMisuseRisk": {
|
|
1088
1088
|
"summary": "heading used for styling?",
|
|
1089
|
-
"why": "User cannot understand the
|
|
1089
|
+
"why": "User cannot understand the page structure",
|
|
1090
1090
|
"wcag": "1.3.1",
|
|
1091
1091
|
"weight": 2
|
|
1092
1092
|
},
|
|
1093
1093
|
"headingNone": {
|
|
1094
1094
|
"summary": "headings missing",
|
|
1095
|
-
"why": "User cannot survey parts of the
|
|
1095
|
+
"why": "User cannot survey parts of the page",
|
|
1096
1096
|
"wcag": "1.3.1",
|
|
1097
1097
|
"weight": 3,
|
|
1098
1098
|
"max": 1
|
|
1099
1099
|
},
|
|
1100
1100
|
"h1Not1": {
|
|
1101
1101
|
"summary": "not exactly 1 h1 heading",
|
|
1102
|
-
"why": "User cannot understand the topic of the
|
|
1102
|
+
"why": "User cannot understand the topic of the page",
|
|
1103
1103
|
"wcag": "1.3.1",
|
|
1104
1104
|
"weight": 2,
|
|
1105
1105
|
"max": 1
|
|
1106
1106
|
},
|
|
1107
1107
|
"h1Not1st": {
|
|
1108
1108
|
"summary": "h1 not 1st heading",
|
|
1109
|
-
"why": "User cannot understand the topic of the
|
|
1109
|
+
"why": "User cannot understand the topic of the page",
|
|
1110
1110
|
"wcag": "1.3.1",
|
|
1111
1111
|
"weight": 3,
|
|
1112
1112
|
"max": 1
|
|
1113
1113
|
},
|
|
1114
1114
|
"docHeadingNotH1": {
|
|
1115
1115
|
"summary": "primary heading not h1",
|
|
1116
|
-
"why": "User cannot understand the topic of the
|
|
1116
|
+
"why": "User cannot understand the topic of the page",
|
|
1117
1117
|
"wcag": "1.3.1",
|
|
1118
1118
|
"weight": 2,
|
|
1119
1119
|
"max": 1
|
|
1120
1120
|
},
|
|
1121
1121
|
"articleHeadingless": {
|
|
1122
1122
|
"summary": "article heading missing",
|
|
1123
|
-
"why": "User cannot understand the topic of a part of the
|
|
1123
|
+
"why": "User cannot understand the topic of a part of the page",
|
|
1124
1124
|
"wcag": "1.3.1",
|
|
1125
1125
|
"weight": 1
|
|
1126
1126
|
},
|
|
1127
1127
|
"sectionHeadingless": {
|
|
1128
1128
|
"summary": "section heading missing",
|
|
1129
|
-
"why": "User cannot understand the topic of a part of the
|
|
1129
|
+
"why": "User cannot understand the topic of a part of the page",
|
|
1130
1130
|
"wcag": "1.3.1",
|
|
1131
1131
|
"weight": 1
|
|
1132
1132
|
},
|
|
1133
1133
|
"headingLength": {
|
|
1134
1134
|
"summary": "heading abnormally long",
|
|
1135
|
-
"why": "User has difficulty understanding the topic of a part of the
|
|
1135
|
+
"why": "User has difficulty understanding the topic of a part of the page",
|
|
1136
1136
|
"wcag": "1.3.1",
|
|
1137
1137
|
"weight": 1
|
|
1138
1138
|
},
|
|
@@ -1162,7 +1162,7 @@ const issuesData = {
|
|
|
1162
1162
|
},
|
|
1163
1163
|
"hrConfusionRisk": {
|
|
1164
1164
|
"summary": "hr misused",
|
|
1165
|
-
"why": "User cannot get help on the nature of segments of the
|
|
1165
|
+
"why": "User cannot get help on the nature of segments of the page",
|
|
1166
1166
|
"wcag": "1.3.1",
|
|
1167
1167
|
"weight": 1
|
|
1168
1168
|
},
|
|
@@ -1180,7 +1180,7 @@ const issuesData = {
|
|
|
1180
1180
|
},
|
|
1181
1181
|
"pseudoHeadingRisk": {
|
|
1182
1182
|
"summary": "heading-like styles dubious",
|
|
1183
|
-
"why": "User may be unable to understand the topic of a part of the
|
|
1183
|
+
"why": "User may be unable to understand the topic of a part of the page",
|
|
1184
1184
|
"wcag": "1.3.1",
|
|
1185
1185
|
"weight": 1
|
|
1186
1186
|
},
|
|
@@ -1510,7 +1510,7 @@ const issuesData = {
|
|
|
1510
1510
|
},
|
|
1511
1511
|
"visibleBulk": {
|
|
1512
1512
|
"summary": "large visible-element count",
|
|
1513
|
-
"why": "User cannot easily find items in the
|
|
1513
|
+
"why": "User cannot easily find items in the page",
|
|
1514
1514
|
"wcag": "2.4",
|
|
1515
1515
|
"weight": 1,
|
|
1516
1516
|
"max": 1
|
|
@@ -1577,90 +1577,90 @@ const issuesData = {
|
|
|
1577
1577
|
},
|
|
1578
1578
|
"noLandmarks": {
|
|
1579
1579
|
"summary": "no landmarks",
|
|
1580
|
-
"why": "User cannot get help on how the
|
|
1580
|
+
"why": "User cannot get help on how the page is organized",
|
|
1581
1581
|
"wcag": "1.3.6",
|
|
1582
1582
|
"weight": 2,
|
|
1583
1583
|
"max": 1
|
|
1584
1584
|
},
|
|
1585
1585
|
"contentBeyondLandmarks": {
|
|
1586
1586
|
"summary": "content beyond landmarks",
|
|
1587
|
-
"why": "User cannot get help on how some of the
|
|
1587
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1588
1588
|
"wcag": "1.3.6",
|
|
1589
1589
|
"weight": 1
|
|
1590
1590
|
},
|
|
1591
1591
|
"footerNotTop": {
|
|
1592
1592
|
"summary": "footer child of landmark",
|
|
1593
|
-
"why": "User cannot get help on how some of the
|
|
1593
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1594
1594
|
"wcag": "1.3.6",
|
|
1595
1595
|
"weight": 1
|
|
1596
1596
|
},
|
|
1597
1597
|
"asideNotTop": {
|
|
1598
1598
|
"summary": "aside child of landmark",
|
|
1599
|
-
"why": "User cannot get help on how some of the
|
|
1599
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1600
1600
|
"wcag": "1.3.6",
|
|
1601
1601
|
"weight": 2
|
|
1602
1602
|
},
|
|
1603
1603
|
"mainNotTop": {
|
|
1604
1604
|
"summary": "main child of landmark",
|
|
1605
|
-
"why": "User cannot get help on how some of the
|
|
1605
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1606
1606
|
"wcag": "1.3.6",
|
|
1607
1607
|
"weight": 2
|
|
1608
1608
|
},
|
|
1609
1609
|
"mainConfusion": {
|
|
1610
1610
|
"summary": "mains not distinctly named",
|
|
1611
|
-
"why": "User cannot get help on how some of the
|
|
1611
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1612
1612
|
"wcag": "1.3.6",
|
|
1613
1613
|
"weight": 3
|
|
1614
1614
|
},
|
|
1615
1615
|
"mainNone": {
|
|
1616
1616
|
"summary": "main missing",
|
|
1617
|
-
"why": "User cannot get help on how some of the
|
|
1617
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1618
1618
|
"wcag": "1.3.6",
|
|
1619
1619
|
"weight": 2,
|
|
1620
1620
|
"max": 1
|
|
1621
1621
|
},
|
|
1622
1622
|
"mainNot1": {
|
|
1623
1623
|
"summary": "multiple mains",
|
|
1624
|
-
"why": "User cannot get help on how some of the
|
|
1624
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1625
1625
|
"wcag": "1.3.6",
|
|
1626
1626
|
"weight": 2,
|
|
1627
1627
|
"max": 1
|
|
1628
1628
|
},
|
|
1629
1629
|
"bannerNot1": {
|
|
1630
1630
|
"summary": "multiple banners",
|
|
1631
|
-
"why": "User cannot get help on how some of the
|
|
1631
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1632
1632
|
"wcag": "1.3.6",
|
|
1633
1633
|
"weight": 2,
|
|
1634
1634
|
"max": 1
|
|
1635
1635
|
},
|
|
1636
1636
|
"bannerNotTop": {
|
|
1637
1637
|
"summary": "banner child of landmark",
|
|
1638
|
-
"why": "User cannot get help on how some of the
|
|
1638
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1639
1639
|
"wcag": "1.3.6",
|
|
1640
1640
|
"weight": 2
|
|
1641
1641
|
},
|
|
1642
1642
|
"footerConfusion": {
|
|
1643
1643
|
"summary": "contentinfos not distinctly named",
|
|
1644
|
-
"why": "User cannot get help on how some of the
|
|
1644
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1645
1645
|
"wcag": "1.3.6",
|
|
1646
1646
|
"weight": 3
|
|
1647
1647
|
},
|
|
1648
1648
|
"footerNot1": {
|
|
1649
1649
|
"summary": "multiple contentinfos",
|
|
1650
|
-
"why": "User cannot get help on how some of the
|
|
1650
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1651
1651
|
"wcag": "1.3.6",
|
|
1652
1652
|
"weight": 2,
|
|
1653
1653
|
"max": 1
|
|
1654
1654
|
},
|
|
1655
1655
|
"landmarkConfusion": {
|
|
1656
1656
|
"summary": "landmarks not distinctly named",
|
|
1657
|
-
"why": "User cannot get help on how some of the
|
|
1657
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1658
1658
|
"wcag": "1.3.6",
|
|
1659
1659
|
"weight": 3
|
|
1660
1660
|
},
|
|
1661
1661
|
"documentConfusion": {
|
|
1662
|
-
"summary": "
|
|
1663
|
-
"why": "User cannot get help on how some of the
|
|
1662
|
+
"summary": "page elements not distinctly named",
|
|
1663
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1664
1664
|
"wcag": "1.3.6",
|
|
1665
1665
|
"weight": 3
|
|
1666
1666
|
},
|
|
@@ -1672,61 +1672,61 @@ const issuesData = {
|
|
|
1672
1672
|
},
|
|
1673
1673
|
"formConfusion": {
|
|
1674
1674
|
"summary": "forms not distinctly named",
|
|
1675
|
-
"why": "User cannot get help on how some of the
|
|
1675
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1676
1676
|
"wcag": "1.3.6",
|
|
1677
1677
|
"weight": 3
|
|
1678
1678
|
},
|
|
1679
1679
|
"applicationNoText": {
|
|
1680
1680
|
"summary": "application not named",
|
|
1681
|
-
"why": "User cannot get help on how some of the
|
|
1681
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1682
1682
|
"wcag": "1.3.6",
|
|
1683
1683
|
"weight": 4
|
|
1684
1684
|
},
|
|
1685
1685
|
"applicationConfusion": {
|
|
1686
1686
|
"summary": "applications not distinctly named",
|
|
1687
|
-
"why": "User cannot get help on how some of the
|
|
1687
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1688
1688
|
"wcag": "1.3.6",
|
|
1689
1689
|
"weight": 3
|
|
1690
1690
|
},
|
|
1691
1691
|
"asideConfusion": {
|
|
1692
1692
|
"summary": "asides not distinctly named",
|
|
1693
|
-
"why": "User cannot get help on how some of the
|
|
1693
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1694
1694
|
"wcag": "1.3.6",
|
|
1695
1695
|
"weight": 3
|
|
1696
1696
|
},
|
|
1697
1697
|
"bannerConfusion": {
|
|
1698
1698
|
"summary": "banners not distinctly named",
|
|
1699
|
-
"why": "User cannot get help on how some of the
|
|
1699
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1700
1700
|
"wcag": "1.3.6",
|
|
1701
1701
|
"weight": 3
|
|
1702
1702
|
},
|
|
1703
1703
|
"navConfusion": {
|
|
1704
1704
|
"summary": "navigations not distinctly named",
|
|
1705
|
-
"why": "User cannot get help on how some of the
|
|
1705
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1706
1706
|
"wcag": "1.3.6",
|
|
1707
1707
|
"weight": 3
|
|
1708
1708
|
},
|
|
1709
1709
|
"landmarkInNav": {
|
|
1710
1710
|
"summary": "invalid landmark child of navigation role",
|
|
1711
|
-
"why": "User cannot get help on how some of the
|
|
1711
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1712
1712
|
"wcag": "1.3.6",
|
|
1713
1713
|
"weight": 4
|
|
1714
1714
|
},
|
|
1715
1715
|
"regionConfusion": {
|
|
1716
1716
|
"summary": "regions not distinctly named",
|
|
1717
|
-
"why": "User cannot get help on how some of the
|
|
1717
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1718
1718
|
"wcag": "1.3.6",
|
|
1719
1719
|
"weight": 3
|
|
1720
1720
|
},
|
|
1721
1721
|
"searchConfusion": {
|
|
1722
1722
|
"summary": "searches not distinctly named",
|
|
1723
|
-
"why": "User cannot get help on how some of the
|
|
1723
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1724
1724
|
"wcag": "1.3.6",
|
|
1725
1725
|
"weight": 3
|
|
1726
1726
|
},
|
|
1727
1727
|
"complementaryNoText": {
|
|
1728
1728
|
"summary": "complementary not named",
|
|
1729
|
-
"why": "User cannot get help on how some of the
|
|
1729
|
+
"why": "User cannot get help on how some of the page is organized",
|
|
1730
1730
|
"wcag": "1.3.6",
|
|
1731
1731
|
"weight": 1
|
|
1732
1732
|
},
|
|
@@ -1786,14 +1786,14 @@ const issuesData = {
|
|
|
1786
1786
|
},
|
|
1787
1787
|
"contentHidden": {
|
|
1788
1788
|
"summary": "page hidden",
|
|
1789
|
-
"why": "User cannot get the
|
|
1789
|
+
"why": "User cannot get the page content",
|
|
1790
1790
|
"wcag": "2.4.7",
|
|
1791
1791
|
"weight": 4,
|
|
1792
1792
|
"max": 1
|
|
1793
1793
|
},
|
|
1794
1794
|
"hideFailureRisk": {
|
|
1795
1795
|
"summary": "false aria-hidden value risky",
|
|
1796
|
-
"why": "User may be misled by erroneously hidden or revealed
|
|
1796
|
+
"why": "User may be misled by erroneously hidden or revealed page content",
|
|
1797
1797
|
"wcag": "2.4.6",
|
|
1798
1798
|
"weight": 1
|
|
1799
1799
|
},
|
|
@@ -1811,19 +1811,19 @@ const issuesData = {
|
|
|
1811
1811
|
},
|
|
1812
1812
|
"hoverIndication": {
|
|
1813
1813
|
"summary": "hover indication poor",
|
|
1814
|
-
"why": "User cannot explore the
|
|
1814
|
+
"why": "User cannot explore the page reliably with a mouse",
|
|
1815
1815
|
"wcag": "3.3.2",
|
|
1816
1816
|
"weight": 3
|
|
1817
1817
|
},
|
|
1818
1818
|
"hoverSurprise": {
|
|
1819
1819
|
"summary": "hovering changes content",
|
|
1820
|
-
"why": "User cannot explore the
|
|
1820
|
+
"why": "User cannot explore the page reliably with a mouse",
|
|
1821
1821
|
"wcag": "3.2.5",
|
|
1822
1822
|
"weight": 1
|
|
1823
1823
|
},
|
|
1824
1824
|
"formSurpriseRisk": {
|
|
1825
1825
|
"summary": "form interaction changes content?",
|
|
1826
|
-
"why": "User experiences unexpected
|
|
1826
|
+
"why": "User experiences unexpected page change when using a form",
|
|
1827
1827
|
"wcag": "3.2.5",
|
|
1828
1828
|
"weight": 1
|
|
1829
1829
|
},
|
|
@@ -2070,14 +2070,14 @@ const issuesData = {
|
|
|
2070
2070
|
},
|
|
2071
2071
|
"skipRepeatedContent": {
|
|
2072
2072
|
"summary": "skip method missing or invalid",
|
|
2073
|
-
"why": "Keyboard-only user cannot easily reach the specific content of the
|
|
2073
|
+
"why": "Keyboard-only user cannot easily reach the specific content of the page",
|
|
2074
2074
|
"wcag": "2.4.1",
|
|
2075
2075
|
"weight": 3,
|
|
2076
2076
|
"max": 2
|
|
2077
2077
|
},
|
|
2078
2078
|
"repeatedContentRisk": {
|
|
2079
2079
|
"summary": "skip method missing or invalid?",
|
|
2080
|
-
"why": "Keyboard-only user may be unable easily to reach the specific content of the
|
|
2080
|
+
"why": "Keyboard-only user may be unable easily to reach the specific content of the page",
|
|
2081
2081
|
"wcag": "2.4.1",
|
|
2082
2082
|
"weight": 1,
|
|
2083
2083
|
"max": 2
|
|
@@ -2169,25 +2169,25 @@ const issuesData = {
|
|
|
2169
2169
|
},
|
|
2170
2170
|
"characterBad": {
|
|
2171
2171
|
"summary": "invalid character",
|
|
2172
|
-
"why": "Invalid character makes the
|
|
2172
|
+
"why": "Invalid character makes the page behave incorrectly",
|
|
2173
2173
|
"wcag": "4.1",
|
|
2174
2174
|
"weight": 3
|
|
2175
2175
|
},
|
|
2176
2176
|
"entityBad": {
|
|
2177
2177
|
"summary": "named character reference invalid",
|
|
2178
|
-
"why": "User may be unable to read all the
|
|
2178
|
+
"why": "User may be unable to read all the page text",
|
|
2179
2179
|
"wcag": "4.1",
|
|
2180
2180
|
"weight": 4
|
|
2181
2181
|
},
|
|
2182
2182
|
"textContentBad": {
|
|
2183
2183
|
"summary": "element text content invalid",
|
|
2184
|
-
"why": "User may be unable to read all the
|
|
2184
|
+
"why": "User may be unable to read all the page text",
|
|
2185
2185
|
"wcag": "4.1",
|
|
2186
2186
|
"weight": 3
|
|
2187
2187
|
},
|
|
2188
2188
|
"parseError": {
|
|
2189
2189
|
"summary": "code invalid",
|
|
2190
|
-
"why": "Invalid code in the
|
|
2190
|
+
"why": "Invalid code in the page may prevent a helper from working",
|
|
2191
2191
|
"wcag": "4.1",
|
|
2192
2192
|
"weight": 3
|
|
2193
2193
|
},
|
|
@@ -2213,7 +2213,7 @@ const issuesData = {
|
|
|
2213
2213
|
},
|
|
2214
2214
|
"captcha2": {
|
|
2215
2215
|
"summary": "captcha2",
|
|
2216
|
-
"why": "User is prevented from consuming the
|
|
2216
|
+
"why": "User is prevented from consuming the page",
|
|
2217
2217
|
"wcag": "1.1.1",
|
|
2218
2218
|
"weight": 1,
|
|
2219
2219
|
"max": 1
|
|
@@ -9772,7 +9772,18 @@ const getEngineRuleCounts = (ruleTable = rules) => {
|
|
|
9772
9772
|
});
|
|
9773
9773
|
return counts;
|
|
9774
9774
|
};
|
|
9775
|
+
const checkIssuesData = (issueTable) => {
|
|
9776
|
+
const errors = [];
|
|
9777
|
+
const issueIDsBySummary = {};
|
|
9778
|
+
Object.entries(issueTable).forEach(([issueID, { summary }]) => {
|
|
9779
|
+
const ownerID = issueIDsBySummary[summary];
|
|
9780
|
+
if (ownerID) errors.push(`issues.${issueID} has the summary "${summary}", already used by issues.${ownerID}`);
|
|
9781
|
+
else issueIDsBySummary[summary] = issueID;
|
|
9782
|
+
});
|
|
9783
|
+
if (errors.length) throw new Error(`${errors[0]} (1 of ${errors.length} problems found)`);
|
|
9784
|
+
};
|
|
9775
9785
|
const issueRules = makeIssueRules(rules);
|
|
9776
9786
|
const issueStats = makeIssueStats(issueRules);
|
|
9787
|
+
checkIssuesData(issues);
|
|
9777
9788
|
//#endregion
|
|
9778
9789
|
export { getEditableData, getEngineRuleCounts, getSingleEngineIssues, issueRules, issueStats, issues, makeIssueRules, makeIssueStats, rules };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "testaro-issues",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A classification of about 1500 rules of 10 rule engines into about 400 issues. The rule engines are those in the ensemble of Testaro, which tests web pages for front-end quality (accessibility, usability, and standards conformance).",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -16,8 +16,9 @@
|
|
|
16
16
|
"dist"
|
|
17
17
|
],
|
|
18
18
|
"scripts": {
|
|
19
|
-
"build": "npm run typecheck && tsdown src/index.ts --format cjs,esm --dts",
|
|
19
|
+
"build": "npm run typecheck && tsdown src/index.ts --format cjs,esm --dts && npm test",
|
|
20
20
|
"typecheck": "tsc --noEmit",
|
|
21
|
+
"test": "node -e \"import('./dist/index.mjs')\"",
|
|
21
22
|
"prepublishOnly": "npm run build"
|
|
22
23
|
},
|
|
23
24
|
"keywords": [
|