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 ![Screen Shot 2022-06-26 at 7 41 30 PM](https://user-images.githubusercontent.com/abcdef.png) + +imageImage \ 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 = ['imageImage']; + 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 = [ "![Screen Shot 2022-06-26 at 7 41 30 PM](https://user-images.githubusercontent.com/abcdef.png)",