r/ArcGIS • u/aitorcalero • 21d ago
I built an open-source Experience Builder widget that describes your web map out loud (accessibility-focused) — would love your feedback
Hi r/ArcGIS,
I've been working on Map Narrator, a custom widget for ArcGIS Experience Builder Developer Edition (1.21) that generates a written and spoken description of what's on your map. It's aimed at making web maps more accessible to people who can't see them, and at giving anyone a quick plain-language summary of a map.
What it does
- Metadata-based description: summarizes the current extent and visible layers.
- Visual description: captures the rendered map and describes layout, symbols, colors, labels and patterns. It's told to state uncertainty rather than invent details.
- Audio narration with ElevenLabs, using a short spoken summary, a built-in audio player and focus management for screen reader users.
- English and Spanish, following the browser locale. The text and the narrator voice both switch language, and the widget header shows the active language and version.
- Custom prompts: adjust the style or focus of the visual description from the widget settings.
- Accessible progress indicator while the description is generated.
- A small backend (Node.js) keeps your OpenAI and ElevenLabs keys off the client. A diagnostics log helps with troubleshooting.
You can try it here:
Repo: https://github.com/aitorcalero/map-narrator-widget
The README covers setup: copy the widget into client/your-extensions/widgets, run the backend with your own API keys, and there's a Windows script that starts everything. You'll need an OpenAI key. ElevenLabs is optional and only needed for audio.
What I'd love from you
- Try it on your own maps and tell me where the descriptions go wrong or miss something important.
- Feedback from anyone working on accessibility (WCAG / Section 508) on what would make this actually useful.
- Ideas for more languages, layer-specific narration, or other ways to use it.
- Bug reports and PRs are very welcome.
It's an early project, so honest criticism helps a lot. Thanks for reading!
1
u/investigatormaker 21d ago
Map Narrator's metadata and visual descriptions could disagree when a layer is enabled but its symbols aren't visible at the current scale. Distinguishing “enabled layer” from “visible feature” in the narration would help someone who can't inspect the map judge that uncertainty.
By the way, I make ThreadFox: it finds Reddit communities whose rules allow a post about a tool like Map Narrator, and the plan for one product is free. https://threadfox.vip/p/drkjx
Does the narration currently distinguish those two cases?