L'autocorrection est un mécanisme intégré d'iOS qui corrige automatiquement les fautes d'orthographe lors de la saisie de texte. UIKit gère le comportement de l'autocorrection via la propriété autocorrectionType dans le protocole UITextInputTraits, supportant trois modes : par défaut, activé et désactivé. Selon Apple Text Programming Guide (2025), l'autocorrection analyse le texte saisi sur la base du dictionnaire système et de l'apprentissage automatique sur l'appareil. Utilisez autocorrectionType pour chaque champ de texte individuellement — cela permet d'adapter le comportement à la spécificité des données saisies.
Points clés
L'autocorrection est une fonctionnalité du système d'exploitation iOS qui remplace automatiquement les mots saisis par des alternatives présumées correctes lorsqu'une faute d'orthographe est détectée. Le mécanisme fonctionne au niveau des champs de texte UIKit et est disponible dans toutes les applications utilisant les éléments de saisie standard UITextField et UITextView.
Au cœur de l'autocorrection se trouve un modèle linguistique entraîné sur des millions d'exemples de texte pour chaque langue prise en charge. Le modèle fonctionne entièrement sur l'appareil (on-device), garantissant la confidentialité des données saisies — le texte n'est pas envoyé aux serveurs d'Apple pour analyse. À chaque mise à jour d'iOS, le modèle est affiné et enrichi de nouveaux mots et règles.
L'autocorrection est activée automatiquement pour tous les champs de texte, sauf si le développeur la désactive explicitement. L'utilisateur peut désactiver complètement l'autocorrection dans les réglages système (Réglages > Général > Clavier > Autocorrection), mais le développeur peut également contrôler ce comportement pour des champs individuels via la propriété autocorrectionType.
Selon la session WWDC 2023 numéro 204, Apple a présenté un modèle d'autocorrection amélioré basé sur Transformer, qui prend en compte le contexte de la phrase entière et pas seulement le dernier mot. Cela a réduit les fausses corrections de 30 % par rapport au modèle précédent basé sur les n-grammes.
UITextAutocorrectionType est une énumération avec trois valeurs qui déterminent le comportement de l'autocorrection pour un champ de texte spécifique. Chaque valeur est définie via la propriété autocorrectionType, accessible dans Interface Builder et dans le code lors de la création du champ.
La valeur .default signifie que le champ hérite du réglage global d'autocorrection des paramètres système du clavier. Ce mode est recommandé pour la plupart des champs de texte car il respecte le choix de l'utilisateur. Si l'utilisateur a désactivé l'autocorrection dans les réglages, un champ avec .default ne l'utilisera pas non plus.
La valeur .yes active forcément l'autocorrection pour le champ indépendamment du réglage système. Ce mode ne doit être utilisé que pour les champs où la précision orthographique est critique — par exemple, dans les éditeurs de texte, les champs de saisie de notes ou de messages. Apple recommande d'utiliser .yes avec prudence, car l'activation forcée peut contredire les attentes de l'utilisateur.
La valeur .no désactive l'autocorrection pour un champ spécifique. Ce mode est obligatoire pour les champs de mots de passe (saisie de texte sécurisée), les adresses e-mail, les codes de vérification et les requêtes de recherche. Dans ces champs, l'autocorrection est non seulement inutile, mais nuisible — elle peut remplacer des données correctement saisies par des alternatives erronées.
| Mode | Valeur | Recommandation |
|---|---|---|
| .default | Hérite du réglage système | La plupart des champs de saisie |
| .yes | Forcément activé | Éditeurs de texte, notes |
| .no | Forcément désactivé | Mots de passe, e-mail, recherche, codes |
Le modèle linguistique de l'autocorrection d'iOS utilise une combinaison d'un dictionnaire statique et d'un modèle entraîné dynamiquement. Le dictionnaire système contient les mots les plus utilisés pour chaque langue, tandis que le modèle linguistique basé sur Transformer analyse le contexte et la probabilité de remplacement. Le modèle s'entraîne sur l'appareil en fonction des textes saisis par l'utilisateur.
Les utilisateurs peuvent ajouter des mots à un dictionnaire personnel via les réglages du clavier (Réglages > Général > Clavier > Remplacement de texte). Les mots ajoutés sont sauvegardés dans iCloud et synchronisés entre les appareils utilisant le même Apple ID. Le système ne corrigera pas les mots du dictionnaire personnel, ce qui est pratique pour les noms, les marques et les termes techniques.
Pour les domaines spécialisés — médicaux, juridiques, techniques — le dictionnaire standard peut contenir des termes insuffisants. Dans ces applications, il est recommandé soit de désactiver l'autocorrection pour les champs concernés, soit d'utiliser le remplacement de texte personnalisé via la méthode UIResponder .replacementDictionary pour iOS 17+.
Selon Apple Machine Learning Research (2024), le nouveau modèle d'autocorrection basé sur l'architecture Transformer traite jusqu'à 10 jetons de contexte (contre 3 jetons dans le modèle précédent), permettant de déterminer plus précisément l'intention de l'utilisateur. Le modèle prend en compte non seulement l'orthographe, mais aussi la structure grammaticale de la phrase.
Safe Keyboard est un mode de saisie protégé qui s'active automatiquement pour les champs avec secureTextEntry = true. Dans ce mode, l'autocorrection, l'autocapitalisation et la saisie prédictive sont désactivées par le système indépendamment des valeurs définies d'autocorrectionType. Le système bloque également l'accès au dictionnaire utilisateur et aux remplacements de texte.
Safe Keyboard empêche la fuite de données saisies via les mécanismes d'autocorrection. Si l'autocorrection était active pour un champ de mot de passe, le système pourrait sauvegarder le mot de passe saisi dans le dictionnaire utilisateur ou l'envoyer aux serveurs d'Apple pour l'entraînement du modèle. Safe Keyboard garantit que les données confidentielles ne quittent pas l'application.
Pour les applications financières, Safe Keyboard s'active automatiquement uniquement pour les champs avec secureTextEntry. Pour les champs de saisie des numéros de carte, des dates d'expiration et des codes CVV, le développeur doit désactiver manuellement l'autocorrection en définissant autocorrectionType = .no et keyboardType = .numberPad ou .phonePad.
À partir d'iOS 17, Safe Keyboard supporte la protection contre l'interception via les claviers tiers. Si l'utilisateur a installé un clavier depuis l'App Store, lors de l'activation de secureTextEntry, le clavier système remplace automatiquement le clavier tiers, même s'il était sélectionné par défaut. Cela garantit que les mots de passe sont saisis uniquement via le clavier système sécurisé.
La gestion de l'autocorrection en Swift s'effectue via la propriété autocorrectionType des objets UITextField et UITextView. La propriété est disponible en lecture et en écriture, et peut être modifiée dynamiquement en fonction du contexte de saisie. La configuration via Interface Builder est disponible dans l'inspecteur d'attributs sous le nom Correction.
let textField = UITextField()
textField.autocorrectionType = .no
Pour un formulaire de connexion, l'autocorrection doit être désactivée pour le champ de mot de passe et activée par défaut pour le champ de connexion. Le champ d'e-mail est également recommandé sans autocorrection, car le symbole @ et les noms de domaine sont souvent remplacés incorrectement. Pour le champ de nom d'utilisateur, l'autocorrection peut être activée si le nom d'utilisateur est un mot lisible.
class RegistrationViewController: UIViewController {
@IBOutlet var nameField: UITextField!
@IBOutlet var emailField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
nameField.autocorrectionType = .yes
emailField.autocorrectionType = .no
emailField.textContentType = .emailAddress
}
}
Pour UITextView, la configuration de l'autocorrection s'effectue de manière similaire. C'est particulièrement important pour les champs de saisie multiligne de commentaires, messages et notes, où l'autocorrection apporte le plus grand bénéfice mais peut aussi créer des désagréments lors de la saisie de termes techniques ou de code.
let textView = UITextView()
textView.autocorrectionType = .default
Pour les modifications dynamiques de l'autocorrection, utilisez le délégué UITextFieldDelegate. La méthode textFieldDidBeginEditing est appelée lorsqu'un champ est activé, et vous pouvez y modifier autocorrectionType en fonction du contexte actuel ou du rôle du champ, qui peut changer pendant le fonctionnement de l'application.
L'autocorrection doit être désactivée dans les champs où la précision des données saisies est critique et où le système ne peut pas déterminer correctement l'intention de l'utilisateur. Principaux cas : champs de mots de passe et de données sécurisées, champs de saisie d'adresses e-mail, chaînes de recherche, champs de saisie de code et de code de programmation, ainsi que les champs avec des formats de données non standard.
Pour les barres de recherche (UISearchBar), l'autocorrection est désactivée par défaut, ce qui correspond aux attentes des utilisateurs. Lors de la recherche, l'utilisateur peut saisir des mots incomplets, des termes techniques ou des requêtes dans différentes langues, et l'autocorrection ne ferait que gêner. De même pour les champs de saisie d'URL et de noms de domaine.
Dans les messageries et applications de communication, l'autocorrection est généralement activée, mais pour la saisie d'argot, d'abréviations et de vocabulaire informel, elle peut créer des désagréments. Dans ces cas, l'utilisateur peut désactiver l'autocorrection via les réglages du clavier, ou le développeur peut fournir un interrupteur directement dans l'interface de l'application.
Selon les Human Interface Guidelines d'Apple, l'autocorrection doit être désactivée pour tout champ où les données saisies peuvent ne pas être trouvées dans le dictionnaire système : numéros de commande, codes de réservation, identifiants, IMEI, adresses MAC. Si le champ accepte des données alphanumériques dans un format non standard — désactivez l'autocorrection.
Foire aux questions
Il n'existe pas de désactivation globale de l'autocorrection pour toute l'application. Il est nécessaire de définir autocorrectionType = .no pour chaque champ de texte individuellement ou de créer une sous-classe de UITextField avec une valeur remplacée.
Le simulateur utilise un modèle de saisie simplifié depuis le clavier Mac. Le modèle linguistique d'autocorrection n'est pas actif sur le simulateur — utilisez un appareil réel pour les tests.
L'utilisateur peut ajouter un mot via Réglages > Général > Clavier > Remplacement de texte. Il n'existe pas d'API pour que l'application ajoute programmatiquement des mots au dictionnaire d'autocorrection système.
Non, keyboardType n'affecte pas l'autocorrection. Même pour le clavier .numberPad, l'autocorrection peut être active si elle n'est pas explicitement désactivée via autocorrectionType.
Les claviers tiers ont leurs propres mécanismes d'autocorrection et n'utilisent pas le UITextAutocorrectionType système. Le comportement dépend de l'implémentation du clavier spécifique.
Résumé
Nous développerons une application mobile clé en main
IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.
Lisez aussi