github / github/accessibility-scanner
Support configurable login form selectors for non-standard label names
- Langage dominant
- TypeScript
- Étoiles
- 369
- Forks
- 40
- Merge moyen
- 1 j 9 h
- PR mergées (30 j)
- 10
Description
## 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.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par l’action d’authentification où getByLabel(/user ?name/i) et getByLabel(/password/i) localisent les champs de connexion, puis examinez comment les entrées facultatives sont définies. Prenez en charge les valeurs configurables username_selector et password_selector ainsi que les fallback proposés pour le type d’entrée, et vérifiez que les formulaires non standard ou dépourvus de libellé sont détectés et analysés avec authentification.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- accessibility, authentication
- Type d'issue
- Fonctionnalité
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 55/100