<SignIn />: the reset password code step renders an empty, focusable back button with no accessible name
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 85/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- react, typescript
- Bereich
- accessibility, authentication
Rechercherichtung
Lies packages/ui/src/components/SignIn/SignInFactorOneForgotPasswordCard.tsx und verfolge, wie die Props an die Karte für den Verifizierungscode übergeben werden. Das Issue nennt backLinkLabel als fehlend und schlägt vor, die lokalisierte Beschriftung der Zurück-Schaltfläche zu verwenden; prüfe den zugehörigen Code in VerificationCodeCard.tsx und den Ablauf zum Zurücksetzen des Passworts bei der Anmeldung. Fertig ist die Arbeit, wenn der Schritt mit dem Reset-Code eine barrierefreie Bezeichnung für die Zurück-Schaltfläche hat und der Verstoß gegen die Barrierefreiheit bei der Schaltflächenbezeichnung behoben ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Preliminary Checks
- I have reviewed the documentation: https://clerk.com/docs
- I have searched for existing issues: https://github.com/clerk/javascript/issues
- I have not already reached out to Clerk support via email or Discord (if you have, no need to open an issue here)
- This issue is not a question, general help request, or anything other than a bug report directly related to Clerk. Please ask questions in our Discord community: https://clerk.com/discord.
Reproduction
https://upward-hare-2386.accounts.dev/sign-in
Publishable key
pk_test_dXB3YXJkLWhhcmUtMjM4Ni5jbGVyay5hY2NvdW50cy5kZXYk
Description
The reproduction is the hosted Account Portal of a brand-new development application, created only for this report and left on Clerk's default settings (email + password). It has no appearance, no localization and no custom CSS. Test user: [email protected].
Steps to reproduce:
- Open the sign-in page above and enter
[email protected]. - On the password step, click Forgot password?
- Click Reset your password.
- On the Reset password code step, press Tab from Continue, or run axe on the card.
Expected behavior:
A labelled "Back" button, or no button at all.
Actual behavior:
An empty ghost button is rendered below Continue:
<button class="cl-formButtonReset cl-button 🔒️ cl-internal-sbng93" data-variant="ghost" data-color="primary"></button>
- It is 400×14 px, focusable (
tabIndex0) and the next Tab stop after Continue. When focused, it shows as an empty bar. - It has no text and no
aria-label. axe 4.11 reportsbutton-name(critical, WCAG 4.1.2). - Clicking it works: it goes back to the Forgot Password? screen. So it is a real action that is missing its label, not a leftover element.
Cause (from the source on main):
- Since #7626,
VerificationCodeCardrenders aformButtonResetbutton wheneveronBackLinkClickedis passed. Its text comes from the optionalbackLinkLabelprop that the same PR added. SignInFactorOnepassesonBackLinkClickedtoSignInFactorOneForgotPasswordCardfor bothreset_password_phone_codeandreset_password_email_code.- Neither
SignInFactorOneForgotPasswordCardnorSignInFactorOneCodeFormsetsbackLinkLabel. Before #7626 the card ignoredonBackLinkClicked, so nothing was rendered on this step. Since then, the button is rendered empty. - Only
SmsCodeFlowScreenpasses a label today. The open PR #10396 addsbackLinkLabel={localizationKeys('backButton')}toUVFactorOneCodeFormfor the same reason, but it does not touch the sign-in reset password step.
Possible fix: pass a label, e.g. backLinkLabel={localizationKeys('backButton')}, from SignInFactorOneForgotPasswordCard. As a safeguard, VerificationCodeCard could render the button only when a label is present.
Environment
Hosted Account Portal, development instance with default settings
ClerkJS 6.41.0, @clerk/ui 1.42.0 (window.Clerk.version / window.Clerk.uiVersion)
Chromium 153.0.8010.12 via Playwright 1.63.0, en-US
Same code in @clerk/ui 1.42.4 (latest on npm) and on main (f6d8807c28cf0d31662f3926ae7370cc69e8d554)
Also seen in a Next.js app on @clerk/ui 1.38.0 with the es-ES localization
- Vorherrschende Sprache
- TypeScript
- Sterne
- 1.8k
- Forks
- 492
- Ø Merge
- 1 T. 6 Std.
- Gemergte PRs (30 T.)
- 367
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus clerk/javascript
-
Built-in reverification dialog lacks an accessible name (aria-dialog-name)Evtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
clerk/javascript#10548 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
clerk/javascript#10547 ·
Maintainer antworten meist innerhalb von 1 Tag
-
<SignIn />: first "Use email" click switches back to phone when `initialValues.phoneNumber` is setEvtl. vergeben @twicestruck hat das vor 18 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
clerk/javascript#10487 ·
Maintainer antworten meist innerhalb von 1 Tag
-
useLoadedIsomorphicClerk misses "ready" when a ClerkProvider remounts after clerk-js has loaded — <ClerkLoading> never resolvesEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
clerk/javascript#10462 ·
Maintainer antworten meist innerhalb von 1 Tag
-
ClerkAPIError drops meta.lockout_expires_in_seconds from user_locked errorsEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
clerk/javascript#10026 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in clerk/javascript
Ähnliche Issues
-
Add: BOM CineOffenapproved check:passed streams:add
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug platform-android
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Termix-SSH/Mobile#146 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
MCP mcp-feedback-pattern
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
getsentry/toolkit#2276 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
devswha/herdr-web-ui#3875 ·