Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Attribut HTML : autocomplete
L'attributautocomplete permet aux développeur·euse·s web de définir si, et dans quelle mesure, l'agent utilisateur est autorisé à fournir une aide automatisée pour remplir les champs d'un formulaire, ainsi que d'indiquer au navigateur le type d'information attendu dans le champ.
Il est disponible sur les éléments HTML<input> qui acceptent une valeur textuelle ou numérique, sur les éléments HTML<textarea>,<select> et<form>.
Dans cet article
Exemple interactif
<label for="firstName">Prénom :</label><input name="firstName" type="text" autocomplete="given-name" /><label for="lastName">Nom de famille :</label><input name="lastName" type="text" autocomplete="family-name" /><label for="email">E-mail :</label><input name="email" type="email" autocomplete="off" />label { display: block; margin-top: 1rem;}Description
L'attributautocomplete fournit une indication à l'agent utilisateur sur la façon de préremplir (ou non) un contrôle de formulaire. Sa valeur peut être le mot-cléoff ouon, ou une liste ordonnée de jetons séparés par des espaces.
<input autocomplete="off" /><input autocomplete="on" /><input autocomplete="shipping street-address" /><input autocomplete="section-user1 billing postal-code" />Si un élément<input>,<select> ou<textarea> ne possède pas d'attributautocomplete, le navigateur utilisera l'attributautocomplete duformulaire propriétaire de l'élément. Le formulaire propriétaire est soit l'élément<form> dont l'attributid correspond à la valeur de l'attributform de l'élément (si présent), soit, plus couramment, le<form> dans lequel l'élément est imbriqué.
Note :Pour que l'autocomplétion fonctionne, les agents utilisateurs peuvent exiger que les éléments<input>/<select>/<textarea>
- aient un attribut
nameet/ouid - soient descendants d'un élément
<form> - appartiennent à un formulaire ayant un boutonsubmit
Si la même liste de jetons est utilisée dans plusieurs contrôles de formulaire, l'agent utilisateur remplira automatiquement toutes les occurrences de la même valeurautocomplete avec la même donnée.
Certains jetons peuvent être utilisés plusieurs fois avec des valeurs attendues différentes, comme le jetonzip-code dans un formulaire contenant à la fois une adresse de livraison et de facturation. Inclure plusieurs jetons différents dans une liste séparée par des espaces permet d'attribuer des valeurs d'autocomplétion uniques : par exemple,autocomplete="shipping zip-code" etautocomplete="billing zip-code".
Certaines valeurs d'autocomplétion peuvent devoir être réutilisées plusieurs fois. Par exemple, un formulaire peut contenir plusieurs adresses de livraison et donc plusieurs occurrences de"shipping zip-code" tout en attendant des valeurs différentes. Pour rendre la valeur unique, le premier jeton de la liste peut être un jetonsection-*, où les huit premiers caractères sont toujours "section-", suivis d'une chaîne alphanumérique. Tous les champs de formulaire ayant le même jetonsection-* appartiennent au mêmegroupe nommé.
Si vous ajoutez l'attributautocomplete sur un champhidden (<input type="hidden">), sa valeur doit être une liste ordonnée de jetons séparés par des espaces ; les mots-cléson etoff ne sont pas autorisés.
La source des valeurs suggérées dépend généralement du navigateur : il s'agit en général des valeurs précédemment saisies par l'utilisateur·rice, mais elles peuvent aussi provenir de valeurs préconfigurées. Par exemple, un navigateur peut permettre à l'utilisateur·rice d'enregistrer son nom, son adresse, son numéro de téléphone et ses adresses e-mail pour l'autocomplétion. Il peut aussi proposer d'enregistrer des informations de carte bancaire chiffrées, pour un remplissage automatique après authentification.
Note :L'attributautocomplete contrôle aussi, dans Firefox (contrairement aux autres navigateurs),la persistance de l'état désactivé ou coché d'un champ<input>,<textarea> ou d'un<form> entier lors d'un rechargement de page(angl.). Cette fonctionnalité est activée par défaut. Définirautocomplete="off" la désactive, même si l'attribut ne devrait normalement pas s'appliquer selon le type de champ. Voirbug 654072 de Firefox(angl.).
Valeurs
La valeur de l'attribut est soit le mot-cléoff ouon, soit une<token-list> (liste de jetons) séparée par des espaces qui décrit la signification de la valeur d'autocomplétion.
offLe navigateur n'est pas autorisé à saisir automatiquement des valeurs pour ce champ. Cette valeur peut être utilisée lorsque le document ou l'application fournit son propre mécanisme d'autocomplétion ou lorsque des raisons de sécurité imposent de ne pas pouvoir saisir la valeur automatiquement.
Note :Dans la plupart des navigateurs modernes, définir
autocompleteà"off"n'empêchera pas un gestionnaire de mots de passe de demander à l'utilisateur·rice s'il·elle souhaite enregistrer le nom d'utilisateur et le mot de passe, ou de remplir automatiquement ces informations dans un formulaire de connexion. Voirl'article sur l'autoremplissage des champs de connexion.onLe navigateur est autorisé à compléter automatiquement le champ. Aucune indication supplémentaire n'est fournie quant au type de donnée attendu et c'est donc au navigateur d'utiliser une heuristique pour proposer des valeurs pertinentes.
<token-list>Un ensemble ordonné dejetons séparés par des espaces composé de jetons de détail d'autoremplissage, précédés éventuellement de jetons de section et de regroupement « billing » (facturation) ou « shipping » (livraison). Les numéros de téléphone, adresses e-mail et protocoles de messagerie sont précédés d'un jeton identifiant le type de destinataire.
Voirla spécification WHATWG pour plus de détails.
Jetons de la liste de jetons
Les options de<token-list> incluent, dans l'ordre :
Groupes nommés
Pour créer un groupe nommé de champs de formulaire, on peut utiliser le jeton optionnelsection-*. S'il est présent, ce jeton doit être le premier de la liste de jetons séparés par des espaces.
section-*Définit le nom d'un groupe de contrôles de formulaire. Il s'agit d'un jeton dont les huit premiers caractères sont la chaîne « section- » (insensible à la casse), suivie de caractères supplémentaires. Tous les contrôles de formulaire commençant par le même jeton appartiennent au même groupe nommé.
Identifiant de regroupement
Un identifiant de regroupement optionnelshipping oubilling
shippingLe champ identifié par les jetons suivants fait partie de l'adresse ou des informations de contact de livraison.
billingLe champ identifié par les jetons suivants fait partie de l'adresse ou des informations de contact de facturation.
Jetons de détail
Chaque liste de jetons de détail séparés par des espaces inclut soit un type de destinataire avec des informations de contact numériques (dans cet ordre), soit une liste de jetons d'autres types.
Type de destinataire
Les jetons qui identifient le type de destinataire incluent :
homeLe type de contact identifié par les jetons suivants sert à contacter le·la destinataire à son domicile.
workLe type de contact identifié par les jetons suivants sert à contacter le·la destinataire sur son lieu de travail.
mobileLe type de contact identifié par les jetons suivants sert à contacter le·la destinataire quel que soit l'endroit.
faxLe destinataire identifié par les jetons suivants est un télécopieur.
pageLe destinataire identifié par les jetons suivants est un téléavertisseur ou un bip.
Jetons de contact numérique
Le jeton ou groupe de jetons pour les numéros de téléphone ou leurs composants, les extensions téléphoniques, les adresses e-mail ou les protocoles de messagerie instantanée.
telUn numéro de téléphone complet, incluant l'indicatif du pays. Si vous devez décomposer le numéro en plusieurs champs, vous pouvez utiliser les valeurs suivantes :
tel-country-codeL'indicatif du pays, par exemple « 33 » pour la France ou « 1 » pour les États-Unis, le Canada et d'autres régions d'Amérique du Nord et des Caraïbes.
tel-nationalLe numéro de téléphone complet sans l'indicatif du pays, incluant un préfixe interne au pays. Pour le numéro « 1-855-555-6502 », la valeur de ce champ serait « 855-555-6502 ».
tel-area-codeL'indicatif régional, avec tout préfixe interne au pays si nécessaire.
tel-localLe numéro de téléphone sans l'indicatif de pays ni l'indicatif régional. Celui-ci peut être encore divisé en deux parties, pour les numéros qui comportent un préfixe d'échange et un numéro dans l'échange. Pour le numéro « 555-6502 », utilisez
tel-local-prefixpour « 555 » ettel-local-suffixpour « 6502 ».
tel-extensionUn code d'extension téléphonique, comme un numéro de chambre dans un hôtel ou une extension de bureau dans une entreprise.
emailUne adresse e-mail.
imppUne URL pour un point de terminaison de protocole de messagerie instantanée, par exemple
xmpp:username@example.net.
Autres jetons
Lorsque le champ de formulaire n'est pas un numéro de téléphone, une adresse e-mail ou un protocole de messagerie instantanée, la liste de jetons séparés par des espaces n'est pas précédée d'un type de contact :
nameLe champ attend la valeur du nom complet d'une personne. Utiliser
nameplutôt que de décomposer le nom en ses composants est généralement préférable, car cela évite de devoir gérer la diversité des noms humains et leur structure. Cependant, vous pouvez utiliser les valeurs suivantes pourautocompletesi vous souhaitez décomposer le nom :honorific-prefixLe préfixe ou le titre, par exemple « Mme », « M. », « Dr », « Mlle », etc.
given-nameLe prénom.
additional-nameLe deuxième prénom.
family-nameLe nom de famille.
honorific-suffixLe suffixe, par exemple « Jr. », « B.Sc. », « PhD. », « IV », etc.
nicknameUn surnom ou pseudonyme.
usernameUn nom d'utilisateur ou de compte.
new-passwordUn nouveau mot de passe. Lors de la création d'un compte ou d'un changement de mot de passe, cela doit être utilisé pour un champ « Saisissez votre nouveau mot de passe » ou « Confirmez le nouveau mot de passe », par opposition à un champ général « Saisissez votre mot de passe actuel ». Cela peut être utilisé par le navigateur pour éviter de remplir accidentellement un mot de passe existant et pour proposer une aide à la création d'un mot de passe sécurisé.
current-passwordLe mot de passe actuel de l'utilisateur·rice.
one-time-codeUn mot de passe à usage unique (OTP) pour vérifier l'identité de l'utilisateur·rice, utilisé comme facteur supplémentaire lors d'une connexion. Il s'agit le plus souvent d'un code reçu par un canal externe, comme un SMS, un e-mail ou une application d'authentification.
organization-titleUn intitulé de poste ou le titre d'une personne au sein d'une organisation, par exemple « Directeur technique », « Président·e », « Responsable d'équipe », etc.
organizationLe nom d'une entreprise ou d'une organisation, par exemple « Acme Widget Company » ou « Scouts et Guides de France ».
street-addressUne adresse postale. Elle peut comporter plusieurs lignes de texte et doit permettre d'identifier complètement l'emplacement de l'adresse au sein de son deuxième niveau administratif (généralement une ville ou un village), mais ne doit pas inclure le nom de la ville, le code postal ou le nom du pays.
address-line1,address-line2,address-line3Chaque ligne individuelle de l'adresse postale. Ces champs ne doivent être présents que si
street-addressn'est pas utilisé.
address-level4Le niveau administratif le plus fin (niveau administratif), pour les adresses comportant quatre niveaux.
address-level3Le troisième niveau administratif (niveau administratif), pour les adresses comportant au moins trois niveaux.
address-level2Le deuxième niveau administratif (niveau administratif), pour les adresses comportant au moins deux niveaux. Pour les pays à deux niveaux administratifs, cela correspond généralement à la ville, au village ou à la localité où se situe l'adresse.
address-level1Le premier niveau administratif (niveau administratif) de l'adresse. Il s'agit généralement de la région ou de la province où se situe l'adresse. Aux États-Unis, il s'agit de l'État. En Suisse, du canton. Au Royaume-Uni, du comté.
countryUn code de pays ou de territoire.
country-nameUn nom de pays ou de territoire.
postal-codeUn code postal (aux États-Unis, il s'agit du code ZIP).
cc-nameLe nom complet tel qu'il apparaît sur un moyen de paiement (carte bancaire, etc.). Il est généralement préférable d'utiliser un champ de nom complet plutôt que de le décomposer.
cc-given-nameLe prénom tel qu'il apparaît sur un moyen de paiement comme une carte bancaire.
cc-additional-nameLe deuxième prénom tel qu'il apparaît sur un moyen de paiement ou une carte bancaire.
cc-family-nameLe nom de famille tel qu'il apparaît sur une carte bancaire.
cc-numberUn numéro de carte bancaire ou tout autre numéro identifiant un moyen de paiement (par exemple un numéro de compte).
cc-expLa date d'expiration du moyen de paiement, généralement sous la forme « MM/AA » ou « MM/AAAA ».
cc-exp-monthLe mois d'expiration du moyen de paiement.
cc-exp-yearL'année d'expiration du moyen de paiement.
cc-cscLe code de sécurité du moyen de paiement ; pour les cartes bancaires, il s'agit du code de vérification à trois chiffres au dos de la carte.
cc-typeLe type de moyen de paiement (par exemple « Visa » ou « Master Card »).
transaction-currencyLa devise dans laquelle la transaction doit être effectuée.
transaction-amountLe montant, exprimé dans la devise spécifiée par
transaction-currency, de la transaction pour un formulaire de paiement.languageUne langue préférée, indiquée sous la forme d'unebalise de langue BCP 47 valide.
bdayUne date de naissance complète.
bday-dayLe jour du mois de la date de naissance.
bday-monthLe mois de l'année de la date de naissance.
bday-yearL'année de la date de naissance.
sexUne identité de genre (par exemple « Femme », « Fa'afafine », « Hijra », « Homme », « Non-binaire »), sous forme de texte libre sans retour à la ligne.
urlUne URL, comme une page d'accueil ou l'adresse d'un site web d'entreprise, selon le contexte des autres champs du formulaire.
photoL'URL d'une image représentant la personne, l'entreprise ou les informations de contact fournies dans les autres champs du formulaire.
Jeton d'autorisation web
Avec<input> et<textarea>, le jetonwebauthn peut être inclus en dernier pour indiquer à l'agent utilisateur d'afficher les identifiants à clé publique lorsque l'utilisateur·rice interagit avec le contrôle.
webauthnLes clés d'accès générées par l'API Web Authentication, comme demandé par un appel conditionnel à
navigator.credentials.get()(c'est-à-dire un appel incluantmediation: 'conditional'). Si ce jeton est inclus, il doit être le dernier de la liste de jetons séparés par des espaces. VoirSe connecter avec une clé d'accès via l'autoremplissage de formulaire(angl.) pour plus de détails.
Exemples
<div> <label for="cc-number">Entrez votre numéro de carte de crédit</label> <input name="cc-number" autocomplete="off" /></div>Les niveaux administratifs pour les adresses
Les quatre niveaux administratifs pour les adresses (address-level1 jusqu'àaddress-level4) décrivent l'adresse avec un niveau de précision croissant au sein du pays dans lequel l'adresse est situé. Chaque pays possède son propre système de division administrative et peut donc organiser les niveaux selon un ordre différent pour l'écriture des adresses.
address-level1 représente toujours le niveau le plus large : c'est la composante la moins spécifique de l'adresse après la maille du pays.
Disposition du formulaire
Étant donné qu'une adresse s'écrit différemment selon le pays, il peut être utile, si possible, de fournir différentes dispositions de formulaires pour les utilisateurs (éventuellement en fonction de leur locale) pour faciliter la saisie de leur adresse pour leur pays.
Variations
La façon d'utiliser les niveaux administratifs varie d'un pays à l'autre. Voici quelques exemples non exhaustifs.
États-Unis
Aux États-Unis, une adresse s'écrit généralement comme suit :
432 Anywhere StExampleville CA 95555
Dans ce cas, la portion la moins précise est le code "CA" (qui correspond au code postal pour l'état de Californie) et on a doncaddress-level1 qui correspond à ce niveau (ici l'état et plus particulièrement : "CA").
La deuxième partie de l'adresse la moins précise est le nom de la ville et c'est donc cette information (ici "Exampleville") qui sera utilisée pouraddress-level2.
Les niveaux 3 et 4 ne sont pas utilisés aux États-Unis.
Royaume-Uni
Le Royaume-Uni utilise un ou deux niveaux d'adresse selon l'adresse. Il s'agit de la ville postale et, dans certains cas, de la localité. Une adresse complète ressemblerait à ceci :
103 Frogmarch StreetUpper-WappingWinchelseaTN99 8ZZ
Les niveaux d'adresse sont les suivants :
address-level1: La ville postale — "Winchelsea" dans ce cas.address-line2: La localité — "Upper-Wapping" dans ce cas.address-line1: Les détails de la maison/rue — "103 Frogmarch Street"
Le code postal est séparé. Notez que vous pouvez en fait utiliser uniquement le code postal etaddress-line1 pour réussir à distribuer du courrier au Royaume-Uni, ils devraient donc être les seuls éléments obligatoires, mais les gens ont généralement tendance à fournir plus de détails.
Chine
La Chine utilise jusqu'à trois niveaux administratifs : la province, la ville et le district.
Le code postal à 6 chiffres n'est pas toujours nécessaire mais lorsqu'il est fourni, il est placé séparément avec une étiquette pour plus de clarté. Par exemple :
北京市东城区建国门北大街 8 号华润大厦 17 层 1708 单元邮编:100005
Japon
Une adresse au Japon est généralementécrite sur une ligne, dans un ordre allant des parties les moins spécifiques aux plus spécifiques (dansl'ordre inverse des États-Unis). Il y a deux ou trois niveaux administratifs dans une adresse. Une ligne supplémentaire peut être utilisée pour indiquer les noms des bâtiments et les numéros des pièces. Le code postal est séparé. Par exemple :
〒 381-0000長野県長野市某町 123
« 〒 » et les sept chiffres suivants indiquent le code postal.
address-level1 est utilisé pour les préfectures ou la métropole de Tokyo ; « 長野県 » (préfecture de Nagano) dans ce cas.address-level2 est généralement utilisé pour les villes, les comtés, les communes et les villages ; « 長野市 » (ville de Nagano) dans ce cas. « 某町 123 » estaddress-line1 qui se compose d'un nom de zone et d'un numéro de colis.
Spécifications
| Specification |
|---|
| HTML> # attr-form-autocomplete> |
| HTML> # attr-fe-autocomplete> |
Compatibilité des navigateurs
>html.elements.form.autocomplete
html.elements.input.autocomplete
html.elements.select.autocomplete
html.elements.textarea.autocomplete
Voir aussi
- L'élément HTML
<input> - L'élément HTML
<select> - L'élément HTML
<textarea> - L'élément HTML
<form> - Les formulaires HTML
- Les attributs universels