Only collect images that already have an accessible description
The corpus pairs each image with an alternative description someone really
shipped. An image on a control that announces nothing, no alt text, no
aria-label, no aria-labelledby, no title, no SVG title and no text of its own,
has no description to pair with, so it is now skipped at collection rather than
recorded and judged. Cataloguing missing alt text is a different project.
Two required fields carry it: accessible_name, what the control announces today,
and accessible_name_source, where that name comes from. The validator refuses an
empty name, an unknown source, and a source the rest of the record contradicts:
a name claimed from `alt` must be the observed alt value, and one claimed from
the control's own text needs that text in surrounding_text. apply-verdicts.mjs
refuses to promote an unnamed item, and the reviewer codes NO-ACCESSIBLE-NAME
and rejects it.
An empty alt attribute is not the same as no name. A logo with alt="" inside a
link whose own text reads "W3C Home" is named by that text, and those items stay:
the correct answer there is the empty attribute, which takes judgment rather than
recognition, and directive 00 still requires 15 percent of the corpus to be them.
The second pass does not get the accessible name. It is often the answer or close
to it, and handing it over would make that pass a copy instead of an independent
one.
All 12 existing items were backfilled from their verbatim markup and none had to
be dropped: 7 named by alt, 3 by the control's own text, 2 by an aria-label.
corpus/corrections.md records that and the earlier image-copy backfill. Self-test
65 PASS lines, exit 0.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>