Bug 83053 - accesskeys conflict with normal shortcuts
Summary: accesskeys conflict with normal shortcuts
Status: RESOLVED FIXED
Alias: None
Product: konqueror
Classification: Applications
Component: khtml (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: bj
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-06-08 20:15 UTC by Olivier Goffart
Modified: 2006-06-23 15:24 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
change accesskey to "-". "_" displays all accesskeys (4.43 KB, patch)
2004-07-12 02:04 UTC, bj
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Olivier Goffart 2004-06-08 20:15:17 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources

I was surprised today when i discovered than the html accesskey works in Konqueror

They are available with the ctrl+alt+key

But they conflict with shortcut,  ctrl+alt+d for example is the default to see the desktop.

Suggestion: we press the key '/' for the type ahead feature.   we could type '*' for the accesskey.
example: * a   would be the same as ctrl+alt+a

also, the specification doesn't restrict the kay to alphanum char. but it could be some special chars "ĂȘ"  that need two keys to be entered.    *^e  would solve the problem.

what do you think?
Comment 1 bj 2004-07-12 00:01:48 UTC
I fully agree with this, but I would vote for another key since many laptops don't have a numpad. What about '<' ?

The only problem I see is that you will not be able to type accesskeys if you are inside a linedit or textarea. But still I think it is better than the current conflicting behaviour.

Additionally, I think it could be great if pressing for example '>' could pop up a small tooltip above all elements that have an accesskey with the corresponding key.

If you think it is interesting, I have a patch that implements all this.

regards
Comment 2 bj 2004-07-12 01:49:57 UTC
Just realized my previous comment doesn't make sense on US keyboards. I meant it would be nice if the accesskey shortcut is a just _one_ key. The best solution I found would be to use "-". Seems to be easy to reach on most keyboards.

Also changed the bug severity from wishlist to normal, since there are many conflicts which make the accesskeys really unusable (shift-ctrl-l locks the desktop!)
Comment 3 bj 2004-07-12 02:04:24 UTC
Created attachment 6632 [details]
change accesskey to "-". "_" displays all accesskeys

Oups, I assigned the bug to myself by mistake. 
Anyways here is the patch changing shortcut to "-". 
Also implements the "show all accesskeys" feature I was talking in my #1
comment (Maybe this last thing is more a feature than a bugfix, so could be
kept back for later). Let me know what you think
Comment 4 Germain Garand 2004-07-12 03:07:03 UTC
Hi Jean-baptiste,
I think your patch looks good, but that it doesn't solve the main problem : advertisement. 

Accessibility is not an advanced feature, so people should be able to find the accessor intuitively.

Every HTML doc out there on the web advertise the accesskey combination as being Alt+<key>, so why not just use that?

If you have noticed, the normal Alt+key behaviour is very sane in case of conflict:
it simply cycle between all identical top level menu accelerators, popping them on the way.

So what would work nicely is as follow:

Given a keypress of Alt+Key_X

1) if no element has focus or currently focused element doesn't have a matching accesskey
 => look for the first element with access key "X"

- not found? let the event slip to the application for top level menu handling
- found ? => focus

2) else if an element has focus and has a matching accesskey,
  => look for next element with accesskey "X" 
  
- no more? let the event slip to the application
- found ? => focus

and then you have a good, standard compliant,  accessor cycling and no conflict.
What do you think?

Otherwise, your idea of popping all accessors at once is all fine, but again, people will have to know beforehand about the key... not sure they'll find out ;-(
Anyway, that's rather a bonus feature for die-hard accessibility users, so that's OK
if it's not obvious - provided it's documented somewhere.
Comment 5 Germain Garand 2004-07-12 04:22:33 UTC
oh wait... I see the bummer...
"alt" combinations used at the application level would never reach the event handler.

OTOH the key "alt" itself, before any combination, would reach it...

that might be used for triggering the popups, without actually consuming the event.
Then if your popup include the accessor on top of the key, it's pretty self-documenting.

mmh, all this business feels so hacky ;-(
Comment 6 Olivier Goffart 2004-07-12 08:57:13 UTC
the  alt+ctrl+[key] still works.
This is just an additional way to acess theses key.

it even show you a popup because in general, thoses key are quite hidden in the page.

Now, that's true we should find a way to tell the user the key - and _ exists. 

Jean-baptiste, will that patch be included in kde 3.3?  
The string frezee is soon.
Comment 7 Olivier Goffart 2004-07-12 09:29:29 UTC
when you press "_"  popup don't disapears quick enough.
maybe remove them when the key is released.
Comment 8 bj 2004-07-12 12:06:49 UTC
Using "alt" to display the popup isn't great because pressing "alt" makes 
focus move out of the view (bringing it to konqueror's menus).

Also using Alt or Ctrl to show the popup but then a different modifier for 
accesskeys isn't very logical I think (since Ctrl and Alt are usually used as 
modifiers). I personnaly think "-" and "_" is still a better solution.

For advertising, we could clearly mention the "-" and "_" keys in the :about 
page from konqueror (and also add accessibility shortcuts to that page)

By the way, my patch disables the old "ctrl+alt" behaviour. I think it is too 
bad if trying to use an accesskey locks the desktop.

I know string freeze is close, and I think having a good working accesskey 
system would be a real plus for konqueror.
Should I submit the patch on the kfm mailing list ?
Comment 9 bj 2004-07-12 13:24:16 UTC
Hmm, I had another idea:
Use "Ctrl" as for accesskeys, but only if the Ctrl button is released before pressing another key.

For example, pressing "Ctrl+a" would still select all.
Pressing "Ctrl" then "a" would activate the "a" accesskey.
And "Shift+Ctrl" could be used to display all accesskeys.

I have a patch ready for this... What do you think?
Comment 10 Germain Garand 2004-07-12 14:14:20 UTC
well, if it really works fine, that would indeed look much better to me than "-"/"_"
I presume you still give feedback in the status bar?

You might get some flak from people believing modifiers shouldn't engage any action by themselves... but I think this is the best compromize found so far.

Can you post the patch on kfm-devel and ask for comments?
Comment 11 bj 2004-07-12 19:10:43 UTC
Using "alt" to display the popup isn't great because pressing "alt" makes 
focus move out of the view (bringing it to konqueror's menus).

Also using Alt or Ctrl to show the popup but then a different modifier for 
accesskeys isn't very logical I think (since Ctrl and Alt are usually used as 
modifiers). I personnaly think "-" and "_" is still a better solution.

For advertising, we could clearly mention the "-" and "_" keys in the :about 
page from konqueror (and also add accessibility shortcuts to that page)

By the way, my patch disables the old "ctrl+alt" behaviour. I think it is too 
bad if trying to use an accesskey locks the desktop.

I know string freeze is close, and I think having a good working accesskey 
system would be a real plus for konqueror.
Should I submit the patch on the kfm mailing list ?


Comment 12 bj 2004-07-30 20:46:29 UTC
CVS commit by mardelle: 

* Fix accesskey handling with numlock
* When accesskeys are activated, it swallows the next key event if it is a single key (as suggested by lubos's patch).
* When accesskeys are activated, small tooltips popup showing the existing accesskeys (as discussed on kfm-devel)
* Removed the timeout. Pressing any key will leave the Accesskey mode

Activating accesskeys is now done by pressing & releasing the ctrl key, then pressing the access key

CCMAIL: 83053-done@bugs.kde.org


  M +42 -16    khtmlview.cpp   1.656
  M +8 -0      khtmlview.h   1.212



Comment 13 Sy Ali 2006-06-23 15:24:03 UTC
Bug 129705: Customise accesskeys hotkey combinations and timing

disagrees with:

"Activating accesskeys is now done by pressing & releasing the ctrl key, then pressing the access key"