mirror of
https://github.com/MaksTinyWorkshop/_Assistant_Lead_Tech
synced 2026-04-06 21:41:42 +02:00
2.0 KiB
2.0 KiB
Frontend — Risques & vigilance : Général
Extrait de la base de connaissance Lead_tech. Voir
knowledge/frontend/risques/README.mdpour l'index complet.
Accessibilité oubliée (a11y)
Risques
- App inutilisable au clavier/lecteur d'écran
- Régressions silencieuses sur focus/labels
Symptômes
- Modales impossibles à fermer au clavier
- Inputs sans labels/erreurs non annoncées
- Focus "perdu"
Bonnes pratiques / mitigations
- Checklist a11y minimale sur chaque écran clé
- Gestion de focus (modales, erreurs formulaire)
- Labels/aria cohérents + tests simples
Regex globale /g en singleton — bug lastIndex stateful
Risques
- Une regex avec flag
/gou/ydéfinie comme constante au niveau module maintient un étatlastIndexentre les appels String.prototype.replace()réinitialiselastIndex, mais.test()ou.exec()ne le font pas → bug stateful difficile à détecter, souvent introduit par un refactor ultérieur
Symptômes
.test(str)retourne alternativementtrue/falsesur la même chaîne selon l'ordre d'appel- Bug non reproductible en isolation, uniquement en séquence d'appels
Bonnes pratiques / mitigations
// ❌ RISQUÉ — regex globale partagée entre tous les appels
const LINK_PATTERN = /https?:\/\/\S+/gi;
function processLinks(content: string) {
return content.replace(LINK_PATTERN, ...); // OK today
// Mais si quelqu'un ajoute LINK_PATTERN.test(x) ailleurs → bug lastIndex
}
// ✅ SÛR — nouvelle instance à chaque appel, aucun état partagé
function makeLinkPattern(): RegExp {
return /https?:\/\/\S+/gi;
}
function processLinks(content: string) {
return content.replace(makeLinkPattern(), ...);
}
-
Règle : les regex avec flag
/gou/yutilisées pour transformation de strings → toujours créer via une factory, jamais en singleton de module -
Contexte technique : TypeScript / React Native — app-alexandrie 24-03-2026