View Issue Details

IDProjectCategoryView StatusLast Update
0012024Talerotherpublic2026-11-10 23:55
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 
Summary0012024: 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
DescriptionCompanion to the merchant-portal issue of the same audit, covering the other web UIs in taler-typescript-core (children of this issue; the Anastasis web UI cases are filed in the Anastasis project and related to this one).

Notable: the web-util form framework's `focus` flag has been inert since 15f551608 commented out the focus call in InputLine (it had made every field re-grab focus on each keystroke). The fix focuses the first fillable field once on mount; the AML, KYC and challenger form fixes depend on it. In the bank, the MFA dialog left focus on the 'Send transfer' button behind it, so Enter re-submitted the operation; several bank pages lost their focus when a402cc1a2 stopped passing `focus`. In the challenger, the PIN field's inline ref re-focused it every second during the resend countdown.

Why this keeps happening: Preact does not implement autoFocus. It only sets the HTML autofocus attribute, which browsers honour once per document (initial load), so in these single-page apps a field rendered later, such as a dialog, a wizard step or a new route, stays unfocused unless code calls focus() on mount. Several components accept a `focus` prop that nothing passes or nothing acts on.

Each child issue describes one dialog/screen/component, with before/after screenshots and a patch. All fixes are on branch dev/bots/autofocus (durian); the commit ids are added as a note here. Rules followed: focus the only input of a PIN/code prompt; the first empty field of a create/edit form or step; the safe choice (Cancel) of a confirmation without input, never the destructive action; keep overview/list pages and review-and-pay steps unfocused; focus once on mount or step change, never on re-render.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

The plan

IDSummaryStatusAssigned ToEstimated effort (hours)
0012025AML: 'Session locked' page does not focus the password field new
0012026AML: 'Create session' (officer key creation) does not focus the password field new
0012027AML: 'Find account' does not focus the account identifier field new
0012028AML decision wizard: 'Case disposition' step does not focus the decision rationale new
0012029AML decision wizard: 'Create custom measure' does not focus the Name field new
0012030AML decision wizard: 'Add proposed rule' editor opens without focus new
0012031Auditor: 'Suppress the row' confirmation does not move focus into the dialog new
0012032Auditor: mobile navigation drawer opens without moving focus into it new
0012033Auditor: 'Development settings' page does not focus the Auditor base URL field new
0012034Bank: multi-factor authentication dialog leaves focus on the button behind the overlay new
0012035Bank: 'Send bank transfer' page does not focus the recipient (or the reference when the recipient comes from the link) new
0012036Bank: 'Withdraw to Taler Wallet' page does not focus the amount new
0012037Bank: 'Cash out' page does not focus the transfer reference new
0012038Bank (admin): 'New bank account' form does not focus the login username new
0012039Bank: 'Update password' page does not focus the password field new
0012040Bank: 'Delete account' confirmation does not focus the type-the-name input new
0012041Bank (admin): 'New conversion rate class' does not focus the name, and its form would focus the description new
0012042Bank: withdrawal confirmation dialog focuses its heading even when the user must type the cash amount or a password new
0012043Challenger: code entry pulls focus back to the PIN field every second during the resend countdown new
0012044Challenger: address entry form (email/phone/postal, initial and change) does not focus its first field new
0012045Challenger: developer 'Create a verification session' form does not focus the client password (or redirect URL) new
0012046KYC: opening a requirement's form does not focus its first field new
0012047Wallet: Send money / Request money form does not focus the amount new
0012048Wallet: Deposit to a bank account does not focus the amount new
0012049Wallet: Withdraw screen's existing amount auto-focus never fires on #/withdraw new
0012050Wallet: 'Enter a wallet link' page does not focus the link field new
0012051Wallet: 'Create payment' (merchant payment template) form does not focus the first editable field new
0012052Wallet: donation-receipt setup does not focus the field to fill in new
0012053Wallet: Bank accounts 'Edit' / 'Add bank account' leave focus on the button; the opened form can be off-screen new
0012054Wallet: shared ConfirmationDialog focuses an extra body action instead of Cancel (durability prompt) new
0012055Wallet: '•••' overflow menu opens without moving focus into the menu new
0012056Wallet demo: 'Scenarios' menu opens without moving focus into the menu new
0012057web-util: Forms: `<FormUI focus>` and the per-field `focus` prop never focus anything new
0012058web-util: Terms of service form: 'Read terms' is not focused, and the terms reader moves focus back to its × button whenever the page re-renders new
0012059web-util: Date fields: the calendar dialog opens with focus left behind the overlay, and closing it drops focus to the page body new
0012060web-util: Header settings panel: closing it with × drops focus to the page body new
This issue (hours)
Its children (hours)0
Together (hours)0
Not planned yet: 0012025, 0012026, 0012027, 0012028, 0012029, 0012030, 0012031, 0012032, 0012033, 0012034, 0012035, 0012036, 0012037, 0012038, 0012039, 0012040, 0012041, 0012042, 0012043, 0012044, 0012045, 0012046, 0012047, 0012048, 0012049, 0012050, 0012051, 0012052, 0012053, 0012054, 0012055, 0012056, 0012057, 0012058, 0012059, 0012060. The plan of this issue cannot be finished while part of it is unplanned.

Relationships

parent of 0012025 new Taler AML: 'Session locked' page does not focus the password field 
parent of 0012026 new Taler AML: 'Create session' (officer key creation) does not focus the password field 
parent of 0012027 new Taler AML: 'Find account' does not focus the account identifier field 
parent of 0012028 new Taler AML decision wizard: 'Case disposition' step does not focus the decision rationale 
parent of 0012029 new Taler AML decision wizard: 'Create custom measure' does not focus the Name field 
parent of 0012030 new Taler AML decision wizard: 'Add proposed rule' editor opens without focus 
parent of 0012031 new Taler Auditor: 'Suppress the row' confirmation does not move focus into the dialog 
parent of 0012032 new Taler Auditor: mobile navigation drawer opens without moving focus into it 
parent of 0012033 new Taler Auditor: 'Development settings' page does not focus the Auditor base URL field 
parent of 0012034 new Taler Bank: multi-factor authentication dialog leaves focus on the button behind the overlay 
parent of 0012035 new Taler Bank: 'Send bank transfer' page does not focus the recipient (or the reference when the recipient comes from the link) 
parent of 0012036 new Taler Bank: 'Withdraw to Taler Wallet' page does not focus the amount 
parent of 0012037 new Taler Bank: 'Cash out' page does not focus the transfer reference 
parent of 0012038 new Taler Bank (admin): 'New bank account' form does not focus the login username 
parent of 0012039 new Taler Bank: 'Update password' page does not focus the password field 
parent of 0012040 new Taler Bank: 'Delete account' confirmation does not focus the type-the-name input 
parent of 0012041 new Taler Bank (admin): 'New conversion rate class' does not focus the name, and its form would focus the description 
parent of 0012042 new Taler Bank: withdrawal confirmation dialog focuses its heading even when the user must type the cash amount or a password 
parent of 0012043 new Taler Challenger: code entry pulls focus back to the PIN field every second during the resend countdown 
parent of 0012044 new Taler Challenger: address entry form (email/phone/postal, initial and change) does not focus its first field 
parent of 0012045 new Taler Challenger: developer 'Create a verification session' form does not focus the client password (or redirect URL) 
parent of 0012046 new Taler KYC: opening a requirement's form does not focus its first field 
parent of 0012047 new Taler Wallet: Send money / Request money form does not focus the amount 
parent of 0012048 new Taler Wallet: Deposit to a bank account does not focus the amount 
parent of 0012049 new Taler Wallet: Withdraw screen's existing amount auto-focus never fires on #/withdraw 
parent of 0012050 new Taler Wallet: 'Enter a wallet link' page does not focus the link field 
parent of 0012051 new Taler Wallet: 'Create payment' (merchant payment template) form does not focus the first editable field 
parent of 0012052 new Taler Wallet: donation-receipt setup does not focus the field to fill in 
parent of 0012053 new Taler Wallet: Bank accounts 'Edit' / 'Add bank account' leave focus on the button; the opened form can be off-screen 
parent of 0012054 new Taler Wallet: shared ConfirmationDialog focuses an extra body action instead of Cancel (durability prompt) 
parent of 0012055 new Taler Wallet: '•••' overflow menu opens without moving focus into the menu 
parent of 0012056 new Taler Wallet demo: 'Scenarios' menu opens without moving focus into the menu 
parent of 0012057 new Taler web-util: Forms: `<FormUI focus>` and the per-field `focus` prop never focus anything 
parent of 0012058 new Taler web-util: Terms of service form: 'Read terms' is not focused, and the terms reader moves focus back to its × button whenever the page re-renders 
parent of 0012059 new Taler web-util: Date fields: the calendar dialog opens with focus left behind the overlay, and closing it drops focus to the page body 
parent of 0012060 new Taler web-util: Header settings panel: closing it with × drops focus to the page body 
related to 0012061 new Anastasis Anastasis: "Where do you live?" step does not focus the continent selector 
related to 0012062 new Anastasis Anastasis: "New/Edit recovery policy" form does not focus its first provider selector 
related to 0012063 new Anastasis Anastasis: "Add email authorization" step does not focus the email address field 
Not all the children of this issue are yet resolved or closed.

Activities

bot-cg [agent]

2026-11-10 23:55

updater   ~0030390

Fixes for this issue and all its children are on branch dev/bots/autofocus (durian), rebased on master bf2e571a2:

  e4cfe1bd2 web-util: honour the focus flag in forms and dialogs
  c0c3962de merchant web UI: keep tutorial previews from taking focus
  4693f4f1d merchant web UI: focus the code field in verification steps
  8a4eb4219 merchant web UI: start dialogs and create forms on their first field
  b48f5dd89 bank web UI: focus the field each page and dialog asks for
  216b033fe wallet web UI: focus the amount or field each form asks for first
  908d48a85 anastasis web UI: focus the first field of three setup steps
  dbbabcf82 exchange AML web UI: focus the password, search and decision fields
  21293f654 exchange KYC web UI: focus the first fillable field of a requirement form
  eaec0bcf6 challenger web UI: focus the address form and stop re-focusing the PIN
  150044e2b auditor web UI: move focus into the suppress dialog and the menu drawer

Unit tests with the branch: web-util 64/64, bank 107/107, anastasis 83/83, AML 69/69, KYC 1/1, challenger 12/12, auditor 23/23, wallet 322/322 (wallet run before the rebase onto bf2e571a2: on current master wallet-webui does not compile, 29 errors in its observation code, identical without this branch; the branch touches none of those files). tsc clean in all other packages.

The AML (0012025-0012030), KYC (0012046) and challenger address-form (0012044) fixes depend on the web-util form fix (0012057, commit e4cfe1bd2).

Issue History

Date ModifiedUsernameFieldChange
2026-11-10 23:42bot-cgNew Issue
2026-11-10 23:42bot-cgRelationship addedparent of 0012025
2026-11-10 23:42bot-cgRelationship addedparent of 0012059
2026-11-10 23:42bot-cgRelationship addedparent of 0012058
2026-11-10 23:42bot-cgRelationship addedparent of 0012057
2026-11-10 23:42bot-cgRelationship addedparent of 0012056
2026-11-10 23:42bot-cgRelationship addedparent of 0012055
2026-11-10 23:42bot-cgRelationship addedparent of 0012054
2026-11-10 23:42bot-cgRelationship addedparent of 0012053
2026-11-10 23:42bot-cgRelationship addedparent of 0012052
2026-11-10 23:42bot-cgRelationship addedparent of 0012051
2026-11-10 23:42bot-cgRelationship addedparent of 0012050
2026-11-10 23:42bot-cgRelationship addedparent of 0012049
2026-11-10 23:42bot-cgRelationship addedparent of 0012048
2026-11-10 23:42bot-cgRelationship addedparent of 0012047
2026-11-10 23:42bot-cgRelationship addedparent of 0012046
2026-11-10 23:42bot-cgRelationship addedparent of 0012045
2026-11-10 23:42bot-cgRelationship addedparent of 0012044
2026-11-10 23:42bot-cgRelationship addedparent of 0012043
2026-11-10 23:42bot-cgRelationship addedparent of 0012042
2026-11-10 23:42bot-cgRelationship addedparent of 0012041
2026-11-10 23:42bot-cgRelationship addedparent of 0012040
2026-11-10 23:42bot-cgRelationship addedparent of 0012039
2026-11-10 23:42bot-cgRelationship addedparent of 0012038
2026-11-10 23:42bot-cgRelationship addedparent of 0012037
2026-11-10 23:42bot-cgRelationship addedparent of 0012036
2026-11-10 23:42bot-cgRelationship addedparent of 0012035
2026-11-10 23:42bot-cgRelationship addedparent of 0012034
2026-11-10 23:42bot-cgRelationship addedparent of 0012033
2026-11-10 23:42bot-cgRelationship addedparent of 0012032
2026-11-10 23:42bot-cgRelationship addedparent of 0012031
2026-11-10 23:42bot-cgRelationship addedparent of 0012030
2026-11-10 23:42bot-cgRelationship addedparent of 0012029
2026-11-10 23:42bot-cgRelationship addedparent of 0012028
2026-11-10 23:42bot-cgRelationship addedparent of 0012027
2026-11-10 23:42bot-cgRelationship addedparent of 0012026
2026-11-10 23:42bot-cgRelationship addedparent of 0012060
2026-11-10 23:55bot-cgNote Added: 0030390