Last tick's fix covered the shared map-control base. Sweeping the rendered DOM of all 17 bundles found three more unnamed buttons — the same "Collapse legend" control in three map bundles, again from one shared component. Its only content is an svg caret, so with title alone its accessible name was empty. It is a disclosure control, so it now reports aria-expanded as well. Verified by toggling it: the label flips Collapse/Expand and aria-expanded flips true/false. The gate measures the rendered DOM through shadow roots, because a source grep cannot answer this question. There are 132 <button> hits here and most have visible text, which IS a valid accessible name; aria-label is often on a following line. Only the DOM knows which buttons ended up nameless. It counts aria-label, a resolved aria-labelledby, or visible text, and deliberately does not count title, which is the defect it was written for. Hidden buttons are skipped since assistive tech cannot reach them either. The sweep went 319/322 before the legend fix to 322/322 after, which is the evidence it detects real defects rather than passing vacuously. |
||
|---|---|---|
| .. | ||
| architecture | ||
| assets | ||
| readme-images | ||
| screenshots | ||
| develop-a-plugin-and-see-it-live.md | ||
| explanation.md | ||
| how-to.md | ||
| README-embed-example.md | ||
| README-longform.md | ||
| README-SECTION-3-cli-commands.md | ||
| README.md | ||
| reference-capability-exemplars.md | ||
| reference-library-index.md | ||
| reference.md | ||
| slide-deck-outline.md | ||
| tutorial.md | ||
| why.md | ||
docs/ — pick your path
"what is this?" "teach me" "how do I …?" "look it up" "all the detail"
│ │ │ │ │
why.md ──────────► tutorial.md ────► how-to.md ────► reference.md ───► architecture/
(2 min, 1 diagram) (first map) (task recipes) (tables) (contracts)
- why.md — the problem and the "map islands" idea. Start here.
- tutorial.md — build your first map, no jargon.
- how-to.md — recipes: embed, iframe, SPA, colors, CDN, mobile, tokens.
- reference.md — config fields, build scripts, the
profile-configcontract. - explanation.md — the model in 15 lines.
- architecture/ — the deep end: full contracts, the per-file catalog.
- README-embed-example.md — the drop-in README used when this bundler is embedded inside a host repo.
Nothing on the simple path is longer than a few minutes; everything complex lives in
architecture/, linked from where you'd need it.