Say the table is loading, rather than drawing a confident zero

The neighbour table is 2.6 MB. Until it arrives the joined set is legitimately
empty, so both panels drew a chart of nothing and captioned it with a count of
zero — indistinguishable from a real answer of none, which is the same defect as
a join failure reported as a fact about a people.

Found by sweeping my own plugins for the Driver's bug classes rather than by
anyone reporting it, which is the point of the sweep: the newest code was the
code with the defect, because it had been read least.

The loading line is announced politely for a screen reader, since the change it
describes is a region of the page becoming real rather than an alert.
This commit is contained in:
Doxa Maps 2026-09-28 18:13:20 +00:00
parent 6fe0dc5408
commit 3b9de3e1ea
2 changed files with 16 additions and 2 deletions

View file

@ -91,7 +91,14 @@ useShadowStyles(
{{ T('gospelInternet.bounded.failed', 'The reached/unreached table could not be loaded, so this chart is not drawn.') }}
<span class="gbs-warn" dir="ltr">{{ failed }}</span>
</p>
<template v-else>
<!-- LOADING IS NOT EMPTY. The table is 2.6 MB, and until it arrives the joined set is
legitimately zero — so without this the panel drew a chart of nothing and captioned it
with a confident 0. A reader cannot tell that from a real answer of none, which is the
same defect as a join failure reported as a fact about a people. -->
<p v-else-if="!rows" class="gbs-cap" aria-live="polite">
{{ T('gospelInternet.loadingTable', 'Loading the table…') }}
</p>
<template v-else-if="rows">
<!-- The whiteboard map replaces the static figure: the reader can pan and zoom, and group
names appear once they are close enough for the names to be readable. The chart still
claims one thing — which side of the line a group is on — so nothing here encodes

View file

@ -152,7 +152,14 @@ useShadowStyles(
{{ T('gospelInternet.centered.failed', 'The neighbour table could not be loaded, so this chart is not drawn.') }}
<span class="gcs-warn" dir="ltr">{{ failed }}</span>
</p>
<template v-else>
<!-- LOADING IS NOT EMPTY. The table is 2.6 MB, and until it arrives the joined set is
legitimately zero — so without this the panel drew a chart of nothing and captioned it
with a confident 0. A reader cannot tell that from a real answer of none, which is the
same defect as a join failure reported as a fact about a people. -->
<p v-else-if="!near" class="gcs-cap" aria-live="polite">
{{ T('gospelInternet.loadingTable', 'Loading the table…') }}
</p>
<template v-else-if="near">
<div class="gcs-fig">
<!-- The figure is the whiteboard map, not SVG: the Driver asked for pan, zoom and labels
that appear as you zoom in, and the engine gives tiling and label collision that an