Say in the manual and the register that colour labels exist

The manual's library section described rating and flagging only, and
the outstanding register still said colour labels were "set and shown
nowhere" and that three NFR-A11Y-3 clauses had no test. Both are now
untrue: the manual gives the keys, the Label button and the chips, and
the register names the test file and what it can and cannot vouch for.
This commit is contained in:
2026-09-24 21:52:23 -04:00
parent f1db919b9d
commit 96f1d5c896
2 changed files with 23 additions and 17 deletions
+13 -15
View File
@@ -283,22 +283,20 @@ on one control — the parameter slider in `adjust.slint` — and nothing is set
all. Everything else in eighteen Slint files is unnamed to AT-SPI and TalkBack. The requirement's own
caveat, that Slint's Android accessibility needs verifying, is spike S13, which has not run.
**NFR-A11Y-3 — Colour-independent status.** Built where a control exists, and now tagged: the
clipping readout pairs a marker that appears or disappears with a figure in words, the rating strip
is a solid star against an outline in an achromatic palette, the pick/reject mark is a tick against
a cross, and the focus-peaking colour chips say "Red" and "Cyan" rather than showing swatches. Each
of those already carried the reasoning in a comment naming this requirement and simply had no
`TRACES` line.
**NFR-A11Y-3 — Colour-independent status.** Built, and now asserted. The clipping readout pairs a
marker that appears or disappears with a figure in words; the rating strip is a solid star against
an outline in an achromatic palette; the pick/reject mark is a tick against a cross; the
focus-peaking colour chips say "Red" and "Cyan" rather than showing swatches; and colour labels —
the requirement's first named example — now have an interface built with a shape from the start:
every mark carries its label's initial (R, Y, G, B, P) on its colour, and every chip, picker and the
develop bar name the label in words.
Two caveats, because the tag now says more than the evidence does. **Only the clipping clause has a
test** — `a_clipping_figure_distinguishes_none_from_nearly_none`, which pins `<0.1%` apart from `0%`
so the figure cannot contradict the lit marker beside it. The three Slint components are
inspected-and-argued, not asserted, and nothing would fail if a future edit made a star differ only
in tint. **And the requirement's first named example has no interface at all**: catalog colour
labels are a nullable `label INTEGER` column on the versions table and are set and shown nowhere, so
the clause about them is untestable rather than satisfied. That clause closes when the label UI is
built, not before, and it should be built with a shape from the outset — which is the same argument
as below, for doing this alongside NFR-A11Y-2 rather than after it.
The clipping clause is pinned by `a_clipping_figure_distinguishes_none_from_nearly_none`. The other
four are pinned by `ui/dr-ui/tests/status_is_not_colour_alone.rs`, which reads the markup and fails
if a star, a flag or a label comes to differ in tint alone — if the glyph a state selects stops
depending on the state, if two states select the same drawing, if two labels share a letter, or if
the peaking chips stop being words. It is a structural check, not a perceptual one: it cannot say
whether the letters are legible at 14px on a given screen, which is still a matter of looking.
---
+10 -2
View File
@@ -33,8 +33,8 @@ wrote first.
Photographs are ordered by capture time, with a month heading where each
begins. The strip on the left is the timeline — drag it to jump to a year.
The bar above the grid filters by rating, flag and where the file is (on this
device, or only on the server).
The bar above the grid filters by rating, flag, colour label and where the
file is (on this device, or only on the server).
### Rating and flagging
@@ -43,6 +43,14 @@ count what each rating holds, and clicking `3+` shows only those.
![Rating two photographs, then filtering the grid to three stars and more](media/library-rating.gif)
Colour labels work as Lightroom's do: `6` red, `7` yellow, `8` green, `9`
blue, on the photograph under the pointer or on the selection, and the same
key again takes the label off. `Label` on the selection bar offers all five,
purple included, and `None`. Each label is drawn with its initial on it, so
it reads without telling the colours apart, and the filter bar has a chip for
each. In develop, the top bar names the open photograph's label and sets it,
and the same keys work there.
### Getting about
Drag the timeline to scrub through years; Ctrl and the wheel resize the