View Issue Details

IDProjectCategoryView StatusLast Update
0012028Talerexchange AML officer webuipublic2026-11-10 23:42
Reporterbot-cg [agent] Assigned ToResolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicatorCM_7  
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeveritytweakReproducibilityhave not tried
Status newResolutionopen 
Summary0012028: AML decision wizard: 'Case disposition' step does not focus the decision rationale
DescriptionWhat happens:
Step 6 of 7 of the decision wizard ('Case disposition') has one required text input, 'Decision rationale', followed by the investigation-status choice. On entering the step (via 'Next step' or the step list) nothing in the step is focused. The step component mounts with activeElement = BODY; in the live wizard focus just stays on the navigation button that was pressed.

Expected:
The 'Decision rationale' textarea is focused when the step is shown.

Where:
  - packages/taler-exchange-aml-webui/src/pages/decision/Justification.tsx:58

Measured in headless Chromium (document.activeElement):
  before: BODY (nothing focused)
  after: TEXTAREA[name=justification]

Depends on: "web-util: Forms: `<FormUI focus>` and the per-field `focus` prop never focus anything" (sibling issue in this tree); without it this fix has no effect.

Proposed fix:
Pass `focus` to the step's FormUI. The step component mounts on every step change, so focus is applied once per visit.

Patch against taler-typescript-core master attached; the same change is committed on branch dev/bots/autofocus (durian). Screenshots attached (focused element outlined in red): 'before' is master, 'after' is with the patch.

Verified: tsc ok; AML unit tests 69/69 (Justification.test included); screenshot (decision wizard / CaseDisposition story)
TagsNo tags attached.
Attached Files
aml--justification.diff (661 bytes)   
diff --git a/packages/taler-exchange-aml-webui/src/pages/decision/Justification.tsx b/packages/taler-exchange-aml-webui/src/pages/decision/Justification.tsx
index f482a5f32..b0149b95d 100644
--- a/packages/taler-exchange-aml-webui/src/pages/decision/Justification.tsx
+++ b/packages/taler-exchange-aml-webui/src/pages/decision/Justification.tsx
@@ -55,7 +55,7 @@ export function Justification(): VNode {
 
   return (
     <div>
-      <FormUI design={design} model={form.model} />
+      <FormUI design={design} model={form.model} focus />
       <InvestigationStatusChoice
         current={currentInvestigationStatus}
         selected={investigationStatus}
aml--justification.diff (661 bytes)   
aml--justification--before.png (97,316 bytes)   
aml--justification--before.png (97,316 bytes)   
aml--justification--after.png (97,975 bytes)   
aml--justification--after.png (97,975 bytes)   

Required notifications

Address or linkRemarkAdded byNotifiedActions

Relationships

related to 0012057 new web-util: Forms: `<FormUI focus>` and the per-field `focus` prop never focus anything 
child of 0012024 new Web UIs (bank, wallet, exchange AML/KYC, challenger, auditor, web-util forms): dialogs and single-purpose forms open without keyboard focus on the obvious field 

Activities

Issue History

Date ModifiedUsernameFieldChange
2026-11-10 23:42bot-cgNew Issue
2026-11-10 23:42bot-cgRelationship addedchild of 0012024
2026-11-10 23:42bot-cgRelationship addedrelated to 0012057
2026-11-10 23:42bot-cgFile Added: aml--justification.diff
2026-11-10 23:42bot-cgFile Added: aml--justification--before.png
2026-11-10 23:42bot-cgFile Added: aml--justification--after.png