Accessible Map and Geospatial Design: Alternatives to Visual-Only Mapping
Accessible Map and Geospatial Design: Alternatives to Visual-Only Mapping
Interactive maps are among the most accessibility-challenged components on the web. A sighted user can glance at a map and instantly understand spatial relationships — nearby stores, route options, neighborhood boundaries. Screen reader users, keyboard-only users, and users with cognitive disabilities receive none of this information from a standard embedded map. Making geospatial content accessible requires providing equivalent non-visual experiences, not just making the map widget slightly better.
The Fundamental Challenge
Maps are inherently visual and spatial. They encode information through:
- Position: Where a marker sits relative to other markers and landmarks
- Proximity: How close locations are to each other
- Shape: Boundaries, routes, and geographic features
- Color: Choropleth maps use color to encode data density or category
- Zoom level: Context changes with magnification
Screen readers process content linearly. There is no native way for a screen reader to convey “this coffee shop is three blocks northwest of your current location.” Accessibility requires translating spatial information into structured, queryable formats.
Providing Text Alternatives
For Static Maps
If the map is purely illustrative (showing office location, event venue), provide a complete text alternative:
<figure>
<div role="img" aria-label="Map showing office location at 123 Main Street, Austin, TX 78701. The office is located on the corner of Main Street and 2nd Avenue, two blocks east of City Hall.">
<!-- Static map image -->
</div>
<figcaption>
<strong>Office Location:</strong> 123 Main Street, Austin, TX 78701.
<a href="https://maps.google.com/...">Open in Google Maps</a>
</figcaption>
</figure>
The text alternative describes the location in terms a screen reader user can act on — the address and spatial context relative to known landmarks.
For Data Maps (Choropleth, Heat Maps)
When a map visualizes data — infection rates by county, income by neighborhood, temperature across a region — provide the same data in an accessible data table:
<section aria-label="COVID-19 rates by county">
<h2>COVID-19 Rates by County</h2>
<div class="map-container" aria-hidden="true">
<!-- Choropleth map -->
</div>
<details>
<summary>View data as table</summary>
<table>
<caption>COVID-19 rates per 100,000 residents by county, March 2025</caption>
<thead>
<tr>
<th scope="col">County</th>
<th scope="col">Rate per 100K</th>
<th scope="col">Trend</th>
</tr>
</thead>
<tbody>...</tbody>
</table>
</details>
</section>
The map can be marked aria-hidden="true" if the table provides complete equivalent information. If the map provides interactive features beyond the table, keep it in the accessibility tree and add keyboard support.
Making Interactive Maps Usable
Store Locator Pattern
Store locators are the most common interactive map use case. The accessible pattern:
- Search-first interaction: Provide an address or zip code search field as the primary interaction. Do not require users to pan and zoom the map to find locations.
- Results as a list: Display search results as a structured list alongside the map. Each result includes the store name, address, distance, phone number, and hours.
- List-map synchronization: When a user selects a list item (keyboard or click), highlight the corresponding map marker. When a user clicks a map marker, highlight the corresponding list item and scroll it into view.
- Focus management: When a user activates a list item, move focus to the detail panel rather than the map.
<section aria-label="Store locator">
<form role="search" aria-label="Find a store">
<label for="zip">Enter zip code or city</label>
<input id="zip" type="text" />
<button type="submit">Search</button>
</form>
<div class="results-layout">
<div role="region" aria-label="Search results" aria-live="polite">
<h2>3 stores found near 78701</h2>
<ol>
<li>
<h3><a href="/stores/austin-downtown">Austin Downtown</a></h3>
<p>123 Main St, Austin, TX 78701 — 0.3 miles</p>
<p>Open until 9 PM</p>
</li>
<!-- More results -->
</ol>
</div>
<div class="map-container" aria-label="Map showing store locations" role="application">
<!-- Interactive map -->
</div>
</div>
</section>
Keyboard Navigation Within Maps
For maps that must be keyboard-navigable (route planners, interactive explorers):
- Tab into the map: The map container should be focusable (
tabindex="0") with a clear focus indicator - Arrow keys for panning: Move the map viewport
- +/- for zoom: Zoom in and out
- Enter on markers: Open marker detail popups
- Tab between markers: Move focus between map markers in a logical order (nearest first, or clockwise)
- Escape: Close popups and exit map interaction mode
Use role="application" on the map container to signal that the component handles its own keyboard interaction, overriding screen reader browse mode.
Map Marker Announcements
When focus moves to a map marker, announce its content:
<button class="map-marker" aria-label="Austin Downtown, 123 Main St, 0.3 miles away">
<svg aria-hidden="true"><!-- marker icon --></svg>
</button>
Route and Direction Information
For navigation and routing maps:
- Provide turn-by-turn directions as a text list alongside the visual route
- Include distance and estimated time in text form
- Describe the route in plain language: “Head east on Main Street for 0.5 miles, then turn right onto Oak Avenue”
- Offer downloadable directions for offline use
Geospatial Data Accessibility Principles
- Search replaces browse: Always provide a search/filter mechanism as an alternative to visual browsing the map
- List replaces visual scan: Every map marker should appear in a structured list that can be sorted and filtered
- Text replaces spatial context: Describe distances, directions, and relationships in words
- Table replaces color encoding: Data visualized through color on maps must be available in tabular form
- Progressive enhancement: The map enhances the experience for visual users; the text-based alternatives are the primary accessible experience
Testing
- Screen reader: Can you find a store, get its address and hours, and get directions using only a screen reader?
- Keyboard: Can you search, browse results, and interact with map markers using only a keyboard?
- No map: Disable JavaScript or block the map tiles. Is all information still available through the text alternatives?
- Zoom at 200%: Does the results list remain usable alongside the map?
- Use testing methodology for systematic validation across assistive technologies.
Key Takeaways
The most accessible map is not a more keyboard-friendly map widget — it is a text-based alternative that provides equivalent information. Search fields, structured result lists, data tables, and text directions make geospatial information accessible to everyone. Interactive map enhancements layer on top of these fundamentals for users who can benefit from them. Design the text experience first, then add the map as a visual enhancement.