Lint Rules

noRedundantAlt (since v12.0.0)

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.

Examples

Invalid

<img src="src" alt="photo content" />;
nursery/noRedundantAlt.js:1:20 lint/nursery/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 doing ${things}`} {...this.props} />;
nursery/noRedundantAlt.js:1:10 lint/nursery/noRedundantAlt ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Avoid the words "image", "picture", or "photo" in img element alt text.
  
  > 1 │ <img alt={`picture doing ${things}`} {...this.props} />;
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    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} />;
nursery/noRedundantAlt.js:1:10 lint/nursery/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.
  

Valid

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