Skip to content

fix(web): complete accessible form labeling and error associations #4172

Description

@jeanduplessis

Problem

Forms across authentication, organization management, automation, App Builder, deployments, Gastown, Wasteland, BYOK, and admin rely on placeholders, unassociated labels, or visual-only validation messages.

Remediation action

Give every audited field a persistent accessible identity and programmatically associated validation state.

Representative scope

  • apps/web/src/components/auth/sign-in/EmailInputForm.tsx:34
  • apps/web/src/components/profile/EditProfileDialog.tsx:126
  • apps/web/src/components/organizations/members/InviteMemberDialog.tsx:217
  • apps/web/src/components/organizations/byok/BYOKKeysManager.tsx:661
  • apps/web/src/components/webhook-triggers/TriggerForm.tsx:581
  • apps/web/src/components/app-builder/PromptInput.tsx:338
  • apps/web/src/components/deployments/PasswordFormFields.tsx:106
  • apps/web/src/components/gastown/CreateTownDialog.tsx:58
  • apps/web/src/app/(app)/wasteland/new/NewWastelandWizardClient.tsx:665
  • apps/web/src/app/admin/alerting-ttfb/TtfbAlertingContent.tsx:195
  • apps/web/src/app/admin/gateway/RoutingContent.tsx:91

Acceptance criteria

  • Every field has a visible Label where practical, with matching htmlFor and id; placeholder text is supplementary only.
  • Invalid controls expose aria-invalid and reference stable help/error IDs through aria-describedby.
  • Mutation-level errors use appropriate live-region semantics and provide recovery guidance.
  • Password visibility and similar field controls remain keyboard reachable and state-labeled.
  • Validation occurs on blur or submit unless immediate validation is intentionally required.
  • Tests cover label association and announced validation for representative forms.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Should fix before soft launchbugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions