
What this check flags
This check fires when a client-side image map on your page contains one or more <area> elements that carry no alt attribute (or an empty one). The <area> is a real hyperlink, so an unlabeled one hands screen-reader users a clickable region they can hear exists but cannot identify. It maps to the axe-core area-alt rule and WCAG 2.1 Success Criterion 1.1.1 (Non-text Content), and it is one of the easier accessibility failures to close once you know where the map lives.
What a failing image map actually looks like
A client-side image map is three moving parts: an <img> with a usemap attribute, a <map> whose name matches, and a set of <area> hotspots inside it. Here is a floor-plan navigation graphic that trips the check on every hotspot:
<img src="/img/office-map.png" usemap="#floorplan" width="900" height="500">
<map name="floorplan">
<area shape="rect" coords="0,0,300,500" href="/reception/">
<area shape="rect" coords="300,0,600,500" href="/sales-floor/">
<area shape="circle" coords="750,250,120" href="/server-room/">
</map>Every <area> here is a link with no accessible name. A screen reader typically falls back to reading the href path or announcing an unlabeled "link," which tells the user nothing about where the hotspot leads. The fix is to name each region for what it does:
<img src="/img/office-map.png" usemap="#floorplan" width="900" height="500"
alt="Interactive floor plan of the ground level">
<map name="floorplan">
<area shape="rect" coords="0,0,300,500" href="/reception/"
alt="Reception and visitor check-in">
<area shape="rect" coords="300,0,600,500" href="/sales-floor/"
alt="Sales floor">
<area shape="circle" coords="750,250,120" href="/server-room/"
alt="Server room">
</map>Note two things. The parent <img> also needs its own alt describing the graphic as a whole, and each alt should describe the destination, not the shape. "Server room" is useful; "circle hotspot" is not.
What counts as a good area label
| Hotspot destination | Weak label | Label that passes and helps |
|---|---|---|
| /reception/ | alt="" | alt="Reception and visitor check-in" |
| /sales-floor/ | alt="area1" | alt="Sales floor" |
| /server-room/ | alt="click here" | alt="Server room" |
| /img/office-map.png (the image) | no alt at all | alt="Ground-floor plan" |
How to detect it on your own site
- Screaming Frog. Crawl the site, then use Custom Search or Custom Extraction with an XPath such as
//area[not(@alt)]to list every page that ships an unlabeled area. Because image maps are rare now, the hit list is usually short and specific. - axe DevTools / axe-core. Run the extension on any suspect page. The violation reports as "Active
<area>elements must have alternate text" (rule idarea-alt) and points at the exact node. - curl plus grep. For a quick one-off, pull the raw HTML and eyeball the map:
curl -s https://example.com/page/ | grep -i "<area". If you seehrefwithoutalton the same tag, that is your failing hotspot.
How to fix it
- Locate the
<map>block in the template or content that owns the image. - Give every
<area>that has anhrefanaltthat names its destination in a few words. - Make sure the parent
<img usemap>also has a meaningfulaltfor the graphic overall. - If a hotspot is decorative or duplicates an adjacent text link, you can use
alt=""deliberately, but only when the link truly carries no unique information. - Re-scan with axe to confirm the rule clears, then check the page with a screen reader (VoiceOver or NVDA) and tab through the hotspots to hear the labels read back.
While you are in there, ask whether the image map still earns its place. Pixel-based coords do not scale on responsive layouts, so hotspots drift out of alignment on phones. A block of real <a> links, CSS-positioned overlays, or an SVG with linked shapes is easier to maintain and accessible by default. If you replace the map, this check disappears for good rather than being patched.
FAQ
Does an empty alt attribute pass the check?
Technically alt="" satisfies the parser, and axe will not flag a genuinely decorative area. But on a hotspot that goes somewhere useful, an empty alt is worse than a missing one because it deliberately hides the destination from assistive tech. Only use it when the link is redundant.
Can I use aria-label instead of alt on an area element?
Yes. An <area> with a valid aria-label or aria-labelledby is treated as having an accessible name, and axe accepts it. For a plain image map, alt is the simplest and most widely supported choice, so reach for ARIA only when you already have a labeling pattern in place.
Why does this only affect a handful of pages?
Image maps were a 2000s-era navigation pattern. Most sites have none, so this check tends to surface on a legacy page, an old infographic, or an imported template. That narrow footprint is good news: fixing or retiring one or two maps usually clears the entire report.
Is this the same problem as an ordinary image missing its alt text?
Related but not identical. A bare <img> without alt is the broader images need alt issue. This check is specifically about the clickable <area> hotspots inside a map, each of which is its own link and needs its own label.
How is this different from a server-side image map?
A client-side map (the kind here) can be made accessible by labeling each area. A server-side image map sends raw click coordinates to the server and cannot be labeled at all, which is why it should be replaced rather than patched.
For the underlying concept, see our glossary entry on the alt attribute, and for the broader pattern of unnamed interactive elements, links must have discernible text.
Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.
About SEO ProCheck
Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.
Work With Me
Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.







