Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
En pratique : Créer une application pour handicapés avec UIK
(Article écrit par Philippe Ducalet et extrait d'Amiga News - juillet 1993)
|
|
Dans de nombreuses situations de handicap, la souris et le clavier permettent un accès aux principaux
logiciels grâce à quelques utilitaires et une adaptation du poste de travail.
Ces situations, sans que l'on y prête forcément attention, sous-entendent néanmoins la maîtrise d'un
certain nombre de capacités de la part de l'utilisateur (amplitude articulaire, force musculaire,
transposition du plan de déplacement horizontal de la souris au plan vertical de l'écran, coordination entre
l'oeil et la main, etc.).
Mais il reste que dans de nombreuses pathologies, les lésions altèrent ces capacités, dès lors,
l'usage des interfaces de dialogues classiques s'avère impossible. Tel est le cas dans de nombreuses
atteintes d'origines dégénératives ou traumatiques dont la gravité oblige à envisager l'utilisation
d'interfaces sophistiquées (reconnaissance vocale, mouvements de la tête ou des yeux...) ou au
contraire fort simple comme l'usage de contacteurs. C'est cette dernière situation que nous aborderons
dans cet article, qui est surtout réalisé à l'attention des développeurs, notamment de logiciels éducatifs,
pour qu'ils n'oublient pas d'inclure dans leur code une petite pensée pour les plus démunis !
Utilisation d'un seul contacteur
Ce contacteur peut revêtir la forme d'un simple bouton-poussoir du commerce ou d'une plaque sensible
à l'effleurement. Le problème posé pourrait être celui d'un jeune tétraplégique ne pouvant plus bouger
que l'index, en considérant à titre d'illustration l'activité d'écriture. Habituellement, pour écrire,
nous avons deux solutions simples :
- Un clavier, qui, quelle que soit sa taille, demande l'appui successif sur une touche parmi d'autres.
- L'emploi de logiciel comme ClicEd ou l'Écrivoir qui demande de positionner manuellement le curseur de
la souris sur la représentation graphique des touches d'un clavier.
Dans notre hypothèse, ces deux usages sont impossibles. Il est donc nécessaire que le logiciel assiste
l'utilisateur dans ses choix en présentant séquentiellement l'information. Cette manière de faire s'apparente
à la logique de sélection de nombreux logiciels sur CD-i ou CDTV, dans lesquels l'ordinateur "allume"
tour à tour chaque action possible.
Si l'on prend comme modèle le clavier habituel (AZERTY) il sera par exemple possible, de désigner
tour à tour chacune des cases (en suivant le sens de l'écriture du haut à gauche au bas à droite).
Dès lors, on constate que l'ordre dans lequel les lettres sont affichées ne convient pas. Le clavier
AZERTY correspond à un utilisateur à dix doigts et les localisations des touches aux fréquences
d'utilisation des lettres dans la langue française. L'ordre devrait être E, A, S, I, etc.
D'autre part, si le logiciel présente tour à tour chaque case, il convient que la vitesse de
l'automate de défilement soit paramétrable pour chaque utilisateur. De plus, certains utilisateurs handicapés présentent
une motricité désordonnée, des mouvements parasites : il peut alors arriver d'appuyer par mégarde sur le
contacteur de validation. Il faut donc filtrer les mouvements involontaires à l'aide de deux
paramètres supplémentaires :
- Le temps d'appui sur le contacteur (validation).
- Le délai entre deux appuis significatifs (relâchement).
Classiquement sur l'Amiga, ces valeurs sont exprimées en 1/50e de secondes. On s'aperçoit immédiatement que pour
atteindre la dernière case en bas à droite, il sera nécessaire d'attendre le passage sur l'ensemble de la grille,
ce qui à de quoi décourager les plus patients d'entre nous !
Toujours en utilisant un seul contacteur, il est possible de grouper les choix (dans notre exemple les touches)
en groupes homogènes, la sélection à lieu en deux temps, mais devient plus rapide. Ces groupes homogènes peuvent
être la ligne, la colonne, ou toute autre organisation logique. Pour étudier ces possibilités,
nous abandonnerons l'exemple du clavier pour utiliser la figure ci-dessous comme support d'exemple.
Cette figure propose 16 choix numérotés de 1 à 16, organisée en une matrice 4x4.
Le mode en ligne
Pour permettre d'aller plus rapidement à l'information pertinente, il est possible de désigner non
plus case par case mais ligne par ligne, d'attendre que l'utilisateur choisisse la ligne contenant
la case de son choix puis de désigner tour à tour les cases contenues dans la ligne sélectionnée.
Cette méthode est plus économique car nous n'avons au maximum que huit cycles pour arriver à un choix
définitif (nombre de colonnes + nombre de lignes).
Pour atteindre la case "16" dans le tableau, la séquence est la suivante (le chiffre entre [ ] désigne une proposition de choix) :
[1,2,3,4]-[5,6,7,8]-[9,10,11,12]-[13,14,15,16], appui sur le contacteur, puis [13]-[14]-[15]-[16],
appui sur le contacteur et sélection de la case [16].
Le mode en colonne
Il est identique dans son principe au mode précédent. Si l'on prend le même exemple pour atteindre la case [16],
la stratégie de désignation sera la suivante :
[1,5,9,13]-[2,6,10,14]-[3,7,11,15]-[4,8,12,16], appui sur le contacteur, puis [4]-[8]-[12]-[16], appui sur le contacteur
et sélection de la case [16].
Autre groupement logique
Toujours avec notre exemple, nous pourrions utiliser un bloc de 2x2 :
[1,2,5,6]-[3,4,7,8]-[9,10,13,14]-[11,12,15,16] appui sur le contacteur, puis [11]-[12]-[15]-[16],
appui sur le contacteur et sélection de la case [16].
Ces défilements ligne, colonne et bloc sous-entendent que l'utilisateur a acquis la compréhension de la "sériation".
Utilisation de deux contacteurs
Les stratégies de désignation de l'information restent identiques (ligne, colonne, bloc),
mais l'utilisateur dispose de deux contacteurs. Le premier, agissant à la manière d'un
bouton-poussoir lance le cycle de défilement, le relâchement interromp le cycle mais n'enclenche pas
la validation pour autant, c'est uniquement le second contacteur qui détient cette fonction.
Utilisation de cinq contacteurs
Ce mode est similaire à l'utilisation de la manette, excepté que la manette peut être remplacée
par cinq contacteurs indépendants. Quatre des contacteurs ont pour fonctions de se diriger vers
le haut, le bas, la droite ou la gauche, le cinquième contacteur à une fonction de validation.
UIK ! J'ai trouvé !
Implémenter ces modes de désignation avec tous les paramètres possibles dans un programme n'est pas
chose aisée, c'est pour cela que Jean-Michel Forgeas les a prévus dans son générateur d'application :
le maintenant célèbre User Interface Kit.
L'intérêt n'est d'ailleurs pas uniquement de pouvoir créer facilement des applications accessibles
ou spécifiques aux personnes handicapées, car ces modes de désignation sont pour certains d'entre
eux identiques à ceux utilisés sur le CDTV et la future console Amiga CD de Commodore... Les différents
paramètres sont directement accessibles depuis le programme UIKPrefs comme le montre la figure ci-après.
Les modes "Bouris" et "Joymouse" ont fait l'objet d'une présentation dans le dossier spécial
Handicap et Amiga.
Dans les modes 2 et 5 contacts, l'option "Automatique" libère l'utilisateur de l'appui
actif sur le contacteur, tandis que dans tous les modes l'option "Maintien" transforme la logique bouton-poussoir
du contacteur en logique d'interrupteur. Le mode de désignation standard dans UIK est l'entourage de la
zone par un rectangle de couleur redéfinissable, dont l'utilisateur peut paramétrer l'épaisseur dans
UIKPrefs qui tient compte du ratio du mode d'affichage.
UIK comporte des instructions permettant de contrôler ces modes par programmes grâce à des instructions
commençant par "UIK_Input" et des "tags" spéciaux ont été prévus pour intervenir au niveau de chaque objet.
A titre d'exemple, les lignes suivantes, m'ont été transmises par Jean-Michel Forgeas lui-même :
comment faire deux lignes de trois zones sélectionnables, et sélectionnables en deux fois (ligne puis case).
Ajout de deux boîtes qui serviront de parent à des sous-zones de sélection.
boîte_du_haut = UIK_AddObjectTags( "UIKObj_Box", fenêtre,
UIKTAG_OBJ_LeftTop,W2L(10,10),
UIKTAG_OBJ_WidthHeight, W2L(90,30),
UIKTAG_OBJ_BoxFl_Zoneable, TRUE,
/* pour rendre la boîte sélectionnable */ TAG_END ) ;
boîte_du_bas = UTK_AddObjectTags( "UIKObj_Box", fenêtre,
UIKTAG_OBJ_LeftTop, W2L(10,40),
UIKTAG_OBJ_WidthHeight, W2L(90,30),
UIKTAG_OBJ_BoxFl_Zoneable, TRUE,
/* pour rendre la boîte sélectionnable */TAG_END ) ;
/* Ajout de trois zones dans la boîte du haut */
for (abscisse=0; abscisse <90; abscisse += 30
UIK_AddObjectTags( "UIKObj_Boolean", boîte_du_haut,
UIKTAG_OBJ_LeftTop, W2L(abscisse,0),
UIKTAG_OBJ_WidthHeight, W2L(30,30), TAG_END ) ;
/* Faire pareil dans la boîte du bas ... *//*
|
Puis enclencher par programme le mode de sélection "1 contact" pour faire cycler un
rectangle sur les deux boîtes.
*/ UIK_Input_Set( uik, INPUTMODE_1CONTACT, -1, -1 )
|
Là ça y est, le rectangle cycle de la façon suivante : boîte du haut, boîte du bas, boîte du
haut, boîte du bas, etc. Le fait d'appuyer sur le contact sur la boîte du haut change la
liste de zones actives pour le cyclage : maintenant le rectangle de sélection entoure à tour
de rôle chacune des trois zones filles contenues dans la boîte du haut. Le fait d'appuyer à
nouveau sur le contact va provoquer la sélection d'une des trois zones puis remet le cyclage sur
les zones de base, soit ici les deux boîtes haut et bas.
Voilà ! C'est simple. J'espère que ces quelques exemples vous sensibiliseront au développement
d'applications pour les personnes handicapées. Ce ne sont pas les idées qui me manquent !
|