This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
Feature phones have 0 - 9 keys. Should their .code values be Digit[0-9] or Numpad[0-9]? If we assume them in Numpad, at least the key events of them should return true for the result of .getModifierState("NumLock").
I'd assume they should just be Digits.
I'd also assume Digits, since (on my phone) the numbers run across the top (reminding me of the physical keyboard layout above the ascii keys). For keyboards that are specifically numerical (e.g., key'd off of <input type="number">) then perhaps Numpad would be more appropriate.
tl;dr : 'Numpad' is the appropriate set of values to use. The 'Digit*' keys are the one that happen to produce digits for an US layout (and punct for the shifted state). In other locales (like French), they do not produce numbers in their unshifted state. The 'Digit' name is based on the US layout usage (since we had to choose a canonical layout for naming purposes). Thus, the 'Digit' name does not mean that these are primarily digit keys (just like 'KeyA' does not produce an 'A' in all locales. The 'Numpad' keys, on the other hand, are primarily number keys that are arranged in a grid. They are not affected by the current locale. These values are appropriate for numpads (on keyboards), calculators and phones.
Another summary: 'Digit' varies by locale, 'Numpad' doesn't.
I agree with Numpad* approach without NumLock hack because it makes fixing bug 27990 easier.
Text has been updated to specify that Numpad0 - Numpad9 should be used for phone keys. https://dvcs.w3.org/hg/dom3events/rev/b1ba98eac6aa