Points clés

  • Testez que le changement de pays met à jour les étiquettes, les exigences et les formats ensemble
  • Séparez les entrées brutes, les valeurs normalisées et les résultats du serveur
  • Configurer les jetons de saisie semi-automatique sémantique et les étiquettes visibles localisées
  • Préserver les entrées après un échec et déplacer le focus sur une erreur utile

Auteur et révision

Principes éditoriaux
Rédigé par
Équipe éditoriale du générateur d'adresses aléatoires
Révisé par
Équipe d’examen des formulaires et de l’assurance qualité
Dernière mise à jour substantielle
Ajout du changement de pays, des champs dynamiques, des jetons de saisie semi-automatique et d'une matrice de test en couches.

Première couche : état de changement de pays

La sélection d'un pays peut renommer Ville, changer l'État en Province ou Préfecture, masquer une région et remplacer l'indice de code postal. Affirmez que l’interface utilisateur et API dérivent de la même configuration nationale.

N’effacez jamais silencieusement le texte saisi lors d’un changement de pays. Confirmez d'abord ou conservez les brouillons par pays, puis verrouillez ce comportement dans des tests de régression.

PaysÉtiquettes localiséesComportement clé
États-UnisÉtat/Code postalÉtat à deux lettres et code postal à cinq chiffres
CanadaProvince/Code postalA1A 1A1 avec espace
Royaume-UniPost Town / Code postalCounty normalement facultatif
JaponPréfecture / Code postalCode à sept chiffres et plusieurs niveaux
AustralieBanlieue/État/code postalCode postal à quatre chiffres

Couche deux : HTML sémantique et remplissage automatique

le nom, l'étiquette et la saisie semi-automatique ont des tâches distinctes. Les étiquettes expliquent la signification locale ; le nom suit le contrat API ; la saisie semi-automatique utilise des jetons standardisés tels que le pays, address-line1, address-level1, address-level2 et code postal.

Ne combinez pas l'adresse postale avec address-line1 et address-line2 pour la même représentation d'adresse.

<input name="addressLine1" autocomplete="shipping address-line1" />
<input name="locality" autocomplete="shipping address-level2" />
<input name="region" autocomplete="shipping address-level1" />
<input name="postalCode" autocomplete="shipping postal-code" />

Troisième couche : validation, normalisation et vérification

La validation demande si la forme d'entrée est acceptable. La normalisation standardise le cas et les séparateurs. La vérification compare les données de référence. Donnez-leur des états et des messages séparés.

Évitez de réécrire à chaque frappe. Normalisez le flou ou soumettez et affichez le changement résultant.

  • Distinguer les erreurs de caractères vides, trop longs et invalides
  • Conserver rawValue avant la normalisation
  • Ne pas effacer le formulaire après un délai de recherche
  • Ne qualifiez jamais une correspondance d'expression régulière comme livrable

Couche quatre : récupération après erreur et accessibilité

Après un échec, concentrez-vous sur un résumé des erreurs ou sur le premier champ invalide. Connectez les messages avec aria-describedby, ne comptez jamais uniquement sur la couleur et conservez les autres valeurs de champ.

Sélections de pays de test au clavier, listes de suggestions, liens d'erreur et focus post-soumission. Localisez les tests automatisés par étiquettes ou par rôles plutôt que par espaces réservés spécifiques au pays.

Couche cinq : vérifier le payload réel de l’API

Capturez la demande soumise et affirmez countryCode, regionCode, postalCode, rawAddress et normalizedAddress. Relisez l'enregistrement pour détecter les échecs d'encodage et de conversion nulle.

Une assertion uniquement pour l'interface utilisateur peut manquer une sélection de province qui affiche correctement l'Ontario mais soumet l'Ontario au lieu de l'ON. Il peut également manquer une deuxième ligne effacée qui laisse la valeur précédente en stockage. Exécutez un enregistrement via la création, la modification, la réouverture et l'exportation afin que le test prouve un aller-retour complet plutôt qu'un état d'écran réussi.

Exercez un comportement de recherche tiers avec des réponses lentes, une limitation du débit, des erreurs de serveur, aucune suggestion et plusieurs suggestions plausibles. Une panne de réseau ne doit pas être formulée car votre adresse est erronée. L'indisponibilité du système et les entrées inacceptables sont des états différents avec des solutions différentes.

Versionnez la configuration du pays utilisée par le test. Lorsque les règles postales ou les exigences du produit changent, un échec doit identifier si l'application a changé ou si l'instantané de référence a changé.

  • Instantané de la requête finale JSON
  • Confirmer que la suppression d'un champ facultatif supprime son ancienne valeur
  • Simuler un délai d'attente, 429, 500, aucun résultat et plusieurs résultats
  • Séparer la copie d'erreur système de la copie input-error

Questions fréquentes

Chaque pays devrait-il afficher un champ État ?

Non. Renommez-le Province, Préfecture ou Région le cas échéant, et masquez-le là où le pays n'exige pas ce niveau.

La saisie semi-automatique peut-elle remplacer une étiquette visible ?

Non. La saisie semi-automatique sert le navigateur ; les étiquettes sont au service des personnes et des technologies d'assistance.

Une recherche échouée peut-elle effacer le formulaire ?

Cela ne devrait pas être le cas. Conservez la saisie, identifiez le champ et laissez l'utilisateur le corriger sur place.

Sources et lectures

  1. MDN : attribut de saisie semi-automatique HTML
  2. WHATWG : Adresser les noms de champs de saisie automatique