Legacy Maemo 5 Documentation/Human Interface Guidelines/User Input

=User Input= There are several methods of using and manipulating applications on a Hildon-powered device. First, there are two viewable orientations: landscape and portrait. Second, users can control what is happening on the device with either a finger (or fingers) or by using a stylus. Because of this, developers must carefully weigh the various use-cases and input methods when planning an application.

This section covers these various types of usage in an attempt to advise developers and interface designers how to utilize best practices in order to provide a smooth, intuitive experience for end-users.

Input Hardware
Input Hardware is the hardware that allows users to interact with a Hildon device. When users interact with any component of the Input Hardware, the device should respond with some sort of feedback.

Hard Keys
Hard Keys are the keys on the device that can be physically touched. The set of Hard Keys available on various devices will vary according to the make and model of the device. These differences must be taken into account when developing a Hildon application. Nonetheless, there are sets of keys that are fairly standard on most hand-held devices.

Common Hard Keys

 * Power Key: This key common to most devices, as it is a basic, but vital function.
 * Lock/Unlock Key: This key can also be found on many devices. It is the key that "locks" and "unlocks" a device for use. Note that although this key is common, some devices handle this function via "soft keys."
 * Increase/Decrease Key: Normally these keys are used to adjust the sound volume of a device, or to zoom in and out of a device's viewable area.

Optional Hard Keys

 * Capture Key: The "Capture Key," if available is primarily used to take a photo with the device's built-in camera.
 * Keyboard: Many devices feature a hardware keyboard that is either always present or can be slid or flipped out. Hildon supports two types of text input: hardware keyboard and touch screen text input methods. Touch screen input methods should never be activated if a hardware keyboard is available (i.e., open for use).

Finger Interaction
Hildon can be manipulated by users' fingertips, without the need of a stylus pointer. But, as described in the Principles section, keep in mind that using the finger input method may result in obscuring parts of the application. Placing important information in a position that can be hidden by finger/hand interaction is never desirable. Because of this, it is extremely important to choose proper placement of all onscreen widgets. Likewise, try to offer a way to let users choose their preferred widget placement.

Two Hand Usage
Two Hand usage occurs when users hold the device with both hands, using their fingers to interact with the device and/or application. In this case, the application should be designed to work in landscape mode. For example, if both thumbs are required to interact with the device, the obscured area will be greater than if it was a function controlled with just one finger. Because of this, deciding on the placement of onscreen elements becomes bigger challenge for interface designers. Great care must be taken when designing a usable interface where important items are always visible when they need to be.

Two Hand Usage with Keyboard
Some devices will also have hardware keyboards that either slide or flip out. Again, special attention must be paid to how users will interact with onscreen elements, as well as the physical keyboard.

In some cases, certain onscreen elements items may be hard to reach if a physical keyboard is present. Specifically, any widget placed at the top-most area of the screen can be difficult to reach while users are holding a device when the keyboard is slid out.

One Hand Usage
If you are planning an application that can be used with only one hand, consider making it run in portrait mode. This is because devices are typically easier to hold with one hand when positioned vertically (i.e., holding a device that is positioned in landscape mode with one hand can be very difficult). Remember that creating static designs (e.g., elements that fit only in one orientation) is not a best practice. Take care to design interfaces that can adapt easily to both horizontal and vertical orientations, as one cannot anticipate various users' preferences.

Soft Keys and Touch Types
Hildon, like other touch-screen frameworks, can accommodate a variety of different types of taps.

Single Tap
Any interactive elements like controls, buttons, links, et cetera, can be activated by tapping and releasing on top of the element's control area. The process of performing a Single-Tap is divided into three separate states. The following list describes those states and what users can accomplish with Single-Taps.


 * Tap down: Once users touch the screen, a visual effect might be produced in the tapped element. For example, it can highlight a button or make a scroll indicator visible.
 * Tap release: This state occurs when users lift up their finger after a tap down. This will activate the element that was tapped, such as a button or task launcher.
 * Tap and cancel: If a fixed position element (such as a button) is tapped, but loses its focus (e.g., a user slides their finger out of the element's area), it will not activate that element.

Two-Touch
Two-Touch occurs when users tap an onscreen element and, without lifting their initial tapping finger, touch the screen with another finger. The Two-Touch can be used to activate element-specific context sensitive menus (similar to right-clicking an application icon in a traditional desktop scenario).

Long-Tap
Whenever a user taps and element, but keeps their finger pressed down, it produces a "Long-Tap." Long-Taps should only be used as a shortcut method of accessing a function that can otherwise be accessed another way. For instance, users can Long-Tap a contact in the Contact List to trigger a menu with additional options.

Stylus Interaction
Even though Hildon widgets are designed for finger use, certain devices may still include a stylus. However, designing stylus usage into an application is inadvisable unless a specific task requires extremely high precision: clicking links within a website (typically, websites are designed to be navigated via a small mouse cursor), imaging applications that features drawing or painting operations, and applications that require more widgets than can be viewed at one time (leaving no space for fingers).

Dimensions
Buttons that are designed to be clicked by a mouse or a stylus are not always very easy to be pressed by a finger or thumb because of their smaller sizes. The placement of widgets can also impact usability when considering finger usage (e.g., buttons that are placed right next each other require higher precision and may make them difficult to be pressed by fingers).

As discussed earlier, applications should be designed so that they adapt to the orientation of the screen. Using fixed sizes or static placement will make such adaptation very difficult.

The Hildon API provides several defined values in order to make creating variable control sizes easier:

Hildon control size types

 * HILDON_SIZE_AUTO_WIDTH Automatic width
 * HILDON_SIZE_HALFSCREEN_WIDTH Half of the screen width
 * HILDON_SIZE_FINGER_HEIGHT A finger height
 * HILDON_SIZE_THUMB_HEIGHT A thumb height
 * HILDON_SIZE_AUTO Automatic height and width

Use the variable sizes above when choosing the size of widgets based on certain use-cases. For example, if you place a button on a bottom corner of the screen, it is likely that that users will use their thumbs to press it. In this case, choose HILDON_SIZE_THUMB_HEIGHT for this button.

Interaction Actions
While many of the actions that can be performed with a Hildon-based device are similar to those found within a traditional desktop environment, several additional methods of interacting within Hildon are rather unique. The following sections describe these actions or interactions.

The following sections describe these actions or interactions.

Copy, paste, cut
The text input fields support the common actions of copying, pasting, and cutting. To perform these actions, users can use the standard hardware keyboard (if available) shortcuts Ctrl+c, Ctrl+v, and Ctrl+x, respectively.

Panning
The use of scrollbars within Hildon is discouraged, as the interface is intended to be manipulated with fingers. The concept of Panning refers to navigation of onscreen content by tapping and dragging a finger over the content. When users enter a view that contains content that cannot be fully viewed within the physical screen area, scroll indicators will appear on the right and bottom sides of the screen. These indicators tell users that the content can be Panned in order to navigate through the content.