Notre espace de noms npm a changé. Les développeurs doivent mettre à jour leurs projets pour continuer à accéder à nos composantes Web.

Saisies de texte

Utilisez une saisie de texte lorsque vous voulez que l’utilisateur ne saisisse qu’une seule ligne d’information.

  • Contenu:
    @use '@ongov/ontario-design-system-global-styles/dist/styles/scss/1-variables/global.variables' as globalVariables;
    @use '@ongov/ontario-design-system-global-styles/dist/styles/scss/1-variables/spacing.variables' as spacing;
    @use '@ongov/ontario-design-system-global-styles/dist/styles/scss/1-variables/colours.variables' as colours;
    @use '@ongov/ontario-design-system-global-styles/dist/styles/scss/1-variables/typography.variables' as typography;
    @use '@ongov/ontario-design-system-global-styles/dist/styles/scss/2-tools/placeholder/focus.placeholders' as placeholders;
    @use '@ongov/ontario-design-system-global-styles/dist/styles/scss/1-variables/line-heights.variables' as lineheight;
    @use '@ongov/ontario-design-system-global-styles/dist/styles/scss/1-variables/font-sizes.variables' as fontSizes;
    @use '@ongov/ontario-design-system-global-styles/dist/styles/scss/1-variables/font-weights.variables' as fontWeights;
    
    .ontario-input {
    	border: 2px solid colours.$ontario-colour-black;
    	border-radius: globalVariables.$global-radius;
    	box-sizing: border-box;
    	color: colours.$ontario-colour-black;
    	display: block;
    	font-size: fontSizes.$ontario-font-size-standard-body-text;
    	font-family: typography.$ontario-font-open-sans;
    	line-height: lineheight.$ontario-line-height-7;
    	margin: spacing.$spacing-0 spacing.$spacing-0 spacing.$spacing-7;
    	max-width: globalVariables.$standard-width;
    	width: globalVariables.$full-width;
    	padding: 0.625rem spacing.$spacing-4;
    	transition: box-shadow 0.1s ease-in-out;
    
    	&:focus,
    	&:active {
    		@extend %ontario-focus;
    	}
    }
    
    .ontario-input--2-char-width {
    	max-width: 8ex;
    	min-width: 8ex;
    }
    
    .ontario-input--3-char-width {
    	max-width: 10ex;
    	min-width: 10ex;
    }
    
    .ontario-input--4-char-width {
    	max-width: 12ex;
    	min-width: 12ex;
    }
    
    .ontario-input--5-char-width {
    	max-width: 14ex;
    	min-width: 14ex;
    }
    
    .ontario-input--7-char-width {
    	max-width: 17ex;
    	min-width: 17ex;
    }
    
    .ontario-input--10-char-width {
    	max-width: 23ex;
    	width: 100%;
    }
    
    .ontario-input--20-char-width {
    	max-width: 41ex;
    	width: 100%;
    }
    
    //General forms
    .ontario-form-group:last-of-type {
    	margin-bottom: 3rem;
    
    	.ontario-checkboxes,
    	.ontario-radios {
    		margin-bottom: spacing.$spacing-0;
    	}
    }
    
    //Date inputs
    
    .ontario-date__group {
    	display: flex;
    
    	label {
    		font-weight: fontWeights.$ontario-font-weights-semi-bold;
    	}
    
    	input {
    		margin-top: spacing.$spacing-4;
    	}
    }
    
    .ontario-date__group-input {
    	display: flex;
    	flex-direction: column;
    	margin-right: spacing.$spacing-5;
    }
    
    .ontario-date--error {
    	input {
    		border: 0.125rem solid colours.$ontario-colour-alert;
    	}
    }
    
  • URL: /components/raw/text-inputs/text-inputs.scss
  • Chemin du système de fichiers: fractal/components/components/form/text-inputs/text-inputs.scss
  • Taille: 2.6 KB
  • Contenu:
    .ontario-input:focus,.ontario-input:active{box-shadow:0 0 0 4px #009adb;outline:4px solid transparent;transition:box-shadow .1s ease-in-out}.ontario-input{border:2px solid #1a1a1a;border-radius:4px;box-sizing:border-box;color:#1a1a1a;display:block;font-size:1rem;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1.5;margin:0 0 2.5rem;max-width:48rem;width:100%;padding:.625rem 1rem;transition:box-shadow .1s ease-in-out}.ontario-input--2-char-width{max-width:8ex;min-width:8ex}.ontario-input--3-char-width{max-width:10ex;min-width:10ex}.ontario-input--4-char-width{max-width:12ex;min-width:12ex}.ontario-input--5-char-width{max-width:14ex;min-width:14ex}.ontario-input--7-char-width{max-width:17ex;min-width:17ex}.ontario-input--10-char-width{max-width:23ex;width:100%}.ontario-input--20-char-width{max-width:41ex;width:100%}.ontario-form-group:last-of-type{margin-bottom:3rem}.ontario-form-group:last-of-type .ontario-checkboxes,.ontario-form-group:last-of-type .ontario-radios{margin-bottom:0}.ontario-date__group{display:flex}.ontario-date__group label{font-weight:600}.ontario-date__group input{margin-top:1rem}.ontario-date__group-input{display:flex;flex-direction:column;margin-right:1.5rem}.ontario-date--error input{border:.125rem solid #cd0000}
  • URL: /components/raw/text-inputs/text-inputs.css
  • Chemin du système de fichiers: fractal/components/components/form/text-inputs/text-inputs.css
  • Taille: 1.3 KB

Principe directeur : Donner le contrôle à l’utilisateur

Quand utiliser cette composante

Une saisie de texte est un champ à une seule ligne dans lequel l’utilisateur pour saisir des renseignements.

Exemple


Saisissez le titre de renseignements sur votre véhicule. Étiquette : numéro de plaque d'immatriculation (obligatoire). Texte d'indication : par exemple, AAAA111. Champ de saisie de texte vide.

Utilisez une saisie de texte si :

  • vous voulez que l’utilisateur ne saisisse pas plus d’une simple ligne de renseignements;
  • vous avez besoin d’un seul renseignement de la part de l’utilisateur, comme son nom ou son numéro de téléphone;
  • il est plus rapide pour l’utilisateur d’écrire une réponse que de la sélectionner dans une liste.

N’utilisez pas de boîte de texte si :

  • vous voulez que les utilisateurs vous fournissent une réponse en plus d’une ligne (songez alors plutôt à une zone de texte);
  • vous voulez que les utilisateurs fassent un choix dans une liste établie de réponses, comme oui ou non (songez plutôt à des cases d’option, à des cases à cocher ou à des listes déroulantes).

Ayez recours à des saisies de texte de la bonne taille.

Toutes les saisies de texte ont une hauteur de 48 px.

Intégrer des étiquettes précises, un texte d’indication et une précision sur la largeur des champs donne à l’utilisateur une indication sur la façon de remplir judicieusement le champ de saisie. Décidez de la largeur de votre champ de saisie de texte en fonction du type de renseignements que vous demandez, mais ne limitez jamais le nombre de caractères qu’un utilisateur peut saisir.

Longueur de saisie connue

Employez des saisies à largeur fixe pour un contenu de longueur précise et connue, comme un code postal. Ajoutez de l’espace pour 1 ou 2 caractères de plus, si l’utilisateur est susceptible d’ajouter des espaces ou des tirets. Voici nos largeurs normales de saisie fixe :

  • 2 caractères (pour date, mois)
  • 3 caractères (pour indicatif régional, CVC sur une carte de crédit, âge)
  • 4 caractères (pour année)
  • 7 caractères (pour code postal [plus un caractère])
  • 8 caractères (pour plaque d’immatriculation)
  • 11 caractères (pour NAS NAS [plus deux caractères])

Longueur de saisie inconnue

Si vous ne savez pas de combien de caractères l’utilisateur aura besoin dans sa saisie (p. ex. pour inscrire son nom), faites en sorte que la saisie de texte occupe 100 % du conteneur.


Insertion du bon code de clavier

Insérez le bon code de manière à ce que le clavier des utilisateurs d’appareils mobiles corresponde au type de renseignements que vous demandez. Par exemple :

  • input type="text"montre le clavier normal
  • input type="email" montre le clavier normal plus « @ » et « .com »
  • input type="tel"montre le pavé numérique 0 à 9
  • input type="text" inputmode="numeric" pattern="[0-9] montre un clavier avec chiffres et symboles
  • input type="date"montre un sélecteur de date
  • input type="datetime"montre un sélecteur de date et d’heure
  • input type="month" montre un sélecteur de mois et d’année

Formatage à la discrétion des utilisateurs

Laissez les utilisateurs saisir les renseignements dans le format de leur choix et reformatez‑les au besoin dans le système principal, pour votre base de données. Si vous avez par exemple demandé un code postal, laissez les utilisateurs le saisir en lettres minuscules ou majuscules, avec ou sans espace et tiret, de façon à accepter ces versions :

  • A1A1A1
  • A1A-1A1
  • A1A 1A1
  • a1A 1a1

Reformatez les renseignements seulement dans le système principal – ne modifiez pas leur apparence pour l’utilisateur.


Des champs de saisie de texte vierges

N’insérez pas d’étiquette ou de texte d’indication dans la zone de texte. Utiliser un « espace réservé au texte » comme celui-ci n’est pas une bonne pratique du point de vue de l’utilité et de l’accessibilité, parce qu’il disparaît lorsque les utilisateurs commencent à taper.

Ne pas insérer d’espace réservé au texte à l’intérieur du champ de texte


Étiquette : nom complet (obligatoire). Champ de saisie de texte indiquant de saisir votre nom complet comme texte de l’espace réservé au texte.

Autres spécifications techniques

En règle générale, donnez le contrôle à l’utilisateur à propos de ce qu’il saisit et de sa façon de le faire.

À faire :

  • Toujours insérer une étiquette associée à un identifiant correspondant au‑dessus d’une boîte de texte.
  • Intégrer un texte d’indication seulement si nécessaire.
  • Aligner à gauche les zones de texte (ainsi que leurs étiquettes et le texte d’indication).
  • Habituellement, empiler les saisies de texte à la verticale.
    • Exceptions : il pourrait parfois être plus logique d’insérer des saisies de texte à proximité l’une de l’autre, comme les saisies du jour/mois/année de naissance lorsque vous demandez la date de naissance de quelqu’un.
  • Permettre à l’utilisateur de :
    • copier-coller du texte,
    • saisir n’importe quel caractère (même si cela ne signifie pas qu’il peut soumettre tout type de caractères),
    • rédiger une réponse aussi longue qu’il le veut (autrement, il pourrait avoir un message d’erreur),
  • Recourir au remplissage automatique
    • si, par exemple, un utilisateur a stocké son adresse dans son navigateur Web pour qu’elle s’inscrive automatiquement dans les champs de formulaire, laissez-le s’en servir.
  • Saisir sa réponse dans un seul champ de saisie, au lieu de répartir un élément de données dans plusieurs champs de saisie;
    • utiliser par exemple un seul champ pour son numéro de carte de crédit au lieu de le répartir dans quatre champs.

À faire :


Un champ de saisie portant l’étiquette « Numéro de carte de crédit (obligatoire) ». À ne pas faire : Champ de saisie séparé en 4 champs de saisie portant l'étiquette « numéro de carte de crédit (obligatoire) »

À ne pas faire :


Champ de saisie séparé en 4 champs de saisie portant l'étiquette « numéro de carte de crédit (obligatoire) »

À ne pas faire :

  • Limiter le nombre ou le type de caractères que l’utilisateur peut insérer;
    • donner plutôt des directives précises ou déclencher un message d’erreur, au besoin.
  • Employer une tabulation automatique, qui place automatiquement le curseur de l’utilisateur dans la saisie de texte suivante.

Si vous avez des questions ou souhaitez donner de la rétroaction, veuillez communiquer avec nous.