Touch target size

Any on-screen element that someone can click, touch or otherwise interact with should be large enough for reliable interaction. Consider making sure that these elements have a width and height of at least 48 dp, as described in the Material Design Accessibility guidelines.

Implementation

View

When you implement clickable or touchable elements in a layout, consider using dimensions that meet or exceed the recommended size for touch targets.

If these controls are sized dynamically, or resize based on the size of their content, consider using android:minWidth and android:minHeight to set a lower bound on their dimensions.

To retain the original size of a View while expanding its touchable region, consider using a TouchDelegate, which allows a parent layout to handle touch events on behalf of the descendant View.

Tip: Accessibility Scanner can detect and account for the use of TouchDelegate only when running on Android 10 and later. On earlier Android versions, touch target size results may appear even when this API is used to enlarge touch targets to an appropriate size.

Compose

When you implement clickable or touchable elements in a composable, consider using dimensions that meet or exceed the recommended size for touch targets.

If these controls are sized dynamically, or resize based on the size of their content, consider using Modifier.sizeIn to set a lower bound on their dimensions.

To retain the original size of a composable while expanding its touchable region, consider making an ancestor clickable or use Modifier.mergeDescendants, which allow accessibility services to focus only a larger ancestor composable and send it click events.

Design

Touch targets include the area that responds to user input. Touch targets extend beyond the visual bounds of an element: an element like an icon may appear to be 24 dp x 24 dp, but the padding surrounding it comprises the full 48 dp x 48 dp touch target. In Jetpack Compose, Material components like Checkbox or Switch automatically add padding to make sure that they are at least 48 dp x 48 dp. In some cases, such as very small and close-together buttons, elements can't be expanded without causing touchable regions to overlap.

Consider making touch targets at least 48 dp x 48 dp, separated by 8 dp of space or more, to ensure balanced information density and usability. A touch target of 48 x 48 dp results in a physical size of about 9 mm, regardless of screen size. The recommended target size for touchscreen objects is 7–10 mm.

For examples, refer to the Material Design Accessibility guidelines.

Testing

To manually verify that an app's user interface doesn't contain small touch targets:

  1. Open the app.
  2. Identify all clickable, touchable or interactable elements within the interface.
  3. Ensure that each of those elements is 48 x 48 dp in size, or approximately 9 mm in each dimension.

Android's automated testing tools can detect small touch targets. Consider using Accessibility Scanner for Android for manual testing of your app on-device. For automated tests, turn on accessibility checking in Espresso and Robolectric.

Search
Clear search
Close search
Google apps
Main menu