Updates:
Cc: [email protected]
Labels: -OS-Windows -Area-BrowserUI OS-All Area-WebKit
Comment #1 on issue 27559 by [email protected]: Alt+Key should not trigger
content access keys on Windows
http://code.google.com/p/chromium/issues/detail?id=27559
Some information:
1. Please refer to issue 21624;
2. Some comments from third_party/WebKit/WebCore/page/EventHandler.cpp:
In EventHandler::keyEvent() method:
// In IE, access keys are special, they are handled after default
keydown
processing, but cannot be canceled - this is hard to match.
// On Mac OS X, we process them before dispatching keydown, as the
default
keydown handler implements Emacs key bindings, which may conflict
// with access keys. Then we dispatch keydown, but suppress its default
handling.
// On Windows, WebKit explicitly calls handleAccessKey() instead of
dispatching a
keypress event for WM_SYSCHAR messages.
// Other platforms currently match either Mac or Windows behavior,
depending on
whether they send combined KeyDown events.
In EventHandler::handleAccessKey() method:
// FIXME: Ignoring the state of Shift key is what neither IE nor
Firefox do.
// IE matches lower and upper case access keys regardless of Shift key
state -
but if both upper and
// lower case variants are present in a document, the correct element
is matched
based on Shift key state.
// Firefox only matches an access key if Shift is not pressed, and does
that
case-insensitively.
(Though apparently the last line is not correct, Firefox actually only
matches an
access key if Shift is pressed.)
So please be aware of following facts:
1. accesskeys are triggered by Char events rather than RawKeyDown events.
2. Browser accelerator keys are triggered by RawKeyDown events.
3. It's an issue in webkit rather than browser.
4. We send a RawKeyDown event to the renderer first then the corresponding
Char
event, so it's hard to know if a RawKeyDown event would trigger an
accesskey before
sending the Char event.
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
--
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/group/chromium-bugs