v154 · scroll-marker-group · grammar

Mode switcher

The grammar is none | [ [ before | after ] || [ links | tabs ] ]: position and mode combine in any order, and either may stand alone. Flip every variant on a live carousel, and read back what the parser and the computed style actually did with each one — browsers that shipped the intermediate grammar accept some of these and reject others.

Switch the value

scroll-marker-group:

The rule

What this browser's parser accepts — CSS.supports(), run live
declarationgrammar generationparsed?

Parsing is not semantics. A browser can accept after tabs at the parser and still not implement the role and focus contracts of §3.1.6 — that behaviour lives in the accessibility tree, which page script cannot inspect. The focus-order journal records the keyboard half of the contract; the role half needs a screen reader or the DevTools accessibility panel.

what the two modes mean

The §3.1.6 contract per mode
surfacelinks (default)tabs
::scroll-marker-group rolenavigationtablist
::scroll-marker rolelinktab
originating element roleunaffectedtabpanel
tab stopsevery marker, in orderonly the active marker; arrow keys rove
activation focusmoves the sequential-focus starting point to the target; marker loses focusstays on the marker
inactive contentstays in the accessibility treepruned, as if inert

see also