diff --git a/docs/dev/outstanding.md b/docs/dev/outstanding.md index 0b44e43..e19cff4 100644 --- a/docs/dev/outstanding.md +++ b/docs/dev/outstanding.md @@ -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. --- diff --git a/docs/manual/README.md b/docs/manual/README.md index 9f68f71..b4505e5 100644 --- a/docs/manual/README.md +++ b/docs/manual/README.md @@ -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