accented 1.0.1 → 1.1.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 +33 -19
- package/dist/accented.d.ts.map +1 -1
- package/dist/accented.js +3 -2
- package/dist/accented.js.map +1 -1
- package/dist/common/tokens.d.ts +9 -0
- package/dist/common/tokens.d.ts.map +1 -1
- package/dist/common/tokens.js +28 -0
- package/dist/common/tokens.js.map +1 -1
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/elements/accented-dialog.d.ts +20 -8
- package/dist/elements/accented-dialog.d.ts.map +1 -1
- package/dist/elements/accented-dialog.js +6 -23
- package/dist/elements/accented-dialog.js.map +1 -1
- package/dist/elements/accented-trigger.d.ts +24 -12
- package/dist/elements/accented-trigger.d.ts.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +196 -17
- package/dist/logger.js.map +1 -1
- package/dist/types.d.ts +31 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/are-issue-sets-equal.d.ts.map +1 -1
- package/dist/utils/are-issue-sets-equal.js +2 -2
- package/dist/utils/are-issue-sets-equal.js.map +1 -1
- package/dist/utils/are-issues-equal.d.ts +3 -0
- package/dist/utils/are-issues-equal.d.ts.map +1 -0
- package/dist/utils/are-issues-equal.js +5 -0
- package/dist/utils/are-issues-equal.js.map +1 -0
- package/dist/utils/shadow-dom-aware-mutation-observer.d.ts +4 -4
- package/dist/utils/shadow-dom-aware-mutation-observer.d.ts.map +1 -1
- package/dist/utils/transform-violations.d.ts.map +1 -1
- package/dist/utils/transform-violations.js +7 -4
- package/dist/utils/transform-violations.js.map +1 -1
- package/dist/validate-options.d.ts.map +1 -1
- package/dist/validate-options.js +3 -0
- package/dist/validate-options.js.map +1 -1
- package/package.json +4 -4
- package/src/accented.ts +3 -2
- package/src/common/tokens.ts +36 -0
- package/src/constants.ts +4 -0
- package/src/elements/accented-dialog.ts +16 -23
- package/src/logger.ts +276 -22
- package/src/types.ts +32 -1
- package/src/utils/are-issue-sets-equal.ts +2 -5
- package/src/utils/are-issues-equal.ts +7 -0
- package/src/utils/transform-violations.ts +12 -6
- package/src/validate-options.ts +5 -0
package/dist/logger.js
CHANGED
|
@@ -1,28 +1,207 @@
|
|
|
1
1
|
import { effect } from '@preact/signals-core';
|
|
2
|
-
import {
|
|
2
|
+
import { consoleColorImpactCritical, consoleColorImpactMinor, consoleColorImpactModerate, consoleColorImpactSerious, } from './common/tokens.js';
|
|
3
|
+
import { accentedUrl, orderedImpacts } from './constants.js';
|
|
3
4
|
import { elementsWithIssues, enabled } from './state.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
import { areElementsWithIssuesEqual } from './utils/are-elements-with-issues-equal.js';
|
|
6
|
+
import { areIssueSetsEqual } from './utils/are-issue-sets-equal.js';
|
|
7
|
+
import { areIssuesEqual } from './utils/are-issues-equal.js';
|
|
8
|
+
// For user friendliness, we want to balance two things:
|
|
9
|
+
// * the user shouldn't have to click in the console too many times to get to the info they need;
|
|
10
|
+
// * the output should be concise and not overwhelm the user with too much information at once.
|
|
11
|
+
// This number is chosen as a compromise between these two factors.
|
|
12
|
+
const MAX_ISSUES_BEFORE_OUTPUT_COLLAPSE = 5;
|
|
13
|
+
// Groups have bold color by default in the console.
|
|
14
|
+
// This doesn't seem appropriate for our purposes, so we have to explicitly set the normal font weight.
|
|
15
|
+
const defaultStyle = 'font-weight: normal;';
|
|
16
|
+
// We'll use the same colors in the console as in the dialog UI
|
|
17
|
+
// (except the theme will be reversed since in the dialog, the color needs to have enough contrast against text color,
|
|
18
|
+
// and in the console, the color needs to have enough contrast against the background color).
|
|
19
|
+
const colors = {
|
|
20
|
+
minor: consoleColorImpactMinor,
|
|
21
|
+
moderate: consoleColorImpactModerate,
|
|
22
|
+
serious: consoleColorImpactSerious,
|
|
23
|
+
critical: consoleColorImpactCritical,
|
|
24
|
+
};
|
|
25
|
+
const uppercasedImpactText = (impact) => impact.charAt(0).toUpperCase() + impact.slice(1);
|
|
26
|
+
const titleAndUrl = (issue) => `${issue.title} ${issue.url}`;
|
|
27
|
+
// This sorting is not ideal since it doesn't work very well with shadow DOM.
|
|
28
|
+
const sortByElementPositions = (a, b) => (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING ? 1 : -1);
|
|
29
|
+
const getIssueTypeGroups = (elementsWithIssues) => {
|
|
30
|
+
const groupedByIssueType = elementsWithIssues.reduce((acc, { element, issues }) => {
|
|
31
|
+
for (const issue of issues) {
|
|
32
|
+
if (!acc[issue.id]) {
|
|
33
|
+
acc[issue.id] = {
|
|
34
|
+
title: issue.title,
|
|
35
|
+
url: issue.url,
|
|
36
|
+
impact: issue.impact,
|
|
37
|
+
elements: [],
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
acc[issue.id]?.elements.push({ element, description: issue.description });
|
|
41
|
+
}
|
|
42
|
+
return acc;
|
|
43
|
+
}, {});
|
|
44
|
+
const sorted = Object.values(groupedByIssueType).sort((a, b) => {
|
|
45
|
+
const impactComparison = orderedImpacts.indexOf(b.impact) - orderedImpacts.indexOf(a.impact);
|
|
46
|
+
if (impactComparison !== 0) {
|
|
47
|
+
return impactComparison;
|
|
48
|
+
}
|
|
49
|
+
return b.elements.length - a.elements.length;
|
|
50
|
+
});
|
|
51
|
+
return sorted;
|
|
52
|
+
};
|
|
53
|
+
function logIssuesByElement(elementsWithIssues) {
|
|
54
|
+
// Elements with more severe issues (or with a higher number of issues of the same severity)
|
|
55
|
+
// will appear higher in the output.
|
|
56
|
+
// This way, issues with a higher severity will be prioritized.
|
|
57
|
+
const sortedElementsWithIssues = elementsWithIssues.toSorted((a, b) => {
|
|
58
|
+
const impacts = orderedImpacts.toReversed();
|
|
59
|
+
const impactWithDifferentIssueCount = impacts.find((impact) => {
|
|
60
|
+
const aCount = a.issues.filter((issue) => issue.impact === impact).length;
|
|
61
|
+
const bCount = b.issues.filter((issue) => issue.impact === impact).length;
|
|
62
|
+
return aCount !== bCount;
|
|
63
|
+
});
|
|
64
|
+
if (impactWithDifferentIssueCount) {
|
|
65
|
+
const aCount = a.issues.filter((issue) => issue.impact === impactWithDifferentIssueCount).length;
|
|
66
|
+
const bCount = b.issues.filter((issue) => issue.impact === impactWithDifferentIssueCount).length;
|
|
67
|
+
return bCount - aCount; // Sort by count of issues with the same impact
|
|
68
|
+
}
|
|
69
|
+
return sortByElementPositions(a.element, b.element);
|
|
70
|
+
});
|
|
71
|
+
for (const { element, issues } of sortedElementsWithIssues) {
|
|
72
|
+
const sortedAndFilteredImpacts = orderedImpacts
|
|
73
|
+
.toReversed()
|
|
74
|
+
.filter((impact) => issues.some((issue) => issue.impact === impact));
|
|
75
|
+
const issuesWithImpacts = sortedAndFilteredImpacts
|
|
76
|
+
.map((impact) => `%c${issues.filter((issue) => issue.impact === impact).length} ${impact}`)
|
|
77
|
+
.join(', ');
|
|
78
|
+
const baseOutput = `${issuesWithImpacts}%c`;
|
|
79
|
+
const output = issues.length === 1 && issues[0]
|
|
80
|
+
? `${baseOutput}\n${titleAndUrl(issues[0])}\n%o`
|
|
81
|
+
: `${baseOutput}\n%o`;
|
|
82
|
+
console.groupCollapsed(output, ...sortedAndFilteredImpacts.map((impact) => `color: ${colors[impact]};`), defaultStyle, element);
|
|
83
|
+
if (issues.length === 1) {
|
|
84
|
+
// If an element has just one issue, output that issue inline, to reduce the number of clicks in the console for the user.
|
|
85
|
+
console.log(issues[0]?.description);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
for (const issue of issues) {
|
|
89
|
+
console.groupCollapsed(`%c${uppercasedImpactText(issue.impact)}:%c\n${titleAndUrl(issue)}`, `color: ${colors[issue.impact]};`, defaultStyle);
|
|
90
|
+
console.log(issue.description);
|
|
91
|
+
console.groupEnd();
|
|
92
|
+
}
|
|
12
93
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
94
|
+
console.groupEnd();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function logIssuesByType(issueTypeGroups) {
|
|
98
|
+
for (const { title, url, impact, elements } of issueTypeGroups) {
|
|
99
|
+
// We'll output the element itself next to the issue description if there's just one associated element,
|
|
100
|
+
// to reduce the number of clicks in the console for the user.
|
|
101
|
+
const shouldOutputElementInline = elements.length === 1;
|
|
102
|
+
const baseOutput = `%c${uppercasedImpactText(impact)} (${elements.length} element${elements.length === 1 ? '' : 's'}):%c\n${titleAndUrl({ title, url })}`;
|
|
103
|
+
const output = shouldOutputElementInline ? `${baseOutput}\n%o` : baseOutput;
|
|
104
|
+
console.groupCollapsed(output, `color: ${colors[impact]};`, defaultStyle, ...(shouldOutputElementInline ? [elements[0]?.element] : []));
|
|
105
|
+
if (shouldOutputElementInline) {
|
|
106
|
+
console.log(elements[0]?.description);
|
|
17
107
|
}
|
|
18
108
|
else {
|
|
19
|
-
|
|
20
|
-
|
|
109
|
+
for (const { element, description } of elements.sort((elementContainer1, elementContainer2) => sortByElementPositions(elementContainer1.element, elementContainer2.element))) {
|
|
110
|
+
console.groupCollapsed('%o', element);
|
|
111
|
+
console.log(description);
|
|
112
|
+
console.groupEnd();
|
|
21
113
|
}
|
|
22
|
-
|
|
23
|
-
|
|
114
|
+
}
|
|
115
|
+
console.groupEnd();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function logNewIssues(elementsWithIssues, previousElementsWithIssues) {
|
|
119
|
+
// The elements with accessibility issues that didn't have any associated issues
|
|
120
|
+
// or that weren't in the DOM at the time of last scan.
|
|
121
|
+
const addedElements = elementsWithIssues.filter((elementWithIssues) => {
|
|
122
|
+
return !previousElementsWithIssues.some((previousElementWithIssues) => areElementsWithIssuesEqual(previousElementWithIssues, elementWithIssues));
|
|
123
|
+
});
|
|
124
|
+
// The elements that now have more issues than at the time of last scan,
|
|
125
|
+
// with just the new issues (previously existing issues are filtered out).
|
|
126
|
+
const existingElementsWithNewIssues = elementsWithIssues.reduce((acc, elementWithIssues) => {
|
|
127
|
+
let foundElementWithIssues = null;
|
|
128
|
+
for (const previousElementWithIssues of previousElementsWithIssues) {
|
|
129
|
+
if (areElementsWithIssuesEqual(previousElementWithIssues, elementWithIssues) &&
|
|
130
|
+
!areIssueSetsEqual(previousElementWithIssues.issues, elementWithIssues.issues)) {
|
|
131
|
+
const newIssues = elementWithIssues.issues.filter((issue) => {
|
|
132
|
+
return !previousElementWithIssues.issues.some((prevIssue) => areIssuesEqual(prevIssue, issue));
|
|
133
|
+
});
|
|
134
|
+
if (newIssues.length > 0) {
|
|
135
|
+
foundElementWithIssues = {
|
|
136
|
+
...elementWithIssues,
|
|
137
|
+
issues: newIssues,
|
|
138
|
+
};
|
|
139
|
+
acc.push(foundElementWithIssues);
|
|
140
|
+
}
|
|
141
|
+
break;
|
|
24
142
|
}
|
|
25
143
|
}
|
|
144
|
+
return acc;
|
|
145
|
+
}, []);
|
|
146
|
+
const elementsWithNewIssues = [...addedElements, ...existingElementsWithNewIssues];
|
|
147
|
+
const newIssueCount = elementsWithNewIssues.reduce((acc, { issues }) => acc + issues.length, 0);
|
|
148
|
+
if (newIssueCount === 0) {
|
|
149
|
+
console.log('No new issues');
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
const newIssuesMessage = `%cNew issues (${newIssueCount} in ${elementsWithNewIssues.length} element${elementsWithNewIssues.length === 1 ? '' : 's'})`;
|
|
153
|
+
if (newIssueCount <= MAX_ISSUES_BEFORE_OUTPUT_COLLAPSE) {
|
|
154
|
+
// Don't collapse the new issues if there are not too many (this hopefully helps user avoid unnecessary clicks in the console).
|
|
155
|
+
console.group(newIssuesMessage, defaultStyle);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
console.groupCollapsed(newIssuesMessage, defaultStyle);
|
|
159
|
+
}
|
|
160
|
+
// Output by element (no specific reason for this choice, just a preference).
|
|
161
|
+
logIssuesByElement(elementsWithNewIssues);
|
|
162
|
+
console.groupEnd();
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
function logIssues(elementsWithIssues, previousElementsWithIssues) {
|
|
166
|
+
const elementCount = elementsWithIssues.length;
|
|
167
|
+
if (elementCount === 0) {
|
|
168
|
+
console.log(`No accessibility issues (Accented, ${accentedUrl}).`);
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
const issueCount = elementsWithIssues.reduce((acc, { issues }) => acc + issues.length, 0);
|
|
172
|
+
console.group(`%c${issueCount} accessibility issue${issueCount === 1 ? '' : 's'} in ${elementCount} element${elementCount === 1 ? '' : 's'} (Accented, ${accentedUrl}):\n`, defaultStyle);
|
|
173
|
+
if (issueCount <= MAX_ISSUES_BEFORE_OUTPUT_COLLAPSE) {
|
|
174
|
+
// Don't collapse issues if there are not too many (this hopefully helps user avoid unnecessary clicks in the console).
|
|
175
|
+
// Output by element (no specific reason for this choice, just a preference).
|
|
176
|
+
logIssuesByElement(elementsWithIssues);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
// When there are many issues, outputting them all would probably make the console too noisy,
|
|
180
|
+
// so we collapse them.
|
|
181
|
+
// Moreover, we output all issues twice, by element and by issue type, to give users more choice.
|
|
182
|
+
console.groupCollapsed(`%cAll by element (${elementsWithIssues.length})`, defaultStyle);
|
|
183
|
+
logIssuesByElement(elementsWithIssues);
|
|
184
|
+
console.groupEnd();
|
|
185
|
+
const issueTypeGroups = getIssueTypeGroups(elementsWithIssues);
|
|
186
|
+
console.groupCollapsed(`%cAll by issue type (${issueTypeGroups.length})`, defaultStyle);
|
|
187
|
+
logIssuesByType(issueTypeGroups);
|
|
188
|
+
console.groupEnd();
|
|
189
|
+
}
|
|
190
|
+
if (previousElementsWithIssues.length > 0) {
|
|
191
|
+
// Log new issues separately, to make it easier for the user to know what issues
|
|
192
|
+
// were introduced recently.
|
|
193
|
+
logNewIssues(elementsWithIssues, previousElementsWithIssues);
|
|
194
|
+
}
|
|
195
|
+
console.groupEnd();
|
|
196
|
+
}
|
|
197
|
+
export function createLogger() {
|
|
198
|
+
let previousElementsWithIssues = [];
|
|
199
|
+
return effect(() => {
|
|
200
|
+
if (!enabled.value) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
logIssues(elementsWithIssues.value, previousElementsWithIssues);
|
|
204
|
+
previousElementsWithIssues = elementsWithIssues.value;
|
|
26
205
|
});
|
|
27
206
|
}
|
|
28
207
|
//# sourceMappingURL=logger.js.map
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -33,9 +33,39 @@ export type Output = {
|
|
|
33
33
|
/**
|
|
34
34
|
* Whether the list of elements with issues should be printed to the browser console whenever issues are added, removed, or changed.
|
|
35
35
|
*
|
|
36
|
+
* **Example:**
|
|
37
|
+
*
|
|
38
|
+
* ```js
|
|
39
|
+
* accented({
|
|
40
|
+
* output: {
|
|
41
|
+
* console: false
|
|
42
|
+
* }
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* In the example, the issues will not be logged to the console, while elements on the page will still be highlighted.
|
|
47
|
+
*
|
|
36
48
|
* @default true
|
|
37
49
|
* */
|
|
38
50
|
console?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Whether Accented should highlight elements with issues on the page.
|
|
53
|
+
*
|
|
54
|
+
* **Example:**
|
|
55
|
+
*
|
|
56
|
+
* ```js
|
|
57
|
+
* accented({
|
|
58
|
+
* output: {
|
|
59
|
+
* page: false
|
|
60
|
+
* }
|
|
61
|
+
* });
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* In the example, the issues will only be logged to the console, with no highlights on the page.
|
|
65
|
+
*
|
|
66
|
+
* @default true
|
|
67
|
+
* */
|
|
68
|
+
page?: boolean;
|
|
39
69
|
};
|
|
40
70
|
/**
|
|
41
71
|
* Model context type based on axe.ElementContext,
|
|
@@ -200,7 +230,7 @@ export type Issue = {
|
|
|
200
230
|
title: string;
|
|
201
231
|
description: string;
|
|
202
232
|
url: string;
|
|
203
|
-
impact: axe.ImpactValue
|
|
233
|
+
impact: Exclude<axe.ImpactValue, null>;
|
|
204
234
|
};
|
|
205
235
|
export type BaseElementWithIssues = {
|
|
206
236
|
element: HTMLElement | SVGElement;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,MAAM,MAAM,QAAQ,GAAG;IACrB;;;;;;;;;;;SAWK;IACL,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;;;;;;SAWK;IACL,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAoGA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,SAAS,CAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"are-issue-sets-equal.d.ts","sourceRoot":"","sources":["../../src/utils/are-issue-sets-equal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"are-issue-sets-equal.d.ts","sourceRoot":"","sources":["../../src/utils/are-issue-sets-equal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,WAK7E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { areIssuesEqual } from './are-issues-equal.js';
|
|
2
2
|
export function areIssueSetsEqual(issues1, issues2) {
|
|
3
3
|
return (issues1.length === issues2.length &&
|
|
4
|
-
issues1.every((issue1) => Boolean(issues2.find((issue2) =>
|
|
4
|
+
issues1.every((issue1) => Boolean(issues2.find((issue2) => areIssuesEqual(issue1, issue2)))));
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=are-issue-sets-equal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"are-issue-sets-equal.js","sourceRoot":"","sources":["../../src/utils/are-issue-sets-equal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"are-issue-sets-equal.js","sourceRoot":"","sources":["../../src/utils/are-issue-sets-equal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,UAAU,iBAAiB,CAAC,OAAqB,EAAE,OAAqB;IAC5E,OAAO,CACL,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;QACjC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAC7F,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"are-issues-equal.d.ts","sourceRoot":"","sources":["../../src/utils/are-issues-equal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIzC,wBAAgB,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,WAE1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"are-issues-equal.js","sourceRoot":"","sources":["../../src/utils/are-issues-equal.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAEvF,MAAM,UAAU,cAAc,CAAC,MAAa,EAAE,MAAa;IACzD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export declare function createShadowDOMAwareMutationObserver(name: string, callback: MutationCallback): {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
#shadowRoots: Set<unknown>;
|
|
3
|
+
#options: MutationObserverInit | undefined;
|
|
4
4
|
observe(target: Node, options?: MutationObserverInit): void;
|
|
5
5
|
disconnect(): void;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
#observeShadowRoots: (elements: Array<Element | Document | DocumentFragment>) => void;
|
|
7
|
+
#deleteShadowRoots: (elements: Array<Element | Document | DocumentFragment>) => void;
|
|
8
8
|
takeRecords(): MutationRecord[];
|
|
9
9
|
};
|
|
10
10
|
//# sourceMappingURL=shadow-dom-aware-mutation-observer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadow-dom-aware-mutation-observer.d.ts","sourceRoot":"","sources":["../../src/utils/shadow-dom-aware-mutation-observer.ts"],"names":[],"mappings":"AAGA,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB;;
|
|
1
|
+
{"version":3,"file":"shadow-dom-aware-mutation-observer.d.ts","sourceRoot":"","sources":["../../src/utils/shadow-dom-aware-mutation-observer.ts"],"names":[],"mappings":"AAGA,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB;;cAI/E,oBAAoB,GAAG,SAAS;oBA2BjB,IAAI,YAAY,oBAAoB,GAAG,IAAI;kBAQ7C,IAAI;0BAKJ,UAAU,KAAK,CAAC,OAAO,GAAG,QAAQ,GAAG,gBAAgB,CAAC;yBAcvD,UAAU,KAAK,CAAC,OAAO,GAAG,QAAQ,GAAG,gBAAgB,CAAC;;EAa/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-violations.d.ts","sourceRoot":"","sources":["../../src/utils/transform-violations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"transform-violations.d.ts","sourceRoot":"","sources":["../../src/utils/transform-violations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,iBAAiB,EAAS,MAAM,aAAa,CAAC;AAyB5D,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,OAAO,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,uBAsDzF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { issuesUrl, orderedImpacts } from '../constants.js';
|
|
1
2
|
// This is a list of axe-core violations (their ids) that may be flagged by axe-core
|
|
2
3
|
// as false positives if an Accented trigger is a descendant of the element with the issue.
|
|
3
4
|
const violationsAffectedByAccentedTriggers = [
|
|
@@ -14,8 +15,7 @@ function maybeCausedByAccented(violationId, element, name) {
|
|
|
14
15
|
Boolean(element.querySelector(`${name}-trigger`)));
|
|
15
16
|
}
|
|
16
17
|
function impactCompare(a, b) {
|
|
17
|
-
|
|
18
|
-
return impactOrder.indexOf(a) - impactOrder.indexOf(b);
|
|
18
|
+
return orderedImpacts.indexOf(a) - orderedImpacts.indexOf(b);
|
|
19
19
|
}
|
|
20
20
|
export function transformViolations(violations, name) {
|
|
21
21
|
const elementsWithIssues = [];
|
|
@@ -30,14 +30,17 @@ export function transformViolations(violations, name) {
|
|
|
30
30
|
// A consumer of Accented can instead scan the iframed document by calling Accented initialization from that document.
|
|
31
31
|
const isInIframe = target.length > 1;
|
|
32
32
|
if (element && !isInIframe && !maybeCausedByAccented(violation.id, element, name)) {
|
|
33
|
+
if (!violation.impact) {
|
|
34
|
+
console.warn(`Accented: axe-core (the accessibility testing engine) returned a violation with an empty impact. This may be a bug in axe-core or in Accented. Please report it at ${issuesUrl}.`, violation);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
33
37
|
const issue = {
|
|
34
38
|
id: violation.id,
|
|
35
39
|
title: violation.help,
|
|
36
40
|
// See https://github.com/pomerantsev/accented/issues/203
|
|
37
41
|
description: node.failureSummary ?? violation.description,
|
|
38
42
|
url: violation.helpUrl,
|
|
39
|
-
|
|
40
|
-
impact: violation.impact ?? null,
|
|
43
|
+
impact: violation.impact,
|
|
41
44
|
};
|
|
42
45
|
const existingElement = elementsWithIssues.find((elementWithIssues) => elementWithIssues.element === element);
|
|
43
46
|
if (existingElement === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-violations.js","sourceRoot":"","sources":["../../src/utils/transform-violations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transform-violations.js","sourceRoot":"","sources":["../../src/utils/transform-violations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-options.d.ts","sourceRoot":"","sources":["../src/validate-options.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAMhB,MAAM,YAAY,CAAC;AA+GpB,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"validate-options.d.ts","sourceRoot":"","sources":["../src/validate-options.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAMhB,MAAM,YAAY,CAAC;AA+GpB,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,QAqEvD"}
|
package/dist/validate-options.js
CHANGED
|
@@ -105,6 +105,9 @@ export function validateOptions(options) {
|
|
|
105
105
|
if (options.output.console !== undefined && typeof options.output.console !== 'boolean') {
|
|
106
106
|
console.warn(`Accented: invalid argument. \`output.console\` option is expected to be a boolean. It’s currently set to ${options.output.console}.`);
|
|
107
107
|
}
|
|
108
|
+
if (options.output.page !== undefined && typeof options.output.page !== 'boolean') {
|
|
109
|
+
console.warn(`Accented: invalid argument. \`output.page\` option is expected to be a boolean. It’s currently set to ${options.output.page}.`);
|
|
110
|
+
}
|
|
108
111
|
}
|
|
109
112
|
if (options.callback !== undefined && typeof options.callback !== 'function') {
|
|
110
113
|
throw new TypeError(`Accented: invalid argument. \`callback\` option must be a function if provided. It’s currently set to ${options.callback}.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-options.js","sourceRoot":"","sources":["../src/validate-options.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate-options.js","sourceRoot":"","sources":["../src/validate-options.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "accented",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "A frontend library for continuous accessibility testing and issue highlighting",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/accented.js",
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
38
38
|
"build": "pnpm copyCommon && tsc",
|
|
39
|
-
"copyCommon": "node
|
|
40
|
-
"watchCommon": "node
|
|
41
|
-
"checkBuiltFiles": "node
|
|
39
|
+
"copyCommon": "node ./scripts/copy-common.ts",
|
|
40
|
+
"watchCommon": "node ./scripts/watch-common.ts",
|
|
41
|
+
"checkBuiltFiles": "node ./scripts/check-built-files.ts",
|
|
42
42
|
"checkImportsInBuiltFiles": "node ./dist/accented.js",
|
|
43
43
|
"typecheckTests": "tsc -p ./tsconfig.test.json",
|
|
44
44
|
"watch": "pnpm copyCommon && (pnpm watchCommon & tsc --watch)",
|
package/src/accented.ts
CHANGED
|
@@ -55,6 +55,7 @@ export function accented(options: AccentedOptions = {}): DisableAccented {
|
|
|
55
55
|
|
|
56
56
|
const defaultOutput: Required<AccentedOptions['output']> = {
|
|
57
57
|
console: true,
|
|
58
|
+
page: true,
|
|
58
59
|
};
|
|
59
60
|
|
|
60
61
|
const defaultThrottle: Required<AccentedOptions['throttle']> = {
|
|
@@ -96,9 +97,9 @@ export function accented(options: AccentedOptions = {}): DisableAccented {
|
|
|
96
97
|
const { disconnect: cleanupIntersectionObserver, intersectionObserver } =
|
|
97
98
|
setupIntersectionObserver();
|
|
98
99
|
const cleanupScanner = createScanner(name, context, axeOptions, throttle, callback);
|
|
99
|
-
const cleanupDomUpdater = createDomUpdater(name, intersectionObserver);
|
|
100
|
+
const cleanupDomUpdater = output.page ? createDomUpdater(name, intersectionObserver) : () => {};
|
|
100
101
|
const cleanupLogger = output.console ? createLogger() : () => {};
|
|
101
|
-
const cleanupScrollListeners = setupScrollListeners();
|
|
102
|
+
const cleanupScrollListeners = output.page ? setupScrollListeners() : () => {};
|
|
102
103
|
const cleanupResizeListener = supportsAnchorPositioning(window)
|
|
103
104
|
? () => {}
|
|
104
105
|
: setupResizeListener();
|
package/src/common/tokens.ts
CHANGED
|
@@ -3,6 +3,42 @@ export const primaryColorLight = 'oklch(0.8 0.2 0)';
|
|
|
3
3
|
export const colorLight = 'oklch(0.98 0 0)';
|
|
4
4
|
export const colorDark = 'oklch(0.22 0 0)';
|
|
5
5
|
|
|
6
|
+
const hueGray = 0;
|
|
7
|
+
const hueBlue = 230;
|
|
8
|
+
const hueGold = 90;
|
|
9
|
+
const hueRed = 0;
|
|
10
|
+
|
|
11
|
+
const focusLightnessLight = 0.45;
|
|
12
|
+
const focusLightnessDark = 0.8;
|
|
13
|
+
const chromaFocus = 0.25;
|
|
14
|
+
|
|
15
|
+
export const colorFocus = `light-dark(oklch(${focusLightnessLight} ${chromaFocus} ${hueBlue}), oklch(${focusLightnessDark} ${chromaFocus} ${hueBlue}))`;
|
|
16
|
+
|
|
17
|
+
const impactLightnessLight = 0.8;
|
|
18
|
+
const impactLightnessDark = 0.45;
|
|
19
|
+
const chromaImpactGray = 0;
|
|
20
|
+
const chromaImpactNonGray = 0.16;
|
|
21
|
+
|
|
22
|
+
const colorImpactMinorLight = `oklch(${impactLightnessLight} ${chromaImpactGray} ${hueGray})`;
|
|
23
|
+
const colorImpactModerateLight = `oklch(${impactLightnessLight} ${chromaImpactNonGray} ${hueBlue})`;
|
|
24
|
+
const colorImpactSeriousLight = `oklch(${impactLightnessLight} ${chromaImpactNonGray} ${hueGold})`;
|
|
25
|
+
const colorImpactCriticalLight = `oklch(${impactLightnessLight} ${chromaImpactNonGray} ${hueRed})`;
|
|
26
|
+
|
|
27
|
+
const colorImpactMinorDark = `oklch(${impactLightnessDark} ${chromaImpactGray} ${hueGray})`;
|
|
28
|
+
const colorImpactModerateDark = `oklch(${impactLightnessDark} ${chromaImpactNonGray} ${hueBlue})`;
|
|
29
|
+
const colorImpactSeriousDark = `oklch(${impactLightnessDark} ${chromaImpactNonGray} ${hueGold})`;
|
|
30
|
+
const colorImpactCriticalDark = `oklch(${impactLightnessDark} ${chromaImpactNonGray} ${hueRed})`;
|
|
31
|
+
|
|
32
|
+
export const colorImpactMinor = `light-dark(${colorImpactMinorLight}, ${colorImpactMinorDark})`;
|
|
33
|
+
export const colorImpactModerate = `light-dark(${colorImpactModerateLight}, ${colorImpactModerateDark})`;
|
|
34
|
+
export const colorImpactSerious = `light-dark(${colorImpactSeriousLight}, ${colorImpactSeriousDark})`;
|
|
35
|
+
export const colorImpactCritical = `light-dark(${colorImpactCriticalLight}, ${colorImpactCriticalDark})`;
|
|
36
|
+
|
|
37
|
+
export const consoleColorImpactMinor = `light-dark(${colorImpactMinorDark}, ${colorImpactMinorLight})`;
|
|
38
|
+
export const consoleColorImpactModerate = `light-dark(${colorImpactModerateDark}, ${colorImpactModerateLight})`;
|
|
39
|
+
export const consoleColorImpactSerious = `light-dark(${colorImpactSeriousDark}, ${colorImpactSeriousLight})`;
|
|
40
|
+
export const consoleColorImpactCritical = `light-dark(${colorImpactCriticalDark}, ${colorImpactCriticalLight})`;
|
|
41
|
+
|
|
6
42
|
/* https://systemfontstack.com/ */
|
|
7
43
|
export const fontSystemSans =
|
|
8
44
|
'-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, Adwaita Sans, Cantarell, Ubuntu, roboto, noto, helvetica, arial, sans-serif';
|
package/src/constants.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import type { Issue } from './types';
|
|
2
|
+
|
|
1
3
|
export const accentedUrl = 'https://accented.dev';
|
|
2
4
|
export const issuesUrl = 'https://github.com/pomerantsev/accented/issues';
|
|
3
5
|
export const getAccentedElementNames = (name: string) => [`${name}-trigger`, `${name}-dialog`];
|
|
6
|
+
|
|
7
|
+
export const orderedImpacts: Array<Issue['impact']> = ['minor', 'moderate', 'serious', 'critical'];
|