Table des matières | Précédent | Suivant | Bas de page |
Sommaire |
---|
L'attribut inputmode
fournit une indication à l'agent utilisateur afin qu'il puisse sélectionner un mode d'entrée
approprié pour l'entrée de texte prévue dans une commande de formulaire associée. Le mode d'entrée peut être une configuration de clavier, un
éditeur de méthode d'entrée (aussi appelé processeur frontal) ou tout autre paramètre qui affecte l'entrée sur l'appareil, ou les appareils,
utilisé.
En se servant de l'attribut inputmode
, l'auteur peut donner à l'agent des indications qui facilitent la saisie du formulaire
pour l'utilisateur. Les auteurs devraient fournir des attributs inputmode
chaque fois que c'est possible, en s'assurant que les
valeurs utilisées couvrent un grand éventail d'appareils.
inputmode
La valeur de l'attribut inputmode
est une liste d'atomes, séparés par des blancs. Les atomes sont soit des séquences de
lettres alphabétiques, soit des adresse URI absolues. On peut distinguer ces dernières des premières en notant que les adresse URI absolues
contiennent un caractère deux-points :
. Les atomes sont sensibles à la casse. Seuls les atomes qui se composent de
lettres alphabétiques sont définis dans la présente spécification, dans
E.3 La liste des atomes (ou une suite de cette spécification).
Cette spécification ne définit aucune adresse URI à employer comme atome, mais elle permet à d'autres spécifications de le faire pour des raisons d'extensibilité. Cela peut devenir nécessaire pour les appareils dont les modes d'entrée ne peuvent pas être couverts par les atomes fournis ici. L'adresse URI devrait se résoudre en une description, lisible par un humain, du mode d'entrée associé à l'utilisation de l'adresse URI comme atome. Cette représentation devrait décrire le mode d'entrée indiqué par cet atome, si et comment, le cas échéant, il modifie, ou est modifié par, d'autres atomes.
Dès qu'il entre dans une commande de formulaire vide avec un attribut inputmode
, l'agent utilisateur devrait sélectionner
le mode d'entrée indiqué par la valeur de inputmode
. Les agents utilisateurs ne devraient pas se servir de
l'attribut inputmode
pour fixer le mode d'entrée lorsqu'ils entrent dans une commande de formulaire qui contient déjà du texte.
Pour fixer le mode d'entrée approprié lors de l'entrée dans une commande de formulaire contenant déjà du texte, les agents utilisateurs
devraient s'appuyer sur les conventions propres à la plateforme.
Les agents utilisateurs devraient mettre à disposition tous les modes d'entrée qui sont reconnus par le (ou les) système (d'exploitation)/appareil(s) sur lequels ils fonctionnent/auxquels ils ont accès, et qui sont installés par l'utilisateur pour un usage courant. Habituellement, il s'agit seulement d'un sous-ensemble restreint des modes d'entrée qui peuvent être décrits par les atomes définis ici.
Remarque :
On trouvera d'autres directives pour la mise en œuvre des agents utilisateur dans [UAAG 1.0].
L'algorithme simple suivant sert à définir comment les agents utilisateurs font correspondre les valeurs de l'attribut inputmode
aux modes d'entrée offerts. Cet algorithme ne doit pas forcément être mis en œuvre tel quel : les agents utilisateurs
doivent juste se comporter comme s'ils l'utilisaient. L'algorithme n'est pas conçu pour produire des résultats évidents
ou
souhaitables
pour chaque combinaison d'atomes possible mais un comportement correct pour des combinaisons d'atomes fréquentes
et un comportement prévisible dans tous les cas.
Premièrement, chacun des modes d'entrée disponibles est représenté par une ou plusieurs listes d'atomes. Un mode d'entrée peut correspondre à
plusieurs listes d'atomes ; par exemple, sur un système paramétré pour un utilisateur grec, les valeurs "greek upperCase
" et
"user upperCase
" correspondraient tous deux au même mode d'entrée. Deux listes ne seront pas identiques.
Deuxièmement, l'attribut inputmode
est examiné d'avant en arrière. Pour chaque atome t dans
l'attribut inputmode
, si, dans le reste de la liste d'atomes représentant des modes d'entrée disponibles, il existe une liste
d'atomes représentant des modes d'entrée disponibles qui contient t, alors toutes les listes d'atomes représentant des modes d'entrée
disponibles qui ne contiennent pas t sont retirées. S'il n'y a pas de liste d'atomes restante qui contient t,
alors t est ignoré.
Troisièmement, s'il reste une ou plusieurs listes d'atomes, toutes correspondant au même mode d'entrée, alors ce mode d'entrée est choisi. S'il ne reste aucune liste (ce qui veut dire qu'il n'y en avait aucune au départ), ou si les listes restantes correspondent à plus d'un mode d'entrée, alors aucun mode d'entrée n'est choisi.
Exemple : Supposons que la liste des listes d'atomes représentant les modes d'entrée disponibles soit
{"cyrillic upperCase
", "cyrillic lowerCase
", "cyrillic
", "latin
",
"user upperCase
", "user lowerCase
"} ;
les valeurs suivantes de l'attribut inputmode
sélectionneraient alors les modes d'entrée suivants : la valeur
"cyrillic titleCase
" sélectionne "cyrillic
", "cyrillic lowerCase
" sélectionne "cyrillic lowerCase
",
"lowerCase cyrillic
" sélectionne "cyrillic lowerCase
", "latin upperCase
" sélectionne "latin
",
mais la valeur "upperCase latin
" ne sélectionne pas "cyrillic upperCase
", ni "user upperCase
", si elle
correspond au même mode d'entrée, et elle ne sélectionne pas de mode d'entrée si les listes "cyrillic upperCase
" et
"user upperCase
" ne correspondent pas au même mode d'entrée.
Les atomes définis dans cette spécification se répartissent en deux catégories : les atomes d'écriture et les
modificateurs. Dans les attributs inputmode
, les atomes d'écriture devraient toujours être listés avant les modificateurs.
Les atomes d'écriture apportent une indication générale du jeu de caractères couvert par un mode d'entrée. Dans la plupart des cas,
les atomes d'écriture correspondent directement aux écritures Unicode [Unicode Scripts].
Certains atomes correspondent aux noms de bloc de la classe Java java.lang.Character.UnicodeBlock
([Java Unicode Blocks]) ou aux noms de bloc Unicode. Toutefois, cela ne signifie ni
qu'un mode d'entrée doivent permettre l'entrée de tous les caractères dans l'écriture ou le bloc ni qu'un mode d'entrée se limite seulement
aux caractères de cette écriture particulière. Par exemple, un clavier latin
ne couvre pas tous les caractères de l'écriture latin
et il inclut une ponctuation qui n'est pas assignée à l'écriture latin
. Ces noms d'écriture sont issus de la version 3.2 du
standard Unicode.
Atome de mode d'entrée | Commentaires |
---|---|
arabic | nom d'écriture Unicode |
armenian | nom d'écriture Unicode |
bengali | nom d'écriture Unicode |
bopomofo | nom d'écriture Unicode |
braille | sert à entrer des motifs braille (et non pour indiquer un appareil de saisie braille) |
buhid | nom d'écriture Unicode |
canadianAboriginal | nom d'écriture Unicode |
cherokee | nom d'écriture Unicode |
cyrillic | nom d'écriture Unicode |
deseret | nom d'écriture Unicode |
devanagari | nom d'écriture Unicode |
ethiopic | nom d'écriture Unicode |
georgian | nom d'écriture Unicode |
greek | nom d'écriture Unicode |
gothic | nom d'écriture Unicode |
gujarati | nom d'écriture Unicode |
gurmukhi | nom d'écriture Unicode |
han | nom d'écriture Unicode |
hangul | nom d'écriture Unicode |
hanja | sous-ensemble de hanutilisée pour écrire en coréen |
hanunoo | nom d'écriture Unicode |
hebrew | nom d'écriture Unicode |
hiragana | nom d'écriture Unicode (peut inclure d'autres écritures japonaises produites par conversion à partir de l'hiragana) |
ipa | alphabet phonétique international (IPA) |
kanji | sous-ensemble de hanutilisé pour écrire en japonais |
kannada | nom d'écriture Unicode |
katakana | nom d'écriture Unicode (en pleine chasse non en demi-chasse) |
khmer | nom d'écriture Unicode |
lao | nom d'écriture Unicode |
latin | nom d'écriture Unicode |
malayalam | nom d'écriture Unicode |
math | symboles mathématiques et caractères apparentés |
mongolian | nom d'écriture Unicode |
myanmar | nom d'écriture Unicode |
ogham | nom d'écriture Unicode |
oldItalic | nom d'écriture Unicode |
oriya | nom d'écriture Unicode |
runic | nom d'écriture Unicode |
simplifiedHanzi | sous-ensemble de hanutilisé pour écrire en chinois simplifié |
sinhala | nom d'écriture Unicode |
syriac | nom d'écriture Unicode |
tagalog | nom d'écriture Unicode |
tagbanwa | nom d'écriture Unicode |
tamil | nom d'écriture Unicode |
telugu | nom d'écriture Unicode |
thaana | nom d'écriture Unicode |
thai | nom d'écriture Unicode |
tibetan | nom d'écriture Unicode |
traditionalHanzi | sous-ensemble de hanutilisé pour écrire en chinois traditionnel |
user | valeur spéciale dénotant l'entrée indigènede l'utilisateur (par exemple, pour entrer son nom ou son texte dans sa langue d'origine). |
yi | nom d'écriture Unicode |
On peut ajouter des atomes modificateurs aux écritures sur lesquelles ils s'appliquent afin d'indiquer plus précisément le type de caractères attendu dans la commande de formulaire. Les claviers d'ordinateur personnel traditionnels n'ont pas besoin de la plupart des atomes modificateurs (en effet, leurs utilisateurs seraient dans une grande confusion si le programme décidait de changer la casse de son propre chef, avec l'exception possible de la touche de blocage en majuscules). Par contre, les atomes modificateurs peuvent se révéler très utiles pour fixer les modes d'entrée des petits appareils.
Atome de mode d'entrée | Commentaires |
---|---|
lowerCase | minuscules (pour les écritures bicamérales) |
upperCase | majuscules (pour les écritures bicamérales) |
titleCase | casse de titre (pour les écritures bicamérales) : les mots commencent par une lettre majuscule |
startUpper | commencer l'entrée par une lettre majuscule puis continuer par des lettres minuscules |
digits | chiffres d'une écriture particulière (par exemple, inputmode='thai digits') |
symbols | symboles, ponctuation (convenant à une écriture particulière) |
predictOn | prédiction de texte activée (par exemple, pour saisir du texte) |
predictOff | prédiction de texte désactivée (par exemple, pour les mots de passe) |
halfWidth | formes de compatibilité en demi-chasse (par exemple, Katakana ; à éviter) |
Les agents utilisateurs peuvent utiliser les informations disponibles dans une facette de modèle du schéma XML pour fixer le mode d'entrée.
Remarquez qu'une facette de modèle est une restriction forte sur la valeur lexicale d'un nœud de donnée d'instance qui peut définir
des restrictions diverses pour des parties différentes de l'élément de donnée. L'attribut inputmode
est une indication faible
à propos des sortes de caractères que l'utilisateur peut très probablement commencer à entrer dans la commande de formulaire.
L'attribut inputmode
est donné en plus des facettes de modèle pour les raisons suivantes :
L'ensemble des caractères admissibles défini dans un modèle peut être si vaste qu'il n'est pas possible de déduire un paramètre de
mode d'entrée raisonnable. Néanmoins, il y aura souvent une grande probabilité qu'un type de caractères soit entré par l'utilisateur.
Auquel cas, l'attribut inputmode
permet de fixer le mode d'entrée pour la commodité de l'utilisateur ;
Dans certains cas, il peut être impossible de dériver le paramètre de mode d'entrée à partir du modèle parce que le jeu de caractères
admis dans le modèle correspond étroitement à un jeu de caractères couvert par une valeur de l'attribut inputmode
. Toutefois,
une telle dérivation exigerait beaucoup de données et de calculs pour l'agent utilisateur ;
Les petits appareils peuvent laisser la vérification des modèles au serveur mais pourront aisément basculer vers les modes d'entrée qu'ils gèrent. Que l'utilisateur puisse facilement entrer des données revêt une importance particulière pour les petits appareils.
Voici l'exemple d'un formulaire pour entrer une adresse japonaise. Elle apparaît dans une forme tabulaire ; elle sera remplacée par une syntaxe réelle dans une version ultérieure de cette spécification.
Légende : | inputmode |
---|---|
Nom de famille | hiragana |
(en kana) | katakana |
Prénom | hiragana |
(en kana) | katakana |
Code postal | latin digits |
Adresse | hiragana |
(en kana) | katakana |
Courriel | latin lowerCase |
Téléphone | latin digits |
Commentaires | user predictOn |
Table des matières | Haut de page |