Map has descriptive aria-label and role="application"
Why it matters
A map container without role="application" and a descriptive aria-label is opaque to screen readers. WCAG 2.2 SC 4.1.2 (Name, Role, Value) requires that all UI components expose a name and role that assistive technology can announce. Without role="application", screen readers treat the map as generic content and may announce it as an unlabeled region or skip it entirely. Section 508 2018 Refresh 502.3.1 extends this requirement to federal web applications. A label like just "map" gives no context about what the map displays — users cannot determine whether it is relevant to their task before choosing to interact.
Severity rationale
Medium because missing or inadequate ARIA attributes fail WCAG 2.2 SC 4.1.2 and Section 508 compliance requirements, creating legal exposure and locking out screen reader users.
Remediation
Add both role and aria-label to the map container element. The label must describe the map's content, not just its existence — include the listing type and geographic scope.
<div
id="map"
role="application"
aria-label="Interactive map of local restaurants with address, hours, and ratings"
/>
If the map content changes based on filters (e.g., category selection), update aria-label dynamically to reflect the current filter state — for example, "Map of Italian restaurants within 5km". Check src/components/Map.tsx or equivalent for the container element and add attributes there, not on a wrapper div.
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 Map & Location Integration Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- wcag:2.2 · 4.1.2 — Name, Role, Value — role=application and aria-label required on map widget
- wcag:2.2 · 2.4.6 — Headings and Labels — descriptive aria-label conveys purpose
- section-508:2018-refresh · 502.3.1 — Object Information — name and role programmatically determined
Taxons
History
- 2026-04-18·v1.0.0·Initial import from directory-map-location·automated