Superseded evidence is distinguished by opacity alone #138
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Severity: LOW — accessibility gap, same family as #102
Found while building #102 and deliberately not fixed there, because #102 did not name it and fixing it needs new copy rather than a CSS change.
The problem
EvidenceSectionrenders a retired row at 40% opacity and nothing else:That is a state conveyed by visual weight alone, which is the defect #102 spent its length on in three other places. Specifically:
buttonsince #96 and remains adoptable, so a reviewer can adopt a date from evidence that has been superseded without anything saying so. That is the part with consequences:supersedeexists (#70, #80) precisely because a piece of evidence has been judged no longer to hold, and adopting from it puts a retired date into a live decision.Why it was left
#102's scope was the three cases it enumerated. Adding a fourth mid-pass would have meant inventing user-facing copy — what a retired row should say — inside an accessibility-and-layout commit, without anyone having agreed the wording. Better as its own small piece of work.
Scope
adopted_evidence_id(#96) pointed at inactive evidence.Done when
References
frontend/src/pages/ReviewWorkspacePage.tsx—EvidenceSectionDone in
1dfd22c, CI green (run 64).The product question is decided: a superseded row is now inert. Recording the reasoning, since the issue rightly refused to default it.
supersedeexists precisely because a piece of evidence has been judged no longer to hold. Adopting from one would carry a retired date into a live decision — and since #96 records provenance as a foreign key, the resulting decision would point at inactive evidence and look entirely legitimate in the history afterwards. That is the silent-wrong-data shape this project is most careful about. #96 had already set the precedent that a row which cannot answer is not activatable (the unparsedJune 83?), so this is consistent rather than novel.The counter-argument in the issue — a reviewer might want to re-adopt a date retired in error — turns out to be the weaker path even for that reviewer. They are not stuck: they record manual evidence saying so (#101, which landed alongside this), and that leaves a reason in the chain rather than a live decision quietly sourced from a retired row. Better provenance, not worse.
The three other halves:
aria-labelwould have fixed the announcement and left the screen saying nothing.--text-mutedtoken measured under #102, rather than byopacity: 0.4. The old dimming pushed the text towards its background — the one direction a contrast rule never permits — and rendered pixel-identical to.btn:disabled, so "withdrawn" and "unavailable" looked alike.The follow-up the issue anticipated — "consider whether the resulting decision should record that its
adopted_evidence_idpointed at inactive evidence" — is now moot: that decision cannot be made.Mutation-tested: dropping the
is_activecheck fromadoptable()fails two tests, removing the label fails one, reinstating the inline opacity fails one. Frontend tests 185 → 190.