Skip to content

Form error ids should derive from useId (hardcoded title-error/slug-error collide across screen + modal) #164

Description

@themightychris

Follow-up from PR #155 (ARIA correctness).

The form error wiring in that PR gives every error <p> an id and points the control at it with aria-describedby. Several of those ids are hardcoded string literals — title-error, slug-error, and siblings in ProjectEdit, ProjectBuzzNew, TagEditModal, etc. When a screen and a modal that both use one of those ids are mounted at the same time (e.g. ProjectEdit with PostHelpWantedModal open), the ids collide and aria-describedby can resolve to the wrong element.

Derive the ids from useId() (as SearchBox and TagPicker already do) so each mounted form instance owns unique ids. Consider a tiny helper so the ${id}-error convention stays in one place.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RdRwHvDupRLV8GuJpYKzEr

Activity

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

Metadata

Metadata

Assignees

No one assigned

    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