ExternalLink component for the 16 hand-rolled "(opens in new tab)" links
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 74/100
- Tipo de issue
- Refatoração
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- typescript
- Domínio
- accessibility, frontend
Direção de pesquisa
Comece em apps/web/src/components/ e inspecione os 16 target links em AppFooter, AppHeader, ProjectCard, ActivityCard, LoginPlaceholder, Account, PersonDetail, ProjectDetail e Volunteer. Execute os testes existentes de accessible-name e confirme que todos os sites usam o componente compartilhado e que as assertions ainda correspondem ao new-tab cue e ao comportamento de target e rel.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Context
PR #157 added a new-tab cue to every target="_blank" link in apps/web: <span className="sr-only"> (opens in new tab)</span> where the link has visible text, or appended to the aria-label where it does not. That is 16 copies across 9 files (AppFooter, AppHeader, ProjectCard, ActivityCard, LoginPlaceholder, Account, PersonDetail, ProjectDetail, Volunteer).
Problem
The cue text, the rel="noopener noreferrer", and the target are re-typed at every site. A future link will forget one of them, and changing the wording (or adding a visual icon) means touching 16 places.
Proposal
An ExternalLink component in apps/web/src/components/ that takes href + children, sets target/rel, and appends the sr-only cue (or merges it into a supplied aria-label). Migrate the 16 sites; the existing accessible-name assertions in the test suite (regex matchers on /\(opens in new tab\)$/) cover the migration.
Deferred from plans/a11y-mechanical.md (PR #157).
- Linguagem predominante
- TypeScript
- Estrelas
- 1
- Forks
- 1
- Merge médio
- 57min
- PRs com merge (30d)
- 57
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Sem modelo de pull request
- Sem 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 CodeForPhilly/codeforphilly-ng
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
CodeForPhilly/codeforphilly-ng#178 ·
Mantenedores costumam responder em até 1 dia
-
MarkdownEditor toolbar: use Radix Toolbar from radix-ui instead of the hand-rolled roving tabindexAbertaenhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
CodeForPhilly/codeforphilly-ng#169 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
CodeForPhilly/codeforphilly-ng#89 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
CodeForPhilly/codeforphilly-ng#87 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
CodeForPhilly/codeforphilly-ng#50 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de CodeForPhilly/codeforphilly-ng
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
cline/cline#15327 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
LogicLabs-OU/OpenArchiver#509 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
bigcapitalhq/bigcapital#1545 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 83/100
Mantenedores costumam responder em até 1 dia