Skip to content

Built-in reverification dialog lacks an accessible name (aria-dialog-name) #10548

Open

Description

@duyemura

Description

The built-in reverification modal opens with role="dialog" and aria-modal="true" but no accessible name. A real second-factor reverification challenge reports axe aria-dialog-name (serious) on .cl-modalContent.

Reproduction

  1. Sign in to a React application using ClerkProvider and the standard Clerk sign-in UI, with authenticator MFA enrolled.
  2. Let the actual second-factor age exceed five minutes, then use useReverification for a requirement with level: 'second_factor' and afterMinutes: 5.
  3. Run axe while the built-in reverification challenge is open, before entering the code.

Expected: the dialog has an accessible name, preferably associated with its visible localized heading. Actual: the modal container has neither aria-label nor aria-labelledby; the scan fails. This is not an application-owned dialog.

This was reproduced in an application integration; a standalone public reproduction repository is not attached. The relevant source is Modal.tsx at Clerk UI 1.42.0. Could the standard modal connect its accessible name to the rendered heading? We did not find a supported appearance or reverification option that supplies this semantic label.

Environment

  • @clerk/react 6.18.3; the live browser reports ClerkJS 6.41.0 and Clerk UI 1.42.0 through the public Clerk.version and Clerk.uiVersion fields. ClerkJS 6.42.0 was the initial source-review tag, not the observed hosted runtime.
  • React 19, Linux, Chromium driven by Playwright 1.64.0
  • Real development-instance session and actual elapsed factor age, not mocked provider responses

No account identifiers, credentials or verification codes are included. Exact-rule and broader reverification/accessibility searches found no existing issue. No Clerk support contact was made as part of this report.

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