View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0012044 | Taler | challenger | public | 2026-11-10 23:42 | 2026-11-10 23:43 |
| Reporter | bot-cg [agent] | Assigned To | Resolution deadline | ||
| Implementer | Reviewer | ||||
| Release signed by | Deployed by | ||||
| Verifier | Communicator | CM_7 | |||
| Data protection authority notification required | No | ||||
| CSIRT notification required | No | ||||
| Estimated effort (hours) | Actual effort (hours) | 0 | |||
| Fast-track | No | ||||
| Work package | none | ||||
| Priority | normal | Severity | minor | Reproducibility | have not tried |
| Status | new | Resolution | open | ||
| Summary | 0012044: Challenger: address entry form (email/phone/postal, initial and change) does not focus its first field | ||||
| Description | What happens: Routing passes `focus` to AskChallenge for #/ask and #/change, but AskChallengeInternal never used it, and FormUI would not use it either: web-util's InputLine ignores the `focus` property (its doAutoFocus ref is commented out with a FIXME). The page is a single-purpose step whose only task is typing the address, yet nothing was focused. Measured: #/ask email/phone/postal/postal-ch = BODY. 'Use a different email address' from the code page -> #/change = BODY. Expected: Focus is on the first editable address field: CONTACT_EMAIL, CONTACT_PHONE, or CONTACT_NAME for postal. On the change form this is the prefilled field the user must edit. Nothing is focused when the address is fixed (all fields disabled) or in locked mode (no form). Where: - packages/challenger-webui/src/pages/AskChallenge.tsx:584 Measured in headless Chromium (document.activeElement): before: BODY (ask-email, ask-phone, ask-postal, ask-postal-ch, change-email) after: INPUT[name=CONTACT_EMAIL] (ask-email, change-email); INPUT[name=CONTACT_PHONE] (ask-phone); INPUT[name=CONTACT_NAME] (ask-postal, ask-postal-ch); BODY with fix_address (all disabled). Focus is not re-applied: after typing, tabbing to ADDRESS_LINES and typing, 1.5 s later focus is still on the TEXTAREA. More screenshots: challenger--ask-{email,phone,postal,postal-ch}--{before,after}.png 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: AskChallenge passes its existing `focus` prop on to FormUI. With the web-util form-framework fix (filed separately), FormUI focuses the first visible, enabled field once on mount; a fixed address renders every field disabled, so nothing is focused then. 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; eslint + prettier clean; challenger-flow.test.js 12/12 pass; rendered in Chromium for all four address types and for the change form, before and after | ||||
| Tags | No tags attached. | ||||
| Attached Files | challenger--address-form-focus.diff (551 bytes)
diff --git a/packages/challenger-webui/src/pages/AskChallenge.tsx b/packages/challenger-webui/src/pages/AskChallenge.tsx
index 099ae1869..a5801fef5 100644
--- a/packages/challenger-webui/src/pages/AskChallenge.tsx
+++ b/packages/challenger-webui/src/pages/AskChallenge.tsx
@@ -576,6 +576,7 @@ function AskChallengeInternal({
<FormUI
design={design}
model={form.model}
+ focus={focus}
onSubmit={sendArgs ? () => send.run(...sendArgs) : undefined}
/>
</div>
| ||||
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2026-11-10 23:42 | bot-cg | New Issue | |
| 2026-11-10 23:42 | bot-cg | Relationship added | child of 0012024 |
| 2026-11-10 23:42 | bot-cg | Relationship added | related to 0012057 |
| 2026-11-10 23:43 | bot-cg | File Added: challenger--address-form-focus.diff | |
| 2026-11-10 23:43 | bot-cg | File Added: challenger--change-email--before.png | |
| 2026-11-10 23:43 | bot-cg | File Added: challenger--change-email--after.png |