Skip to main content

Bruce Tognazzini’s Principles of Interaction Design

There are 23 of these principles, 17 are presented here as a brief introduction.

info

Bruce Tognazzini is a bit of a legend in the interaction design world, he wrote the first eight editions of The Apple Human Interface Guidelines back in the late 1970s and 1980s.

  1. Anticipation Anticipation in interaction design refers to the system's ability to predict the user's next move and facilitate it. This principle is about creating a seamless flow that guides the user through a task by suggesting actions, preloading information, or automating repetitive tasks.
tip

To test for anticipation, observe users as they navigate through tasks to identify points where they may hesitate or encounter obstacles. Look for patterns in user behavior that suggest the system could be more proactive in assisting the user.

  1. Autonomy Autonomy ensures that users feel they are in control of the software and that it responds to their actions. It's about empowering users to make their own decisions, with the system facilitating rather than dictating the workflow.
tip

Evaluate whether users can perform tasks in their preferred order, access functionalities when needed, and customise their experience. User feedback can highlight areas where the software may be too restrictive or prescriptive.

  1. Color Blindness Ensure you use key colours that are distinguishable to user with color blindness and that you are not relying solely on color to convey critical information in any areas of your app, offering a special UI theme to aid users that suffer from colour blindness (around 10% of the population) is a good alternative.
tip

Color blindness simulators are available for free on all platforms.

  1. Consistency Consistency across a product allows users to transfer their knowledge and expectations from one part of the application to another, reducing the learning curve. This includes consistent language, layout, and behavior.

  2. Defaults Good defaults can simplify the user experience by reducing the number of decisions users need to make. Defaults should reflect the most common choices or safe and non-destructive actions.

  3. Discoverability Features should be easily discoverable without overwhelming the user. This involves intuitive placement, clear labeling, and logical navigation paths.

tip

Analytics should tell you which the most used features are in your app, insights taken from this can help inform you of changes you need to make here, for example, if no one uses features that aren't at the top level, this likely means either the features aren't useful, or no one can find them. Conversely, if the most popular feature is buried in a menu, it likely wants surfacing to somewhere more prominent.

  1. Efficiency of the User The design should enable users to perform their tasks with maximum efficiency. This means minimising the number of steps to complete a task, streamlining workflows, and allowing for customisation to suit individual user needs.

  2. Explorable Interfaces Users should be able to explore the interface without fear of making irreversible errors. This encourages learning and experimentation, which can lead to a more profound understanding of the system.

  3. Fitts' Law Fitts' Law suggests that the time to acquire a target is a function of the distance to and size of the target. Interfaces should be designed so that targets are easy to hit and that important controls are conveniently placed.

tip

Observe the ease and speed with which users can navigate to and interact with various controls, are there any missed clicks or taps?

  1. Human Interface Objects Objects in the user interface should be recognizable and convey their function clearly. This principle is about using familiar visual metaphors and ensuring that interactive elements are easily identifiable.
tip

This is about affordances, buttons should look like buttons, state buttons (on/off buttons) should look distinct from buttons, and so on. To put it mildly, the meaning of a control should be discernable simply by looking at it.

  1. Latency Reduction Reducing latency involves minimizing the delay between the user's action and the system's response. A responsive system feels more natural and reduces user frustration.
tip

1 Second is the response time you need to fit into if you want the user to connect an action and a response.

  1. Learnability Software should be easy for new users to learn, allowing them to quickly become proficient. This involves intuitive design, clear instructions, and a gentle learning curve.

  2. Metaphors Using real-world metaphors in the UI can make software more intuitive by leveraging the user's pre-existing knowledge. The key is to choose metaphors that are familiar and relevant to the user base.

warning

This principle is somewhat out of step with modern UI design, even though it still has some value.

  1. Protect Users' Work The system should protect the user's work from being lost or corrupted.
tip

For browser based software: how does your software respond if the internet goes down?

  1. Readability Text within the software should be easy to read and understand. This involves using appropriate font sizes, sufficient contrast, and clear language.

  2. Track State The system should remember the user's actions and state across sessions. This allows users to pick up where they left off and can personalize the experience.

  3. Visible Navigation Design navigation elements to be clearly visible in a way which helps people navigate through an interface.

tip

Ensure that breadcrumbs are useful and not truncated to a point where they are unusable (especially on mobile platforms).