EqualifyEverything / benchmarks-ai-alt

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>
Blake Bertuccelli-Booth Blake Bertuccelli-Booth committed on Aug 27, 2026, 07:58 PM
Showing 15 changed files +228 additions -28 deletions
Browse files at this commit →