# Interaction technique

An interaction technique, user interface technique or input technique is a combination of hardware and software elements that provides a way for computer users to accomplish a single task. For example, one can go back to the previously visited page on a Web browser by either clicking a button, pressing a key, performing a mouse gesture or uttering a speech command. It is a widely used term in human-computer interaction. In particular, the term "new interaction technique" is frequently used to introduce a novel user interface design idea.

## Definition

Although there is no general agreement on the exact meaning of the term "interaction technique", the most popular definition is from the computer graphics literature:
   An interaction technique is a way of using a physical input/output device to perform a generic task in a human-computer dialogue.
A more recent variation is:
   An interaction technique is the fusion of input and output, consisting of all software and hardware elements, that provides a way for the user to accomplish a task.

### The computing view

From the computer's perspective, an interaction technique involves:
* One or several input devices that capture user input,
* One or several output devices that display user feedback,
* A piece of software that:
** interprets user input into commands the computer can understand,
** produces user feedback based on user input and the system's state.
Consider for example the process of deleting a file using a contextual menu. This assumes the existence of a mouse (input device), a screen (output device), and a piece of code that paints a menu and updates its selection (user feedback) and sends a command to the file system when the user clicks on the "delete" item (interpretation). User feedback can be further used to confirm that the command has been invoked.

### The user's view

From the user's perspective, an interaction technique is a way to perform a single computing task and can be informally expressed with user instructions or usage scenarios. For example, "to delete a file, right-click on the file you want to delete, then click on the delete item".

### The designer's view

From the user interface designer's perspective, an interaction technique is a well-defined solution to a specific user interface design problem. Interaction techniques as conceptual ideas can be refined, extended, modified and combined. For example, contextual menus are a solution to the problem of rapidly selecting commands. Pie menus are a radial variant of contextual menus. Marking menus combine pie menus with gesture recognition.

### Level of granularity

One extant cause of confusion in the general discussion of interaction is a lack of clarity about levels of granularity. Interaction techniques are usually characterized at a low level of granularity—not necessarily at the lowest level of physical events, but at a level that is technology-, platform-, and/or implementation-dependent. For example, interaction techniques exist that are specific to mobile devices, touch-based displays, traditional mouse/keyboard inputs, and other paradigms—in other words, they are dependent on a specific technology or platform. In contrast, viewed at higher levels of granularity, interaction is not tied to any specific technology or platform. The interaction of 'filtering', for example, can be characterized in a way that is technology-independent—e.g., performing an action such that some information is hidden and only a subset of the original information remains. Such an interaction could be implemented using any number of techniques, and on any number of platforms and technologies. See also the discussion of #interaction patterns below.

## Interaction tasks and domain objects

An interaction task is "the unit of an entry of information by the user", such as entering a piece of text, issuing a command, or specifying a 2D position. A similar concept is that of domain object, which is a piece of application data that can be manipulated by the user.
Interaction techniques are the glue between physical I/O devices and interaction tasks or domain objects. Different types of interaction techniques can be used to map a specific device to a specific domain object. For example, different gesture alphabets exist for pen-based text input.
In general, the less compatible the device is with the domain object, the more complex the interaction technique. For example, using a mouse to specify a 2D point involves a trivial interaction technique, whereas using a mouse to rotate a 3D object requires more creativity to design the technique and more lines of code to implement it.
A current trend is to avoid complex interaction techniques by matching physical devices with the task as close as possible, such as exemplified by the field of tangible computing. But this is not always a feasible solution. Furthermore, device/task incompatibilities are unavoidable in computer accessibility, where a single switch can be used to control the whole computer environment.

## Interaction style

Interaction techniques that share the same metaphor or design principles can be seen as belonging to the same interaction style. General examples are command line and direct manipulation user interfaces.

## Interaction patterns

While interaction techniques are typically technology-, platform-, and/or implementation-dependent (see #level of granularity above), human-computer or human-information interactions can be characterized at higher levels of abstraction that are independent of particular technologies and platforms. At such levels of abstraction, the concern is not precisely how an interaction is performed; rather, the concern is a conceptual characterization of what the interaction is, and what the general utility of the interaction is for the user(s). Thus, any single interaction pattern may be instantiated by any number of interaction techniques, on any number of different technologies and platforms. Interaction patterns are more concerned with the timeless, invariant qualities of an interaction.

## Visualization technique

Interaction techniques essentially involve data entry and manipulation, and thus place greater emphasis on input than output. Output is merely used to convey affordances and provide user feedback. The use of the term input technique further reinforces the central role of input. Conversely, techniques that mainly involve data exploration and thus place greater emphasis on output are called visualization techniques. They are studied in the field of information visualization.

## Research and innovation

A large part of research in human-computer interaction involves exploring easier-to-learn or more efficient interaction techniques for common computing tasks. This includes inventing new (post-WIMP) interaction techniques, possibly relying on methods from user interface design, and assessing their efficiency with respect to existing techniques using methods from experimental psychology. Examples of scientific venues in these topics are the UIST and the CHI conferences. Other research focuses on the specification of interaction techniques, sometimes using formalisms such as Petri nets for the purposes of formal verification.