[css3-flexbox] ordering and accessibility concerns

I'm going to walk us through some a11y-related questions. :)

Flexbox allows page content to be reordered.
Two questions arising from this are then:
   A. Should tab-order be affected?
   B. Should speech order be affected?

I'm putting both in the same thread because we have this consistency
question:
   * Should tab-order be consistent with speech order or visual order,
     if they are different?

Flexbox allows content reordering in two ways:
   1. 'flex-direction: row | row-reverse | column | column-reverse ',
      which can effectively reverse the order of items
   2. 'order: <number>', which can arbitrarily reorder flex items

So when you take these in combination, we have four questions, really:
whether order and/or flex-direction affects tab-order and/or speech.

My opinions:

Currently authors can assume that speech, non-CSS UAs, and other
linearized media follow the DOM order. Therefore the best practice is
to put the source in logical order, and to use visual CSS techniques
to perform any reordering that improves the visual layout (since
visual media are 2D and visual elements can be accessed non-linearly
by the viewer). One of the main use cases for visual reordering features
is thus the ability to *not* affect linearized output. Otherwise, you
might as well reorder the content itself.

Therefore I strongly believe Flexbox's ordering features should *not*
affect speech output.

As for whether tab-order should follow visual or logical order, I
don't have a strong opinion. Maybe someone else has good arguments
one way or another. :)

~fantasai

Received on Wednesday, 20 June 2012 22:26:53 UTC