Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 43506 - [KeyBindings] preference page: usability issues
Summary: [KeyBindings] preference page: usability issues
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.0   Edit
Hardware: All All
: P4 major with 4 votes (vote)
Target Milestone: 3.3   Edit
Assignee: Paul Webster CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 42041 43928 44436 44989 55674 56772 63747 75075 80480 89723 96352 (view as bug list)
Depends on:
Blocks: 71124
  Show dependency tree
 
Reported: 2003-09-23 10:14 EDT by Jean-Michel Lemieux CLA
Modified: 2007-06-20 13:33 EDT (History)
20 users (show)

See Also:


Attachments
Improved overview of KeyBindings (32.59 KB, image/gif)
2004-09-01 21:54 EDT, Sandip Chitale CLA
no flags Details
Key Sequence based filtering (10.76 KB, image/gif)
2004-09-01 21:57 EDT, Sandip Chitale CLA
no flags Details
Natural key based filtering. (14.66 KB, image/gif)
2004-09-01 21:58 EDT, Sandip Chitale CLA
no flags Details
Command based filtering (31.71 KB, image/gif)
2004-09-01 21:58 EDT, Sandip Chitale CLA
no flags Details
The zip file containing the plugin. (38.21 KB, application/octet-stream)
2004-09-01 22:02 EDT, Sandip Chitale CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jean-Michel Lemieux CLA 2003-09-23 10:14:08 EDT
I'm using the new keys preference page for the first time and was a bit
confused. I was trying to assign keys to some of the new Team commands that I've
created. When browsing command names the bottom key sequence fields are not kept
in sync. I was confused that the key sequence was actually the *keys* assigned
to the selected command name. But I was wrong, the assignments just below show
that. But note that the language between the two groups are the same and can
lead to confusion.

suggestion:

Clear the key sequence selector group box when a new command is selected.
Comment 1 Jean-Michel Lemieux CLA 2003-09-24 09:45:53 EDT
On another note, I was playing around with another IDEs (cannot be named) and 
really like their key binding page. I find the layout they have selected 
really works because you can easily see the association between commands and 
key bindings. Then the area to select a new key is separate.

Also, it supports mnemonics in menus! Cool!

Anyway, the page has a tree table with first column shows Commands 
(hierarchical), and the second the Shortcuts. The bottom of the dialog is 
where you add/delete shortcuts. It also supports mouse shortcuts.
Comment 2 Chris McLaren CLA 2003-09-25 14:01:19 EDT
addition usability comments from 42041:

#7 From Daniel Megert 2003-08-28 10:10:
...
- before I noticed the coolness I tried to enter the shortcut via character keys
and not using modifiers. After entering Ctrl (which appeared as "CTRL") I was
not able to enter the "+" and I did not get any feedback that would bring me on
the right track
- with the new UI it is harder to get an overview of the available commands.
This was easier with tree than with the two drop downs.

#8 From Chris McLaren 2003-08-28 10:58:            
...
re entering key sequences: yes, perhaps a text on the dialog that tells the user to enter the key 
sequence directly, which perhaps throws up a warning icon and alters the text somewhat when the 
user types in unmodified characters. (people wouldn't intend to bind to a single unmodified letter 
for instance; that letter would be unusable in the editors.)
re: tree vs. dropdowns: this was a concerted effort to reduce the size of the keys preference page, 
which i believe had the dubious distinction of being the largest preference page in the 2.1 release. 
(currently, on the mac at least, i'm a fair bit smaller than java editor pref page.. :)

#10 From Gabriele Garuglieri, 2003-09-01 08:00: 
May i dissent on the choice of drop down menus vs tree view?
I completely agree with Daniel Megert, there are so many choices for categories
and names within them that unless you have the keys tree well cast in your mind,
like perhaps you developers have, finding an action without knowing in advance
to which category it belongs, is a real pain.
And not speaking of the fact that the tree view was giving an immediate grasp of
all the keys mapping organization.
In a few words i find this page really unfriendly at best and i'd rather vote to
have back the old tree view.
Comment 3 Chris McLaren CLA 2003-09-25 14:03:55 EDT
*** Bug 42041 has been marked as a duplicate of this bug. ***
Comment 4 Chris McLaren CLA 2003-09-30 14:34:33 EDT
*** Bug 43928 has been marked as a duplicate of this bug. ***
Comment 5 Douglas Pollock CLA 2003-10-02 10:14:07 EDT
I feel that the tree layout is better as well.  It matches the layout used by 
KDE and GNOME.  Another alternative, used by both NetBeans and Microsoft 
Visual Studio, is a long list.  In the case of Microsoft Visual Studio, they 
prefix a category to the name (so the list sorts well) and provide type-ahead 
searching.  See "http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/vsintro7/html/vxurfkeyboardenvironmentoptionsdialogbox.asp" for a broad 
description of how Visual Studio works (no pictures :( )
Comment 6 Chris McLaren CLA 2003-10-02 10:34:45 EDT
you know, i think i liked the tree layout better as well, but i didn't like 
the complaints that the preference page was way too large because of it. (for 
what it's worth, this preference page has caused me a lot of grief :)

one point worth mentioning here:
bug 7845 'API needed in Combo class to specify # of items visible' (38368 as 
well) is definitely a contributor to this usability problem.

i run eclipse primarily on the mac, and i don't mind the keys preference page 
because of the excellent combo/popup control on the mac. i find when i use my 
windows machine, bug 7845, with a hardcoded limit of 5 items, is truly 
annoying. according to some ancient ui guidlines i have around here somewhere 
(win 95 ui guidelines book, i think), typical combo drop down length should be 
between 5 and 12. i think if we could see 12 instead of the current 5, it 
would help somewhat.

of course, none of this necessarily means anything. we will be fixing this bug 
the right way so that (most) everyone is happy, but by 3.0, not by M4..
Comment 7 Chris McLaren CLA 2003-10-08 15:00:52 EDT
additional usability comments from bug 44436 (Michael Van Meekeren):

I find it very difficult to set key bindings in the Window > Preferences > 
Keys page. It took me three attempts to change Ctrl+F6 to just F6 when testing 
bug 37280. The difficulty is that it is difficult to differentiate between: 

- when you are viewing existing key bindings 
- when you are setting new key bindings
- what button do you need to press to assign a new key and to which category 
or configuration does it apply.

Perhaps a very simple wizard would help... i.e. a button, "Change a key 
binding"
-what key?
- when shoudl this key binding be valid?
-there is/is not a previous value, do you want to overwrite?
-OK
Comment 8 Chris McLaren CLA 2003-10-08 15:01:19 EDT
*** Bug 44436 has been marked as a duplicate of this bug. ***
Comment 9 Chris McLaren CLA 2003-11-04 14:01:06 EST
*** Bug 44989 has been marked as a duplicate of this bug. ***
Comment 10 Eric Estievenart CLA 2003-11-05 12:52:33 EST
additional usability comments from bug 44989 (expunged):

The arborescent view of the keys beside the tree of the
preferences was a bit strange in the UI, but at least it permitted
to jump from one action to another without opening one or two combos.

What would be great would be to :
- Keep the category combo over...
- ...a list of the commands of the category, which would have
  two columns, e.g.

Step Into         Shift+F5
Step Over         F6
Step Return       F7
Step With Filters F5
(the second one would be the active key, or whatever,
maybe with dots or 'more')

So that at one glance and with 4 clicks and 4 key strokes anybody could
setup the proper key bindings for stepping for example.

Hope this helps
Comment 11 Douglas Pollock CLA 2004-03-23 11:22:45 EST
*** Bug 55674 has been marked as a duplicate of this bug. ***
Comment 12 Dani Megert CLA 2004-03-25 03:04:28 EST
From bug 31731, comment 25 and bug 31731, comment 26:

>How can I find out using the Keys preference page which commands are available
>in a given context, e.g. dialog?
------- Additional Comment #26 From Douglas Pollock 2004-03-23 14:06 -------
Dani: No, I don't believe so.
Comment 13 Douglas Pollock CLA 2004-03-31 14:05:48 EST
*** Bug 56772 has been marked as a duplicate of this bug. ***
Comment 14 Tom Roche CLA 2004-04-06 19:15:51 EDT
IMHO the main usability problem (with the current UI, lessened but
still present with the tree UI) is finding

* the command to which to (re)map a key, particularly

* finding the category of the desired command

Use case: user wants to make a particular gesture (perhaps inherited
from a previous version or other tool) cause a particular UI change.
E.g. sometime prior to 3.0-M8 (on which I am now), C-S-w brought up a
nice window showing all one's currently-open editors. In 3.0-M8, C-S-w
CLOSES all one's currently-open editors: quite a change. So I sought
to remap C-S-w by going to Windows>Preferences>Workbench>Keys at which
I see UI like

Active configuration
Command
Key Sequence
When

Despite the fact that the help for

> Changing the key bindings
> Keys

still shows the old (and IMHO better) UI, I know how to map from
category to command to key: choose the category, choose the command,
remove old assignments (if desired), type the key sequence in the
appropriate field, and assign it.

But I have no idea how to go in the reverse direction: how can I find
the command that brings (or brought--perhaps I'm screwed) up the
window containing currently-open editors? (AFAICS--am I missing
something?) There is no assistance provided for finding the name of
the desired command, much less its category. Can the user lookup a
command or its category without guessing or brute-force search?

FWIW I also prefer the tree to the combos (and I don't give a damn how
big the @#$%^&! page gets :-) just because it makes BFS easier, but I
suspect a more usable alternative lurks ...
Comment 15 Randy Hudson CLA 2004-04-27 11:18:13 EDT
I'm using the 0422 build and the new keybinding page is not much different in 
function than the original.  The only improvement is the search text field.  
But the user often has *no* idea what the command is called because it never 
appears in a menu.  So how about accepting wildcards?

What the user really needs is "show me the keybindings which are effective in 
this editor only".  And then of course some of those commands are going to be 
inherited and changing them will affect other editor types, so somehow this 
should be indicated.  But when they remap a keybinding, they should be 
prompted "do you want to change this only for the FOO editor, or for all 
editors which use this keybinding".  Of course I am using the term editor 
incorrectly and it should be context or something.

Also, it should be possible to navigate immediately to a command by invoking 
its keybinding.  The "Key Sequence" Text control alreadly allows me to simply 
type the new keybinding.  The mysteriously unlabeled search Text control could 
allow you to do the same for existing keybindings.  Just type the keybinding 
and wham you're there.  I would also recommend describing both this and the 
name-lookup behavior of this widget with a Label.  You could proably get away 
with using a single Text control vs. 2 because most users no the names of 
BACKSPACE, UNDO, REDO, and DEL.

For multi-stroke accelerators, you could use a drop-down to show the current 
partial matches.
Comment 16 Douglas Pollock CLA 2004-04-27 11:23:08 EDT
Randy: Thanks for your comments, but the new keys preference page has been 
pulled -- starting with today's integration build.  We don't have enough time 
to iron out the bugs in the new preference page. 
Comment 17 Randy Hudson CLA 2004-04-27 12:02:29 EDT
That's very disappointing. What about adding the find-by-invoking Text Control 
to the old page?  This would improve the usability of the old page by 200%, 
studies indicate ;-).
Comment 18 Douglas Pollock CLA 2004-04-27 12:07:56 EDT
The (second) new page is being pulled partly because of that control.  There 
are some peculiar usability and performance problems with it, and the person 
who wrote the code is not here right now.  There are other problems with the 
page, and we just don't have enough time to have someone else go in and figure 
out the code and sort it out. 
 
If someone here wanted to devote the time to cleaning it up, we have a list of 
problems that need to be resolved. 
Comment 19 Randy Hudson CLA 2004-04-27 13:06:25 EDT
Now I am confused.  The control I am talking about does not exist on either the 
new (as of 0422) or old page.
Comment 20 Douglas Pollock CLA 2004-05-27 11:48:44 EDT
*** Bug 63747 has been marked as a duplicate of this bug. ***
Comment 21 Randy Hudson CLA 2004-08-13 11:47:29 EDT
I have a suggestions for a new UI for customizing keybindings (surprise :-).  
Instead of basing the UI on the implementation (Config/Category/Scope), base it 
on the user's mental model. I believe that the user would like to see a choice 
of things that they work with (mostly editors), such as "Java 
Editor", "Synchronize View".

(Alternatively, you could give the use *NO* choice, and they would edit 
whatever is currently active.  Or if not, at least the currently active mode 
could be pre-selected)

Once they have selected one of these, they could be shown the inheritance 
somehow, such as 'Java editing' inherits keystrokes from 'text editing'. Of 
course you would then show all of the actions available to this mode.  There 
should be a filter to show only actions which have keybindings. With this 
filter active, what you end up with sounds a lot like the patch which was 
recently created to display available keybindings.

So why not get more mileage from this UI and make it the mechanism for 
customizing keybindings too. All you need is the filter toggle, and a few 
buttons which walk the user through customization.  Instead of a conflict table 
and a "When" Combo selector, give the user choices they understand 
like "Remap", "Assign", "Unassign", "Remap for the Java Editor only".

Don't show the conflicts (assignments) until they matter. If I want to assign 
CTRL+RIGHT to "Navigate/Go Into", I don't care that it means "Next Word" when 
editing text.
Comment 22 Sandip Chitale CLA 2004-08-24 13:45:40 EDT
Starting from 3.0 release, I find the Keys preferences page very confusing. I 
think the page is trying to do too many things. I think there should be a 
separate sub dialogs to show different aspects of key bindings:

1. To show to which keys a particular command (from a simple sorted list) is 
bound to in which context for current key configuration, platform, locale. The 
user should be able to show key bindings for additional key configurations, 
platforms and locales for comparing.

2. To show what commands are bound to a particular key sequence. The user 
should be able to simply type that key sequence. The user should be able to 
show key bindings for additional key configurations, platforms and locales for 
comparing.

The main page should concentrate on assigning key sequence to a command (once- 
again selected using a simple sorted list of commands). Once the command is 
chosen only allowed key configurations, contexts, platforms and locales should 
be available. The conflicts should be shown with explaination.
Comment 23 Sandip Chitale CLA 2004-09-01 21:54:30 EDT
Created attachment 14344 [details]
Improved overview of KeyBindings

An improved ui for showing an overview of keybindings.
Comment 24 Sandip Chitale CLA 2004-09-01 21:57:39 EDT
Created attachment 14345 [details]
Key Sequence based filtering

Uses org.eclipse.ui.internal.keys.KeySequenceText.
Comment 25 Sandip Chitale CLA 2004-09-01 21:58:16 EDT
Created attachment 14346 [details]
Natural key based filtering.

Uses org.eclipse.ui.internal.keys.KeySequenceText.
Comment 26 Sandip Chitale CLA 2004-09-01 21:58:53 EDT
Created attachment 14347 [details]
Command based filtering
Comment 27 Sandip Chitale CLA 2004-09-01 22:02:33 EDT
Created attachment 14348 [details]
The zip file containing the plugin.

The plugin I have implemented for above attachments. The plugin works on 3.0
and 3.1.

Feel free to integrate it into the product.
[DISCLAIMER: The plugin is as is. No guaruntees]
Comment 28 Randy Hudson CLA 2004-09-02 10:10:18 EDT
That's a nice UI for searching through all keybindings globally. But I still 
stand by my comments from above:

1) The user should be able to see keybindings for the current "contexts" or any 
other.  I don't see a reason to ever present all keybindings to the user.  When 
you customize the keybindings in Microsoft Word, you aren't bombarded with the 
commands from Excel and Powerpoint.
2) The user should be able to make changes without learning an additional UI.
Comment 29 Douglas Pollock CLA 2004-09-02 10:21:53 EDT
But, for example, look at the keyboard customization dialog for Microsoft 
Visual Studio.  Also, you should try "Ctrl+Shift+L", if you haven't already. 
Comment 30 Douglas Pollock CLA 2004-09-02 11:39:27 EDT
Could this patch be modified to fit into the existing preference page?  Could 
you explain a bit more about this plug-in (e.g., why the "X" on some contexts 
and not others, why only natural keys and not the full key binding, etc.)? 
 
Comment 31 Sandip Chitale CLA 2004-09-02 14:44:06 EDT
I guess the plugin is really meant to be invoked at anytime while working in 
the Eclipse IDE. It is somewhat analogous to the "multi key stroke assist" 
window. The "multi key stroke assist" window only appears when the user types 
part of the multi key stroke key sequence. The difference is that this plugin 
can be invoked at anytime to explore the keybindings for applicable context
(s). The user is able to explore using either the key sequence, natural keys 
or command by simply typing the prefix in respective text boxes. Note that the 
popup window is context sensitive. It shows the most applicable key bindings 
in dark gray background. It shows the next most applicable key bindings in 
gray background. The keybindings that are not in the currently active contexts 
are shown in gray foreground. The [X] on some of the contexts is meant to show 
that that context is not currently active. It also helped with sorting the 
Contexts column so that non applicable rows are displayed at the end of the 
table. The [X] could be changed though.

The panel at the bottom shows the active platform, configuration and contexts 
with their ordinal numbers.

The natural key based exploration allows the user to see what variants of 
natural key + modifier are already taken and by inverse which are combinations 
are not taken so that more key bindings could be defined. It also helps to 
analyze the consistency of key binsingd i.e. the meaning of modifier. Does 
that make sense?

[The plugin was inspired by the describe-key and where-is commands in Emacs]

I am not a Eclipse developer so I do not know how to create a patch.
Comment 32 Douglas Pollock CLA 2004-09-27 09:30:01 EDT
*** Bug 75075 has been marked as a duplicate of this bug. ***
Comment 33 Georg Sendt CLA 2004-09-27 09:41:04 EDT
Add category 'All' with all command names

In the Keys Preference Dialog tab Modify add the command category 'ALL' that
contains all command names. So the user has not to search through all categories
to find a certain command name
Comment 34 Michael Van Meekeren CLA 2004-09-27 09:45:06 EDT
"All" should probably also be the default selection
Comment 35 Randy Hudson CLA 2004-09-27 10:46:21 EDT
Having "All" be the default would be like having the open type dialog default 
to "*".
Comment 36 Douglas Pollock CLA 2004-10-20 21:25:14 EDT
Taking all of Chris' [KeyBindings] bugs. 
Comment 37 Jin Li CLA 2004-12-08 11:27:17 EST
Just a few quick observations on key bindings UI from the v3.1 M3 driver.

1. I like the fact that users can now view all the key mappings (in one glance)
2. I am an advocate for DM (direct manipulation) for UI, so making the "view" 
tab read only is not a good thing for usability. I think there's opportunity 
to combine the current "view" and "modify" tab into one coherent whole, where 
users can get an overall view of their current key mappings, while having the 
ability to modify individual elements on the list. However, one key usability 
improvement would be to make sure that the "active configuration" (e.g. 
default, Emac...) drives the visible list. Currently, there's no clear mental 
model linkage for users who initially stare at the list in the "view" tab
3. I feel we are introducing a "visual language" for users to define their key 
bindings (for example, in the "modify" tab, (extends Default), (extends 
Editing Text) in the UI is totally strange to me). As a user, I have done 
enough coding in the source editor, now in the UI dialog box I need to think 
in terms of super class again? :-)
4. Minor point: if we provide an "export..." feature, would users be able to 
import their own mappings defined outside into the IDE (and give it a 
configuration name)?
Comment 38 Randy Hudson CLA 2004-12-08 11:58:52 EST
I strongly agree and disagree with Jin's comments. The new table presentation 
and default filter of showing all commands is a disaster.  It almost works for 
Eclipse by itself. But, doesn't scale and requires that the user guess at the 
category a command falls under (is it Text, or Source, or maybe Edit?? They're 
all the same thing, and wait until GEF adds Format to the list of categories).

There needs to be "context" (in the user sense) selection such as Workbench, 
Java Editor, HTML Editor, PDE Editor, Synchronize View, etc.  For the selected 
context, a tabletree should probably be available, but I'd like to be able to 
turn off the grouping by category.  It doesn't help me when I already know the 
Action's name.

I agree that this tab should be the only tab and should provide customizing.
Comment 39 Douglas Pollock CLA 2004-12-08 12:26:01 EST
Perhaps this isn't clear, but clicking on one of the columns will cause the 
list to be sorted by that column.  So, for example, clicking on the context 
column would cause the list to be sorted by context. 
 
Comment 40 Douglas Pollock CLA 2004-12-08 12:26:40 EST
*** Bug 80480 has been marked as a duplicate of this bug. ***
Comment 41 Randy Hudson CLA 2004-12-08 12:50:57 EST
I noticed that, despite the strange >column< markings. So this is a workaround 
to filtering by context, but then I would want secondary sorting column.

This column is taking up a lot of horizontal real estate to show what should be 
in a heading or combo box of some type.  Another possibility, is that the 
keybinding preference page appear in multiple places with different root 
inputs.  So under Java->Editor, there would be a Keybindings page or tab.
Comment 42 Dani Megert CLA 2004-12-08 12:55:55 EST
The Keys pref page should also allow to view all key bindings, currently it only
shows the ones with an assigned key sequence. This is especially a problem for
new users that look for a command which has no key binding yet. Finding it on
the Modify page requires the user to search in the various categories.
Comment 43 Douglas Pollock CLA 2004-12-08 13:10:00 EST
There is a secondary (and a tertiary and a quaternary) sort column.  However, 
to keep the UI simple, only the primary sort column is indicated.  Clicking on 
the context column actually makes the sort order: context, categories, 
command, key sequence. 
 
How do people feel about removing categories entirely?  Is this feasible? 
 
 
Comment 44 Douglas Pollock CLA 2005-02-21 11:29:50 EST
I'm hoping to look at this again for 3.1.
Comment 45 Douglas Pollock CLA 2005-04-01 09:06:36 EST
*** Bug 89723 has been marked as a duplicate of this bug. ***
Comment 46 Douglas Pollock CLA 2005-04-12 11:37:02 EDT
The preference page re-work has been pulled for the 3.1 plan to work on performance.
Comment 47 Randy Hudson CLA 2005-04-12 11:45:25 EDT
Is the keybinding table going to get pulled as well?  It is rather misleading, 
since there are lots of commands which can have keybindings assigned, but they 
don't appear in that table because there is no current binding.
Comment 48 Douglas Pollock CLA 2005-04-12 11:46:46 EDT
There is no further work planned for the keys preference page for 3.1.
Comment 49 Douglas Pollock CLA 2005-05-24 11:36:14 EDT
*** Bug 96352 has been marked as a duplicate of this bug. ***
Comment 50 Michael Van Meekeren CLA 2006-04-21 13:14:40 EDT
Moving Dougs bugs
Comment 51 Paul Webster CLA 2007-06-20 13:33:40 EDT
New keys page in 3.3
PW