W3C home > Mailing lists > Public > public-apa@w3.org > January 2016

Flex box and CSS

From: Richard Schwerdtfeger <schwer@us.ibm.com>
Date: Wed, 13 Jan 2016 10:03:17 -0600
To: public-apa@w3.org, fantasai <fantasai.lists@inkedblade.net>
Cc: Bo J Campbell <bcampbell@us.ibm.com>
Message-ID: <OF32E694D3.B3D44100-ON86257F39.00546807-86257F39.0058311B@us.ibm.com>

Janina asked me to write up why the FlexBox accessibility solution "don't
do that" is unacceptable.

Flexbox is a very powerful solution that developers and designers want to
make use of - including in IBM as it allows the author to visually
restructure the order of the presentation of content without a very
expensive restructuring of the DOM. The solution proposed in the CR draft
is to say "Don't do that."

I work at a large corporation with over 1000 products. Designers find out
something works visually and they say they are done. Very seldom do they
pay attention to the "don't do that statement". What then happens is the
accessibility people are having to go in and tell them that they can't do
that. What then happens is people of disabilities are singled out as it
places a burden on the developer and the accessibility people appear like
the grim reaper. The most gross example of this was WCAG 1.0 where the
accessibility community said don't use CSS and JavaScript. Developers were
forced to create alternative content, compromise the user experience, and
from a personal perspective cost IBM millions of dollars to create an
alternative solution - ARIA. This expense was magnified by all the W3C
members who invested in bringing it to industry adoption level. Where would
the web, today, be without this investment.

At the California TPAC, 2 years ago, PF met with Fantasai and other members
of the CSS working group. We made it clear that it was possible to make CSS
Flexbox accessible. What was necessary was that they include a feature that
stated that the flexbox order represented a meaningful sequence. What that
would trigger is:

- The accessibility tree would be constructed in the order of the Flexbox
order. If flexbox styling was activated inside another Flexbox section the
accessibility tree would be constructed accordingly. So, it is recursive.
- The tabindex sequence would follow the flexbox order. So, what would
happen is you tab to through the DOM tree until you reach a flexbox box
(first in the sequence). You would tab to the first focusable item in that
sequence and follow the normal tab order within the box until you tab out
and reach either the next box in the sequence (and repeat the process) or
tab out to first element in the sequence in the DOM following the Flexbox.

So, this is doable and it highlights a much more serious issue with CSS
which is not addressing interoperability with assistive technologies. The
HTML, SVG, and ARIA working groups all do this yet one of the most
important standards sets within W3C does not. In fact, they also do not
address CSS content injection. None of this content is available through
the DOM but it can be through platform accessibility APIs. There is no
conformance specification in CSS that addresses this issue
(interoperability with assistive technologies).

I went so far as to put an engineer in the CSS working group to put focus
on the FlexBox and other CSS issues but the only thing that came out of
this was a "Don't do this" or "punt." ... IBM spent money and time on this.

I do not want to see a repeat of what happened with WCAG 1 but I see
history repeating itself again. Even WCAG 2 is forced to prohibit content
injection for accessibility. However, with the growth of the mobile web we
need CSS to address performance issues.

I find it extremely discouraging that after 2 years of this being raised
all the CSS working group can muster is a "don't do that." We need an
inclusive web and we need to ensure that technologies coming out of W3C are
accessible from the get go.

Rich Schwerdtfeger
Received on Wednesday, 13 January 2016 16:04:50 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 13 January 2016 16:04:50 UTC