Images without an alt attribute
What it is
One or more <img> elements on the page have no alt attribute. Screen readers and search engines read that attribute to learn what an image shows, and an empty value, alt="", is how a page marks an image as decoration to skip. Without the attribute, neither signal is there.
Why it matters
Screen readers often announce an image without an alt attribute by its file name, such as “IMG_4821.jpg”, or skip it with no hint of what it showed. Missing text alternatives fail WCAG success criterion 1.1.1 Non-text Content (Level A), and since June 2025 the European Accessibility Act requires many businesses selling to consumers online in the EU to meet it. Google uses alt text to understand images, so these give search less to work with.
How Asky checks it
Asky reads the page’s raw HTML and checks every <img> element, including the one inside a <picture>. An image with no alt attribute is reported whatever it shows: there is no exception for decorative images in this check. One finding per page lists the images by their src (or data-src). Images added by JavaScript, images inside <noscript>, CSS background images, inline <svg> graphics and <input type="image"> are not checked. An image that is the only content of a link also raises the link name issue. An image whose alt is present but empty is a separate issue, images with empty alt text.
Reported as an error with high severity.
How to fix it
- Open the finding to see which images lack the attribute.
- For an image that carries meaning, add alt text that says what it shows, in the context of the page: “Line chart of monthly sign-ups, up 40% since January”, not “image” or a string of keywords.
- For an image that is the only content of a link or button, describe the destination or action, such as “Example Co home” for a logo that links to the homepage.
- For a purely decorative image, add
alt=""together witharia-hidden="true". An empty alt on its own is correct markup, but Asky reports it as empty alt text unless a marker such asaria-hidden="true"shows it is decorative. - In your CMS, fill in the alt text field of the image: in the WordPress media library or image block, or in Webflow’s asset or image settings.
- If a theme, plugin or component outputs the image, fix its template so every image it renders gets the attribute.
Example
A chart and a decorative divider on https://example.com/blog/growth-report:
<!-- Before -->
<img src="/images/signups-chart.png">
<img src="/images/divider-wave.svg">
<!-- After -->
<img src="/images/signups-chart.png" alt="Line chart of monthly sign-ups, up 40% since January">
<img src="/images/divider-wave.svg" alt="" aria-hidden="true">