cours0809/cours/ergo/20090213-Seance2

180 lines
7.7 KiB
Plaintext

Vendredi 13 février 2009
Cours d'ergonomie
M. PULLVERMULLER
====== Cours ======
Plusieurs critères après avoir fait des centaines et des centaines d'IHM : critères de Bastien
===== Compatibilité =====
Compatibilité entre le logiciel et son utilisateur (pour une cible particulière d'utilisateur)
* Adéquation du logiciel vis à vis de son utilisateur
* de ses habitudes de travail
* de son contexte (physique et social) de travail (simplifier la vie de l'utilisateur)
* La logique d'utilisation du système doit correspondre à la logique de l'utilisateur : par exemple des liens raccourcis pour des habitudes qu'on a quand on lance le logiciel
* Objectif : minimiser le transcodage de la connaissance entre le métier et le logiciel (utiliser le vocabulaire de l'utilisateur)
* Présenter les informations sous forme utilisable : parler le langage de l'utilisateur
===== Guidage =====
* Moyens mis en ½uvre pour orienter l'utilisateur et lui permettre de s'orienter :
* faire connaître l'état du système : quand on commence des billets SNCF, pendant la recherche il faut informer l'utilisateur qu'on est en cours de recherche
* établir des liens de causalité entre les actions de l'utilisateur et l'état du système
* Objectif : faciliter l'apprentissage et l'utilisation
* Deux niveaux de guidage :
* guidage explicite (on explique des choses à l'utilisateur via un message d'aide ou d'erreur)
* guidage implicite (on s'arrange pour guider l'utilisateur en agissant sur la présentation et l'organisation des informations)
==== Guidage par l'incitation (implicite) ====
Amener l'utilisateur à mener des actions spécifiques :
* Griser les commandes non disponibles
* Donner le format de saisie des données (explicite)
* Compléter les saisies partielles non ambiguës (exemple : Ja -> Janvier)
* Fournir une liste des saisies attendues (liste de sélection par exemple)
* établir des liens explicites entre les différentes valeurs à saisir
==== Guidage par groupement/distinction ====
* Par le format : distinguer visuellement les informations de types différents
* Par la position : rapprocher les commandes de même type (Functional chunking)
NB : Ordre d'utilisation par la fréquence de l'utilisation ou l'importance de l'utilisation !!!
==== Guidage : lisibilité ====
* Les minuscules sont moins discriminantes que les majuscules => dans une page Web il ne faut pas écrire en majuscule, sauf quand c'est indiqué de le faire !
==== Lisibilité et typographie ====
* Choisir une taille correcte : mini 8points, maxi 16 points
* Police de caractère en fonction des critères de lisibilité : une police de caractère à empattement prend plus de place qu'une police sans
* éviter plus de 3 polices de caractères différentes dans une même fenêtre (ou sur plusieurs fenêtres affichées simultanément)
Attention, très contextuel à l'applicatif.
===== Homogénéité =====
* La logique d'utilisation du système doit être constante, tant au niveau des procédures que de la représentation
* Graphsime, localisation, vocabulaire, etc.
* Homogénéité syntaxique des items de menu (courts de préférence)
Les trois petits points indiquent à l'utilisateur qu'il y aura une confirmation ou l'ouverture d'une nouvelle fenêtre.
===== Fléxibilité =====
Souplesse, flexibilité = Capacité de l'IHM à s'adapter à une population variée d'utilisateur :
* différents types d'utilisateurs
* différentes stratégies d'utilisation
Donner tout les moyens/procédures possibles pour atteindre le même objectif mais de façon différente.
Objectif : L'utilisateur choisit la procédure qui lui convient le mieux
Exemple:
* accès par menu, pour les débutants
* par raccourcis clavier (experts)
* Défauts utilisateur / Paramètrage => avec les macros on peut automatiser une tâche, ce qui assure une rapidité optimale !
===== Contrôle explicite =====
* Moyens pour permettre à l'utilisateur de maîtriser/contrôler les traitements réalisés par le système
* Les effets d'une commande doivent être prévisibles aux yeux de l'usager
* Objectifs : Meilleure compréhension du système (modèle mental exact)
* Facteur important d'acceptation du système
* Ex :
* Valider explicitement les commandes importantes ou difficilement réversibles
* Autoriser les interruptions
----
7 mai et 15 Mai TD
22 mai TP : présentation de notre première charte graphique
28 mai TP : pour seconde présentation
Mi - juin rendre la charte d'ergo, la charte graphique et quelques captures d'écran, une ou deux pages HTML de nos écrans montés
----
==== Actions explicites ====
Le système ne doit exécuter que des opérations demandées par l'utilisateur
Ex : action physique de validation, bouton ok ou clic.
===== Les erreurs =====
* Prévoir que l'utilisateur fera des erreurs
* Concevoir des moyens de pallier ce problème
* On doit pouvoir :
* protéger l'utilisateur contre des erreurs : détection de la part du système (saisie des dates, décimaux)
* l'avertir losqu'il a commis une erreur que l'on peut détecter
* corriger ou l'aider à corriger ses erreurs : guider l'utilisateur (étapes à suivre pour rectifier l'erreur)
* Minimiser le risque d'erreur améliore l'utilisabilité du système car les erreurs :
* rallongent le temps de réalisation de la tâche
* perturbent la planification
* diminuent la performance
* Prévenir des erreurs par une analyse des causes
Ne pas disperser l'utilisateur dans son objectif métier.
On doit toujours caller un libellé à gauche (plus simple à parcourir pour faire une recherche dans un écran).
==== Prévention ====
* Rendre clairement visible les changements de mode et les états du système
* éviter les erreurs cognitives (exemple : raccourcis clavier A, B, C, D pour Create, Delete, Append, Backup => il aurait fallu attacher Backup à B, etc.)
* éviter les incohérences
* Mettre en jeu la reconnaissance plutôt que le souvenir :
* Reconnaissance : choisir parmi plusieurs possibilités
* Souvenir : Se rappeler de la valeur à saisir
* La reconnaissance est moins sujette à l'erreur (exemple : utilisation des menus, listes)
* Erreurs motrices
* mouvements difficiles : F1, puis F12 : déplacement de la main d'un bout à l'autre du clavier
* contraintes temporelles
* faciliter le mouvement de la main
* augmenter la taille des objets sélectionnés
* Minimiser l'utilisaterion des modifieurs (Ctrl Alt Shift)
* Agrandir la taille des objets à sélectionner (éventuellement "au survol")
==== Comment gérer les erreurs ? ====
2 niveaux de protection contre les erreurs : prévention et détection (par correction)
Prévenir des erreurs en guidant l'utilisateur (Guidage/incitation) :
* Griser les commandes non disponibles
* Fournir la liste des valeurs possibles
* Indiquer les modes de fonctionnement du systèmes (feed-back)
Détecter les erreurs au plus tôt.
Faciliter la correction des erreurs :
* Message d'erreur pertinent :
* Nature de l'erreur
* Moyens de la corriger
* Rendre possible la correction
* accès et modification partielle => ne pas "scroller pour arriver à l'erreur"
Messages :
* mettre en évidence le champ erroné
* placer le message d'erreur là où l'utilisateur est sensé regarder
* Messages d'erreurs explicits, brefs, non réprobateurs et auto - suffisants
Correction de l'erreur :
* Retour en arrière ("Undo") avec Ctrl + Z
Rendre le message d'erreur **instructif**
Les messages doivent énoncer :
* quelle erreur a été détecté
* quel champ de saisie contient l'erreur
* quelle action correctrice doit être effectuée
===== Charte mentale =====