Skip to content

noRedundantAlt (HTML)

biome.json
{
"linter": {
"rules": {
"a11y": {
"noRedundantAlt": "error"
}
}
}
}

Enforce img alt prop does not contain the word “image”, “picture”, or “photo”.

The rule will first check if aria-hidden is truthy to determine whether to enforce the rule. If the image is hidden, then the rule will always succeed.

<img src="src" alt="photo content" />;
code-block.html:1:20 lint/a11y/noRedundantAlt ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Avoid the words "image", "picture", or "photo" in img element alt text.

> 1 │ <img src="src" alt="photo content" />;
^^^^^^^^^^^^^^^
2 │

Screen readers announce img elements as "images", so it is not necessary to redeclare this in alternative text.

<img alt="picture of cool person" aria-hidden="false" />;
code-block.html:1:10 lint/a11y/noRedundantAlt ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Avoid the words "image", "picture", or "photo" in img element alt text.

> 1 │ <img alt="picture of cool person" aria-hidden="false" />;
^^^^^^^^^^^^^^^^^^^^^^^^
2 │

Screen readers announce img elements as "images", so it is not necessary to redeclare this in alternative text.

<div>
<img src="src" alt="alt" />
<img src="bar" aria-hidden alt="Picture of me taking a photo of an image" />
</div>