From 0533b6506aaf4513be5b2529d9349b7055555152 Mon Sep 17 00:00:00 2001
From: Kate Higa <16447748+khiga8@users.noreply.github.com>
Date: Thu, 5 Oct 2023 22:01:54 -0400
Subject: [PATCH 1/4] Make sure that HTML that is inlined is supported
---
src/rules/no-default-alt-text.js | 14 +++++++++++---
test/accessibility-rules.test.js | 2 +-
test/example.md | 2 ++
3 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/rules/no-default-alt-text.js b/src/rules/no-default-alt-text.js
index 9eae5d0..c5f03ea 100644
--- a/src/rules/no-default-alt-text.js
+++ b/src/rules/no-default-alt-text.js
@@ -23,7 +23,12 @@ module.exports = {
function: function GH001(params, onError) {
const htmlTagsWithImages = params.parsers.markdownit.tokens.filter(
(token) => {
- return token.type === "html_block" && token.content.includes("
child.type === "html_inline"))
+ );
},
);
const inlineImages = params.parsers.markdownit.tokens.filter(
@@ -36,12 +41,15 @@ module.exports = {
const lineRange = token.map;
const lineNumber = token.lineNumber;
const lines = params.lines.slice(lineRange[0], lineRange[1]);
-
for (let i = 0; i < lines.length; i++) {
const line = lines[i];
let matches;
if (token.type === "inline") {
- matches = line.matchAll(markdownAltRegex);
+ if (token.children.some((child) => child.type === "html_inline")) {
+ matches = line.matchAll(htmlAltRegex);
+ } else {
+ matches = line.matchAll(markdownAltRegex);
+ }
} else {
matches = line.matchAll(htmlAltRegex);
}
diff --git a/test/accessibility-rules.test.js b/test/accessibility-rules.test.js
index ef0e72a..e41e7bf 100644
--- a/test/accessibility-rules.test.js
+++ b/test/accessibility-rules.test.js
@@ -26,7 +26,7 @@ describe("when A11y rules applied", () => {
.map((failure) => failure.ruleNames)
.flat();
- expect(failuresForExampleFile).toHaveLength(1);
+ expect(failuresForExampleFile).toHaveLength(3);
expect(failureNames).toContain("no-default-alt-text");
});
});
diff --git a/test/example.md b/test/example.md
index 69ea19c..61e0808 100644
--- a/test/example.md
+++ b/test/example.md
@@ -1,3 +1,5 @@
# Example Violations

+
+![image]()
\ No newline at end of file
From 1a5e09eec9e6f52e8323226381247c42952e56f9 Mon Sep 17 00:00:00 2001
From: Kate Higa <16447748+khiga8@users.noreply.github.com>
Date: Thu, 5 Oct 2023 22:07:27 -0400
Subject: [PATCH 2/4] Add detail
---
src/rules/no-default-alt-text.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/rules/no-default-alt-text.js b/src/rules/no-default-alt-text.js
index c5f03ea..3254561 100644
--- a/src/rules/no-default-alt-text.js
+++ b/src/rules/no-default-alt-text.js
@@ -59,6 +59,7 @@ module.exports = {
onError({
lineNumber: lineNumber + i,
range: [startIndex + 1, altText.length],
+ detail: `Flagged alt: ${altText}`,
});
}
}
From 0f707f9d6e48e41d4c0c6c397c25cee69f4457d5 Mon Sep 17 00:00:00 2001
From: Kate Higa <16447748+khiga8@users.noreply.github.com>
Date: Fri, 6 Oct 2023 09:52:39 -0400
Subject: [PATCH 3/4] Update the helpers to support multiple errors in one line
---
test/no-default-alt-text.test.js | 10 ++--------
test/no-generic-link-text.test.js | 5 +----
test/utils/run-test.js | 6 ++++--
3 files changed, 7 insertions(+), 14 deletions(-)
diff --git a/test/no-default-alt-text.test.js b/test/no-default-alt-text.test.js
index feca45f..de98999 100644
--- a/test/no-default-alt-text.test.js
+++ b/test/no-default-alt-text.test.js
@@ -11,10 +11,7 @@ describe("GH001: No Default Alt Text", () => {
];
const results = await runTest(strings, altTextRule);
-
- for (const result of results) {
- expect(result).not.toBeDefined();
- }
+ expect(results.length).toBe(0);
});
test("html image", async () => {
const strings = [
@@ -22,10 +19,7 @@ describe("GH001: No Default Alt Text", () => {
];
const results = await runTest(strings, altTextRule);
-
- for (const result of results) {
- expect(result).not.toBeDefined();
- }
+ expect(results.length).toBe(0);
});
});
describe("failures", () => {
diff --git a/test/no-generic-link-text.test.js b/test/no-generic-link-text.test.js
index 16ac44a..ac11941 100644
--- a/test/no-generic-link-text.test.js
+++ b/test/no-generic-link-text.test.js
@@ -17,10 +17,7 @@ describe("GH002: No Generic Link Text", () => {
];
const results = await runTest(strings, noGenericLinkTextRule);
-
- for (const result of results) {
- expect(result).not.toBeDefined();
- }
+ expect(results.length).toBe(0);
});
});
describe("failures", () => {
diff --git a/test/utils/run-test.js b/test/utils/run-test.js
index a70e283..b3a6aa1 100644
--- a/test/utils/run-test.js
+++ b/test/utils/run-test.js
@@ -11,7 +11,7 @@ async function runTest(strings, rule, ruleConfig) {
customRules: [rule],
};
- return await Promise.all(
+ const results = await Promise.all(
strings.map((variation) => {
const thisTestConfig = {
...config,
@@ -21,11 +21,13 @@ async function runTest(strings, rule, ruleConfig) {
return new Promise((resolve, reject) => {
markdownlint(thisTestConfig, (err, result) => {
if (err) reject(err);
- resolve(result[0][0]);
+ resolve(result[0]);
});
});
}),
);
+
+ return results.flat();
}
exports.runTest = runTest;
From 8cf33ccfa6cb992844a079a648248842f603a766 Mon Sep 17 00:00:00 2001
From: Kate Higa <16447748+khiga8@users.noreply.github.com>
Date: Fri, 6 Oct 2023 09:58:55 -0400
Subject: [PATCH 4/4] add test support
---
test/no-default-alt-text.test.js | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/test/no-default-alt-text.test.js b/test/no-default-alt-text.test.js
index de98999..314a781 100644
--- a/test/no-default-alt-text.test.js
+++ b/test/no-default-alt-text.test.js
@@ -71,6 +71,17 @@ describe("GH001: No Default Alt Text", () => {
}
});
+ test("flags multiple consecutive inline images", async () => {
+ const strings = ['![image]()
'];
+ const results = await runTest(strings, altTextRule);
+ expect(results).toHaveLength(2);
+
+ expect(results[0].errorRange).toEqual([11, 5]);
+ expect(results[0].errorDetail).toEqual("Flagged alt: image");
+ expect(results[1].errorRange).toEqual([28, 5]);
+ expect(results[1].errorDetail).toEqual("Flagged alt: Image");
+ });
+
test("error message", async () => {
const strings = [
"",