This page is a research page to discuss pros and cons of UA's changing the tab order and screen reader flow (through the a11y API) to match the new visual layout when flexbox order rearranges elements on a page.
box 1, box 2, box 3
box 1, box 2, box 3
box 1, box 2, box 3
box 1, box 2, box 3
box 3, box 2, box 1
box 1, box 2, box 3
Problem: The visual order (Box Tree) is now opposite the DOM order and subsequently, the Tab Order and Screen Reader order
The holy grail web layout is mentioned in WCAG as following success criteria regardless of tab order because the sequence of the containers (header, footer, nav, main, sidebar) do not have meaning. This assumption by WCAG is also under review as it is apparent that if an author must start a tab order in the middle of the sequence, it has some sort of meaning.
The holy grail layout is mentioned in example 7 of the Flexbox spec, acting as the go-to example of tab order not following visual order. http://www.w3.org/TR/css3-flexbox/#order-accessibility
Outside of the intended use for Flexbox to create a “Holy Grail” web page layout, teams are finding powerful ways to use Flexbox so that they don't have to update code for all changes. This saves time and effort and also creates a much faster user experience in lieu of slow Javascript DOM-changing.
Reason 1: Many people and teams may be contributing to the code and Flexbox allows the interface to change when needed without possibly losing more than a week to get updated code.
Reason 2: A/B testing can easily be done without having two sets of code
Example 1: Data coming in from the database can easily be arranged on a page without having to have code updated. In this real-world example, the UX designer is able to move a link to report a defect to the end of a bunch of menu links.
Example 2: Data is rearranged on an page so that the number of messages a person has comes after his name rather than before. This is easily done by the designer.
http://www.w3.org/TR/css3-flexbox/images/flex-order-page.svg
box 1, box 2, box 3
box 3, box 2, box 1
box 3, box 2, box 1
If Flexbox is used to rearrange content that has a meaningful sequence, there should be a parameter that states that the sequence of the boxes is meaningful and the box tree and accessibility API should be updated to also change the keyboard and screen reader flow to match the new visual layout.
Original W3C Working Draft http://www.w3.org/TR/css-flexbox-1/#order-accessibility
The order property does not affect ordering in non-visual media (such as speech). Likewise, order does not affect the default traversal order of sequential navigation modes (such as cycling through links, see e.g. nav-index [CSS3UI] or tabindex [HTML40]). Authors must use order only for visual, not logical, reordering of content; style sheets that use order to perform logical reordering are non-conforming.
Proposed Change (wording needs work)
The order property is able to affect the ordering in non-visual media (such as speech). Likewise, order may affect the default traversal order of sequential navigation modes (such as cycling through links, see e.g. nav-index [CSS3UI] or tabindex [HTML40]). Authors must use order only for visual, not logical, reordering of content; style sheets that use order to perform logical reordering are non-conforming. Authors my use order for both visual and logical reordering of content by using the parameter to establish the reordering of tab sequence for meaningful sequences.