SIA-R117Image accessible name is descriptive

Accessibility requirements

This rule is not required for conformance to any accessibility requirements.

Description

This rule checks that the accessible names of images serve an equivalent purpose to the image.

Applicability

This rule applies to any <img>, <canvas> or <svg> element that is visible and has a non-empty accessible name, except if the following is true:

Expectation

  1. The test target has an accessible name that serves an equivalent purpose to the non-text content of that test target.

Assumptions

This rule makes no assumptions.

Accessibility Support

  • Some popular browser / screen reader combinations do not announce the accessible names of <svg> elements. This can be resolved by adding an explicit semantic role of <img> to the <svg> element.

Examples

Passed

This <img> element has an alt attribute that describes the image.

<html lang="en">
    <img src="/test-assets/shared/w3c-logo.png" alt="W3C logo" />
</html>

This <svg> element has an aria-label attribute that describes the HTML 5 logo image.

<html lang="en">
    <svg viewBox="0 0 512 512" aria-label="HTML 5 logo" role="img">
        <path
            d="M108.4 0h23v22.8h21.2V0h23v69h-23V46h-21v23h-23.2M206 23h-20.3V0h63.7v23H229v46h-23M259.5 0h24.1l14.8 24.3L313.2 0h24.1v69h-23V34.8l-16.1 24.8l-16.1-24.8v34.2h-22.6M348.7 0h23v46.2h32.6V69h-55.6"
        />
        <path
            fill="#e44d26"
            d="M107.6 471l-33-370.4h362.8l-33 370.2L255.7 512"
        />
        <path fill="#f16529" d="M256 480.5V131H404.3L376 447" />
        <path
            fill="#ebebeb"
            d="M142 176.3h114v45.4h-64.2l4.2 46.5h60v45.3H154.4M156.4 336.3H202l3.2 36.3 50.8 13.6v47.4l-93.2-26"
        />
        <path
            fill="#fff"
            d="M369.6 176.3H255.8v45.4h109.6M361.3 268.2H255.8v45.4h56l-5.3 59-50.7 13.6v47.2l93-25.8"
        />
    </svg>
</html>

This <canvas> element has an aria-label attribute that describes the W3C logo image.

<html lang="en">
    <canvas id="logo" width="72" height="48" aria-label="W3C logo"></canvas>
    <script>
        const img = new Image();
        img.src = "/test-assets/shared/w3c-logo.png";
        img.onload = function () {
            const ctx = document.querySelector("#logo").getContext("2d");
            ctx.drawImage(img, 0, 0);
        };
    </script>
</html>

Failed

This <img> element has an alt attribute that incorrectly describes the image.

<html lang="en">
    <img src="/test-assets/shared/w3c-logo.png" alt="ERCIM logo" />
</html>

This <svg> element has an aria-label attribute that incorrectly describes the image (the aria-label is "W3C" but the actual image is the HTML 5 logo).

<html lang="en">
    <svg viewBox="0 0 512 512" aria-label="W3C" role="img">
        <path
            d="M108.4 0h23v22.8h21.2V0h23v69h-23V46h-21v23h-23.2M206 23h-20.3V0h63.7v23H229v46h-23M259.5 0h24.1l14.8 24.3L313.2 0h24.1v69h-23V34.8l-16.1 24.8l-16.1-24.8v34.2h-22.6M348.7 0h23v46.2h32.6V69h-55.6"
        />
        <path
            fill="#e44d26"
            d="M107.6 471l-33-370.4h362.8l-33 370.2L255.7 512"
        />
        <path fill="#f16529" d="M256 480.5V131H404.3L376 447" />
        <path
            fill="#ebebeb"
            d="M142 176.3h114v45.4h-64.2l4.2 46.5h60v45.3H154.4M156.4 336.3H202l3.2 36.3 50.8 13.6v47.4l-93.2-26"
        />
        <path
            fill="#fff"
            d="M369.6 176.3H255.8v45.4h109.6M361.3 268.2H255.8v45.4h56l-5.3 59-50.7 13.6v47.2l93-25.8"
        />
    </svg>
</html>

This <canvas> element has an aria-label attribute that incorrectly describes the image (the aria-label is "HTML 5 logo" but the actual image is the W3C logo).

<html lang="en">
    <canvas id="logo" width="72" height="48" aria-label="HTML 5 logo"></canvas>
    <script>
        const img = new Image();
        img.src = "/test-assets/shared/w3c-logo.png";
        img.onload = function () {
            const ctx = document.querySelector("#logo").getContext("2d");
            ctx.drawImage(img, 0, 0);
        };
    </script>
</html>

Inapplicable

This <img> element has an empty ("") accessible name. The image is described by the adjacent text.

<img src="/test-assets/shared/pdf-icon.png" alt="" /> PDF document

This decorative <img> element has an empty ("") accessible name because it has no attributes or content to provide an accessible name.

<html lang="en">
    <p>Happy new year!</p>
    <img src="/test-assets/shared/fireworks.jpg" role="presentation" />
</html>

This <svg> element has an empty ("") accessible name because it has no attributes or content to provide an accessible name.

<html lang="en">
    <p>Happy new year!</p>
    <svg height="200" xmlns="http://www.w3.org/2000/svg">
        <polygon points="100,10 40,180 190,60 10,60 160,180" fill="yellow" />
    </svg>
</html>

This <canvas> element has an empty ("") accessible name because it has no attributes or content to provide an accessible name.

<html lang="en">
    <p>Happy new year!</p>
    <canvas id="newyear" width="200" height="200"></canvas>
    <script>
        const ctx = document.querySelector("#newyear").getContext("2d");
        ctx.fillStyle = "yellow";
        ctx.beginPath();
        ctx.moveTo(100, 10);
        ctx.lineTo(40, 180);
        ctx.lineTo(190, 60);
        ctx.lineTo(10, 60);
        ctx.lineTo(160, 180);
        ctx.fill();
    </script>
</html>

This <img> element is not visible.

<html lang="en">
    <img
        src="/test-assets/shared/w3c-logo.png"
        alt="W3C logo"
        style="display:none"
    />
</html>

This <img> element has no accessible name because it is not included in the accessibility tree.

<html lang="en">
    <img
        aria-hidden="true"
        src="/test-assets/shared/fireworks.jpg"
        alt="fireworks"
    />
</html>

This <svg> element is ignored because it is a child of a link that provides its accessible name.

<a href="https://w3.org" aria-label="W3C Website">
    <svg height="200" xmlns="http://www.w3.org/2000/svg" aria-label="star">
        <polygon points="100,10 40,180 190,60 10,60 160,180" fill="yellow" />
    </svg>
</a>

Acknowledgments

This document includes material copied from or derived from https://www.w3.org/WAI/standards-guidelines/act/rules/qt1vmo/. Copyright © 2026 W3C® (MIT, ERCIM, Keio, Beihang).