We've already seen in these guides that CSS grid layout gives us the power to re-order our page content by positioning items using line-based placement of grid template areas. This placement can be done without considering the item's location in the source. There is also the order property, which can change how items auto-place. The grid-auto-flow property has a dense value, which can take items visually out of the DOM order.
The CSS grid layout specification includes a Reordering and Accessibility section. The introduction to that section details what browsers should do when content is visually reordered using grid layout:
Grid layout gives authors great powers of rearrangement over the document. However, these are not a substitute for correct ordering of the document source. The order property and grid placement do not affect ordering in non-visual media (such as speech). Likewise, rearranging grid items visually does not affect the default traversal order of sequential navigation modes (such as cycling through links, see e.g., tabindex).
If you reorder things visually using grid layout, this will not change how the items are ordered if the content is being read out by a screen reader, or other text to speech user agent. In addition, the reordering will not change tab order. This means that someone navigating using the keyboard could be tabbing through links on your site and suddenly find themselves jumping from the top to the bottom of the document due to a reordered item being next in the tab order.
The specification warns authors (the CSSWG term for web developers) not to do this reordering.
Authors must use order and the grid-placement properties only for visual, not logical, reordering of content. Style sheets that use these features to perform logical reordering are non-conforming.
What does this mean for designing with grid layout in practice?