The root is an <ol> and each item is an <li>, so you do not have to announce the sequence. A screen reader already says “list, 7 items” and counts the rows as it goes, and an ordered list says the order matters.
- There is no tab stop. Timeline is content, not a control, so a keyboard reader moves through it with reading keys, not with Tab.
- That makes any control inside a row the only tab stop. Nothing inside content is styled for you, so a button there is a plain button. Its label has to make sense read on its own: “Remind” on row four of a list is not “Remind Dana about the staging approval”.
- A heading inside a row is a heading on the page. If the rows carry them, keep them at one level and below whatever heading introduces the timeline, so the document outline still describes the page.
- The list itself has no name. Where the surrounding heading does not already say what is being listed, put one above it instead of labeling the <ol>.