I've been learning how users can interact to GNOME using just the keyboard, 
after reading Peter Vágner email to the (a11y) mailing list. Reading the 
documentation [2], the main shortcuts for keyboard navigation in applications 
are: 

1) Tab: Moves keyboard focus between different controls. Shift+Tab does the 
same in the reverse order. 

2) Ctrl+Tab: moves between groups of controls and can also break out of a 
control that uses Tab itself, such as a text area. Shift+Ctrl+Tab does the same 
in the reverse order. 

3) Arrows keys: Move selection between items in a single control, or among a 
set of related controls. 

It seems to me there some inconsistencies, or at least the definition of 
control, group of controls and items are fuzzy in practice. Some cases to 
explain this: 

gnome-control-center: What I expect is three groups of controls: find, 
Personal, Hardware and System. However, the Ctrl+Tab doesn't work as I 
expected. In this application, Tab behaves as I expected Ctrl+Tab should do. 
This means that find, Personal, Hardware and System are controls instead of 
groups and there are only two groups controls: find and everything else. The 
arrow keys allow me to move between all the the options.

Online accounts: This is tricky. The item selected from the list on the left 
determines the content of the right panel. The current keyboard navigation 
layout doesn't convey this relationship IMHO. The user starts in the first item 
of the list, pressing Tab moves the focus to the add button and pressing Tab 
again moves the focus to the controls on the right related to the item selected 
on the list. IMHO this behaviour is confusing. To convey this relationship, I 
guess that pressing Tab should move the focus to the controls related to the 
item selected on the list. However, this fix is not totally perfect, because 
the minus button for removing this account (and related of the selected item on 
the list), it is not the following button focused by pressing Tab, though it 
can be reached by pressing the left arrow. 

gnome-calculator: It works ok, except that there aren't any group of controls. 
I think it makes sense to have the following groups: calculator selector, 
calculator display and the keys. I like the fact I can navigate the keys with 
tab or using the arrows keys, but also you can use Ctrl+Tab, and this is not as 
good IMO. 

Region and Language: I focus in the language menu here. You can navigate the 
items of the list using Tab or the arrows keys. I find strange the fact the 
enter key doesn't work to activate the "more language" option and you have to 
press the space key instead. The language menu after pressing the "more 
languages" options is pretty similar to the previos menu. It has much more 
language-items and a search control. The navigation in the items is pretty 
similar, using Tabs or arrows keys. It is weird that the scroll of the list 
don't follow the item selected in the list, so the selected item can be out of 
view easily. 

In general terms, I think that the keyboard navigation will benefit of a better 
definition of control groups. This is something that it has to be done along 
with the design of the interface, so I think it deserves a section in the HIG 
and mentioned in other sections. I take as granted that this can be done with 
the current version of GTK+. I think that the user should be able to reach 
linearly all the controls shown in the interface by pressing Tab (except when 
it is necessary to use Ctrl+Tab to  break out of a control that uses Tab 
itself). You can also navigate controls using the arrows, it becomes very handy 
when the group of controls have grid (or sort-of) layout. And finally, items in 
lists and similar can me reached by using the arrows, and unless the items can 
be considered a control itself, Tab shouldn't work here IMO. 

Another issue I think it deserves some attention is that accelerators are not 
shown in the menus of in certain redesigned applications like gedit. And, in 
general, accelerators are not shown in the Application Menus. Also, the use of 
buttons in the new design usually means as well that accelerators for those 
options are not shown. In previous/old designs, buttons usually were a way to 
help mouse oriented users to easy access to frequently used options, and those 
options were also in the menus with their accelerators. In the new designs, the 
buttons are usually the only way that those options are shown in the interface. 
They only way I can think of to show accelerators in buttons is by adding this 
info in the tooltips, but currently they only shown briefly desc of the action 
assigned to the button. My opinion is that accelerators must be shown because 
they really encourage users to learn how to use the applications using only the 
keyboard. I think it is good idea not to shown accelerators if not keyboard is 
detected, but, if detected, they must be shown by default. And related to this, 
GTK+ deprecated the support for changing accelerators since 3.10. This maybe is 
not a great lost, because it is supposed that most common accelerators are 
standarised by the HIG [4]. However it could be useful in certain situations, 
for example, when an option doesn't have any accelerator, adapt applications to 
other envs or personal needs, etc. 

I hope this message can help to get some debate and eventually take some 
actions to improve the situation :-)

Cheers,

-- Juanjo Marín 

[1] 
https://mail.gnome.org/archives/gnome-accessibility-list/2014-October/msg00001.html
 
[2] https://help.gnome.org/users/gnome-help/stable/keyboard-nav.html.en 
[3] 
https://git.gnome.org/browse/gtk+/commit/?id=2d79334bb069224966b3dcd8456967c9800e8fd0
 
[4] https://developer.gnome.org/hig/stable/keyboard-input.html.en
_______________________________________________
gnome-accessibility-devel mailing list
gnome-accessibility-devel@gnome.org
https://mail.gnome.org/mailman/listinfo/gnome-accessibility-devel

Reply via email to