View Issue Details

IDProjectCategoryView StatusLast Update
0012025Talerexchange 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
PrioritynormalSeverityminorReproducibilityhave not tried
Status newResolutionopen 
Summary0012025: AML: 'Session locked' page does not focus the password field
DescriptionWhat happens:
The officer session is locked on every reload, and also when the officer presses 'Lock' in the header. Routing then renders UnlockSession (also used by HandleAccountNotReady). It is a dedicated unlock page whose only input is the password, but nothing is focused, so the officer has to click into the field before typing. Measured on the 'officer access / SessionLocked' story: activeElement = BODY.

Expected:
The password input is focused as soon as the page appears.

Where:
  - packages/taler-exchange-aml-webui/src/components/UnlockSession.tsx:146

Measured in headless Chromium (document.activeElement):
  before: BODY (nothing focused)
  after: INPUT[name=password][type=password]

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 the form framework's `focus` property to the password `InputLine`. This takes effect through the web-util change, now in the working tree, that makes InputLine focus itself once on mount when `focus` is set (useAutoFocus).

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 --noEmit ok (planted-error sanity check caught); AML unit tests 69/69 pass, including UnlockSession.test; before = git HEAD (aml + web-util), after = working tree incl. the web-util useAutoFocus change; the screenshot confirms the caret is in the password field
TagsNo tags attached.
Attached Files
aml--unlock-session.diff (638 bytes)   
diff --git a/packages/taler-exchange-aml-webui/src/components/UnlockSession.tsx b/packages/taler-exchange-aml-webui/src/components/UnlockSession.tsx
index dbc6b88c3..70531f04b 100644
--- a/packages/taler-exchange-aml-webui/src/components/UnlockSession.tsx
+++ b/packages/taler-exchange-aml-webui/src/components/UnlockSession.tsx
@@ -143,6 +143,7 @@ export function UnlockSession({ officer }: { officer: OfficerLocked }): VNode {
               name="password"
               type="password"
               required
+              focus
               handler={handler.getUiFieldForAttribute("password")}
             />
           </div>
aml--unlock-session.diff (638 bytes)   
aml--unlock-session--before.png (38,678 bytes)   
aml--unlock-session--before.png (38,678 bytes)   
aml--unlock-session--after.png (39,398 bytes)   
aml--unlock-session--after.png (39,398 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--unlock-session.diff
2026-11-10 23:42bot-cgFile Added: aml--unlock-session--before.png
2026-11-10 23:42bot-cgFile Added: aml--unlock-session--after.png