All listing images have descriptive alt text
Why it matters
WCAG 2.2 Success Criterion 1.1.1 requires all non-text content to have a text alternative — a failing grade on this check means your directory is inaccessible to blind users relying on screen readers. Section 508 (2018 Refresh) §502.3.3 extends this requirement to federally procured software. Beyond compliance, empty or generic alt text like alt="image" degrades image search indexing: Google uses alt text as primary signal for image SEO, and directories with poorly alt-tagged listing photos lose discoverability in Google Images where visual search drives significant business referral traffic.
Severity rationale
High because missing alt text is a WCAG 2.2 SC 1.1.1 failure that makes listing images invisible to screen readers, creating an accessibility barrier for blind users on every affected page.
Remediation
Generate descriptive alt text from listing data at render time — never rely on alt="" or omit the attribute entirely for content images. Decorative images are the only valid case for empty alt.
// components/listing/listing-image.tsx
<img
src={listing.primaryImageUrl}
alt={`${listing.name} - ${listing.category} in ${listing.city}`}
width={800}
height={600}
/>
For galleries, include an index: alt={\${listing.name} photo ${index + 1} of ${total}`}. Validate coverage by querying your rendered HTML for imgtags withalt=""or missingaltattributes — automate this in CI usingaxe-core`.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Listing Data & Schema Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- wcag:2.2 · 1.1.1 — Non-text Content — images must have text alternatives
- section-508:2018-refresh · 502.3.3 — Label Relationships — non-text elements require labels
Taxons
History
- 2026-04-18·v1.0.0·Initial import from directory-listing-schema·automated