doxa-maps/docs
doxa-maps-88655c70 c401a758bb name the legend collapse control and gate every button's accessible name
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.
2026-09-21 13:23:35 +00:00
..
architecture point docs at library/layouts and fix the stale bunx and provider-ladder claims 2026-09-21 10:43:11 +00:00
assets README: lead with the SPA-composition trinity + visual proof (desktop & mobile) 2026-09-16 00:17:45 +00:00
readme-images name the legend collapse control and gate every button's accessible name 2026-09-21 13:23:35 +00:00
screenshots README: distinguish the two cap-5 apps (product SPA vs developer studio) and add current capability screenshots 2026-09-20 05:00:01 +00:00
develop-a-plugin-and-see-it-live.md carry the push buffer flag in the golden path, not only the runbook 2026-09-21 07:34:05 +00:00
explanation.md Complete app-profiles->plugin-designs sweep across comments/docs; build green; layouts kept at root (load-bearing) 2026-09-17 18:18:19 +00:00
how-to.md point docs at library/layouts and fix the stale bunx and provider-ladder claims 2026-09-21 10:43:11 +00:00
README-embed-example.md docs: simple README template for the embedded (in-host) copy 2026-09-11 18:50:31 +00:00
README-longform.md point docs at library/layouts and fix the stale bunx and provider-ladder claims 2026-09-21 10:43:11 +00:00
README-SECTION-3-cli-commands.md gate the docs' quoted scripts block against package.json 2026-09-21 10:47:51 +00:00
README.md docs: close retest gaps — engine-swap recipe (provider param), instances.json recipe + schema, adopt embed-example into router 2026-09-11 18:50:31 +00:00
reference-capability-exemplars.md generate the capability exemplar table so the answer stops being remembered 2026-09-21 12:38:50 +00:00
reference-library-index.md generate the library menu and gate it against library drift 2026-09-21 07:25:18 +00:00
reference.md prove the live server serves the catalog's exact bytes 2026-09-21 12:46:48 +00:00
slide-deck-outline.md Plugin gallery: one generator for the dev server and the build 2026-09-16 20:04:18 -05:00
tutorial.md point the tutorial at the studio folder and separate build from publish 2026-09-21 07:38:50 +00:00
why.md README: lead with the story — one sign-up site is the bottleneck, the map embeds on every partner team's site, Training-for-Trainers roles, the share-button campaign, private CRM for the team list 2026-09-16 12:34:59 -05:00

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-config contract.
  • 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.