github / github/accessibility-scanner

Support configurable login form selectors for non-standard label names

Abierto
#202 0 comentarios 1 reacción 0 asignados Ver en GitHub
Lenguaje dominante
TypeScript
Estrellas
369
Forks
40
Merge medio
1 d 9 h
PR fusionados (30 d)
10

Descripción

## Problem

The auth action finds login fields using `getByLabel(/user ?name/i)` and `getByLabel(/password/i)`. This misses common login forms:

- **Email-based login**: "Email", "E-Mail" don't match `/user ?name/i`
- **Non-English apps**: "Benutzername", "Mot de passe" don't match
- **No visible labels**: Forms using only `placeholder` attributes

When no match is found, the login form is not detected and the scanner proceeds unauthenticated.

## Suggested fix

1. **Fall back to input types** when label matching fails: `input[type="password"]` for the password field, and the closest preceding `input[type="text"]` or `input[type="email"]` for the username field.
2. **Make selectors configurable** via optional inputs like `username_selector` and `password_selector`, so users can specify their own labels, placeholders, or CSS selectors for non-standard forms.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza en la acción de autenticación donde getByLabel(/user ?name/i) y getByLabel(/password/i) localizan los campos de inicio de sesión; después, inspecciona cómo se definen las entradas opcionales. Admite valores configurables para username_selector y password_selector, además de los fallback propuestos basados en el tipo de entrada, y verifica que los formularios no estándar o sin etiquetas se detecten y se escaneen autenticados.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
typescript
Área
accessibility, authentication
Tipo de issue
Nueva funcionalidad
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
55/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.