Some info about this API WRT fingerprinting:
As defined, this API only returns the highest ASCII-capable keyboard layout. For the US, this will be a QWERTY-US mapping for almost everyone, although some people with French or German as their primary layout would report a AZERTY or QWERTZ mapping. For people in the US with Russian or Arabic as their primary lang, the value returned would fall back to QWERTY (or whatever their highest ASCII-capable layout is). So most people in the US will report a QWERTY mapping regardless of their currently active layout.
Users with active dvorak or colemak layouts would be distinguished because those are different, ASCII-capable layouts.
Of interest is the difference between US and UK layouts. The mapping is subtly different (£ instead of # above the 3), and the UK layout provides values for keys that are not present on the US layout. So people with active US vs active UK layouts could be distinguished, but just having a UK layout on your computer in the US would not be revealed unless it was the active layout.
Note that the layout is a OS-software-thing and not a keyboard-hardware-thing. Plugging in a UK keyboard and using it with a US layout still appears as a US layout. E.g., all US layout keyboards are identical as far as this API is concerned.
Basically, the API would group almost all users into buckets that roughly corresponded to the country they were living in. And most of the world (with primary Russian, Arabic, Asian, et al. layouts) would appear in the same bucket as QWERTY-US (or AZERTY, depending on their non-native default).
Contrast this with things that we *do not* do in this API:
* We do not provide info about the currently active layout, since that would permit more accurate fingerprinting based on English, Arabic, Russian, et al.
* We do not provide a list of all installed layouts, since that could be used to identify users who have installed, but rarely use, uncommon layouts for that country (e.g., Japanese in the US)