- From: Matthew King <mattking@us.ibm.com>
- Date: Tue, 30 Sep 2014 06:08:05 -0700
- To: Bryan Garaventa <bryan.garaventa@ssbbartgroup.com>
- Cc: Alexander Surkov <asurkov@mozilla.com>, Joseph Scheuhammer <clown@alum.mit.edu>, W3C WAI Protocols & Formats <public-pfwg@w3.org>, Alexander Surkov <surkov.alexander@gmail.com>, Yura Zenevich <yzenevich@mozilla.com>
- Message-ID: <OF17C06FA7.D29EC7FB-ON88257D63.004718F0-88257D63.00482695@us.ibm.com>
> That’s the problem, when focus is on a Gridcell node, no additional
roles and states are conveyed within the gridcell.
Conveyed by Firefox? Or by the screen reader? Sounds like a bug.
> How would a state for an embedded toggle button be conveyed while focus
is on a Gridcell node as part of the naming calculation?
State is not part of name, but I am assuming you are asking about how a
screen reader would convey both the toggle name/state and the grid cell
name/state?
First, if the focus is on the gridcell, I am assuming that ascreen reader
will read it just like a table cell that contains a toggle button. For
example, create a standard table cell that contains a toggle and then use
the JAWS alt+ctrl+left/right/up/down to navigate to that cell. The way
that is read is exactly how JAWS should read it if navigating a grid with
the arrow keys and the cell gets focus.
> How do you prevent the entire contents of an embedded listbox control
from being announced instead of just the selected option using the same
calculation while focus is still on the Gridcell node?
It is up to a screen reader to decide how to present a listbox. But, the
same approach that applies to the button applies to the list box. When a
gridcell containing a listbox gets focus in grid navigation mode, it
should be announced in the same way a listbox in a normal table cell
would get read with the screen reader table reading commands.
Matt King
IBM Senior Technical Staff Member
I/T Chief Accessibility Strategist
IBM BT/CIO - Global Workforce and Web Process Enablement
Phone: (503) 578-2329, Tie line: 731-7398
mattking@us.ibm.com
From: Bryan Garaventa <bryan.garaventa@ssbbartgroup.com>
To: Matthew King/Fishkill/IBM@IBMUS,
Cc: Alexander Surkov <asurkov@mozilla.com>, Joseph Scheuhammer
<clown@alum.mit.edu>, W3C WAI Protocols & Formats <public-pfwg@w3.org>,
Alexander Surkov <surkov.alexander@gmail.com>, Yura Zenevich
<yzenevich@mozilla.com>
Date: 09/29/2014 08:22 PM
Subject: RE: Operable Grid Cell
That’s the problem, when focus is on a Gridcell node, no additional roles
and states are conveyed within the gridcell.
I verified this using JAWS and NVDA.
I’m not even sure how that would work from a naming perspective.
How would a state for an embedded toggle button be conveyed while focus is
on a Gridcell node as part of the naming calculation?
How do you prevent the entire contents of an embedded listbox control from
being announced instead of just the selected option using the same
calculation while focus is still on the Gridcell node?
From: Matthew King [mailto:mattking@us.ibm.com]
Sent: Monday, September 29, 2014 5:58 PM
To: Bryan Garaventa
Cc: Alexander Surkov; Joseph Scheuhammer; W3C WAI Protocols & Formats;
Alexander Surkov; Yura Zenevich
Subject: RE: Operable Grid Cell
Put those elements inside the gridcell just as you describe them.
That is all you should have to do in terms of markup.
The web app JS provides the keyboard navigation per the APG.
Now, if you are using a screen reader, when you put focus in the grid and
arrow among cells, the screen reader should read the cell contents, the
cell coordinates, and cell labels in whatever manner that screen reader
chooses to present that information.
If the cell content is a pressed toggle, the screen reader should read it
as such. If that toggle is the only thing in the cell, then pressing enter
or space should toggle the state if the web app designer has chosen to
make the cell actionable in grid navigation mode.
Further, if the cell content is an input of type text, pressing enter
should put focus in the edit and announce that is now in an edit field.
One challenge with some screen readers like JAWS is that when navigating
the grid, one must already be in forms mode. So, there would not be the
characteristic beep when the edit becomes editable. VoiceOver would not
have that problem.
JAWS doesn't really have a way of distinguishing between the navigation
mode and the actionable mode of a grid. And, I think there is a general
cause for questioning the need for a "actionable" mode. This is part of
the APG that I do not like. It seems to me that an interaction pattern
more like a typical spreadsheet would be better. That is, you are always
in navigation mode unless you choose to interact with a specific cell.
Then, when interacting with that cell, you stay in that cell till you are
done and jump back into navigation mode to move to another cell. This
would in effect make a single cell "quasi-modal", meaning you are stuck in
it from a keyboard perspective until you "leave it". There could be a
variety of ways of leaving, depending on the type of app.
Matt King
IBM Senior Technical Staff Member
I/T Chief Accessibility Strategist
IBM BT/CIO - Global Workforce and Web Process Enablement
Phone: (503) 578-2329, Tie line: 731-7398
mattking@us.ibm.com
From: Bryan Garaventa <bryan.garaventa@ssbbartgroup.com>
To: Joseph Scheuhammer <clown@alum.mit.edu>, Matthew
King/Fishkill/IBM@IBMUS, Alexander Surkov <surkov.alexander@gmail.com>,
Cc: Alexander Surkov <asurkov@mozilla.com>, W3C WAI Protocols &
Formats <public-pfwg@w3.org>, Yura Zenevich <yzenevich@mozilla.com>
Date: 09/29/2014 01:24 PM
Subject: RE: Operable Grid Cell
The problem here though isn't the mode of interaction, but rather, how to
convey differing types of gridcell types to the user.
Take the following example.
There is an interactive grid, with one row from left to right, that
contains four gridcell nodes.
The user, in Forms/Application mode using a screen reader, moves focus
between gridcell nodes using the arrow keys, and focus is moved between
each gridcell node (element with role=gridcell) specifically.
The leftmost gridcell is a toggle button, with a pressed state that needs
to be conveyed to the user.
The next gridcell is an editable string that needs to convey that it is
editable to the user.
The next gridcell is a listbox control that needs to be stepped into in
order to allow selection, and also has a default value that needs to be
conveyed to the user while focus is on the gridcell node, and the role of
listbox needs to be conveyed at the same time to convey the purpose of
this gridcell.
The next gridcell contains embedded content as well as active elements,
which is a mixed bag of control types that needs to be stepped into while
conveying this purpose to the user while focus is still on the gridcell.
So, how do you do all of these things at the same time without having to
resort to offscreen or explicit label strings like "LabelText Toggle
Button Pressed" for example?
-----Original Message-----
From: Joseph Scheuhammer [mailto:clown@alum.mit.edu]
Sent: Monday, September 29, 2014 12:12 PM
To: Matthew King; Alexander Surkov
Cc: Alexander Surkov; Bryan Garaventa; Joseph Scheuhammer; W3C WAI
Protocols & Formats; Yura Zenevich
Subject: Re: Operable Grid Cell
What Matt said.
I was going to point out that the APG section on grid, although centred on
keyboard access, does hint at how to treat individual gridcells as
"actionable" (the APG term) vs. "read-only".
But, Matt beat me to it.
--
;;;;joseph.
'Array(16).join("wat" - 1) + " Batman!"'
- G. Bernhardt -
Received on Tuesday, 30 September 2014 13:08:40 UTC