Obligement - L'Amiga au maximum

Vendredi 24 mars 2017 - 05:09  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

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


Trucs et astuces

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


Glossaire

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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


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.

Application handicap UIK

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.

Application handicap UIK

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 !


[Retour en haut] / [Retour aux articles] [Article précédent]