There are seemingly many different "principles" of user-centred design (or UCD). This is confusing for the novice to UCD. It is also indicative of a "young" area of study and practice, which hasn't yet decided what is really important. But in fact, some of what are described as "principles" of user-centred design should more properly be called rules of thumb, heuristics or best practise guidelines -even fashion statements or cultural expectations, and so on.
We could of course define the principles of UCD negatively, i.e. by what not to do (and see common web design mistakes for an idea).
However, there are some things about which most usability practitioners agree, and a selection of these is shown below:
Ten key principles of web user-centred design
- Design for the users and their tasks - throughout development, always bear in mind the characteristics of the user population, their real-world tasks, and their working environment
- Be consistent - make the behaviour of common interface elements and dialogue boxes as consistent as possible (both internally and externally, with other systems)
- Use simple and natural dialogue - all messages and instructions should be short and highly relevant, expressed in plain language and should use the vocabulary of the intended audience
- Reduce unnecessary mental effort by the user - if users have to invest too much mental effort in working out how to operate the computer, they will be less efficient and make more errors
- Provide adequate feedback - users need to be confident that their actions have been successful
- Provide adequate navigation mechanisms - so that users always know where they are, and always know how they can transition from place to place
- Let the user drive - the user should be able to select the information they need in a sequence which is convenient to support each individual task
- Present information clearly - arrange on-screen information so as to optimise the user's ability to discriminate between different items and groups of data
- Be helpful - as far as possible, systems should be self-explanatory so that they can be used with the minimum of help and documentation
- Reduce errors - by guiding the user down the correct path to accomplish their goal. Where appropriate to the task, users' responses should be constrained to avoid error (but not where this would limit the users' reasonable choice in how to perform their tasks)