Most native interactive HTML elements, such as buttons, links, and input fields, are automatically included in the tab order according to their sequence position in HTML. The screen readers use HTML to set the reading order too.

If you use tabindex values greater than 0, however, you will change the tab order, but not the reading order, as the elements order in HTML will stay the same. That’s why even the tabindex= “0” should only be used in rare cases, for example, when creating custom interactive elements.

Step 4. Reflection

The tab order should follow the logical order, usually from left to right and top to bottom (for left-to-right languages), and match the DOM order.

Avoid using tabindex to alter the keyboard navigation order if you can!

Please note, there’s a difference between the tab order and reading order for screen readers.

WCAG 2.0 has a "2.4.3 Focus Order" success criterion on the proper navigation sequence. Check out the resources for more information.