If a menu bar's 8 items were each their own Tab stop, a user would need 8 presses of Tab just to get past that one menu. The roving tabindex pattern keeps **exactly one** item at `tabindex="0"` inside the widget and every other item at `tabindex="-1"`, so Tab treats the whole widget as a single stop.
Once focus lands inside the widget, arrow keys take over movement by shifting which item holds `tabindex="0"` — the old item drops to -1, the new one becomes 0 and actually receives focus. This is the core mechanism behind ARIA composite widget patterns: toolbars, tabs, listboxes, menus.
The demo shows the tabindex value on each of a 4-item toolbar flipping between 0 and -1 as arrow-key presses move the active item.
When to use
Don't make every item in a hand-built toolbar, tab list, or listbox its own Tab stop. Past 2-3 items, switch to roving tabindex or aria-activedescendant.