I've been looking into mapping input devices for a fair while, and I think
it's not a straighforward problem to solve for a UA (or even a OS).
Difficulties include, but are not limited to:
- Buttons reported by the driver as axes
- Axes reported by the driver as buttons
- Buttons which are also axes (on the device)
- What an app-developer would want to map an input as
- Combos
- New devices and browser update cycles (do you really want to
disadvantage browsers with slower update cycles from using newer devices?)
- Differences in how different OSes report devices
- Devices which cannot be fit into standard mapping schemes (basically
everything but gamepads, and even there it doesn't work)
It is my belief that UAs should leave mapping alone, and if mapping is
appplied, always make it possible for a developer to get the unmapped
inputs, so that the marketplace (of libraries/APIs/Services) can take care
of that problem.