Order carries meaning, so mark it up as <ol>, and give each event a machine-readable time with <time datetime="2026-01-01">. Dots and connecting lines are purely decorative — a background image or border — and need no extra ARIA role.
Easy to confuse with a stepper, but direction and certainty differ. A stepper shows a handful of stages moving forward through a fixed order toward the future — "Shipping → Payment → Done" — while a timeline records an arbitrary number of events that already happened (a commit log, an order history, a notification feed), running backward in time. It serves an entirely different purpose from breadcrumbs — breadcrumbs are about hierarchy, timelines about time.
For a feed where new events arrive live, put aria-live="polite" on the list container so new entries are announced quietly.