area-alt-quality
<area> text alternative must be appropriate (manual review)
Flags <area> elements with a non-empty text alternative (alt, aria-label, aria-labelledby or title) for human review of appropriateness. Says when the name looks like a file name, a web address, a placeholder, an "image of" opening or is very long.
Applies to. Applies to <area> elements that get a non-empty text alternative from any source: aria-labelledby (resolving to text), aria-label, alt or title. The <area> must carry a non-empty href (otherwise it is not a hyperlink at all per the HTML spec) and belong to a <map> that an <img usemap> actually references ("#" and the map's id or name, case-sensitive, as HTML matches it); an <area> in an unused map is out of scope. The referencing <img> must actually be rendered (hidden/display:none/ visibility exclude it; aria-hidden does not, since <area> is not a DOM descendant of <img>), and the <area> itself must be eligible: hidden, display:none and inert on the <area> or its <map> do not exclude it, since neither generates a box and a real browser's image-map hit-testing ignores all three there (verified against Chromium and Firefox); only those mechanisms on a genuine ancestor of the whole <img>+<map> pairing do. role="presentation"/"none" takes an element out unless it is focusable.
Expectation. Human review is required to confirm that the provided text alternative is accurate and appropriate. Each occurrence lists every source present (data.details.sources), so the reviewer checks each one: a title or aria-label that is not the name still reaches some users. The name is also checked for what the img-alt-quality rule checks in an alt (helpers.getTextAlternativeSignal): a file name, a web address, only symbols, a placeholder or generic word, an opening that says it is an image, or more than 150 characters. Such a name gets its own summary and hint; the finding stays cantTell.
What a finding reports.
reasonCode:TEXT_ALTERNATIVE_REVIEW, whatever the signal.name: the text alternative the area ends up with, taken from the first source insources.sources: each source of text the area has, in the order they are used for the name:aria-labelledby,aria-label,alt,title.altSignal, andlengthandlimitfortoo-long: what made the name look like something other than a description, as for img-alt-quality. Absent when the name is ordinary.alt(an area with an alt attribute): the alt text.
These data.details fields help to read and reproduce a finding. Apart from reasonCode and the few fields Output schema names as stable, they are not a stable contract: a field may be renamed or dropped in a minor release, so don’t build on them.
Examples
<img src="office-map.png" usemap="#floorplan"><map name="floorplan"><area href="/rooms/12" shape="rect" coords="0,0,40,24" alt="Room 12"></map>
The area has a non-empty text alternative in a used image map, worth confirming "Room 12" is accurate for that region. An aria-label, aria-labelledby or title is asked about the same way, and each occurrence lists the sources it found.
<map name="unused"><area href="/rooms/12" shape="rect" coords="0,0,40,24" alt="Room 12"></map>
No <img usemap> references this map, so the area is never hit-tested or rendered — out of scope.
How to check
When this rule can’t decide, it reports cantTell and leaves the question to a person. Each question it can ask is listed here under its reason code, with the steps to answer it. A finding carries the same steps as howToCheck, in the scan’s language. See Output schema.
TEXT_ALTERNATIVE_REVIEW
- Find the image map area the report names and look at the part of the image it covers.
- Click it, or follow its link, and note where it leads.
- Read the area's text alternative (and every other source the report lists) and check that it says where the link leads or what the region is.
Pass. The text alternative tells the user where the link goes, in words that match the region.
Fail. The text alternative is wrong, generic, a file name or doesn't say where the link leads, which fails WCAG 1.1.1 (H24).