CLDR v22 adds an XML specification for keyboard layouts, and over 370 new files of XML keyboard mappings (latest / dev), collected from publicly available data for four different platforms: Android, Chrome OS, OS X, and Windows.

Such a standardized format allows for the communication of keyboard mapping data between different modules, and the comparison of data across different vendors and platforms. The standardized identifier for keyboards can be used to communicate, internally or externally, a request for a particular keyboard mapping that is to be used to transform either text or keystrokes. The corresponding data can then be used to perform the requested actions.

There are some basic charts that show aspects of this data.

Layouts (Latest / Dev)

These show the different available layouts per locale. In each layout, the key is gray if it doesn't generate anything, and green if it has either a long-press or a transform (dead-key). The green keys will show their results if you hover, such as:

    • ̀a→à; ̀A→À; ̀e→è;

    • LP→3 é ë

The long press is abbreviated as LP.

Characters → Keyboards (Latest / Dev)

These show a mapping of characters (and strings, in some cases) to keyboards that can generate them.

At the end of each script, the characters that no keyboards generate are listed. For example, none of the Greek keyboards we have can generate any of [Ͱ-ͳͶͷϏϼᴦ-ᴪᵝ-ᵡᵦ-ᵪᶿάέήίόύώΆιΈΉΐΊΰΎΌΏΩ\U00010140-\U0001018a\U0001d200-\U0001d245]. To see a detailed listing, copy and paste into the Input box of unicodeset, then click Show Set.


The format is a series of <platform>:<items>, separated by spaces. The items have compact format:

Keyboards → Characters (Latest / Dev)

These show a mapping of keyboards to the characters that they generate, broken down by certain categories: