B3: Systematisch ontwikkelen van informatiesystemen Bijlage F: User Interfaces Bijlage F: User Interface : het contactvlak tussen mens en applicatie F.1 Inleiding Helaas treffen we maar al te vaak computer-applicaties met slecht ontworpen user interfaces aan. Waar is de kwaliteit van een user interface (de visuele ‘contactlaag’ tussen applicatie en gebruiker)van afhankelijk en hoe kunnen we die verbeteren? We stellen deze vraag binnen de context van deze cursus. Dat betekent, dat we ons richten op (‘zakelijke’, administratieve) informatiesystemen en dus nìet op bijvoorbeeld interactieve spelletjes met een sterk grafische user interface vol geplande verrassingseffecten. Voor informatiesysteem-applicaties hebben we bij het ontwerpen van de user interface te maken met twee deels samenhangende aspecten: • de eisen aan de user interface, gezien vanuit de organisatie, voor het (efficiënt) afhandelen van de taken die nodig zijn voor het goed functioneren van die organisatie • de eisen aan de user interface, gezien vanuit de (user-) ‘mens’, waarvoor allerlei psychologische wetten gelden, om die mens op een (zowel efficiënte als zeker ook) prettige wijze met het systeem te laten werken. Uiteraard beïnvloeden deze twee aspecten elkaar gedeeltelijk (b.v. als een gebruiker snel geïrriteerd raakt vanwege die ‘#@$@!! interface’, dan gaat dat waarschijnlijk ten koste van zijn/haar productiviteit ‘voor de baas’). Ontwerpen user interface Schematisch (zie figuur hiernaast): Beschouw eisen vanuit organisatieoogpunt We gaan in dit hoofdstuk op de consequenties van een aantal van de aangeduide aspecten in en starten daarbij met de eisen vanuit de ‘user’. - taken/functies - efficiëntie - standaarden - etc. Beschouw eisen vanuit de ‘user’ als mens - modelvorming - werking geheugen - gemak/plezier i/h werk - etc. Figure 1 Hoofdaspecten bij het ontwerpen van een user interface F.2 Het vormen en aanbieden van een geschikt conceptueel model Als iemand je een hamer in de hand duwt en vraagt daarmee een brief te schrijven, dan kijk je waarschijnlijk vreemd op. Een gebruiker heeft een bepaald idee van wat je met een hamer kunt doen en een ander idee van wat je nodig hebt voor het schrijven van een brief. En … als die twee ideeën niet op elkaar aansluiten, dan kan hij met het aangereikte gereedschap niet uit de voeten voor het uitvoeren van de gestelde taak. Zo’n begripsmatig model van wat je ergens mee kunt en wat een bepaalde taak inhoudt, groeit doordat de betreffende persoon geleidelijk aan kennis en/of ervaring met het gereedschap of systeem opdoet. Het bij de gebruiker opbouwen van een consistent model moet bij voorkeur een verder bouwen zijn op kennis die de gebruiker al heeft over zijn organisatie en de van hem/haar verwachte activiteiten en zoveel mogelijk aansluiten bij al aanwezige modellen. Een begripsmatig model hoeft echt niet de (technische) werkelijkheid correct weer te geven; wel moet dat model zodanig zijn, dat de gebruiker erdoor adequaat het functioneren van het systeem ‘aanvoelt’ en er goed mee kan werken. Een model van een systeem moet zodanig zijn, dat de gebruiker zèlf kan beredeneren wat gedaan moet worden om een bepaalde taak uit te voeren. Alles wat je aandraagt om een conceptueel model bij de gebruiker op te bouwen moet consistent zijn; er mogen beslist geen tegenstrijdigheden in zitten. Dat opbouwen van een model kan/moet op meerdere manieren (al-dan-niet gelijktijdig of achter elkaar) gebeuren; dat kan zijn via een voorbereidende gebruikerscursus, een gebruikers-manual bij het systeem, door teksten en/of figuren op het beeldscherm, door help-informatie, door statusboodschappen etc., etc.. Geen van die manieren mag iets in zich hebben wat in strijd is met iets anders in het model. 1 B3: Systematisch ontwikkelen van informatiesystemen Bijlage F: User Interfaces Een model moet zodanig zijn, dat de gebruiker bepaalde verwachtingen over het gedrag van dat systeem mag hebben. Dat betekent o.a. dat je uniformiteit moet handhaven tussen de verschillende user screens binnen je applicatie. Als de ene keer de ‘OK’-knop rechtsboven zit en de andere keer linksonder, dan komt het bij de gebruiker over als een chaotisch systeem, waarvan hij zich echt geen (verwachtings)model voor kan vormen van hoe het [volgende scherm] zich zal gedragen. Heel zinvol en dus belangrijk daarbij is, dat je met je schermontwerp e.d. aansluit bij bestaande, gangbare standaarden die binnen die organisatie gebruikt worden en niet zelf iets verzint. Op zo’n manier kan de gebruiker zijn opgedane kennis en ervaring met andere systemen gebruiken voor het zich vormen van een model voor het kunnen gebruiken van de door jou ontworpen applicatie. F.3 Een stukje psychologie 1 met betrekking tot de ‘user’ In de psychologie maakt men voor de werking van het menselijke geheugen een onderscheid tussen ‘korte termijn geheugen’ en ‘lange termijn geheugen’. Het korte termijn geheugen wordt onder meer gebruikt voor berekeningen en tussenresultaten en voor het vasthouden van ‘doelen’ (“Waar ben ik [in deze applicatie]?”) en van stappen om zulke doelen te bereiken. Nieuwe informatie zal reeds in het korte termijn geheugen opgeslagen informatie verdringen (=wissen). Een aantal tips die voortkomen uit de karakteristieken van het korte termijn geheugen zijn: • breek taken met veel stappen op in kleinere taken • probeer zoveel mogelijk gebruik te maken van het groeperen van gelijksoortige taken • voorkom onnodige [van een gebruiker] aandachtvragende activiteiten • voorkom dat een gebruiker zèlf dingen moet gaan onthouden (of nog erger: moet opschrijven) • voorkom eindeloze dialogen; nest dialogen niet dieper dan drie of vier vensters • geef een gebruiker regelmatig (tussendoor) de gelegenheid het gedane werk te bewaren • voorkom een situatie waarin de gebruiker iets op moet zoeken op een scherm, dit moet onthouden, menu omhoog, menu omhoog, menu naar rechts, vierde optie, twee schermen door en daar het [onthoudene] weer moet intypen (zonodig kan hiervoor een oplossing zijn om dat kopiëren te laten ondersteunen door het klembord-mechanisme van Windows) • maak zonodig gebruik van ‘wizards’ om het korte termijn geheugen te ontlasten. Er zijn twéé manieren om iets uit het lange termijn geheugen te halen: ‘herkennen’ en ‘herinneren’. Herkennen: • kiezen uit een aantal alternatieven • herkennen in een bepaalde context • pas op voor near misses b.v. “Wat is de hoofdstad van Hongarije?” a) Praag b) Bucharest c) geen van beide (let op de spelfout in optie ‘b’ !) maar ook: ‘Accept’ versus ‘Apply’ Herinneren: • je weet het of je weet het niet [meer] b.v. “Wat is de hoofdstad van Australië?” maar ook zeker weten, dat je het niet weet: “Wat is de geboorteplaats van Erwin Krol?” • je weet dat je het weet, maar je kunt er niet opkomen • gebruikmaken van ‘ezelsbruggetjes’ Tips die voortkomen uit de karakteristieken van het lange termijn geheugen zijn: • maak zoveel mogelijk gebruik van ‘herkenning’ (maar pas op voor near misses) • ‘zichtbaarheid’ [zie verderop bij kwaliteitscriteria] vergroot de kans op herkenning F.4 Het ontwerpproces van een (grafische) user interface Uit de eerder genoemde cursus van InfoSupport BV halen we voor het gehele GUI-(Grafische User Interface)ontwerpproces het volgende schema: Definieer Gebruikers & Bruikbaarheid Modelleer gebruikerstaken Modelleer gebr. objecten Definieer stijlgids Ontwerp GUI Prototype GUI Evalueer GUI Figure 2 Ontwerpproces Grafische User Interfaces (Bron: InfoSupport) 1 Uit ‘Cursus Ontwerpen van Grafische User Interfaces; Achtergronden’ van InfoSupport B.V. 2 B3: Systematisch ontwikkelen van informatiesystemen Bijlage F: User Interfaces Een aantal van deze activiteiten (en/of hun onderdelen) uit het schema lichten we hier toe. a) Taakanalyse Steeds wordt zeer sterk benadrukt, dat voor het ontwerpen van een GUI de systeemontwikkelaars zich moeten baseren op de manier waarop gebruikers naar het systeem (gaan) kijken. Het GUI-ontwerpproces begint daarom (‘uiteraard’) met een ‘Taakanalyse’-deel voor het analyseren en modelleren van gebruikerstaken. Allereerst vragen we ons hierbij af welke gebruikersgroepen met het systeem zullen werken en leggen we (b.v. in tabelvorm) voor iedere gebruikersgroep de ‘gebruikers-karakteristieken’ vast (met daarbij zaken als: - ervaring; - frequentie van gebruik; - aantal gebruikers; - werken deze gebruikers ook met andere programma’s en zo ja welke; - gebruikerstaken). Bij de ‘bruikbaarheids-eisen’ kunnen aspecten komen als ‘tevredenheid met het systeem’, het ‘aantal fouten’ dat (b.v. per 1000 keer gebruik van een bepaald invulscherm) hooguit mag worden gemaakt en ‘performance’ (b.v. hoeveel tijd is nodig om een bepaalde taak uit te voeren [let op: het gaat hierbij niet om de snelheid van de computer, maar om b.v. de vraag hoeveel tijd een gebruiker er voor nodig heeft een invulformulier op het scherm in te vullen; kortom: als zo’n invulscherm onlogisch is opgebouwd en de gebruiker van hot-naar-haar op het scherm moet klikken en in die tijd veel ‘muiskilometers’ moet afleggen, dan zal de uitvoering van zo’n gebruikerstaak te langzaam gaan]). Belangrijk is het ook om vast te leggen hoe het [al dan niet] voldoen aan deze criteria later gemeten zal worden (b.v. met een enquête, met het meten van hoelang een bepaald soort taak gemiddeld duurt etc.) en dat die meting inderdaad gepland en uitgevoerd wordt. b) Definieer stijlgids Al eerder kwam het belang van een consistent model ter sprake. Een gebruiker kan veel sneller het gebruik van (lees: de van hem/haar verwachte acties bij) een opkomend scherm zien, indien zaken op de vertrouwde manier gepresenteerd worden. Standaarden hiervoor kunnen op bedrijfsniveau zijn vastgelegd (waarbij het kan zijn, dat men zich bij dat bedrijf voor het grootste deel aansluit bij bijvoorbeeld de ‘gangbare’ MS-Windows-standaard, al dan niet voorzien van eigen bedrijfslogo e.d.). c) Dialoog ontwerpen De opzet en inhoud van het user interface wordt gebaseerd op gebruikers-objecten en gebruikerstaken. Bij alle gebruikerstaken wordt vastgesteld welke vensters voor uitvoering van zo’n taak nodig zijn en wat voor navigatie tussen deze vensters hiervoor nodig is. De look and feel van het user interface zal/moet afgeleid zijn van de eerder gedefinieerde stijlgids. d) Vensterontwerp: besturingselementen (‘Controls’) in vensters We geven hier een indeling in de onder MSWindows bekende control-elementen, gebaseerd op onderscheid in gebruikersdoelen: 1. opdracht controls gebruikt om functies te initiëren zoals: - menukeuzes / - drukknoppen / - buttcons en: - ‘alles wat rechthoekig is en een schaduw heeft’ 2. selectie controls gebruikt om opties te kiezen of gegevens te selecteren zoals: - keuzelijst (listbox) / - keuzelijst (‘listview’ ; mogelijk in Windows 9x; met ‘earmarking’) / - combo box / - hiërarchielijst (treeview) / - check box / - radio button / - status buttcon en / - radio buttcon 3. invoer controls gebruikt om gegevens in te voeren zoals: - tekstinvoervelden / - combo box / - spin control / - rich text velden 4. weergave controls gebruikt om visuele weergave van gegevens, en nìet de gegevens zèlf, te manipuleren, zoals: - scroll bars / - split bars Probeer voor jezelf het verschil in eigenschappen en daardoor in gebruik van deze besturingselementen goed duidelijk te krijgen. Vraag je daarbij ook af wat in een bepaalde situatie de voor en nadelen van bijvoorbeeld de genoemde invoer controls zijn en wanneer je voor de ene en wanneer je voor de andere invoer control zult kiezen. Let bij het plaatsen van meerdere besturingselementen in je scherm beslist ook op de verderop ter sprake komende ‘Grouping Fields within the Working Area’ (zie aldaar). 3 B3: Systematisch ontwikkelen van informatiesystemen Bijlage F: User Interfaces F.5 Algemene kwaliteitscriteria voor user interfaces De belangrijkste criteria die in het algemeen gebruikt worden om de kwaliteit van een user interface te bepalen zijn: 1. zichtbaarheid (visibility): hoe gemakkelijk kan een gebruiker zien wat gedaan kan worden en hoe dat gedaan moet worden? Denk hierbij aan een aspect als: “Krijgt de gebruiker een overzicht te zien van de mogelijkheden die er zijn of zijn er soms nog mogelijkheden die hij niet kent en zitten die ergens ‘verborgen’?” 2. terugkoppeling (feedback): hoe gemakkelijk en hoe snel is het resultaat van gebruikersacties vast te stellen? Denk hierbij bijvoorbeeld aan aspecten als: “Krijgt de gebruiker wel een bevestiging dat een actie waartoe hij opdracht heeft gegeven inderdaad wordt uitgevoerd?” (b.v. wordt er na een ‘print’-commando inderdaad iets naar de printer gestuurd en zo ja: wat en/of hoeveel pagina’s etc.). “Is de gebruiker nu wel of niet succesvol ingelogd op een netwerk?” etc.. 3. aansluiting (mappings): sluit de gewenste functie aan bij de benodigde actie? Vraag je af of de gebruiker na het activeren van een bepaalde actie wel te zien krijgt wat hij nodig heeft of moet de gebruiker (in extreme gevallen) nog handmatig iets anders doen (wat gemakkelijk ook door de computer had kunnen worden gedaan). Bijvoorbeeld: stel je voor dat je ‘even op het Web’ wilt kijken of het gemiddelde voor je uitwerkingen van de studietaken wel voldoende is en je krijgt dan alleen een beeldscherm te zien met daarop een overzicht van de afzonderlijk behaalde resultaten per studietaak, zodat je daarna nog handmatig de getallen moet intikken en/of optellen om het gemiddelde te bepalen (dat ‘gemiddelde’ was eigenlijk hetgeen je wilde). 4. toepasselijkheid: hoe vanzelfsprekend is het dat een bepaald ‘ding’ (lees: schermobject) gebruikt wordt voor een bepaalde actie? Vraag je af of je gebruik maakt van een goede analogie. Als je een waterkraan ziet met ‘vleugeltjes’ er boven op, dan verwacht je min of meer, dat je aan die kraan moet draaien om er water uit te laten lopen en nìet dat je daarvoor op die kraan hard naar beneden moet duwen om water te krijgen. F.6 Practische aspecten voor beeldschermindeling e.d. We geven hier een aantal aspecten die in de praktijk toe te passen zijn bij het ontwerpen van een user interface. De vuistregels uit het vierde onderdeel over de ‘Form Design Guidelines’ mogen echter pas toegepast worden nadat eerst een Taakanalyse is gemaakt voor de werksituatie van de gebruikers (zie eerder in dit hoofdstuk). De volgende stukken zijn vanaf het WWW opgehaald via de HomePage van Microsoft Corporation en zijn onderdeel van Microsoft’s ‘User Interface Design Guidelines’. Consulting Services: User Interface Design Guidelines Microsoft Limited / Microsoft Place / Winnersh, Wokingham / Berks. RG11 5TP / U.K. 1.6.1 Introduction This document contains high-level principles and guidelines for the design of user interfaces. While it is aimed primarily at developers of graphical user interfaces within the Microsoft® Windows environment, many of the guidelines are equally applicable to other styles of user interface, such as traditional character-based user interfaces. Note that simply adhering to the guidelines in this document will not guarantee that the system produced will be "easy to use". The screen layout, and the consistency of screen layouts within and between applications, is only one component of the perceived usability of the system. Equally important, if not more important, is the matching of the task flow in the user interface to the way in which users carry out, or want to be able to carry out, their work tasks. etc. … 4 B3: Systematisch ontwikkelen van informatiesystemen Bijlage F: User Interfaces 1.6.2 High-level Design Principles This section describes the high-level principles for the design of user interfaces. These principles apply to all user interfaces without regard to the style of interface being implemented. The following eight principles incorporate the key considerations in user interface design: i. Consistency: A user interface design should be conceptually, linguistically, visually, and functionally consistent within and between applications. Where real world analogies or metaphors are used, they should behave consistently with their real-world counterparts. Care should be taken to ensure that any analogies used are appropriate, and are understood by all target user groups. ii. Clarity: By looking at the screen, its operation should be obvious to the user. Simple tasks should be kept simple, and complex tasks made possible. iii. Feedback: Feedback to users should be obvious and immediate. If users perform an operation and see no immediate feedback, they are likely to keep performing it until something happens. Graphical feedback is particularly effective, but textual and auditory feedback are also useful. iv. Aesthetics: Both aesthetic appeal and visual clarity can be substantially enhanced by attention to basic graphic design principles concerning areas such as spatial grouping, color contrast, and threedimensional representation. The best interfaces combine powerful yet accessible functionality with a pleasing appearance. v. Directness: An interface should give users direct and intuitive ways to accomplish their tasks. Directly manipulating objects, while not appropriate in all situations, can often be used to simplify tasks that require complex commands. Direct manipulation eases learning for novices and is efficient for the expert user. vi. Forgiveness: Users are human; they make mistakes. The interface should handle all predictable mistakes without catastrophic results. Users like to explore an application and learn by trial and error. The interface should support experimentation. vii. User Control: The user should always be in control of the application, not vice versa. The user should initiate and control all actions. There should be no changes at all without the user's permission. viii. Human Strengths and Limitations: Respect human weaknesses, such as memory, logic and the ability to carry out complex calculations. Make use of strengths such as pattern recognition. The user should not be required to recall complex sets of options or commands. Instead, the available choices should be explicitly presented. Recognizing items is much easier than recalling them. In order to design a system which users consider "easy to use", the design team needs to ensure that: 1. the system design is "fit for purpose" - i.e. the features provided and the way in which they are presented match the requirements of the users, the tasks they carry out, and the environment they work in (as determined through use of the User Interface Design Process illustrated in Figure 1.) 2. its user interface is designed according to the principles listed above, and is consistent with the user interface style of other applications in the users' environment. A well-designed, well-presented, consistent user interface will increase the extent to which users consider the "system" to be easy to use, and is more likely to generate the following feelings among users: 1. Mastery of the system 2. Competence in task performance 3. Ease in learning basic features and assimilating advanced features 4. Confidence in capacity to retain mastery 5. Enjoyment in using the system 6. Eagerness to show-off 7. A desire to explore The remainder of this document provides guidelines which suggest methods of applying the eight highlevel principles of user interface design to specific common elements of a user interface. 1.6.3 Form Design Guidelines This section contains high-level guidelines for the design of displays which are similar in appearance to, but have none of the conventional constraints of, paper forms. Such displays can be used in a user interface for collecting, viewing and updating structured information. In all types of user interface, a form consists of a number of "fields" into which information is entered. Each field should be labelled, to inform users which item of information is required in that particular field. In character-cell interfaces, fields are usually limited to text entry areas, where the user is required to type in the information required. In graphical user interfaces, there is a wide variety of controls that can be used to present lists of choices to users in addition to controls that allow them to type in free-form information. Information regarding the use of such controls (e.g. radio buttons, check boxes, list boxes, drop-down list boxes, combo-boxes, 5 B3: Systematisch ontwikkelen van informatiesystemen Bijlage F: User Interfaces etc.) can be found in The Windows Interface: An Application Design Guide, published by Microsoft Press, and in IBM's Common User Interface (CUA) Design Guidelines. N.B. Vanwege zijn practische belang is de volgende sub-paragraaf in een groter lettertype opgemaakt en zijn een aantal belangrijke aspecten cursief aangegeven. Hou telkens goed in de gaten wáár het betreffende gebied in een window geplaatst wordt. 1.6.3.1 Form Layout Form displays should contain four distinguishable areas, which should be placed in a consistent location on all screens. These four areas are: i. Identification area: the identification area should be located in the topmost portion of the screen display. It should contain information to identify the system and subsystem currently being used, and any other information which is important to the user's current context. The information in the identification area should be protected so that the user is unable to modify it. ii. Work area: the work area normally forms the largest part of the screen display, and is located between the identification area and the message area. The work area contains all input, output, and constant fields required to perform a task. Whenever possible, the entire work area for a task should be displayed simultaneously; where this is not possible, the user should be provided with a mechanism (such as scrolling or paging) to select the part of the display required. iii. Control area: the control area is used for dialogue control, for example to enter menu commands. Depending on the style of user interface being used, this could be located in one of several positions on the screen. In the Windows environment, the primary control area would be the menu bar, located towards the top of each screen between the identification area (title bar) and the main work area. If function keys or a command line interface is being used, the control area is more commonly located at the bottom of the work area, usually just above the message area. iv. Message area: the message area is used to display various types of messages to the user, such as error messages, informational (status) messages, alerts and acknowledgements. As with the control area, the style of user interface being implemented will determine the most suitable location for the message area. Normally, it is located below the work area, often on the bottom-most line of the display. In a Windows environment, the message area for non-critical, informational messages is the status bar at the bottom of a window, whereas more important messages are presented in a pop-up dialogue box over the main work area. 1.6.3.2 Grouping Fields within the Working Area Items within the work area should be grouped in a manner which facilitates task completion. Specific recommendations for grouping items can not be given, as the optimum grouping for any display is dependent upon the tasks to be completed from that display and the requirements and previous experience of the users of that particular part of the system. However, the following factors should be considered when deciding how to group information: • sequence of use during the task • function (i.e. information grouped by functional class) • frequency of use • importance • habitual sequence (e.g. street followed by town followed by county) • location of items on related format (e.g. consistency with previous system or paper equivalent) • alphabetic, numerical, or chronological ordering Related fields should be grouped together so they are easily recognisable as being a group. Groups of fields can be given a title label, and should be separated from other groups using blank space or a frame. 6 B3: Systematisch ontwikkelen van informatiesystemen Bijlage F: User Interfaces 1.6.3.3 Displaying Fields The following guidelines should be followed when designing the appearance of a forms: • Attention should be given to the visual layout of the form. Alignment creates a feeling of order and comprehensibility. A uniform distribution of fields is preferable to crowding. If there are more fields than will easily fit onto a form, multiple pages (and a way to move between pages, such as page-turn buttons) should be used. • Users should be able to discriminate accurately between different categories of displayed information, for example between changeable and display-only (protected) information. A convention should be established for these different types of information, and should be used consistently throughout the application. • All data fields and displayed items should be labelled, unless their meaning is obvious to users of the system from their visual appearance. • Labels should be easily distinguishable from other information on the display, such as error messages, changeable data, and display-only data, through their consistent positioning, format, and/or colour. • A field label should be located immediately to the left of the field to which it relates. • Field labels should be in normal mixed case text, and should be followed by at least one blank space before the start of the related field. Other separators (such as a colon and a space) may also be used, as long as they are used consistently throughout the application. • Labels should be carefully worded to ensure they are distinct from others on the same display, so that the user can easily distinguish between, and identify, required fields. • Data fields which appear on more than one screen should be given the same label each time they are displayed. • Labels should be protected so that they can not be changed by the user; the cursor should skip over labels when navigating through the display. • Wherever possible, users should be able to display, on request, a list of the available choices which can be entered in the currently selected data field. In the Windows style of user interface, this can be achieved by using a drop-down list box or combo-box, which allows users to see a list of the valid entries. Other styles of user interface may provide a menu option or function key which displays a list of the available choices for the current cursor location. From the displayed list, the user should be able to select an item which is automatically entered into the current field, or exit the list without having made a selection. • When the user enters a value in a field, it should be validated as soon as possible (where appropriate and if possible) to determine whether it is an acceptable input to that particular field. If the value is not valid, a message should be presented to the user, providing information as to why the data is invalid and/or what should be done to correct it. In certain situations, for example if users are not continually looking at the screen, it may also be worth using an audible warning that an invalid item has been entered. • An easily visible, movable cursor should be constantly displayed to enable users to determine their current position on a display. The displayed cursor should remain where it is placed until the user (or in some cases, the computer) moves it to another position. • At any input screen, menu options should be provided to enable users to: i. exit the screen, saving the changes made to the data ii. exit the screen, without saving the changes made (i.e. cancelling the changes) iii. obtain help from the system on how to complete the current screen. The presentation of these, and any other menu options related to the current display or task being performed, should be consistent with the presentation of menu options in other parts of the system. 1.6.3.4 Wording of Labels and Instructions • • • • • • When an input screen is displayed, it should include instructions to the users on the actions required, where appropriate. For example, a message could be displayed in the message area (at the bottom of the screen) giving a simple clear instruction to the users, and referring them to the Help option for more detailed information. When users select a field on the form, the action required from them should be displayed in the message area of the screen. Wherever possible, the choices available for that field should be easily accessible. Describe the actions required using familiar terminology. Use a consistent grammatical style within and across all forms in an application. Where more than one action is required, present the instructions in the order that the actions will be carried out. The word type can be used for entering information, and press for keyboard keys such as ENTER, TAB, ALT, CTRL, F1, F2 etc. Since the word "Enter" refers to the ENTER key, it should not be used in instructions. 7 B3: Systematisch ontwikkelen van informatiesystemen • Bijlage F: User Interfaces Try to be brief but, if more information is needed, provide Help topics for less experienced users. In support of brevity, just describe the necessary actions and do not use pronouns or reference the user. For example, use: Type the customer's address and press ENTER rather than any of the following: You should press ENTER after you have typed the customer's address The user of this system should type the customer's address and then press ENTER Enter the address 1.6.3.5 Navigation All forms in an application should use a consistent set of keys to allow users to navigate through the fields on the screen. In general, users will start inputting data in the field closest to the top left-hand corner of the work area, and will move across and down the display. The navigation keys commonly used for form navigation are as follows: • Tab - moves the cursor from the current field to the "next" field on the display. Depending on the layout of the display, the "next" field will usually either be to the right of or below the current field, or at the beginning of the next line if the current field is at the end of a line. • Shift+Tab (pressed together) - moves the cursor from the current field to the "previous" field on the display. Depending on the layout of the display, the "previous" field will usually either be to the left of or above the current field, or at the end of the previous line if the current field is at the beginning of a line. • Cursor keys - move the cursor as follow: Up arrow - moves the cursor to the field immediately above the current field Down arrow - moves the cursor to the field immediately below the current field Right arrow - moves the cursor one character position to the right, within the current field Left arrow - moves the cursor one character position to the left, within the current field • For keyboards which have keys labelled "Page Up" (or "Prev Screen") and "Page Down" (or "Next Screen"), these keys should be implemented to page through previous and subsequent screens of data, respectively. These keys are only used in cases where the input screen contains more data fields than can fit on a single screen and so has had to be split between two or more "pages". In addition to being able to navigate through fields using the keyboard as defined above, users should also be provided with on-screen navigation aids, to allow them to use the mouse to move around the screen. • The user should be able to make a field "current" by moving the mouse pointer to the required field and clicking the mouse button once. • Push-buttons should be used to allow the user to select "next" and "previous" pages, on a multipage form, to provide the mouse-controlled equivalent of the "Page Down" / "Next Screen" and "Page Up"/"Prev Screen" keyboard keys. © 1996 Microsoft Corporation Zoals eerder opgemerkt, zijn voorgaande stukken afkomstig van Microsoft’s Webpages. Daar zijn ook de hier nìet-opgenomen stukken van het gehele document ‘User Interface Design Guidelines’ te vinden. Daaronder vallen (de nummering van deze ontbrekende stukken verwijst naar de hoofdstuknummering in het oorspronkelijke Web-document): 3. 4. 5. 6. 7. 8. 9. Menu Design Guidelines Direct Manipulation Effective Wording Messages and Help Using Colour Graphics and Icons 3-D Techniques Als je deze onderdelen van de Design Guidelines wilt raadplegen, zoek dan op Microsoft’s Webpages of haal het gecomprimeerde bestand Guidelines.zip op uit de VoorB3ld-directory op de netwerk-I:-drive van de B-faculteit. 8 B3: Systematisch ontwikkelen van informatiesystemen Bijlage F: User Interfaces F.7 Wat aanvullende opmerkingen • • • • • • • • Houd steeds in de gaten dat je een user interface (bijna altijd) maakt voor gebruik door anderen; het gaat er niet om of jijzelf een scherm ‘flitsend’ of wat dan ook vindt; het gaat er wèl om hoe een toekomstig gebruiker, die misschien wel uren op een dag met dat systeem moet werken, zich er op den duur bij voelt. Als het scherm vol met flitsende/knallende kleurtjes en allerlei tierelantijntjes zit, dan is de kans groot, dat het zo’n gebruiker tegen gaat staan met het systeem te werken (ook al is het verder door bijvoorbeeld collega-informatici algoritmisch nog zo knap in elkaar gezet). Een gebruiker die slechts sporadisch een programma gebruikt vindt zoiets daarentegen misschien wel leuk. Daarom ook moet dus van tevoren die taakanalyse worden uitgevoerd. De user interface bepaalt het ‘gezicht van het programma’. Vermijd beslist ook het verschijnen van ‘technische boodschappen’ die te maken hebben met computer hardware en waar de gebruiker waarschijnlijk niks van weet en meestal ook echt niks van wil weten. Zorg ervoor dat de gebruiker te maken krijgt met systeemreacties die correct aansluiten bij het bij de gebruiker aanwezige model over hoe het systeem in elkaar zit. Deels zijn de volgende punten al genoemd, maar dan hier nog een keer. Vergeet niet om deze aspecten ook te bekijken bij het opstellen/aanpassen van een stijlgids. • geef feedback: laat de gebruiker zien wat de computer doet. Het informatiesysteem moet alle gegeven opdrachten onmiddelijk bevestigen; in dat geval weet de gebruiker steeds waar hij of zij met het informatiesysteem aan toe is. Pas dit vooral toe bij opdrachten als ‘afdrukken’, ‘toevoegen’, ‘verwijderen’ etc. Als je kunt verwachten dat een operatie langere tijd (pakweg meer dan 5 seconden) gaat duren, laat dan bijv. een zandlopertje of horlogeglas o.i.d. zien. • de taal: gebruik -tenzij er een érg goede reden is om hiervan af te wijken- de Nederlandse taal. Houd zinnen kort en gebruik (voor de gebruiker!) bekende woorden. Sluit elke zin af met een punt. Gebruik suggestieve namen en/of codes voor commando’s, zoals voor opties in menu’s. De naam moet duidelijk aangeven wat het commando doet. Afdrukken is als aanduiding bijvoorbeeld beter dan Lijsten. Vermijd kleine naamsverschillen, zoals Veranderen en Verbeteren; wanneer beide commando’s gebruikt kunnen worden, zullen onherroepelijk vergissingen in het gebruik gemaakt worden. Kortom: vermijd aanleidingen tot ‘near misses’. Een commandocode moet een duidelijke relatie hebben met de naam: een sneltoetscombinatie ‘P’ past niet bij de commandonaam 'Afdrukken'. • het afhandelen van fouten: geef duidelijke foutmeldingen, die aangeven wat er fout is, waarom dit fout is en hoe er gecorrigeerd moet worden. Handel typefouten waarvan je bij voorbaat verwacht dat ze voor zullen komen, zelf al in je programma af. Tref dus b.v. een voorziening voor leading of trailing spaties en voor het al dan niet gebruiken van de Shift/hoofdletter-toetsen. Communicatie van mens tot mens is erg fout-tolerant; probeer jouw dialogen (die van het informatiesysteem dus) ook zo fout-tolerant mogelijk te maken. Fouten mogen nooit leiden tot het afbreken van een programma! Geef bij ontwerpbeslissingen bij voorkeur voorrang aan gebruikers-gemak boven machine- of programmeergemak. De gebruiker moet (misschien nog jaren) met het informatiesysteem werken, terwijl het maken maar één keer gebeurt. Besteed uit efficiëntie-overwegingen echter niet te veel tijd en moeite aan functies van het informatiesysteem die slechts zelden gebruikt zullen worden. Als in te voeren gegevens moeten worden overgenomen van een eerder (handmatig) ingevuld formulier, houd dan bij voorkeur dezelfde volgorde (en layout) aan als op dat formulier. Plaats (groep-) gerelateerde controls bij elkaar (bijvoorbeeld naam-, adres-, postcode en woonplaats-gegevens, maar ook: gerelateerde menu-items). Als je tijdens het GUI-ontwerpproces werkt met een prototype of een testversie, ga dan niet zelf eerst uitvoerig aan de gebruiker verklaren hoe het systeem of scherm gebruikt moet worden. Als een scherm goed ontworpen is, dan wijst dat gebruik zich welhaast ‘vanzelf’ uit. Geef pas een aanvullende verklaring als de gebruiker daar dan om vraagt (en vraag je gelijk af, hoe je het scherm zodanig kunt aanpassen, dat zo’n uitleg een volgende keer niet meer nodig is). Probeer bovendien al te bepalen hoeveel tijd het hen kost om bijvoorbeeld een invoerscherm geheel in te vullen en vraag je af òf en zo ja hóe die response verbeterd kan worden. Als je het ontwikkelen van een user interface écht goed wilt aanpakken, dan moet je dat met een multi-disciplinair team doen, waarin niet alleen informatici, bedrijfskundigen, grafische ontwerpers en domeindeskundigen (binnen het betreffende toepassingsdomein) ook bijvoorbeeld cognitief ergonomen zitten en bij een multi-nationaal bedrijf zelfs cultureel antropologen. 9