L’auto-révélation est la capacité d’une interface à signifier à l’utilisateur les interactions dans lesquelles il lui est possible de s’engager, ce qui couvre les actions à réaliser et les résultats qui peuvent être attendus de telles interactions. Le contre-exemple parfait d’une interface auto-révélatrice est l’utilisation de lignes de commandes.

Dans ce billet sur la gestion de l’ambiguïté, il a été argumenté que face à une multitude de fonctionnalités différentes options se présentent :

  • Associer une action à chaque fonction.
  • Associer un ensemble d’actions à réaliser de manière concomitante à chaque fonction
  • Associer un ensemble d’actions à réaliser de manière successive à chaque fonction

La contrainte première est l’encombrement : qu’il soit physique ou visuel limitant dans les deux cas le nombre de boutons et leur taille. La première option présente la meilleure auto-révélation mais est très encombrante. La seconde est au contraire très économe de ce point de vue comme l’illustrent les claviers à accords, mais a une capacité d’auto-révélation limitée : chaque bouton sert pour la réalisation de plusieurs accords, il est donc difficile de le libeller.

La troisième option, illustrée par l’utilisation de menus, permet autant l’auto-révélation qu’un faible encombrement. Le contrepoint en sont des séries d’actions qui peuvent être longues surtout si le nombre de clés disponibles (boutons, nombre d’item à chaque niveau de menu,…) est limité. Imaginons ainsi une interface possédant 6 clés, il est possible de choisir entre 6 menus différents, puis au second niveau il possible de choisir entre 6 options du menus et ainsi de suite. Avec un menu à 3 niveaux il possible de synthétiser jusqu’à 6x6x6=216 fonctions. Avec 3 clés il faut un menu de 5 niveaux pour offrir le même nombre de fonctions.

Il existe donc un compromis à réaliser entre auto-révélation, compacité et longueur des séquences d’actions. Sur la figure suivante apparaissent trois options envisagées :

Compromis

Ce compromis est structurant pour une interface et est d’une importance particulière dans le cas des interfaces mobiles. Le seul moyen de s’en échapper est de faire appel au contexte pour limiter les interactions possibles à celles qui sont pertinentes dans un état particulier du système.