From 0d5d3f3eb3aecd9fd64954d2767d3d64e97e58fc Mon Sep 17 00:00:00 2001 From: Xuanru Li <157947275+xuanruli@users.noreply.github.com> Date: Sun, 6 Sep 2026 19:08:51 -0700 Subject: [PATCH] feat(lint): flag video/img src pointing at an audio file (#3741) * feat(lint): flag video/img src pointing at an audio file Co-Authored-By: Claude Opus 5 * refactor(lint): drop m4a from the audio src kinds Co-Authored-By: Claude Opus 5 --------- Co-authored-by: Claude Opus 5 --- packages/lint/src/rules/media.test.ts | 56 +++++++++++++++++++++++++++ packages/lint/src/rules/media.ts | 25 ++++++++---- 2 files changed, 74 insertions(+), 7 deletions(-) diff --git a/packages/lint/src/rules/media.test.ts b/packages/lint/src/rules/media.test.ts index 1d621e8a51..e53b40c9fe 100644 --- a/packages/lint/src/rules/media.test.ts +++ b/packages/lint/src/rules/media.test.ts @@ -853,6 +853,62 @@ describe("media_src_kind_mismatch", () => { expect(result.findings.find((f) => f.code === "media_src_kind_mismatch")).toBeUndefined(); }); + it("errors when src is an audio file", async () => { + const html = ` + +
+ +
+ +`; + const result = await lintHyperframeHtml(html); + const finding = result.findings.find((f) => f.code === "media_src_kind_mismatch"); + expect(finding?.severity).toBe("error"); + expect(finding?.elementId).toBe("logo"); + expect(finding?.message).toContain("an audio file"); + }); + + it("errors when