<SignIn />: the reset password code step renders an empty, focusable back button with no accessible name
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 85/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- react, typescript
- Domínio
- accessibility, authentication
Direção de pesquisa
Leia packages/ui/src/components/SignIn/SignInFactorOneForgotPasswordCard.tsx e acompanhe como ele fornece props ao cartão do código de verificação. A issue identifica a ausência de backLinkLabel e sugere usar o rótulo localizado do botão de voltar; confira o código relacionado em VerificationCodeCard.tsx e o fluxo de redefinição de senha do login. O trabalho estará concluído quando a etapa do código de redefinição tiver um nome acessível para o botão de voltar e a violação de acessibilidade relacionada ao nome do botão estiver resolvida.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- TypeScript
- Estrelas
- 1.8k
- Forks
- 492
- Merge médio
- 1d 6h
- PRs com merge (30d)
- 367
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de clerk/javascript
-
Built-in reverification dialog lacks an accessible name (aria-dialog-name)Talvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
clerk/javascript#10548 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
clerk/javascript#10547 ·
Mantenedores costumam responder em até 1 dia
-
<SignIn />: first "Use email" click switches back to phone when `initialValues.phoneNumber` is setTalvez já em andamento @twicestruck assumiu há 18 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
clerk/javascript#10487 ·
Mantenedores costumam responder em até 1 dia
-
useLoadedIsomorphicClerk misses "ready" when a ClerkProvider remounts after clerk-js has loaded — <ClerkLoading> never resolvesTalvez livre de novo Um pull request para esta issue foi fechado sem ser mesclado. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
clerk/javascript#10462 ·
Mantenedores costumam responder em até 1 dia
-
ClerkAPIError drops meta.lockout_expires_in_seconds from user_locked errorsTalvez livre de novo Um pull request para esta issue foi fechado sem ser mesclado. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
clerk/javascript#10026 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
Todas as issues de clerk/javascript
Issues semelhantes
-
Add: BOM CineAbertaapproved check:passed streams:add
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
bug platform-android
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Termix-SSH/Mobile#146 · 1 comentário ·
Mantenedores costumam responder em até 2 dias
-
MCP mcp-feedback-pattern
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
getsentry/toolkit#2276 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
devswha/herdr-web-ui#3875 ·