Interface More detail B · Official guidance Platform: Web

Roving tabindex

Roving tabindex gives a group one Tab stop. Arrow keys then move focus among items inside the group.

See how it works
You might call it roving tab indexsingle tab stoparrow-key focus

See how it works

Original worked exampleRoving tabindex
ACCESSIBLE UI RULERoving tabindexone tabindex=0 + remaining tabindex=-1 + arrow key swaps the active item
TEXT TOOLBAR1 Tab stop
Boldtabindex=0Italic-1Link-1Quote-1
ARROW RIGHTBold 0 → Italic 0focus() + swap tabindex
Tab → enter onceTab → leave once
PASSThe toolbar uses one Tab stop and arrow keys inside.AVOIDNever leave two items with tabindex 0.
one tabindex=0 + remaining tabindex=-1 + arrow key swaps the active itemA11Y
Roving tabindexAccessible interface practice

Another example

A toolbar starts with Bold at tabindex 0. The other buttons use -1. Arrow Right moves 0 to Italic.

Main parts

  1. 01Composite widget
  2. 02Single Tab stop
  3. 03Inactive items
  4. 04Arrow-key rule
  5. 05Updated active item
  6. 06Tab exit

Use it when

Use it for composite widgets with documented arrow-key behavior. Keep exactly one item in the normal Tab order.

Do not use it when

Do not use it for unrelated links or the whole page. Do not leave two items with tabindex 0.

Name used in code

one tabindex=0 + remaining tabindex=-1 + arrow key swaps the active item

Before you ship

Give assistive tools the control’s name (accessible name), purpose (role), value, and state. Check keyboard use, visible focus, target size, disabled and busy states, feedback, and recovery.

Request you can copy

Outcome: Use Roving tabindex to solve this user need without losing the current context. User context: A toolbar starts with Bold at tabindex 0. The other buttons use -1. Arrow Right moves 0 to Italic. Recommended pattern: Roving tabindex. Why it fits: Use it for composite widgets with documented arrow-key behavior. Keep exactly one item in the normal Tab order. Do not use it when: Do not use it for unrelated links or the whole page. Do not leave two items with tabindex 0. Product requirements: Define the default, loading, empty, error, success, and recovery states. Keep user input. Give clear feedback after every action. Accessibility and resilience: Use semantic HTML, full keyboard access, and visible focus. Make the layout work when zoomed and support reduced motion. Follow the project’s current rules. Do not add a new UI library unless the project already uses it. Acceptance criteria: The main task works with keyboard only and at 320px width. Focus and status changes are announced. Check loading, failure, retry, cancel, and reduced-motion paths. Evidence and limits (evidence boundary): It is official for that source. Other platforms or teams may use the term in another way. Unknowns to confirm: Product wording, data source, analytics events, supported devices and languages, and platform limits.

Check this request

Review the current use of Roving tabindex. Definition: Roving tabindex gives a group one Tab stop. Arrow keys then move focus among items inside the group. Release checks: Give assistive tools the control’s name (accessible name), purpose (role), value, and state. Check keyboard use, visible focus, target size, disabled and busy states, feedback, and recovery. Before changing code, report the evidence you found, gaps, severity, and the smallest safe fix.

B
How official is this term?

Official guidance

The named platform, framework, project, or expert group has an official guide for this term.

It is official for that source. Other platforms or teams may use the term in another way.

Scope
Non-normative WAI-ARIA Authoring Practices roving-tabindex strategy for composite widgets
Document status
stable
Checked on
2026-07-30

Evidence sources & scope

Authority source + Term reference · W3C WAI · stable Managing Focus Within Components Using a Roving tabindex Scope: Non-normative APG roving-tabindex strategy for composite widgets Role here: Direct term reference Source covers: canonical name, definition, interaction, keyboard behavior, accessibility Background source WAI-ARIA 1.2 — aria-activedescendant Role here: Helpful background, not a definition

Copy it yourself

The browser could not copy this. Select the request below and copy it yourself.