readingOrder

What this page says, in the order a reader that speaks would say it: one item per block of text or per image, each carrying the role its source element declared (<h2> is a heading, <li> a list item).

Left out: anything marked aria-hidden="true" or role="presentation", and an image with alt="", which is how authors mark decoration.

Order is the page's own top-to-bottom, which is document order for everything except boxes deliberately overlapped by absolute positioning.

for (item in page.readingOrder()) speak(item.role, item.text)