Keyboard Support

Contact and Search Homepage

Header bottom

Other versions
Version 17.0 (current version)Version 16.0Version 15.0Version 14.0Version 13.0Version 12.0Version 11.0Version 10.0Version 2.0

On this page

Keyboard Properties

Most keyboards are generated automatically from the Keyman keyboard source by Keyman Developer and contain properties used by KeymanWeb during keyboard mapping. Keyboards implement mapping by invoking functions within KeymanWeb, but do not interact directly with the user interface. However, user interfaces may need to interact with custom developed keyboards if, for example, they use a "pick list" or have other IME-like behavior.

Each registered keyboard object defines some or all of the following exposed string properties:

Property nameParameter in 'GetKeyboards'Defined byDescription
KNnameKeyboard (mandatory)Visible name of keyboard
KIinternalNameKeyboard (mandatory)Internal, identifying name of keyboard (must be unique)
KDkeyboardIDKeyboard IDGlobally unique ID (deprecated, assigned by Tavultesoft)
KLlanguageStub scriptMain supported language
KLClanguageCodeKeyboard (optional) or stub scriptBCP 47 code(s) for supported keyboard language(s)
KCcountryStub scriptName of country
KCCcountryCodeStub scriptAbbreviation for country name
KRregionStub scriptLanguage region or continent
KRCregionCodeStub scriptThree-letter region code

Keyboard objects may also define some or all of the following properties:

Property nameTypeDescription
KVJavaScript objectVisual keyboard object
KHhtmlKeyboard-specific help
KSnumberUses SMP (1) or only BMP (0 or omitted) Unicode encoding
KDUnumberInclude (1) or omit (0 or none) Latin letter labels to keys for phonetic layouts
KVKLJSONLayout specification
KFontJavaScript objectEmbedded font specification for mapped input elements and on-screen keyboard
KOskFontJavaScript objectEmbedded font specification for on-screen keyboard

For most keyboards which require an embedded font, the same font will be used for mapped elements and the on-screen keyboard, and only the KFont property wil be defined. The additional property KOskFont property would only be used where it may be helpful to use a different embedded font for the on-screen keyboard.

The KFont and KOskFont objects have the following members:

Member nameTypeDescriptionExample
familystringFont-family name for embedded fontLatinWeb
filesstring or string arrayFont file name or names['DejaVuSans.ttf','DejaVuSans.woff','DejaVuSans.eot']