- From: <bugzilla@jessica.w3.org>
- Date: Thu, 12 Jun 2014 18:04:42 +0000
- To: public-webapps-bugzilla@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26019
--- Comment #4 from Masayuki Nakano <masayuki@d-toybox.com> ---
(In reply to Travis Leithead [MSFT] from comment #3)
> (In reply to Masayuki Nakano from comment #2)
> 1. Some of the getModifierState params duplicate existing attributes, e.g.,
> "Alt" and the altKey IDL attribute. Consequently, I've not created the new
> initializers for "Alt", but have made it explicit (in the prose for the
> existing "altKey" initializer on the dictionary) that is also sets the
> internal modifier state of the event such that calls to
> getModifierState('Alt') also return true. This avoids the duplication.
I believe that it's right approach. If D3E allows two names for a state,
following case is really a problem:
new Event("", altKey: true, modifierStateAlt: false);
So, I agree with that modifier states which can be represented by legacy fooKey
shouldn't be initialized with modifierState*.
> 2. When initializing "ctrlKey" or "metaKey" I define that the internal
> states for getModifierStates "Control" and "Meta" are set (as described
> above), but also that the virtual "Accel" modifier is also set. So
> initializing "ctrlKey" to true will cause calls to
> getModifierState("Control") and getModifierState("Accel") to also return
> true.
I think that it's not problem. Additionally, web apps can test which modifier
is the "Accel". E.g.,
var ctrlEvent = new KeyboardEvent("", { ctrlKey: true });
var metaEvent = new KeyboardEvent("", { metaKey: true });
var accelText = ctrlEvent.getModifierState("Accel") ? "Ctrl" :
metaEvent.getModifierState("Accel") ? "Command" : ...;
Like this, web apps can show proper modifier key label dynamically.
> 3. Given #2 above, I'm going to assume that if either "ctrlKey" OR "metaKey"
> is true, then "Accel" is also true, rather than using ("ctrlKey" AND
> "metaKey") logic.
However, depending on the prefs on Firefox. Firefox can also set "Alt" or "OS"
(and "Super", "Hyper" soon) as a modifier for acceleration. Although, it must
be rare case. Anyway, modifierStateAccel should not exist in the dictionary.
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Thursday, 12 June 2014 18:04:43 UTC