diff --git a/TEST_SCENARIOS.md b/TEST_SCENARIOS.md index 94ea029..56211c3 100644 --- a/TEST_SCENARIOS.md +++ b/TEST_SCENARIOS.md @@ -413,6 +413,34 @@ est précisément le piège de coalescence documenté dans CLAUDE.md. --- +## K — Autofill : comportements intentionnels (à ne pas « corriger ») + +### K1 · « Clear the field before typing » désactivé → le password est quand même remplacé +- **ACTION** : Settings → Autofill → décocher *Clear the field before typing*. + Puis remplissage complet (`Ctrl+Shift+L`, ou clic-droit dans la quick search) + sur un formulaire dont les deux champs contiennent déjà quelque chose. +- **OBSERVÉ** : le **username** n'est pas effacé (la frappe s'insère), mais + l'ancien **password** disparaît et est remplacé. +- **C'EST NORMAL** — vérifié de bout en bout : le JS envoie `&clear=0`, Delphi + met `FAutofillPendingClear := False`, et les **deux** `ClearFieldIfWanted` + (avant username et avant password) sortent immédiatement. Notre code + n'efface rien. + La cause est le **Tab** du pipeline `username → Tab → password` : arriver + dans un champ par Tab **sélectionne tout son contenu** (comportement standard + Windows / navigateur), et la frappe remplace la sélection. Le username, lui, + a été focalisé par un **clic** de l'utilisateur → curseur sans sélection → + insertion. +- **Ce que le réglage fait réellement** : empêcher l'envoi de `Ctrl+A`. Il + existe pour les terminaux / bureaux distants où `Ctrl+A` signifie « début de + ligne » ou déclenche le préfixe tmux, ce qui casserait le remplissage. Il ne + promet pas de préserver le contenu des champs. +- **Ne pas « corriger »** : désélectionner après le Tab ferait **concaténer** le + nouveau mot de passe à l'ancien — jamais souhaitable. +- **Test qui isole la cause** : `Ctrl+Shift+P` (password seul) en cliquant + directement dans le champ → pas de Tab → l'ancienne valeur **reste**. + +--- + ## Reste à traiter (constaté pendant l'audit, non corrigé) 1. **Attachments hors garde A11.** Le contrôle « changed elsewhere » couvre le