View Issue Details

IDProjectCategoryView StatusLast Update
0012039Talerlibeufin-bank webuipublic2026-11-10 23:43
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 
Summary0012039: Bank: 'Update password' page does not focus the password field
DescriptionWhat happens:
The redesign removed UpdateAccountPassword's `focus` prop together with the doAutoFocus on 'Current password' (the Routing call sites used to pass `focus`). #/my-password and the admin route #/profile/<account>/change-password now focus nothing. Measured activeElement: BODY in both.

Expected:
'Current password' focused when changing your own password. 'New password' focused when an administrator resets another account (no current-password field there).

Where:
  - packages/libeufin-bank-webui/src/pages/account/UpdateAccountPassword.tsx:206
  - packages/libeufin-bank-webui/src/pages/account/UpdateAccountPassword.tsx:243

Measured in headless Chromium (document.activeElement):
  before: BODY
  after: INPUT#current-password (own account); INPUT#password 'New password' (admin for another account)

Proposed fix:
doAutoFocus ref on the current-password input, and on the new-password input when the account is not the signed-in user. The page has no other use, so no prop is needed.

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; unit tests 94/94; Chromium screenshots, own and admin (shots/bank--password-change-admin--{before,after}.png); also through the real Routing at #/my-password
TagsNo tags attached.
Attached Files
bank--password-change.diff (2,021 bytes)   
diff --git a/packages/libeufin-bank-webui/src/pages/account/UpdateAccountPassword.tsx b/packages/libeufin-bank-webui/src/pages/account/UpdateAccountPassword.tsx
index fa2403bdf..f1fd6d1c9 100644
--- a/packages/libeufin-bank-webui/src/pages/account/UpdateAccountPassword.tsx
+++ b/packages/libeufin-bank-webui/src/pages/account/UpdateAccountPassword.tsx
@@ -35,6 +35,7 @@ import { useBankChallengeHandlerContext } from "../../context/challenge.js";
 import { useSessionState } from "../../hooks/session.js";
 import { OperationError } from "../../components/OperationError.js";
 import { undefinedIfEmpty } from "../../utils.js";
+import { doAutoFocus } from "../PaytoWireTransferForm.js";
 import { ProfileNavigation } from "../ProfileNavigation.js";
 
 export function UpdateAccountPassword({
@@ -202,6 +203,7 @@ export function UpdateAccountPassword({
                   </label>
                   <div class="mt-2">
                     <input
+                      ref={doAutoFocus}
                       type="password"
                       class="block w-full rounded-md border-0 py-1.5 text-onBackground shadow-sm ring-1 ring-inset ring-gray-300 data-[error=true]:ring-red-500 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary sm:text-sm sm:leading-6"
                       name="current"
@@ -236,6 +238,9 @@ export function UpdateAccountPassword({
                 </label>
                 <div class="mt-2">
                   <input
+                    // An administrator resetting another account's password
+                    // is not asked for the current one.
+                    ref={accountIsTheCurrentUser ? undefined : doAutoFocus}
                     type="password"
                     class="block w-full rounded-md border-0 py-1.5 text-onBackground shadow-sm ring-1 ring-inset ring-gray-300 data-[error=true]:ring-red-500 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary sm:text-sm sm:leading-6"
                     name="password"
bank--password-change.diff (2,021 bytes)   

Required notifications

Address or linkRemarkAdded byNotifiedActions

Relationships

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:43bot-cgFile Added: bank--password-change.diff
2026-11-10 23:43bot-cgFile Added: bank--password-change--before.png
2026-11-10 23:43bot-cgFile Added: bank--password-change--after.png