How to hide an HTML element from assistive technologies like screen readers?

November 20, 2022 - 3 min read

To hide an HTML element from assistive technologies like screen readers etc., you can use the aria-hidden attribute on any HTML element and set the value as true.

TL;DR

<html>
  <body>
    <!-- 
      Set the `aria-hidden` attribute on the `img` HTML element
      and its value to `true` to make it hidden from assistive technologies.
    -->
    <img
      src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/12/Black_Paw.svg/852px-Black_Paw.svg.png"
      width="200"
      height="200"
      aria-hidden="true"
    />
    <p>
      Lorem ipsum dolor, sit amet consectetur adipisicing elit. Veniam alias
      voluptas, iste asperiores laboriosam labore eligendi eveniet saepe quas
      sequi voluptatibus, accusamus totam sint aspernatur ipsa doloremque quod
      vero qui nobis praesentium velit. Labore obcaecati distinctio, iure aut
      nemo sequi. Saepe corrupti inventore error autem corporis. Natus animi
      doloremque eligendi! Provident sapiente reiciendis doloribus similique
      optio. Mollitia libero impedit doloremque inventore odio atque illum unde!
    </p>
  </body>
</html>

For example, let's say we have a webpage with some text and one image but the image is an SVG file that doesn't impart any information to the user other than its visual appearance.

The HTML will look like this,

<html>
  <body>
    <img
      src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/12/Black_Paw.svg/852px-Black_Paw.svg.png"
      width="200"
      height="200"
    />
    <p>
      Lorem ipsum dolor, sit amet consectetur adipisicing elit. Veniam alias
      voluptas, iste asperiores laboriosam labore eligendi eveniet saepe quas
      sequi voluptatibus, accusamus totam sint aspernatur ipsa doloremque quod
      vero qui nobis praesentium velit. Labore obcaecati distinctio, iure aut
      nemo sequi. Saepe corrupti inventore error autem corporis. Natus animi
      doloremque eligendi! Provident sapiente reiciendis doloribus similique
      optio. Mollitia libero impedit doloremque inventore odio atque illum unde!
    </p>
  </body>
</html>

Now to make the img HTML element hidden to assistive technologies since it doesn't impart any information to the user, we can use the aria-hidden attribute and set its value as true.

It can be done like this,

<html>
  <body>
    <!-- 
      Set the `aria-hidden` attribute on the `img` HTML element
      and its value to `true` to make it hidden from assistive technologies.
    -->
    <img
      src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/12/Black_Paw.svg/852px-Black_Paw.svg.png"
      width="200"
      height="200"
      aria-hidden="true"
    />
    <p>
      Lorem ipsum dolor, sit amet consectetur adipisicing elit. Veniam alias
      voluptas, iste asperiores laboriosam labore eligendi eveniet saepe quas
      sequi voluptatibus, accusamus totam sint aspernatur ipsa doloremque quod
      vero qui nobis praesentium velit. Labore obcaecati distinctio, iure aut
      nemo sequi. Saepe corrupti inventore error autem corporis. Natus animi
      doloremque eligendi! Provident sapiente reiciendis doloribus similique
      optio. Mollitia libero impedit doloremque inventore odio atque illum unde!
    </p>
  </body>
</html>

We have successfully hidden the img HTML tag from assistive technologies.

See the above code live in the codesandbox.

That's all 😃!