• Aucun résultat trouvé

II. Boîtes à outils d’interacteurs plastiques

II.2. B. Multimodal Widget

Constatant que les situations d’interaction peuvent être variées (à l’intérieur, dehors,

environnement calme/bruyant, seul/en groupe, etc.), l’auteur identifie la nécessité pour

une application de pouvoir être rendue perceptible à l’utilisateur au travers de différents

sens humains (visuel, auditif, tactile, etc.). L’auteur propose une BàO d’interacteurs

multimodaux (mettant en jeu différents sens humains) visant à faciliter la construction

de telles applications. Les multimodal widgets [30-31Crease 2000-2001] répondent à

quatre requis :

• Un widget doit pouvoir être rendu simultanément dans plusieurs modalités.

• Un widget doit pouvoir sélectionner la modalité la plus adaptée au contexte

d’usage et limiter l’utilisation d’une modalité n’ayant pas les ressources

nécessaires.

• Le feedback d’un widget doit pouvoir être facilement changé pour une ou

plusieurs modalités sans que cela ait des effets sur les autres.

• Les feedbacks des différentes modalités doivent être cohérents non

seulement pour un même widget mais aussi entre widgets.

Du point de vue du développeeur, la BàO des multimodal widgets reprend l’API de la

BàO SWING. Les habitudes du programmeur sont ainsi préservées. Par exemple, pour

créer un bouton sous SWING et l’ajouter à un panel, le code est le suivant :

JButton button = new JButton("Progress"); panel.add(button);

Avec les multimodal widgets, l’exemple équivalent est le suivant :

MButton button = new MButton("Progress"); panel.add (button.getTheWidget());

La Figure II-23 fournit l’architecture d’une application utilisant les multimodal widgets.

Le feedback controller assure que les modalités sont traitées d’égales à égales et que

chaque widget est multimodal. Il traduit les événements reçus en termes indépendants

de la modalité et les transmet aux modality mappers.

Le ressource manager assure la connaissance des ressources disponibles et de leur

adéquation à l’environnement. Il reçoit des informations de la part de trois modules : le

control panel (préférence de l’utilisateur quant à la modalité à utiliser) ; les output

modules (indiquent si les ressources sont suffisantes pour rendre les widgets via une

modalité, compte tenu de l’importance accordée par l’utilisateur à celle ci) et d’autres

applications (via son API, ces applications peuvent renseigner le système sur l’état de

l’environnement).

Les outputs modules et le control panel assurent en outre que le feedback des widgets

pourra être facilement changé. En effet, les outputs modules peuvent facilement être

remplacés au travers du control panel.

Enfin, la cohérence de l’ensemble est assurée par le rendering manager. Le rendering

manager peut modifier un son pour qu’il n’interfère pas avec un autre (en changeant le

timbre par exemple). De même, il assurera qu’un bouton texturé comme du bois n’est

pas associé à un son métallique.

La Figure II-24, extraite de [30 Crease 2000] illustre le comportement de l’architecture

dans le cas d’une souris survolant la représentation graphique d’un bouton. Il s’agit

d’associer un feedback à cet événement : il combine ici le graphique et le vocal.

Figure II-24 : L'architecture en action sur l’exemple du feedback lors du passage de la souris sur un bouton.

La Figure II-25 extraite de [30 Crease 2000] montre différents rendus graphiques pour

une jauge. La sélection du rendu se fait en fonction, d’une part, de l’importance donnée

à la modalité graphique pour ce widget et, d’autre part, des ressources écran disponibles.

C’est au concepteur de widgets de fournir les différentes présentations.

Figure II-25 : Différentes présentations d'un même widget "jauge". Elles consomment plus ou moins de surface d’affichage.

Les multimodal widgets offrent une BàO permettant au concepteur de construire

simplement des IHM qui pourront être rendues dans plusieurs modalités (c'est-à-dire

mettant en jeu différents sens humains). Le style de programmation est très proche de

SWING. La surcharge par rapport à SWING est pratiquement nulle puisque le

programmeur n’a pas à se soucier du rendu multimodal. Il est pris en charge par le

système. La cohérence entre widgets et entre modalités est assurée par le rendering

manager. Le choix de privilégier telle ou telle modalité est, en partie, laissé à

l’utilisateur via le control panel.

Toutefois, en voulant rendre la programmation d’IHM multimodales aussi proche que

possible de la programmation SWING, les multimodal widgets se trouvent confrontés

aux limites de SWING en terme d’expressivité des IHM :

• Les opérateurs entre tâches ne sont pas modélisés. Les tâches ne le sont pas

vraiment.

• Les widgets n’ont pas de sémantique explicite. On peut ainsi douter que le

rendering manager sera capable de maintenir des cohérences du type « tous

les widgets associés au concept C1 doivent être cohérents entre eux et

différenciables de ceux associés au concept C2 ».

• L’exemple de la jauge semble montrer qu’un certain polymorphisme est

possible au sein d’une même modalité. Cependant, c’est au concepteur de

l’output module de ce widget de fournir ces présentations. Il semble alors

difficile pour un autre concepteur d’ajouter de nouvelles présentations à un

output module déjà existant.

• Les outputs modules graphiques sont intrinsèquement liés à SWING. Il

semble difficile de changer de BàO, par exemple pour créer du post WIMP.

Tableau II-7 : Grille d'analyse des Multimodal Widgets.

Niveau sémantique Les multimodal widgets sont plus une architecture qu’une BàO. Il

n’y a que deux widgets : le bouton et la jauge. Il est donc difficile de

caractériser le niveau sémantique. Toutefois, on peut dire que les

widgets sont au moins de niveau AUI puisqu’ils n’ont pas de

représentation intrinsèque.

Empreinte

technologique

Les widgets peuvent être rendus suivant différentes modalités dans

différentes technologies. Cela est illustré avec un rendu vocal et un

rendu graphique.

Extensibilité Il est possible d’étendre les rendus via l’ajout d’output modules et de

modality mappers.

Malléabilité Il est possible de changer dynamiquement d’output modules.

Contrôlabilité /

Prévisibilité du rendu

Le contrôle est semi automatique. L’utilisateur pondère les

modalités à l’aide du « control panel ». Le système modifie le rendu

en conséquence. Le rendu est dépendant des output modules, ceux-ci

pouvant implémenter plusieurs rendus.