# Provide conventional controls and an application setting for motion activated input

## Metadata

## When to Use

Use this technique on web pages that detect device or user motion such as shaking or tilting and use this motion as a means of input. If the motion itself is essential to the application's function, then this technique does not apply.

This technique also does not relate to movement of users through space as registered by geolocation sensors or beacons, or events observed by the device other than intentional gesturing by the user. It also does not cover indirect motion associated with operating a keyboard, pointer, or assistive technology.

## Description

The objective of this technique is to ensure that:

1. People who use mounted devices or who cannot precisely manipulate a device are able to provide inputs through more conventional user interface components, and
2. People who may accidentally activate sensors due to tremors or other motor impairments have the ability to turn off motion actuation to prevent such accidental triggering of functions.

When a device sensor such as an accelerometer or gyroscope is used to gather input:

1. A button, link, or other conventional control is provided that does not rely on sensor input, and
2. A setting is provided to allow the user to turn off the sensor data.

## Examples

### Shake to undo

After text is entered in a field, shaking a device shows a dialog offering users to undo the entry. Supporting use of the backspace key and/or providing a clear button next to the text field offers the same functionality.

Shake to undo can be turned off in a settings page.

### Motion Activated Slider

A slider can be adjusted by tipping the device to the left and right. There are also buttons to achieve the same functionality, and a tick-box that prevents the motion from having an effect.

Working example of a slider with motion actuation.

## Tests

### Procedure

For each input that performs a function in response to a motion sensor:

1. Check that there is a mechanism to perform the same function that does not rely on a sensor.
2. Check that there is a user setting which disables the motion detection.

### Expected Results

- Check #1 and #2 are true.