---
url: /components/lists/accessibility.md
description: Lists are continuous, vertical indexes of text or images.
---

# Lists

Lists are continuous, vertical indexes of text or images.

[Overview](overview.md) · [Specs](specs.md) · [Guidelines](guidelines.md) · **Accessibility**

<a id="538f23f7-689c-4516-bfc8-5f6933a43f5e"></a>

## Use cases

People should be able to do the following with assistive technology:

* Navigate to a list item 
* Select a list item

## Indicate selection with more than color

To make selected items clear for everyone, don't rely on color as the only visual cue.   

Use an additional indicator that an item is selected such as:

* [Radio buttons](../radio-button/overview.md "Radio buttons let people select one option from a set of options.") or [checkboxes](../checkbox/overview.md "Checkboxes let users select one or more items from a list, or turn an item on or off.")
* Leading or trailing icons
* A visual style not related to color, like underlined text

![A selected list item with a colored background, and a check as the leading icon.](/assets/22006735-mif14iza-01.BQYiZkOi.webp)

Use two visual cues to show a list item is selected, like a leading checkmark and filled color

<a id="a6f937f5-3e1f-4db4-ba35-ac6dd9fef140"></a>

## Interaction & style

### Touch

When a person taps on a list item, a touch ripple appears, indicating interaction feedback.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmif1hthv-GM3%20-%20Expressive%20-%20Accessibility%2002%20-%20v01.mp4?alt=media" aria-label="A 3-item list shows a touch ripple animation as the second item is tapped and selected."></video>

A ripple appears when a person taps on a list item to select it

### Cursor

When hovered, the [hover](../../foundations/interaction/states/applying-states.md#71c347c2-dd75-485b-892e-04d2900bd844 "A hover state communicates when a user has placed a cursor above an interactive element.") state provides a visual cue that a list item is interactive.

![A list with the second item visually altered while hovered over, with a cursor and darker fill.](/assets/e59827c6-mif1lpwx-03.CjYy843X.webp)

Cursor: Hover

![Selected list item with cursor, colored fill, and checked box.](/assets/05eacd65-mif1n85t-04.FJF_X803.webp)

Cursor: Selected

### Keyboard & switch

When a person tabs to a single-action list, a focus indicator appears, providing a visual cue that the first list item is now [focused](../../foundations/interaction/states/applying-states.md#bc6d6853-48ef-490e-8076-448e89e69f0f "A focused state communicates when a user has highlighted an element, using an input method such as a keyboard or voice.") and action can be taken.

When a person interacts with the focused list item via **Space** or **Enter**, the action is performed.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmif1rzoz-GM3%20-%20Expressive%20-%20Accessibility%2005%20-%20v01%20with%20Keyboards.mp4?alt=media" aria-label="A focus indicator appears on the first item of a 3-item list, which is then selected."></video>

**Tab** key navigates to the list. **Space** or **Enter** keys activate items.

<a id="32f5115c-b15e-4af6-8c1a-4807bee2bf7a"></a>

### Swipe

List items that can be swiped should include alternative ways to access hidden actions, such as a **more** icon.   <br><br>Swipe alternatives can be:

* Single tap
* Double tap
* Long press
* Other single-point interactions

![A list item has a “more” button selected to reveal additional actions.](/assets/05a6f5c9-mshqfb4p-07-key04.D_cs_tJw.webp)

List items can reveal more actions from swiping or using an accessible secondary action such as a double tap

<a id="f7e067e1-722f-40c5-a95a-63929869bf3e"></a>

## Focus

### Single-action lists

The first element in a list should always receive focus, unless the list has a selected element. In that case, focus should go to the selected list item instead.<br><br>After an element is [focused](../../foundations/interaction/states/applying-states.md#bc6d6853-48ef-490e-8076-448e89e69f0f "A focused state communicates when a user has highlighted an element, using an input method such as a keyboard or voice."), a person should be able to navigate within the list using arrow keys.

![The first list item is automatically focused.](/assets/a37db02d-mif1yik5-08.Bk9-aYwN.webp)

**Tab&#x20;**&#x6B;ey focuses on the first item or the selected item

![A second list item focused using an arrow key.](/assets/7ce71b84-mif1z0du-09.Cd8subKz.webp)

**Arrow&#x20;**&#x6B;eys navigate up and down through list items

All list items must be able to be activated using the **Space** or **Enter** key.  <br><br>[More on single-action lists](guidelines.md#3e45f939-457a-44a8-8551-a2354c521d26)

![List item with focus indicator and filled checkbox, selected using the Space or Enter key.](/assets/e2d0a41e-mif21ldt-10.DBu5eLPD.webp)

**Space** or **Enter** keys activate an element in a list

<a id="b69b89a9-7ca0-4249-b25b-2d0c85a41dc0"></a>

### Multi-action lists

Multi-action list items contain a primary action and at least one supplementary action.  <br><br>The list item as a whole isn't selectable; only the individual actions are.

 A person should be able to use a keyboard to:

* **Tab** to the list item, which focuses the first element
* Move between between all focusable elements in the list using the **Up**, **Down**, **Left**, and **Right** arrow keys
* Activate a focused element using **Space** or **Enter**   

[More on multi-action lists](guidelines.md#db85439b-0e67-43b0-a2dc-61395738af64)

![The first element in a multi-action list is focused automatically.](/assets/c650ea56-mi8um9bl-11-vqa.Cih2Qckq.webp)

**Tab** brings the focus to the first action

![The list action, a bookmark, is focused using the Down or Right arrow.](/assets/1e0a56b6-mi8uomf0-12-vqa.e8p6JZjG.webp)

**Down** and **Right** arrow keys move focus to the next action of the list item, or to the first action in the next item

![A trailing bookmark icon is focused in the second list item.](/assets/883b45ec-mi8uwmgu-13-vqa.B46U9Ufv.webp)

**Up** and **Left** arrow keys move focus to the previous action of the list item

![Label text and supporting text of the second list item is in focus using the Up or Left arrow.](/assets/4336384a-mi8v0dqs-14-vqa.9o3hSJt2.webp)

If the focus is on a list item’s first action, the **Up** and **Left** arrows move focus back to the last action of the previous item

![The Space or Enter key activates an overflow menu on a list item.](/assets/7d7947fb-mi8v14y1-15-vqa.Ch-q3qRk.webp)

The **Space** or **Enter** key activates a selected action in a list

## Keyboard navigation

| **Keys**                  | **Actions**                                                                                                                         |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| **Tab**                   | To move focus to the first list item, last list item, or outside of the list component                                              |
| Down and right arrow keys | Moves to the next element in the list; if the focused element is the last in the list, it wraps back to the top of the list         |
| Up and left arrow keys    | Moves to the previous element in the list; if the focused element is the first in the list, it wraps back to the bottom of the list |
| **Space** or **Enter**    | To select a list item not yet selected                                                                                              |

## Labeling elements

[Accessibility](../../foundations/overview/principles.md "Accessible design makes products usable for people with all kinds of abilities.") labels are used with assistive devices like screen readers.

The accessibility label for a list item is typically the same as the **label text** and **supporting text**.

Some labels, roles, and states are [dependent on platform](#09e32b7d-78a1-45c1-be12-4c6646cfe1d1).

![List item selected to show label of “Bread, sourdough or wheat”.](/assets/8b923431-mif3ecf9-16.C5FYc0qS.webp)

A list item’s **label text** and **supporting text** is used for its accessibility label

<a id="09e32b7d-78a1-45c1-be12-4c6646cfe1d1"></a>

### Platform-specific labels

#### Single-select lists

| **Trait**  | **Web**                                                                                           | **Android Views (MDC-Android)**                | **Jetpack Compose**                            |
| ---------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- |
| Aria label | Container label: Should describe selection type<br>List item: Should match the visible label text | List item: Should match the visible label text | List item: Should match the visible label text |
| Role       | Container: List box List item: Option                                                             | List item: Radio button                        | List item: Radio button                        |
| State      | Selected or Not-selected                                                                          | Checked or Not-checked                         | Checked or Not-checked                         |

#### Multi-select lists

| **Trait**  | **Web**                                                                                           | **Android Views (MDC-Android)**                | **Jetpack Compose**                            |
| ---------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- |
| Aria label | Container label: Should describe selection type<br>List item: Should match the visible label text | List item: Should match the visible label text | List item: Should match the visible label text |
| Role       | Container: List box List item: Option                                                             | List item: Checkbox                            | List item: Checkbox                            |
| State      | Selected or Not-selected                                                                          | Checked or Not-checked                         | Checked or Not-checked                         |

On web, a list container’s accessibility label describes the type of selection that can be made, and the role is **List box**.

![A list container is selected, showing a label of “Select either bread, pita, or rice” and role of “List box.”](/assets/efe69961-mi8wfvkj-17.DmMuCkzq.webp)

On web, a list container’s role is **List box**

On Jetpack Compose, the role applies to the list item as a whole.

If a list isn't selectable, the label text is read out without a role.

![A selected list item shows a label of “Bread, sourdough, or wheat” and role of “Checkbox.”](/assets/0be6f991-mi8wgxsf-18.DFf6bah5.webp)

When selectable, the role **Checkbox&#x20;**&#x61;pplies to the entire list item on Jetpack Compose

On Android Views (MDC-Android), components contained within the list should be labeled according to that component’s specific guidelines:

* [Checkbox](../checkbox/accessibility.md)
* [Radio button](../radio-button/accessibility.md)

![Checkbox of a selected list item shows label of “Bread, sourdough or wheat” and role of “Checkbox.”](/assets/49300663-mif3mprn-19.B24q32BI.webp)

On Android Views (MDC-Android), the accessibility label and role are applied to the interactive component by default
