From 22ce373b23517f4f0ecaf59f46f16f609a0c0a9b Mon Sep 17 00:00:00 2001
From: Tu Shaokun <2801884530@qq.com>
Date: Sat, 3 Jan 2026 17:07:29 +0800
Subject: [PATCH 1/7] feat(html): add useAltText a11y rule
Add a new HTML accessibility lint rule that enforces alternative text
on elements that require it:
- img: requires alt, aria-label, or aria-labelledby
- area: requires alt, aria-label, or aria-labelledby
- input[type=image]: requires alt, aria-label, or aria-labelledby
- object: requires title, aria-label, or aria-labelledby
Elements with aria-hidden="true" are exempt from this rule.
Empty alt="" is valid for decorative images.
Part of the HTML a11y umbrella issue #8155.
---
.changeset/html-use-alt-text.md | 5 +
crates/biome_html_analyze/src/lint/a11y.rs | 3 +-
.../src/lint/a11y/use_alt_text.rs | 247 ++++++++++++++++++
.../tests/specs/a11y/useAltText/invalid.html | 15 ++
.../specs/a11y/useAltText/invalid.html.snap | 171 ++++++++++++
.../tests/specs/a11y/useAltText/valid.html | 55 ++++
.../specs/a11y/useAltText/valid.html.snap | 63 +++++
7 files changed, 558 insertions(+), 1 deletion(-)
create mode 100644 .changeset/html-use-alt-text.md
create mode 100644 crates/biome_html_analyze/src/lint/a11y/use_alt_text.rs
create mode 100644 crates/biome_html_analyze/tests/specs/a11y/useAltText/invalid.html
create mode 100644 crates/biome_html_analyze/tests/specs/a11y/useAltText/invalid.html.snap
create mode 100644 crates/biome_html_analyze/tests/specs/a11y/useAltText/valid.html
create mode 100644 crates/biome_html_analyze/tests/specs/a11y/useAltText/valid.html.snap
diff --git a/.changeset/html-use-alt-text.md b/.changeset/html-use-alt-text.md
new file mode 100644
index 000000000000..768eb5d84453
--- /dev/null
+++ b/.changeset/html-use-alt-text.md
@@ -0,0 +1,5 @@
+---
+"@biomejs/biome": minor
+---
+
+Added the [`useAltText`](https://biomejs.dev/linter/rules/use-alt-text/) lint rule for HTML. This rule enforces that elements requiring alternative text (`
`, ``, ``, `