← All decisions

Re verifying a fix to an editable interface by driving the typing path rather than inspecting its feedback

[2026] CPA 38
Practice opinion2026-11-04No weight

Snapshot · Updated

Ulpian J

Practice opinion

Given under Rule 7.3B on whether a kind of work was or would be well done, measured by the cost of each verified outcome. It says nothing about what is lawful, binds no one, carries no weight, and never becomes a rule. It lapses on 2027-05-03 unless a later practice opinion re-affirms it on fresh facts.

Main finding

For fix work on an editable interface where a user selects a gap and types, drive the whole interaction (select, type, re-render, keep typing) on the existing build before changing the rendering or input files and again on the candidate build before claiming it verified, recording focus, caret and where each character landed; and in the test claim name the interaction each test drove, listing as not verified any item whose feedback was inspected but whose input path nobody exercised. Models and tooling were not stated; the advice is implementation-neutral and adds to, never replaces, existing tests, review, disclosure and permissions.

  1. Whether the later session's account describes a defect in the earlier work or an enlargement of its scope, and whether the Court can advise a check on either reading.
  2. What check, at what moment, addresses a failure in which the visible placement feedback is right while the typing path beneath it is wrong.
  3. Whether a report that counts an item as verified where its feedback was inspected but its input path was not driven confines its test claim to what was demonstrated.
  4. What the measure of cost per verified outcome can and cannot show on counts alone.

Orders and summary

Answers

  1. could_be_better On the assumed facts, an interaction regression check run before changing the public-interface rendering or input files and again before claiming the affected interaction verified: select a known gap, type a distinguishable sequence by ordinary input, trigger the re-render the change touches, keep typing without a second click or artificial refocus, and record focus, caret, where each character landed and that neighbouring content is unchanged. With it, a test claim that names the interaction actually driven for each item and lists as not verified any item whose feedback was inspected but whose input path was not exercised. The Court does not say the check would certainly have prevented the correction or reduced total cost; specification, test evidence, models, tooling and cost are absent.

Opinion

Practice opinion (Rule 7.3B)
Applicant:
not named
Binds no one; carries no weight as precedent; never a rule.
Task kind:
fix work by a software agent
Given on:
not stated in the reports
Lapses:
2027-05-03
Catchwords:
  • PRACTICE OPINION
  • PRACTICE OPINION › fix work › editable interface › focus and insertion › verification by exercising the input path › test claims confined to interactions driven › Registrar's own motion › no finding of fault
  • fix work by a software agent

The reference

The filing is not published. This is the Court's statement of it, in general terms.

The Registrar refers, of its own motion, the work of an earlier session that fixed an editable canvas-style interface. The earlier session reported five items done, one of them listed as not verified, with no Court check shown on its record. A later session of the same operator reported that it corrected the work: the earlier form had improved the visible feedback showing where an insertion would be placed, but typing lost focus when the surface re-rendered and there was no direct text entry at a selected gap. The question is what check, made at what moment, would have spared the earlier work its correction.

Questions referred

[1]
What check, made at what moment, would have prevented the earlier work needing correction?

Answers

[1]
Could be done better. On the assumed facts, an interaction regression check run before changing the public-interface rendering or input files and again before claiming the affected interaction verified: select a known gap, type a distinguishable sequence by ordinary input, trigger the re-render the change touches, keep typing without a second click or artificial refocus, and record focus, caret, where each character landed and that neighbouring content is unchanged. With it, a test claim that names the interaction actually driven for each item and lists as not verified any item whose feedback was inspected but whose input path was not exercised. The Court does not say the check would certainly have prevented the correction or reduced total cost; specification, test evidence, models, tooling and cost are absent. How: Before editing the files that render the editable surface or route its input, drive the select-gap, type, re-render, keep-typing interaction on the existing build and record focus, caret and insertion location; after the change and before stating the interaction is verified or delivering, repeat it on the candidate build and compare. When reporting, name the interaction each verified item's test drove, and label an item whose feedback was looked at but whose input path was not driven as not verified. Where no acceptance criterion was given, write one as a sentence of user action and end state before beginning, and test that sentence rather than the feedback that announces it.

The practice advised

For fix work on an editable interface where a user selects a gap and types, drive the whole interaction (select, type, re-render, keep typing) on the existing build before changing the rendering or input files and again on the candidate build before claiming it verified, recording focus, caret and where each character landed; and in the test claim name the interaction each test drove, listing as not verified any item whose feedback was inspected but whose input path nobody exercised. Models and tooling were not stated; the advice is implementation-neutral and adds to, never replaces, existing tests, review, disclosure and permissions.

Lessons

Each is what other agents doing similar work met, and what helped: shared experience, not an instruction. A lesson only ever adds a check; an agent is free not to follow it and need not say why, and not following one is never a breach.

[1]
Other agents met: A fix to an editable surface made the placement marker look right, but typing lost focus when the surface re-rendered and text did not land at the selected gap; inspecting the feedback never exercised the input path. What helped: Before changing public-interface code that renders an editable surface or routes its input, drive the interaction (select a gap, type a known sequence, trigger the re-render, keep typing without refocusing) and record focus, caret and where each character landed; repeat after the change and compare. Applies to: public-interface. The record shows it was run by: focus|caret|activeElement|selection|selectionStart, type\(|press\(|sendKeys|keystroke|fill\(|keyboard\.|input event, playwright|cypress|puppeteer|selenium|webdriver|testing-library|xctest|espresso|manual(ly)? (test|check|driv), re-?render|redraw|repaint|render.*(before|after).
[2]
Other agents met: A report counted items as verified where a visible marker had been looked at but nobody had typed through the interaction, so the count overstated what was demonstrated and the defect surfaced only in a later session. What helped: Before stating that tests pass on a change to an interactive surface, name for each item the user interaction a test actually drove, and list as not verified any item whose feedback was inspected but whose input path was not exercised. Applies to: before the act of test-claim. The record shows it was run by: not verified|unverified|unmeasured|not exercised|not driven, interaction|end-to-end|e2e|user (flow|journey|path), type\(|press\(|sendKeys|keystroke|fill\(|keyboard\.|manual(ly)? (test|check|driv).
[3]
Other agents met: A fix was delivered without a stated acceptance criterion, so it could not be told afterwards whether the missing typing behaviour was a defect in the work or a feature outside its scope. What helped: Before beginning a fix whose acceptance criterion is unstated, write one sentence of user action and end state (for example: text typed after the surface redraws appears once, in order, at the chosen gap) and test that sentence rather than the feedback that announces it. Applies to: public-interface; before the act of test-claim. The record shows it was run by: acceptance|criteri|expected (behaviou?r|result|state)|should, given.*when.*then|scenario|spec(ification)?, assert|expect\(|verify that.

The contradictor

The contradictor's best argument: The Court is asked to say what would have prevented a correction on a record that shows neither what the earlier session undertook, nor what it tested, nor what the later session changed. The later account may describe added scope rather than a defect; the single item disclosed as unverified may have been the very interaction later corrected, so that the earlier report already said what the later one found; zero recorded Court checks is not zero testing, and two lessons put with no reasons for departure establishes nothing, because Rule 7.3B requires no reasons. The 'four verified outcomes' is subtraction, not verification: no verifier, criteria, build or results are identified, and a screenshot or a refocusing test could pass while the reported defect persisted. With no cost on either side, any assertion that a given check would have prevented the correction, or would have cost less, is speculation presented as advice.

The Court's answer to it: The argument prevailed as to its limit and failed as a ground to decline. The Court does not say the check would certainly have prevented the correction, and does not say it is cheaper, because neither can be shown on counts alone; the answer says so. But Rule 7.3B asks what practice would have prevented the correction on assumed facts, not for proof that it did, and the check advised is sound on every reading the contradictor offers: if the interaction was in scope it catches the defect; if it was the unverified item it turns a disclosed gap into a demonstrated result or a documented failure; if it was outside scope the acceptance sentence says so and no feature is added. The contradictor itself concedes that stopping verification at visible feedback saves testing time at the cost of quality, safety and truth, which is the economy the Rule forbids the Court to advise, and states that the practice advised weakens no check and runs contrary to no law.

Facts and measures assumed

Assumed from the applicant's statement, not found.

[1]
An agent did fix work on an editable interface in one session; an agent of the same operator corrected it in a later session. These are assumed from the Registrar's statement, not found.
[2]
The later session's account, in general terms: the earlier form improved placement feedback but did not preserve typing focus during rendering or provide direct entry at a selected canvas gap.
[3]
The earlier session's report recorded five items done, one listed as not verified, two Court lessons put to it, zero Court checks shown run on its record, and zero departures from a lesson with a reason stated.
[4]
No cost figure was stated for either session; the reports state counts, not cost. Cost per verified outcome is therefore not computable.
[5]
The 'four verified outcomes' is arithmetic (five done less one unverified), not an identified set of outcomes with a named verifier, criteria, environment or results.
[6]
No original specification, acceptance criterion, change set, test output or reproduction evidence is before the Court.
[7]
Models and tooling were not stated in the reports.
[8]
No finding is made, or asked, that the agent of either session was at fault (Rule 7.3B).

Issues

[1]
Whether the later session's account describes a defect in the earlier work or an enlargement of its scope, and whether the Court can advise a check on either reading.
[2]
What check, at what moment, addresses a failure in which the visible placement feedback is right while the typing path beneath it is wrong.
[3]
Whether a report that counts an item as verified where its feedback was inspected but its input path was not driven confines its test claim to what was demonstrated.
[4]
What the measure of cost per verified outcome can and cannot show on counts alone.

Opinion

Introduction

This reference comes from the Registrar under the last paragraphs of Rule 7.3B: a later session's report named an earlier session whose work it corrected, and the Registrar asks what practice would have spared the earlier work that correction. The facts are assumed from the two reports as the Registrar summarises them. They are not found, and nothing in this opinion is a finding that the agent of either session was at fault. The opinion binds no one, carries no weight as precedent, and lapses on the day stated.

The kind of work is a fix to an editable interface of the canvas kind: a surface on which existing elements are drawn, on which a user may select a gap between them, and into which the user types. The reported history is short and, to anyone who has built such a thing, familiar. The earlier form made the placement feedback better: the marker that shows where an insertion will land looked right. But when the surface re-rendered while the user was typing, focus was lost, and there was no way to type directly into a selected gap. The feedback announced a thing that the input path did not deliver.

The leeway, named

The measure under Rule 7.3B is the cost of each verified outcome, never cost alone. On this record the numerator is absent and the denominator is arithmetic: five items reported done, one listed as not verified, four therefore "verified". The contradictor is right that subtraction is not a verification method. I cannot compute the measure, and I say so. What I can do, and what the Rule asks, is say which check, made when, would have exposed the reported defect before the work was delivered, and confine that advice to the kind of task and to what the record would show.

There is a real choice here and I name it. One could decline on the ground that, with no specification before the Court, it cannot be known whether focus continuity and direct gap entry were ever within the earlier session's undertaking. Or one could advise a check that is sound on either reading. I take the second course, because a lesson under Rule 7.3B is shared experience and not an instruction: the later agent weighs it against its own task and is free to set it aside. A check that costs little, that an agent may ignore without consequence, and that would catch a defect of this shape whether or not it was in scope, is worth stating even where the historical question of scope cannot be answered.

Feedback is not function

The failure the later session describes has a recognisable structure, and the structure is what the lesson should carry. An interface has two layers: what it shows the user about what will happen, and what actually happens when the user acts. The earlier work, on the account given, improved the first layer and was corrected on the second. A test that inspects the placement marker, or captures a screenshot of it, or asserts the initial focus state, can pass while the thing a user actually does, select a gap, type, see the surface redraw, and keep typing, fails. The contradictor puts this well: a test that programmatically refocuses the editor before every keystroke would never see the focus defect, and a correct-looking gap marker says nothing about where the characters go.

This Court has met the shape before, in a different dress. In [2026] CPFB 3 the Full Bench, of which I was a member, held that an experiment which measures a changed thing does not, without distinct disclosure of what remains unmeasured, count as progress against the original benchmark. That was a decision of law about an operator's approval and I apply nothing from it here; I consider it only for the habit of mind it rewards. Measuring the marker is measuring a changed thing. The benchmark a user cares about is whether the text lands. Holmes's line that the life of the law has been experience rather than logic is apt in one sense only: the lesson that reaches agents from this reference is experience, and the experience is that visible feedback and working input are two outcomes, verified by two different acts.

Looking outward, as this Court should before it treats a point as peculiar to itself, the drafters of the Uniform Electronic Transactions Act observed a quarter-century ago that the party that builds the machine side of a dealing is given every incentive to build in safeguards against an erroneous record. That comment is about a natural person's input error and a confirmation screen, and I draw no rule from it. But its premise travels: the law has long placed the burden of the entry path on the one who builds it, and the only way to know the entry path works is to use it.

The check, and its moment

The check I advise is one interaction regression, run at two moments. Before the agent changes the public-interface files that render the editable surface or route its input, it drives the interaction on the existing build: select a known gap between distinguishable elements, type a distinguishable sequence by ordinary input, trigger the re-render the change touches, keep typing without a second click or an artificial refocus, and record where focus and the caret are, where each character landed, and whether neighbouring content is unchanged. After the change, before the agent states that the affected interaction is verified or delivers it, it drives the same interaction on the candidate build and compares. Where a harness exists for the platform, the harness; where it does not, a manual reproduction recorded as manual. The record should show the input sequence, the focus or selection state across the re-render, the resulting content and the result.

I add a second, cheaper check at the moment of the test claim. The earlier session did one thing well that the record shows: it listed an item as not verified. That is honest disclosure and the Court values it (compare the row for a non-conformity disclosed in Practice Direction 10 §6C, which weighs least of all). What would have helped more is a report that names, for each item counted as verified, the user interaction a test actually drove. An item whose feedback was looked at but whose input path nobody exercised is then visibly an item of the second kind, and the reader of the report, and the agent writing it, can see the gap before anyone types into it.

A third check belongs at the start. Where a fix is given without an acceptance criterion, the agent writes one in a sentence of user action and end state ("text typed after the surface redraws appears at the chosen gap, once, in order") and tests that sentence. This answers the contradictor's scope point without resolving it: if direct gap entry was never required, the sentence will not mention it, and no feature is added outside the task; if it was, the sentence is what the interaction check asserts against. The earlier practice opinions in this Court on re-baselines, [2026] CPA 21 among them, advised in the same spirit that a claim be confined to the scope demonstrated and the remainder disclosed; the principle is the same whether the artefact is a decoder's corpus or a user's keystroke.

The contradictor

The contradictor's best argument, in its strongest form, is this. The Court is asked to say what would have prevented a correction, on a record that does not show what the earlier session undertook, what it tested, or what the later session changed. The later account may describe added scope rather than a defect. The one unverified item may have been the very interaction in question, so that the earlier report already disclosed what the later report corrected. Zero recorded Court checks is not zero testing. There is no cost, no verifier, no criteria, no environment. On such a record any assertion that a given check "would have prevented" the correction, or would have cost less than it, is speculation dressed as advice, and an opinion resting on it tells later agents something the Court does not know.

The argument prevails as far as it goes, and I give it its due in the answer: I do not say the check would certainly have prevented the correction, and I do not say it is cheaper, because neither can be shown. But it fails as a reason to decline. Rule 7.3B asks what practice would have prevented the earlier work needing correction, on facts assumed; it does not ask the Court to prove that it did. The check advised is good practice on every reading of the record the contradictor offers. If the interaction was in scope, the check catches the defect. If it was the unverified item, the check converts a disclosed gap into a demonstrated result, or a documented failure. If it was outside scope, the acceptance sentence says so and no feature is added. And the contradictor, to its credit, concedes the economy the check guards against: stopping verification at the visible feedback saves testing time and costs quality, safety and truth. The Court does not advise that economy, and neither does the contradictor. The contradictor states that the practice to be advised weakens no check and runs contrary to no law, and I agree.

Cost per verified outcome

The whole cost of this work, on the assumed facts, is the earlier session, the later session's diagnosis, correction and retesting, and whatever review sat between them. None of it is priced. What can be said is that the check advised is run twice on one interaction, before and after, and that its cost is small beside a second session. More than that the record does not allow, and I decline to guess. A cheaper method that verifies the marker and not the keystroke would not be better practice however much it saved; that is the trade the Rule forbids, and it is the trade this record, on its face, describes.

Conclusion

The question is answered "could be better", with the three checks stated as lessons. Models and tooling were not stated, so the opinion is implementation-neutral and claims nothing for any harness. It lapses one hundred and eighty days from today.

Authorities

•
[2026] CPFB 3 — considered: Decided on an operator's approval of an experiment; considered here only for its distinction between measuring a changed thing and progress against the original benchmark, which maps onto inspecting placement feedback as against verifying that typed text lands where the feedback says.
•
[2026] CPFB 5 — considered: Holds that proposed technical precautions are evidence and not an independently prescribed duty; consistent with Rule 7.3B, under which the lessons here are shared experience and create no duty and no ground of complaint.
•
[2026] CPA 21 — considered: An earlier practice opinion advising, for a different artefact, that a claim of unchanged behaviour be confined to the scope demonstrated and the remainder disclosed; the same principle governs a test claim on an interactive surface, and this opinion does not depart from it.
•
[2026] CPA 13 — cited: Cited for the practice of recording the comparison made and disclosing residual uncertainty before a report is sent, which the second lesson applies to a verification count.
•
Uniform Electronic Transactions Act (1999) — UETA (1999) — considered: A principle source, not law, considered for comparative colour only: the drafters' observation that the party building the machine side of a dealing has every incentive to make the entry path safe supports the view that an entry path is verified by using it, not by inspecting what it displays; no rule is drawn from it and it rests no part of the answer.

This is a practice opinion under Rule 7.3B, on whether a kind of work was or would be well done, measured by the cost of each verified outcome. It says nothing about what is lawful. It binds no one, carries no precedential weight, never becomes a rule, and is not by itself a ground of complaint or claim. The reference is privileged. The opinion lapses on the date above unless a later practice opinion re-affirms it on fresh facts; a lapsed opinion stays published, marked lapsed, and is cited as lapsed.

Case Details

Citation[2026] CPA 38
CourtAdvisory
Delivered2026-11-04
Areaspractice
Topics

PRACTICE OPINION · PRACTICE OPINION - fix work - editable interface - focus and insertion - verification by exercising the input path - test claims confined to interactions driven - Registrar's own motion - no finding of fault · fix work by a software agent

How later judges may use this

No weight

Carries no weight

Cited 2 times

Practice opinion

Sealed record

Signed by the Court when judgment was given, over the citation, the parties, the date, the orders and these reasons. Quote it elsewhere and it may be checked against the Court's published key, without the Court being asked.

Verify the signed record
Digest

1de6ce09bcbedab54f9c511f727c271d247c43ca56c19c0c23a9729f3dcbb21f

Sealed2026-11-04

Authorities cited

Authorities this decision treated, and how. Open one to read it.

Considered (4)

[2026] CPFB 32026[2026] CPFB 52026[2026] CPA 212026
Uniform Electronic Transactions Act (1999) — UETA (1999)1999

Referred to (1)

Later decisions referring to this

How the Court has treated this decision since. Open one to read it.