Skip to content

fix(workflow-form): the read-only input card blocks the pointer but not the keyboard #8758

Closed as not planned

Description

@yangzhang75

What happened?

The Form View's read-only input card locks itself with pointer-events: none (workflow-form.component.scss:340, applied by [class.read-only]="!canEdit" at workflow-form.component.html:232). That only blocks pointing-device hit testing. A keyboard user can Tab into a custom widget's own controls inside the card -- a file picker's Browse button, the HuggingFace file input -- and activate them with Enter or Space. The bound formly controls are disabled through props.disabled, but the controls a widget draws of its own do not consult the form's disabled state: the HuggingFace audio input, for one, POSTs the selected file.

Expected: read-only blocks keyboard interaction as well as pointer. The step panel already does this with inert for the same reason (workflow-form.component.html:484, [attr.inert]="panelLive ? null : ''"); the input card should follow.

Part of #8439 (item 5) and the Form View feature #8011. Raised by Copilot on #8437, #8438 and #8440.

How to reproduce?

  1. Open a workflow that exposes a HuggingFace audio (file) input in the Form View, as a user without write access (the card is read-only).
  2. Press Tab until the focus lands on the widget's file input or Browse button inside the card.
  3. Press Enter or Space and choose a file.
  4. The upload request goes out although the card is read-only.

Fix sketch: put inert on the read-only card, giving the container tabindex="-1" and an aria-label so keyboard users can still scroll it (the step panel's precedent), or disable every descendant control semantically. A DOM test that focuses a widget control inside a read-only card and asserts it can be neither focused nor activated.

Version/Branch

1.4.0-incubating-SNAPSHOT (main)

Commit Hash (Optional)

506397a

What browsers are you seeing the problem on?

Chrome

Relevant log output

No response

Activity

  1. github-actions commented on Sep 29, 2026

    @github-actions
    Contributor

    👋 Thanks for opening this issue, @yangzhang75!

    It looks like the issue description doesn't quite follow our template yet:

    • This issue doesn't appear to use one of our templates (Bug, Feature, or Task). Please open it using a template so the required details are captured.

    Filling out the template helps reviewers understand and triage your contribution faster. Please edit the description to complete it. This message will disappear automatically once the template is followed.

    You can find the template prompts by editing the description, or see CONTRIBUTING.md for the full contribution flow.

  2. Alwaysgaurav1 commented on Oct 5, 2026

    @Alwaysgaurav1
    Contributor

    /take

  3. yangzhang75 commented on Oct 5, 2026

    @yangzhang75
    ContributorAuthor

    Hi @Alwaysgaurav1, sorry about this one, my fault for forgetting to take it. It is a
    sub-issue of #8439 and the fix is queued behind #8843 / #8845 / #8846 / #8848, which all
    touch the same card. Could you /untake it so I can pick it up?

  4. yangzhang75 commented on Oct 9, 2026

    @yangzhang75
    ContributorAuthor

    Closing this in favour of #8943, which carries the same report. @Alwaysgaurav1, sorry for the back and forth -- the fix for this one is queued behind the PRs already open in this series (#8839, #8843, #8845, #8846), all touching the same Form View card, so it is better kept with them. Thanks for picking it up, and sorry I had not claimed it in time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions