6.1. Recommandations de code utilisateur (User Code Recommendations)
🇬🇧 English
For many users, their nearest Internet-connected device will be their mobile phone; typically, these devices offer input methods that are more time-consuming than a computer keyboard to change the case or input numbers. To improve usability (improving entry speed and reducing retries), the limitations of such devices should be taken into account when selecting the user code character set.
One way to improve input speed is to restrict the character set to case-insensitive A-Z characters, with no digits. These characters can typically be entered on a mobile keyboard without using modifier keys. Further removing vowels to avoid randomly creating words results in the base 20 character set BCDFGHJKLMNPQRSTVWXZ. Dashes or other punctuation may be included for readability.
An example user code following this guideline, WDJB-MJHT, contains 8 significant characters and has dashes added for end-user readability. The resulting entropy is 20^8.
Pure numeric codes are also a good choice for usability, especially for clients targeting locales where A-Z character keyboards are not used, though the length of such a code needs to be longer to maintain high entropy.
An example numeric user code that contains 9 significant digits and dashes added for end-user readability with an entropy of 10^9 is 019-450-730.
When processing the inputted user code, the server should strip dashes and other punctuation that it added for readability (making the inclusion of such punctuation by the user optional). For codes using only characters in the A-Z range, as with the base 20 charset defined above, the user's input should be uppercased before a comparison to account for the fact that the user may input the equivalent lowercase characters. Further stripping of all characters outside the chosen character set is recommended to reduce instances where an errantly typed character (like a space character) invalidates otherwise valid input.
It is RECOMMENDED to avoid character sets that contain two or more characters that can easily be confused with each other, like "0" and "O" or "1", "l" and "I". Furthermore, to the extent practical, when a character set contains a character that may be confused with characters outside the character set, a character outside the set MAY be substituted with the one in the character set with which it is commonly confused; for example, "O" may be substituted for "0" when using the numerical 0-9 character set.
🇫🇷 Français
Pour de nombreux utilisateurs, leur appareil connecté à Internet le plus proche sera leur téléphone mobile; généralement, ces appareils offrent des méthodes de saisie qui prennent plus de temps qu'un clavier d'ordinateur pour changer la casse ou saisir des chiffres. Pour améliorer l'utilisabilité (améliorer la vitesse de saisie et réduire les nouvelles tentatives), les limitations de ces appareils doivent être prises en compte lors de la sélection du jeu de caractères du code utilisateur.
Une façon d'améliorer la vitesse de saisie est de restreindre le jeu de caractères aux caractères A-Z insensibles à la casse, sans chiffres. Ces caractères peuvent généralement être saisis sur un clavier mobile sans utiliser de touches modificatrices. En supprimant davantage les voyelles pour éviter de créer des mots au hasard, on obtient le jeu de caractères base 20 BCDFGHJKLMNPQRSTVWXZ. Des tirets ou d'autres signes de ponctuation peuvent être inclus pour la lisibilité.
Un exemple de code utilisateur suivant cette directive, WDJB-MJHT, contient 8 caractères significatifs et des tirets ont été ajoutés pour la lisibilité de l'utilisateur final. L'entropie résultante est 20^8.
Les codes purement numériques sont également un bon choix pour l'utilisabilité, en particulier pour les clients ciblant des locales où les claviers de caractères A-Z ne sont pas utilisés, bien que la longueur d'un tel code doive être plus longue pour maintenir une entropie élevée.
Un exemple de code utilisateur numérique contenant 9 chiffres significatifs et des tirets ajoutés pour la lisibilité de l'utilisateur final avec une entropie de 10^9 est 019-450-730.
Lors du traitement du code utilisateur saisi, le serveur doit supprimer les tirets et autres signes de ponctuation qu'il a ajoutés pour la lisibilité (rendant l'inclusion de tels signes de ponctuation par l'utilisateur facultative). Pour les codes utilisant uniquement des caractères dans la plage A-Z, comme avec le jeu de caractères base 20 défini ci-dessus, l'entrée de l'utilisateur doit être convertie en majuscules avant une comparaison pour tenir compte du fait que l'utilisateur peut saisir les caractères minuscules équivalents. Il est recommandé de supprimer davantage tous les caractères en dehors du jeu de caractères choisi pour réduire les cas où un caractère saisi par erreur (comme un caractère d'espace) invalide une entrée autrement valide.
Il est RECOMMANDÉ d'éviter les jeux de caractères qui contiennent deux caractères ou plus qui peuvent facilement être confondus les uns avec les autres, comme "0" et "O" ou "1", "l" et "I". De plus, dans la mesure du possible, lorsqu'un jeu de caractères contient un caractère qui peut être confondu avec des caractères en dehors du jeu de caractères, un caractère en dehors du jeu PEUT être substitué par celui du jeu de caractères avec lequel il est communément confondu; par exemple, "O" peut être substitué par "0" lors de l'utilisation du jeu de caractères numérique 0-9.