ExternalLink component for the 16 hand-rolled "(opens in new tab)" links
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 74/100
- Tipo de issue
- Refactorización
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- accessibility, frontend
Línea de trabajo
Empieza en apps/web/src/components/ e inspecciona los 16 target links de AppFooter, AppHeader, ProjectCard, ActivityCard, LoginPlaceholder, Account, PersonDetail, ProjectDetail y Volunteer. Ejecuta las pruebas existentes de accessible-name y confirma después que todos los sitios usan el componente compartido y que las assertions siguen coincidiendo con el new-tab cue y con el comportamiento de target y rel.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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).
- Lenguaje dominante
- TypeScript
- Estrellas
- 1
- Forks
- 1
- Merge medio
- 11 min
- PR fusionados (30 d)
- 22
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de CodeForPhilly/codeforphilly-ng
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
CodeForPhilly/codeforphilly-ng#178 ·
Los mantenedores suelen responder en 1 día
-
MarkdownEditor toolbar: use Radix Toolbar from radix-ui instead of the hand-rolled roving tabindexAbiertoenhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
CodeForPhilly/codeforphilly-ng#169 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
CodeForPhilly/codeforphilly-ng#89 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
CodeForPhilly/codeforphilly-ng#87 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
CodeForPhilly/codeforphilly-ng#50 ·
Los mantenedores suelen responder en 1 día
Todos los issues de CodeForPhilly/codeforphilly-ng
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
microsoft/vscode-livepreview#876 ·
Los mantenedores suelen responder en 1 día
-
needs-triage
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
JustJarethB/invoicer#54 ·
-
ICP 1.2.0 shows a scheduled task's interval in milliseconds under the label "Interval (In seconds)"AbiertoNeeds Triage Type/Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
wso2/product-integrator#2585 ·
Los mantenedores suelen responder en 1 día
-
Add: Telemundo West sdAbiertocheck:passed streams:add
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
design
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
MTES-MCT/monitor-field#119 ·
Los mantenedores suelen responder en 1 día