Passed
Passed example 1
This img
element with an empty alt
attribute which is not included in the accessibility tree is purely decorative.
<p>Happy new year!</p>
<img src="/test-assets/shared/fireworks.jpg" alt="" />
Passed example 2
<p>Happy new year!</p>
<img src="/test-assets/shared/fireworks.jpg" aria-hidden="true" role="img" alt="" />
Passed example 3
This img
element that is ignored by assistive technologies because it has an explicit semantic role of none
is purely decorative.
<p>Happy new year!</p>
<img src="/test-assets/shared/fireworks.jpg" role="none" alt="ignore me" />
Passed example 4
This svg
element that is ignored by assistive technologies because it has no attribute that would give it an accessible name is purely decorative.
<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>
Passed example 5
This canvas
element that is ignored by assistive technologies because it has no attribute that would give it an accessible name is purely decorative.
<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>
Failed
Failed example 1
This img
element with an empty (""
) alt
is not purely decorative.
<img src="/test-assets/shared/w3c-logo.png" alt="" />
Failed example 2
This img
element which is not included in the accessibility tree because it has an explicit semantic role of none
is not purely decorative.
<img src="/test-assets/shared/w3c-logo.png" aria-hidden="true" alt="W3C logo" />
Failed example 3
This img
element which is not included in the accessibility tree because it has an explicit semantic role of none
is not purely decorative.
<img src="/test-assets/shared/w3c-logo.png" role="none" alt="W3C logo" />
Failed example 4
This svg
element which has a semantic role of graphics-document
and an empty (""
) accessible name is not purely decorative.
<p>Best W3C logo:</p>
<svg viewBox="0 0 512 512">
<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>
Failed example 5
This canvas
element which has no semantic role and an empty (""
) accessible name is not purely decorative.
<canvas id="w3c" width="200" height="60"></canvas>
<script>
const ctx = document.querySelector('#w3c').getContext('2d')
ctx.font = '30px Arial'
ctx.fillText"('WCAG Rules!', 20, 40)
</script>
Inapplicable
Inapplicable example 1
This img
element is included in the accessibility tree because the alt
attribute is not empty (""
).
<img src="/test-assets/shared/w3c-logo.png" alt>="W3C" />
Inapplicable example 2
This img
element is neither visible nor included in the accessibility tree.
<img src="/test-assets/shared/w3c-logo.png" style="display:none" alt="" />
Inapplicable example 3
This img
element is not visible because it is positioned off screen.
<style>
img {
position: absolute;
top: -9999em;
}
</style>
<img src="/test-assets/shared/fireworks.jpg" alt="" />
Inapplicable example 4
This svg
element is ignored because it is a child of a link that provides its accessible name.
<a href="https://example.org" aria-label="SVG star">
<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>
</a>
Inapplicable example 5
This svg
element has a semantic role of img
and an accessible name from its aria-label
attribute.
<svg viewBox="0 0 512 512" role="img" aria-label="HTML 5 logo">
<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>
Inapplicable example 6
This canvas
element is not visible because it is completely transparent.
<canvas width="200" height="200"></canvas>
Inapplicable example 7
This canvas
element has a semantic role of img
and an accessible name from its aria-label
attribute.
<canvas id="w3c" width="200" height="60" role="img" aria-label="WCAG Rules!"></canvas>
<script>
const ctx = document.querySelector('#w3c').getContext('2d')
ctx.font = '30px Arial'
ctx.fillText('WCAG Rules!', 20, 40)
</script>
Inapplicable example 8
This img
element is visible but included in the accessibility tree.
Note: While it might be better for the PDF icon to be ignored by assistive technologies, because assistive technologies will announce “PDF” twice, the image is not purely decorative. Having assistive technologies ignore it is not required by Success Criterion 1.1.1 Non-text content.
<img src="/test-assets/shared/pdf-icon.png" alt="PDF" /> PDF document
Inapplicable example 9
This is a div
element with a background image. Background images must be tested separate from this rule.
<p>Happy new year!</p>
<div
style="
width: 260px;
height: 260px;
background:url(/test-assets/shared/fireworks.jpg) no-repeat;"
></div>
Inapplicable example 10
This img
element has an src
attribute which will cause the image request state to be Broken.
<img src="/test-assets/does-not-exist.png" alt="" />