Best Practices & Principles for GUI design [closed

2019-01-12 13:23发布

What is your best practical user-friendly user-interface design or principle?

Please submit those practices that you find actually makes things really useful - no matter what - if it works for your users, share it!


Summary/Collation

Principles

  1. KISS.
  2. Be clear and specific in what an option will achieve: for example, use verbs that indicate the action that will follow on a choice (see: Impl. 1).
  3. Use obvious default actions appropriate to what the user needs/wants to achieve.
  4. Fit the appearance and behavior of the UI to the environment/process/audience: stand-alone application, web-page, portable, scientific analysis, flash-game, professionals/children, ...
  5. Reduce the learning curve of a new user.
  6. Rather than disabling or hiding options, consider giving a helpful message where the user can have alternatives, but only where those alternatives exist. If no alternatives are available, its better to disable the option - which visually then states that the option is not available - do not hide the unavailable options, rather explain in a mouse-over popup why it is disabled.
  7. Stay consistent and conform to practices, and placement of controls, as is implemented in widely-used successful applications.
  8. Lead the expectations of the user and let your program behave according to those expectations.
  9. Stick to the vocabulary and knowledge of the user and do not use programmer/implementation terminology.
  10. Follow basic design principles: contrast (obviousness), repetition (consistency), alignment (appearance), and proximity (grouping).

Implementation

  1. (See answer by paiNie) "Try to use verbs in your dialog boxes."
  2. Allow/implement undo and redo.

References

  1. Windows Vista User Experience Guidelines [http://msdn.microsoft.com/en-us/library/aa511258.aspx]
  2. Dutch websites - "Drempelvrij" guidelines [http://www.drempelvrij.nl/richtlijnen]
  3. Web Content Accessibility Guidelines (WCAG 1.0) [http://www.w3.org/TR/WCAG10/]
  4. Consistence [http://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0385267746]
  5. Don't make me Think [http://www.amazon.com/Dont-Make-Me-Think-Usability/dp/0321344758/ref=pdbbssr_1?ie=UTF8&s=books&qid=1221726383&sr=8-1]
  6. Be powerful and simple [http://msdn.microsoft.com/en-us/library/aa511332.aspx]
  7. Gestalt design laws [http://www.squidoo.com/gestaltlaws]

19条回答
可以哭但决不认输i
2楼-- · 2019-01-12 14:03

Breadcrumbs in webapps:
Tell -> The -> User -> Where -> She -> Is in the system

This is pretty hard to do in "dynamic" systems with multiple paths to the same data, but it often helps navigate the system.

查看更多
We Are One
3楼-- · 2019-01-12 14:05

With GUIs, standards are kind of platform specific. E.g. While developing GUI in Eclipse this link provides decent guideline.

查看更多
啃猪蹄的小仙女
4楼-- · 2019-01-12 14:06

Try to think about what your user wants to achieve instead of what the requirements are.

The user will enter your system and use it to achieve a goal. When you open up calc you need to make a simple fast calculation 90% of the time so that's why by default it is set to simple mode.

So don't think about what the application must do but think about the user which will be doing it, probably bored, and try to design based on what his intentions are, try to make his life easier.

查看更多
劫难
5楼-- · 2019-01-12 14:06

I would recommend to get a good solid understanding of GUI design by reading the book The Design of Everyday Things. Although the main printable is a comment from Joel Spolsky: When the behavior of the application differs to what the user expects to happen then you have a problem with your graphical user interface.

The best example is, when somebody swaps around the OK and Cancel button on some web sites. The user expects the OK button to be on the left, and the Cancel button to be on the right. So in short, when the application behavior differs to what the user expects what to happen then you have a user interface design problem.

Although, the best advice, in no matter what design or design pattern you follow, is to keep the design and conventions consistent throughout the application.

查看更多
贼婆χ
6楼-- · 2019-01-12 14:06

As my data structure professor pointed today: Give instructions on how your program works to the average user. We programmers often think we're pretty logical with our programs, but the average user probably won't know what to do.

查看更多
做自己的国王
7楼-- · 2019-01-12 14:09

If you're doing anything for the web, or any front-facing software application for that matter, you really owe it to yourself to read...

Don't make me think - Steve Krug

查看更多
登录 后发表回答