doxa-maps/plugin-designs/research-map-plus-grid
Doxa Maps e9f5edf79d A gate for English typed into a template, so the ground we have won stays won
check:composite-locale-leaks asks a good question — "does the catalogue
translate this string, and is the page showing English anyway?" — but its
criterion is that the catalogue already HOLDS the string, so a string nobody
ever added is invisible to it by construction. And it runs in a browser, so it
only ever sees what happens to be on one screen.

That blind spot was measured, not guessed. After both composites passed the leak
gate with zero findings, a source audit of the same two trees found 31 more
user-visible strings. Most were aria-labels, titles and tooltips: text only a
screen-reader user or a hovering mouse ever meets. Our localization verification
had been "what can I see", and the blind spot was exactly the readers who most
need the words.

TWO CLASSES, because they are different defects with different fixes:
  NO KEY      wording must be written and translated — sometimes the Driver's call.
  HAS A KEY   the translation already ships in eleven locales and the reader is
              shown English anyway. The cheapest defect in the catalogue: the
              work was done and wasted. Nobody was looking for this one; it only
              appeared because the report was split in two.

★ WARN-ONLY AGAINST A BASELINE, DELIBERATELY. Failing on the whole backlog — 285
without a key, 29 hardcoded-with-a-key across 126 components — would make it
unlandable and it would be switched off within a day. It fails on what is NEW, so
the count can only fall; --update refreshes the baseline when a batch lands.

QaCorner is excluded BY NAME, with the reason in the file: an opt-in developer
widget that studio is making host-neutral or removing. Eleven locales for a
corner only we open is not worth the translations, and a judgement like that is
better written down than left as a silent gap.

NEGATIVE-TESTED ON BOTH CLASSES, because a gate never seen to fail is not
evidence: a new text node and a new title attribute are both caught and named;
an aria-label hardcoded to "Reset all" — which already ships in every locale — is
caught as the second class with the fix stated. Restored, it passes.
2026-09-26 13:04:15 +00:00
..
scripts A gate for English typed into a template, so the ground we have won stays won 2026-09-26 13:04:15 +00:00
index.html Add the mobile capability-4 composite: research map above the people-groups grid 2026-09-22 07:34:02 +00:00
index.js Add the mobile capability-4 composite: research map above the people-groups grid 2026-09-22 07:34:02 +00:00
research-map-plus-grid.instances.json Add the mobile capability-4 composite: research map above the people-groups grid 2026-09-22 07:34:02 +00:00
research-map-plus-grid.meta.json Add the mobile capability-4 composite: research map above the people-groups grid 2026-09-22 07:34:02 +00:00
research-map-plus-grid.vue Link language on the ISO code, not the display name, because the name moves with the locale 2026-09-26 08:07:39 +00:00