Un ensemble de référence reproduisant les motifs de pages 2FA que les utilisateurs rencontrent réellement sur des sites en production, accompagné d'un petit groupe de pages d'isolation synthétique utilisées pour reproduire des cas particuliers de la logique de détection. Chaque page documente son inspiration, la structure des attributs et le comportement attendu de l'extension, avec ou sans le paramètre « remplissage TOTP au chargement de la page ».
Chaque page reproduit la structure d'attributs d'un parcours 2FA reconnaissable.
autocomplete="one-time-code" + name="totp". La référence bien formée. GitHub, Cloudflare, fintechs modernes.
name="otc", type="tel", autocomplete="off", aria-label="Code". Capturé sur le parcours 2FA public de Microsoft.
Aucun attribut name ; seul aria-label="One-time passcode" porte la signification sémantique. Forme typique d'un composant React contrôlé.
name="mfaCode". Touche la liste de vocabulaire strict. AWS, GCP, étapes similaires de challenge IAM en entreprise.
Six champs adjacents nommés code1..code6. Tous touchent le vocabulaire ambigu via la sous-chaîne "code".
Six cases nommées otp[0]..otp[5]. Convention de liaison par tableau React/Vue.
Six cases avec uniquement des id, sans attribut name. État géré en JS, pas via la soumission de formulaire. Forme React 2FA répandue.
Formulaire TOTP intégré dans une <iframe> de même origine. Portails SSO d'entreprise (par ex. widgets hébergés par Okta).
Le challenge 2FA apparaît dans une modale superposée sans changement d'URL. Notion, Linear, SPA modernes.
Le déclenchement au chargement ne se relance pas ; le déclenchement manuel fonctionneChamps TOTP et code de secours sur la même page. Parcours de secours façon GitHub.
Remplit le TOTP, ignore le champ de secours (garde-fou d'exclusion)Champ TOTP à l'intérieur du shadow root ouvert d'un élément personnalisé. Systèmes de design Stencil / Lit / Web Components.
Fonctionne — la requête shadow profonde trouve le champLe champ TOTP n'existe pas dans le DOM initial. Il apparaît après le clic sur « Envoyer le code ». Banque, opérateurs télécoms, portails publics.
Le chargement ne se relance pas sur mutation ; le déclenchement manuel fonctionneFixtures construites pour exposer des cas particuliers de la logique de détection. Non représentatives d'un site réel.
maxlength numérique + inputmode + pattern, aucun vocabulaire dans name/aria/label. Teste si les indices structurels pourraient être promus dans une correction future.
Détecteur et qualificateur passent à côtéCinq cases touchent le vocabulaire, une est délibérément hors liste. Déclenche l'effondrement de la consolidation par chiffre, où le code à six chiffres complet est écrit dans chacune des cinq cases correspondantes.
Formulaire cassé en sortie — bug connu, en attente d'un correctif structurel