Three buttons said "Show all" in the same composite and meant different things

Checked whether a reader can undo the dashboard filter and tell why the table changed.
They can: the banner names the selection and offers an escape, clearing works, and
re-selecting the same country refilters rather than sitting cleared — the filter object
carries a timestamp precisely so an identical selection is still a change.

The ambiguity is in the labels. Stacked under the map there were THREE controls reading
exactly "Show all": two in the map's group lists, which reveal the rest of a country's
people groups, and one under the table, which clears the resource filter. Nothing on
screen distinguished them.

That is not a theoretical complaint. The first probe written to verify this clicked one
of the map's, saw the filter unchanged, and reported "Show all does not clear the filter
in composed mode" — a defect that did not exist. If the ambiguity can mislead a probe
reading the DOM, it can mislead a reader looking at the screen.

The map's now read "Show all groups", the table's "Show all resources". One word each.

Verified after the change: the three candidates are distinguishable by text alone, and
the full cycle passes — filter to 400 of 6,498 for Indonesia, clear back to no banner,
re-select the same country and return to 400, no page errors. Screenshot read.

Fourth probe in this flight to produce a wrong verdict from an assumption about the DOM,
and the second where a composite made a pattern ambiguous that is unambiguous on a
single page.
This commit is contained in:
doxa-maps-88655c70 2026-09-24 15:06:16 +00:00
parent ecdf71cdbd
commit 35933d4ec4
10 changed files with 22 additions and 17 deletions

View file

@ -207,7 +207,12 @@ useShadowStyles(
<template v-if="!filterCount"> — nothing found for this selection in the pools checked, which is not proof that nothing exists.</template>
</span>
<span v-else>Filtered to <b>{{ fLabel || fIso || fCountry }}</b> — this tab is not filtered; only the two keyed tables carry a language or country key.</span>
<button type="button" class="gt-clear" @click="clearFilter">Show all</button>
<!-- "Show all" WHAT. Stacked under the map in the dashboard there are three controls
with this exact label — two in the map's group lists and this one — and they do
different things. A reader cannot tell which clears the table filter, and neither
could a probe: the first attempt at verifying this clicked one of the map's and
reported the filter as stuck when it was not. Naming the noun costs one word. -->
<button type="button" class="gt-clear" @click="clearFilter">Show all resources</button>
</div>
<div v-if="loadErr" class="gt-err">{{ loadErr }}</div>

View file

@ -1356,7 +1356,7 @@ useShadowStyles(
</div>
<div v-if="withResources.length > shown" class="gm-more">
Showing {{ shown }} of {{ withResources.length }}.
<button type="button" class="gm-back" @click="shown = withResources.length">Show all</button>
<button type="button" class="gm-back" @click="shown = withResources.length">Show all groups</button>
</div>
</div>
@ -1376,7 +1376,7 @@ useShadowStyles(
</button>
<div v-if="withoutResources.length > shown" class="gm-more">
Showing {{ shown }} of {{ withoutResources.length }}.
<button type="button" class="gm-back" @click="shown = withoutResources.length">Show all</button>
<button type="button" class="gm-back" @click="shown = withoutResources.length">Show all groups</button>
</div>
</div>
</template>

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-dUaNPAlvcB4Bj6qHuoTQ+b+WOzhxz+2Le2WvFMHZkuQwnlinnFZk8/kfVtaYSek+" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-9ouuqJx7txluDdcQQCm7xvtmSGJh25LsGgNo7kBB63YtXQNYKrg5hkOoHOJsl5PT" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-dUaNPAlvcB4Bj6qHuoTQ+b+WOzhxz+2Le2WvFMHZkuQwnlinnFZk8/kfVtaYSek+" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-9ouuqJx7txluDdcQQCm7xvtmSGJh25LsGgNo7kBB63YtXQNYKrg5hkOoHOJsl5PT" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -40,7 +40,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-dUaNPAlvcB4Bj6qHuoTQ+b+WOzhxz+2Le2WvFMHZkuQwnlinnFZk8/kfVtaYSek+" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-9ouuqJx7txluDdcQQCm7xvtmSGJh25LsGgNo7kBB63YtXQNYKrg5hkOoHOJsl5PT" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-dUaNPAlvcB4Bj6qHuoTQ+b+WOzhxz+2Le2WvFMHZkuQwnlinnFZk8/kfVtaYSek+" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-9ouuqJx7txluDdcQQCm7xvtmSGJh25LsGgNo7kBB63YtXQNYKrg5hkOoHOJsl5PT" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-dUaNPAlvcB4Bj6qHuoTQ+b+WOzhxz+2Le2WvFMHZkuQwnlinnFZk8/kfVtaYSek+" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-9ouuqJx7txluDdcQQCm7xvtmSGJh25LsGgNo7kBB63YtXQNYKrg5hkOoHOJsl5PT" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -591,7 +591,7 @@
"bundle": "gospel-resources",
"scriptUrl": "./gospel-resources/gospel-resources.js",
"output": "doxa-maps/gospel-resources/gospel-resources.js",
"integrity": "sha384-dUaNPAlvcB4Bj6qHuoTQ+b+WOzhxz+2Le2WvFMHZkuQwnlinnFZk8/kfVtaYSek+",
"integrity": "sha384-9ouuqJx7txluDdcQQCm7xvtmSGJh25LsGgNo7kBB63YtXQNYKrg5hkOoHOJsl5PT",
"elements": [
"gospel-resources-map"
],
@ -611,7 +611,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/charts/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-dUaNPAlvcB4Bj6qHuoTQ+b+WOzhxz+2Le2WvFMHZkuQwnlinnFZk8/kfVtaYSek+\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-9ouuqJx7txluDdcQQCm7xvtmSGJh25LsGgNo7kBB63YtXQNYKrg5hkOoHOJsl5PT\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -625,7 +625,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-dUaNPAlvcB4Bj6qHuoTQ+b+WOzhxz+2Le2WvFMHZkuQwnlinnFZk8/kfVtaYSek+\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-9ouuqJx7txluDdcQQCm7xvtmSGJh25LsGgNo7kBB63YtXQNYKrg5hkOoHOJsl5PT\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -639,7 +639,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/gospel-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-dUaNPAlvcB4Bj6qHuoTQ+b+WOzhxz+2Le2WvFMHZkuQwnlinnFZk8/kfVtaYSek+\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-9ouuqJx7txluDdcQQCm7xvtmSGJh25LsGgNo7kBB63YtXQNYKrg5hkOoHOJsl5PT\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -653,7 +653,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/resources-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-dUaNPAlvcB4Bj6qHuoTQ+b+WOzhxz+2Le2WvFMHZkuQwnlinnFZk8/kfVtaYSek+\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-9ouuqJx7txluDdcQQCm7xvtmSGJh25LsGgNo7kBB63YtXQNYKrg5hkOoHOJsl5PT\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -667,7 +667,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-dUaNPAlvcB4Bj6qHuoTQ+b+WOzhxz+2Le2WvFMHZkuQwnlinnFZk8/kfVtaYSek+\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-9ouuqJx7txluDdcQQCm7xvtmSGJh25LsGgNo7kBB63YtXQNYKrg5hkOoHOJsl5PT\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
}
]