diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index a27c5681a993cbbd20264c065f3db803c000f59a..78cf34de729f9cfb79790cee0a84b2a7214015a1 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -267,9 +267,8 @@
             <flag name="altCodeWhileTyping" value="0x04" />
             <flag name="enableLongPress" value="0x08" />
         </attr>
-        <!-- TODO: Rename keyLabel to keySpec. -->
-        <!-- The label to display on the key. -->
-        <attr name="keyLabel" format="string" />
+        <!-- The label, icon to display on the key. And code, outputText of the key. -->
+        <attr name="keySpec" format="string" />
         <!-- The hint label to display on the key in conjunction with the label. -->
         <attr name="keyHintLabel" format="string" />
         <!-- The vertical adjustment of key hint label in proportion to its height. -->
diff --git a/java/res/xml-sw600dp/key_azerty3_right.xml b/java/res/xml-sw600dp/key_azerty3_right.xml
index a5a6e9526c9de5d606e00b21724a0d0cf53d3994..25b0e52b835410b0fd02114ac4651a2b69d50638 100644
--- a/java/res/xml-sw600dp/key_azerty3_right.xml
+++ b/java/res/xml-sw600dp/key_azerty3_right.xml
@@ -22,7 +22,7 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel=":"
+        latin:keySpec=":"
         latin:keyHintLabel=";"
         latin:moreKeys=";"
         latin:keyStyle="hasShiftedLetterHintStyle" />
diff --git a/java/res/xml-sw600dp/key_colemak_colon.xml b/java/res/xml-sw600dp/key_colemak_colon.xml
index a5a6e9526c9de5d606e00b21724a0d0cf53d3994..25b0e52b835410b0fd02114ac4651a2b69d50638 100644
--- a/java/res/xml-sw600dp/key_colemak_colon.xml
+++ b/java/res/xml-sw600dp/key_colemak_colon.xml
@@ -22,7 +22,7 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel=":"
+        latin:keySpec=":"
         latin:keyHintLabel=";"
         latin:moreKeys=";"
         latin:keyStyle="hasShiftedLetterHintStyle" />
diff --git a/java/res/xml-sw600dp/key_f1.xml b/java/res/xml-sw600dp/key_f1.xml
index 530f7d63ba8774e374e16aa652448ac7c2e17926..ba78a64300bbb676f3eb430ebe9ce57f92735d2c 100644
--- a/java/res/xml-sw600dp/key_f1.xml
+++ b/java/res/xml-sw600dp/key_f1.xml
@@ -26,11 +26,11 @@
             latin:mode="email"
         >
             <Key
-                latin:keyLabel="\@" />
+                latin:keySpec="\@" />
         </case>
         <default>
             <Key
-                latin:keyLabel="/" />
+                latin:keySpec="/" />
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml-sw600dp/key_greek_semicolon.xml b/java/res/xml-sw600dp/key_greek_semicolon.xml
index 3f09419b1c54aeb9c8626023ebc90f546e3c6ddd..9e2c1fad0d0fe60635477caebc75ee1ee74f22e2 100644
--- a/java/res/xml-sw600dp/key_greek_semicolon.xml
+++ b/java/res/xml-sw600dp/key_greek_semicolon.xml
@@ -22,7 +22,7 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel=";"
+        latin:keySpec=";"
         latin:keyHintLabel=":"
         latin:moreKeys=":"
         latin:keyStyle="hasShiftedLetterHintStyle" />
diff --git a/java/res/xml-sw600dp/key_question_exclamation.xml b/java/res/xml-sw600dp/key_question_exclamation.xml
index 860a0be77dd1e19f5b686212117cb95978b2ec90..edee5c5dd319a38cbe07c3c77d68f1b4eb81f8e6 100644
--- a/java/res/xml-sw600dp/key_question_exclamation.xml
+++ b/java/res/xml-sw600dp/key_question_exclamation.xml
@@ -26,11 +26,11 @@
             latin:mode="email|url"
         >
             <Key
-                latin:keyLabel="-" />
+                latin:keySpec="-" />
         </case>
         <default>
             <Key
-                latin:keyLabel="\?"
+                latin:keySpec="\?"
                 latin:keyHintLabel="!"
                 latin:moreKeys="!"
                 latin:keyStyle="hasShiftedLetterHintStyle" />
diff --git a/java/res/xml-sw600dp/key_styles_common.xml b/java/res/xml-sw600dp/key_styles_common.xml
index 4dbc23ed06630fe3d1e092ba38a4231a00eee3eb..6a79c6fc21ca611a1d8126fd4d22299c53c9b2c2 100644
--- a/java/res/xml-sw600dp/key_styles_common.xml
+++ b/java/res/xml-sw600dp/key_styles_common.xml
@@ -48,7 +48,7 @@
         >
             <key-style
                 latin:styleName="shiftKeyStyle"
-                latin:keyLabel="!icon/shift_key_shifted|!code/key_shift"
+                latin:keySpec="!icon/shift_key_shifted|!code/key_shift"
                 latin:backgroundType="stickyOff"
                 latin:parentStyle="baseForShiftKeyStyle" />
         </case>
@@ -57,56 +57,56 @@
         >
             <key-style
                 latin:styleName="shiftKeyStyle"
-                latin:keyLabel="!icon/shift_key_shifted|!code/key_shift"
+                latin:keySpec="!icon/shift_key_shifted|!code/key_shift"
                 latin:backgroundType="stickyOn"
                 latin:parentStyle="baseForShiftKeyStyle" />
         </case>
         <default>
             <key-style
                 latin:styleName="shiftKeyStyle"
-                latin:keyLabel="!icon/shift_key|!code/key_shift"
+                latin:keySpec="!icon/shift_key|!code/key_shift"
                 latin:backgroundType="stickyOff"
                 latin:parentStyle="baseForShiftKeyStyle" />
         </default>
     </switch>
     <key-style
         latin:styleName="deleteKeyStyle"
-        latin:keyLabel="!icon/delete_key|!code/key_delete"
+        latin:keySpec="!icon/delete_key|!code/key_delete"
         latin:keyActionFlags="isRepeatable|noKeyPreview"
         latin:backgroundType="functional" />
     <include
         latin:keyboardLayout="@xml/key_styles_enter" />
     <key-style
         latin:styleName="spaceKeyStyle"
-        latin:keyLabel=" |!code/key_space"
+        latin:keySpec=" |!code/key_space"
         latin:keyActionFlags="noKeyPreview|enableLongPress" />
     <!-- U+200C: ZERO WIDTH NON-JOINER
          U+200D: ZERO WIDTH JOINER -->
     <key-style
         latin:styleName="zwnjKeyStyle"
-        latin:keyLabel="!icon/zwnj_key|&#x200C;"
+        latin:keySpec="!icon/zwnj_key|&#x200C;"
         latin:moreKeys="!icon/zwj_key|&#x200D;"
         latin:keyLabelFlags="hasPopupHint"
         latin:keyActionFlags="noKeyPreview" />
     <key-style
         latin:styleName="shortcutKeyStyle"
-        latin:keyLabel="!icon/shortcut_key|!code/key_shortcut"
+        latin:keySpec="!icon/shortcut_key|!code/key_shortcut"
         latin:keyIconDisabled="!icon/shortcut_key_disabled"
         latin:keyActionFlags="noKeyPreview"
         latin:backgroundType="functional" />
     <key-style
         latin:styleName="languageSwitchKeyStyle"
-        latin:keyLabel="!icon/language_switch_key|!code/key_language_switch"
+        latin:keySpec="!icon/language_switch_key|!code/key_language_switch"
         latin:keyActionFlags="noKeyPreview|altCodeWhileTyping|enableLongPress"
         latin:altCode="!code/key_space" />
     <key-style
         latin:styleName="emojiKeyStyle"
-        latin:keyLabel="!icon/emoji_key|!code/key_emoji"
+        latin:keySpec="!icon/emoji_key|!code/key_emoji"
         latin:keyActionFlags="noKeyPreview"
         latin:backgroundType="functional" />
     <key-style
         latin:styleName="settingsKeyStyle"
-        latin:keyLabel="!icon/settings_key|!code/key_settings"
+        latin:keySpec="!icon/settings_key|!code/key_settings"
         latin:keyActionFlags="noKeyPreview"
         latin:backgroundType="functional" />
     <switch>
@@ -116,7 +116,7 @@
         >
             <key-style
                 latin:styleName="tabKeyStyle"
-                latin:keyLabel="!icon/tab_key|!code/key_action_previous"
+                latin:keySpec="!icon/tab_key|!code/key_action_previous"
                 latin:keyIconPreview="!icon/tab_key_preview"
                 latin:backgroundType="functional" />
         </case>
@@ -126,14 +126,14 @@
         >
             <key-style
                 latin:styleName="tabKeyStyle"
-                latin:keyLabel="!icon/tab_key|!code/key_action_next"
+                latin:keySpec="!icon/tab_key|!code/key_action_next"
                 latin:keyIconPreview="!icon/tab_key_preview"
                 latin:backgroundType="functional" />
         </case>
         <default>
             <key-style
                 latin:styleName="tabKeyStyle"
-                latin:keyLabel="!icon/tab_key|!code/key_tab"
+                latin:keySpec="!icon/tab_key|!code/key_tab"
                 latin:keyIconPreview="!icon/tab_key_preview"
                 latin:backgroundType="functional" />
         </default>
@@ -145,23 +145,23 @@
         latin:backgroundType="functional" />
     <key-style
         latin:styleName="toSymbolKeyStyle"
-        latin:keyLabel="!text/label_to_symbol_key|!code/key_switch_alpha_symbol"
+        latin:keySpec="!text/label_to_symbol_key|!code/key_switch_alpha_symbol"
         latin:parentStyle="baseForLayoutSwitchKeyStyle" />
     <key-style
         latin:styleName="toAlphaKeyStyle"
-        latin:keyLabel="!text/label_to_alpha_key|!code/key_switch_alpha_symbol"
+        latin:keySpec="!text/label_to_alpha_key|!code/key_switch_alpha_symbol"
         latin:parentStyle="baseForLayoutSwitchKeyStyle" />
     <key-style
         latin:styleName="toMoreSymbolKeyStyle"
-        latin:keyLabel="!text/label_to_more_symbol_for_tablet_key|!code/key_shift"
+        latin:keySpec="!text/label_to_more_symbol_for_tablet_key|!code/key_shift"
         latin:parentStyle="baseForLayoutSwitchKeyStyle" />
     <key-style
         latin:styleName="backFromMoreSymbolKeyStyle"
-        latin:keyLabel="!text/label_to_symbol_key|!code/key_shift"
+        latin:keySpec="!text/label_to_symbol_key|!code/key_shift"
         latin:parentStyle="baseForLayoutSwitchKeyStyle" />
     <key-style
         latin:styleName="comKeyStyle"
-        latin:keyLabel="!text/keylabel_for_popular_domain|!text/keylabel_for_popular_domain"
+        latin:keySpec="!text/keylabel_for_popular_domain|!text/keylabel_for_popular_domain"
         latin:keyLabelFlags="autoXScale|fontNormal|hasPopupHint|preserveCase"
         latin:moreKeys="!text/more_keys_for_popular_domain" />
 </merge>
diff --git a/java/res/xml-sw600dp/key_styles_enter.xml b/java/res/xml-sw600dp/key_styles_enter.xml
index 39c5380b431e6cbc373804d2da428d3ab2a057b8..38a38fd4573ae5c8c3c8d72d8a1fe2b01cb49a96 100644
--- a/java/res/xml-sw600dp/key_styles_enter.xml
+++ b/java/res/xml-sw600dp/key_styles_enter.xml
@@ -99,7 +99,7 @@
     <!-- Enter key style -->
     <key-style
         latin:styleName="defaultEnterKeyStyle"
-        latin:keyLabel="!icon/enter_key|!code/key_enter"
+        latin:keySpec="!icon/enter_key|!code/key_enter"
         latin:keyLabelFlags="preserveCase|autoXScale|followKeyLabelRatio"
         latin:keyActionFlags="noKeyPreview"
         latin:backgroundType="functional"
@@ -112,7 +112,7 @@
         >
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyLabel="!text/label_go_key|!code/key_shift_enter"
+                latin:keySpec="!text/label_go_key|!code/key_shift_enter"
                 latin:parentStyle="defaultEnterKeyStyle" />
         </case>
         <case
@@ -120,7 +120,7 @@
         >
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyLabel="!text/label_go_key|!code/key_enter"
+                latin:keySpec="!text/label_go_key|!code/key_enter"
                 latin:backgroundType="action"
                 latin:parentStyle="defaultEnterKeyStyle" />
         </case>
@@ -129,7 +129,7 @@
         >
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyLabel="!text/label_next_key|!code/key_enter"
+                latin:keySpec="!text/label_next_key|!code/key_enter"
                 latin:backgroundType="action"
                 latin:parentStyle="defaultEnterKeyStyle" />
         </case>
@@ -138,7 +138,7 @@
         >
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyLabel="!text/label_previous_key|!code/key_enter"
+                latin:keySpec="!text/label_previous_key|!code/key_enter"
                 latin:backgroundType="action"
                 latin:parentStyle="defaultEnterKeyStyle" />
         </case>
@@ -147,7 +147,7 @@
         >
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyLabel="!text/label_done_key|!code/key_enter"
+                latin:keySpec="!text/label_done_key|!code/key_enter"
                 latin:backgroundType="action"
                 latin:parentStyle="defaultEnterKeyStyle" />
         </case>
@@ -156,7 +156,7 @@
         >
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyLabel="!text/label_send_key|!code/key_enter"
+                latin:keySpec="!text/label_send_key|!code/key_enter"
                 latin:backgroundType="action"
                 latin:parentStyle="defaultEnterKeyStyle" />
         </case>
@@ -165,7 +165,7 @@
         >
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyLabel="!icon/search_key|!code/key_enter"
+                latin:keySpec="!icon/search_key|!code/key_enter"
                 latin:backgroundType="action"
                 latin:parentStyle="defaultEnterKeyStyle" />
         </case>
@@ -174,7 +174,7 @@
         >
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyLabel="dummy_label|!code/key_enter"
+                latin:keySpec="dummy_label|!code/key_enter"
                 latin:keyLabelFlags="fromCustomActionLabel"
                 latin:backgroundType="action"
                 latin:parentStyle="defaultEnterKeyStyle" />
diff --git a/java/res/xml-sw600dp/keys_arabic3_left.xml b/java/res/xml-sw600dp/keys_arabic3_left.xml
index 0f2ccc0acdd289645e56c9cab8e03688129d24d9..9b4031e5589c283b41b208c583a1363e62f24757 100644
--- a/java/res/xml-sw600dp/keys_arabic3_left.xml
+++ b/java/res/xml-sw600dp/keys_arabic3_left.xml
@@ -23,10 +23,10 @@
 >
     <!-- U+0630: "ذ" ARABIC LETTER THAL -->
     <Key
-        latin:keyLabel="&#x0630;"
+        latin:keySpec="&#x0630;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE -->
     <Key
-        latin:keyLabel="&#x0626;"
+        latin:keySpec="&#x0626;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-sw600dp/keys_comma_period.xml b/java/res/xml-sw600dp/keys_comma_period.xml
index 55302aeab3438ae6747c63d140b3ed0be365fd89..eda96b2882bfd88a8c5b8d20906023328c96b043 100644
--- a/java/res/xml-sw600dp/keys_comma_period.xml
+++ b/java/res/xml-sw600dp/keys_comma_period.xml
@@ -22,14 +22,14 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="!text/keylabel_for_tablet_comma"
+        latin:keySpec="!text/keylabel_for_tablet_comma"
         latin:keyHintLabel="!text/keyhintlabel_for_tablet_comma"
         latin:keyLabelFlags="hasPopupHint"
         latin:moreKeys="!text/more_keys_for_tablet_comma"
         latin:backgroundType="functional"
         latin:keyStyle="hasShiftedLetterHintStyle" />
     <Key
-        latin:keyLabel="!text/keylabel_for_tablet_period"
+        latin:keySpec="!text/keylabel_for_tablet_period"
         latin:keyHintLabel="!text/keyhintlabel_for_tablet_period"
         latin:keyLabelFlags="hasPopupHint"
         latin:moreKeys="!text/more_keys_for_tablet_period"
diff --git a/java/res/xml-sw600dp/keys_dvorak_123.xml b/java/res/xml-sw600dp/keys_dvorak_123.xml
index 58416abb401c5950a1651df84103234d25adf4ba..91ceb1c43237ec85ebdd25a3d7e94a7ad93c5bc3 100644
--- a/java/res/xml-sw600dp/keys_dvorak_123.xml
+++ b/java/res/xml-sw600dp/keys_dvorak_123.xml
@@ -26,31 +26,31 @@
             latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
         >
             <Key
-                latin:keyLabel="&quot;"
+                latin:keySpec="&quot;"
                 latin:keyHintLabel="1"
                 latin:additionalMoreKeys="1" />
             <Key
-                latin:keyLabel="&lt;"
+                latin:keySpec="&lt;"
                 latin:keyHintLabel="2"
                 latin:additionalMoreKeys="2" />
             <Key
-                latin:keyLabel="&gt;"
+                latin:keySpec="&gt;"
                 latin:keyHintLabel="3"
                 latin:additionalMoreKeys="3" />
         </case>
         <default>
             <Key
-                latin:keyLabel="\'"
+                latin:keySpec="\'"
                 latin:keyHintLabel="1"
                 latin:additionalMoreKeys="1"
                 latin:moreKeys="!,&quot;" />
             <Key
-                latin:keyLabel=","
+                latin:keySpec=","
                 latin:keyHintLabel="2"
                 latin:additionalMoreKeys="2"
                 latin:moreKeys="\?,&lt;" />
             <Key
-                latin:keyLabel="."
+                latin:keySpec="."
                 latin:keyHintLabel="3"
                 latin:additionalMoreKeys="3"
                 latin:moreKeys="&gt;" />
diff --git a/java/res/xml-sw600dp/keys_exclamation_question.xml b/java/res/xml-sw600dp/keys_exclamation_question.xml
index fd849222dd1c48075fd78603ea66af0627e4e807..116bef2be32977094ef56fc1422095512c7cf874 100644
--- a/java/res/xml-sw600dp/keys_exclamation_question.xml
+++ b/java/res/xml-sw600dp/keys_exclamation_question.xml
@@ -22,9 +22,9 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="!"
+        latin:keySpec="!"
         latin:moreKeys="!text/more_keys_for_exclamation" />
     <Key
-        latin:keyLabel="\?"
+        latin:keySpec="\?"
         latin:moreKeys="!text/more_keys_for_question" />
 </merge>
diff --git a/java/res/xml-sw600dp/keys_farsi3_right.xml b/java/res/xml-sw600dp/keys_farsi3_right.xml
index 3c91ae92d8acbbd4f39e16d83fb92a9d111a9284..45d12862891ea13b045fef7705166a76051f8350 100644
--- a/java/res/xml-sw600dp/keys_farsi3_right.xml
+++ b/java/res/xml-sw600dp/keys_farsi3_right.xml
@@ -23,10 +23,10 @@
 >
     <!-- U+0622: "Ø¢" ARABIC LETTER ALEF WITH MADDA ABOVE -->
     <Key
-        latin:keyLabel="&#x0622;"
+        latin:keySpec="&#x0622;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0686: "Ú†" ARABIC LETTER TCHEH -->
     <Key
-        latin:keyLabel="&#x0686;"
+        latin:keySpec="&#x0686;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-sw600dp/keys_pcqwerty2_right3.xml b/java/res/xml-sw600dp/keys_pcqwerty2_right3.xml
index 324e025ed2d0c4dee7de0519b57e0ce7bf04d1ad..ab99ec57447c1f222a420a017a74235e1b105276 100644
--- a/java/res/xml-sw600dp/keys_pcqwerty2_right3.xml
+++ b/java/res/xml-sw600dp/keys_pcqwerty2_right3.xml
@@ -26,17 +26,17 @@
             latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted"
         >
             <Key
-                latin:keyLabel="["
+                latin:keySpec="["
                 latin:keyHintLabel="{"
                 latin:additionalMoreKeys="{"
                 latin:keyStyle="hasShiftedLetterHintStyle" />
             <Key
-                latin:keyLabel="]"
+                latin:keySpec="]"
                 latin:keyHintLabel="}"
                 latin:additionalMoreKeys="}"
                 latin:keyStyle="hasShiftedLetterHintStyle" />
             <Key
-                latin:keyLabel="\\"
+                latin:keySpec="\\"
                 latin:keyHintLabel="|"
                 latin:additionalMoreKeys="\\|"
                 latin:keyStyle="hasShiftedLetterHintStyle" />
@@ -44,11 +44,11 @@
         <!-- keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" -->
         <default>
             <Key
-                latin:keyLabel="{" />
+                latin:keySpec="{" />
             <Key
-                latin:keyLabel="}" />
+                latin:keySpec="}" />
             <Key
-                latin:keyLabel="|" />
+                latin:keySpec="|" />
         </default>
     </switch>
 </merge>
\ No newline at end of file
diff --git a/java/res/xml-sw600dp/keys_pcqwerty3_right2.xml b/java/res/xml-sw600dp/keys_pcqwerty3_right2.xml
index 254b5e5714c164c4123acc28bff7993d7f08a8d6..54433964f680cc05f389b915058b424b38b61b9b 100644
--- a/java/res/xml-sw600dp/keys_pcqwerty3_right2.xml
+++ b/java/res/xml-sw600dp/keys_pcqwerty3_right2.xml
@@ -26,12 +26,12 @@
             latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted"
         >
             <Key
-                latin:keyLabel=";"
+                latin:keySpec=";"
                 latin:keyHintLabel=":"
                 latin:additionalMoreKeys=":"
                 latin:keyStyle="hasShiftedLetterHintStyle" />
             <Key
-                latin:keyLabel="\'"
+                latin:keySpec="\'"
                 latin:keyHintLabel="&quot;"
                 latin:additionalMoreKeys="&quot;"
                 latin:keyStyle="hasShiftedLetterHintStyle"
@@ -40,9 +40,9 @@
         <!-- keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" -->
         <default>
             <Key
-                latin:keyLabel=":" />
+                latin:keySpec=":" />
             <Key
-                latin:keyLabel="&quot;"
+                latin:keySpec="&quot;"
                 latin:moreKeys="!fixedColumnOrder!3,!text/double_quotes,!text/single_quotes" />
         </default>
     </switch>
diff --git a/java/res/xml-sw600dp/keys_pcqwerty4_right3.xml b/java/res/xml-sw600dp/keys_pcqwerty4_right3.xml
index 46a1c85dcead0893128d3844ee00c2908df4beb5..c95ca2ee7a66332fa51c282816110f22418313c7 100644
--- a/java/res/xml-sw600dp/keys_pcqwerty4_right3.xml
+++ b/java/res/xml-sw600dp/keys_pcqwerty4_right3.xml
@@ -26,17 +26,17 @@
             latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted"
         >
             <Key
-                latin:keyLabel=","
+                latin:keySpec=","
                 latin:keyHintLabel="&lt;"
                 latin:additionalMoreKeys="&lt;"
                 latin:keyStyle="hasShiftedLetterHintStyle" />
             <Key
-                latin:keyLabel="."
+                latin:keySpec="."
                 latin:keyHintLabel="&gt;"
                 latin:additionalMoreKeys="&gt;"
                 latin:keyStyle="hasShiftedLetterHintStyle" />
             <Key
-                latin:keyLabel="/"
+                latin:keySpec="/"
                 latin:keyHintLabel="\?"
                 latin:additionalMoreKeys="\?"
                 latin:keyStyle="hasShiftedLetterHintStyle"
@@ -51,13 +51,13 @@
                  U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
                  U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
             <Key
-                latin:keyLabel="&lt;"
+                latin:keySpec="&lt;"
                 latin:moreKeys="!fixedColumnOrder!3,&#x2039;,&#x2264;,&#x00AB;" />
             <Key
-                latin:keyLabel="&gt;"
+                latin:keySpec="&gt;"
                 latin:moreKeys="!fixedColumnOrder!3,&#x203A;,&#x2265;,&#x00BB;" />
             <Key
-                latin:keyLabel="\?"
+                latin:keySpec="\?"
                 latin:moreKeys="!text/more_keys_for_question" />
         </default>
     </switch>
diff --git a/java/res/xml-sw600dp/row_dvorak4.xml b/java/res/xml-sw600dp/row_dvorak4.xml
index 11b4034523578b98d9354dd5820f0c391eeb071c..2ba6a491bf8698806d40c584a9e83048cf6a3212 100644
--- a/java/res/xml-sw600dp/row_dvorak4.xml
+++ b/java/res/xml-sw600dp/row_dvorak4.xml
@@ -39,7 +39,7 @@
         <include
             latin:keyboardLayout="@xml/key_question_exclamation" />
         <Key
-            latin:keyLabel="-"
+            latin:keySpec="-"
             latin:keyHintLabel="_"
             latin:moreKeys="_"
             latin:keyStyle="hasShiftedLetterHintStyle" />
diff --git a/java/res/xml-sw600dp/rowkeys_dvorak3.xml b/java/res/xml-sw600dp/rowkeys_dvorak3.xml
index 2148bb2c7ff432679148a8a917284aaeff4c6b7a..edc68a3af08f9caaf0236357d08e7939d5b1954a 100644
--- a/java/res/xml-sw600dp/rowkeys_dvorak3.xml
+++ b/java/res/xml-sw600dp/rowkeys_dvorak3.xml
@@ -22,26 +22,26 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="q" />
+        latin:keySpec="q" />
     <Key
-        latin:keyLabel="j"
+        latin:keySpec="j"
         latin:moreKeys="!text/more_keys_for_j" />
     <Key
-        latin:keyLabel="k"
+        latin:keySpec="k"
         latin:moreKeys="!text/more_keys_for_k" />
     <Key
-        latin:keyLabel="x" />
+        latin:keySpec="x" />
     <Key
-        latin:keyLabel="b" />
+        latin:keySpec="b" />
     <Key
-        latin:keyLabel="m" />
+        latin:keySpec="m" />
     <Key
-        latin:keyLabel="w"
+        latin:keySpec="w"
         latin:moreKeys="!text/more_keys_for_w" />
     <Key
-        latin:keyLabel="v"
+        latin:keySpec="v"
         latin:moreKeys="!text/more_keys_for_v" />
     <Key
-        latin:keyLabel="z"
+        latin:keySpec="z"
         latin:moreKeys="!text/more_keys_for_z" />
 </merge>
diff --git a/java/res/xml-sw600dp/rowkeys_pcqwerty1.xml b/java/res/xml-sw600dp/rowkeys_pcqwerty1.xml
index ae6bab79c5eb69592f74a722755465d7d66f87dc..5389e22018f1b76db463413c0f0cf4b788beef76 100644
--- a/java/res/xml-sw600dp/rowkeys_pcqwerty1.xml
+++ b/java/res/xml-sw600dp/rowkeys_pcqwerty1.xml
@@ -22,66 +22,66 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="`"
+        latin:keySpec="`"
         latin:keyHintLabel="~"
         latin:additionalMoreKeys="~"
         latin:keyStyle="hasShiftedLetterHintStyle" />
     <Key
-        latin:keyLabel="1"
+        latin:keySpec="1"
         latin:keyHintLabel="!"
         latin:additionalMoreKeys="!"
         latin:keyStyle="hasShiftedLetterHintStyle"
         latin:moreKeys="!text/more_keys_for_exclamation,!text/more_keys_for_symbols_1" />
     <Key
-        latin:keyLabel="2"
+        latin:keySpec="2"
         latin:keyHintLabel="\@"
         latin:additionalMoreKeys="\@"
         latin:keyStyle="hasShiftedLetterHintStyle"
         latin:moreKeys="!text/more_keys_for_symbols_2" />
     <Key
-        latin:keyLabel="3"
+        latin:keySpec="3"
         latin:keyHintLabel="\#"
         latin:additionalMoreKeys="\#"
         latin:keyStyle="hasShiftedLetterHintStyle"
         latin:moreKeys="!text/more_keys_for_symbols_3" />
     <Key
-        latin:keyLabel="4"
+        latin:keySpec="4"
         latin:keyHintLabel="$"
         latin:additionalMoreKeys="$"
         latin:keyStyle="hasShiftedLetterHintStyle"
         latin:moreKeys="!text/more_keys_for_symbols_4" />
     <Key
-        latin:keyLabel="5"
+        latin:keySpec="5"
         latin:keyHintLabel="%"
         latin:additionalMoreKeys="\\%"
         latin:keyStyle="hasShiftedLetterHintStyle"
         latin:moreKeys="!text/more_keys_for_symbols_5" />
     <Key
-        latin:keyLabel="6"
+        latin:keySpec="6"
         latin:keyHintLabel="^"
         latin:additionalMoreKeys="^"
         latin:keyStyle="hasShiftedLetterHintStyle"
         latin:moreKeys="!text/more_keys_for_symbols_6" />
     <Key
-        latin:keyLabel="7"
+        latin:keySpec="7"
         latin:keyHintLabel="&amp;"
         latin:additionalMoreKeys="&amp;"
         latin:keyStyle="hasShiftedLetterHintStyle"
         latin:moreKeys="!text/more_keys_for_symbols_7" />
     <Key
-        latin:keyLabel="8"
+        latin:keySpec="8"
         latin:keyHintLabel="*"
         latin:additionalMoreKeys="*"
         latin:keyStyle="hasShiftedLetterHintStyle"
         latin:moreKeys="!text/more_keys_for_symbols_8" />
     <Key
-        latin:keyLabel="9"
+        latin:keySpec="9"
         latin:keyHintLabel="("
         latin:additionalMoreKeys="("
         latin:keyStyle="hasShiftedLetterHintStyle"
         latin:moreKeys="!text/more_keys_for_symbols_9" />
     <Key
-        latin:keyLabel="0"
+        latin:keySpec="0"
         latin:keyHintLabel=")"
         latin:additionalMoreKeys=")"
         latin:keyStyle="hasShiftedLetterHintStyle"
@@ -90,7 +90,7 @@
          U+2014: "—" EM DASH
          U+00B7: "·" MIDDLE DOT -->
     <Key
-        latin:keyLabel="-"
+        latin:keySpec="-"
         latin:keyHintLabel="_"
         latin:additionalMoreKeys="_"
         latin:keyStyle="hasShiftedLetterHintStyle"
@@ -99,7 +99,7 @@
          U+2260: "≠" NOT EQUAL TO
          U+2248: "≈" ALMOST EQUAL TO -->
     <Key
-        latin:keyLabel="="
+        latin:keySpec="="
         latin:keyHintLabel="+"
         latin:additionalMoreKeys="+"
         latin:keyStyle="hasShiftedLetterHintStyle"
diff --git a/java/res/xml-sw600dp/rows_number_normal.xml b/java/res/xml-sw600dp/rows_number_normal.xml
index 37bf2e8087d8ffc62fcb6d3b4ed5284df0b0c824..15f4cde08d6c9acd49b958cd6b21d35afe98bcc5 100644
--- a/java/res/xml-sw600dp/rows_number_normal.xml
+++ b/java/res/xml-sw600dp/rows_number_normal.xml
@@ -23,29 +23,29 @@
 >
     <Row>
         <Key
-            latin:keyLabel="-"
+            latin:keySpec="-"
             latin:keyStyle="numKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
-            latin:keyLabel="+"
+            latin:keySpec="+"
             latin:keyStyle="numKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
-            latin:keyLabel="."
+            latin:keySpec="."
             latin:keyStyle="numKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
-            latin:keyLabel="1"
+            latin:keySpec="1"
             latin:keyStyle="numKeyStyle"
             latin:keyXPos="31%p" />
         <Key
-            latin:keyLabel="2"
+            latin:keySpec="2"
             latin:keyStyle="numKeyStyle" />
         <Key
-            latin:keyLabel="3"
+            latin:keySpec="3"
             latin:keyStyle="numKeyStyle" />
         <Key
             latin:keyStyle="deleteKeyStyle"
@@ -58,7 +58,7 @@
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
-            latin:keyLabel="/"
+            latin:keySpec="/"
             latin:keyStyle="numKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
@@ -67,7 +67,7 @@
                 latin:mode="time|datetime"
             >
                 <Key
-                    latin:keyLabel=","
+                    latin:keySpec=","
                     latin:keyLabelFlags="hasPopupHint"
                     latin:moreKeys="!text/more_keys_for_am_pm"
                     latin:keyStyle="numKeyStyle"
@@ -76,21 +76,21 @@
             </case>
             <default>
                 <Key
-                    latin:keyLabel=","
+                    latin:keySpec=","
                     latin:keyStyle="numKeyStyle"
                     latin:keyWidth="10%p"
                     latin:backgroundType="functional" />
             </default>
         </switch>
         <Key
-            latin:keyLabel="4"
+            latin:keySpec="4"
             latin:keyStyle="numKeyStyle"
             latin:keyXPos="31%p" />
         <Key
-            latin:keyLabel="5"
+            latin:keySpec="5"
             latin:keyStyle="numKeyStyle" />
         <Key
-            latin:keyLabel="6"
+            latin:keySpec="6"
             latin:keyStyle="numKeyStyle" />
         <Key
             latin:keyStyle="enterKeyStyle"
@@ -99,12 +99,12 @@
     </Row>
     <Row>
         <Key
-            latin:keyLabel="("
+            latin:keySpec="("
             latin:keyStyle="numKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
-            latin:keyLabel=")"
+            latin:keySpec=")"
             latin:keyStyle="numKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
@@ -113,28 +113,28 @@
                 latin:mode="time|datetime"
             >
                 <Key
-                    latin:keyLabel=":"
+                    latin:keySpec=":"
                     latin:keyStyle="numKeyStyle"
                     latin:keyWidth="10%p"
                     latin:backgroundType="functional" />
             </case>
             <default>
                 <Key
-                    latin:keyLabel="="
+                    latin:keySpec="="
                     latin:keyStyle="numKeyStyle"
                     latin:keyWidth="10%p"
                     latin:backgroundType="functional" />
             </default>
         </switch>
         <Key
-            latin:keyLabel="7"
+            latin:keySpec="7"
             latin:keyStyle="numKeyStyle"
             latin:keyXPos="31%p" />
         <Key
-            latin:keyLabel="8"
+            latin:keySpec="8"
             latin:keyStyle="numKeyStyle" />
         <Key
-            latin:keyLabel="9"
+            latin:keySpec="9"
             latin:keyStyle="numKeyStyle" />
         <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
         <Spacer />
@@ -148,10 +148,10 @@
             latin:keyStyle="numStarKeyStyle"
             latin:keyXPos="31%p" />
         <Key
-            latin:keyLabel="0"
+            latin:keySpec="0"
             latin:keyStyle="numKeyStyle" />
         <Key
-            latin:keyLabel="\#"
+            latin:keySpec="\#"
             latin:keyStyle="numKeyStyle" />
         <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
         <Spacer
diff --git a/java/res/xml-sw600dp/rows_phone.xml b/java/res/xml-sw600dp/rows_phone.xml
index c4799bbcd878c3ae83034c671cf12af4bf4ba734..9022bc532bbd24d0339c17430a8c481024f0aa2b 100644
--- a/java/res/xml-sw600dp/rows_phone.xml
+++ b/java/res/xml-sw600dp/rows_phone.xml
@@ -27,12 +27,12 @@
         latin:keyboardLayout="@xml/key_styles_number" />
     <Row>
         <Key
-            latin:keyLabel="-"
+            latin:keySpec="-"
             latin:keyStyle="numKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
-            latin:keyLabel="+"
+            latin:keySpec="+"
             latin:keyStyle="numKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
@@ -54,12 +54,12 @@
     </Row>
     <Row>
         <Key
-            latin:keyLabel=","
+            latin:keySpec=","
             latin:keyStyle="numKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
-            latin:keyLabel="."
+            latin:keySpec="."
             latin:keyStyle="numKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
@@ -81,17 +81,17 @@
     </Row>
     <Row>
         <Key
-            latin:keyLabel="("
+            latin:keySpec="("
             latin:keyStyle="numKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
-            latin:keyLabel=")"
+            latin:keySpec=")"
             latin:keyStyle="numKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
-            latin:keyLabel="N"
+            latin:keySpec="N"
             latin:keyStyle="numKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
@@ -116,7 +116,7 @@
         <Key
             latin:keyStyle="num0KeyStyle" />
         <Key
-            latin:keyLabel="\#"
+            latin:keySpec="\#"
             latin:keyStyle="numKeyStyle" />
     </Row>
 </merge>
diff --git a/java/res/xml-sw600dp/rows_symbols.xml b/java/res/xml-sw600dp/rows_symbols.xml
index 7a33f4923e7164d9580400cd8350982e06fa5ad2..a915c335197d4a9a3724aa1ae6afc739d0f49324 100644
--- a/java/res/xml-sw600dp/rows_symbols.xml
+++ b/java/res/xml-sw600dp/rows_symbols.xml
@@ -51,9 +51,9 @@
             latin:keyStyle="toMoreSymbolKeyStyle"
             latin:keyWidth="10.0%p" />
         <Key
-            latin:keyLabel="\\" />
+            latin:keySpec="\\" />
         <Key
-            latin:keyLabel="=" />
+            latin:keySpec="=" />
         <include
             latin:keyboardLayout="@xml/rowkeys_symbols3" />
         <Key
diff --git a/java/res/xml-sw600dp/rows_symbols_shift.xml b/java/res/xml-sw600dp/rows_symbols_shift.xml
index 79d1aa1420c3abf543e5ff21be3d48b3211c61ff..7ead4d5b1f4a061bc7cfa4789427b85a1095132f 100644
--- a/java/res/xml-sw600dp/rows_symbols_shift.xml
+++ b/java/res/xml-sw600dp/rows_symbols_shift.xml
@@ -54,10 +54,10 @@
             latin:keyboardLayout="@xml/rowkeys_symbols_shift3" />
         <!-- U+00A1: "¡" INVERTED EXCLAMATION MARK -->
         <Key
-            latin:keyLabel="&#x00A1;" />
+            latin:keySpec="&#x00A1;" />
         <!-- U+00BF: "¿" INVERTED QUESTION MARK -->
         <Key
-            latin:keyLabel="&#x00BF;" />
+            latin:keySpec="&#x00BF;" />
         <Key
             latin:keyStyle="backFromMoreSymbolKeyStyle"
             latin:keyWidth="fillRight" />
diff --git a/java/res/xml-v16/key_devanagari_sign_anusvara.xml b/java/res/xml-v16/key_devanagari_sign_anusvara.xml
index 27c7bff5acdfafb3f2ed47d165c00122db1ee150..ee0f21dad8edbc4f501291ee08966b338ee07db3 100644
--- a/java/res/xml-v16/key_devanagari_sign_anusvara.xml
+++ b/java/res/xml-v16/key_devanagari_sign_anusvara.xml
@@ -27,6 +27,6 @@
 >
     <!-- U+0902: "ं" DEVANAGARI SIGN ANUSVARA -->
     <Key
-        latin:keyLabel="&#x0902;"
+        latin:keySpec="&#x0902;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/key_devanagari_sign_candrabindu.xml b/java/res/xml-v16/key_devanagari_sign_candrabindu.xml
index 03017dd7832f4762aac6fd9834b607e699593cee..29f41d143f16bae88b5f189103ef7c91762e9baf 100644
--- a/java/res/xml-v16/key_devanagari_sign_candrabindu.xml
+++ b/java/res/xml-v16/key_devanagari_sign_candrabindu.xml
@@ -43,6 +43,6 @@
     <!-- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
     <Key
         latin:keyStyle="moreKeysDevanagariSignCandrabindu"
-        latin:keyLabel="&#x0901;"
+        latin:keySpec="&#x0901;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/key_devanagari_sign_nukta.xml b/java/res/xml-v16/key_devanagari_sign_nukta.xml
index 09c347706f9cefe9681db822a97676f75ed97c6f..915779524b433e4c22a1699bf5cbdc4552494132 100644
--- a/java/res/xml-v16/key_devanagari_sign_nukta.xml
+++ b/java/res/xml-v16/key_devanagari_sign_nukta.xml
@@ -44,6 +44,6 @@
     <!-- U+093C: "़" DEVANAGARI SIGN NUKTA -->
     <Key
         latin:keyStyle="moreKeysDevanagariSignNukta"
-        latin:keyLabel="&#x093C;"
+        latin:keySpec="&#x093C;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/key_devanagari_vowel_sign_candra_o.xml b/java/res/xml-v16/key_devanagari_vowel_sign_candra_o.xml
index 0316a7bde51ceec399d0a98f1ab7b3412ecb217e..2f1739948bd054b7e1fa3b2820f47374f68e0d5a 100644
--- a/java/res/xml-v16/key_devanagari_vowel_sign_candra_o.xml
+++ b/java/res/xml-v16/key_devanagari_vowel_sign_candra_o.xml
@@ -27,6 +27,6 @@
 >
     <!-- U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O -->
     <Key
-        latin:keyLabel="&#x0949;"
+        latin:keySpec="&#x0949;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml b/java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml
index 4dd3e85cc074dd866abbc55caf1ea3e95a108441..dc7a0e0906a0d5a461495ba8a97e3febc32b617f 100644
--- a/java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml
+++ b/java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml
@@ -50,6 +50,6 @@
     <!-- U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R -->
     <Key
         latin:keyStyle="moreKeysDevanagariVowelSignVocalicR"
-        latin:keyLabel="&#x0943;"
+        latin:keySpec="&#x0943;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_sign_virama.xml b/java/res/xml-v16/keystyle_devanagari_sign_virama.xml
index a2fbf53d30e1cd335dd93b8c9133c2a5c8420120..764fb1fbb21715ebacf6b5d6db771fa7772dc711 100644
--- a/java/res/xml-v16/keystyle_devanagari_sign_virama.xml
+++ b/java/res/xml-v16/keystyle_devanagari_sign_virama.xml
@@ -28,6 +28,6 @@
     <!-- U+094D: "्" DEVANAGARI SIGN VIRAMA -->
     <key-style
         latin:styleName="baseKeyDevanagariSignVirama"
-        latin:keyLabel="&#x094D;"
+        latin:keySpec="&#x094D;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_sign_visarga.xml b/java/res/xml-v16/keystyle_devanagari_sign_visarga.xml
index ac56cb77bb33edf6bb61af8ec78097e0d12cf8a5..b047893a6416850df3335dd99fac554db54bb552 100644
--- a/java/res/xml-v16/keystyle_devanagari_sign_visarga.xml
+++ b/java/res/xml-v16/keystyle_devanagari_sign_visarga.xml
@@ -28,6 +28,6 @@
     <!-- U+0903: "ः" DEVANAGARI SIGN VISARGA -->
     <key-style
         latin:styleName="baseKeyDevanagariSignVisarga"
-        latin:keyLabel="&#x0903;"
+        latin:keySpec="&#x0903;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml
index 8e256032c0d538c00fcd5a035b2037d3d42c4707..fe9264b78cebe0aed9efd3027d8785dcded4c3f7 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml
@@ -44,6 +44,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignAa"
         latin:parentStyle="moreKeysDevanagariVowelSignAa"
-        latin:keyLabel="&#x093E;"
+        latin:keySpec="&#x093E;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml
index e79033971b7a72f0337f9c0f2e2a5a2d7657dce5..fdb53bb2cfc63b606cab58bdc0a4c5adae7525f3 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml
@@ -51,6 +51,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignAi"
         latin:parentStyle="moreKeysDevanagariVowelSignAi"
-        latin:keyLabel="&#x0948;"
+        latin:keySpec="&#x0948;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml
index 43387a388c2ae9c7daf140c5b376abe17a24cb25..653e79e0f1f4b00a0cf3f1c3c6af7adc6254a095 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml
@@ -43,6 +43,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignAu"
         latin:parentStyle="moreKeysDevanagariVowelSignAu"
-        latin:keyLabel="&#x094C;"
+        latin:keySpec="&#x094C;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml
index c70d9d944f5cf16ee8cf5cb68faeb55699f8d98f..7240a2ca18f67ae318cbb904cf756724b799a7e5 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml
@@ -52,6 +52,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignE"
         latin:parentStyle="moreKeysDevanagariVowelSignE"
-        latin:keyLabel="&#x0947;"
+        latin:keySpec="&#x0947;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml
index 845c1b02ed33975d9e9a166c154bde4fc68c2817..5a006f033b5aba242c210b8136eb547cc2ee9604 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml
@@ -43,6 +43,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignI"
         latin:parentStyle="moreKeysDevanagariVowelSignI"
-        latin:keyLabel="&#x093F;"
+        latin:keySpec="&#x093F;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml
index 0de9650be09eba8e5d36bf6802ad9de1b6af8c14..a2b07fe5af2d5808cf4d760546a946ced74485c8 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml
@@ -43,6 +43,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignIi"
         latin:parentStyle="moreKeysDevanagariVowelSignIi"
-        latin:keyLabel="&#x0940;"
+        latin:keySpec="&#x0940;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml
index 06f07fac9641a7737026afda612a51afad74e8d8..4b764cdee86f49aeecd67513a3ea026a5037411d 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml
@@ -45,6 +45,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignO"
         latin:parentStyle="moreKeysDevanagariVowelSignO"
-        latin:keyLabel="&#x094B;"
+        latin:keySpec="&#x094B;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml
index 469a27bdf4d3d89fc1a0e5623078fbc7d9d4ef85..18d485afe032ed74ff2a543f65ccdd568242e7df 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml
@@ -44,6 +44,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignU"
         latin:parentStyle="moreKeysDevanagariVowelSignU"
-        latin:keyLabel="&#x0941;"
+        latin:keySpec="&#x0941;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml
index 25867c0860ba5054d5d139f996b820eae05daa0e..d770ee6c500ced7e346d5e957b23175a5c7316e4 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml
@@ -44,6 +44,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignUu"
         latin:parentStyle="moreKeysDevanagariVowelSignUu"
-        latin:keyLabel="&#x0942;"
+        latin:keySpec="&#x0942;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml/key_armenian_sha.xml b/java/res/xml/key_armenian_sha.xml
index 3865c19841df1c8b83cc4bd8c01a7fcf1cfac14c..b6418f26f0fd29a32da50638a6e96d7e8ae6ae96 100644
--- a/java/res/xml/key_armenian_sha.xml
+++ b/java/res/xml/key_armenian_sha.xml
@@ -23,6 +23,6 @@
 >
     <!-- U+0577: "Õ·" ARMENIAN SMALL LETTER SHA -->
     <Key
-        latin:keyLabel="&#x0577;"
+        latin:keySpec="&#x0577;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml/key_armenian_xeh.xml b/java/res/xml/key_armenian_xeh.xml
index 007a5802dc21ea76ad5876dac9ffdaae9e0b5b93..cfc5bc0f9e3c4f45ddbcc6929a69ba49b546b02b 100644
--- a/java/res/xml/key_armenian_xeh.xml
+++ b/java/res/xml/key_armenian_xeh.xml
@@ -23,6 +23,6 @@
 >
     <!-- U+056D: "Õ­" ARMENIAN SMALL LETTER XEH -->
     <Key
-        latin:keyLabel="&#x056D;"
+        latin:keySpec="&#x056D;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml/key_azerty3_right.xml b/java/res/xml/key_azerty3_right.xml
index 65789ea6932f87c7861fc0e6235448fade7c041f..85a0666132adf2b40c58058124f1f8e89481e13d 100644
--- a/java/res/xml/key_azerty3_right.xml
+++ b/java/res/xml/key_azerty3_right.xml
@@ -26,11 +26,11 @@
             latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
         >
             <Key
-                latin:keyLabel="\?" />
+                latin:keySpec="\?" />
         </case>
         <default>
             <Key
-                latin:keyLabel="\'"
+                latin:keySpec="\'"
                 latin:moreKeys="!text/more_keys_for_single_quote" />
         </default>
     </switch>
diff --git a/java/res/xml/key_colemak_colon.xml b/java/res/xml/key_colemak_colon.xml
index 307b4ebcaef7ff089b235d7be9d4f19bc6dbad60..9330be9a5967a2fa0a426924248c99c8333785a4 100644
--- a/java/res/xml/key_colemak_colon.xml
+++ b/java/res/xml/key_colemak_colon.xml
@@ -26,13 +26,13 @@
             latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
         >
             <Key
-                latin:keyLabel=";"
+                latin:keySpec=";"
                 latin:keyHintLabel="0"
                 latin:additionalMoreKeys="0" />
         </case>
         <default>
             <Key
-                latin:keyLabel=":"
+                latin:keySpec=":"
                 latin:keyHintLabel="0"
                 latin:additionalMoreKeys="0"
                 latin:moreKeys=";" />
diff --git a/java/res/xml/key_devanagari_sign_anusvara.xml b/java/res/xml/key_devanagari_sign_anusvara.xml
index ed9cfbba1202f2820db523b2c57377a6f4758aa0..5d7c01890fbc10d995d9a7b6db94a7fd14912214 100644
--- a/java/res/xml/key_devanagari_sign_anusvara.xml
+++ b/java/res/xml/key_devanagari_sign_anusvara.xml
@@ -28,6 +28,6 @@
     <!-- U+25CC: "◌" DOTTED CIRCLE
          U+0902: "ं" DEVANAGARI SIGN ANUSVARA -->
     <Key
-        latin:keyLabel="&#x25CC;&#x0902;|&#x0902;"
+        latin:keySpec="&#x25CC;&#x0902;|&#x0902;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/key_devanagari_sign_candrabindu.xml b/java/res/xml/key_devanagari_sign_candrabindu.xml
index 225d2a6e6a073fe3cc7e07b0f8b1b9de82fc267d..9e9c371a7dff0d9831a3bd8d16e20dc5221f9683 100644
--- a/java/res/xml/key_devanagari_sign_candrabindu.xml
+++ b/java/res/xml/key_devanagari_sign_candrabindu.xml
@@ -44,6 +44,6 @@
          U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
     <Key
         latin:keyStyle="moreKeysDevanagariSignCandrabindu"
-        latin:keyLabel="&#x25CC;&#x0901;|&#x0901;"
+        latin:keySpec="&#x25CC;&#x0901;|&#x0901;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/key_devanagari_sign_nukta.xml b/java/res/xml/key_devanagari_sign_nukta.xml
index 8f8da27092fd140fabfd27a2cd238ecf0fc13262..b56eb0af3acb87b8ed4b451f153a76ed52b920dd 100644
--- a/java/res/xml/key_devanagari_sign_nukta.xml
+++ b/java/res/xml/key_devanagari_sign_nukta.xml
@@ -46,6 +46,6 @@
          U+093C: "़" DEVANAGARI SIGN NUKTA -->
     <Key
         latin:keyStyle="moreKeysDevanagariSignNukta"
-        latin:keyLabel="&#x25CC;&#x093C;|&#x093C;"
+        latin:keySpec="&#x25CC;&#x093C;|&#x093C;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/key_devanagari_vowel_sign_candra_o.xml b/java/res/xml/key_devanagari_vowel_sign_candra_o.xml
index 8d5368c46ab1279c176fdc2e63cb90e5c4881e20..6d7d000b33b2142d64d636eafa3a821539bd207c 100644
--- a/java/res/xml/key_devanagari_vowel_sign_candra_o.xml
+++ b/java/res/xml/key_devanagari_vowel_sign_candra_o.xml
@@ -28,6 +28,6 @@
     <!-- U+25CC: "◌" DOTTED CIRCLE
          U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O -->
     <Key
-        latin:keyLabel="&#x25CC;&#x0949;|&#x0949;"
+        latin:keySpec="&#x25CC;&#x0949;|&#x0949;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml b/java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml
index fb912253d069696abc3eac026b0430fdf32aff4d..badea3e2c493da47f5114aa89adc51ff6a557c3c 100644
--- a/java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml
+++ b/java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml
@@ -52,6 +52,6 @@
          U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R -->
     <Key
         latin:keyStyle="moreKeysDevanagariVowelSignVocalicR"
-        latin:keyLabel="&#x25CC;&#x0943;|&#x0943;"
+        latin:keySpec="&#x25CC;&#x0943;|&#x0943;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/key_f1.xml b/java/res/xml/key_f1.xml
index 0e9d497b63a6eb253057bcb2891df2b4b8468868..d3a75394888f0217ad9973aaa3baf69b015117d0 100644
--- a/java/res/xml/key_f1.xml
+++ b/java/res/xml/key_f1.xml
@@ -26,21 +26,21 @@
             latin:mode="url"
         >
             <Key
-                latin:keyLabel="/"
+                latin:keySpec="/"
                 latin:keyStyle="f1MoreKeysStyle" />
         </case>
         <case
             latin:mode="email"
         >
             <Key
-                latin:keyLabel="\@"
+                latin:keySpec="\@"
                 latin:keyStyle="f1MoreKeysStyle" />
         </case>
         <case
             latin:supportsSwitchingToShortcutIme="false"
         >
             <Key
-                latin:keyLabel="!text/keylabel_for_comma"
+                latin:keySpec="!text/keylabel_for_comma"
                 latin:keyLabelFlags="hasPopupHint"
                 latin:additionalMoreKeys="!text/more_keys_for_comma"
                 latin:keyStyle="f1MoreKeysStyle" />
@@ -55,7 +55,7 @@
         <!-- latin:hasShortcutKey="false" -->
         <default>
             <Key
-                latin:keyLabel="!text/keylabel_for_comma"
+                latin:keySpec="!text/keylabel_for_comma"
                 latin:keyLabelFlags="hasPopupHint"
                 latin:additionalMoreKeys="!text/more_keys_for_comma,!text/shortcut_as_more_key"
                 latin:keyStyle="f1MoreKeysStyle" />
diff --git a/java/res/xml/key_greek_semicolon.xml b/java/res/xml/key_greek_semicolon.xml
index ae73a59f62e39d80deb8c32e591a111c756f5be1..9001e4dfbd45a5671647f142c80e6c85ce6ea0a0 100644
--- a/java/res/xml/key_greek_semicolon.xml
+++ b/java/res/xml/key_greek_semicolon.xml
@@ -26,14 +26,14 @@
             latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
         >
             <Key
-                latin:keyLabel=":"
+                latin:keySpec=":"
                 latin:keyHintLabel="1"
                 latin:moreKeys=";"
                 latin:additionalMoreKeys="1" />
         </case>
         <default>
             <Key
-                latin:keyLabel=";"
+                latin:keySpec=";"
                 latin:keyHintLabel="1"
                 latin:moreKeys=":"
                 latin:additionalMoreKeys="1" />
diff --git a/java/res/xml/key_period.xml b/java/res/xml/key_period.xml
index 838db25c30365a8781b2c0979c8a43eea9bc3bf8..edb4f94569c072d5e7ef95c1e218f5ecedc23e9f 100644
--- a/java/res/xml/key_period.xml
+++ b/java/res/xml/key_period.xml
@@ -39,7 +39,7 @@
         </case>
         <default>
             <Key
-                latin:keyLabel="!text/keylabel_for_period"
+                latin:keySpec="!text/keylabel_for_period"
                 latin:keyHintLabel="!text/keyhintlabel_for_period"
                 latin:keyLabelFlags="hasPopupHint|hasShiftedLetterHint"
                 latin:moreKeys="!text/more_keys_for_period"
diff --git a/java/res/xml/key_styles_common.xml b/java/res/xml/key_styles_common.xml
index 2e59cedbd69ccf97ce037935159f634a621ce112..d4c9b7d58f4bb2483af244feecb1c1070e65f3ca 100644
--- a/java/res/xml/key_styles_common.xml
+++ b/java/res/xml/key_styles_common.xml
@@ -51,7 +51,7 @@
         >
             <key-style
                 latin:styleName="shiftKeyStyle"
-                latin:keyLabel="!icon/shift_key_shifted|!code/key_shift"
+                latin:keySpec="!icon/shift_key_shifted|!code/key_shift"
                 latin:backgroundType="stickyOff"
                 latin:parentStyle="baseForShiftKeyStyle" />
         </case>
@@ -60,70 +60,70 @@
         >
             <key-style
                 latin:styleName="shiftKeyStyle"
-                latin:keyLabel="!icon/shift_key_shifted|!code/key_shift"
+                latin:keySpec="!icon/shift_key_shifted|!code/key_shift"
                 latin:backgroundType="stickyOn"
                 latin:parentStyle="baseForShiftKeyStyle" />
         </case>
         <default>
             <key-style
                 latin:styleName="shiftKeyStyle"
-                latin:keyLabel="!icon/shift_key|!code/key_shift"
+                latin:keySpec="!icon/shift_key|!code/key_shift"
                 latin:backgroundType="stickyOff"
                 latin:parentStyle="baseForShiftKeyStyle" />
         </default>
     </switch>
     <key-style
         latin:styleName="deleteKeyStyle"
-        latin:keyLabel="!icon/delete_key|!code/key_delete"
+        latin:keySpec="!icon/delete_key|!code/key_delete"
         latin:keyActionFlags="isRepeatable|noKeyPreview"
         latin:backgroundType="functional" />
     <include
         latin:keyboardLayout="@xml/key_styles_enter" />
     <key-style
         latin:styleName="spaceKeyStyle"
-        latin:keyLabel=" |!code/key_space"
+        latin:keySpec=" |!code/key_space"
         latin:keyActionFlags="noKeyPreview|enableLongPress" />
     <!-- U+200C: ZERO WIDTH NON-JOINER
          U+200D: ZERO WIDTH JOINER -->
     <key-style
         latin:styleName="zwnjKeyStyle"
-        latin:keyLabel="!icon/zwnj_key|&#x200C;"
+        latin:keySpec="!icon/zwnj_key|&#x200C;"
         latin:moreKeys="!icon/zwj_key|&#x200D;"
         latin:keyLabelFlags="hasPopupHint"
         latin:keyActionFlags="noKeyPreview" />
     <key-style
         latin:styleName="shortcutKeyStyle"
-        latin:keyLabel="!icon/shortcut_key|!code/key_shortcut"
+        latin:keySpec="!icon/shortcut_key|!code/key_shortcut"
         latin:keyIconDisabled="!icon/shortcut_key_disabled"
         latin:keyActionFlags="noKeyPreview|altCodeWhileTyping"
         latin:altCode="!code/key_space"
         latin:parentStyle="f1MoreKeysStyle" />
     <key-style
         latin:styleName="settingsKeyStyle"
-        latin:keyLabel="!icon/settings_key|!code/key_settings"
+        latin:keySpec="!icon/settings_key|!code/key_settings"
         latin:keyActionFlags="noKeyPreview|altCodeWhileTyping"
         latin:altCode="!code/key_space"
         latin:backgroundType="functional" />
     <key-style
         latin:styleName="languageSwitchKeyStyle"
-        latin:keyLabel="!icon/language_switch_key|!code/key_language_switch"
+        latin:keySpec="!icon/language_switch_key|!code/key_language_switch"
         latin:keyActionFlags="noKeyPreview|altCodeWhileTyping|enableLongPress"
         latin:altCode="!code/key_space" />
     <key-style
         latin:styleName="emojiKeyStyle"
-        latin:keyLabel="!icon/emoji_key|!code/key_emoji"
+        latin:keySpec="!icon/emoji_key|!code/key_emoji"
         latin:keyActionFlags="noKeyPreview"
         latin:backgroundType="functional" />
     <key-style
         latin:styleName="tabKeyStyle"
-        latin:keyLabel="!icon/tab_key|!code/key_tab"
+        latin:keySpec="!icon/tab_key|!code/key_tab"
         latin:keyIconPreview="!icon/tab_key_preview"
         latin:backgroundType="functional" />
     <!-- Note: This key style is not for functional tab key. This is used for the tab key which is
          laid out as normal letter key. -->
     <key-style
         latin:styleName="nonSpecialBackgroundTabKeyStyle"
-        latin:keyLabel="!icon/tab_key|!code/key_tab"
+        latin:keySpec="!icon/tab_key|!code/key_tab"
         latin:keyIconPreview="!icon/tab_key_preview" />
     <key-style
         latin:styleName="baseForLayoutSwitchKeyStyle"
@@ -132,23 +132,23 @@
         latin:backgroundType="functional" />
     <key-style
         latin:styleName="toSymbolKeyStyle"
-        latin:keyLabel="!text/label_to_symbol_key|!code/key_switch_alpha_symbol"
+        latin:keySpec="!text/label_to_symbol_key|!code/key_switch_alpha_symbol"
         latin:parentStyle="baseForLayoutSwitchKeyStyle" />
     <key-style
         latin:styleName="toAlphaKeyStyle"
-        latin:keyLabel="!text/label_to_alpha_key|!code/key_switch_alpha_symbol"
+        latin:keySpec="!text/label_to_alpha_key|!code/key_switch_alpha_symbol"
         latin:parentStyle="baseForLayoutSwitchKeyStyle" />
     <key-style
         latin:styleName="toMoreSymbolKeyStyle"
-        latin:keyLabel="!text/label_to_more_symbol_key|!code/key_shift"
+        latin:keySpec="!text/label_to_more_symbol_key|!code/key_shift"
         latin:parentStyle="baseForLayoutSwitchKeyStyle" />
     <key-style
         latin:styleName="backFromMoreSymbolKeyStyle"
-        latin:keyLabel="!text/label_to_symbol_key|!code/key_shift"
+        latin:keySpec="!text/label_to_symbol_key|!code/key_shift"
         latin:parentStyle="baseForLayoutSwitchKeyStyle" />
     <key-style
         latin:styleName="comKeyStyle"
-        latin:keyLabel="!text/keylabel_for_popular_domain|!text/keylabel_for_popular_domain"
+        latin:keySpec="!text/keylabel_for_popular_domain|!text/keylabel_for_popular_domain"
         latin:keyLabelFlags="autoXScale|fontNormal|hasPopupHint|preserveCase"
         latin:moreKeys="!text/more_keys_for_popular_domain"
         latin:backgroundType="functional" />
diff --git a/java/res/xml/key_styles_currency.xml b/java/res/xml/key_styles_currency.xml
index 84c2abc0851c672a46cf4bde6fe46748a7158434..ed40ebc58f6e9464e889c20e194277d2da030088 100644
--- a/java/res/xml/key_styles_currency.xml
+++ b/java/res/xml/key_styles_currency.xml
@@ -113,21 +113,21 @@
                  U+00A2: "¢" CENT SIGN -->
             <key-style
                 latin:styleName="currencyKeyStyle"
-                latin:keyLabel="!text/keylabel_for_currency"
+                latin:keySpec="!text/keylabel_for_currency"
                 latin:moreKeys="!text/more_keys_for_currency" />
             <key-style
                 latin:styleName="moreCurrency1KeyStyle"
-                latin:keyLabel="&#x00A3;" />
+                latin:keySpec="&#x00A3;" />
             <key-style
                 latin:styleName="moreCurrency2KeyStyle"
-                latin:keyLabel="&#x20AC;" />
+                latin:keySpec="&#x20AC;" />
             <key-style
                 latin:styleName="moreCurrency3KeyStyle"
-                latin:keyLabel="$"
+                latin:keySpec="$"
                 latin:moreKeys="&#x00A2;" />
             <key-style
                 latin:styleName="moreCurrency4KeyStyle"
-                latin:keyLabel="&#x00A2;" />
+                latin:keySpec="&#x00A2;" />
         </case>
         <!-- GB: United Kingdom (Pound) -->
         <case
@@ -140,21 +140,21 @@
                  U+20B1: "₱" PESO SIGN -->
             <key-style
                 latin:styleName="currencyKeyStyle"
-                latin:keyLabel="&#x00A3;"
+                latin:keySpec="&#x00A3;"
                 latin:moreKeys="&#x00A2;,$,&#x20AC;,&#x00A5;,&#x20B1;" />
             <key-style
                 latin:styleName="moreCurrency1KeyStyle"
-                latin:keyLabel="&#x20AC;" />
+                latin:keySpec="&#x20AC;" />
             <key-style
                 latin:styleName="moreCurrency2KeyStyle"
-                latin:keyLabel="&#x00A5;" />
+                latin:keySpec="&#x00A5;" />
             <key-style
                 latin:styleName="moreCurrency3KeyStyle"
-                latin:keyLabel="$"
+                latin:keySpec="$"
                 latin:moreKeys="&#x00A2;" />
             <key-style
                 latin:styleName="moreCurrency4KeyStyle"
-                latin:keyLabel="&#x00A2;" />
+                latin:keySpec="&#x00A2;" />
         </case>
         <!-- ar: Arabic (Dollar and Rial) -->
         <default>
diff --git a/java/res/xml/key_styles_currency_dollar.xml b/java/res/xml/key_styles_currency_dollar.xml
index 674a3966dae81fa40d95338ad0f218ebccfb6b66..a02c9bfa10083a94867148235bf4c3bcfef6f837 100644
--- a/java/res/xml/key_styles_currency_dollar.xml
+++ b/java/res/xml/key_styles_currency_dollar.xml
@@ -25,18 +25,18 @@
          U+00A5: "Â¥" YEN SIGN -->
     <key-style
         latin:styleName="currencyKeyStyle"
-        latin:keyLabel="$"
+        latin:keySpec="$"
         latin:moreKeys="!text/more_keys_for_currency_dollar" />
     <key-style
         latin:styleName="moreCurrency1KeyStyle"
-        latin:keyLabel="&#x00A3;" />
+        latin:keySpec="&#x00A3;" />
     <key-style
         latin:styleName="moreCurrency2KeyStyle"
-        latin:keyLabel="&#x00A2;" />
+        latin:keySpec="&#x00A2;" />
     <key-style
         latin:styleName="moreCurrency3KeyStyle"
-        latin:keyLabel="&#x20AC;" />
+        latin:keySpec="&#x20AC;" />
     <key-style
         latin:styleName="moreCurrency4KeyStyle"
-        latin:keyLabel="&#x00A5;" />
+        latin:keySpec="&#x00A5;" />
 </merge>
diff --git a/java/res/xml/key_styles_currency_euro.xml b/java/res/xml/key_styles_currency_euro.xml
index c1b5e0384f9b59d948588a0543060bbee9367a8c..c2ae87bea6cbd7633b79ef1afe5724e8dbaf6771 100644
--- a/java/res/xml/key_styles_currency_euro.xml
+++ b/java/res/xml/key_styles_currency_euro.xml
@@ -26,19 +26,19 @@
          U+20B1: "₱" PESO SIGN -->
     <key-style
         latin:styleName="currencyKeyStyle"
-        latin:keyLabel="&#x20AC;"
+        latin:keySpec="&#x20AC;"
         latin:moreKeys="&#x00A2;,&#x00A3;,$,&#x00A5;,&#x20B1;" />
     <key-style
         latin:styleName="moreCurrency1KeyStyle"
-        latin:keyLabel="&#x00A3;" />
+        latin:keySpec="&#x00A3;" />
     <key-style
         latin:styleName="moreCurrency2KeyStyle"
-        latin:keyLabel="&#x00A5;" />
+        latin:keySpec="&#x00A5;" />
     <key-style
         latin:styleName="moreCurrency3KeyStyle"
-        latin:keyLabel="$"
+        latin:keySpec="$"
         latin:moreKeys="&#x00A2;" />
     <key-style
         latin:styleName="moreCurrency4KeyStyle"
-        latin:keyLabel="&#x00A2;" />
+        latin:keySpec="&#x00A2;" />
 </merge>
diff --git a/java/res/xml/key_styles_enter.xml b/java/res/xml/key_styles_enter.xml
index b3def1fb4bf0998fa866c51c164b2f94be3662f0..64d09b1076b4d7d8323a562cb6c02fd3251048e9 100644
--- a/java/res/xml/key_styles_enter.xml
+++ b/java/res/xml/key_styles_enter.xml
@@ -261,7 +261,7 @@
         latin:parentStyle="navigateMoreKeysStyle" />
     <key-style
         latin:styleName="shiftEnterKeyStyle"
-        latin:keyLabel="!icon/enter_key|!code/key_shift_enter"
+        latin:keySpec="!icon/enter_key|!code/key_shift_enter"
         latin:parentStyle="defaultEnterKeyStyle" />
     <switch>
         <!-- Shift + Enter in textMultiLine field. -->
@@ -287,7 +287,7 @@
         >
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyLabel="!text/label_go_key|!code/key_enter"
+                latin:keySpec="!text/label_go_key|!code/key_enter"
                 latin:backgroundType="action"
                 latin:parentStyle="defaultEnterKeyStyle" />
         </case>
@@ -296,7 +296,7 @@
         >
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyLabel="!text/label_next_key|!code/key_enter"
+                latin:keySpec="!text/label_next_key|!code/key_enter"
                 latin:backgroundType="action"
                 latin:parentStyle="defaultEnterKeyStyle" />
         </case>
@@ -305,7 +305,7 @@
         >
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyLabel="!text/label_previous_key|!code/key_enter"
+                latin:keySpec="!text/label_previous_key|!code/key_enter"
                 latin:backgroundType="action"
                 latin:parentStyle="defaultEnterKeyStyle" />
         </case>
@@ -314,7 +314,7 @@
         >
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyLabel="!text/label_done_key|!code/key_enter"
+                latin:keySpec="!text/label_done_key|!code/key_enter"
                 latin:backgroundType="action"
                 latin:parentStyle="defaultEnterKeyStyle" />
         </case>
@@ -323,7 +323,7 @@
         >
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyLabel="!text/label_send_key|!code/key_enter"
+                latin:keySpec="!text/label_send_key|!code/key_enter"
                 latin:backgroundType="action"
                 latin:parentStyle="defaultEnterKeyStyle" />
         </case>
@@ -332,7 +332,7 @@
         >
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyLabel="!icon/search_key|!code/key_enter"
+                latin:keySpec="!icon/search_key|!code/key_enter"
                 latin:backgroundType="action"
                 latin:parentStyle="defaultEnterKeyStyle" />
         </case>
@@ -341,7 +341,7 @@
         >
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyLabel="dummy_label|!code/key_enter"
+                latin:keySpec="dummy_label|!code/key_enter"
                 latin:keyLabelFlags="fromCustomActionLabel"
                 latin:backgroundType="action"
                 latin:parentStyle="defaultEnterKeyStyle" />
@@ -350,7 +350,7 @@
         <default>
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyLabel="!icon/enter_key|!code/key_enter"
+                latin:keySpec="!icon/enter_key|!code/key_enter"
                 latin:parentStyle="defaultEnterKeyStyle" />
         </default>
     </switch>
diff --git a/java/res/xml/key_styles_number.xml b/java/res/xml/key_styles_number.xml
index 3c0cf720ee5bc0fe075111e8fcf81db2a10456c2..7136e107041af4fa846d84ca4d2f49f4f5ef43ca 100644
--- a/java/res/xml/key_styles_number.xml
+++ b/java/res/xml/key_styles_number.xml
@@ -43,74 +43,74 @@
         latin:parentStyle="numKeyStyle" />
     <key-style
         latin:styleName="num0KeyStyle"
-        latin:keyLabel="0"
+        latin:keySpec="0"
         latin:parentStyle="numberKeyStyle" />
     <key-style
         latin:styleName="num1KeyStyle"
-        latin:keyLabel="1"
+        latin:keySpec="1"
         latin:parentStyle="numberKeyStyle" />
     <key-style
         latin:styleName="num2KeyStyle"
-        latin:keyLabel="2"
+        latin:keySpec="2"
         latin:keyHintLabel="ABC"
         latin:parentStyle="numberKeyStyle" />
     <key-style
         latin:styleName="num3KeyStyle"
-        latin:keyLabel="3"
+        latin:keySpec="3"
         latin:keyHintLabel="DEF"
         latin:parentStyle="numberKeyStyle" />
     <key-style
         latin:styleName="num4KeyStyle"
-        latin:keyLabel="4"
+        latin:keySpec="4"
         latin:keyHintLabel="GHI"
         latin:parentStyle="numberKeyStyle" />
     <key-style
         latin:styleName="num5KeyStyle"
-        latin:keyLabel="5"
+        latin:keySpec="5"
         latin:keyHintLabel="JKL"
         latin:parentStyle="numberKeyStyle" />
     <key-style
         latin:styleName="num6KeyStyle"
-        latin:keyLabel="6"
+        latin:keySpec="6"
         latin:keyHintLabel="MNO"
         latin:parentStyle="numberKeyStyle" />
     <key-style
         latin:styleName="num7KeyStyle"
-        latin:keyLabel="7"
+        latin:keySpec="7"
         latin:keyHintLabel="PQRS"
         latin:parentStyle="numberKeyStyle" />
     <key-style
         latin:styleName="num8KeyStyle"
-        latin:keyLabel="8"
+        latin:keySpec="8"
         latin:keyHintLabel="TUV"
         latin:parentStyle="numberKeyStyle" />
     <key-style
         latin:styleName="num9KeyStyle"
-        latin:keyLabel="9"
+        latin:keySpec="9"
         latin:keyHintLabel="WXYZ"
         latin:parentStyle="numberKeyStyle" />
     <!-- U+FF0A: "*" FULLWIDTH ASTERISK -->
     <key-style
         latin:styleName="numStarKeyStyle"
-        latin:keyLabel="&#xFF0A;|*"
+        latin:keySpec="&#xFF0A;|*"
         latin:parentStyle="numKeyStyle" />
     <!-- Only for non-tablet device -->
     <key-style
         latin:styleName="numPhoneToSymbolKeyStyle"
-        latin:keyLabel="!text/label_to_phone_symbols_key|!code/key_switch_alpha_symbol"
+        latin:keySpec="!text/label_to_phone_symbols_key|!code/key_switch_alpha_symbol"
         latin:parentStyle="numModeKeyStyle" />
     <key-style
         latin:styleName="numPhoneToNumericKeyStyle"
-        latin:keyLabel="!text/label_to_phone_numeric_key|!code/key_switch_alpha_symbol"
+        latin:keySpec="!text/label_to_phone_numeric_key|!code/key_switch_alpha_symbol"
         latin:parentStyle="numModeKeyStyle" />
     <key-style
         latin:styleName="numPauseKeyStyle"
-        latin:keyLabel="!text/label_pause_key|,"
+        latin:keySpec="!text/label_pause_key|,"
         latin:keyLabelFlags="followKeyHintLabelRatio|autoXScale"
         latin:parentStyle="numKeyBaseStyle" />
     <key-style
         latin:styleName="numWaitKeyStyle"
-        latin:keyLabel="!text/label_wait_key|;"
+        latin:keySpec="!text/label_wait_key|;"
         latin:keyLabelFlags="followKeyHintLabelRatio|autoXScale"
         latin:parentStyle="numKeyBaseStyle" />
     <key-style
@@ -119,13 +119,13 @@
         latin:parentStyle="tabKeyStyle" />
     <key-style
         latin:styleName="numSpaceKeyStyle"
-        latin:keyLabel="!icon/space_key_for_number_layout|!code/key_space"
+        latin:keySpec="!icon/space_key_for_number_layout|!code/key_space"
         latin:keyActionFlags="enableLongPress"
         latin:parentStyle="numKeyBaseStyle" />
     <!-- Override defaultEnterKeyStyle in key_styles_enter.xml -->
     <key-style
         latin:styleName="defaultEnterKeyStyle"
-        latin:keyLabel="!icon/enter_key|!code/key_enter"
+        latin:keySpec="!icon/enter_key|!code/key_enter"
         latin:keyLabelFlags="preserveCase|autoXScale|followKeyLargeLabelRatio"
         latin:keyActionFlags="noKeyPreview"
         latin:backgroundType="functional"
diff --git a/java/res/xml/key_thai_kho_khuat.xml b/java/res/xml/key_thai_kho_khuat.xml
index 0ffd0f9249c4cb1de7981f862eff04a9607455b6..84988f870cf1834c0cc2df5a60cb3174245cd64f 100644
--- a/java/res/xml/key_thai_kho_khuat.xml
+++ b/java/res/xml/key_thai_kho_khuat.xml
@@ -27,13 +27,13 @@
         >
             <!-- U+0E05: "ฅ" THAI CHARACTER KHO KHON -->
             <Key
-                latin:keyLabel="&#x0E05;"
+                latin:keySpec="&#x0E05;"
                 latin:keyLabelFlags="fontNormal" />
         </case>
         <default>
             <!-- U+0E03: "ฃ" THAI CHARACTER KHO KHUAT -->
             <Key
-                latin:keyLabel="&#x0E03;"
+                latin:keySpec="&#x0E03;"
                 latin:keyLabelFlags="fontNormal" />
         </default>
     </switch>
diff --git a/java/res/xml/keys_arabic3_left.xml b/java/res/xml/keys_arabic3_left.xml
index 157af4a52b9783777a72bee38611eb28840c000d..2b3e12c030b8b5bcc01a7f40e330f10a0e3de9af 100644
--- a/java/res/xml/keys_arabic3_left.xml
+++ b/java/res/xml/keys_arabic3_left.xml
@@ -23,6 +23,6 @@
 >
     <!-- U+0630: "ذ" ARABIC LETTER THAL -->
     <Key
-        latin:keyLabel="&#x0630;"
+        latin:keySpec="&#x0630;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml/keys_comma_period_symbols.xml b/java/res/xml/keys_comma_period_symbols.xml
index 880fe40d9147099c532542cd31aef05b21d1cb18..5221d34e344a2510c6003598099a9ceb28a1a8a6 100644
--- a/java/res/xml/keys_comma_period_symbols.xml
+++ b/java/res/xml/keys_comma_period_symbols.xml
@@ -22,10 +22,10 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="!text/keylabel_for_comma"
+        latin:keySpec="!text/keylabel_for_comma"
         latin:moreKeys="!text/more_keys_for_comma" />
     <!-- U+2026: "…" HORIZONTAL ELLIPSIS -->
     <Key
-        latin:keyLabel="."
+        latin:keySpec="."
         latin:moreKeys="&#x2026;" />
 </merge>
diff --git a/java/res/xml/keys_curly_brackets.xml b/java/res/xml/keys_curly_brackets.xml
index fd736c07dc1b3932e7d0d2a6194f870304a65836..da6dfc0fd48e0f095b72f9ea3b78187b36351908 100644
--- a/java/res/xml/keys_curly_brackets.xml
+++ b/java/res/xml/keys_curly_brackets.xml
@@ -22,7 +22,7 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="{|!code/key_left_curly_bracket" />
+        latin:keySpec="{|!code/key_left_curly_bracket" />
     <Key
-        latin:keyLabel="}|!code/key_right_curly_bracket" />
+        latin:keySpec="}|!code/key_right_curly_bracket" />
 </merge>
diff --git a/java/res/xml/keys_dvorak_123.xml b/java/res/xml/keys_dvorak_123.xml
index fa94f1f283d5206e58454181d909878b99ce7c24..6efc7f2c5fd9ab0b150758146508c0aea7155c60 100644
--- a/java/res/xml/keys_dvorak_123.xml
+++ b/java/res/xml/keys_dvorak_123.xml
@@ -26,7 +26,7 @@
             latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
         >
             <Key
-                latin:keyLabel="&quot;"
+                latin:keySpec="&quot;"
                 latin:keyHintLabel="1"
                 latin:additionalMoreKeys="1" />
         </case>
@@ -34,7 +34,7 @@
             latin:mode="url"
         >
             <Key
-                latin:keyLabel="/"
+                latin:keySpec="/"
                 latin:keyHintLabel="1"
                 latin:additionalMoreKeys="1" />
         </case>
@@ -42,13 +42,13 @@
             latin:mode="email"
         >
             <Key
-                latin:keyLabel="\@"
+                latin:keySpec="\@"
                 latin:keyHintLabel="1"
                 latin:additionalMoreKeys="1" />
         </case>
         <default>
             <Key
-                latin:keyLabel="\'"
+                latin:keySpec="\'"
                 latin:keyHintLabel="1"
                 latin:additionalMoreKeys="1"
                 latin:moreKeys="!,&quot;" />
@@ -59,22 +59,22 @@
             latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
         >
             <Key
-                latin:keyLabel="&lt;"
+                latin:keySpec="&lt;"
                 latin:keyHintLabel="2"
                 latin:additionalMoreKeys="2" />
             <Key
-                latin:keyLabel="&gt;"
+                latin:keySpec="&gt;"
                 latin:keyHintLabel="3"
                 latin:additionalMoreKeys="3" />
         </case>
         <default>
             <Key
-                latin:keyLabel=","
+                latin:keySpec=","
                 latin:keyHintLabel="2"
                 latin:additionalMoreKeys="2"
                 latin:moreKeys="\?,&lt;" />
             <Key
-                latin:keyLabel="."
+                latin:keySpec="."
                 latin:keyHintLabel="3"
                 latin:additionalMoreKeys="3"
                 latin:moreKeys="&gt;" />
diff --git a/java/res/xml/keys_farsi3_right.xml b/java/res/xml/keys_farsi3_right.xml
index 77efb0a21fd63ace208c25497d1b1f741ded0ee1..2618e478c6a6436a2db45b75e558c42339a77cb9 100644
--- a/java/res/xml/keys_farsi3_right.xml
+++ b/java/res/xml/keys_farsi3_right.xml
@@ -23,6 +23,6 @@
 >
     <!-- U+0686: "Ú†" ARABIC LETTER TCHEH -->
     <Key
-        latin:keyLabel="&#x0686;"
+        latin:keySpec="&#x0686;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml/keys_less_greater.xml b/java/res/xml/keys_less_greater.xml
index 98dcef6b5f7fd3b86f529359e17cecc424cf2952..3304e4c078806cb6545b33ff9f8c9a015e0e870e 100644
--- a/java/res/xml/keys_less_greater.xml
+++ b/java/res/xml/keys_less_greater.xml
@@ -29,21 +29,21 @@
             <!-- U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
                  U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
             <Key
-                latin:keyLabel="&#x00AB;|&#x00BB;"
+                latin:keySpec="&#x00AB;|&#x00BB;"
                 latin:backgroundType="functional"
                 latin:moreKeys="!text/more_keys_for_less_than" />
             <Key
-                latin:keyLabel="&#x00BB;|&#x00AB;"
+                latin:keySpec="&#x00BB;|&#x00AB;"
                 latin:backgroundType="functional"
                 latin:moreKeys="!text/more_keys_for_greater_than" />
         </case>
         <default>
             <Key
-                latin:keyLabel="&lt;|!code/key_less_than"
+                latin:keySpec="&lt;|!code/key_less_than"
                 latin:backgroundType="functional"
                 latin:moreKeys="!text/more_keys_for_less_than" />
             <Key
-                latin:keyLabel="&gt;|!code/key_greater_than"
+                latin:keySpec="&gt;|!code/key_greater_than"
                 latin:backgroundType="functional"
                 latin:moreKeys="!text/more_keys_for_greater_than" />
         </default>
diff --git a/java/res/xml/keys_parentheses.xml b/java/res/xml/keys_parentheses.xml
index fe4e5de8487efc247c620f51cdf444bda52ed06c..ab33ef561c82d22722b4613e2d9a7581c4bd991e 100644
--- a/java/res/xml/keys_parentheses.xml
+++ b/java/res/xml/keys_parentheses.xml
@@ -22,9 +22,9 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="(|!code/key_left_parenthesis"
+        latin:keySpec="(|!code/key_left_parenthesis"
         latin:moreKeys="!text/more_keys_for_left_parenthesis" />
     <Key
-        latin:keyLabel=")|!code/key_right_parenthesis"
+        latin:keySpec=")|!code/key_right_parenthesis"
         latin:moreKeys="!text/more_keys_for_right_parenthesis" />
 </merge>
diff --git a/java/res/xml/keys_pcqwerty2_right3.xml b/java/res/xml/keys_pcqwerty2_right3.xml
index 6f86477dae69a3fe02ae19875b65ccefec112570..9e62b09c2527bbe4699305de1c5b0c2bfb9cb284 100644
--- a/java/res/xml/keys_pcqwerty2_right3.xml
+++ b/java/res/xml/keys_pcqwerty2_right3.xml
@@ -26,23 +26,23 @@
             latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted"
         >
             <Key
-                latin:keyLabel="["
+                latin:keySpec="["
                 latin:additionalMoreKeys="{" />
             <Key
-                latin:keyLabel="]"
+                latin:keySpec="]"
                 latin:additionalMoreKeys="}" />
             <Key
-                latin:keyLabel="\\"
+                latin:keySpec="\\"
                 latin:additionalMoreKeys="\\|" />
         </case>
         <!-- keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" -->
         <default>
             <Key
-                latin:keyLabel="{" />
+                latin:keySpec="{" />
             <Key
-                latin:keyLabel="}" />
+                latin:keySpec="}" />
             <Key
-                latin:keyLabel="|" />
+                latin:keySpec="|" />
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml/keys_pcqwerty3_right2.xml b/java/res/xml/keys_pcqwerty3_right2.xml
index 8da145b20478acb7a775a65ed915f57a364c6821..d889216c0200753382a491853a0de071e7020900 100644
--- a/java/res/xml/keys_pcqwerty3_right2.xml
+++ b/java/res/xml/keys_pcqwerty3_right2.xml
@@ -26,19 +26,19 @@
             latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted"
         >
             <Key
-                latin:keyLabel=";"
+                latin:keySpec=";"
                 latin:additionalMoreKeys=":" />
             <Key
-                latin:keyLabel="\'"
+                latin:keySpec="\'"
                 latin:additionalMoreKeys="&quot;"
                 latin:moreKeys="!fixedColumnOrder!4,!text/double_quotes,%,!text/single_quotes" />
         </case>
         <!-- keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" -->
         <default>
             <Key
-                latin:keyLabel=":" />
+                latin:keySpec=":" />
             <Key
-                latin:keyLabel="&quot;"
+                latin:keySpec="&quot;"
                 latin:moreKeys="!fixedColumnOrder!3,!text/double_quotes,!text/single_quotes" />
         </default>
     </switch>
diff --git a/java/res/xml/keys_pcqwerty4_right3.xml b/java/res/xml/keys_pcqwerty4_right3.xml
index a5d5a429c74f9363bbacd580ec939df8952df207..f32d8090840315654f9481e0c5cc5621f550f28b 100644
--- a/java/res/xml/keys_pcqwerty4_right3.xml
+++ b/java/res/xml/keys_pcqwerty4_right3.xml
@@ -26,13 +26,13 @@
             latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted"
         >
             <Key
-                latin:keyLabel=","
+                latin:keySpec=","
                 latin:additionalMoreKeys="&lt;" />
             <Key
-                latin:keyLabel="."
+                latin:keySpec="."
                 latin:additionalMoreKeys="&gt;" />
             <Key
-                latin:keyLabel="/"
+                latin:keySpec="/"
                 latin:additionalMoreKeys="\?"
                 latin:moreKeys="!text/more_keys_for_question" />
         </case>
@@ -45,13 +45,13 @@
                  U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
                  U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
             <Key
-                latin:keyLabel="&lt;"
+                latin:keySpec="&lt;"
                 latin:moreKeys="!fixedColumnOrder!3,&#x2039;,&#x2264;,&#x00AB;" />
             <Key
-                latin:keyLabel="&gt;"
+                latin:keySpec="&gt;"
                 latin:moreKeys="!fixedColumnOrder!3,&#x203A;,&#x2265;,&#x00BB;" />
             <Key
-                latin:keyLabel="\?"
+                latin:keySpec="\?"
                 latin:moreKeys="!text/more_keys_for_question" />
         </default>
     </switch>
diff --git a/java/res/xml/keys_square_brackets.xml b/java/res/xml/keys_square_brackets.xml
index a9cf6a6db367193a295631813edf2028ae99d4b4..8f0dec54aedb2fed160fca7895f4d6a1d5a14600 100644
--- a/java/res/xml/keys_square_brackets.xml
+++ b/java/res/xml/keys_square_brackets.xml
@@ -22,7 +22,7 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="[|!code/key_left_square_bracket" />
+        latin:keySpec="[|!code/key_left_square_bracket" />
     <Key
-        latin:keyLabel="]|!code/key_right_square_bracket" />
+        latin:keySpec="]|!code/key_right_square_bracket" />
 </merge>
diff --git a/java/res/xml/keystyle_devanagari_sign_virama.xml b/java/res/xml/keystyle_devanagari_sign_virama.xml
index 9d007919d331b953f97e8bc51c054d0301dfaa0b..5e0e108235d850a51229446db9651287a904e59e 100644
--- a/java/res/xml/keystyle_devanagari_sign_virama.xml
+++ b/java/res/xml/keystyle_devanagari_sign_virama.xml
@@ -29,6 +29,6 @@
          U+094D: "्" DEVANAGARI SIGN VIRAMA -->
     <key-style
         latin:styleName="baseKeyDevanagariSignVirama"
-        latin:keyLabel="&#x25CC;&#x094D;|&#x094D;"
+        latin:keySpec="&#x25CC;&#x094D;|&#x094D;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
  </merge>
diff --git a/java/res/xml/keystyle_devanagari_sign_visarga.xml b/java/res/xml/keystyle_devanagari_sign_visarga.xml
index 42facd7faee52e5dd2c3151107732241bd543dba..45f519a43fffd3be2d3174ad3d6d74acb2325b3f 100644
--- a/java/res/xml/keystyle_devanagari_sign_visarga.xml
+++ b/java/res/xml/keystyle_devanagari_sign_visarga.xml
@@ -29,6 +29,6 @@
          U+0903: "ः" DEVANAGARI SIGN VISARGA -->
     <key-style
         latin:styleName="baseKeyDevanagariSignVisarga"
-        latin:keyLabel="&#x25CC;&#x0903;|&#x0903;"
+        latin:keySpec="&#x25CC;&#x0903;|&#x0903;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml b/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml
index 8013b0d7283c1ba2674d93c2dfd93f960d332036..97f98e3287f04292b4733c2a1d9ffe4f0dc2305d 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml
@@ -46,6 +46,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignAa"
         latin:parentStyle="moreKeysDevanagariVowelSignAa"
-        latin:keyLabel="&#x25CC;&#x093E;|&#x093E;"
+        latin:keySpec="&#x25CC;&#x093E;|&#x093E;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml b/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml
index fd74ab52b9a6490d36fa605c2318051fd95472f8..4d1b2c514e8c69a9a18762792433203fe9c20482 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml
@@ -53,6 +53,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignAi"
         latin:parentStyle="moreKeysDevanagariVowelSignAi"
-        latin:keyLabel="&#x25CC;&#x0948;|&#x0948;"
+        latin:keySpec="&#x25CC;&#x0948;|&#x0948;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_au.xml b/java/res/xml/keystyle_devanagari_vowel_sign_au.xml
index 15d4f901bc4dfaaaea4cc5f2a6dfbcffeb504406..66628b5ede83177dbd5dc59f89df0ecf8202a0a4 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_au.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_au.xml
@@ -44,6 +44,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignAu"
         latin:parentStyle="moreKeysDevanagariVowelSignAu"
-        latin:keyLabel="&#x25CC;&#x094C;|&#x094C;"
+        latin:keySpec="&#x25CC;&#x094C;|&#x094C;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_e.xml b/java/res/xml/keystyle_devanagari_vowel_sign_e.xml
index 89d8fc7c85f4b8f494f30c9eff418ee560c010b6..de1d94974e9b81a70eb1c0c20a3f5f17d541da78 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_e.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_e.xml
@@ -53,6 +53,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignE"
         latin:parentStyle="moreKeysDevanagariVowelSignE"
-        latin:keyLabel="&#x25CC;&#x0947;|&#x0947;"
+        latin:keySpec="&#x25CC;&#x0947;|&#x0947;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_i.xml b/java/res/xml/keystyle_devanagari_vowel_sign_i.xml
index 9e3c6ed768fd004bf5a03238a786d294783225a3..d1d56c185cbbe4222ed96c17eeb0a0097d8f8aef 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_i.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_i.xml
@@ -45,6 +45,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignI"
         latin:parentStyle="moreKeysDevanagariVowelSignI"
-        latin:keyLabel="&#x25CC;&#x093F;|&#x093F;"
+        latin:keySpec="&#x25CC;&#x093F;|&#x093F;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml b/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml
index 3d064b5954ac29094b4ebadc06e765c76229d0e0..fd0ce77f895cddf9aa81c5a62bf678f7f37ccca9 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml
@@ -45,6 +45,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignIi"
         latin:parentStyle="moreKeysDevanagariVowelSignIi"
-        latin:keyLabel="&#x25CC;&#x0940;|&#x0940;"
+        latin:keySpec="&#x25CC;&#x0940;|&#x0940;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_o.xml b/java/res/xml/keystyle_devanagari_vowel_sign_o.xml
index 3eddbe5e05cc5c92683b7e98593735fc35ded73d..edc3bef0f55f01dd484dc5c997c627d0aa8da5f5 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_o.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_o.xml
@@ -47,6 +47,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignO"
         latin:parentStyle="moreKeysDevanagariVowelSignO"
-        latin:keyLabel="&#x25CC;&#x094B;|&#x094B;"
+        latin:keySpec="&#x25CC;&#x094B;|&#x094B;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_u.xml b/java/res/xml/keystyle_devanagari_vowel_sign_u.xml
index 9a00adebc44e7c59d0bb3f8d056a3fc75adb188c..c7de4fdd8140f235aa604a4f1b95b64527fb56fc 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_u.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_u.xml
@@ -46,6 +46,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignU"
         latin:parentStyle="moreKeysDevanagariVowelSignU"
-        latin:keyLabel="&#x25CC;&#x0941;|&#x0941;"
+        latin:keySpec="&#x25CC;&#x0941;|&#x0941;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml b/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml
index 06b51eb72854d4b993108dff00dfdc6568661cee..6029d6d2b376b2b04dda66b3fb15bc0f04bd36a1 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml
@@ -46,6 +46,6 @@
     <key-style
         latin:styleName="baseKeyDevanagariVowelSignUu"
         latin:parentStyle="moreKeysDevanagariVowelSignUu"
-        latin:keyLabel="&#x25CC;&#x0942;|&#x0942;"
+        latin:keySpec="&#x25CC;&#x0942;|&#x0942;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/row_dvorak4.xml b/java/res/xml/row_dvorak4.xml
index b78872fe498fc46f30edc44dd76aff9529800826..0658079b235af45b85bd468c831b83abe9e4874a 100644
--- a/java/res/xml/row_dvorak4.xml
+++ b/java/res/xml/row_dvorak4.xml
@@ -28,7 +28,7 @@
             latin:keyStyle="toSymbolKeyStyle"
             latin:keyWidth="15%p" />
         <Key
-            latin:keyLabel="q"
+            latin:keySpec="q"
             latin:backgroundType="normal"
             latin:additionalMoreKeys="!text/shortcut_as_more_key"
             latin:keyStyle="f1MoreKeysStyle" />
@@ -36,7 +36,7 @@
             latin:keyXPos="25%p"
             latin:keyboardLayout="@xml/key_space_5kw" />
         <Key
-            latin:keyLabel="z"
+            latin:keySpec="z"
             latin:keyLabelFlags="hasPopupHint"
             latin:moreKeys="!text/more_keys_for_punctuation,!text/more_keys_for_z" />
         <Key
diff --git a/java/res/xml/row_symbols4.xml b/java/res/xml/row_symbols4.xml
index 09d2a19710b5ecf9d55a7c98d71c24e90a887b9a..09f6b628c78fb0609923d47ff2d64e162120d186 100644
--- a/java/res/xml/row_symbols4.xml
+++ b/java/res/xml/row_symbols4.xml
@@ -20,9 +20,9 @@
 
 <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
     <Key
-        latin:keyLabel="_" />
+        latin:keySpec="_" />
     <Key
-        latin:keyLabel="/" />
+        latin:keySpec="/" />
     <include
         latin:keyboardLayout="@xml/key_space_symbols" />
     <include
diff --git a/java/res/xml/rowkeys_arabic1.xml b/java/res/xml/rowkeys_arabic1.xml
index 3c0acf1127145f42c0bdbe2cc0f077ae58b5f7e3..d5f1421783610f2dc98fcc60f50444186f51ca90 100644
--- a/java/res/xml/rowkeys_arabic1.xml
+++ b/java/res/xml/rowkeys_arabic1.xml
@@ -24,21 +24,21 @@
     <!-- U+0636: "ض" ARABIC LETTER DAD
          U+0661: "Ù¡" ARABIC-INDIC DIGIT ONE -->
     <Key
-        latin:keyLabel="&#x0636;"
+        latin:keySpec="&#x0636;"
         latin:keyHintLabel="1"
         latin:additionalMoreKeys="1,&#x0661;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0635: "ص" ARABIC LETTER SAD
          U+0662: "Ù¢" ARABIC-INDIC DIGIT TWO -->
     <Key
-        latin:keyLabel="&#x0635;"
+        latin:keySpec="&#x0635;"
         latin:keyHintLabel="2"
         latin:additionalMoreKeys="2,&#x0662;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+062B: "Ø«" ARABIC LETTER THEH
          U+0663: "Ù£" ARABIC-INDIC DIGIT THREE -->
     <Key
-        latin:keyLabel="&#x062B;"
+        latin:keySpec="&#x062B;"
         latin:keyHintLabel="3"
         latin:additionalMoreKeys="3,&#x0663;"
         latin:keyLabelFlags="fontNormal" />
@@ -47,7 +47,7 @@
          U+0664: "Ù¤" ARABIC-INDIC DIGIT FOUR -->
     <!-- TODO: DroidSansArabic lacks the glyph of U+06A8 ARABIC LETTER QAF WITH THREE DOTS ABOVE -->
     <Key
-        latin:keyLabel="&#x0642;"
+        latin:keySpec="&#x0642;"
         latin:keyHintLabel="4"
         latin:additionalMoreKeys="4,&#x0664;"
         latin:moreKeys="&#x06A8;"
@@ -60,7 +60,7 @@
     <!-- TODO: DroidSansArabic lacks the glyph of U+06A2 ARABIC LETTER FEH WITH DOT MOVED BELOW -->
     <!-- TODO: DroidSansArabic lacks the glyph of U+06A5 ARABIC LETTER FEH WITH THREE DOTS BELOW -->
     <Key
-        latin:keyLabel="&#x0641;"
+        latin:keySpec="&#x0641;"
         latin:keyHintLabel="5"
         latin:additionalMoreKeys="5,&#x0665;"
         latin:moreKeys="&#x06A4;,&#x06A2;,&#x06A5;"
@@ -68,14 +68,14 @@
     <!-- U+063A: "غ" ARABIC LETTER GHAIN
          U+0666: "Ù¦" ARABIC-INDIC DIGIT SIX -->
     <Key
-        latin:keyLabel="&#x063A;"
+        latin:keySpec="&#x063A;"
         latin:keyHintLabel="6"
         latin:additionalMoreKeys="6,&#x0666;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0639: "ع" ARABIC LETTER AIN
          U+0667: "Ù§" ARABIC-INDIC DIGIT SEVEN -->
     <Key
-        latin:keyLabel="&#x0639;"
+        latin:keySpec="&#x0639;"
         latin:keyHintLabel="7"
         latin:additionalMoreKeys="7,&#x0667;"
         latin:keyLabelFlags="fontNormal" />
@@ -84,7 +84,7 @@
          U+0647 U+200D: ARABIC LETTER HEH + ZERO WIDTH JOINER
          U+0668: "Ù¨" ARABIC-INDIC DIGIT EIGHT -->
     <Key
-        latin:keyLabel="&#x0647;"
+        latin:keySpec="&#x0647;"
         latin:keyHintLabel="8"
         latin:additionalMoreKeys="8,&#x0668;"
         latin:moreKeys="&#xFEEB;|&#x0647;&#x200D;"
@@ -92,21 +92,21 @@
     <!-- U+062E: "Ø®" ARABIC LETTER KHAH
          U+0669: "Ù©" ARABIC-INDIC DIGIT NINE -->
     <Key
-        latin:keyLabel="&#x062E;"
+        latin:keySpec="&#x062E;"
         latin:keyHintLabel="9"
         latin:additionalMoreKeys="9,&#x0669;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+062D: "Ø­" ARABIC LETTER HAH
          U+0660: "Ù " ARABIC-INDIC DIGIT ZERO -->
     <Key
-        latin:keyLabel="&#x062D;"
+        latin:keySpec="&#x062D;"
         latin:keyHintLabel="0"
         latin:additionalMoreKeys="0,&#x0660;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+062C: "ج" ARABIC LETTER JEEM
          U+0686: "Ú†" ARABIC LETTER TCHEH -->
     <Key
-        latin:keyLabel="&#x062C;"
+        latin:keySpec="&#x062C;"
         latin:moreKeys="&#x0686;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml/rowkeys_arabic2.xml b/java/res/xml/rowkeys_arabic2.xml
index 4f8090d01a58c8d02ce660c59185d5a10aaa658f..9bc91e8c7813d388b4b50f7b8b0145341d51833f 100644
--- a/java/res/xml/rowkeys_arabic2.xml
+++ b/java/res/xml/rowkeys_arabic2.xml
@@ -25,24 +25,24 @@
          U+069C: "ڜ" ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE -->
     <!-- TODO: DroidSansArabic lacks the glyph of U+069C ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE -->
     <Key
-        latin:keyLabel="&#x0634;"
+        latin:keySpec="&#x0634;"
         latin:moreKeys="&#x069C;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0633: "س" ARABIC LETTER SEEN -->
     <Key
-        latin:keyLabel="&#x0633;"
+        latin:keySpec="&#x0633;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+064A: "ÙŠ" ARABIC LETTER YEH
          U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE
          U+0649: "Ù‰" ARABIC LETTER ALEF MAKSURA -->
     <Key
-        latin:keyLabel="&#x064A;"
+        latin:keySpec="&#x064A;"
         latin:moreKeys="&#x0626;,&#x0649;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0628: "ب" ARABIC LETTER BEH
          U+067E: "Ù¾" ARABIC LETTER PEH -->
     <Key
-        latin:keyLabel="&#x0628;"
+        latin:keySpec="&#x0628;"
         latin:moreKeys="&#x067E;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0644: "Ù„" ARABIC LETTER LAM
@@ -55,7 +55,7 @@
          U+FEF5: "ﻵ" ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
          U+0622: "Ø¢" ARABIC LETTER ALEF WITH MADDA ABOVE -->
     <Key
-        latin:keyLabel="&#x0644;"
+        latin:keySpec="&#x0644;"
         latin:moreKeys="&#xFEFB;|&#x0644;&#x0627;,&#xFEF7;|&#x0644;&#x0623;,&#xFEF9;|&#x0644;&#x0625;,&#xFEF5;|&#x0644;&#x0622;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0627: "ا" ARABIC LETTER ALEF
@@ -65,30 +65,30 @@
          U+0625: "Ø¥" ARABIC LETTER ALEF WITH HAMZA BELOW
          U+0671: "Ù±" ARABIC LETTER ALEF WASLA -->
     <Key
-        latin:keyLabel="&#x0627;"
+        latin:keySpec="&#x0627;"
         latin:moreKeys="!fixedColumnOrder!5,&#x0622;,&#x0621;,&#x0623;,&#x0625;,&#x0671;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+062A: "ت" ARABIC LETTER TEH -->
     <Key
-        latin:keyLabel="&#x062A;"
+        latin:keySpec="&#x062A;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0646: "Ù†" ARABIC LETTER NOON -->
     <Key
-        latin:keyLabel="&#x0646;"
+        latin:keySpec="&#x0646;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0645: "Ù…" ARABIC LETTER MEEM -->
     <Key
-        latin:keyLabel="&#x0645;"
+        latin:keySpec="&#x0645;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0643: "Ùƒ" ARABIC LETTER KAF
          U+06AF: "Ú¯" ARABIC LETTER GAF
          U+06A9: "Ú©" ARABIC LETTER KEHEH -->
     <Key
-        latin:keyLabel="&#x0643;"
+        latin:keySpec="&#x0643;"
         latin:moreKeys="&#x06AF;,&#x06A9;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0637: "Ø·" ARABIC LETTER TAH -->
     <Key
-        latin:keyLabel="&#x0637;"
+        latin:keySpec="&#x0637;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml/rowkeys_arabic3.xml b/java/res/xml/rowkeys_arabic3.xml
index 8a17b4b98a9edabbefb69e7d8397f1b895f031ad..0bfc66a7de94acabd4108ec327a6fc5607d2a189 100644
--- a/java/res/xml/rowkeys_arabic3.xml
+++ b/java/res/xml/rowkeys_arabic3.xml
@@ -25,42 +25,42 @@
         latin:keyboardLayout="@xml/keys_arabic3_left" />
     <!-- U+0621: "Ø¡" ARABIC LETTER HAMZA -->
     <Key
-        latin:keyLabel="&#x0621;"
+        latin:keySpec="&#x0621;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0624: "ؤ" ARABIC LETTER WAW WITH HAMZA ABOVE -->
     <Key
-        latin:keyLabel="&#x0624;"
+        latin:keySpec="&#x0624;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0631: "ر" ARABIC LETTER REH -->
     <Key
-        latin:keyLabel="&#x0631;"
+        latin:keySpec="&#x0631;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0649: "Ù‰" ARABIC LETTER ALEF MAKSURA
          U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE -->
     <Key
-        latin:keyLabel="&#x0649;"
+        latin:keySpec="&#x0649;"
         latin:moreKeys="&#x0626;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0629: "Ø©" ARABIC LETTER TEH MARBUTA -->
     <Key
-        latin:keyLabel="&#x0629;"
+        latin:keySpec="&#x0629;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0648: "Ùˆ" ARABIC LETTER WAW -->
     <Key
-        latin:keyLabel="&#x0648;"
+        latin:keySpec="&#x0648;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0632: "ز" ARABIC LETTER ZAIN
          U+0698: "Ú˜" ARABIC LETTER JEH -->
     <Key
-        latin:keyLabel="&#x0632;"
+        latin:keySpec="&#x0632;"
         latin:moreKeys="&#x0698;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0638: "ظ" ARABIC LETTER ZAH -->
     <Key
-        latin:keyLabel="&#x0638;"
+        latin:keySpec="&#x0638;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+062F: "د" ARABIC LETTER DAL -->
     <Key
-        latin:keyLabel="&#x062F;"
+        latin:keySpec="&#x062F;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml/rowkeys_armenian_phonetic1.xml b/java/res/xml/rowkeys_armenian_phonetic1.xml
index 1984fae8a47c20a8fdff63885ae1b007a9d57757..8ca78dab449276659df43b333e7c385c0aa4261e 100644
--- a/java/res/xml/rowkeys_armenian_phonetic1.xml
+++ b/java/res/xml/rowkeys_armenian_phonetic1.xml
@@ -23,61 +23,61 @@
 >
     <!-- U+0567: "Õ§" ARMENIAN SMALL LETTER EH -->
     <Key
-        latin:keyLabel="&#x0567;"
+        latin:keySpec="&#x0567;"
         latin:keyHintLabel="1"
         latin:additionalMoreKeys="1"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0569: "Õ©" ARMENIAN SMALL LETTER TO -->
     <Key
-        latin:keyLabel="&#x0569;"
+        latin:keySpec="&#x0569;"
         latin:keyHintLabel="2"
         latin:additionalMoreKeys="2"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0583: "Öƒ" ARMENIAN SMALL LETTER PIWR -->
     <Key
-        latin:keyLabel="&#x0583;"
+        latin:keySpec="&#x0583;"
         latin:keyHintLabel="3"
         latin:additionalMoreKeys="3"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0571: "Õ±" ARMENIAN SMALL LETTER JA -->
     <Key
-        latin:keyLabel="&#x0571;"
+        latin:keySpec="&#x0571;"
         latin:keyHintLabel="4"
         latin:additionalMoreKeys="4"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+057B: "Õ»" ARMENIAN SMALL LETTER JHEH -->
     <Key
-        latin:keyLabel="&#x057B;"
+        latin:keySpec="&#x057B;"
         latin:keyHintLabel="5"
         latin:additionalMoreKeys="5"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0580: "Ö€" ARMENIAN SMALL LETTER REH -->
     <Key
-        latin:keyLabel="&#x0580;"
+        latin:keySpec="&#x0580;"
         latin:keyHintLabel="6"
         latin:additionalMoreKeys="6"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0579: "Õ¹" ARMENIAN SMALL LETTER CHA -->
     <Key
-        latin:keyLabel="&#x0579;"
+        latin:keySpec="&#x0579;"
         latin:keyHintLabel="7"
         latin:additionalMoreKeys="7"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0573: "Õ³" ARMENIAN SMALL LETTER CHEH -->
     <Key
-        latin:keyLabel="&#x0573;"
+        latin:keySpec="&#x0573;"
         latin:keyHintLabel="8"
         latin:additionalMoreKeys="8"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+056A: "Õª" ARMENIAN SMALL LETTER ZHE -->
     <Key
-        latin:keyLabel="&#x056A;"
+        latin:keySpec="&#x056A;"
         latin:keyHintLabel="9"
         latin:additionalMoreKeys="9"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+056E: "Õ®" ARMENIAN SMALL LETTER CA -->
     <Key
-        latin:keyLabel="&#x056E;"
+        latin:keySpec="&#x056E;"
         latin:keyHintLabel="0"
         latin:additionalMoreKeys="0"
         latin:keyLabelFlags="fontNormal" />
diff --git a/java/res/xml/rowkeys_armenian_phonetic2.xml b/java/res/xml/rowkeys_armenian_phonetic2.xml
index 3764d0dbbf048e7708126a1beb74c47e8284955a..9991f739d28f684b4967afba0447f2f1d5bd1363 100644
--- a/java/res/xml/rowkeys_armenian_phonetic2.xml
+++ b/java/res/xml/rowkeys_armenian_phonetic2.xml
@@ -23,45 +23,45 @@
 >
     <!-- U+0584: "Ö„" ARMENIAN SMALL LETTER KEH -->
     <Key
-        latin:keyLabel="&#x0584;"
+        latin:keySpec="&#x0584;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0578: "Õ¸" ARMENIAN SMALL LETTER VO -->
     <Key
-        latin:keyLabel="&#x0578;"
+        latin:keySpec="&#x0578;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0565: "Õ¥" ARMENIAN SMALL LETTER ECH
          U+0587: "Ö‡" ARMENIAN SMALL LIGATURE ECH YIWN -->
     <Key
-        latin:keyLabel="&#x0565;"
+        latin:keySpec="&#x0565;"
         latin:moreKeys="&#x0587;"
         latin:keyHintLabel="&#x0587;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+057C: "Õ¼" ARMENIAN SMALL LETTER RA -->
     <Key
-        latin:keyLabel="&#x057C;"
+        latin:keySpec="&#x057C;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+057F: "Õ¿" ARMENIAN SMALL LETTER TIWN -->
     <Key
-        latin:keyLabel="&#x057F;"
+        latin:keySpec="&#x057F;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0568: "Õ¨" ARMENIAN SMALL LETTER ET -->
     <Key
-        latin:keyLabel="&#x0568;"
+        latin:keySpec="&#x0568;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0582: "Ö‚" ARMENIAN SMALL LETTER YIWN -->
     <Key
-        latin:keyLabel="&#x0582;"
+        latin:keySpec="&#x0582;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+056B: "Õ«" ARMENIAN SMALL LETTER INI -->
     <Key
-        latin:keyLabel="&#x056B;"
+        latin:keySpec="&#x056B;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0585: "Ö…" ARMENIAN SMALL LETTER OH -->
     <Key
-        latin:keyLabel="&#x0585;"
+        latin:keySpec="&#x0585;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+057A: "Õº" ARMENIAN SMALL LETTER PEH -->
     <Key
-        latin:keyLabel="&#x057A;"
+        latin:keySpec="&#x057A;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml/rowkeys_armenian_phonetic3.xml b/java/res/xml/rowkeys_armenian_phonetic3.xml
index 3116811b35b21f574858641f76b5b5cb9e81454e..2b79386acf99b7f08b3c22cfca0410a4ddfc5e32 100644
--- a/java/res/xml/rowkeys_armenian_phonetic3.xml
+++ b/java/res/xml/rowkeys_armenian_phonetic3.xml
@@ -23,38 +23,38 @@
 >
     <!-- U+0561: "Õ¡" ARMENIAN SMALL LETTER AYB -->
     <Key
-        latin:keyLabel="&#x0561;"
+        latin:keySpec="&#x0561;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+057D: "Õ½" ARMENIAN SMALL LETTER SEH -->
     <Key
-        latin:keyLabel="&#x057D;"
+        latin:keySpec="&#x057D;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0564: "Õ¤" ARMENIAN SMALL LETTER DA -->
     <Key
-        latin:keyLabel="&#x0564;"
+        latin:keySpec="&#x0564;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0586: "Ö†" ARMENIAN SMALL LETTER FEH -->
     <Key
-        latin:keyLabel="&#x0586;"
+        latin:keySpec="&#x0586;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0563: "Õ£" ARMENIAN SMALL LETTER GIM -->
     <Key
-        latin:keyLabel="&#x0563;"
+        latin:keySpec="&#x0563;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0570: "Õ°" ARMENIAN SMALL LETTER HO -->
     <Key
-        latin:keyLabel="&#x0570;"
+        latin:keySpec="&#x0570;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0575: "Õµ" ARMENIAN SMALL LETTER YI -->
     <Key
-        latin:keyLabel="&#x0575;"
+        latin:keySpec="&#x0575;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+056F: "Õ¯" ARMENIAN SMALL LETTER KEN -->
     <Key
-        latin:keyLabel="&#x056F;"
+        latin:keySpec="&#x056F;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+056C: "Õ¬" ARMENIAN SMALL LETTER LIWN -->
     <Key
-        latin:keyLabel="&#x056C;"
+        latin:keySpec="&#x056C;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml/rowkeys_armenian_phonetic4.xml b/java/res/xml/rowkeys_armenian_phonetic4.xml
index 922481add1d5fa098d60de6432a6a051fa6ef6ef..f8cdd12216ed04d807bf843b6fe5586914e6ac1f 100644
--- a/java/res/xml/rowkeys_armenian_phonetic4.xml
+++ b/java/res/xml/rowkeys_armenian_phonetic4.xml
@@ -23,30 +23,30 @@
 >
     <!-- U+0566: "Õ¦" ARMENIAN SMALL LETTER ZA -->
     <Key
-        latin:keyLabel="&#x0566;"
+        latin:keySpec="&#x0566;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0572: "Õ²" ARMENIAN SMALL LETTER GHAD -->
     <Key
-        latin:keyLabel="&#x0572;"
+        latin:keySpec="&#x0572;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0581: "ց" ARMENIAN SMALL LETTER CO -->
     <Key
-        latin:keyLabel="&#x0581;"
+        latin:keySpec="&#x0581;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+057E: "Õ¾" ARMENIAN SMALL LETTER VEW -->
     <Key
-        latin:keyLabel="&#x057E;"
+        latin:keySpec="&#x057E;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0562: "Õ¢" ARMENIAN SMALL LETTER BEN -->
     <Key
-        latin:keyLabel="&#x0562;"
+        latin:keySpec="&#x0562;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0576: "Õ¶" ARMENIAN SMALL LETTER NOW -->
     <Key
-        latin:keyLabel="&#x0576;"
+        latin:keySpec="&#x0576;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0574: "Õ´" ARMENIAN SMALL LETTER MEN -->
     <Key
-        latin:keyLabel="&#x0574;"
+        latin:keySpec="&#x0574;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml/rowkeys_azerty1.xml b/java/res/xml/rowkeys_azerty1.xml
index 42b27463f70657a4a36fe0911af65bd442cb9b65..adb66b70f9c9e858e5e6375236553c5ddf1cedc3 100644
--- a/java/res/xml/rowkeys_azerty1.xml
+++ b/java/res/xml/rowkeys_azerty1.xml
@@ -22,52 +22,52 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="a"
+        latin:keySpec="a"
         latin:keyHintLabel="1"
         latin:additionalMoreKeys="1"
         latin:moreKeys="!text/more_keys_for_a" />
     <Key
-        latin:keyLabel="z"
+        latin:keySpec="z"
         latin:keyHintLabel="2"
         latin:additionalMoreKeys="2"
         latin:moreKeys="!text/more_keys_for_z" />
     <Key
-        latin:keyLabel="e"
+        latin:keySpec="e"
         latin:keyHintLabel="3"
         latin:additionalMoreKeys="3"
         latin:moreKeys="!text/more_keys_for_e" />
     <Key
-        latin:keyLabel="r"
+        latin:keySpec="r"
         latin:keyHintLabel="4"
         latin:additionalMoreKeys="4"
         latin:moreKeys="!text/more_keys_for_r" />
     <Key
-        latin:keyLabel="t"
+        latin:keySpec="t"
         latin:keyHintLabel="5"
         latin:additionalMoreKeys="5"
         latin:moreKeys="!text/more_keys_for_t" />
     <Key
-        latin:keyLabel="y"
+        latin:keySpec="y"
         latin:keyHintLabel="6"
         latin:additionalMoreKeys="6"
         latin:moreKeys="!text/more_keys_for_y" />
     <Key
-        latin:keyLabel="u"
+        latin:keySpec="u"
         latin:keyHintLabel="7"
         latin:additionalMoreKeys="7"
         latin:moreKeys="!text/more_keys_for_u" />
     <Key
-        latin:keyLabel="i"
+        latin:keySpec="i"
         latin:keyHintLabel="8"
         latin:additionalMoreKeys="8"
         latin:moreKeys="!text/more_keys_for_i" />
     <Key
-        latin:keyLabel="o"
+        latin:keySpec="o"
         latin:keyHintLabel="9"
         latin:additionalMoreKeys="9"
         latin:moreKeys="!text/more_keys_for_o" />
     <Key
-        latin:keyLabel="p"
+        latin:keySpec="p"
         latin:keyHintLabel="0"
         latin:additionalMoreKeys="0" />
 </merge>
diff --git a/java/res/xml/rowkeys_azerty2.xml b/java/res/xml/rowkeys_azerty2.xml
index 2eee214e505d33d7944595f2deb87ca231509e8c..db06867210f47abaaf7469113c9957a0801a62b1 100644
--- a/java/res/xml/rowkeys_azerty2.xml
+++ b/java/res/xml/rowkeys_azerty2.xml
@@ -22,30 +22,30 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="q" />
+        latin:keySpec="q" />
     <Key
-        latin:keyLabel="s"
+        latin:keySpec="s"
         latin:moreKeys="!text/more_keys_for_s" />
     <Key
-        latin:keyLabel="d"
+        latin:keySpec="d"
         latin:moreKeys="!text/more_keys_for_d" />
     <Key
-        latin:keyLabel="f" />
+        latin:keySpec="f" />
     <Key
-        latin:keyLabel="g"
+        latin:keySpec="g"
         latin:moreKeys="!text/more_keys_for_g" />
     <Key
-        latin:keyLabel="h"
+        latin:keySpec="h"
         latin:moreKeys="!text/more_keys_for_h" />
     <Key
-        latin:keyLabel="j"
+        latin:keySpec="j"
         latin:moreKeys="!text/more_keys_for_j" />
     <Key
-        latin:keyLabel="k"
+        latin:keySpec="k"
         latin:moreKeys="!text/more_keys_for_k" />
     <Key
-        latin:keyLabel="l"
+        latin:keySpec="l"
         latin:moreKeys="!text/more_keys_for_l" />
     <Key
-        latin:keyLabel="m" />
+        latin:keySpec="m" />
 </merge>
diff --git a/java/res/xml/rowkeys_azerty3.xml b/java/res/xml/rowkeys_azerty3.xml
index 2643f3283ee91510a265df8a1f0b3b36a559a6a4..0aa215305244c3f0e51557ba829d91b23e1619c8 100644
--- a/java/res/xml/rowkeys_azerty3.xml
+++ b/java/res/xml/rowkeys_azerty3.xml
@@ -22,20 +22,20 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="w"
+        latin:keySpec="w"
         latin:moreKeys="!text/more_keys_for_w" />
     <Key
-        latin:keyLabel="x" />
+        latin:keySpec="x" />
     <Key
-        latin:keyLabel="c"
+        latin:keySpec="c"
         latin:moreKeys="!text/more_keys_for_c" />
     <Key
-        latin:keyLabel="v"
+        latin:keySpec="v"
         latin:moreKeys="!text/more_keys_for_v" />
     <Key
-        latin:keyLabel="b" />
+        latin:keySpec="b" />
     <Key
-        latin:keyLabel="n"
+        latin:keySpec="n"
         latin:moreKeys="!text/more_keys_for_n" />
     <include
         latin:keyboardLayout="@xml/key_azerty3_right" />
diff --git a/java/res/xml/rowkeys_bulgarian1.xml b/java/res/xml/rowkeys_bulgarian1.xml
index 441b079f182117bdf42c574991fce02cec837f60..e84719302f978c824ef23d2491ca108e6396b410 100644
--- a/java/res/xml/rowkeys_bulgarian1.xml
+++ b/java/res/xml/rowkeys_bulgarian1.xml
@@ -23,57 +23,57 @@
 >
     <!-- U+044F: "я" CYRILLIC SMALL LETTER YA -->
     <Key
-        latin:keyLabel="&#x044F;"
+        latin:keySpec="&#x044F;"
         latin:keyHintLabel="1"
         latin:additionalMoreKeys="1" />
     <!-- U+0432: "в" CYRILLIC SMALL LETTER VE -->
     <Key
-        latin:keyLabel="&#x0432;"
+        latin:keySpec="&#x0432;"
         latin:keyHintLabel="2"
         latin:additionalMoreKeys="2" />
     <!-- U+0435: "е" CYRILLIC SMALL LETTER IE -->
     <Key
-        latin:keyLabel="&#x0435;"
+        latin:keySpec="&#x0435;"
         latin:keyHintLabel="3"
         latin:additionalMoreKeys="3" />
     <!-- U+0440: "Ñ€" CYRILLIC SMALL LETTER ER -->
     <Key
-        latin:keyLabel="&#x0440;"
+        latin:keySpec="&#x0440;"
         latin:keyHintLabel="4"
         latin:additionalMoreKeys="4" />
     <!-- U+0442: "Ñ‚" CYRILLIC SMALL LETTER TE -->
     <Key
-        latin:keyLabel="&#x0442;"
+        latin:keySpec="&#x0442;"
         latin:keyHintLabel="5"
         latin:additionalMoreKeys="5" />
     <!-- U+044A: "ÑŠ" CYRILLIC SMALL LETTER HARD SIGN -->
     <Key
-        latin:keyLabel="&#x044A;"
+        latin:keySpec="&#x044A;"
         latin:keyHintLabel="6"
         latin:additionalMoreKeys="6" />
     <!-- U+0443: "у" CYRILLIC SMALL LETTER U -->
     <Key
-        latin:keyLabel="&#x0443;"
+        latin:keySpec="&#x0443;"
         latin:keyHintLabel="7"
         latin:additionalMoreKeys="7" />
     <!-- U+0438: "и" CYRILLIC SMALL LETTER I
          U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE -->
     <Key
-        latin:keyLabel="&#x0438;"
+        latin:keySpec="&#x0438;"
         latin:keyHintLabel="8"
         latin:additionalMoreKeys="8"
         latin:moreKeys="&#x045D;" />
     <!-- U+043E: "о" CYRILLIC SMALL LETTER O -->
     <Key
-        latin:keyLabel="&#x043E;"
+        latin:keySpec="&#x043E;"
         latin:keyHintLabel="9"
         latin:additionalMoreKeys="9" />
     <!-- U+043F: "п" CYRILLIC SMALL LETTER PE -->
     <Key
-        latin:keyLabel="&#x043F;"
+        latin:keySpec="&#x043F;"
         latin:keyHintLabel="0"
         latin:additionalMoreKeys="0" />
     <!-- U+0447: "ч" CYRILLIC SMALL LETTER CHE -->
     <Key
-        latin:keyLabel="&#x0447;" />
+        latin:keySpec="&#x0447;" />
 </merge>
diff --git a/java/res/xml/rowkeys_bulgarian2.xml b/java/res/xml/rowkeys_bulgarian2.xml
index a4e93d862a0a9e488dc0834360673d5e9fd45564..e572a221d1975e2de2e730214bdc17811123eb3d 100644
--- a/java/res/xml/rowkeys_bulgarian2.xml
+++ b/java/res/xml/rowkeys_bulgarian2.xml
@@ -23,35 +23,35 @@
 >
     <!-- U+0430: "а" CYRILLIC SMALL LETTER A -->
     <Key
-        latin:keyLabel="&#x0430;" />
+        latin:keySpec="&#x0430;" />
     <!-- U+0441: "с" CYRILLIC SMALL LETTER ES -->
     <Key
-        latin:keyLabel="&#x0441;" />
+        latin:keySpec="&#x0441;" />
     <!-- U+0434: "д" CYRILLIC SMALL LETTER DE -->
     <Key
-        latin:keyLabel="&#x0434;" />
+        latin:keySpec="&#x0434;" />
     <!-- U+0444: "Ñ„" CYRILLIC SMALL LETTER EF -->
     <Key
-        latin:keyLabel="&#x0444;" />
+        latin:keySpec="&#x0444;" />
     <!-- U+0433: "г" CYRILLIC SMALL LETTER GHE -->
     <Key
-        latin:keyLabel="&#x0433;" />
+        latin:keySpec="&#x0433;" />
     <!-- U+0445: "Ñ…" CYRILLIC SMALL LETTER HA -->
     <Key
-        latin:keyLabel="&#x0445;" />
+        latin:keySpec="&#x0445;" />
     <!-- U+0439: "й" CYRILLIC SMALL LETTER SHORT I -->
     <Key
-        latin:keyLabel="&#x0439;" />
+        latin:keySpec="&#x0439;" />
     <!-- U+043A: "к" CYRILLIC SMALL LETTER KA -->
     <Key
-        latin:keyLabel="&#x043A;" />
+        latin:keySpec="&#x043A;" />
     <!-- U+043B: "л" CYRILLIC SMALL LETTER EL -->
     <Key
-        latin:keyLabel="&#x043B;" />
+        latin:keySpec="&#x043B;" />
     <!-- U+0448: "ш" CYRILLIC SMALL LETTER SHA -->
     <Key
-        latin:keyLabel="&#x0448;" />
+        latin:keySpec="&#x0448;" />
     <!-- U+0449: "щ" CYRILLIC SMALL LETTER SHCHA -->
     <Key
-        latin:keyLabel="&#x0449;" />
+        latin:keySpec="&#x0449;" />
 </merge>
diff --git a/java/res/xml/rowkeys_bulgarian3.xml b/java/res/xml/rowkeys_bulgarian3.xml
index 258219c277f599f0a3f24dbb79006d5b60cfb78d..2509793b26122459cb9f70b77d9db92047e9a3b1 100644
--- a/java/res/xml/rowkeys_bulgarian3.xml
+++ b/java/res/xml/rowkeys_bulgarian3.xml
@@ -23,26 +23,26 @@
 >
     <!-- U+0437: "з" CYRILLIC SMALL LETTER ZE -->
     <Key
-        latin:keyLabel="&#x0437;" />
+        latin:keySpec="&#x0437;" />
     <!-- U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN -->
     <Key
-        latin:keyLabel="&#x044C;" />
+        latin:keySpec="&#x044C;" />
     <!-- U+0446: "ц" CYRILLIC SMALL LETTER TSE -->
     <Key
-        latin:keyLabel="&#x0446;" />
+        latin:keySpec="&#x0446;" />
     <!-- U+0436: "ж" CYRILLIC SMALL LETTER ZHE -->
     <Key
-        latin:keyLabel="&#x0436;" />
+        latin:keySpec="&#x0436;" />
     <!-- U+0431: "б" CYRILLIC SMALL LETTER BE -->
     <Key
-        latin:keyLabel="&#x0431;" />
+        latin:keySpec="&#x0431;" />
     <!-- U+043D: "н" CYRILLIC SMALL LETTER EN -->
     <Key
-        latin:keyLabel="&#x043D;" />
+        latin:keySpec="&#x043D;" />
     <!-- U+043C: "м" CYRILLIC SMALL LETTER EM -->
     <Key
-        latin:keyLabel="&#x043C;" />
+        latin:keySpec="&#x043C;" />
     <!-- U+044E: "ÑŽ" CYRILLIC SMALL LETTER YU -->
     <Key
-        latin:keyLabel="&#x044E;" />
+        latin:keySpec="&#x044E;" />
 </merge>
diff --git a/java/res/xml/rowkeys_bulgarian_bds1.xml b/java/res/xml/rowkeys_bulgarian_bds1.xml
index eed1fcb8f7c8ef560cdf611b25b50b1f5dd21799..9d6428268cd5ac440c0b552d3b0bfa39a5576330 100644
--- a/java/res/xml/rowkeys_bulgarian_bds1.xml
+++ b/java/res/xml/rowkeys_bulgarian_bds1.xml
@@ -23,57 +23,57 @@
 >
     <!-- U+0443: "у" CYRILLIC SMALL LETTER U -->
     <Key
-        latin:keyLabel="&#x0443;"
+        latin:keySpec="&#x0443;"
         latin:keyHintLabel="1"
         latin:additionalMoreKeys="1" />
     <!-- U+0435: "е" CYRILLIC SMALL LETTER IE -->
     <Key
-        latin:keyLabel="&#x0435;"
+        latin:keySpec="&#x0435;"
         latin:keyHintLabel="2"
         latin:additionalMoreKeys="2" />
     <!-- U+0438: "и" CYRILLIC SMALL LETTER I
          U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE -->
     <Key
-        latin:keyLabel="&#x0438;"
+        latin:keySpec="&#x0438;"
         latin:keyHintLabel="3"
         latin:additionalMoreKeys="3"
         latin:moreKeys="&#x045D;" />
     <!-- U+0448: "ш" CYRILLIC SMALL LETTER SHA -->
     <Key
-        latin:keyLabel="&#x0448;"
+        latin:keySpec="&#x0448;"
         latin:keyHintLabel="4"
         latin:additionalMoreKeys="4" />
     <!-- U+0449: "щ" CYRILLIC SMALL LETTER SHCHA -->
     <Key
-        latin:keyLabel="&#x0449;"
+        latin:keySpec="&#x0449;"
         latin:keyHintLabel="5"
         latin:additionalMoreKeys="5" />
     <!-- U+043A: "к" CYRILLIC SMALL LETTER KA -->
     <Key
-        latin:keyLabel="&#x043A;"
+        latin:keySpec="&#x043A;"
         latin:keyHintLabel="6"
         latin:additionalMoreKeys="6" />
     <!-- U+0441: "с" CYRILLIC SMALL LETTER ES -->
     <Key
-        latin:keyLabel="&#x0441;"
+        latin:keySpec="&#x0441;"
         latin:keyHintLabel="7"
         latin:additionalMoreKeys="7" />
     <!-- U+0434: "д" CYRILLIC SMALL LETTER DE -->
     <Key
-        latin:keyLabel="&#x0434;"
+        latin:keySpec="&#x0434;"
         latin:keyHintLabel="8"
         latin:additionalMoreKeys="8" />
     <!-- U+0437: "з" CYRILLIC SMALL LETTER ZE -->
     <Key
-        latin:keyLabel="&#x0437;"
+        latin:keySpec="&#x0437;"
         latin:keyHintLabel="9"
         latin:additionalMoreKeys="9" />
     <!-- U+0446: "ц" CYRILLIC SMALL LETTER TSE -->
     <Key
-        latin:keyLabel="&#x0446;"
+        latin:keySpec="&#x0446;"
         latin:keyHintLabel="0"
         latin:additionalMoreKeys="0" />
     <!-- U+0431: "б" CYRILLIC SMALL LETTER BE -->
     <Key
-        latin:keyLabel="&#x0431;" />
+        latin:keySpec="&#x0431;" />
 </merge>
diff --git a/java/res/xml/rowkeys_bulgarian_bds2.xml b/java/res/xml/rowkeys_bulgarian_bds2.xml
index ff1bff8959075eef2fd8eb6d1f14690bbe16e801..e078ae7d3e58a910e126c3fa79bd1850b48da5e6 100644
--- a/java/res/xml/rowkeys_bulgarian_bds2.xml
+++ b/java/res/xml/rowkeys_bulgarian_bds2.xml
@@ -23,35 +23,35 @@
 >
     <!-- U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN -->
     <Key
-        latin:keyLabel="&#x044C;" />
+        latin:keySpec="&#x044C;" />
     <!-- U+044F: "я" CYRILLIC SMALL LETTER YA -->
     <Key
-        latin:keyLabel="&#x044F;" />
+        latin:keySpec="&#x044F;" />
     <!-- U+0430: "а" CYRILLIC SMALL LETTER A -->
     <Key
-        latin:keyLabel="&#x0430;" />
+        latin:keySpec="&#x0430;" />
     <!-- U+043E: "о" CYRILLIC SMALL LETTER O -->
     <Key
-        latin:keyLabel="&#x043E;" />
+        latin:keySpec="&#x043E;" />
     <!-- U+0436: "ж" CYRILLIC SMALL LETTER ZHE -->
     <Key
-        latin:keyLabel="&#x0436;" />
+        latin:keySpec="&#x0436;" />
     <!-- U+0433: "г" CYRILLIC SMALL LETTER GHE -->
     <Key
-        latin:keyLabel="&#x0433;" />
+        latin:keySpec="&#x0433;" />
     <!-- U+0442: "Ñ‚" CYRILLIC SMALL LETTER TE -->
     <Key
-        latin:keyLabel="&#x0442;" />
+        latin:keySpec="&#x0442;" />
     <!-- U+043D: "н" CYRILLIC SMALL LETTER EN -->
     <Key
-        latin:keyLabel="&#x043D;" />
+        latin:keySpec="&#x043D;" />
     <!-- U+0432: "в" CYRILLIC SMALL LETTER VE -->
     <Key
-        latin:keyLabel="&#x0432;" />
+        latin:keySpec="&#x0432;" />
     <!-- U+043C: "м" CYRILLIC SMALL LETTER EM -->
     <Key
-        latin:keyLabel="&#x043C;" />
+        latin:keySpec="&#x043C;" />
     <!-- U+0447: "ч" CYRILLIC SMALL LETTER CHE -->
     <Key
-        latin:keyLabel="&#x0447;" />
+        latin:keySpec="&#x0447;" />
 </merge>
diff --git a/java/res/xml/rowkeys_bulgarian_bds3.xml b/java/res/xml/rowkeys_bulgarian_bds3.xml
index 7bb780ac7b83ebdd4436a3f35edadf17a46213a1..8302d6922e28a159b58185c199f4bc86ae1513af 100644
--- a/java/res/xml/rowkeys_bulgarian_bds3.xml
+++ b/java/res/xml/rowkeys_bulgarian_bds3.xml
@@ -23,29 +23,29 @@
 >
     <!-- U+044E: "ÑŽ" CYRILLIC SMALL LETTER YU -->
     <Key
-        latin:keyLabel="&#x044E;" />
+        latin:keySpec="&#x044E;" />
     <!-- U+0439: "й" CYRILLIC SMALL LETTER SHORT I -->
     <Key
-        latin:keyLabel="&#x0439;" />
+        latin:keySpec="&#x0439;" />
     <!-- U+044A: "ÑŠ" CYRILLIC SMALL LETTER HARD SIGN -->
     <Key
-        latin:keyLabel="&#x044A;" />
+        latin:keySpec="&#x044A;" />
     <!-- U+044D: "э" CYRILLIC SMALL LETTER E -->
     <Key
-        latin:keyLabel="&#x044D;" />
+        latin:keySpec="&#x044D;" />
     <!-- U+0444: "Ñ„" CYRILLIC SMALL LETTER EF -->
     <Key
-        latin:keyLabel="&#x0444;" />
+        latin:keySpec="&#x0444;" />
     <!-- U+0445: "Ñ…" CYRILLIC SMALL LETTER HA -->
     <Key
-        latin:keyLabel="&#x0445;" />
+        latin:keySpec="&#x0445;" />
     <!-- U+043F: "п" CYRILLIC SMALL LETTER PE -->
     <Key
-        latin:keyLabel="&#x043F;" />
+        latin:keySpec="&#x043F;" />
     <!-- U+0440: "Ñ€" CYRILLIC SMALL LETTER ER -->
     <Key
-        latin:keyLabel="&#x0440;" />
+        latin:keySpec="&#x0440;" />
     <!-- U+043B: "л" CYRILLIC SMALL LETTER EL -->
     <Key
-        latin:keyLabel="&#x043B;" />
+        latin:keySpec="&#x043B;" />
 </merge>
diff --git a/java/res/xml/rowkeys_colemak1.xml b/java/res/xml/rowkeys_colemak1.xml
index f1c30756bbeea524b6b0217f30c31dcbd111a833..819a69d2b000edaaf7a3d1805bb1726b58dc268f 100644
--- a/java/res/xml/rowkeys_colemak1.xml
+++ b/java/res/xml/rowkeys_colemak1.xml
@@ -22,44 +22,44 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="q"
+        latin:keySpec="q"
         latin:keyHintLabel="1"
         latin:additionalMoreKeys="1" />
     <Key
-        latin:keyLabel="w"
+        latin:keySpec="w"
         latin:keyHintLabel="2"
         latin:additionalMoreKeys="2"
         latin:moreKeys="!text/more_keys_for_w" />
     <Key
-        latin:keyLabel="f"
+        latin:keySpec="f"
         latin:keyHintLabel="3"
         latin:additionalMoreKeys="3" />
     <Key
-        latin:keyLabel="p"
+        latin:keySpec="p"
         latin:keyHintLabel="4"
         latin:additionalMoreKeys="4" />
     <Key
-        latin:keyLabel="g"
+        latin:keySpec="g"
         latin:keyHintLabel="5"
         latin:additionalMoreKeys="5"
         latin:moreKeys="!text/more_keys_for_g" />
     <Key
-        latin:keyLabel="j"
+        latin:keySpec="j"
         latin:keyHintLabel="6"
         latin:additionalMoreKeys="6"
         latin:moreKeys="!text/more_keys_for_j" />
     <Key
-        latin:keyLabel="l"
+        latin:keySpec="l"
         latin:keyHintLabel="7"
         latin:additionalMoreKeys="7"
         latin:moreKeys="!text/more_keys_for_l" />
     <Key
-        latin:keyLabel="u"
+        latin:keySpec="u"
         latin:keyHintLabel="8"
         latin:additionalMoreKeys="8"
         latin:moreKeys="!text/more_keys_for_u" />
     <Key
-        latin:keyLabel="y"
+        latin:keySpec="y"
         latin:keyHintLabel="9"
         latin:additionalMoreKeys="9"
         latin:moreKeys="!text/more_keys_for_y" />
diff --git a/java/res/xml/rowkeys_colemak2.xml b/java/res/xml/rowkeys_colemak2.xml
index f73d7e95fbbf1471836d76af1554f11ef4f324f6..644d845bf69970710ef1ba811c2ecb9db9377699 100644
--- a/java/res/xml/rowkeys_colemak2.xml
+++ b/java/res/xml/rowkeys_colemak2.xml
@@ -22,33 +22,33 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="a"
+        latin:keySpec="a"
         latin:moreKeys="!text/more_keys_for_a" />
     <Key
-        latin:keyLabel="r"
+        latin:keySpec="r"
         latin:moreKeys="!text/more_keys_for_r" />
     <Key
-        latin:keyLabel="s"
+        latin:keySpec="s"
         latin:moreKeys="!text/more_keys_for_s" />
     <Key
-        latin:keyLabel="t"
+        latin:keySpec="t"
         latin:moreKeys="!text/more_keys_for_t" />
     <Key
-        latin:keyLabel="d"
+        latin:keySpec="d"
         latin:moreKeys="!text/more_keys_for_d" />
     <Key
-        latin:keyLabel="h"
+        latin:keySpec="h"
         latin:moreKeys="!text/more_keys_for_h" />
     <Key
-        latin:keyLabel="n"
+        latin:keySpec="n"
         latin:moreKeys="!text/more_keys_for_n" />
     <Key
-        latin:keyLabel="e"
+        latin:keySpec="e"
         latin:moreKeys="!text/more_keys_for_e" />
     <Key
-        latin:keyLabel="i"
+        latin:keySpec="i"
         latin:moreKeys="!text/more_keys_for_i" />
     <Key
-        latin:keyLabel="o"
+        latin:keySpec="o"
         latin:moreKeys="!text/more_keys_for_o" />
 </merge>
diff --git a/java/res/xml/rowkeys_colemak3.xml b/java/res/xml/rowkeys_colemak3.xml
index f0f91514245d3d6a77e274c4eefa785a271b7afa..946910cb54b05b9ddc6d57ded179c8a45d0908b2 100644
--- a/java/res/xml/rowkeys_colemak3.xml
+++ b/java/res/xml/rowkeys_colemak3.xml
@@ -22,21 +22,21 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="z"
+        latin:keySpec="z"
         latin:moreKeys="!text/more_keys_for_z" />
     <Key
-        latin:keyLabel="x" />
+        latin:keySpec="x" />
     <Key
-        latin:keyLabel="c"
+        latin:keySpec="c"
         latin:moreKeys="!text/more_keys_for_c" />
     <Key
-        latin:keyLabel="v"
+        latin:keySpec="v"
         latin:moreKeys="!text/more_keys_for_v" />
     <Key
-        latin:keyLabel="b" />
+        latin:keySpec="b" />
     <Key
-        latin:keyLabel="k"
+        latin:keySpec="k"
         latin:moreKeys="!text/more_keys_for_k" />
     <Key
-        latin:keyLabel="m" />
+        latin:keySpec="m" />
 </merge>
diff --git a/java/res/xml/rowkeys_dvorak1.xml b/java/res/xml/rowkeys_dvorak1.xml
index 033308acb05e39ad2da465b81ff8d7c4f5ecd125..831bfafffe1802328000b4153773a7533642ca6d 100644
--- a/java/res/xml/rowkeys_dvorak1.xml
+++ b/java/res/xml/rowkeys_dvorak1.xml
@@ -24,35 +24,35 @@
     <include
         latin:keyboardLayout="@xml/keys_dvorak_123" />
     <Key
-        latin:keyLabel="p"
+        latin:keySpec="p"
         latin:keyHintLabel="4"
         latin:additionalMoreKeys="4" />
     <Key
-        latin:keyLabel="y"
+        latin:keySpec="y"
         latin:keyHintLabel="5"
         latin:additionalMoreKeys="5"
         latin:moreKeys="!text/more_keys_for_y" />
     <Key
-        latin:keyLabel="f"
+        latin:keySpec="f"
         latin:keyHintLabel="6"
         latin:additionalMoreKeys="6" />
     <Key
-        latin:keyLabel="g"
+        latin:keySpec="g"
         latin:keyHintLabel="7"
         latin:additionalMoreKeys="7"
         latin:moreKeys="!text/more_keys_for_g" />
     <Key
-        latin:keyLabel="c"
+        latin:keySpec="c"
         latin:keyHintLabel="8"
         latin:additionalMoreKeys="8"
         latin:moreKeys="!text/more_keys_for_c" />
     <Key
-        latin:keyLabel="r"
+        latin:keySpec="r"
         latin:keyHintLabel="9"
         latin:additionalMoreKeys="9"
         latin:moreKeys="!text/more_keys_for_r" />
     <Key
-        latin:keyLabel="l"
+        latin:keySpec="l"
         latin:keyHintLabel="0"
         latin:additionalMoreKeys="0"
         latin:moreKeys="!text/more_keys_for_l" />
diff --git a/java/res/xml/rowkeys_dvorak2.xml b/java/res/xml/rowkeys_dvorak2.xml
index 943e3f549d0b9f0cb8b757fc9886ca147104e06a..7c734730a71f9994baa6b5b723988a3575095673 100644
--- a/java/res/xml/rowkeys_dvorak2.xml
+++ b/java/res/xml/rowkeys_dvorak2.xml
@@ -22,33 +22,33 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="a"
+        latin:keySpec="a"
         latin:moreKeys="!text/more_keys_for_a" />
     <Key
-        latin:keyLabel="o"
+        latin:keySpec="o"
         latin:moreKeys="!text/more_keys_for_o" />
     <Key
-        latin:keyLabel="e"
+        latin:keySpec="e"
         latin:moreKeys="!text/more_keys_for_e" />
     <Key
-        latin:keyLabel="u"
+        latin:keySpec="u"
         latin:moreKeys="!text/more_keys_for_u" />
     <Key
-        latin:keyLabel="i"
+        latin:keySpec="i"
         latin:moreKeys="!text/more_keys_for_i" />
     <Key
-        latin:keyLabel="d"
+        latin:keySpec="d"
         latin:moreKeys="!text/more_keys_for_d" />
     <Key
-        latin:keyLabel="h"
+        latin:keySpec="h"
         latin:moreKeys="!text/more_keys_for_h" />
     <Key
-        latin:keyLabel="t"
+        latin:keySpec="t"
         latin:moreKeys="!text/more_keys_for_t" />
     <Key
-        latin:keyLabel="n"
+        latin:keySpec="n"
         latin:moreKeys="!text/more_keys_for_n" />
     <Key
-        latin:keyLabel="s"
+        latin:keySpec="s"
         latin:moreKeys="!text/more_keys_for_s" />
 </merge>
diff --git a/java/res/xml/rowkeys_dvorak3.xml b/java/res/xml/rowkeys_dvorak3.xml
index b035f41cdea606dde7739b6e21bc991d9a13ddd0..a9da6b95037a4e3df9549f54973768cf2ed70847 100644
--- a/java/res/xml/rowkeys_dvorak3.xml
+++ b/java/res/xml/rowkeys_dvorak3.xml
@@ -22,21 +22,21 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="j"
+        latin:keySpec="j"
         latin:moreKeys="!text/more_keys_for_j" />
     <Key
-        latin:keyLabel="k"
+        latin:keySpec="k"
         latin:moreKeys="!text/more_keys_for_k" />
     <Key
-        latin:keyLabel="x" />
+        latin:keySpec="x" />
     <Key
-        latin:keyLabel="b" />
+        latin:keySpec="b" />
     <Key
-        latin:keyLabel="m" />
+        latin:keySpec="m" />
     <Key
-        latin:keyLabel="w"
+        latin:keySpec="w"
         latin:moreKeys="!text/more_keys_for_w" />
     <Key
-        latin:keyLabel="v"
+        latin:keySpec="v"
         latin:moreKeys="!text/more_keys_for_v" />
 </merge>
diff --git a/java/res/xml/rowkeys_east_slavic1.xml b/java/res/xml/rowkeys_east_slavic1.xml
index 5b3b4b48dc31a018a36ad90f8dd4a9bc9d350cc0..7e95a8b3519f8ec70e17dabcc48fc8b3dc7e58be 100644
--- a/java/res/xml/rowkeys_east_slavic1.xml
+++ b/java/res/xml/rowkeys_east_slavic1.xml
@@ -23,59 +23,59 @@
 >
     <!-- U+0439: "й" CYRILLIC SMALL LETTER SHORT I -->
     <Key
-        latin:keyLabel="&#x0439;"
+        latin:keySpec="&#x0439;"
         latin:keyHintLabel="1"
         latin:additionalMoreKeys="1" />
     <!-- U+0446: "ц" CYRILLIC SMALL LETTER TSE -->
     <Key
-        latin:keyLabel="&#x0446;"
+        latin:keySpec="&#x0446;"
         latin:keyHintLabel="2"
         latin:additionalMoreKeys="2" />
     <!-- U+0443: "у" CYRILLIC SMALL LETTER U -->
     <Key
-        latin:keyLabel="&#x0443;"
+        latin:keySpec="&#x0443;"
         latin:keyHintLabel="3"
         latin:additionalMoreKeys="3"
         latin:moreKeys="!text/more_keys_for_cyrillic_u" />
     <!-- U+043A: "к" CYRILLIC SMALL LETTER KA -->
     <Key
-        latin:keyLabel="&#x043A;"
+        latin:keySpec="&#x043A;"
         latin:keyHintLabel="4"
         latin:additionalMoreKeys="4"
         latin:moreKeys="!text/more_keys_for_cyrillic_ka" />
     <!-- U+0435: "е" CYRILLIC SMALL LETTER IE -->
     <Key
-        latin:keyLabel="&#x0435;"
+        latin:keySpec="&#x0435;"
         latin:keyHintLabel="5"
         latin:additionalMoreKeys="5"
         latin:moreKeys="!text/more_keys_for_cyrillic_ie" />
     <!-- U+043D: "н" CYRILLIC SMALL LETTER EN -->
     <Key
-        latin:keyLabel="&#x043D;"
+        latin:keySpec="&#x043D;"
         latin:keyHintLabel="6"
         latin:additionalMoreKeys="6"
         latin:moreKeys="!text/more_keys_for_cyrillic_en" />
     <!-- U+0433: "г" CYRILLIC SMALL LETTER GHE -->
     <Key
-        latin:keyLabel="&#x0433;"
+        latin:keySpec="&#x0433;"
         latin:keyHintLabel="7"
         latin:additionalMoreKeys="7"
         latin:moreKeys="!text/more_keys_for_cyrillic_ghe" />
     <!-- U+0448: "ш" CYRILLIC SMALL LETTER SHA -->
     <Key
-        latin:keyLabel="&#x0448;"
+        latin:keySpec="&#x0448;"
         latin:keyHintLabel="8"
         latin:additionalMoreKeys="8" />
     <Key
-        latin:keyLabel="!text/keylabel_for_east_slavic_row1_9"
+        latin:keySpec="!text/keylabel_for_east_slavic_row1_9"
         latin:keyHintLabel="9"
         latin:additionalMoreKeys="9" />
     <!-- U+0437: "з" CYRILLIC SMALL LETTER ZE -->
     <Key
-        latin:keyLabel="&#x0437;"
+        latin:keySpec="&#x0437;"
         latin:keyHintLabel="0"
         latin:additionalMoreKeys="0" />
     <!-- U+0445: "Ñ…" CYRILLIC SMALL LETTER HA -->
     <Key
-        latin:keyLabel="&#x0445;" />
+        latin:keySpec="&#x0445;" />
 </merge>
diff --git a/java/res/xml/rowkeys_east_slavic2.xml b/java/res/xml/rowkeys_east_slavic2.xml
index 2e412f08c43e15178da132a0b65bff2d688027e1..20d963cb37172f2eb5fc24ae77e69953fca59a0d 100644
--- a/java/res/xml/rowkeys_east_slavic2.xml
+++ b/java/res/xml/rowkeys_east_slavic2.xml
@@ -23,37 +23,37 @@
 >
     <!-- U+0444: "Ñ„" CYRILLIC SMALL LETTER EF -->
     <Key
-        latin:keyLabel="&#x0444;" />
+        latin:keySpec="&#x0444;" />
     <Key
-        latin:keyLabel="!text/keylabel_for_east_slavic_row2_1"
+        latin:keySpec="!text/keylabel_for_east_slavic_row2_1"
         latin:moreKeys="!text/more_keys_for_east_slavic_row2_1" />
     <!-- U+0432: "в" CYRILLIC SMALL LETTER VE -->
     <Key
-        latin:keyLabel="&#x0432;" />
+        latin:keySpec="&#x0432;" />
     <!-- U+0430: "а" CYRILLIC SMALL LETTER A -->
     <Key
-        latin:keyLabel="&#x0430;"
+        latin:keySpec="&#x0430;"
         latin:moreKeys="!text/more_keys_for_cyrillic_a" />
     <!-- U+043F: "п" CYRILLIC SMALL LETTER PE -->
     <Key
-        latin:keyLabel="&#x043F;" />
+        latin:keySpec="&#x043F;" />
     <!-- U+0440: "Ñ€" CYRILLIC SMALL LETTER ER -->
     <Key
-        latin:keyLabel="&#x0440;" />
+        latin:keySpec="&#x0440;" />
     <!-- U+043E: "о" CYRILLIC SMALL LETTER O -->
     <Key
-        latin:keyLabel="&#x043E;"
+        latin:keySpec="&#x043E;"
         latin:moreKeys="!text/more_keys_for_cyrillic_o" />
     <!-- U+043B: "л" CYRILLIC SMALL LETTER EL -->
     <Key
-        latin:keyLabel="&#x043B;" />
+        latin:keySpec="&#x043B;" />
     <!-- U+0434: "д" CYRILLIC SMALL LETTER DE -->
     <Key
-        latin:keyLabel="&#x0434;" />
+        latin:keySpec="&#x0434;" />
     <!-- U+0436: "ж" CYRILLIC SMALL LETTER ZHE -->
     <Key
-        latin:keyLabel="&#x0436;" />
+        latin:keySpec="&#x0436;" />
     <Key
-        latin:keyLabel="!text/keylabel_for_east_slavic_row2_11"
+        latin:keySpec="!text/keylabel_for_east_slavic_row2_11"
         latin:moreKeys="!text/more_keys_for_east_slavic_row2_11" />
 </merge>
diff --git a/java/res/xml/rowkeys_east_slavic3.xml b/java/res/xml/rowkeys_east_slavic3.xml
index c3a171b492b58e189b59b0cdb573881c9caa7544..b7d19b223ccf4a2ff94cc8871c88c9cae1b975fd 100644
--- a/java/res/xml/rowkeys_east_slavic3.xml
+++ b/java/res/xml/rowkeys_east_slavic3.xml
@@ -23,29 +23,29 @@
 >
     <!-- U+044F: "я" CYRILLIC SMALL LETTER YA -->
     <Key
-        latin:keyLabel="&#x044F;" />
+        latin:keySpec="&#x044F;" />
     <!-- U+0447: "ч" CYRILLIC SMALL LETTER CHE -->
     <Key
-        latin:keyLabel="&#x0447;" />
+        latin:keySpec="&#x0447;" />
     <!-- U+0441: "с" CYRILLIC SMALL LETTER ES -->
     <Key
-        latin:keyLabel="&#x0441;" />
+        latin:keySpec="&#x0441;" />
     <!-- U+043C: "м" CYRILLIC SMALL LETTER EM -->
     <Key
-        latin:keyLabel="&#x043C;" />
+        latin:keySpec="&#x043C;" />
     <Key
-        latin:keyLabel="!text/keylabel_for_east_slavic_row3_5" />
+        latin:keySpec="!text/keylabel_for_east_slavic_row3_5" />
     <!-- U+0442: "Ñ‚" CYRILLIC SMALL LETTER TE -->
     <Key
-        latin:keyLabel="&#x0442;" />
+        latin:keySpec="&#x0442;" />
     <!-- U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN -->
     <Key
-        latin:keyLabel="&#x044C;"
+        latin:keySpec="&#x044C;"
         latin:moreKeys="!text/more_keys_for_cyrillic_soft_sign" />
     <!-- U+0431: "б" CYRILLIC SMALL LETTER BE -->
     <Key
-        latin:keyLabel="&#x0431;" />
+        latin:keySpec="&#x0431;" />
     <!-- U+044E: "ÑŽ" CYRILLIC SMALL LETTER YU -->
     <Key
-        latin:keyLabel="&#x044E;" />
+        latin:keySpec="&#x044E;" />
 </merge>
diff --git a/java/res/xml/rowkeys_farsi1.xml b/java/res/xml/rowkeys_farsi1.xml
index 5a22a24628e546293e3fc992635a2fc2078b2d85..46fef423671b860bf5afc3a090da017bfc321f90 100644
--- a/java/res/xml/rowkeys_farsi1.xml
+++ b/java/res/xml/rowkeys_farsi1.xml
@@ -24,49 +24,49 @@
     <!-- U+0636: "ض" ARABIC LETTER DAD
          U+06F1: "Û±" EXTENDED ARABIC-INDIC DIGIT ONE -->
     <Key
-        latin:keyLabel="&#x0636;"
+        latin:keySpec="&#x0636;"
         latin:keyHintLabel="&#x06F1;"
         latin:additionalMoreKeys="&#x06F1;,1"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0635: "ص" ARABIC LETTER SAD
          U+06F2: "Û²" EXTENDED ARABIC-INDIC DIGIT TWO -->
     <Key
-        latin:keyLabel="&#x0635;"
+        latin:keySpec="&#x0635;"
         latin:keyHintLabel="&#x06F2;"
         latin:additionalMoreKeys="&#x06F2;,2"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+062B: "Ø«" ARABIC LETTER THEH
          U+06F3: "Û³" EXTENDED ARABIC-INDIC DIGIT THREE -->
     <Key
-        latin:keyLabel="&#x062B;"
+        latin:keySpec="&#x062B;"
         latin:keyHintLabel="&#x06F3;"
         latin:additionalMoreKeys="&#x06F3;,3"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0642: "Ù‚" ARABIC LETTER QAF
          U+06F4: "Û´" EXTENDED ARABIC-INDIC DIGIT FOUR -->
     <Key
-        latin:keyLabel="&#x0642;"
+        latin:keySpec="&#x0642;"
         latin:keyHintLabel="&#x06F4;"
         latin:additionalMoreKeys="&#x06F4;,4"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0641: "ف" ARABIC LETTER FEH
          U+06F5: "Ûµ" EXTENDED ARABIC-INDIC DIGIT FIVE -->
     <Key
-        latin:keyLabel="&#x0641;"
+        latin:keySpec="&#x0641;"
         latin:keyHintLabel="&#x06F5;"
         latin:additionalMoreKeys="&#x06F5;,5"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+063A: "غ" ARABIC LETTER GHAIN
          U+06F6: "Û¶" EXTENDED ARABIC-INDIC DIGIT SIX -->
     <Key
-        latin:keyLabel="&#x063A;"
+        latin:keySpec="&#x063A;"
         latin:keyHintLabel="&#x06F6;"
         latin:additionalMoreKeys="&#x06F6;,6"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0639: "ع" ARABIC LETTER AIN
          U+06F7: "Û·" EXTENDED ARABIC-INDIC DIGIT SEVEN -->
     <Key
-        latin:keyLabel="&#x0639;"
+        latin:keySpec="&#x0639;"
         latin:keyHintLabel="&#x06F7;"
         latin:additionalMoreKeys="&#x06F7;,7"
         latin:keyLabelFlags="fontNormal" />
@@ -77,7 +77,7 @@
          U+0629: "Ø©" ARABIC LETTER TEH MARBUTA
          U+06F8: "Û¸" EXTENDED ARABIC-INDIC DIGIT EIGHT -->
     <Key
-        latin:keyLabel="&#x0647;"
+        latin:keySpec="&#x0647;"
         latin:moreKeys="&#xFEEB;|&#x0647;&#x200D;,&#x0647;&#x0654;,&#x0629;,%"
         latin:keyHintLabel="&#x06F8;"
         latin:additionalMoreKeys="&#x06F8;,8"
@@ -85,19 +85,19 @@
     <!-- U+062E: "Ø®" ARABIC LETTER KHAH
          U+06F9: "Û¹" EXTENDED ARABIC-INDIC DIGIT NINE -->
     <Key
-        latin:keyLabel="&#x062E;"
+        latin:keySpec="&#x062E;"
         latin:keyHintLabel="&#x06F9;"
         latin:additionalMoreKeys="&#x06F9;,9"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+062D: "Ø­" ARABIC LETTER HAH
          U+06F0: "Û°" EXTENDED ARABIC-INDIC DIGIT ZERO -->
     <Key
-        latin:keyLabel="&#x062D;"
+        latin:keySpec="&#x062D;"
         latin:keyHintLabel="&#x06F0;"
         latin:additionalMoreKeys="&#x06F0;,0"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+062C: "ج" ARABIC LETTER JEEM -->
     <Key
-        latin:keyLabel="&#x062C;"
+        latin:keySpec="&#x062C;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml/rowkeys_farsi2.xml b/java/res/xml/rowkeys_farsi2.xml
index 590161f62e0010c89a1c989d897c26e9b1e6bc86..f94ee8e49730638548d8ce2624cdfc535be75f92 100644
--- a/java/res/xml/rowkeys_farsi2.xml
+++ b/java/res/xml/rowkeys_farsi2.xml
@@ -23,11 +23,11 @@
 >
     <!-- U+0634: "Ø´" ARABIC LETTER SHEEN -->
     <Key
-        latin:keyLabel="&#x0634;"
+        latin:keySpec="&#x0634;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0633: "س" ARABIC LETTER SEEN -->
     <Key
-        latin:keyLabel="&#x0633;"
+        latin:keySpec="&#x0633;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+06CC: "ی" ARABIC LETTER FARSI YEH
          U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE
@@ -35,16 +35,16 @@
          U+FBE8: "ﯨ" ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
          U+0649: "Ù‰" ARABIC LETTER ALEF MAKSURA -->
     <Key
-        latin:keyLabel="&#x06CC;"
+        latin:keySpec="&#x06CC;"
         latin:moreKeys="&#x0626;,&#x064A;,&#xFBE8;|&#x0649;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0628: "ب" ARABIC LETTER BEH -->
     <Key
-        latin:keyLabel="&#x0628;"
+        latin:keySpec="&#x0628;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0644: "Ù„" ARABIC LETTER LAM -->
     <Key
-        latin:keyLabel="&#x0644;"
+        latin:keySpec="&#x0644;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0627: "ا" ARABIC LETTER ALEF
          U+0671: "Ù±" ARABIC LETTER ALEF WASLA
@@ -53,31 +53,31 @@
          U+0623: "Ø£" ARABIC LETTER ALEF WITH HAMZA ABOVE
          U+0625: "Ø¥" ARABIC LETTER ALEF WITH HAMZA BELOW -->
     <Key
-        latin:keyLabel="&#x0627;"
+        latin:keySpec="&#x0627;"
         latin:moreKeys="!fixedColumnOrder!5,&#x0671;,&#x0621;,&#x0622;,&#x0623;,&#x0625;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+062A: "ت" ARABIC LETTER TEH
          U+0629: "Ø©": ARABIC LETTER TEH MARBUTA -->
     <Key
-        latin:keyLabel="&#x062A;"
+        latin:keySpec="&#x062A;"
         latin:moreKeys="&#x0629;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0646: "Ù†" ARABIC LETTER NOON -->
     <Key
-        latin:keyLabel="&#x0646;"
+        latin:keySpec="&#x0646;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0645: "Ù…" ARABIC LETTER MEEM -->
     <Key
-        latin:keyLabel="&#x0645;"
+        latin:keySpec="&#x0645;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+06A9: "Ú©" ARABIC LETTER KEHEH
          U+0643: "Ùƒ" ARABIC LETTER KAF -->
     <Key
-        latin:keyLabel="&#x06A9;"
+        latin:keySpec="&#x06A9;"
         latin:moreKeys="&#x0643;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+06AF: "Ú¯" ARABIC LETTER GAF -->
     <Key
-        latin:keyLabel="&#x06AF;"
+        latin:keySpec="&#x06AF;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml/rowkeys_farsi3.xml b/java/res/xml/rowkeys_farsi3.xml
index 98949f4c0c69901c8828ff78d7f71aad97fe1417..edc22f95a7fe776eb7a3fcee25773722e138374f 100644
--- a/java/res/xml/rowkeys_farsi3.xml
+++ b/java/res/xml/rowkeys_farsi3.xml
@@ -23,40 +23,40 @@
 >
     <!-- U+0638: "ظ" ARABIC LETTER ZAH -->
     <Key
-        latin:keyLabel="&#x0638;"
+        latin:keySpec="&#x0638;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0637: "Ø·" ARABIC LETTER TAH -->
     <Key
-        latin:keyLabel="&#x0637;"
+        latin:keySpec="&#x0637;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0698: "Ú˜" ARABIC LETTER JEH -->
     <Key
-        latin:keyLabel="&#x0698;"
+        latin:keySpec="&#x0698;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0632: "ز" ARABIC LETTER ZAIN -->
     <Key
-        latin:keyLabel="&#x0632;"
+        latin:keySpec="&#x0632;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0631: "ر" ARABIC LETTER REH -->
     <Key
-        latin:keyLabel="&#x0631;"
+        latin:keySpec="&#x0631;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0630: "ذ" ARABIC LETTER THAL -->
     <Key
-        latin:keyLabel="&#x0630;"
+        latin:keySpec="&#x0630;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+062F: "د" ARABIC LETTER DAL -->
     <Key
-        latin:keyLabel="&#x062F;"
+        latin:keySpec="&#x062F;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+067E: "Ù¾" ARABIC LETTER PEH -->
     <Key
-        latin:keyLabel="&#x067E;"
+        latin:keySpec="&#x067E;"
         latin:keyLabelFlags="fontNormal" />
     <!-- U+0648: "Ùˆ" ARABIC LETTER WAW
          U+0624: "ؤ" ARABIC LETTER WAW WITH HAMZA ABOVE -->
     <Key
-        latin:keyLabel="&#x0648;"
+        latin:keySpec="&#x0648;"
         latin:moreKeys="&#x0624;"
         latin:keyLabelFlags="fontNormal" />
     <include
diff --git a/java/res/xml/rowkeys_georgian1.xml b/java/res/xml/rowkeys_georgian1.xml
index d31a4c79cbc67e2bba17a02fb4de17e1fe737d40..c412aa3fa6cff0be78b7c56bf011db04fa07eeef 100644
--- a/java/res/xml/rowkeys_georgian1.xml
+++ b/java/res/xml/rowkeys_georgian1.xml
@@ -26,104 +26,104 @@
             latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
         >
             <Key
-                latin:keyLabel="Q"
+                latin:keySpec="Q"
                 latin:keyHintLabel="1"
                 latin:additionalMoreKeys="1" />
             <!-- U+10ED: "ჭ" GEORGIAN LETTER CHAR -->
             <Key
-                latin:keyLabel="&#x10ED;"
+                latin:keySpec="&#x10ED;"
                 latin:keyHintLabel="2"
                 latin:additionalMoreKeys="2" />
             <Key
-                latin:keyLabel="E"
+                latin:keySpec="E"
                 latin:keyHintLabel="3"
                 latin:additionalMoreKeys="3" />
             <!-- U+10E6: "ღ" GEORGIAN LETTER GHAN -->
             <Key
-                latin:keyLabel="&#x10E6;"
+                latin:keySpec="&#x10E6;"
                 latin:keyHintLabel="4"
                 latin:additionalMoreKeys="4" />
             <!-- U+10D7: "თ" GEORGIAN LETTER TAN -->
             <Key
-                latin:keyLabel="&#x10D7;"
+                latin:keySpec="&#x10D7;"
                 latin:keyHintLabel="5"
                 latin:additionalMoreKeys="5" />
             <Key
-                latin:keyLabel="Y"
+                latin:keySpec="Y"
                 latin:keyHintLabel="6"
                 latin:additionalMoreKeys="6" />
             <Key
-                latin:keyLabel="U"
+                latin:keySpec="U"
                 latin:keyHintLabel="7"
                 latin:additionalMoreKeys="7" />
             <Key
-                latin:keyLabel="I"
+                latin:keySpec="I"
                 latin:keyHintLabel="8"
                 latin:additionalMoreKeys="8" />
             <Key
-                latin:keyLabel="O"
+                latin:keySpec="O"
                 latin:keyHintLabel="9"
                 latin:additionalMoreKeys="9" />
             <Key
-                latin:keyLabel="P"
+                latin:keySpec="P"
                 latin:keyHintLabel="0"
                 latin:additionalMoreKeys="0" />
         </case>
         <default>
             <!-- U+10E5: "ქ" GEORGIAN LETTER GHAN -->
             <Key
-                latin:keyLabel="&#x10E5;"
+                latin:keySpec="&#x10E5;"
                 latin:keyHintLabel="1"
                 latin:additionalMoreKeys="1" />
             <!-- U+10EC: "წ" GEORGIAN LETTER CIL -->
             <Key
-                latin:keyLabel="&#x10EC;"
+                latin:keySpec="&#x10EC;"
                 latin:keyHintLabel="2"
                 latin:additionalMoreKeys="2" />
             <!-- U+10D4: "ე" GEORGIAN LETTER EN
                  U+10F1: "ჱ" GEORGIAN LETTER HE -->
             <Key
-                latin:keyLabel="&#x10D4;"
+                latin:keySpec="&#x10D4;"
                 latin:moreKeys="&#x10F1;"
                 latin:keyHintLabel="3"
                 latin:additionalMoreKeys="3" />
             <!-- U+10E0: "რ" GEORGIAN LETTER RAE -->
             <Key
-                latin:keyLabel="&#x10E0;"
+                latin:keySpec="&#x10E0;"
                 latin:keyHintLabel="4"
                 latin:additionalMoreKeys="4" />
             <!-- U+10E2: "ტ" GEORGIAN LETTER TAR -->
             <Key
-                latin:keyLabel="&#x10E2;"
+                latin:keySpec="&#x10E2;"
                 latin:keyHintLabel="5"
                 latin:additionalMoreKeys="5" />
             <!-- U+10E7: "ყ" GEORGIAN LETTER QAR
                  U+10F8: "ჸ" GEORGIAN LETTER ELIFI -->
             <Key
-                latin:keyLabel="&#x10E7;"
+                latin:keySpec="&#x10E7;"
                 latin:moreKeys="&#x10F8;"
                 latin:keyHintLabel="6"
                 latin:additionalMoreKeys="6" />
             <!-- U+10E3: "უ" GEORGIAN LETTER UN -->
             <Key
-                latin:keyLabel="&#x10E3;"
+                latin:keySpec="&#x10E3;"
                 latin:keyHintLabel="7"
                 latin:additionalMoreKeys="7" />
             <!-- U+10D8: "ი" GEORGIAN LETTER IN
                  U+10F2: "ჲ" GEORGIAN LETTER HIE -->
             <Key
-                latin:keyLabel="&#x10D8;"
+                latin:keySpec="&#x10D8;"
                 latin:moreKeys="&#x10F2;"
                 latin:keyHintLabel="8"
                 latin:additionalMoreKeys="8" />
             <!-- U+10DD: "ო" GEORGIAN LETTER ON -->
             <Key
-                latin:keyLabel="&#x10DD;"
+                latin:keySpec="&#x10DD;"
                 latin:keyHintLabel="9"
                 latin:additionalMoreKeys="9" />
             <!-- U+10DE: "პ" GEORGIAN LETTER PAR -->
             <Key
-                latin:keyLabel="&#x10DE;"
+                latin:keySpec="&#x10DE;"
                 latin:keyHintLabel="0"
                 latin:additionalMoreKeys="0" />
         </default>
diff --git a/java/res/xml/rowkeys_georgian2.xml b/java/res/xml/rowkeys_georgian2.xml
index cdccda31fb858d9f16a8b01fc38d6a14adbd3b9f..162960d75a41b144833cbf55c5fdafe30858e23c 100644
--- a/java/res/xml/rowkeys_georgian2.xml
+++ b/java/res/xml/rowkeys_georgian2.xml
@@ -26,64 +26,64 @@
             latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
         >
             <Key
-                latin:keyLabel="A" />
+                latin:keySpec="A" />
             <!-- U+10E8: "შ" GEORGIAN LETTER SHIN -->
             <Key
-                latin:keyLabel="&#x10E8;" />
+                latin:keySpec="&#x10E8;" />
             <Key
-                latin:keyLabel="D" />
+                latin:keySpec="D" />
             <Key
-                latin:keyLabel="F" />
+                latin:keySpec="F" />
             <Key
-                latin:keyLabel="G" />
+                latin:keySpec="G" />
             <Key
-                latin:keyLabel="H" />
+                latin:keySpec="H" />
             <!-- U+10DF: "ჟ" GEORGIAN LETTER ZHAR -->
             <Key
-                latin:keyLabel="&#x10DF;" />
+                latin:keySpec="&#x10DF;" />
             <Key
-                latin:keyLabel="K" />
+                latin:keySpec="K" />
             <Key
-                latin:keyLabel="L" />
+                latin:keySpec="L" />
         </case>
         <default>
             <!-- U+10D0: "ა" GEORGIAN LETTER AN
                  U+10FA: "ჺ" GEORGIAN LETTER AIN -->
             <Key
-                latin:keyLabel="&#x10D0;"
+                latin:keySpec="&#x10D0;"
                 latin:moreKeys="&#x10FA;" />
             <!-- U+10E1: "ს" GEORGIAN LETTER SAN -->
             <Key
-                latin:keyLabel="&#x10E1;" />
+                latin:keySpec="&#x10E1;" />
             <!-- U+10D3: "დ" GEORGIAN LETTER DON -->
             <Key
-                latin:keyLabel="&#x10D3;" />
+                latin:keySpec="&#x10D3;" />
             <!-- U+10E4: "ფ" GEORGIAN LETTER PHAR
                  U+10F6: "ჶ" GEORGIAN LETTER FI -->
             <Key
-                latin:keyLabel="&#x10E4;"
+                latin:keySpec="&#x10E4;"
                 latin:moreKeys="&#x10F6;" />
             <!-- U+10D2: "გ" GEORGIAN LETTER GAN
                  U+10F9: "ჹ" GEORGIAN LETTER TURNED GAN -->
             <Key
-                latin:keyLabel="&#x10D2;"
+                latin:keySpec="&#x10D2;"
                 latin:moreKeys="&#x10F9;" />
             <!-- U+10F0: "ჰ" GEORGIAN LETTER HAE
                  U+10F5: "ჵ" GEORGIAN LETTER HOE -->
             <Key
-                latin:keyLabel="&#x10F0;"
+                latin:keySpec="&#x10F0;"
                 latin:moreKeys="&#x10F5;" />
             <!-- U+10EF: "ჯ" GEORGIAN LETTER JHAN
                  U+10F7: "ჷ" GEORGIAN LETTER YN -->
             <Key
-                latin:keyLabel="&#x10EF;"
+                latin:keySpec="&#x10EF;"
                 latin:moreKeys="&#x10F7;" />
             <!-- U+10D9: "კ" GEORGIAN LETTER KAN -->
             <Key
-                latin:keyLabel="&#x10D9;" />
+                latin:keySpec="&#x10D9;" />
             <!-- U+10DA: "ლ" GEORGIAN LETTER LAS -->
             <Key
-                latin:keyLabel="&#x10DA;" />
+                latin:keySpec="&#x10DA;" />
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml/rowkeys_georgian3.xml b/java/res/xml/rowkeys_georgian3.xml
index a3714586fbe30d455f772659ff176413a2d7c3fa..a16acf8d3e7c2c19e503f433ce13dbff25632201 100644
--- a/java/res/xml/rowkeys_georgian3.xml
+++ b/java/res/xml/rowkeys_georgian3.xml
@@ -27,49 +27,49 @@
         >
             <!-- U+10EB: "ძ" GEORGIAN LETTER JIL -->
             <Key
-                latin:keyLabel="&#x10EB;" />
+                latin:keySpec="&#x10EB;" />
             <Key
-                latin:keyLabel="X" />
+                latin:keySpec="X" />
             <!-- U+10E9: "ჩ" GEORGIAN LETTER CHIN -->
             <Key
-                latin:keyLabel="&#x10E9;" />
+                latin:keySpec="&#x10E9;" />
             <Key
-                latin:keyLabel="V" />
+                latin:keySpec="V" />
             <Key
-                latin:keyLabel="B" />
+                latin:keySpec="B" />
             <Key
-                latin:keyLabel="N" />
+                latin:keySpec="N" />
             <Key
-                latin:keyLabel="M" />
+                latin:keySpec="M" />
         </case>
         <default>
             <!-- U+10D6: "ზ" GEORGIAN LETTER ZEN -->
             <Key
-                latin:keyLabel="&#x10D6;" />
+                latin:keySpec="&#x10D6;" />
             <!-- U+10EE: "ხ" GEORGIAN LETTER XAN
                  U+10F4: "ჴ" GEORGIAN LETTER HAR -->
             <Key
-                latin:keyLabel="&#x10EE;"
+                latin:keySpec="&#x10EE;"
                 latin:moreKeys="&#x10F4;" />
             <!-- U+10EA: "ც" GEORGIAN LETTER CAN -->
             <Key
-                latin:keyLabel="&#x10EA;" />
+                latin:keySpec="&#x10EA;" />
             <!-- U+10D5: "ვ" GEORGIAN LETTER VIN
                  U+10F3: "ჳ" GEORGIAN LETTER WE -->
             <Key
-                latin:keyLabel="&#x10D5;"
+                latin:keySpec="&#x10D5;"
                 latin:moreKeys="&#x10F3;" />
             <!-- U+10D1: "ბ" GEORGIAN LETTER BAN -->
             <Key
-                latin:keyLabel="&#x10D1;" />
+                latin:keySpec="&#x10D1;" />
             <!-- U+10DC: "ნ" GEORGIAN LETTER NAR
                  U+10FC: "ჼ" MODIFIER LETTER GEORGIAN NAR -->
             <Key
-                latin:keyLabel="&#x10DC;"
+                latin:keySpec="&#x10DC;"
                 latin:moreKeys="&#x10FC;" />
             <!-- U+10DB: "მ" GEORGIAN LETTER MAN -->
             <Key
-                latin:keyLabel="&#x10DB;" />
+                latin:keySpec="&#x10DB;" />
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml/rowkeys_greek1.xml b/java/res/xml/rowkeys_greek1.xml
index 5777d3b85919650d24922d3d29c1c78260ec2b06..5080dc8434e886e36c5b135fbca5e16354960dfa 100644
--- a/java/res/xml/rowkeys_greek1.xml
+++ b/java/res/xml/rowkeys_greek1.xml
@@ -29,7 +29,7 @@
         >
             U+0385: "Î…" GREEK DIALYTIKA TONOS
             <Key
-                latin:keyLabel="&#x0385;"
+                latin:keySpec="&#x0385;"
                 latin:keyHintLabel="2"
                 latin:additionalMoreKeys="2" />
         </case>
@@ -37,7 +37,7 @@
         -->
             <!-- U+03C2: "Ï‚" GREEK SMALL LETTER FINAL SIGMA -->
             <Key
-                latin:keyLabel="&#x03C2;"
+                latin:keySpec="&#x03C2;"
                 latin:keyLabelFlags="preserveCase"
                 latin:keyHintLabel="2"
                 latin:additionalMoreKeys="2" />
@@ -48,18 +48,18 @@
     <!-- U+03B5: "ε" GREEK SMALL LETTER EPSILON
          U+03AD: "έ" GREEK SMALL LETTER EPSILON WITH TONOS -->
     <Key
-        latin:keyLabel="&#x03B5;"
+        latin:keySpec="&#x03B5;"
         latin:keyHintLabel="3"
         latin:additionalMoreKeys="3"
         latin:moreKeys="&#x03AD;" />
     <!-- U+03C1: "ρ" GREEK SMALL LETTER RHO -->
     <Key
-        latin:keyLabel="&#x03C1;"
+        latin:keySpec="&#x03C1;"
         latin:keyHintLabel="4"
         latin:additionalMoreKeys="4" />
     <!-- U+03C4: "Ï„" GREEK SMALL LETTER TAU -->
     <Key
-        latin:keyLabel="&#x03C4;"
+        latin:keySpec="&#x03C4;"
         latin:keyHintLabel="5"
         latin:additionalMoreKeys="5" />
     <!-- U+03C5: "Ï…" GREEK SMALL LETTER UPSILON
@@ -67,13 +67,13 @@
          U+03CB: "Ï‹" GREEK SMALL LETTER UPSILON WITH DIALYTIKA
          U+03B0: "ΰ" GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -->
     <Key
-        latin:keyLabel="&#x03C5;"
+        latin:keySpec="&#x03C5;"
         latin:keyHintLabel="6"
         latin:additionalMoreKeys="6"
         latin:moreKeys="&#x03CD;,&#x03CB;,&#x03B0;" />
     <!-- U+03B8: "θ" GREEK SMALL LETTER THETA -->
     <Key
-        latin:keyLabel="&#x03B8;"
+        latin:keySpec="&#x03B8;"
         latin:keyHintLabel="7"
         latin:additionalMoreKeys="7" />
     <!-- U+03B9: "ι" GREEK SMALL LETTER IOTA
@@ -81,20 +81,20 @@
          U+03CA: "ÏŠ" GREEK SMALL LETTER IOTA WITH DIALYTIKA
          U+0390: "ΐ" GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -->
     <Key
-        latin:keyLabel="&#x03B9;"
+        latin:keySpec="&#x03B9;"
         latin:keyHintLabel="8"
         latin:additionalMoreKeys="8"
         latin:moreKeys="&#x03AF;,&#x03CA;,&#x0390;" />
     <!-- U+03BF: "ο" GREEK SMALL LETTER OMICRON
          U+03CC: "ό" GREEK SMALL LETTER OMICRON WITH TONOS -->
     <Key
-        latin:keyLabel="&#x03BF;"
+        latin:keySpec="&#x03BF;"
         latin:keyHintLabel="9"
         latin:additionalMoreKeys="9"
         latin:moreKeys="&#x03CC;" />
     <!-- U+03C0: "Ï€" GREEK SMALL LETTER PI -->
     <Key
-        latin:keyLabel="&#x03C0;"
+        latin:keySpec="&#x03C0;"
         latin:keyHintLabel="0"
         latin:additionalMoreKeys="0" />
 </merge>
diff --git a/java/res/xml/rowkeys_greek2.xml b/java/res/xml/rowkeys_greek2.xml
index 91bdc11651166d9ddedce269c670b5bb1b6a25ac..d8769caa96ee2b37e57ff7c4d739d3a7126db160 100644
--- a/java/res/xml/rowkeys_greek2.xml
+++ b/java/res/xml/rowkeys_greek2.xml
@@ -24,32 +24,32 @@
     <!-- U+03B1: "α" GREEK SMALL LETTER ALPHA
          U+03AC: "ά" GREEK SMALL LETTER ALPHA WITH TONOS -->
     <Key
-        latin:keyLabel="&#x03B1;"
+        latin:keySpec="&#x03B1;"
         latin:moreKeys="&#x03AC;" />
     <!-- U+03C3: "σ" GREEK SMALL LETTER SIGMA -->
     <Key
-        latin:keyLabel="&#x03C3;" />
+        latin:keySpec="&#x03C3;" />
     <!-- U+03B4: "δ" GREEK SMALL LETTER DELTA -->
     <Key
-        latin:keyLabel="&#x03B4;" />
+        latin:keySpec="&#x03B4;" />
     <!-- U+03C6: "φ" GREEK SMALL LETTER PHI -->
     <Key
-        latin:keyLabel="&#x03C6;" />
+        latin:keySpec="&#x03C6;" />
     <!-- U+03B3: "γ" GREEK SMALL LETTER GAMMA -->
     <Key
-        latin:keyLabel="&#x03B3;" />
+        latin:keySpec="&#x03B3;" />
     <!-- U+03B7: "η" GREEK SMALL LETTER ETA
          U+03AE: "ή" GREEK SMALL LETTER ETA WITH TONOS -->
     <Key
-        latin:keyLabel="&#x03B7;"
+        latin:keySpec="&#x03B7;"
         latin:moreKeys="&#x03AE;" />
     <!-- U+03BE: "ξ" GREEK SMALL LETTER XI -->
     <Key
-        latin:keyLabel="&#x03BE;" />
+        latin:keySpec="&#x03BE;" />
     <!-- U+03BA: "κ" GREEK SMALL LETTER KAPPA -->
     <Key
-        latin:keyLabel="&#x03BA;" />
+        latin:keySpec="&#x03BA;" />
     <!-- U+03BB: "λ" GREEK SMALL LETTER LAMDA -->
     <Key
-        latin:keyLabel="&#x03BB;" />
+        latin:keySpec="&#x03BB;" />
 </merge>
diff --git a/java/res/xml/rowkeys_greek3.xml b/java/res/xml/rowkeys_greek3.xml
index 8a99db9251646e7a6dc76c084f4597a986e6bef6..3f989bc9ca0d584a7075fd6e77eef25d6c51b773 100644
--- a/java/res/xml/rowkeys_greek3.xml
+++ b/java/res/xml/rowkeys_greek3.xml
@@ -23,25 +23,25 @@
 >
     <!-- U+03B6: "ζ" GREEK SMALL LETTER ZETA -->
     <Key
-        latin:keyLabel="&#x03B6;" />
+        latin:keySpec="&#x03B6;" />
     <!-- U+03C7: "χ" GREEK SMALL LETTER CHI -->
     <Key
-        latin:keyLabel="&#x03C7;" />
+        latin:keySpec="&#x03C7;" />
     <!-- U+03C8: "ψ" GREEK SMALL LETTER PSI -->
     <Key
-        latin:keyLabel="&#x03C8;" />
+        latin:keySpec="&#x03C8;" />
     <!-- U+03C9: "ω" GREEK SMALL LETTER OMEGA
          U+03CE: "ÏŽ" GREEK SMALL LETTER OMEGA WITH TONOS -->
     <Key
-        latin:keyLabel="&#x03C9;"
+        latin:keySpec="&#x03C9;"
         latin:moreKeys="&#x03CE;" />
     <!-- U+03B2: "β" GREEK SMALL LETTER BETA -->
     <Key
-        latin:keyLabel="&#x03B2;" />
+        latin:keySpec="&#x03B2;" />
     <!-- U+03BD: "ν" GREEK SMALL LETTER NU -->
     <Key
-        latin:keyLabel="&#x03BD;" />
+        latin:keySpec="&#x03BD;" />
     <!-- U+03BC: "μ" GREEK SMALL LETTER MU -->
     <Key
-        latin:keyLabel="&#x03BC;" />
+        latin:keySpec="&#x03BC;" />
 </merge>
diff --git a/java/res/xml/rowkeys_hebrew1.xml b/java/res/xml/rowkeys_hebrew1.xml
index 81a00e36701cd9bef92feb46d7d01934f6b24c48..e888977aeda46e52c011e7481132b96b50b6fd19 100644
--- a/java/res/xml/rowkeys_hebrew1.xml
+++ b/java/res/xml/rowkeys_hebrew1.xml
@@ -26,22 +26,22 @@
             latin:mode="email|url"
         >
             <Key
-                latin:keyLabel="-"
+                latin:keySpec="-"
                 latin:keyHintLabel="1"
                 latin:additionalMoreKeys="1" />
             <Key
-                latin:keyLabel="_"
+                latin:keySpec="_"
                 latin:keyHintLabel="2"
                 latin:additionalMoreKeys="2" />
         </case>
         <default>
             <Key
-                latin:keyLabel="\'"
+                latin:keySpec="\'"
                 latin:keyHintLabel="1"
                 latin:additionalMoreKeys="1"
                 latin:moreKeys="&quot;" />
             <Key
-                latin:keyLabel="-"
+                latin:keySpec="-"
                 latin:keyHintLabel="2"
                 latin:additionalMoreKeys="2"
                 latin:moreKeys="_" />
@@ -49,42 +49,42 @@
     </switch>
     <!-- U+05E7: "×§" HEBREW LETTER QOF -->
     <Key
-        latin:keyLabel="&#x05E7;"
+        latin:keySpec="&#x05E7;"
         latin:keyHintLabel="3"
         latin:additionalMoreKeys="3" />
     <!-- U+05E8: "ר" HEBREW LETTER RESH -->
     <Key
-        latin:keyLabel="&#x05E8;"
+        latin:keySpec="&#x05E8;"
         latin:keyHintLabel="4"
         latin:additionalMoreKeys="4" />
     <!-- U+05D0: "א" HEBREW LETTER ALEF -->
     <Key
-        latin:keyLabel="&#x05D0;"
+        latin:keySpec="&#x05D0;"
         latin:keyHintLabel="5"
         latin:additionalMoreKeys="5" />
     <!-- U+05D8: "ט" HEBREW LETTER TET -->
     <Key
-        latin:keyLabel="&#x05D8;"
+        latin:keySpec="&#x05D8;"
         latin:keyHintLabel="6"
         latin:additionalMoreKeys="6" />
     <!-- U+05D5: "ו" HEBREW LETTER VAV -->
     <Key
-        latin:keyLabel="&#x05D5;"
+        latin:keySpec="&#x05D5;"
         latin:keyHintLabel="7"
         latin:additionalMoreKeys="7" />
     <!-- U+05DF: "ן" HEBREW LETTER FINAL NUN -->
     <Key
-        latin:keyLabel="&#x05DF;"
+        latin:keySpec="&#x05DF;"
         latin:keyHintLabel="8"
         latin:additionalMoreKeys="8" />
     <!-- U+05DD: "ם" HEBREW LETTER FINAL MEM -->
     <Key
-        latin:keyLabel="&#x05DD;"
+        latin:keySpec="&#x05DD;"
         latin:keyHintLabel="9"
         latin:additionalMoreKeys="9" />
     <!-- U+05E4: "פ" HEBREW LETTER PE -->
     <Key
-        latin:keyLabel="&#x05E4;"
+        latin:keySpec="&#x05E4;"
         latin:keyHintLabel="0"
         latin:additionalMoreKeys="0" />
 </merge>
diff --git a/java/res/xml/rowkeys_hebrew2.xml b/java/res/xml/rowkeys_hebrew2.xml
index e4ecac3351ff91c3a1941cef51d61efcbe48f413..d43f5a8f23a77a3cb84236b5db9d6e8405d57470 100644
--- a/java/res/xml/rowkeys_hebrew2.xml
+++ b/java/res/xml/rowkeys_hebrew2.xml
@@ -23,38 +23,38 @@
 >
     <!-- U+05E9: "ש" HEBREW LETTER SHIN -->
     <Key
-        latin:keyLabel="&#x05E9;" />
+        latin:keySpec="&#x05E9;" />
     <!-- U+05D3: "ד" HEBREW LETTER DALET -->
     <Key
-        latin:keyLabel="&#x05D3;" />
+        latin:keySpec="&#x05D3;" />
     <!-- U+05D2: "×’" HEBREW LETTER GIMEL
          U+05D2 U+05F3: "ג׳" HEBREW LETTER GIMEL + HEBREW PUNCTUATION GERESH -->
     <Key
-        latin:keyLabel="&#x05D2;"
+        latin:keySpec="&#x05D2;"
         latin:moreKeys="&#x05D2;&#x05F3;" />
     <!-- U+05DB: "×›" HEBREW LETTER KAF -->
     <Key
-        latin:keyLabel="&#x05DB;" />
+        latin:keySpec="&#x05DB;" />
     <!-- U+05E2: "×¢" HEBREW LETTER AYIN -->
     <Key
-        latin:keyLabel="&#x05E2;" />
+        latin:keySpec="&#x05E2;" />
     <!-- U+05D9: "×™" HEBREW LETTER YOD
          U+05F2 U+05B7: "ײַ" HEBREW LIGATURE YIDDISH DOUBLE YOD + HEBREW POINT PATAH -->
     <Key
-        latin:keyLabel="&#x05D9;"
+        latin:keySpec="&#x05D9;"
         latin:moreKeys="&#x05F2;&#x05B7;" />
     <!-- U+05D7: "×—" HEBREW LETTER HET
          U+05D7 U+05F3: "ח׳" HEBREW LETTER HET + HEBREW PUNCTUATION GERESH -->
     <Key
-        latin:keyLabel="&#x05D7;"
+        latin:keySpec="&#x05D7;"
         latin:moreKeys="&#x05D7;&#x05F3;" />
     <!-- U+05DC: "ל" HEBREW LETTER LAMED -->
     <Key
-        latin:keyLabel="&#x05DC;" />
+        latin:keySpec="&#x05DC;" />
     <!-- U+05DA: "ך" HEBREW LETTER FINAL KAF -->
     <Key
-        latin:keyLabel="&#x05DA;" />
+        latin:keySpec="&#x05DA;" />
     <!-- U+05E3: "×£" HEBREW LETTER FINAL PE -->
     <Key
-        latin:keyLabel="&#x05E3;" />
+        latin:keySpec="&#x05E3;" />
 </merge>
diff --git a/java/res/xml/rowkeys_hebrew3.xml b/java/res/xml/rowkeys_hebrew3.xml
index 805a7a596c011e8ddf38c32956ce9b128f689d71..928e6b255db9097da1cc51c83f5795ee7b8c3958 100644
--- a/java/res/xml/rowkeys_hebrew3.xml
+++ b/java/res/xml/rowkeys_hebrew3.xml
@@ -24,36 +24,36 @@
     <!-- U+05D6: "×–" HEBREW LETTER ZAYIN
          U+05D6 U+05F3: "ז׳" HEBREW LETTER ZAYIN + HEBREW PUNCTUATION GERESH -->
     <Key
-        latin:keyLabel="&#x05D6;"
+        latin:keySpec="&#x05D6;"
         latin:moreKeys="&#x05D6;&#x05F3;" />
     <!-- U+05E1: "ס" HEBREW LETTER SAMEKH -->
     <Key
-        latin:keyLabel="&#x05E1;" />
+        latin:keySpec="&#x05E1;" />
     <!-- U+05D1: "ב" HEBREW LETTER BET -->
     <Key
-        latin:keyLabel="&#x05D1;" />
+        latin:keySpec="&#x05D1;" />
     <!-- U+05D4: "×”" HEBREW LETTER HE -->
     <Key
-        latin:keyLabel="&#x05D4;" />
+        latin:keySpec="&#x05D4;" />
     <!-- U+05E0: "× " HEBREW LETTER NUN -->
     <Key
-        latin:keyLabel="&#x05E0;" />
+        latin:keySpec="&#x05E0;" />
     <!-- U+05DE: "מ" HEBREW LETTER MEM -->
     <Key
-        latin:keyLabel="&#x05DE;" />
+        latin:keySpec="&#x05DE;" />
     <!-- U+05E6: "צ" HEBREW LETTER TSADI
          U+05E6 U+05F3: "צ׳" HEBREW LETTER TSADI + HEBREW PUNCTUATION GERESH -->
     <Key
-        latin:keyLabel="&#x05E6;"
+        latin:keySpec="&#x05E6;"
         latin:moreKeys="&#x05E6;&#x05F3;" />
     <!-- U+05EA: "ת" HEBREW LETTER TAV
          U+05EA U+05F3: "ת׳" HEBREW LETTER TAV + HEBREW PUNCTUATION GERESH -->
     <Key
-        latin:keyLabel="&#x05EA;"
+        latin:keySpec="&#x05EA;"
         latin:moreKeys="&#x05EA;&#x05F3;" />
     <!-- U+05E5: "×¥" HEBREW LETTER FINAL TSADI
          U+05E5 U+05F3: "ץ׳" HEBREW LETTER FINAL TSADI + HEBREW PUNCTUATION GERESH -->
     <Key
-        latin:keyLabel="&#x05E5;"
+        latin:keySpec="&#x05E5;"
         latin:moreKeys="&#x05E5;&#x05F3;" />
 </merge>
diff --git a/java/res/xml/rowkeys_hindi1.xml b/java/res/xml/rowkeys_hindi1.xml
index c0b3cb9138dd5d53b845e520230759277bc5a94b..914618a76bbb7eebe37bb317ce9f85038798c835 100644
--- a/java/res/xml/rowkeys_hindi1.xml
+++ b/java/res/xml/rowkeys_hindi1.xml
@@ -28,38 +28,38 @@
             <!-- U+0914: "औ" DEVANAGARI LETTER AU
                  U+0912/U+0902: "ऒं" DEVANAGARI LETTER SHORT O//DEVANAGARI SIGN ANUSVARA -->
             <Key
-                latin:keyLabel="&#x0914;"
+                latin:keySpec="&#x0914;"
                 latin:moreKeys="&#x0912;&#x0902;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0910: "ऐ" DEVANAGARI LETTER AI
                  U+0910/U+0902: "ऐं" DEVANAGARI LETTER AI/DEVANAGARI SIGN ANUSVARA -->
             <Key
-                latin:keyLabel="&#x0910;"
+                latin:keySpec="&#x0910;"
                 latin:moreKeys="&#x0910;&#x0902;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0906: "आ" DEVANAGARI LETTER AA
                  U+0906/U+0902: "आं" DEVANAGARI LETTER AA/DEVANAGARI SIGN ANUSVARA
                  U+0906/U+0901: "आँ" DEVANAGARI LETTER AA/DEVANAGARI SIGN CANDRABINDU -->
             <Key
-                latin:keyLabel="&#x0906;"
+                latin:keySpec="&#x0906;"
                 latin:moreKeys="&#x0906;&#x0902;,&#x0906;&#x0901;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0908: "ई" DEVANAGARI LETTER II
                  U+0908/U+0902: "ईं" DEVANAGARI LETTER II/DEVANAGARI SIGN ANUSVARA -->
             <Key
-                latin:keyLabel="&#x0908;"
+                latin:keySpec="&#x0908;"
                 latin:moreKeys="&#x0908;&#x0902;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+090A: "ऊ" DEVANAGARI LETTER UU
                  U+090A/U+0902: "ऊं" DEVANAGARI LETTER UU/DEVANAGARI SIGN ANUSVARA
                  U+090A/U+0901: "ऊँ" DEVANAGARI LETTER UU/DEVANAGARI SIGN CANDRABINDU -->
             <Key
-                latin:keyLabel="&#x090A;"
+                latin:keySpec="&#x090A;"
                 latin:moreKeys="&#x090A;&#x0902;,&#x090A;&#x0901;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+092D: "भ" DEVANAGARI LETTER BHA -->
             <Key
-                latin:keyLabel="&#x092D;"
+                latin:keySpec="&#x092D;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -70,22 +70,22 @@
                 latin:keyStyle="baseKeyDevanagariSignVisarga" />
             <!-- U+0918: "घ" DEVANAGARI LETTER GHA -->
             <Key
-                latin:keyLabel="&#x0918;"
+                latin:keySpec="&#x0918;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0927: "ध" DEVANAGARI LETTER DHA
                  U+0915/U+094D/U+0937: "क्ष" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER SSA
                  U+0936/U+094D/U+0930: "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA -->
             <Key
-                latin:keyLabel="&#x0927;"
+                latin:keySpec="&#x0927;"
                 latin:moreKeys="&#x0915;&#x094D;&#x0937;,&#x0936;&#x094D;&#x0930;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+091D: "झ" DEVANAGARI LETTER JHA -->
             <Key
-                latin:keyLabel="&#x091D;"
+                latin:keySpec="&#x091D;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0922: "ढ" DEVANAGARI LETTER DDHA -->
             <Key
-                latin:keyLabel="&#x0922;"
+                latin:keySpec="&#x0922;"
                 latin:keyLabelFlags="fontNormal" />
         </case>
         <default>
@@ -143,7 +143,7 @@
                  U+096C: "६" DEVANAGARI DIGIT SIX
                  U+092C/U+0952: "ब॒" DEVANAGARI LETTER BA/DEVANAGARI STRESS SIGN ANUDATTA -->
             <Key
-                latin:keyLabel="&#x092C;"
+                latin:keySpec="&#x092C;"
                 latin:moreKeys="&#x092C;&#x0952;,%"
                 latin:keyHintLabel="6"
                 latin:additionalMoreKeys="&#x096C;,6"
@@ -151,7 +151,7 @@
             <!-- U+0939: "ह" DEVANAGARI LETTER HA
                  U+096D: "७" DEVANAGARI DIGIT SEVEN -->
             <Key
-                latin:keyLabel="&#x0939;"
+                latin:keySpec="&#x0939;"
                 latin:keyHintLabel="7"
                 latin:additionalMoreKeys="&#x096D;,7"
                 latin:keyLabelFlags="fontNormal" />
@@ -161,7 +161,7 @@
                  U+0917/U+0952: "ग॒" DEVANAGARI LETTER GA/DEVANAGARI STRESS SIGN ANUDATTA
                  U+096E: "८" DEVANAGARI DIGIT EIGHT -->
             <Key
-                latin:keyLabel="&#x0917;"
+                latin:keySpec="&#x0917;"
                 latin:moreKeys="&#x091C;&#x094D;&#x091E;,&#x0917;&#x093C;,&#x0917;&#x0952;,%"
                 latin:keyHintLabel="8"
                 latin:additionalMoreKeys="&#x096E;,8"
@@ -169,7 +169,7 @@
             <!-- U+0926: "द" DEVANAGARI LETTER DA
                  U+096F: "९" DEVANAGARI DIGIT NINE -->
             <Key
-                latin:keyLabel="&#x0926;"
+                latin:keySpec="&#x0926;"
                 latin:keyHintLabel="9"
                 latin:additionalMoreKeys="&#x096F;,9"
                 latin:keyLabelFlags="fontNormal" />
@@ -179,7 +179,7 @@
                  U+091C/U+093C: "ज़" DEVANAGARI LETTER JA/DEVANAGARI SIGN NUKTA
                  U+0966: "०" DEVANAGARI DIGIT ZERO -->
             <Key
-                latin:keyLabel="&#x091C;"
+                latin:keySpec="&#x091C;"
                 latin:moreKeys="&#x091C;&#x0952;,&#x091C;&#x094D;&#x091E;,&#x091C;&#x093C;,%"
                 latin:keyHintLabel="0"
                 latin:additionalMoreKeys="&#x0966;,0"
@@ -188,7 +188,7 @@
                  U+0921/U+0952: "ड॒" DEVANAGARI LETTER DDA/DEVANAGARI STRESS SIGN ANUDATTA
                  U+0921/U+093C: "ड़" DEVANAGARI LETTER DDA/DEVANAGARI SIGN NUKTA -->
             <Key
-                latin:keyLabel="&#x0921;"
+                latin:keySpec="&#x0921;"
                 latin:moreKeys="&#x0921;&#x0952;,&#x0921;&#x093C;"
                 latin:keyLabelFlags="fontNormal" />
          </default>
diff --git a/java/res/xml/rowkeys_hindi2.xml b/java/res/xml/rowkeys_hindi2.xml
index 70ac66ee454b5aa35ff6da7765cd997e2b30c177..7ba4ee1ecea7fcdfc52c0fd04c29317aa2c5df0f 100644
--- a/java/res/xml/rowkeys_hindi2.xml
+++ b/java/res/xml/rowkeys_hindi2.xml
@@ -30,7 +30,7 @@
                  U+0911: "ऑ" DEVANAGARI LETTER CANDRA O
                  U+0912: "ऒ" DEVANAGARI LETTER SHORT O -->
             <Key
-                latin:keyLabel="&#x0913;"
+                latin:keySpec="&#x0913;"
                 latin:moreKeys="&#x0913;&#x0902;,&#x0911;,&#x0912;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+090F: "ए" DEVANAGARI LETTER E
@@ -39,60 +39,60 @@
                  U+090D: "ऍ" DEVANAGARI LETTER CANDRA E
                  U+090E: "ऎ" DEVANAGARI LETTER SHORT E -->
             <Key
-                latin:keyLabel="&#x090F;"
+                latin:keySpec="&#x090F;"
                 latin:moreKeys="&#x090F;&#x0902;,&#x090F;&#x0901;,&#x090D;,&#x090E;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0905: "अ" DEVANAGARI LETTER A
                  U+0905/U+0902: "अं" DEVANAGARI LETTER A/DEVANAGARI SIGN ANUSVARA
                  U+0905/U+0901: "अँ" DEVANAGARI LETTER A/DEVANAGARI SIGN CANDRABINDU -->
             <Key
-                latin:keyLabel="&#x0905;"
+                latin:keySpec="&#x0905;"
                 latin:moreKeys="&#x0905;&#x0902;,&#x0905;&#x0901;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0907: "इ" DEVANAGARI LETTER I
                  U+0907/U+0902: "इं" DEVANAGARI LETTER I/DEVANAGARI SIGN ANUSVARA
                  U+0907/U+0901: "इं" DEVANAGARI LETTER I/DEVANAGARI SIGN CANDRABINDU -->
             <Key
-                latin:keyLabel="&#x0907;"
+                latin:keySpec="&#x0907;"
                 latin:moreKeys="&#x0907;&#x0902;,&#x0907;&#x0901;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0909: "उ" DEVANAGARI LETTER U
                  U+0909/U+0902: "उं" DEVANAGARI LETTER U/DEVANAGARI SIGN ANUSVARA
                  U+0909/U+0901: "उँ" DEVANAGARI LETTER U/DEVANAGARI SIGN CANDRABINDU -->
             <Key
-                latin:keyLabel="&#x0909;"
+                latin:keySpec="&#x0909;"
                 latin:moreKeys="&#x0909;&#x0902;,&#x0909;&#x0901;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+092B: "फ" DEVANAGARI LETTER PHA
                  U+092B/U+093C: "फ़" DEVANAGARI LETTER PHA/DEVANAGARI SIGN NUKTA -->
             <Key
-                latin:keyLabel="&#x092B;"
+                latin:keySpec="&#x092B;"
                 latin:moreKeys="&#x092B;&#x093C;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0931: "ऱ" DEVANAGARI LETTER RRA
                  U+094D/U+0930: "्र" DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA
                  U+0930/U+094D: "र्" DEVANAGARI LETTER RA/DEVANAGARI SIGN VIRAMA -->
             <Key
-                latin:keyLabel="&#x0931;"
+                latin:keySpec="&#x0931;"
                 latin:moreKeys="&#x094D;&#x0930;,&#x0930;&#x094D;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0916: "ख" DEVANAGARI LETTER KHA
                  U+0916/U+093C: "ख़" DEVANAGARI LETTER KHA/DEVANAGARI SIGN NUKTA -->
             <Key
-                latin:keyLabel="&#x0916;"
+                latin:keySpec="&#x0916;"
                 latin:moreKeys="&#x0916;&#x093C;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0925: "थ" DEVANAGARI LETTER THA -->
             <Key
-                latin:keyLabel="&#x0925;"
+                latin:keySpec="&#x0925;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+091B: "छ" DEVANAGARI LETTER CHA -->
             <Key
-                latin:keyLabel="&#x091B;"
+                latin:keySpec="&#x091B;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0920: "ठ" DEVANAGARI LETTER TTHA -->
             <Key
-                latin:keyLabel="&#x0920;"
+                latin:keySpec="&#x0920;"
                 latin:keyLabelFlags="fontNormal" />
         </case>
         <default>
@@ -133,35 +133,35 @@
                 latin:keyStyle="baseKeyDevanagariVowelSignU" />
             <!-- U+092A: "प" DEVANAGARI LETTER PA -->
             <Key
-                latin:keyLabel="&#x092A;"
+                latin:keySpec="&#x092A;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0930: "र" DEVANAGARI LETTER RA
                  U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R
                  U+0930/U+093C: "ऱ" DEVANAGARI LETTER RA/DEVANAGARI SIGN NUKTA
                  U+0960: "ॠ" DEVANAGARI LETTER VOCALIC RR -->
             <Key
-                latin:keyLabel="&#x0930;"
+                latin:keySpec="&#x0930;"
                 latin:moreKeys="&#x090B;,&#x0930;&#x093C;,&#x0960;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0915: "क" DEVANAGARI LETTER KA
                  U+0915/U+093C: "क़" DEVANAGARI LETTER KA/DEVANAGARI SIGN NUKTA -->
             <Key
-                latin:keyLabel="&#x0915;"
+                latin:keySpec="&#x0915;"
                 latin:moreKeys="&#x0915;&#x093C;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0924: "त" DEVANAGARI LETTER TA
                  U+0924/U+094D/U+0930: "त्र" DEVANAGARI LETTER TA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA -->
             <Key
-                latin:keyLabel="&#x0924;"
+                latin:keySpec="&#x0924;"
                 latin:moreKeys="&#x0924;&#x094D;&#x0930;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+091A: "च" DEVANAGARI LETTER CA -->
             <Key
-                latin:keyLabel="&#x091A;"
+                latin:keySpec="&#x091A;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+091F: "ट" DEVANAGARI LETTER TTA -->
             <Key
-                latin:keyLabel="&#x091F;"
+                latin:keySpec="&#x091F;"
                 latin:keyLabelFlags="fontNormal" />
          </default>
     </switch>
diff --git a/java/res/xml/rowkeys_hindi3.xml b/java/res/xml/rowkeys_hindi3.xml
index 136bc5f228970555d0ca68f3f440f3e594ab9596..a9be47266840144ca6c52bc20e7cb9c05fca13e5 100644
--- a/java/res/xml/rowkeys_hindi3.xml
+++ b/java/res/xml/rowkeys_hindi3.xml
@@ -27,7 +27,7 @@
         >
             <!-- U+0911: "ऑ" DEVANAGARI LETTER CANDRA O -->
             <Key
-                latin:keyLabel="&#x0911;"
+                latin:keySpec="&#x0911;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -36,24 +36,24 @@
                 latin:keyboardLayout="@xml/key_devanagari_sign_candrabindu" />
             <!-- U+0923: "ण" DEVANAGARI LETTER NNA -->
             <Key
-                latin:keyLabel="&#x0923;"
+                latin:keySpec="&#x0923;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0929: "ऩ" DEVANAGARI LETTER NNNA -->
             <Key
-                latin:keyLabel="&#x0929;" />
+                latin:keySpec="&#x0929;" />
             <!-- U+0933: "ळ" DEVANAGARI LETTER LLA
                  U+0934: "ऴ" DEVANAGARI LETTER LLLA -->
             <Key
-                latin:keyLabel="&#x0933;"
+                latin:keySpec="&#x0933;"
                 latin:moreKeys="&#x0934;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0936: "श" DEVANAGARI LETTER SHA -->
             <Key
-                latin:keyLabel="&#x0936;"
+                latin:keySpec="&#x0936;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0937: "ष" DEVANAGARI LETTER SSA -->
             <Key
-                latin:keyLabel="&#x0937;"
+                latin:keySpec="&#x0937;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -62,7 +62,7 @@
                 latin:keyboardLayout="@xml/key_devanagari_vowel_sign_vocalic_r" />
             <!-- U+091E: "ञ" DEVANAGARI LETTER NYA -->
             <Key
-                latin:keyLabel="&#x091E;"
+                latin:keySpec="&#x091E;"
                 latin:keyLabelFlags="fontNormal" />
         </case>
         <default>
@@ -76,7 +76,7 @@
             <!-- U+092E: "म" DEVANAGARI LETTER MA
                  U+0950: "ॐ" DEVANAGARI OM -->
             <Key
-                latin:keyLabel="&#x092E;"
+                latin:keySpec="&#x092E;"
                 latin:moreKeys="&#x0950;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0928: "न" DEVANAGARI LETTER NA
@@ -84,28 +84,28 @@
                  U+0919: "ङ" DEVANAGARI LETTER NGA
                  U+0928/U+093C: "ऩ" DEVANAGARI LETTER NA/DEVANAGARI SIGN NUKTA -->
             <Key
-                latin:keyLabel="&#x0928;"
+                latin:keySpec="&#x0928;"
                 latin:moreKeys="&#x091E;,&#x0919;,&#x0928;&#x093C;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0935: "व" DEVANAGARI LETTER VA -->
             <Key
-                latin:keyLabel="&#x0935;"
+                latin:keySpec="&#x0935;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0932: "ल" DEVANAGARI LETTER LA
                  U+090C: "ऌ" DEVANAGARI LETTER VOCALIC L
                  U+0961: "ॡ" DEVANAGARI LETTER VOCALIC LL -->
             <Key
-                latin:keyLabel="&#x0932;"
+                latin:keySpec="&#x0932;"
                 latin:moreKeys="&#x090C;,&#x0961;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0938: "स" DEVANAGARI LETTER SA -->
             <Key
-                latin:keyLabel="&#x0938;"
+                latin:keySpec="&#x0938;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+092F: "य" DEVANAGARI LETTER YA
                  U+095F: "य़" DEVANAGARI LETTER YYA -->
             <Key
-                latin:keyLabel="&#x092F;"
+                latin:keySpec="&#x092F;"
                 latin:moreKeys="&#x095F;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
diff --git a/java/res/xml/rowkeys_khmer1.xml b/java/res/xml/rowkeys_khmer1.xml
index 05d1a864a5f4e73b4803293446af559f2a6fede3..567c6aff0b0496d3f2de4445c36bb330b0d44213 100644
--- a/java/res/xml/rowkeys_khmer1.xml
+++ b/java/res/xml/rowkeys_khmer1.xml
@@ -27,79 +27,79 @@
         >
             <!-- U+200D: ZERO WIDTH JOINER -->
             <Key
-                latin:keyLabel="!"
+                latin:keySpec="!"
                 latin:moreKeys="!icon/zwj_key|&#x200D;" />
             <!-- U+17D7: "ៗ" KHMER SIGN LEK TOO
                  U+200C: ZERO WIDTH NON-JOINER -->
             <Key
-                latin:keyLabel="&#x17D7;"
+                latin:keySpec="&#x17D7;"
                 latin:moreKeys="!icon/zwnj_key|&#x200C;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17D1: "៑" KHMER SIGN VIRIAM -->
             <Key
-                latin:keyLabel="&quot;"
+                latin:keySpec="&quot;"
                 latin:keyHintLabel="&#x17D1;"
                 latin:moreKeys="&#x17D1;" />
             <!-- U+17DB: "៛" KHMER CURRENCY SYMBOL RIEL
                  U+20AC: "€" EURO SIGN -->
             <Key
-                latin:keyLabel="&#x17DB;"
+                latin:keySpec="&#x17DB;"
                 latin:keyHintLabel="$"
                 latin:moreKeys="$,&#x20AC;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17D6: "៖" KHMER SIGN CAMNUC PII KUUH -->
             <Key
-                latin:keyLabel="%"
+                latin:keySpec="%"
                 latin:keyHintLabel="&#x17D6;"
                 latin:moreKeys="&#x17D6;" />
             <!-- U+17CD: "៍" KHMER SIGN TOANDAKHIAT
                  U+17D9: "៙" KHMER SIGN PHNAEK MUAN -->
             <Key
-                latin:keyLabel="&#x17CD;"
+                latin:keySpec="&#x17CD;"
                 latin:keyHintLabel="&#x17D9;"
                 latin:moreKeys="&#x17D9;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17D0: "័" KHMER SIGN SAMYOK SANNYA
                  U+17DA: "៚" KHMER SIGN KOOMUUT -->
             <Key
-                latin:keyLabel="&#x17D0;"
+                latin:keySpec="&#x17D0;"
                 latin:keyHintLabel="&#x17DA;"
                 latin:keyHintLabelVerticalAdjustment="-30%"
                 latin:moreKeys="&#x17DA;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17CF: "៏" KHMER SIGN AHSDA -->
             <Key
-                latin:keyLabel="&#x17CF;"
+                latin:keySpec="&#x17CF;"
                 latin:keyHintLabel="*"
                 latin:moreKeys="*"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -->
             <Key
-                latin:keyLabel="("
+                latin:keySpec="("
                 latin:keyHintLabel="{"
                 latin:moreKeys="{,&#x00AB;" />
             <!-- U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
             <Key
-                latin:keyLabel=")"
+                latin:keySpec=")"
                 latin:keyHintLabel="}"
                 latin:moreKeys="},&#x00BB;" />
             <!-- U+17CC: "៌" KHMER SIGN ROBAT
                  U+00D7: "×" MULTIPLICATION SIGN -->
             <Key
-                latin:keyLabel="&#x17CC;"
+                latin:keySpec="&#x17CC;"
                 latin:keyHintLabel="&#x00D7;"
                 latin:moreKeys="&#x00D7;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17CE: "៎" KHMER SIGN KAKABAT -->
             <Key
-                latin:keyLabel="&#x17CE;"
+                latin:keySpec="&#x17CE;"
                 latin:keyLabelFlags="fontNormal" />
         </case>
         <default>
             <!-- U+17E1: "១" KHMER DIGIT ONE
                  U+17F1: "៱" KHMER SYMBOL LEK ATTAK MUOY -->
             <Key
-                latin:keyLabel="&#x17E1;"
+                latin:keySpec="&#x17E1;"
                 latin:keyHintLabel="1"
                 latin:additionalMoreKeys="1"
                 latin:moreKeys="&#x17F1;"
@@ -107,7 +107,7 @@
             <!-- U+17E2: "២" KHMER DIGIT TWO
                  U+17F2: "៲" KHMER SYMBOL LEK ATTAK PII -->
             <Key
-                latin:keyLabel="&#x17E2;"
+                latin:keySpec="&#x17E2;"
                 latin:keyHintLabel="2"
                 latin:additionalMoreKeys="2"
                 latin:moreKeys="&#x17F2;"
@@ -115,7 +115,7 @@
             <!-- U+17E3: "៣" KHMER DIGIT THREE
                  U+17F3: "៳" KHMER SYMBOL LEK ATTAK BEI -->
             <Key
-                latin:keyLabel="&#x17E3;"
+                latin:keySpec="&#x17E3;"
                 latin:keyHintLabel="3"
                 latin:additionalMoreKeys="3"
                 latin:moreKeys="&#x17F3;"
@@ -123,7 +123,7 @@
             <!-- U+17E4: "៤" KHMER DIGIT FOUR
                  U+17F4: "៴" KHMER SYMBOL LEK ATTAK BUON -->
             <Key
-                latin:keyLabel="&#x17E4;"
+                latin:keySpec="&#x17E4;"
                 latin:keyHintLabel="4"
                 latin:additionalMoreKeys="4"
                 latin:moreKeys="&#x17F4;"
@@ -131,7 +131,7 @@
             <!-- U+17E5: "៥" KHMER DIGIT FIVE
                  U+17F5: "៵" KHMER SYMBOL LEK ATTAK PRAM -->
             <Key
-                latin:keyLabel="&#x17E5;"
+                latin:keySpec="&#x17E5;"
                 latin:keyHintLabel="5"
                 latin:additionalMoreKeys="5"
                 latin:moreKeys="&#x17F5;"
@@ -139,7 +139,7 @@
             <!-- U+17E6: "៦" KHMER DIGIT SIX
                  U+17F6: "៶" KHMER SYMBOL LEK ATTAK PRAM-MUOY -->
             <Key
-                latin:keyLabel="&#x17E6;"
+                latin:keySpec="&#x17E6;"
                 latin:keyHintLabel="6"
                 latin:additionalMoreKeys="6"
                 latin:moreKeys="&#x17F6;"
@@ -147,7 +147,7 @@
             <!-- U+17E7: "៧" KHMER DIGIT SEVEN
                  U+17F7: "៷" KHMER SYMBOL LEK ATTAK PRAM-PII -->
             <Key
-                latin:keyLabel="&#x17E7;"
+                latin:keySpec="&#x17E7;"
                 latin:keyHintLabel="7"
                 latin:additionalMoreKeys="7"
                 latin:moreKeys="&#x17F7;"
@@ -155,7 +155,7 @@
             <!-- U+17E8: "៨" KHMER DIGIT EIGHT
                  U+17F8: "៸" KHMER SYMBOL LEK ATTAK PRAM-BEI -->
             <Key
-                latin:keyLabel="&#x17E8;"
+                latin:keySpec="&#x17E8;"
                 latin:keyHintLabel="8"
                 latin:additionalMoreKeys="8"
                 latin:moreKeys="&#x17F8;"
@@ -163,7 +163,7 @@
             <!-- U+17E9: "៩" KHMER DIGIT NINE
                  U+17F9: "៹" KHMER SYMBOL LEK ATTAK PRAM-BUON -->
             <Key
-                latin:keyLabel="&#x17E9;"
+                latin:keySpec="&#x17E9;"
                 latin:keyHintLabel="9"
                 latin:additionalMoreKeys="9"
                 latin:moreKeys="&#x17F9;"
@@ -171,7 +171,7 @@
             <!-- U+17E0: "០" KHMER DIGIT ZERO
                  U+17F0: "៰" KHMER SYMBOL LEK ATTAK SON -->
             <Key
-                latin:keyLabel="&#x17E0;"
+                latin:keySpec="&#x17E0;"
                 latin:keyHintLabel="0"
                 latin:additionalMoreKeys="0"
                 latin:moreKeys="&#x17F0;"
@@ -179,14 +179,14 @@
             <!-- U+17A5: "ឥ" KHMER INDEPENDENT VOWEL QI
                  U+17A6: "ឦ" KHMER INDEPENDENT VOWEL QII -->
             <Key
-                latin:keyLabel="&#x17A5;"
+                latin:keySpec="&#x17A5;"
                 latin:keyHintLabel="&#x17A6;"
                 latin:moreKeys=",&#x17A6;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17B2: "áž²" KHMER INDEPENDENT VOWEL QOO TYPE TWO
                  U+17B1: "áž±" KHMER INDEPENDENT VOWEL QOO TYPE ONE -->
             <Key
-                latin:keyLabel="&#x17B2;"
+                latin:keySpec="&#x17B2;"
                 latin:keyHintLabel="&#x17B1;"
                 latin:moreKeys="&#x17B1;"
                 latin:keyLabelFlags="fontNormal" />
diff --git a/java/res/xml/rowkeys_khmer2.xml b/java/res/xml/rowkeys_khmer2.xml
index 801f23ff64b607ea92adcb03c9f8d97e19b70df2..4146895f716c7c7fc4787cab703248c997907b45 100644
--- a/java/res/xml/rowkeys_khmer2.xml
+++ b/java/res/xml/rowkeys_khmer2.xml
@@ -28,106 +28,106 @@
             <!-- U+1788: "ឈ" KHMER LETTER CHO
                  U+17DC: "ៜ" KHMER SIGN AVAKRAHASANYA -->
             <Key
-                latin:keyLabel="&#x1788;"
+                latin:keySpec="&#x1788;"
                 latin:keyHintLabel="&#x17DC;"
                 latin:moreKeys="&#x17DC;"
                 latin:keyLabelFlags="fontNormal|autoScale" />
             <!-- U+17BA: "ឺ" KHMER VOWEL SIGN YY
                  U+17DD: "៝" KHMER SIGN ATTHACAN -->
             <Key
-                latin:keyLabel="&#x17BA;"
+                latin:keySpec="&#x17BA;"
                 latin:keyHintLabel="&#x17DD;"
                 latin:keyHintLabelVerticalAdjustment="40%"
                 latin:moreKeys="&#x17DD;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17C2: "ែ" KHMER VOWEL SIGN AE -->
             <Key
-                latin:keyLabel="&#x17C2;"
+                latin:keySpec="&#x17C2;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17AC: "ឬ" KHMER INDEPENDENT VOWEL RYY
                  U+17AB: "áž«" KHMER INDEPENDENT VOWEL RY -->
             <Key
-                latin:keyLabel="&#x17AC;"
+                latin:keySpec="&#x17AC;"
                 latin:keyHintLabel="&#x17AB;"
                 latin:moreKeys="&#x17AB;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+1791: "áž‘" KHMER LETTER TO -->
             <Key
-                latin:keyLabel="&#x1791;"
+                latin:keySpec="&#x1791;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17BD: "áž½" KHMER VOWEL SIGN UA -->
             <Key
-                latin:keyLabel="&#x17BD;"
+                latin:keySpec="&#x17BD;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17BC: "áž¼" KHMER VOWEL SIGN UU -->
             <Key
-                latin:keyLabel="&#x17BC;"
+                latin:keySpec="&#x17BC;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17B8: "ី" KHMER VOWEL SIGN II -->
             <Key
-                latin:keyLabel="&#x17B8;"
+                latin:keySpec="&#x17B8;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17C5: "ៅ" KHMER VOWEL SIGN AU -->
             <Key
-                latin:keyLabel="&#x17C5;"
+                latin:keySpec="&#x17C5;"
                 latin:keyLabelFlags="fontNormal|autoScale" />
             <!-- U+1797: "áž—" KHMER LETTER PHO -->
             <Key
-                latin:keyLabel="&#x1797;"
+                latin:keySpec="&#x1797;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17BF: "áž¿" KHMER VOWEL SIGN YA -->
             <Key
-                latin:keyLabel="&#x17BF;"
+                latin:keySpec="&#x17BF;"
                 latin:keyLabelFlags="fontNormal|autoScale" />
             <!-- U+17B0: "áž°" KHMER INDEPENDENT VOWEL QAI -->
             <Key
-                latin:keyLabel="&#x17B0;"
+                latin:keySpec="&#x17B0;"
                 latin:keyLabelFlags="fontNormal" />
         </case>
         <default>
             <!-- U+1786: "ឆ" KHMER LETTER CHA -->
             <Key
-                latin:keyLabel="&#x1786;"
+                latin:keySpec="&#x1786;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17B9: "áž¹" KHMER VOWEL SIGN Y -->
             <Key
-                latin:keyLabel="&#x17B9;"
+                latin:keySpec="&#x17B9;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17C1: "េ" KHMER VOWEL SIGN E -->
             <Key
-                latin:keyLabel="&#x17C1;"
+                latin:keySpec="&#x17C1;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+179A: "ážš" KHMER LETTER RO -->
             <Key
-                latin:keyLabel="&#x179A;"
+                latin:keySpec="&#x179A;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+178F: "ត" KHMER LETTER TA -->
             <Key
-                latin:keyLabel="&#x178F;"
+                latin:keySpec="&#x178F;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+1799: "áž™" KHMER LETTER YO -->
             <Key
-                latin:keyLabel="&#x1799;"
+                latin:keySpec="&#x1799;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17BB: "áž»" KHMER VOWEL SIGN U -->
             <Key
-                latin:keyLabel="&#x17BB;"
+                latin:keySpec="&#x17BB;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17B7: "áž·" KHMER VOWEL SIGN I -->
             <Key
-                latin:keyLabel="&#x17B7;"
+                latin:keySpec="&#x17B7;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17C4: "ោ" KHMER VOWEL SIGN OO -->
             <Key
-                latin:keyLabel="&#x17C4;"
+                latin:keySpec="&#x17C4;"
                 latin:keyLabelFlags="fontNormal|autoScale" />
             <!-- U+1795: "áž•" KHMER LETTER PHA -->
             <Key
-                latin:keyLabel="&#x1795;"
+                latin:keySpec="&#x1795;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17C0: "ៀ" KHMER VOWEL SIGN IE -->
             <Key
-                latin:keyLabel="&#x17C0;"
+                latin:keySpec="&#x17C0;"
                 latin:keyLabelFlags="fontNormal|autoScale" />
             <!-- U+17AA: "ឪ" KHMER INDEPENDENT VOWEL QUUV
                  U+17A7: "áž§" KHMER INDEPENDENT VOWEL QU
@@ -136,7 +136,7 @@
                  U+17A9: "áž©" KHMER INDEPENDENT VOWEL QUU
                  U+17A8: "ឨ" KHMER INDEPENDENT VOWEL QUK -->
             <Key
-                latin:keyLabel="&#x17AA;"
+                latin:keySpec="&#x17AA;"
                 latin:keyHintLabel="&#x17A7;"
                 latin:moreKeys="&#x17A7;,&#x17B1;,&#x17B3;,&#x17A9;,&#x17A8;"
                 latin:keyLabelFlags="fontNormal" />
diff --git a/java/res/xml/rowkeys_khmer3.xml b/java/res/xml/rowkeys_khmer3.xml
index f35ba5c566731245797181152ce6a41567d130b1..7a2efa7da61a9fbb3ffaf3acf337c13bc0adbe29 100644
--- a/java/res/xml/rowkeys_khmer3.xml
+++ b/java/res/xml/rowkeys_khmer3.xml
@@ -27,109 +27,109 @@
         >
             <!-- U+17B6/U+17C6: "ាំ" KHMER VOWEL SIGN AA/KHMER SIGN NIKAHIT -->
             <Key
-                latin:keyLabel="&#x17B6;&#x17C6;"
+                latin:keySpec="&#x17B6;&#x17C6;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+17C3: "ៃ" KHMER VOWEL SIGN AI -->
             <Key
-                latin:keyLabel="&#x17C3;"
+                latin:keySpec="&#x17C3;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+178C: "ឌ" KHMER LETTER DO -->
             <Key
-                latin:keyLabel="&#x178C;"
+                latin:keySpec="&#x178C;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+1792: "áž’" KHMER LETTER THO -->
             <Key
-                latin:keyLabel="&#x1792;"
+                latin:keySpec="&#x1792;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17A2: "អ" KHMER LETTER QA -->
             <Key
-                latin:keyLabel="&#x17A2;"
+                latin:keySpec="&#x17A2;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17C7: "ះ" KHMER SIGN REAHMUK
                  U+17C8: "ៈ" KHMER SIGN YUUKALEAPINTU;-->
             <Key
-                latin:keyLabel="&#x17C7;"
+                latin:keySpec="&#x17C7;"
                 latin:keyHintLabel="&#x17C8;"
                 latin:moreKeys="&#x17C8;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+1789: "ញ" KHMER LETTER NYO -->
             <Key
-                latin:keyLabel="&#x1789;"
+                latin:keySpec="&#x1789;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+1782: "áž‚" KHMER LETTER KO
                  U+179D: "ឝ" KHMER LETTER SHA -->
             <Key
-                latin:keyLabel="&#x1782;"
+                latin:keySpec="&#x1782;"
                 latin:keyHintLabel="&#x179D;"
                 latin:moreKeys="&#x179D;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17A1: "áž¡" KHMER LETTER LA -->
             <Key
-                latin:keyLabel="&#x17A1;"
+                latin:keySpec="&#x17A1;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17C4/U+17C7: "ោះ" KHMER VOWEL SIGN OO/KHMER SIGN REAHMUK -->
             <Key
-                latin:keyLabel="&#x17C4;&#x17C7;"
+                latin:keySpec="&#x17C4;&#x17C7;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio|autoScale" />
             <!-- U+17C9: "៉" KHMER SIGN MUUSIKATOAN -->
             <Key
-                latin:keyLabel="&#x17C9;"
+                latin:keySpec="&#x17C9;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17AF: "ឯ" KHMER INDEPENDENT VOWEL QE -->
             <Key
-                latin:keyLabel="&#x17AF;"
+                latin:keySpec="&#x17AF;"
                 latin:keyLabelFlags="fontNormal" />
         </case>
         <default>
             <!-- U+17B6: "áž¶" KHMER VOWEL SIGN AA -->
             <Key
-                latin:keyLabel="&#x17B6;"
+                latin:keySpec="&#x17B6;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+179F: "ស" KHMER LETTER SA -->
             <Key
-                latin:keyLabel="&#x179F;"
+                latin:keySpec="&#x179F;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+178A: "ដ" KHMER LETTER DA -->
             <Key
-                latin:keyLabel="&#x178A;"
+                latin:keySpec="&#x178A;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+1790: "ថ" KHMER LETTER THA -->
             <Key
-                latin:keyLabel="&#x1790;"
+                latin:keySpec="&#x1790;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+1784: "áž„" KHMER LETTER NGO -->
             <Key
-                latin:keyLabel="&#x1784;"
+                latin:keySpec="&#x1784;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17A0: "áž " KHMER LETTER HA -->
             <Key
-                latin:keyLabel="&#x17A0;"
+                latin:keySpec="&#x17A0;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17D2: "្" KHMER SIGN COENG -->
             <Key
-                latin:keyLabel="&#x17D2;"
+                latin:keySpec="&#x17D2;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+1780: "ក" KHMER LETTER KA -->
             <Key
-                latin:keyLabel="&#x1780;"
+                latin:keySpec="&#x1780;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+179B: "áž›" KHMER LETTER LO -->
             <Key
-                latin:keyLabel="&#x179B;"
+                latin:keySpec="&#x179B;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17BE: "áž¾" KHMER VOWEL SIGN OE -->
             <Key
-                latin:keyLabel="&#x17BE;"
+                latin:keySpec="&#x17BE;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17CB: "់" KHMER SIGN BANTOC -->
             <Key
-                latin:keyLabel="&#x17CB;"
+                latin:keySpec="&#x17CB;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17AE: "áž®" KHMER INDEPENDENT VOWEL LYY
                  U+17AD: "áž­" KHMER INDEPENDENT VOWEL LY
                  U+17B0: "áž°" KHMER INDEPENDENT VOWEL QAI -->
             <Key
-                latin:keyLabel="&#x17AE;"
+                latin:keySpec="&#x17AE;"
                 latin:keyHintLabel="&#x17AD;"
                 latin:moreKeys="&#x17AD;,&#x17B0;"
                 latin:keyLabelFlags="fontNormal" />
diff --git a/java/res/xml/rowkeys_khmer4.xml b/java/res/xml/rowkeys_khmer4.xml
index 598aed8d5e96e8ec91f8a88bfc334189467857d1..5523d86b7a58906e965af7f1b951dc1d45720ed3 100644
--- a/java/res/xml/rowkeys_khmer4.xml
+++ b/java/res/xml/rowkeys_khmer4.xml
@@ -27,86 +27,86 @@
         >
             <!-- U+178D: "ឍ" KHMER LETTER TTHO -->
             <Key
-                latin:keyLabel="&#x178D;"
+                latin:keySpec="&#x178D;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+1783: "ឃ" KHMER LETTER KHO -->
             <Key
-                latin:keyLabel="&#x1783;"
+                latin:keySpec="&#x1783;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+1787: "ជ" KHMER LETTER CO -->
             <Key
-                latin:keyLabel="&#x1787;"
+                latin:keySpec="&#x1787;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17C1/U+17C7: "េះ" KHMER VOWEL SIGN E/KHMER SIGN REAHMUK -->
             <Key
-                latin:keyLabel="&#x17C1;&#x17C7;"
+                latin:keySpec="&#x17C1;&#x17C7;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio|autoScale" />
             <!-- U+1796: "áž–" KHMER LETTER PO
                  U+179E: "ážž" KHMER LETTER SSO -->
             <Key
-                latin:keyLabel="&#x1796;"
+                latin:keySpec="&#x1796;"
                 latin:keyHintLabel="&#x179E;"
                 latin:moreKeys="&#x179E;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+178E: "ណ" KHMER LETTER NNO -->
             <Key
-                latin:keyLabel="&#x178E;"
+                latin:keySpec="&#x178E;"
                 latin:keyLabelFlags="fontNormal|autoScale" />
             <!-- U+17C6: "ំ" KHMER SIGN NIKAHIT -->
             <Key
-                latin:keyLabel="&#x17C6;"
+                latin:keySpec="&#x17C6;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17BB/U+17C7: "ុះ" KHMER VOWEL SIGN U/KHMER SIGN REAHMUK -->
             <Key
-                latin:keyLabel="&#x17BB;&#x17C7;"
+                latin:keySpec="&#x17BB;&#x17C7;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+17D5: "៕" KHMER SIGN BARIYOOSAN -->
             <Key
-                latin:keyLabel="&#x17D5;"
+                latin:keySpec="&#x17D5;"
                 latin:keyLabelFlags="fontNormal" />
             <Key
-                latin:keyLabel="\?" />
+                latin:keySpec="\?" />
         </case>
         <default>
             <!-- U+178B: "áž‹" KHMER LETTER TTHA -->
             <Key
-                latin:keyLabel="&#x178B;"
+                latin:keySpec="&#x178B;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+1781: "ខ" KHMER LETTER KHA -->
             <Key
-                latin:keyLabel="&#x1781;"
+                latin:keySpec="&#x1781;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+1785: "áž…" KHMER LETTER CA -->
             <Key
-                latin:keyLabel="&#x1785;"
+                latin:keySpec="&#x1785;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+179C: "វ" KHMER LETTER VO -->
             <Key
-                latin:keyLabel="&#x179C;"
+                latin:keySpec="&#x179C;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+1794: "áž”" KHMER LETTER BA -->
             <Key
-                latin:keyLabel="&#x1794;"
+                latin:keySpec="&#x1794;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+1793: "áž“" KHMER LETTER NO -->
             <Key
-                latin:keyLabel="&#x1793;"
+                latin:keySpec="&#x1793;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+1798: "ម" KHMER LETTER MO -->
             <Key
-                latin:keyLabel="&#x1798;"
+                latin:keySpec="&#x1798;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17BB/U+17C6: "ុំ" KHMER VOWEL SIGN U/KHMER SIGN NIKAHIT -->
             <Key
-                latin:keyLabel="&#x17BB;&#x17C6;"
+                latin:keySpec="&#x17BB;&#x17C6;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+17D4: "។" KHMER SIGN KHAN -->
             <Key
-                latin:keyLabel="&#x17D4;"
+                latin:keySpec="&#x17D4;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+17CA: "៊" KHMER SIGN TRIISAP -->
             <Key
-                latin:keyLabel="&#x17CA;"
+                latin:keySpec="&#x17CA;"
                 latin:keyLabelFlags="fontNormal" />
         </default>
     </switch>
diff --git a/java/res/xml/rowkeys_lao1.xml b/java/res/xml/rowkeys_lao1.xml
index fa1ad97d8bf805f0a2fdfe87a03e332405fdbe38..a5085a540f94307cc2263385a8c4bc671d668197 100644
--- a/java/res/xml/rowkeys_lao1.xml
+++ b/java/res/xml/rowkeys_lao1.xml
@@ -27,58 +27,58 @@
         >
             <!-- U+0ED1: "໑" LAO DIGIT ONE -->
             <Key
-                latin:keyLabel="&#x0ED1;"
+                latin:keySpec="&#x0ED1;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0ED2: "à»’" LAO DIGIT TWO -->
             <Key
-                latin:keyLabel="&#x0ED2;"
+                latin:keySpec="&#x0ED2;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0ED3: "໓" LAO DIGIT THREE -->
             <Key
-                latin:keyLabel="&#x0ED3;"
+                latin:keySpec="&#x0ED3;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0ED4: "à»”" LAO DIGIT FOUR -->
             <Key
-                latin:keyLabel="&#x0ED4;"
+                latin:keySpec="&#x0ED4;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0ECC: "໌" LAO CANCELLATION MARK -->
             <Key
-                latin:keyLabel="&#x0ECC;"
+                latin:keySpec="&#x0ECC;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EBC: "ຼ" LAO SEMIVOWEL SIGN LO -->
             <Key
-                latin:keyLabel="&#x0EBC;"
+                latin:keySpec="&#x0EBC;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0ED5: "໕" LAO DIGIT FIVE -->
             <Key
-                latin:keyLabel="&#x0ED5;"
+                latin:keySpec="&#x0ED5;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0ED6: "à»–" LAO DIGIT SIX -->
             <Key
-                latin:keyLabel="&#x0ED6;"
+                latin:keySpec="&#x0ED6;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0ED7: "à»—" LAO DIGIT SEVEN -->
             <Key
-                latin:keyLabel="&#x0ED7;"
+                latin:keySpec="&#x0ED7;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0ED8: "໘" LAO DIGIT EIGHT -->
             <Key
-                latin:keyLabel="&#x0ED8;"
+                latin:keySpec="&#x0ED8;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0ED9: "à»™" LAO DIGIT NINE -->
             <Key
-                latin:keyLabel="&#x0ED9;"
+                latin:keySpec="&#x0ED9;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0ECD/U+0EC8: "ໍ່" LAO NIGGAHITA/LAO TONE MAI EK -->
             <Key
-                latin:keyLabel="&#x0ECD;&#x0EC8;"
+                latin:keySpec="&#x0ECD;&#x0EC8;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
         </case>
         <default>
             <!-- U+0EA2: "ຢ" LAO LETTER YO
                  U+0ED1: "໑" LAO DIGIT ONE -->
             <Key
-                latin:keyLabel="&#x0EA2;"
+                latin:keySpec="&#x0EA2;"
                 latin:keyHintLabel="1"
                 latin:additionalMoreKeys="1"
                 latin:moreKeys="&#x0ED1;"
@@ -86,7 +86,7 @@
             <!-- U+0E9F: "ຟ" LAO LETTER FO SUNG
                  U+0ED2: "à»’" LAO DIGIT TWO -->
             <Key
-                latin:keyLabel="&#x0E9F;"
+                latin:keySpec="&#x0E9F;"
                 latin:keyHintLabel="2"
                 latin:additionalMoreKeys="2"
                 latin:moreKeys="&#x0ED2;"
@@ -94,7 +94,7 @@
             <!-- U+0EC2: "ໂ" LAO VOWEL SIGN O
                  U+0ED3: "໓" LAO DIGIT THREE -->
             <Key
-                latin:keyLabel="&#x0EC2;"
+                latin:keySpec="&#x0EC2;"
                 latin:keyHintLabel="3"
                 latin:additionalMoreKeys="3"
                 latin:moreKeys="&#x0ED3;"
@@ -102,23 +102,23 @@
             <!-- U+0E96: "ຖ" LAO LETTER THO SUNG
                  U+0ED4: "à»”" LAO DIGIT FOUR -->
             <Key
-                latin:keyLabel="&#x0E96;"
+                latin:keySpec="&#x0E96;"
                 latin:keyHintLabel="4"
                 latin:additionalMoreKeys="4"
                 latin:moreKeys="&#x0ED4;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EB8: "ຸ" LAO VOWEL SIGN U -->
             <Key
-                latin:keyLabel="&#x0EB8;"
+                latin:keySpec="&#x0EB8;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EB9: "ູ" LAO VOWEL SIGN UU -->
             <Key
-                latin:keyLabel="&#x0EB9;"
+                latin:keySpec="&#x0EB9;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E84: "ຄ" LAO LETTER KHO TAM
                  U+0ED5: "໕" LAO DIGIT FIVE -->
             <Key
-                latin:keyLabel="&#x0E84;"
+                latin:keySpec="&#x0E84;"
                 latin:keyHintLabel="5"
                 latin:additionalMoreKeys="5"
                 latin:moreKeys="&#x0ED5;"
@@ -126,7 +126,7 @@
             <!-- U+0E95: "ຕ" LAO LETTER TO
                  U+0ED6: "à»–" LAO DIGIT SIX -->
             <Key
-                latin:keyLabel="&#x0E95;"
+                latin:keySpec="&#x0E95;"
                 latin:keyHintLabel="6"
                 latin:additionalMoreKeys="6"
                 latin:moreKeys="&#x0ED6;"
@@ -134,7 +134,7 @@
             <!-- U+0E88: "ຈ" LAO LETTER CO
                  U+0ED7: "à»—" LAO DIGIT SEVEN -->
             <Key
-                latin:keyLabel="&#x0E88;"
+                latin:keySpec="&#x0E88;"
                 latin:keyHintLabel="7"
                 latin:additionalMoreKeys="7"
                 latin:moreKeys="&#x0ED7;"
@@ -142,7 +142,7 @@
             <!-- U+0E82: "ຂ" LAO LETTER KHO SUNG
                  U+0ED8: "໘" LAO DIGIT EIGHT -->
             <Key
-                latin:keyLabel="&#x0E82;"
+                latin:keySpec="&#x0E82;"
                 latin:keyHintLabel="8"
                 latin:additionalMoreKeys="8"
                 latin:moreKeys="&#x0ED8;"
@@ -150,14 +150,14 @@
             <!-- U+0E8A: "ຊ" LAO LETTER SO TAM
                  U+0ED9: "à»™" LAO DIGIT NINE -->
             <Key
-                latin:keyLabel="&#x0E8A;"
+                latin:keySpec="&#x0E8A;"
                 latin:keyHintLabel="9"
                 latin:additionalMoreKeys="9"
                 latin:moreKeys="&#x0ED9;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0ECD: "ໍ" LAO NIGGAHITA -->
             <Key
-                latin:keyLabel="&#x0ECD;"
+                latin:keySpec="&#x0ECD;"
                 latin:keyLabelFlags="fontNormal" />
         </default>
     </switch>
diff --git a/java/res/xml/rowkeys_lao2.xml b/java/res/xml/rowkeys_lao2.xml
index fca58ac0e211def2f6175f91d7eee4520684e3b0..67c474f98421dbe05d0b18f71744268e14cc70d0 100644
--- a/java/res/xml/rowkeys_lao2.xml
+++ b/java/res/xml/rowkeys_lao2.xml
@@ -27,100 +27,100 @@
         >
             <!-- U+0EBB/U+0EC9: "" LAO VOWEL SIGN MAI KON/LAO TONE MAI THO -->
             <Key
-                latin:keyLabel="&#x0EBB;&#x0EC9;"
+                latin:keySpec="&#x0EBB;&#x0EC9;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0ED0: "໐" LAO DIGIT ZERO -->
             <Key
-                latin:keyLabel="&#x0ED0;"
+                latin:keySpec="&#x0ED0;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EB3/U+0EC9: "ຳ້" LAO VOWEL SIGN AM/LAO TONE MAI THO -->
             <Key
-                latin:keyLabel="&#x0EB3;&#x0EC9;"
+                latin:keySpec="&#x0EB3;&#x0EC9;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <Key
-                latin:keyLabel="_" />
+                latin:keySpec="_" />
             <Key
-                latin:keyLabel="+" />
+                latin:keySpec="+" />
             <!-- U+0EB4/U+0EC9: "ິ້" LAO VOWEL SIGN I/LAO TONE MAI THO -->
             <Key
-                latin:keyLabel="&#x0EB4;&#x0EC9;"
+                latin:keySpec="&#x0EB4;&#x0EC9;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0EB5/U+0EC9: "ີ້" LAO VOWEL SIGN II/LAO TONE MAI THO -->
             <Key
-                latin:keyLabel="&#x0EB5;&#x0EC9;"
+                latin:keySpec="&#x0EB5;&#x0EC9;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0EA3: "ຣ" LAO LETTER LO LING -->
             <Key
-                latin:keyLabel="&#x0EA3;"
+                latin:keySpec="&#x0EA3;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EDC: "ໜ" LAO HO NO -->
             <Key
-                latin:keyLabel="&#x0EDC;"
+                latin:keySpec="&#x0EDC;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EBD: "ຽ" LAO SEMIVOWEL SIGN NYO -->
             <Key
-                latin:keyLabel="&#x0EBD;"
+                latin:keySpec="&#x0EBD;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EAB/U+0EBC: "" LAO LETTER HO SUNG/LAO SEMIVOWEL SIGN LO -->
             <Key
-                latin:keyLabel="&#x0EAB;&#x0EBC;"
+                latin:keySpec="&#x0EAB;&#x0EBC;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+201D: "”" RIGHT DOUBLE QUOTATION MARK -->
             <Key
-                latin:keyLabel="&#x201D;" />
+                latin:keySpec="&#x201D;" />
         </case>
         <default>
             <!-- U+0EBB: "ົ" LAO VOWEL SIGN MAI KON -->
             <Key
-                latin:keyLabel="&#x0EBB;"
+                latin:keySpec="&#x0EBB;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EC4: "ໄ" LAO VOWEL SIGN AI
                  U+0ED0: "໐" LAO DIGIT ZERO -->
             <Key
-                latin:keyLabel="&#x0EC4;"
+                latin:keySpec="&#x0EC4;"
                 latin:keyHintLabel="0"
                 latin:additionalMoreKeys="0"
                 latin:moreKeys="&#x0ED0;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EB3: "ຳ" LAO VOWEL SIGN AM -->
             <Key
-                latin:keyLabel="&#x0EB3;"
+                latin:keySpec="&#x0EB3;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E9E: "ພ" LAO LETTER PHO TAM -->
             <Key
-                latin:keyLabel="&#x0E9E;"
+                latin:keySpec="&#x0E9E;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EB0: "ະ" LAO VOWEL SIGN A -->
             <Key
-                latin:keyLabel="&#x0EB0;"
+                latin:keySpec="&#x0EB0;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EB4: "ິ" LAO VOWEL SIGN I -->
             <Key
-                latin:keyLabel="&#x0EB4;"
+                latin:keySpec="&#x0EB4;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EB5: "ີ" LAO VOWEL SIGN II -->
             <Key
-                latin:keyLabel="&#x0EB5;"
+                latin:keySpec="&#x0EB5;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EAE: "ຮ" LAO LETTER HO TAM -->
             <Key
-                latin:keyLabel="&#x0EAE;"
+                latin:keySpec="&#x0EAE;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E99: "ນ" LAO LETTER NO -->
             <Key
-                latin:keyLabel="&#x0E99;"
+                latin:keySpec="&#x0E99;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E8D: "ຍ" LAO LETTER NYO -->
             <Key
-                latin:keyLabel="&#x0E8D;"
+                latin:keySpec="&#x0E8D;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E9A: "ບ" LAO LETTER BO -->
             <Key
-                latin:keyLabel="&#x0E9A;"
+                latin:keySpec="&#x0E9A;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EA5: "ລ" LAO LETTER LO LOOT -->
             <Key
-                latin:keyLabel="&#x0EA5;"
+                latin:keySpec="&#x0EA5;"
                 latin:keyLabelFlags="fontNormal" />
         </default>
     </switch>
diff --git a/java/res/xml/rowkeys_lao3.xml b/java/res/xml/rowkeys_lao3.xml
index 2a6c2d1dd26f8b4af802cbc30891804ad3a5880a..172716ddecc222a5b879b3558ab8643fb9d6277f 100644
--- a/java/res/xml/rowkeys_lao3.xml
+++ b/java/res/xml/rowkeys_lao3.xml
@@ -27,84 +27,84 @@
         >
             <!-- U+0EB1/U+0EC9: "ັ້" LAO VOWEL SIGN MAI KAN/LAO TONE MAI THO -->
             <Key
-                latin:keyLabel="&#x0EB1;&#x0EC9;"
+                latin:keySpec="&#x0EB1;&#x0EC9;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <Key
-                latin:keyLabel=";" />
+                latin:keySpec=";" />
             <Key
-                latin:keyLabel="." />
+                latin:keySpec="." />
             <Key
-                latin:keyLabel="," />
+                latin:keySpec="," />
             <Key
-                latin:keyLabel=":" />
+                latin:keySpec=":" />
             <!-- U+0ECA: "໊" LAO TONE MAI TI -->
             <Key
-                latin:keyLabel="&#x0ECA;"
+                latin:keySpec="&#x0ECA;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0ECB: "໋" LAO TONE MAI CATAWA -->
             <Key
-                latin:keyLabel="&#x0ECB;"
+                latin:keySpec="&#x0ECB;"
                 latin:keyLabelFlags="fontNormal" />
             <Key
-                latin:keyLabel="!" />
+                latin:keySpec="!" />
             <Key
-                latin:keyLabel="\?" />
+                latin:keySpec="\?" />
             <Key
-                latin:keyLabel="%" />
+                latin:keySpec="%" />
             <Key
-                latin:keyLabel="=" />
+                latin:keySpec="=" />
             <!-- U+201C: "“" LEFT DOUBLE QUOTATION MARK -->
             <Key
-                latin:keyLabel="&#x201C;" />
+                latin:keySpec="&#x201C;" />
         </case>
         <default>
             <!-- U+0EB1: "ັ" LAO VOWEL SIGN MAI KAN -->
             <Key
-                latin:keyLabel="&#x0EB1;"
+                latin:keySpec="&#x0EB1;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EAB: "ຫ" LAO LETTER HO SUNG -->
             <Key
-                latin:keyLabel="&#x0EAB;"
+                latin:keySpec="&#x0EAB;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E81: "ກ" LAO LETTER KO -->
             <Key
-                latin:keyLabel="&#x0E81;"
+                latin:keySpec="&#x0E81;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E94: "ດ" LAO LETTER DO -->
             <Key
-                latin:keyLabel="&#x0E94;"
+                latin:keySpec="&#x0E94;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EC0: "ເ" LAO VOWEL SIGN E -->
             <Key
-                latin:keyLabel="&#x0EC0;"
+                latin:keySpec="&#x0EC0;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EC9: "້" LAO TONE MAI THO -->
             <Key
-                latin:keyLabel="&#x0EC9;"
+                latin:keySpec="&#x0EC9;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EC8: "່" LAO TONE MAI EK -->
             <Key
-                latin:keyLabel="&#x0EC8;"
+                latin:keySpec="&#x0EC8;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EB2: "າ" LAO VOWEL SIGN AA -->
             <Key
-                latin:keyLabel="&#x0EB2;"
+                latin:keySpec="&#x0EB2;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EAA: "ສ" LAO LETTER SO SUNG -->
             <Key
-                latin:keyLabel="&#x0EAA;"
+                latin:keySpec="&#x0EAA;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EA7: "ວ" LAO LETTER WO -->
             <Key
-                latin:keyLabel="&#x0EA7;"
+                latin:keySpec="&#x0EA7;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E87: "ງ" LAO LETTER NGO -->
             <Key
-                latin:keyLabel="&#x0E87;"
+                latin:keySpec="&#x0E87;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+201C: "“" LEFT DOUBLE QUOTATION MARK -->
             <Key
-                latin:keyLabel="&#x201C;" />
+                latin:keySpec="&#x201C;" />
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml/rowkeys_lao4.xml b/java/res/xml/rowkeys_lao4.xml
index fae9cc92372110d1f78cc0b9fc68a4b521dbf6f6..ed4b9b1f10e99ffd824a7bf70dd49be698d9cd86 100644
--- a/java/res/xml/rowkeys_lao4.xml
+++ b/java/res/xml/rowkeys_lao4.xml
@@ -27,76 +27,76 @@
         >
             <!-- U+20AD: "â‚­" KIP SIGN -->
             <Key
-                latin:keyLabel="&#x20AD;" />
+                latin:keySpec="&#x20AD;" />
             <Key
-                latin:keyLabel="(" />
+                latin:keySpec="(" />
             <!-- U+0EAF: "ຯ" LAO ELLIPSIS -->
             <Key
-                latin:keyLabel="&#x0EAF;"
+                latin:keySpec="&#x0EAF;"
                 latin:keyLabelFlags="fontNormal" />
             <Key
-                latin:keyLabel="\@" />
+                latin:keySpec="\@" />
             <!-- U+0EB6/U+0EC9: "ຶ້" LAO VOWEL SIGN Y/LAO TONE MAI THO -->
             <Key
-                latin:keyLabel="&#x0EB6;&#x0EC9;"
+                latin:keySpec="&#x0EB6;&#x0EC9;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0EB7/U+0EC9: "ື້" LAO VOWEL SIGN YY/LAO TONE MAI THO -->
             <Key
-                latin:keyLabel="&#x0EB7;&#x0EC9;"
+                latin:keySpec="&#x0EB7;&#x0EC9;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0EC6: "ໆ" LAO KO LA -->
             <Key
-                latin:keyLabel="&#x0EC6;"
+                latin:keySpec="&#x0EC6;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EDD: "ໝ" LAO HO MO -->
             <Key
-                latin:keyLabel="&#x0EDD;"
+                latin:keySpec="&#x0EDD;"
                 latin:keyLabelFlags="fontNormal" />
             <Key
-                latin:keyLabel="$" />
+                latin:keySpec="$" />
             <Key
-                latin:keyLabel=")" />
+                latin:keySpec=")" />
         </case>
         <default>
             <!-- U+0E9C: "ຜ" LAO LETTER PHO SUNG -->
             <Key
-                latin:keyLabel="&#x0E9C;"
+                latin:keySpec="&#x0E9C;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E9B: "ປ" LAO LETTER PO -->
             <Key
-                latin:keyLabel="&#x0E9B;"
+                latin:keySpec="&#x0E9B;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EC1: "ແ" LAO VOWEL SIGN EI -->
             <Key
-                latin:keyLabel="&#x0EC1;"
+                latin:keySpec="&#x0EC1;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EAD: "ອ" LAO LETTER O -->
             <Key
-                latin:keyLabel="&#x0EAD;"
+                latin:keySpec="&#x0EAD;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EB6: "ຶ" LAO VOWEL SIGN Y -->
             <Key
-                latin:keyLabel="&#x0EB6;"
+                latin:keySpec="&#x0EB6;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EB7: "ື" LAO VOWEL SIGN YY -->
             <Key
-                latin:keyLabel="&#x0EB7;"
+                latin:keySpec="&#x0EB7;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E97: "ທ" LAO LETTER THO TAM -->
             <Key
-                latin:keyLabel="&#x0E97;"
+                latin:keySpec="&#x0E97;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EA1: "ມ" LAO LETTER MO -->
             <Key
-                latin:keyLabel="&#x0EA1;"
+                latin:keySpec="&#x0EA1;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0EC3: "ໃ" LAO VOWEL SIGN AY -->
             <Key
-                latin:keyLabel="&#x0EC3;"
+                latin:keySpec="&#x0EC3;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E9D: "ຝ" LAO LETTER FO TAM -->
             <Key
-                latin:keyLabel="&#x0E9D;"
+                latin:keySpec="&#x0E9D;"
                 latin:keyLabelFlags="fontNormal" />
         </default>
     </switch>
diff --git a/java/res/xml/rowkeys_mongolian1.xml b/java/res/xml/rowkeys_mongolian1.xml
index 6c8c8e2fd5005b617a5d4897bde1195bec5ece5f..4d337554534c94c41bce113e31434ea6e111babf 100644
--- a/java/res/xml/rowkeys_mongolian1.xml
+++ b/java/res/xml/rowkeys_mongolian1.xml
@@ -23,61 +23,61 @@
 >
     <!-- U+0444: "Ñ„" CYRILLIC SMALL LETTER EF -->
     <Key
-        latin:keyLabel="&#x0444;"
+        latin:keySpec="&#x0444;"
         latin:keyHintLabel="1"
         latin:additionalMoreKeys="1" />
     <!-- U+0446: "ц" CYRILLIC SMALL LETTER TSE -->
     <Key
-        latin:keyLabel="&#x0446;"
+        latin:keySpec="&#x0446;"
         latin:keyHintLabel="2"
         latin:additionalMoreKeys="2" />
     <!-- U+0443: "у" CYRILLIC SMALL LETTER U -->
     <Key
-        latin:keyLabel="&#x0443;"
+        latin:keySpec="&#x0443;"
         latin:keyHintLabel="3"
         latin:additionalMoreKeys="3"
         latin:moreKeys="!text/more_keys_for_cyrillic_u" />
     <!-- U+0436: "ж" CYRILLIC SMALL LETTER ZHE -->
     <Key
-        latin:keyLabel="&#x0436;"
+        latin:keySpec="&#x0436;"
         latin:keyHintLabel="4"
         latin:additionalMoreKeys="4" />
     <!-- U+044D: "э" CYRILLIC SMALL LETTER E -->
     <Key
-        latin:keyLabel="&#x044D;"
+        latin:keySpec="&#x044D;"
         latin:keyHintLabel="5"
         latin:additionalMoreKeys="5"
         latin:moreKeys="!text/more_keys_for_cyrillic_ie" />
     <!-- U+043D: "н" CYRILLIC SMALL LETTER EN -->
     <Key
-        latin:keyLabel="&#x043D;"
+        latin:keySpec="&#x043D;"
         latin:keyHintLabel="6"
         latin:additionalMoreKeys="6"
         latin:moreKeys="!text/more_keys_for_cyrillic_en" />
     <!-- U+0433: "г" CYRILLIC SMALL LETTER GHE -->
     <Key
-        latin:keyLabel="&#x0433;"
+        latin:keySpec="&#x0433;"
         latin:keyHintLabel="7"
         latin:additionalMoreKeys="7"
         latin:moreKeys="!text/more_keys_for_cyrillic_ghe" />
     <!-- U+0448: "ш" CYRILLIC SMALL LETTER SHA
          U+0449: "щ" CYRILLIC SMALL LETTER SHCHA -->
     <Key
-        latin:keyLabel="&#x0448;"
+        latin:keySpec="&#x0448;"
         latin:keyHintLabel="8"
         latin:additionalMoreKeys="8"
         latin:moreKeys="&#x0449;" />
     <!-- U+04AF: "Ò¯" CYRILLIC SMALL LETTER STRAIGHT U -->
     <Key
-        latin:keyLabel="&#x04AF;"
+        latin:keySpec="&#x04AF;"
         latin:keyHintLabel="9"
         latin:additionalMoreKeys="9" />
     <!-- U+0437: "з" CYRILLIC SMALL LETTER ZE -->
     <Key
-        latin:keyLabel="&#x0437;"
+        latin:keySpec="&#x0437;"
         latin:keyHintLabel="0"
         latin:additionalMoreKeys="0" />
     <!-- U+043A: "к" CYRILLIC SMALL LETTER KA -->
     <Key
-        latin:keyLabel="&#x043A;" />
+        latin:keySpec="&#x043A;" />
 </merge>
diff --git a/java/res/xml/rowkeys_mongolian2.xml b/java/res/xml/rowkeys_mongolian2.xml
index a8aa00620a2b2a769efeb57f01bac9103d3dad3b..f11f4f230aea007271714e72de267fe6f00614af 100644
--- a/java/res/xml/rowkeys_mongolian2.xml
+++ b/java/res/xml/rowkeys_mongolian2.xml
@@ -23,35 +23,35 @@
 >
     <!-- U+0439: "й" CYRILLIC SMALL LETTER SHORT I -->
     <Key
-        latin:keyLabel="&#x0439;" />
+        latin:keySpec="&#x0439;" />
     <!-- U+044B: "Ñ‹" CYRILLIC SMALL LETTER YERU -->
     <Key
-        latin:keyLabel="&#x044B;" />
+        latin:keySpec="&#x044B;" />
     <!-- U+0431: "б" CYRILLIC SMALL LETTER BE -->
     <Key
-        latin:keyLabel="&#x0431;" />
+        latin:keySpec="&#x0431;" />
     <!-- U+04E9: "Ó©" CYRILLIC SMALL LETTER BARRED O -->
     <Key
-        latin:keyLabel="&#x04E9;" />
+        latin:keySpec="&#x04E9;" />
     <!-- U+0430: "а" CYRILLIC SMALL LETTER A -->
     <Key
-        latin:keyLabel="&#x0430;" />
+        latin:keySpec="&#x0430;" />
     <!-- U+0445: "Ñ…" CYRILLIC SMALL LETTER HA -->
     <Key
-        latin:keyLabel="&#x0445;" />
+        latin:keySpec="&#x0445;" />
     <!-- U+0440: "Ñ€" CYRILLIC SMALL LETTER ER -->
     <Key
-        latin:keyLabel="&#x0440;" />
+        latin:keySpec="&#x0440;" />
     <!-- U+043E: "о" CYRILLIC SMALL LETTER O -->
     <Key
-        latin:keyLabel="&#x043E;" />
+        latin:keySpec="&#x043E;" />
     <!-- U+043B: "л" CYRILLIC SMALL LETTER EL -->
     <Key
-        latin:keyLabel="&#x043B;" />
+        latin:keySpec="&#x043B;" />
     <!-- U+0434: "д" CYRILLIC SMALL LETTER DE -->
     <Key
-        latin:keyLabel="&#x0434;" />
+        latin:keySpec="&#x0434;" />
     <!-- U+043F: "п" CYRILLIC SMALL LETTER PE -->
     <Key
-        latin:keyLabel="&#x043F;" />
+        latin:keySpec="&#x043F;" />
 </merge>
diff --git a/java/res/xml/rowkeys_mongolian3.xml b/java/res/xml/rowkeys_mongolian3.xml
index dc80c37ab509a34654bc58474af3ac525090f6e8..cf57d1c2a6ce3f7201d0f599fe823e7672038a52 100644
--- a/java/res/xml/rowkeys_mongolian3.xml
+++ b/java/res/xml/rowkeys_mongolian3.xml
@@ -23,35 +23,35 @@
 >
     <!-- U+044F: "я" CYRILLIC SMALL LETTER YA -->
     <Key
-        latin:keyLabel="&#x044F;" />
+        latin:keySpec="&#x044F;" />
     <!-- U+0447: "ч" CYRILLIC SMALL LETTER CHE -->
     <Key
-        latin:keyLabel="&#x0447;" />
+        latin:keySpec="&#x0447;" />
     <!-- U+0451: "Ñ‘" CYRILLIC SMALL LETTER IO
          U+0435: "е" CYRILLIC SMALL LETTER IE -->
     <Key
-        latin:keyLabel="&#x0451;"
+        latin:keySpec="&#x0451;"
         latin:moreKeys="&#x0435;" />
     <!-- U+0441: "с" CYRILLIC SMALL LETTER ES -->
     <Key
-        latin:keyLabel="&#x0441;" />
+        latin:keySpec="&#x0441;" />
     <!-- U+043C: "м" CYRILLIC SMALL LETTER EM -->
     <Key
-        latin:keyLabel="&#x043C;" />
+        latin:keySpec="&#x043C;" />
     <!-- U+0438: "и" CYRILLIC SMALL LETTER I -->
     <Key
-        latin:keyLabel="&#x0438;" />
+        latin:keySpec="&#x0438;" />
     <!-- U+0442: "Ñ‚" CYRILLIC SMALL LETTER TE -->
     <Key
-        latin:keyLabel="&#x0442;" />
+        latin:keySpec="&#x0442;" />
     <!-- U+044C: "ь" CYRILLIC SMALL LETTER SOFT SIGN
          U+044A: "ÑŠ" CYRILLIC SMALL LETTER HARD SIGN -->
     <Key
-        latin:keyLabel="&#x044C;"
+        latin:keySpec="&#x044C;"
         latin:moreKeys="&#x044A;" />
     <!-- U+0432: "в" CYRILLIC SMALL LETTER VE
          U+044E: "ÑŽ" CYRILLIC SMALL LETTER YU -->
     <Key
-        latin:keyLabel="&#x0432;"
+        latin:keySpec="&#x0432;"
         latin:moreKeys="&#x044E;" />
 </merge>
diff --git a/java/res/xml/rowkeys_nepali_romanized1.xml b/java/res/xml/rowkeys_nepali_romanized1.xml
index 408a96648815263dd668516786619c6665c2e122..3c082c2fec3d5c5e6e226ccc4e2803f7c1c5622e 100644
--- a/java/res/xml/rowkeys_nepali_romanized1.xml
+++ b/java/res/xml/rowkeys_nepali_romanized1.xml
@@ -27,11 +27,11 @@
         >
             <!-- U+0920: "ठ" DEVANAGARI LETTER TTHA -->
             <Key
-                latin:keyLabel="&#x0920;"
+                latin:keySpec="&#x0920;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0914: "औ" DEVANAGARI LETTER AU -->
             <Key
-                latin:keyLabel="&#x0914;"
+                latin:keySpec="&#x0914;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -47,11 +47,11 @@
                 latin:keyboardLayout="@xml/key_devanagari_vowel_sign_vocalic_r" />
             <!-- U+0925: "थ" DEVANAGARI LETTER THA -->
             <Key
-                latin:keyLabel="&#x0925;"
+                latin:keySpec="&#x0925;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+091E: "ञ" DEVANAGARI LETTER NYA -->
             <Key
-                latin:keyLabel="&#x091E;"
+                latin:keySpec="&#x091E;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -69,15 +69,15 @@
                 latin:keyStyle="baseKeyDevanagariVowelSignIi" />
             <!-- U+0913: "ओ" DEVANAGARI LETTER O -->
             <Key
-                latin:keyLabel="&#x0913;"
+                latin:keySpec="&#x0913;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+092B: "फ" DEVANAGARI LETTER PHA -->
             <Key
-                latin:keyLabel="&#x092B;"
+                latin:keySpec="&#x092B;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0908: "ई" DEVANAGARI LETTER II -->
             <Key
-                latin:keyLabel="&#x0908;"
+                latin:keySpec="&#x0908;"
                 latin:keyLabelFlags="fontNormal" />
         </case>
         <default>
@@ -85,7 +85,7 @@
                  U+0967: "१" DEVANAGARI DIGIT ONE
                  U+093C: "़" DEVANAGARI SIGN NUKTA -->
             <Key
-                latin:keyLabel="&#x091F;"
+                latin:keySpec="&#x091F;"
                 latin:keyHintLabel="1"
                 latin:additionalMoreKeys="&#x0967;,1"
                 latin:moreKeys="&#x093C;"
@@ -113,21 +113,21 @@
             <!-- U+0930: "र" DEVANAGARI LETTER RA
                  U+096A: "४" DEVANAGARI DIGIT FOUR -->
             <Key
-                latin:keyLabel="&#x0930;"
+                latin:keySpec="&#x0930;"
                 latin:keyHintLabel="4"
                 latin:additionalMoreKeys="&#x096A;,4"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0924: "त" DEVANAGARI LETTER TA
                  U+096B: "५" DEVANAGARI DIGIT FIVE -->
             <Key
-                latin:keyLabel="&#x0924;"
+                latin:keySpec="&#x0924;"
                 latin:keyHintLabel="5"
                 latin:additionalMoreKeys="&#x096B;,5"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+092F: "य" DEVANAGARI LETTER YA
                  U+096C: "६" DEVANAGARI DIGIT SIX -->
             <Key
-                latin:keyLabel="&#x092F;"
+                latin:keySpec="&#x092F;"
                 latin:keyHintLabel="6"
                 latin:additionalMoreKeys="&#x096C;,6"
                 latin:keyLabelFlags="fontNormal" />
@@ -164,13 +164,13 @@
             <!-- U+092A: "प" DEVANAGARI LETTER PA
                  U+0966: "०" DEVANAGARI DIGIT ZERO -->
             <Key
-                latin:keyLabel="&#x092A;"
+                latin:keySpec="&#x092A;"
                 latin:keyHintLabel="0"
                 latin:additionalMoreKeys="&#x0966;,0"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0907: "इ" DEVANAGARI LETTER I -->
             <Key
-                latin:keyLabel="&#x0907;"
+                latin:keySpec="&#x0907;"
                 latin:keyLabelFlags="fontNormal" />
          </default>
     </switch>
diff --git a/java/res/xml/rowkeys_nepali_romanized2.xml b/java/res/xml/rowkeys_nepali_romanized2.xml
index 66359ffb5af130a5f4e6869be4f7787db569627f..561ae6c9325e1b1d51a78de033d33e81604c25bc 100644
--- a/java/res/xml/rowkeys_nepali_romanized2.xml
+++ b/java/res/xml/rowkeys_nepali_romanized2.xml
@@ -27,43 +27,43 @@
         >
             <!-- U+0906: "आ" DEVANAGARI LETTER AA -->
             <Key
-                latin:keyLabel="&#x0906;"
+                latin:keySpec="&#x0906;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0936: "श" DEVANAGARI LETTER SHA -->
             <Key
-                latin:keyLabel="&#x0936;"
+                latin:keySpec="&#x0936;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0927: "ध" DEVANAGARI LETTER DHA -->
             <Key
-                latin:keyLabel="&#x0927;"
+                latin:keySpec="&#x0927;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+090A: "ऊ" DEVANAGARI LETTER UU -->
             <Key
-                latin:keyLabel="&#x090A;"
+                latin:keySpec="&#x090A;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0918: "घ" DEVANAGARI LETTER GHA -->
             <Key
-                latin:keyLabel="&#x0918;"
+                latin:keySpec="&#x0918;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0905: "अ" DEVANAGARI LETTER A -->
             <Key
-                latin:keyLabel="&#x0905;"
+                latin:keySpec="&#x0905;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+091D: "झ" DEVANAGARI LETTER JHA -->
             <Key
-                latin:keyLabel="&#x091D;"
+                latin:keySpec="&#x091D;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0916: "ख" DEVANAGARI LETTER KHA -->
             <Key
-                latin:keyLabel="&#x0916;"
+                latin:keySpec="&#x0916;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0965: "॥" DEVANAGARI DOUBLE DANDA -->
             <Key
-                latin:keyLabel="&#x0965;"
+                latin:keySpec="&#x0965;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0910: "ऐ" DEVANAGARI LETTER AI -->
             <Key
-                latin:keyLabel="&#x0910;"
+                latin:keySpec="&#x0910;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -83,43 +83,43 @@
                 latin:keyStyle="baseKeyDevanagariVowelSignAa" />
             <!-- U+0938: "स" DEVANAGARI LETTER SA -->
             <Key
-                latin:keyLabel="&#x0938;"
+                latin:keySpec="&#x0938;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0926: "द" DEVANAGARI LETTER DA -->
             <Key
-                latin:keyLabel="&#x0926;"
+                latin:keySpec="&#x0926;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0909: "उ" DEVANAGARI LETTER U -->
             <Key
-                latin:keyLabel="&#x0909;"
+                latin:keySpec="&#x0909;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0917: "ग" DEVANAGARI LETTER GA -->
             <Key
-                latin:keyLabel="&#x0917;"
+                latin:keySpec="&#x0917;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0939: "ह" DEVANAGARI LETTER HA -->
             <Key
-                latin:keyLabel="&#x0939;"
+                latin:keySpec="&#x0939;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+091C: "ज" DEVANAGARI LETTER JA -->
             <Key
-                latin:keyLabel="&#x091C;"
+                latin:keySpec="&#x091C;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0915: "क" DEVANAGARI LETTER KA -->
             <Key
-                latin:keyLabel="&#x0915;"
+                latin:keySpec="&#x0915;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0932: "ल" DEVANAGARI LETTER LA -->
             <Key
-                latin:keyLabel="&#x0932;"
+                latin:keySpec="&#x0932;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+090F: "ए" DEVANAGARI LETTER E -->
             <Key
-                latin:keyLabel="&#x090F;"
+                latin:keySpec="&#x090F;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0950: "ॐ" DEVANAGARI OM -->
             <Key
-                latin:keyLabel="&#x0950;"
+                latin:keySpec="&#x0950;"
                 latin:keyLabelFlags="fontNormal" />
          </default>
     </switch>
diff --git a/java/res/xml/rowkeys_nepali_romanized3.xml b/java/res/xml/rowkeys_nepali_romanized3.xml
index 166d028a3defe7505caabf0cd14797926572363e..232d96e024a7936b868063d8c7c8ab04e7fa60ba 100644
--- a/java/res/xml/rowkeys_nepali_romanized3.xml
+++ b/java/res/xml/rowkeys_nepali_romanized3.xml
@@ -27,15 +27,15 @@
         >
             <!-- U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R -->
             <Key
-                latin:keyLabel="&#x090B;"
+                latin:keySpec="&#x090B;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0922: "ढ" DEVANAGARI LETTER DDHA -->
             <Key
-                latin:keyLabel="&#x0922;"
+                latin:keySpec="&#x0922;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+091B: "छ" DEVANAGARI LETTER CHA -->
             <Key
-                latin:keyLabel="&#x091B;"
+                latin:keySpec="&#x091B;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -44,11 +44,11 @@
                 latin:keyboardLayout="@xml/key_devanagari_sign_candrabindu" />
             <!-- U+092D: "भ" DEVANAGARI LETTER BHA -->
             <Key
-                latin:keyLabel="&#x092D;"
+                latin:keySpec="&#x092D;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0923: "ण" DEVANAGARI LETTER NNA -->
             <Key
-                latin:keyLabel="&#x0923;"
+                latin:keySpec="&#x0923;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -57,7 +57,7 @@
                 latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" />
             <!-- U+0919: "ङ" DEVANAGARI LETTER NGA -->
             <Key
-                latin:keyLabel="&#x0919;"
+                latin:keySpec="&#x0919;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -70,36 +70,36 @@
         <default>
             <!-- U+0937: "ष" DEVANAGARI LETTER SSA -->
             <Key
-                latin:keyLabel="&#x0937;"
+                latin:keySpec="&#x0937;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0921: "ड" DEVANAGARI LETTER DDA -->
             <Key
-                latin:keyLabel="&#x0921;"
+                latin:keySpec="&#x0921;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+091A: "च" DEVANAGARI LETTER CA -->
             <Key
-                latin:keyLabel="&#x091A;"
+                latin:keySpec="&#x091A;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0935: "व" DEVANAGARI LETTER VA -->
             <Key
-                latin:keyLabel="&#x0935;"
+                latin:keySpec="&#x0935;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+092C: "ब" DEVANAGARI LETTER BHA -->
             <Key
-                latin:keyLabel="&#x092C;"
+                latin:keySpec="&#x092C;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0928: "न" DEVANAGARI LETTER NA -->
             <Key
-                latin:keyLabel="&#x0928;"
+                latin:keySpec="&#x0928;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+092E: "म" DEVANAGARI LETTER MA -->
             <Key
-                latin:keyLabel="&#x092E;"
+                latin:keySpec="&#x092E;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0964: "।" DEVANAGARI DANDA
                  U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
             <Key
-                latin:keyLabel="&#x0964;"
+                latin:keySpec="&#x0964;"
                 latin:moreKeys="&#x093D;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
diff --git a/java/res/xml/rowkeys_nepali_traditional1.xml b/java/res/xml/rowkeys_nepali_traditional1.xml
index c7883c733bfffb7443c68db44445031f79708d61..98a7be260b4110eb54b89ce199e90ce104d7d312 100644
--- a/java/res/xml/rowkeys_nepali_traditional1.xml
+++ b/java/res/xml/rowkeys_nepali_traditional1.xml
@@ -30,61 +30,61 @@
                  U+091C/U+094D/U+091E: "ज्ञ" DEVANAGARI LETTER JA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER NYA
                  U+0965: "॥" DEVANAGARI DOUBLE DANDA -->
             <Key
-                latin:keyLabel="&#x0924;&#x094D;&#x0924;"
+                latin:keySpec="&#x0924;&#x094D;&#x0924;"
                 latin:moreKeys="&#x091E;,&#x091C;&#x094D;&#x091E;,&#x0965;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0921/U+094D/U+0922: "ड्ढ" DEVANAGARI LETTER DDA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DDHA
                  U+0908: "ई" DEVANAGARI LETTER II -->
             <Key
-                latin:keyLabel="&#x0921;&#x094D;&#x0922;"
+                latin:keySpec="&#x0921;&#x094D;&#x0922;"
                 latin:moreKeys="&#x0908;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0910: "ऐ" DEVANAGARI LETTER AI
                  U+0918: "घ" DEVANAGARI LETTER GHA -->
             <Key
-                latin:keyLabel="&#x0910;"
+                latin:keySpec="&#x0910;"
                 latin:moreKeys="&#x0918;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0926/U+094D/U+0935: "द्व" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER VA
                  U+0926/U+094D/U+0927: "द्ध" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DHA -->
             <Key
-                latin:keyLabel="&#x0926;&#x094D;&#x0935;"
+                latin:keySpec="&#x0926;&#x094D;&#x0935;"
                 latin:moreKeys="&#x0926;&#x094D;&#x0927;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+091F/U+094D/U+091F: "ट्ट" DEVANAGARI LETTER TTA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER TTA
                  U+091B: "छ" DEVANAGARI LETTER CHA -->
             <Key
-                latin:keyLabel="&#x091F;&#x094D;&#x091F;"
+                latin:keySpec="&#x091F;&#x094D;&#x091F;"
                 latin:moreKeys="&#x091B;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0920/U+094D/U+0920: "ठ्ठ" DEVANAGARI LETTER TTHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER TTHA
                  U+091F: "ट" DEVANAGARI LETTER TTA -->
             <Key
-                latin:keyLabel="&#x0920;&#x094D;&#x0920;"
+                latin:keySpec="&#x0920;&#x094D;&#x0920;"
                 latin:moreKeys="&#x091F;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+090A: "ऊ" DEVANAGARI LETTER UU
                  U+0920: "ठ" DEVANAGARI LETTER TTHA -->
             <Key
-                latin:keyLabel="&#x090A;"
+                latin:keySpec="&#x090A;"
                 latin:moreKeys="&#x0920;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0915/U+094D/U+0937: "क्ष" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER SSA
                  U+0921: "ड" DEVANAGARI LETTER DDA -->
             <Key
-                latin:keyLabel="&#x0915;&#x094D;&#x0937;"
+                latin:keySpec="&#x0915;&#x094D;&#x0937;"
                 latin:moreKeys="&#x0921;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0907: "इ" DEVANAGARI LETTER I
                  U+0922: "ढ" DEVANAGARI LETTER DDHA -->
             <Key
-                latin:keyLabel="&#x0907;"
+                latin:keySpec="&#x0907;"
                 latin:moreKeys="&#x0922;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+090F: "ए" DEVANAGARI LETTER E
                  U+0923: "ण" DEVANAGARI LETTER NNA -->
             <Key
-                latin:keyLabel="&#x090F;"
+                latin:keySpec="&#x090F;"
                 latin:moreKeys="&#x0923;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
@@ -97,77 +97,77 @@
             <!-- U+091F: "ट" DEVANAGARI LETTER TTA
                  U+0967: "१" DEVANAGARI DIGIT ONE -->
             <Key
-                latin:keyLabel="&#x091F;"
+                latin:keySpec="&#x091F;"
                 latin:keyHintLabel="1"
                 latin:additionalMoreKeys="&#x0967;,1"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0927: "ध" DEVANAGARI LETTER DHA
                  U+0968: "२" DEVANAGARI DIGIT TWO -->
             <Key
-                latin:keyLabel="&#x0927;"
+                latin:keySpec="&#x0927;"
                 latin:keyHintLabel="2"
                 latin:additionalMoreKeys="&#x0968;,2"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+092D: "भ" DEVANAGARI LETTER BHA
                  U+0969: "३" DEVANAGARI DIGIT THREE -->
             <Key
-                latin:keyLabel="&#x092D;"
+                latin:keySpec="&#x092D;"
                 latin:keyHintLabel="3"
                 latin:additionalMoreKeys="&#x0969;,3"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+091A: "च" DEVANAGARI LETTER CA
                  U+096A: "४" DEVANAGARI DIGIT FOUR -->
             <Key
-                latin:keyLabel="&#x091A;"
+                latin:keySpec="&#x091A;"
                 latin:keyHintLabel="4"
                 latin:additionalMoreKeys="&#x096A;,4"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0924: "त" DEVANAGARI LETTER TA
                  U+096B: "५" DEVANAGARI DIGIT FIVE -->
             <Key
-                latin:keyLabel="&#x0924;"
+                latin:keySpec="&#x0924;"
                 latin:keyHintLabel="5"
                 latin:additionalMoreKeys="&#x096B;,5"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0925: "थ" DEVANAGARI LETTER THA
                  U+096C: "६" DEVANAGARI DIGIT SIX -->
             <Key
-                latin:keyLabel="&#x0925;"
+                latin:keySpec="&#x0925;"
                 latin:keyHintLabel="6"
                 latin:additionalMoreKeys="&#x096C;,6"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0917: "ग" DEVANAGARI LETTER G
                  U+096D: "७" DEVANAGARI DIGIT SEVEN -->
             <Key
-                latin:keyLabel="&#x0917;"
+                latin:keySpec="&#x0917;"
                 latin:keyHintLabel="7"
                 latin:additionalMoreKeys="&#x096D;,7"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0937: "ष" DEVANAGARI LETTER SSA
                  U+096E: "८" DEVANAGARI DIGIT EIGHT -->
             <Key
-                latin:keyLabel="&#x0937;"
+                latin:keySpec="&#x0937;"
                 latin:keyHintLabel="8"
                 latin:additionalMoreKeys="&#x096E;,8"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+092F: "य" DEVANAGARI LETTER YA
                  U+096F: "९" DEVANAGARI DIGIT NINE -->
             <Key
-                latin:keyLabel="&#x092F;"
+                latin:keySpec="&#x092F;"
                 latin:keyHintLabel="9"
                 latin:additionalMoreKeys="&#x096F;,9"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0909: "उ" DEVANAGARI LETTER U
                  U+0966: "०" DEVANAGARI DIGIT ZERO -->
             <Key
-                latin:keyLabel="&#x0909;"
+                latin:keySpec="&#x0909;"
                 latin:keyHintLabel="0"
                 latin:additionalMoreKeys="&#x0966;,0"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0907: "इ" DEVANAGARI LETTER I
                  U+0914: "औ" DEVANAGARI LETTER AU -->
             <Key
-                latin:keyLabel="&#x0907;"
+                latin:keySpec="&#x0907;"
                 latin:moreKeys="&#x0914;"
                 latin:keyLabelFlags="fontNormal" />
          </default>
diff --git a/java/res/xml/rowkeys_nepali_traditional2.xml b/java/res/xml/rowkeys_nepali_traditional2.xml
index 45620a9d7eeb7e09383422069d18daa820512e84..5ea14ea0d127d88d67d5a57e4313d6238c923c28 100644
--- a/java/res/xml/rowkeys_nepali_traditional2.xml
+++ b/java/res/xml/rowkeys_nepali_traditional2.xml
@@ -27,15 +27,15 @@
         >
             <!-- U+0906: "आ" DEVANAGARI LETTER AA -->
             <Key
-                latin:keyLabel="&#x0906;"
+                latin:keySpec="&#x0906;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0919/U+094D: "ङ्" DEVANAGARI LETTER NGA/DEVANAGARI SIGN VIRAMA -->
             <Key
-                latin:keyLabel="&#x0919;&#x094D;"
+                latin:keySpec="&#x0919;&#x094D;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0921/U+094D/U+0921: "ड्ड" DEVANAGARI LETTER DDA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DDA -->
             <Key
-                latin:keyLabel="&#x0921;&#x094D;&#x0921;"
+                latin:keySpec="&#x0921;&#x094D;&#x0921;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -44,11 +44,11 @@
                 latin:keyboardLayout="@xml/key_devanagari_sign_candrabindu" />
             <!-- U+0926/U+094D/U+0926: "द्द" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DA -->
             <Key
-                latin:keyLabel="&#x0926;&#x094D;&#x0926;"
+                latin:keySpec="&#x0926;&#x094D;&#x0926;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+091D: "झ" DEVANAGARI LETTER JHA -->
             <Key
-                latin:keyLabel="&#x091D;"
+                latin:keySpec="&#x091D;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -59,7 +59,7 @@
                 latin:keyStyle="baseKeyDevanagariVowelSignO" />
             <!-- U+092B: "फ" DEVANAGARI LETTER PHA -->
             <Key
-                latin:keyLabel="&#x092B;"
+                latin:keySpec="&#x092B;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -70,7 +70,7 @@
                 latin:keyStyle="baseKeyDevanagariVowelSignIi" />
             <!-- U+091F/U+094D/U+0920: "ट्ठ" DEVANAGARI LETTER TTA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER TTHA -->
             <Key
-                latin:keyLabel="&#x091F;&#x094D;&#x0920;"
+                latin:keySpec="&#x091F;&#x094D;&#x0920;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -83,15 +83,15 @@
         <default>
             <!-- U+092C: "ब" DEVANAGARI LETTER BA -->
             <Key
-                latin:keyLabel="&#x092C;"
+                latin:keySpec="&#x092C;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0915: "क" DEVANAGARI LETTER KA -->
             <Key
-                latin:keyLabel="&#x0915;"
+                latin:keySpec="&#x0915;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+092E: "म" DEVANAGARI LETTER MA -->
             <Key
-                latin:keyLabel="&#x092E;"
+                latin:keySpec="&#x092E;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -102,19 +102,19 @@
                 latin:keyStyle="baseKeyDevanagariVowelSignAa" />
             <!-- U+0928: "न" DEVANAGARI LETTER NA -->
             <Key
-                latin:keyLabel="&#x0928;"
+                latin:keySpec="&#x0928;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+091C: "ज" DEVANAGARI LETTER JA -->
             <Key
-                latin:keyLabel="&#x091C;"
+                latin:keySpec="&#x091C;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0935: "व" DEVANAGARI LETTER VA -->
             <Key
-                latin:keyLabel="&#x0935;"
+                latin:keySpec="&#x0935;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+092A: "प" DEVANAGARI LETTER PA -->
             <Key
-                latin:keyLabel="&#x092A;"
+                latin:keySpec="&#x092A;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -125,7 +125,7 @@
                 latin:keyStyle="baseKeyDevanagariVowelSignI" />
             <!-- U+0938: "स" DEVANAGARI LETTER SA -->
             <Key
-                latin:keyLabel="&#x0938;"
+                latin:keySpec="&#x0938;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
diff --git a/java/res/xml/rowkeys_nepali_traditional3_left6.xml b/java/res/xml/rowkeys_nepali_traditional3_left6.xml
index 1cacced8318d4b1ce7523e569bf207844c667da9..59f6e651aacc60025ee5d8e7403914f233b60cb8 100644
--- a/java/res/xml/rowkeys_nepali_traditional3_left6.xml
+++ b/java/res/xml/rowkeys_nepali_traditional3_left6.xml
@@ -27,19 +27,19 @@
         >
             <!-- U+0915/U+094D: "क्" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA -->
             <Key
-                latin:keyLabel="&#x0915;&#x094D;"
+                latin:keySpec="&#x0915;&#x094D;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0939/U+094D/U+092E: "ह्म" DEVANAGARI LETTER HA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER MA -->
             <Key
-                latin:keyLabel="&#x0939;&#x094D;&#x092E;"
+                latin:keySpec="&#x0939;&#x094D;&#x092E;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R -->
             <Key
-                latin:keyLabel="&#x090B;"
+                latin:keySpec="&#x090B;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0950: "ॐ" DEVANAGARI OM -->
             <Key
-                latin:keyLabel="&#x0950;"
+                latin:keySpec="&#x0950;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -50,33 +50,33 @@
                 latin:keyStyle="baseKeyDevanagariVowelSignAu" />
             <!-- U+0926/U+094D/U+092F: "द्य" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER YA -->
             <Key
-                latin:keyLabel="&#x0926;&#x094D;&#x092F;"
+                latin:keySpec="&#x0926;&#x094D;&#x092F;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
         </case>
         <default>
             <!-- U+0936: "श" DEVANAGARI LETTER SHA -->
             <Key
-                latin:keyLabel="&#x0936;"
+                latin:keySpec="&#x0936;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0939: "ह" DEVANAGARI LETTER HA -->
             <Key
-                latin:keyLabel="&#x0939;"
+                latin:keySpec="&#x0939;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0905: "अ" DEVANAGARI LETTER A -->
             <Key
-                latin:keyLabel="&#x0905;"
+                latin:keySpec="&#x0905;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0916: "ख" DEVANAGARI LETTER KHA -->
             <Key
-                latin:keyLabel="&#x0916;"
+                latin:keySpec="&#x0916;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0926: "द" DEVANAGARI LETTER DA -->
             <Key
-                latin:keyLabel="&#x0926;"
+                latin:keySpec="&#x0926;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0932: "ल" DEVANAGARI LETTER LA -->
             <Key
-                latin:keyLabel="&#x0932;"
+                latin:keySpec="&#x0932;"
                 latin:keyLabelFlags="fontNormal" />
         </default>
     </switch>
diff --git a/java/res/xml/rowkeys_nepali_traditional3_right3.xml b/java/res/xml/rowkeys_nepali_traditional3_right3.xml
index b2e01e481b3a08a1bb30fa14e6e695b46ed645ba..d6a74d46a882340d838e35d6aba076e4b9ae3f64 100644
--- a/java/res/xml/rowkeys_nepali_traditional3_right3.xml
+++ b/java/res/xml/rowkeys_nepali_traditional3_right3.xml
@@ -32,7 +32,7 @@
                 latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" />
             <!-- U+0919: "ङ" DEVANAGARI LETTER NGA -->
             <Key
-                latin:keyLabel="&#x0919;"
+                latin:keySpec="&#x0919;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -52,12 +52,12 @@
                 latin:keyStyle="baseKeyDevanagariVowelSignE" />
             <!-- U+0964: "।" DEVANAGARI DANDA -->
             <Key
-                latin:keyLabel="&#x0964;"
+                latin:keySpec="&#x0964;"
                 latin:keyLabelFlags="fontNormal" />
              <!-- U+0930: "र" DEVANAGARI LETTER RA
                   U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U -->
             <Key
-                latin:keyLabel="&#x0930;"
+                latin:keySpec="&#x0930;"
                 latin:moreKeys="&#x0930;&#x0941;"
                 latin:keyLabelFlags="fontNormal" />
          </default>
diff --git a/java/res/xml/rowkeys_nepali_traditional3_right5.xml b/java/res/xml/rowkeys_nepali_traditional3_right5.xml
index 87f061610bc6f0bebe8a2104d4fd30eb24a07b2d..a34f40097729bf241b59fd46d8dfd1ece75b6366 100644
--- a/java/res/xml/rowkeys_nepali_traditional3_right5.xml
+++ b/java/res/xml/rowkeys_nepali_traditional3_right5.xml
@@ -32,7 +32,7 @@
                 latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" />
             <!-- U+0919: "ङ" DEVANAGARI LETTER NGA -->
             <Key
-                latin:keyLabel="&#x0919;"
+                latin:keySpec="&#x0919;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
@@ -43,11 +43,11 @@
                 latin:keyStyle="baseKeyDevanagariVowelSignAi" />
             <!-- U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U -->
             <Key
-                latin:keyLabel="&#x0930;&#x0941;"
+                latin:keySpec="&#x0930;&#x0941;"
                 latin:moreKeys="!"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <Key
-                latin:keyLabel="\?" />
+                latin:keySpec="\?" />
         </case>
         <default>
             <!-- Because the font rendering system prior to API version 16 can't automatically
@@ -71,11 +71,11 @@
                 latin:keyStyle="baseKeyDevanagariVowelSignE" />
             <!-- U+0964: "।" DEVANAGARI DANDA -->
             <Key
-                latin:keyLabel="&#x0964;"
+                latin:keySpec="&#x0964;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0930: "र" DEVANAGARI LETTER RA -->
             <Key
-                latin:keyLabel="&#x0930;"
+                latin:keySpec="&#x0930;"
                 latin:moreKeys="!"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
diff --git a/java/res/xml/rowkeys_nordic1.xml b/java/res/xml/rowkeys_nordic1.xml
index 72ac86b2e9609fc76022222c726f15108bf3eb4b..40e556b98b78e6ddd1795861faea63cb1e5104eb 100644
--- a/java/res/xml/rowkeys_nordic1.xml
+++ b/java/res/xml/rowkeys_nordic1.xml
@@ -24,5 +24,5 @@
     <include
         latin:keyboardLayout="@xml/rowkeys_qwerty1" />
     <Key
-        latin:keyLabel="!text/keylabel_for_nordic_row1_11" />
+        latin:keySpec="!text/keylabel_for_nordic_row1_11" />
 </merge>
diff --git a/java/res/xml/rowkeys_nordic2.xml b/java/res/xml/rowkeys_nordic2.xml
index 836214abf930ffd0762c489ed304b61d90d0b5a7..4064e4f27fe06971039f98d5adfad16f4012d7df 100644
--- a/java/res/xml/rowkeys_nordic2.xml
+++ b/java/res/xml/rowkeys_nordic2.xml
@@ -24,9 +24,9 @@
     <include
         latin:keyboardLayout="@xml/rowkeys_qwerty2" />
     <Key
-        latin:keyLabel="!text/keylabel_for_nordic_row2_10"
+        latin:keySpec="!text/keylabel_for_nordic_row2_10"
         latin:moreKeys="!text/more_keys_for_nordic_row2_10" />
     <Key
-        latin:keyLabel="!text/keylabel_for_nordic_row2_11"
+        latin:keySpec="!text/keylabel_for_nordic_row2_11"
         latin:moreKeys="!text/more_keys_for_nordic_row2_11" />
 </merge>
diff --git a/java/res/xml/rowkeys_pcqwerty1.xml b/java/res/xml/rowkeys_pcqwerty1.xml
index 1ac264afa484ceb1d3b42ca4598c6d3ae77dda84..fdb50729b8df7b457303765375f08805cbce553f 100644
--- a/java/res/xml/rowkeys_pcqwerty1.xml
+++ b/java/res/xml/rowkeys_pcqwerty1.xml
@@ -22,60 +22,60 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="`"
+        latin:keySpec="`"
         latin:additionalMoreKeys="~" />
     <Key
-        latin:keyLabel="1"
+        latin:keySpec="1"
         latin:additionalMoreKeys="!,!text/more_keys_for_exclamation"
         latin:moreKeys="!text/more_keys_for_symbols_1" />
     <Key
-        latin:keyLabel="2"
+        latin:keySpec="2"
         latin:additionalMoreKeys="\@"
         latin:moreKeys="!text/more_keys_for_symbols_2" />
     <Key
-        latin:keyLabel="3"
+        latin:keySpec="3"
         latin:additionalMoreKeys="\#"
         latin:moreKeys="!text/more_keys_for_symbols_3" />
     <Key
-        latin:keyLabel="4"
+        latin:keySpec="4"
         latin:additionalMoreKeys="$"
         latin:moreKeys="!text/more_keys_for_symbols_4" />
     <Key
-        latin:keyLabel="5"
+        latin:keySpec="5"
         latin:additionalMoreKeys="\\%"
         latin:moreKeys="!text/more_keys_for_symbols_5" />
     <Key
-        latin:keyLabel="6"
+        latin:keySpec="6"
         latin:additionalMoreKeys="^"
         latin:moreKeys="!text/more_keys_for_symbols_6" />
     <Key
-        latin:keyLabel="7"
+        latin:keySpec="7"
         latin:additionalMoreKeys="&amp;"
         latin:moreKeys="!text/more_keys_for_symbols_7" />
     <Key
-        latin:keyLabel="8"
+        latin:keySpec="8"
         latin:additionalMoreKeys="*"
         latin:moreKeys="!text/more_keys_for_symbols_8" />
     <Key
-        latin:keyLabel="9"
+        latin:keySpec="9"
         latin:additionalMoreKeys="("
         latin:moreKeys="!text/more_keys_for_symbols_9" />
     <Key
-        latin:keyLabel="0"
+        latin:keySpec="0"
         latin:additionalMoreKeys=")"
         latin:moreKeys="!text/more_keys_for_symbols_0" />
     <!-- U+2013: "–" EN DASH
          U+2014: "—" EM DASH
          U+00B7: "·" MIDDLE DOT -->
     <Key
-        latin:keyLabel="-"
+        latin:keySpec="-"
         latin:additionalMoreKeys="_"
         latin:moreKeys="&#x2013;,&#x2014;,&#x00B7;" />
     <!-- U+221E: "∞" INFINITY
          U+2260: "≠" NOT EQUAL TO
          U+2248: "≈" ALMOST EQUAL TO -->
     <Key
-        latin:keyLabel="="
+        latin:keySpec="="
         latin:additionalMoreKeys="+"
         latin:moreKeys="!fixedColumnOrder!4,&#x221E;,&#x2260;,&#x2248;,%" />
 </merge>
diff --git a/java/res/xml/rowkeys_pcqwerty1_shift.xml b/java/res/xml/rowkeys_pcqwerty1_shift.xml
index 718acfd24aa9af4cf02f9c191412749dbf7bf022..b9597c066d2fa49a493dc1103a8089baef31f372 100644
--- a/java/res/xml/rowkeys_pcqwerty1_shift.xml
+++ b/java/res/xml/rowkeys_pcqwerty1_shift.xml
@@ -22,39 +22,39 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="~" />
+        latin:keySpec="~" />
     <Key
-        latin:keyLabel="!"
+        latin:keySpec="!"
         latin:additionalMoreKeys="!text/more_keys_for_exclamation" />
     <Key
-        latin:keyLabel="\@" />
+        latin:keySpec="\@" />
     <Key
-        latin:keyLabel="\#" />
+        latin:keySpec="\#" />
     <Key
-        latin:keyLabel="$"
+        latin:keySpec="$"
         latin:additionalMoreKeys="!text/more_keys_for_currency_dollar" />
     <Key
-        latin:keyLabel="%"
+        latin:keySpec="%"
         latin:additionalMoreKeys="!text/more_keys_for_symbols_percent" />
     <Key
-        latin:keyLabel="^" />
+        latin:keySpec="^" />
     <Key
-        latin:keyLabel="&amp;" />
+        latin:keySpec="&amp;" />
     <Key
-        latin:keyLabel="*"
+        latin:keySpec="*"
         latin:additionalMoreKeys="!text/more_keys_for_star" />
     <Key
-        latin:keyLabel="(" />
+        latin:keySpec="(" />
     <Key
-        latin:keyLabel=")" />
+        latin:keySpec=")" />
     <Key
-        latin:keyLabel="_" />
+        latin:keySpec="_" />
     <!-- U+00B1: "±" PLUS-MINUS SIGN
          U+00D7: "×" MULTIPLICATION SIGN
          U+00F7: "÷" DIVISION SIGN
          U+221A: "√" SQUARE ROOT -->
     <Key
-        latin:keyLabel="+"
+        latin:keySpec="+"
         latin:additionalMoreKeys="!text/more_keys_for_plus"
         latin:moreKeys="&#x00B1;,&#x00D7;,&#x00F7;,&#x221A;" />
 </merge>
diff --git a/java/res/xml/rowkeys_qwerty1.xml b/java/res/xml/rowkeys_qwerty1.xml
index e7c9b590beefc79a8f74e2aa0e045f004400407f..7ebde8d000ed32767cd81b654dee31ce5e618f93 100644
--- a/java/res/xml/rowkeys_qwerty1.xml
+++ b/java/res/xml/rowkeys_qwerty1.xml
@@ -22,52 +22,52 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="!text/keylabel_for_q"
+        latin:keySpec="!text/keylabel_for_q"
         latin:keyHintLabel="1"
         latin:additionalMoreKeys="1"
         latin:moreKeys="!text/more_keys_for_q" />
     <Key
-        latin:keyLabel="!text/keylabel_for_w"
+        latin:keySpec="!text/keylabel_for_w"
         latin:keyHintLabel="2"
         latin:additionalMoreKeys="2"
         latin:moreKeys="!text/more_keys_for_w" />
     <Key
-        latin:keyLabel="e"
+        latin:keySpec="e"
         latin:keyHintLabel="3"
         latin:additionalMoreKeys="3"
         latin:moreKeys="!text/more_keys_for_e" />
     <Key
-        latin:keyLabel="r"
+        latin:keySpec="r"
         latin:keyHintLabel="4"
         latin:additionalMoreKeys="4"
         latin:moreKeys="!text/more_keys_for_r" />
     <Key
-        latin:keyLabel="t"
+        latin:keySpec="t"
         latin:keyHintLabel="5"
         latin:additionalMoreKeys="5"
         latin:moreKeys="!text/more_keys_for_t" />
     <Key
-        latin:keyLabel="!text/keylabel_for_y"
+        latin:keySpec="!text/keylabel_for_y"
         latin:keyHintLabel="6"
         latin:additionalMoreKeys="6"
         latin:moreKeys="!text/more_keys_for_y" />
     <Key
-        latin:keyLabel="u"
+        latin:keySpec="u"
         latin:keyHintLabel="7"
         latin:additionalMoreKeys="7"
         latin:moreKeys="!text/more_keys_for_u" />
     <Key
-        latin:keyLabel="i"
+        latin:keySpec="i"
         latin:keyHintLabel="8"
         latin:additionalMoreKeys="8"
         latin:moreKeys="!text/more_keys_for_i" />
     <Key
-        latin:keyLabel="o"
+        latin:keySpec="o"
         latin:keyHintLabel="9"
         latin:additionalMoreKeys="9"
         latin:moreKeys="!text/more_keys_for_o" />
     <Key
-        latin:keyLabel="p"
+        latin:keySpec="p"
         latin:keyHintLabel="0"
         latin:additionalMoreKeys="0" />
 </merge>
diff --git a/java/res/xml/rowkeys_qwerty2.xml b/java/res/xml/rowkeys_qwerty2.xml
index d9777d92065b91eeca6f8d6b41e2cc5dcef3b2a0..0700ccecd27322f0383633f70909bb9568994056 100644
--- a/java/res/xml/rowkeys_qwerty2.xml
+++ b/java/res/xml/rowkeys_qwerty2.xml
@@ -22,29 +22,29 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="a"
+        latin:keySpec="a"
         latin:moreKeys="!text/more_keys_for_a" />
     <Key
-        latin:keyLabel="s"
+        latin:keySpec="s"
         latin:moreKeys="!text/more_keys_for_s" />
     <Key
-        latin:keyLabel="d"
+        latin:keySpec="d"
         latin:moreKeys="!text/more_keys_for_d" />
     <Key
-        latin:keyLabel="f" />
+        latin:keySpec="f" />
     <Key
-        latin:keyLabel="g"
+        latin:keySpec="g"
         latin:moreKeys="!text/more_keys_for_g" />
     <Key
-        latin:keyLabel="h"
+        latin:keySpec="h"
         latin:moreKeys="!text/more_keys_for_h" />
     <Key
-        latin:keyLabel="j"
+        latin:keySpec="j"
         latin:moreKeys="!text/more_keys_for_j" />
     <Key
-        latin:keyLabel="k"
+        latin:keySpec="k"
         latin:moreKeys="!text/more_keys_for_k" />
     <Key
-        latin:keyLabel="l"
+        latin:keySpec="l"
         latin:moreKeys="!text/more_keys_for_l" />
 </merge>
diff --git a/java/res/xml/rowkeys_qwerty3.xml b/java/res/xml/rowkeys_qwerty3.xml
index b70fd729f78e6628021ad9bb693e55a955a5f114..b48606c25829563f4eaf0e1385daddf9d9b6b8ea 100644
--- a/java/res/xml/rowkeys_qwerty3.xml
+++ b/java/res/xml/rowkeys_qwerty3.xml
@@ -22,22 +22,22 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="z"
+        latin:keySpec="z"
         latin:moreKeys="!text/more_keys_for_z" />
     <Key
-        latin:keyLabel="!text/keylabel_for_x"
+        latin:keySpec="!text/keylabel_for_x"
         latin:moreKeys="!text/more_keys_for_x" />
     <Key
-        latin:keyLabel="c"
+        latin:keySpec="c"
         latin:moreKeys="!text/more_keys_for_c" />
     <Key
-        latin:keyLabel="v"
+        latin:keySpec="v"
         latin:moreKeys="!text/more_keys_for_v" />
     <Key
-        latin:keyLabel="b" />
+        latin:keySpec="b" />
     <Key
-        latin:keyLabel="n"
+        latin:keySpec="n"
         latin:moreKeys="!text/more_keys_for_n" />
     <Key
-        latin:keyLabel="m" />
+        latin:keySpec="m" />
 </merge>
diff --git a/java/res/xml/rowkeys_qwertz1.xml b/java/res/xml/rowkeys_qwertz1.xml
index d87f03ddcc81a381a982a8c981553f9078c2362b..61ce97b83fa467b3e6a45a530a5233a70ae8e628 100644
--- a/java/res/xml/rowkeys_qwertz1.xml
+++ b/java/res/xml/rowkeys_qwertz1.xml
@@ -22,51 +22,51 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="q"
+        latin:keySpec="q"
         latin:keyHintLabel="1"
         latin:additionalMoreKeys="1" />
     <Key
-        latin:keyLabel="w"
+        latin:keySpec="w"
         latin:keyHintLabel="2"
         latin:additionalMoreKeys="2"
         latin:moreKeys="!text/more_keys_for_w" />
     <Key
-        latin:keyLabel="e"
+        latin:keySpec="e"
         latin:keyHintLabel="3"
         latin:additionalMoreKeys="3"
         latin:moreKeys="!text/more_keys_for_e" />
     <Key
-        latin:keyLabel="r"
+        latin:keySpec="r"
         latin:keyHintLabel="4"
         latin:additionalMoreKeys="4"
         latin:moreKeys="!text/more_keys_for_r" />
     <Key
-        latin:keyLabel="t"
+        latin:keySpec="t"
         latin:keyHintLabel="5"
         latin:additionalMoreKeys="5"
         latin:moreKeys="!text/more_keys_for_t" />
     <Key
-        latin:keyLabel="z"
+        latin:keySpec="z"
         latin:keyHintLabel="6"
         latin:additionalMoreKeys="6"
         latin:moreKeys="!text/more_keys_for_z" />
      <Key
-        latin:keyLabel="u"
+        latin:keySpec="u"
         latin:keyHintLabel="7"
         latin:additionalMoreKeys="7"
         latin:moreKeys="!text/more_keys_for_u" />
     <Key
-        latin:keyLabel="i"
+        latin:keySpec="i"
         latin:keyHintLabel="8"
         latin:additionalMoreKeys="8"
         latin:moreKeys="!text/more_keys_for_i" />
     <Key
-        latin:keyLabel="o"
+        latin:keySpec="o"
         latin:keyHintLabel="9"
         latin:additionalMoreKeys="9"
         latin:moreKeys="!text/more_keys_for_o" />
     <Key
-        latin:keyLabel="p"
+        latin:keySpec="p"
         latin:keyHintLabel="0"
         latin:additionalMoreKeys="0" />
 </merge>
diff --git a/java/res/xml/rowkeys_qwertz3.xml b/java/res/xml/rowkeys_qwertz3.xml
index 9e39fe08ec2ae501668d75241e97c24fd242c40c..55a8ffa185cafcf053991b46000fbb7829c34d47 100644
--- a/java/res/xml/rowkeys_qwertz3.xml
+++ b/java/res/xml/rowkeys_qwertz3.xml
@@ -22,21 +22,21 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="y"
+        latin:keySpec="y"
         latin:moreKeys="!text/more_keys_for_y" />
     <Key
-        latin:keyLabel="x" />
+        latin:keySpec="x" />
     <Key
-        latin:keyLabel="c"
+        latin:keySpec="c"
         latin:moreKeys="!text/more_keys_for_c" />
     <Key
-        latin:keyLabel="v"
+        latin:keySpec="v"
         latin:moreKeys="!text/more_keys_for_v" />
     <Key
-        latin:keyLabel="b" />
+        latin:keySpec="b" />
     <Key
-        latin:keyLabel="n"
+        latin:keySpec="n"
         latin:moreKeys="!text/more_keys_for_n" />
     <Key
-        latin:keyLabel="m" />
+        latin:keySpec="m" />
 </merge>
diff --git a/java/res/xml/rowkeys_south_slavic1.xml b/java/res/xml/rowkeys_south_slavic1.xml
index 6117d46f11af066a011b85d5f1f25c8f05e480ec..8b1d696b7242d3b9fefe78c932542c31dc6feaa2 100644
--- a/java/res/xml/rowkeys_south_slavic1.xml
+++ b/java/res/xml/rowkeys_south_slavic1.xml
@@ -23,56 +23,56 @@
 >
     <!-- U+0459: "Ñ™" CYRILLIC SMALL LETTER LJE -->
     <Key
-        latin:keyLabel="&#x0459;"
+        latin:keySpec="&#x0459;"
         latin:keyHintLabel="1"
         latin:additionalMoreKeys="1" />
     <!-- U+045A: "Ñš" CYRILLIC SMALL LETTER NJE -->
     <Key
-        latin:keyLabel="&#x045A;"
+        latin:keySpec="&#x045A;"
         latin:keyHintLabel="2"
         latin:additionalMoreKeys="2" />
     <!-- U+0435: "е" CYRILLIC SMALL LETTER IE -->
     <Key
-        latin:keyLabel="&#x0435;"
+        latin:keySpec="&#x0435;"
         latin:keyHintLabel="3"
         latin:additionalMoreKeys="3"
         latin:moreKeys="!text/more_keys_for_cyrillic_ie" />
     <!-- U+0440: "Ñ€" CYRILLIC SMALL LETTER ER -->
     <Key
-        latin:keyLabel="&#x0440;"
+        latin:keySpec="&#x0440;"
         latin:keyHintLabel="4"
         latin:additionalMoreKeys="4" />
     <!-- U+0442: "Ñ‚" CYRILLIC SMALL LETTER TE -->
     <Key
-        latin:keyLabel="&#x0442;"
+        latin:keySpec="&#x0442;"
         latin:keyHintLabel="5"
         latin:additionalMoreKeys="5" />
     <Key
-        latin:keyLabel="!text/keylabel_for_south_slavic_row1_6"
+        latin:keySpec="!text/keylabel_for_south_slavic_row1_6"
         latin:keyHintLabel="6"
         latin:additionalMoreKeys="6" />
     <!-- U+0443: "у" CYRILLIC SMALL LETTER U -->
     <Key
-        latin:keyLabel="&#x0443;"
+        latin:keySpec="&#x0443;"
         latin:keyHintLabel="7"
         latin:additionalMoreKeys="7" />
     <!-- U+0438: "и" CYRILLIC SMALL LETTER I -->
     <Key
-        latin:keyLabel="&#x0438;"
+        latin:keySpec="&#x0438;"
         latin:keyHintLabel="8"
         latin:additionalMoreKeys="8"
         latin:moreKeys="!text/more_keys_for_cyrillic_i" />
     <!-- U+043E: "о" CYRILLIC SMALL LETTER O -->
     <Key
-        latin:keyLabel="&#x043E;"
+        latin:keySpec="&#x043E;"
         latin:keyHintLabel="9"
         latin:additionalMoreKeys="9" />
     <!-- U+043F: "п" CYRILLIC SMALL LETTER PE -->
     <Key
-        latin:keyLabel="&#x043F;"
+        latin:keySpec="&#x043F;"
         latin:keyHintLabel="0"
         latin:additionalMoreKeys="0" />
     <!-- U+0448: "ш" CYRILLIC SMALL LETTER SHA -->
     <Key
-        latin:keyLabel="&#x0448;" />
+        latin:keySpec="&#x0448;" />
 </merge>
diff --git a/java/res/xml/rowkeys_south_slavic2.xml b/java/res/xml/rowkeys_south_slavic2.xml
index 88e8940539f542a0fec28977643035152ed37614..fa24264420953526ca70da8e7859f13da8de8c72 100644
--- a/java/res/xml/rowkeys_south_slavic2.xml
+++ b/java/res/xml/rowkeys_south_slavic2.xml
@@ -23,34 +23,34 @@
 >
     <!-- U+0430: "а" CYRILLIC SMALL LETTER A -->
     <Key
-        latin:keyLabel="&#x0430;" />
+        latin:keySpec="&#x0430;" />
     <!-- U+0441: "с" CYRILLIC SMALL LETTER ES -->
     <Key
-        latin:keyLabel="&#x0441;" />
+        latin:keySpec="&#x0441;" />
     <!-- U+0434: "д" CYRILLIC SMALL LETTER DE -->
     <Key
-        latin:keyLabel="&#x0434;" />
+        latin:keySpec="&#x0434;" />
     <!-- U+0444: "Ñ„" CYRILLIC SMALL LETTER EF -->
     <Key
-        latin:keyLabel="&#x0444;" />
+        latin:keySpec="&#x0444;" />
     <!-- U+0433: "г" CYRILLIC SMALL LETTER GHE -->
     <Key
-        latin:keyLabel="&#x0433;" />
+        latin:keySpec="&#x0433;" />
     <!-- U+0445: "Ñ…" CYRILLIC SMALL LETTER HA -->
     <Key
-        latin:keyLabel="&#x0445;" />
+        latin:keySpec="&#x0445;" />
     <!-- U+0458: "ј" CYRILLIC SMALL LETTER JE -->
     <Key
-        latin:keyLabel="&#x0458;" />
+        latin:keySpec="&#x0458;" />
     <!-- U+043A: "к" CYRILLIC SMALL LETTER KA -->
     <Key
-        latin:keyLabel="&#x043A;" />
+        latin:keySpec="&#x043A;" />
     <!-- U+043B: "л" CYRILLIC SMALL LETTER EL -->
     <Key
-        latin:keyLabel="&#x043B;" />
+        latin:keySpec="&#x043B;" />
     <!-- U+0447: "ч" CYRILLIC SMALL LETTER CHE -->
     <Key
-        latin:keyLabel="&#x0447;" />
+        latin:keySpec="&#x0447;" />
     <Key
-        latin:keyLabel="!text/keylabel_for_south_slavic_row2_11" />
+        latin:keySpec="!text/keylabel_for_south_slavic_row2_11" />
 </merge>
diff --git a/java/res/xml/rowkeys_south_slavic3.xml b/java/res/xml/rowkeys_south_slavic3.xml
index b0155091152eb6bedd5f1ec13e3e83fbee0a2e56..8b54ec8c1fccd55a4244a82f6debd8596f7e3e21 100644
--- a/java/res/xml/rowkeys_south_slavic3.xml
+++ b/java/res/xml/rowkeys_south_slavic3.xml
@@ -22,28 +22,28 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="!text/keylabel_for_south_slavic_row3_1" />
+        latin:keySpec="!text/keylabel_for_south_slavic_row3_1" />
     <!-- U+045F: "ÑŸ" CYRILLIC SMALL LETTER DZHE -->
     <Key
-        latin:keyLabel="&#x045F;" />
+        latin:keySpec="&#x045F;" />
     <!-- U+0446: "ц" CYRILLIC SMALL LETTER TSE -->
     <Key
-        latin:keyLabel="&#x0446;" />
+        latin:keySpec="&#x0446;" />
     <!-- U+0432: "в" CYRILLIC SMALL LETTER VE -->
     <Key
-        latin:keyLabel="&#x0432;" />
+        latin:keySpec="&#x0432;" />
     <!-- U+0431: "б" CYRILLIC SMALL LETTER BE -->
     <Key
-        latin:keyLabel="&#x0431;" />
+        latin:keySpec="&#x0431;" />
     <!-- U+043D: "н" CYRILLIC SMALL LETTER EN -->
     <Key
-        latin:keyLabel="&#x043D;" />
+        latin:keySpec="&#x043D;" />
     <!-- U+043C: "м" CYRILLIC SMALL LETTER EM -->
     <Key
-        latin:keyLabel="&#x043C;" />
+        latin:keySpec="&#x043C;" />
     <Key
-        latin:keyLabel="!text/keylabel_for_south_slavic_row3_8" />
+        latin:keySpec="!text/keylabel_for_south_slavic_row3_8" />
     <!-- U+0436: "ж" CYRILLIC SMALL LETTER ZHE -->
     <Key
-        latin:keyLabel="&#x0436;" />
+        latin:keySpec="&#x0436;" />
 </merge>
diff --git a/java/res/xml/rowkeys_spanish2.xml b/java/res/xml/rowkeys_spanish2.xml
index 335dff33c6bc104b8f87b29d057e9bb32661f483..68632fd2caf55290790a2eaaf850a7571483d16a 100644
--- a/java/res/xml/rowkeys_spanish2.xml
+++ b/java/res/xml/rowkeys_spanish2.xml
@@ -25,5 +25,5 @@
         latin:keyboardLayout="@xml/rowkeys_qwerty2" />
     <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE -->
     <Key
-        latin:keyLabel="!text/keylabel_for_spanish_row2_10" />
+        latin:keySpec="!text/keylabel_for_spanish_row2_10" />
  </merge>
diff --git a/java/res/xml/rowkeys_swiss1.xml b/java/res/xml/rowkeys_swiss1.xml
index e3b84261936b43635b7e9a3608a0d856d31c6e55..458771d0c53cd35df581e0a234c50c993f28a6a9 100644
--- a/java/res/xml/rowkeys_swiss1.xml
+++ b/java/res/xml/rowkeys_swiss1.xml
@@ -24,6 +24,6 @@
     <include
         latin:keyboardLayout="@xml/rowkeys_qwertz1" />
     <Key
-        latin:keyLabel="!text/keylabel_for_swiss_row1_11"
+        latin:keySpec="!text/keylabel_for_swiss_row1_11"
         latin:moreKeys="!text/more_keys_for_swiss_row1_11" />
 </merge>
diff --git a/java/res/xml/rowkeys_swiss2.xml b/java/res/xml/rowkeys_swiss2.xml
index 5364a448c57428eab4d53f62efe3c35cf4458e2b..0c25fe806e3def4f55336921ae9147176e63f20d 100644
--- a/java/res/xml/rowkeys_swiss2.xml
+++ b/java/res/xml/rowkeys_swiss2.xml
@@ -24,9 +24,9 @@
     <include
         latin:keyboardLayout="@xml/rowkeys_qwerty2" />
     <Key
-        latin:keyLabel="!text/keylabel_for_swiss_row2_10"
+        latin:keySpec="!text/keylabel_for_swiss_row2_10"
         latin:moreKeys="!text/more_keys_for_swiss_row2_10" />
     <Key
-        latin:keyLabel="!text/keylabel_for_swiss_row2_11"
+        latin:keySpec="!text/keylabel_for_swiss_row2_11"
         latin:moreKeys="!text/more_keys_for_swiss_row2_11" />
 </merge>
diff --git a/java/res/xml/rowkeys_symbols1.xml b/java/res/xml/rowkeys_symbols1.xml
index 6e2f92dd98fa6c16938cbfc5c46d9aac59d17d17..b35b180796b59f19b07a63a7c88272d309fccb2f 100644
--- a/java/res/xml/rowkeys_symbols1.xml
+++ b/java/res/xml/rowkeys_symbols1.xml
@@ -22,43 +22,43 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="!text/keylabel_for_symbols_1"
+        latin:keySpec="!text/keylabel_for_symbols_1"
         latin:additionalMoreKeys="!text/additional_more_keys_for_symbols_1"
         latin:moreKeys="!text/more_keys_for_symbols_1" />
     <Key
-        latin:keyLabel="!text/keylabel_for_symbols_2"
+        latin:keySpec="!text/keylabel_for_symbols_2"
         latin:additionalMoreKeys="!text/additional_more_keys_for_symbols_2"
         latin:moreKeys="!text/more_keys_for_symbols_2" />
     <Key
-        latin:keyLabel="!text/keylabel_for_symbols_3"
+        latin:keySpec="!text/keylabel_for_symbols_3"
         latin:additionalMoreKeys="!text/additional_more_keys_for_symbols_3"
         latin:moreKeys="!text/more_keys_for_symbols_3" />
     <Key
-        latin:keyLabel="!text/keylabel_for_symbols_4"
+        latin:keySpec="!text/keylabel_for_symbols_4"
         latin:additionalMoreKeys="!text/additional_more_keys_for_symbols_4"
         latin:moreKeys="!text/more_keys_for_symbols_4" />
     <Key
-        latin:keyLabel="!text/keylabel_for_symbols_5"
+        latin:keySpec="!text/keylabel_for_symbols_5"
         latin:additionalMoreKeys="!text/additional_more_keys_for_symbols_5"
         latin:moreKeys="!text/more_keys_for_symbols_5" />
     <Key
-        latin:keyLabel="!text/keylabel_for_symbols_6"
+        latin:keySpec="!text/keylabel_for_symbols_6"
         latin:additionalMoreKeys="!text/additional_more_keys_for_symbols_6"
         latin:moreKeys="!text/more_keys_for_symbols_6" />
     <Key
-        latin:keyLabel="!text/keylabel_for_symbols_7"
+        latin:keySpec="!text/keylabel_for_symbols_7"
         latin:additionalMoreKeys="!text/additional_more_keys_for_symbols_7"
         latin:moreKeys="!text/more_keys_for_symbols_7" />
     <Key
-        latin:keyLabel="!text/keylabel_for_symbols_8"
+        latin:keySpec="!text/keylabel_for_symbols_8"
         latin:additionalMoreKeys="!text/additional_more_keys_for_symbols_8"
         latin:moreKeys="!text/more_keys_for_symbols_8" />
     <Key
-        latin:keyLabel="!text/keylabel_for_symbols_9"
+        latin:keySpec="!text/keylabel_for_symbols_9"
         latin:additionalMoreKeys="!text/additional_more_keys_for_symbols_9"
         latin:moreKeys="!text/more_keys_for_symbols_9" />
     <Key
-        latin:keyLabel="!text/keylabel_for_symbols_0"
+        latin:keySpec="!text/keylabel_for_symbols_0"
         latin:additionalMoreKeys="!text/additional_more_keys_for_symbols_0"
         latin:moreKeys="!text/more_keys_for_symbols_0" />
 </merge>
diff --git a/java/res/xml/rowkeys_symbols2.xml b/java/res/xml/rowkeys_symbols2.xml
index 76cbf625929dc24363fbf4061f2f345c06555ddf..fe8653d1cd27260e8e62baf6e7defc16200c08c1 100644
--- a/java/res/xml/rowkeys_symbols2.xml
+++ b/java/res/xml/rowkeys_symbols2.xml
@@ -28,36 +28,36 @@
             <!-- U+066C: "Ù¬" ARABIC THOUSANDS SEPARATOR
                  U+066B: "Ù«" ARABIC DECIMAL SEPARATOR -->
             <Key
-                latin:keyLabel="&#x066C;"
+                latin:keySpec="&#x066C;"
                 latin:keyHintLabel="\@"
                 latin:moreKeys="\@" />
             <Key
-                latin:keyLabel="&#x066B;"
+                latin:keySpec="&#x066B;"
                 latin:keyHintLabel="\#"
                 latin:moreKeys="\#" />
         </case>
         <default>
             <Key
-                latin:keyLabel="\@" />
+                latin:keySpec="\@" />
             <Key
-                latin:keyLabel="\#" />
+                latin:keySpec="\#" />
         </default>
     </switch>
     <Key
         latin:keyStyle="currencyKeyStyle" />
     <Key
-        latin:keyLabel="!text/keylabel_for_symbols_percent"
+        latin:keySpec="!text/keylabel_for_symbols_percent"
         latin:moreKeys="!text/more_keys_for_symbols_percent" />
     <Key
-        latin:keyLabel="&amp;" />
+        latin:keySpec="&amp;" />
     <!-- U+2013: "–" EN DASH
          U+2014: "—" EM DASH
          U+00B7: "·" MIDDLE DOT -->
     <Key
-        latin:keyLabel="-"
+        latin:keySpec="-"
         latin:moreKeys="_,&#x2013;,&#x2014;,&#x00B7;" />
     <Key
-        latin:keyLabel="+"
+        latin:keySpec="+"
         latin:moreKeys="!text/more_keys_for_plus" />
     <include
         latin:keyboardLayout="@xml/keys_parentheses" />
diff --git a/java/res/xml/rowkeys_symbols3.xml b/java/res/xml/rowkeys_symbols3.xml
index 43fe1082c040c6eb2d1f4a897eb637d8a604e796..01ca0301da43c657a75257ddad8907178c2ac60b 100644
--- a/java/res/xml/rowkeys_symbols3.xml
+++ b/java/res/xml/rowkeys_symbols3.xml
@@ -22,7 +22,7 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="*"
+        latin:keySpec="*"
         latin:moreKeys="!text/more_keys_for_star" />
     <switch>
         <case
@@ -32,30 +32,30 @@
             <!-- U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
                  U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
             <Key
-                latin:keyLabel="&#x00AB;|&#x00BB;"
+                latin:keySpec="&#x00AB;|&#x00BB;"
                 latin:moreKeys="!text/more_keys_for_double_quote" />
             <Key
-                latin:keyLabel="&#x00BB;|&#x00AB;"
+                latin:keySpec="&#x00BB;|&#x00AB;"
                 latin:moreKeys="!text/more_keys_for_single_quote" />
         </case>
         <default>
             <Key
-                latin:keyLabel="&quot;"
+                latin:keySpec="&quot;"
                 latin:moreKeys="!text/more_keys_for_double_quote" />
             <Key
-                latin:keyLabel="\'"
+                latin:keySpec="\'"
                 latin:moreKeys="!text/more_keys_for_single_quote" />
         </default>
     </switch>
     <Key
-        latin:keyLabel=":" />
+        latin:keySpec=":" />
     <Key
-        latin:keyLabel="!text/keylabel_for_symbols_semicolon"
+        latin:keySpec="!text/keylabel_for_symbols_semicolon"
         latin:moreKeys="!text/more_keys_for_symbols_semicolon" />
     <Key
-        latin:keyLabel="!"
+        latin:keySpec="!"
         latin:moreKeys="!text/more_keys_for_exclamation" />
     <Key
-        latin:keyLabel="!text/keylabel_for_symbols_question"
+        latin:keySpec="!text/keylabel_for_symbols_question"
         latin:moreKeys="!text/more_keys_for_question" />
 </merge>
diff --git a/java/res/xml/rowkeys_symbols_shift1.xml b/java/res/xml/rowkeys_symbols_shift1.xml
index 6013493e57d110ab81cdb23ff7d448fb4d448ed4..7cb3213f02e9643a7ff69f48f0f547003d2cc849 100644
--- a/java/res/xml/rowkeys_symbols_shift1.xml
+++ b/java/res/xml/rowkeys_symbols_shift1.xml
@@ -22,35 +22,35 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="~" />
+        latin:keySpec="~" />
     <Key
-        latin:keyLabel="`" />
+        latin:keySpec="`" />
     <Key
-        latin:keyLabel="|" />
+        latin:keySpec="|" />
     <!-- U+2022: "•" BULLET -->
     <Key
-        latin:keyLabel="&#x2022;"
+        latin:keySpec="&#x2022;"
         latin:moreKeys="!text/more_keys_for_bullet" />
     <!-- U+221A: "√" SQUARE ROOT -->
     <Key
-        latin:keyLabel="&#x221A;" />
+        latin:keySpec="&#x221A;" />
     <!-- U+03A0: "Π" GREEK CAPITAL LETTER PI
          U+03C0: "Ï€" GREEK SMALL LETTER PI  -->
     <Key
-        latin:keyLabel="&#x03A0;"
+        latin:keySpec="&#x03A0;"
         latin:moreKeys="&#x03C0;" />
     <!-- U+00F7: "÷" DIVISION SIGN -->
     <Key
-        latin:keyLabel="&#x00F7;" />
+        latin:keySpec="&#x00F7;" />
     <!-- U+00D7: "×" MULTIPLICATION SIGN -->
     <Key
-        latin:keyLabel="&#x00D7;" />
+        latin:keySpec="&#x00D7;" />
     <!-- U+00B6: "¶" PILCROW SIGN
          U+00A7: "§" SECTION SIGN -->
     <Key
-        latin:keyLabel="&#x00B6;"
+        latin:keySpec="&#x00B6;"
         latin:moreKeys="&#x00A7;" />
     <!-- U+2206: "∆" INCREMENT -->
     <Key
-        latin:keyLabel="&#x2206;" />
+        latin:keySpec="&#x2206;" />
 </merge>
diff --git a/java/res/xml/rowkeys_symbols_shift2.xml b/java/res/xml/rowkeys_symbols_shift2.xml
index 36f92143f5c5966876aa043238bfc086b9e1ad2e..39a58030b6ec85682f923b743889baa5f3f8ea3c 100644
--- a/java/res/xml/rowkeys_symbols_shift2.xml
+++ b/java/res/xml/rowkeys_symbols_shift2.xml
@@ -34,19 +34,19 @@
          U+2190: "←" LEFTWARDS ARROW
          U+2192: "→" RIGHTWARDS ARROW -->
     <Key
-        latin:keyLabel="^"
+        latin:keySpec="^"
         latin:moreKeys="&#x2191;,&#x2193;,&#x2190;,&#x2192;" />
     <!-- U+00B0: "°" DEGREE SIGN
          U+2032: "′" PRIME
          U+2033: "″" DOUBLE PRIME -->
     <Key
-        latin:keyLabel="&#x00B0;"
+        latin:keySpec="&#x00B0;"
         latin:moreKeys="&#x2032;,&#x2033;" />
     <!-- U+2260: "≠" NOT EQUAL TO
          U+2248: "≈" ALMOST EQUAL TO
          U+221E: "∞" INFINITY -->
     <Key
-        latin:keyLabel="="
+        latin:keySpec="="
         latin:moreKeys="&#x2260;,&#x2248;,&#x221E;" />
     <include
         latin:keyboardLayout="@xml/keys_curly_brackets" />
diff --git a/java/res/xml/rowkeys_symbols_shift3.xml b/java/res/xml/rowkeys_symbols_shift3.xml
index 5fe1c74502d1c8df28f7431bee6f3e5f5971dcf2..92ff97bb0ed3841be811b81d91173c02682ee986 100644
--- a/java/res/xml/rowkeys_symbols_shift3.xml
+++ b/java/res/xml/rowkeys_symbols_shift3.xml
@@ -22,19 +22,19 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <Key
-        latin:keyLabel="\\" />
+        latin:keySpec="\\" />
     <!-- U+00A9: "©" COPYRIGHT SIGN -->
     <Key
-        latin:keyLabel="&#x00A9;" />
+        latin:keySpec="&#x00A9;" />
     <!-- U+00AE: "®" REGISTERED SIGN -->
     <Key
-        latin:keyLabel="&#x00AE;" />
+        latin:keySpec="&#x00AE;" />
     <!-- U+2122: "â„¢" TRADE MARK SIGN -->
     <Key
-        latin:keyLabel="&#x2122;" />
+        latin:keySpec="&#x2122;" />
     <!-- U+2105: "â„…" CARE OF -->
     <Key
-        latin:keyLabel="&#x2105;" />
+        latin:keySpec="&#x2105;" />
     <include
         latin:keyboardLayout="@xml/keys_square_brackets" />
 </merge>
diff --git a/java/res/xml/rowkeys_thai1.xml b/java/res/xml/rowkeys_thai1.xml
index 805822f06ab12fa081e92a9e3e415530e075ca4f..e42bda391d5309ce78e837f769a54ec4c6d984a8 100644
--- a/java/res/xml/rowkeys_thai1.xml
+++ b/java/res/xml/rowkeys_thai1.xml
@@ -26,76 +26,76 @@
             latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
         >
             <Key
-                latin:keyLabel="+" />
+                latin:keySpec="+" />
             <!-- U+0E51: "๑" THAI DIGIT ONE -->
             <Key
-                latin:keyLabel="&#x0E51;"
+                latin:keySpec="&#x0E51;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E52: "๒" THAI DIGIT TWO -->
             <Key
-                latin:keyLabel="&#x0E52;"
+                latin:keySpec="&#x0E52;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E53: "๓" THAI DIGIT THREE -->
             <Key
-                latin:keyLabel="&#x0E53;"
+                latin:keySpec="&#x0E53;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E54: "๔" THAI DIGIT FOUR -->
             <Key
-                latin:keyLabel="&#x0E54;"
+                latin:keySpec="&#x0E54;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0020: " " SPACE
                  U+0E39: " ู" THAI CHARACTER SARA UU -->
             <!-- Note: The space character is needed as a preceding letter to draw some Thai
                  composing characters correctly. -->
             <Key
-                latin:keyLabel="&#x20;&#x0E39;|&#x0E39;"
+                latin:keySpec="&#x20;&#x0E39;|&#x0E39;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0E3F: "฿" THAI CURRENCY SYMBOL BAHT -->
             <Key
-                latin:keyLabel="&#x0E3F;"
+                latin:keySpec="&#x0E3F;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E55: "๕" THAI DIGIT FIVE -->
             <Key
-                latin:keyLabel="&#x0E55;"
+                latin:keySpec="&#x0E55;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E56: "๖" THAI DIGIT SIX -->
             <Key
-                latin:keyLabel="&#x0E56;"
+                latin:keySpec="&#x0E56;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E57: "๗" THAI DIGIT SEVEN -->
             <Key
-                latin:keyLabel="&#x0E57;"
+                latin:keySpec="&#x0E57;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E58: "๘" THAI DIGIT EIGHT -->
             <Key
-                latin:keyLabel="&#x0E58;"
+                latin:keySpec="&#x0E58;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E59: "๙" THAI DIGIT NINE -->
             <Key
-                latin:keyLabel="&#x0E59;"
+                latin:keySpec="&#x0E59;"
                 latin:keyLabelFlags="fontNormal" />
         </case>
         <default>
             <!-- U+0E45: "ๅ" THAI CHARACTER LAKKHANGYAO -->
             <Key
-                latin:keyLabel="&#x0E45;"
+                latin:keySpec="&#x0E45;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E51: "๑" THAI DIGIT ONE -->
             <Key
                 latin:keyHintLabel="1"
                 latin:additionalMoreKeys="1"
                 latin:moreKeys="&#x0E51;"
-                latin:keyLabel="/" />
+                latin:keySpec="/" />
             <!-- U+0E52: "๒" THAI DIGIT TWO -->
             <Key
                 latin:keyHintLabel="2"
                 latin:additionalMoreKeys="2"
                 latin:moreKeys="&#x0E52;"
-                latin:keyLabel="_" />
+                latin:keySpec="_" />
             <!-- U+0E20: "ภ" THAI CHARACTER PHO SAMPHAO
                  U+0E53: "๓" THAI DIGIT THREE -->
             <Key
-                latin:keyLabel="&#x0E20;"
+                latin:keySpec="&#x0E20;"
                 latin:keyHintLabel="3"
                 latin:additionalMoreKeys="3"
                 latin:moreKeys="&#x0E53;"
@@ -103,7 +103,7 @@
             <!-- U+0E16: "ถ" THAI CHARACTER THO THUNG
                  U+0E54: "๔" THAI DIGIT FOUR -->
             <Key
-                latin:keyLabel="&#x0E16;"
+                latin:keySpec="&#x0E16;"
                 latin:keyHintLabel="4"
                 latin:additionalMoreKeys="4"
                 latin:moreKeys="&#x0E54;"
@@ -113,19 +113,19 @@
             <!-- Note: The space character is needed as a preceding letter to draw some Thai
                  composing characters correctly. -->
             <Key
-                latin:keyLabel="&#x20;&#x0E38;|&#x0E38;"
+                latin:keySpec="&#x20;&#x0E38;|&#x0E38;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0020: " " SPACE
                  U+0E36: " ึ" THAI CHARACTER SARA UE -->
             <!-- Note: The space character is needed as a preceding letter to draw some Thai
                  composing characters correctly. -->
             <Key
-                latin:keyLabel="&#x20;&#x0E36;|&#x0E36;"
+                latin:keySpec="&#x20;&#x0E36;|&#x0E36;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0E04: "ค" THAI CHARACTER KHO KHWAI
                  U+0E55: "๕" THAI DIGIT FIVE -->
             <Key
-                latin:keyLabel="&#x0E04;"
+                latin:keySpec="&#x0E04;"
                 latin:keyHintLabel="5"
                 latin:additionalMoreKeys="5"
                 latin:moreKeys="&#x0E55;"
@@ -133,7 +133,7 @@
             <!-- U+0E15: "ต" THAI CHARACTER TO TAO
                  U+0E56: "๖" THAI DIGIT SIX -->
             <Key
-                latin:keyLabel="&#x0E15;"
+                latin:keySpec="&#x0E15;"
                 latin:keyHintLabel="6"
                 latin:additionalMoreKeys="6"
                 latin:moreKeys="&#x0E56;"
@@ -141,7 +141,7 @@
             <!-- U+0E08: "จ" THAI CHARACTER CHO CHAN
                  U+0E57: "๗" THAI DIGIT SEVEN -->
             <Key
-                latin:keyLabel="&#x0E08;"
+                latin:keySpec="&#x0E08;"
                 latin:keyHintLabel="7"
                 latin:additionalMoreKeys="7"
                 latin:moreKeys="&#x0E57;"
@@ -149,7 +149,7 @@
             <!-- U+0E02: "ข" THAI CHARACTER KHO KHAI
                  U+0E58: "๘" THAI DIGIT EIGHT -->
             <Key
-                latin:keyLabel="&#x0E02;"
+                latin:keySpec="&#x0E02;"
                 latin:keyHintLabel="8"
                 latin:additionalMoreKeys="8"
                 latin:moreKeys="&#x0E58;"
@@ -157,7 +157,7 @@
             <!-- U+0E0A: "ช" THAI CHARACTER CHO CHANG
                  U+0E59: "๙" THAI DIGIT NINE -->
             <Key
-                latin:keyLabel="&#x0E0A;"
+                latin:keySpec="&#x0E0A;"
                 latin:keyHintLabel="9"
                 latin:additionalMoreKeys="9"
                 latin:moreKeys="&#x0E59;"
diff --git a/java/res/xml/rowkeys_thai2.xml b/java/res/xml/rowkeys_thai2.xml
index bc9d70c9ea5d7f6fed7a53a91c6f82b30b6540f3..7ab036a050969693528b69d90521f96843eaf25c 100644
--- a/java/res/xml/rowkeys_thai2.xml
+++ b/java/res/xml/rowkeys_thai2.xml
@@ -27,113 +27,113 @@
         >
             <!-- U+0E50: "๐" THAI DIGIT ZERO -->
             <Key
-                latin:keyLabel="&#x0E50;"
+                latin:keySpec="&#x0E50;"
                 latin:keyLabelFlags="fontNormal" />
             <Key
-                latin:keyLabel="&quot;" />
+                latin:keySpec="&quot;" />
             <!-- U+0E0E: "ฎ" THAI CHARACTER DO CHADA -->
             <Key
-                latin:keyLabel="&#x0E0E;"
+                latin:keySpec="&#x0E0E;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E11: "ฑ" THAI CHARACTER THO NANGMONTHO -->
             <Key
-                latin:keyLabel="&#x0E11;"
+                latin:keySpec="&#x0E11;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E18: "ธ" THAI CHARACTER THO THONG -->
             <Key
-                latin:keyLabel="&#x0E18;"
+                latin:keySpec="&#x0E18;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0020: " " SPACE
                  U+0E4D: " ํ" THAI CHARACTER THANTHAKHAT -->
             <!-- Note: The space character is needed as a preceding letter to draw some Thai
                  composing characters correctly. -->
             <Key
-                latin:keyLabel="&#x20;&#x0E4D;|&#x0E4D;"
+                latin:keySpec="&#x20;&#x0E4D;|&#x0E4D;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0020: " " SPACE
                  U+0E4A: " ๊" THAI CHARACTER MAI TRI -->
             <!-- Note: The space character is needed as a preceding letter to draw some Thai
                  composing characters correctly. -->
             <Key
-                latin:keyLabel="&#x20;&#x0E4A;|&#x0E4A;"
+                latin:keySpec="&#x20;&#x0E4A;|&#x0E4A;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0E13: "ณ" THAI CHARACTER NO NEN -->
             <Key
-                latin:keyLabel="&#x0E13;"
+                latin:keySpec="&#x0E13;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E2F: "ฯ" THAI CHARACTER PAIYANNOI -->
             <Key
-                latin:keyLabel="&#x0E2F;"
+                latin:keySpec="&#x0E2F;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E0D: "ญ" THAI CHARACTER YO YING -->
             <Key
-                latin:keyLabel="&#x0E0D;"
+                latin:keySpec="&#x0E0D;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E10: "ฐ" THAI CHARACTER THO THAN -->
             <Key
-                latin:keyLabel="&#x0E10;"
+                latin:keySpec="&#x0E10;"
                 latin:keyLabelFlags="fontNormal" />
             <Key
-                latin:keyLabel="," />
+                latin:keySpec="," />
         </case>
         <default>
             <!-- U+0E46: "ๆ" THAI CHARACTER MAIYAMOK
                  U+0E50: "๐" THAI DIGIT ZERO -->
             <Key
-                latin:keyLabel="&#x0E46;"
+                latin:keySpec="&#x0E46;"
                 latin:keyHintLabel="0"
                 latin:additionalMoreKeys="0"
                 latin:moreKeys="&#x0E50;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E44: "ไ" THAI CHARACTER SARA AI MAIMALAI -->
             <Key
-                latin:keyLabel="&#x0E44;"
+                latin:keySpec="&#x0E44;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E33: "ำ" THAI CHARACTER SARA AM -->
             <Key
-                latin:keyLabel="&#x0E33;"
+                latin:keySpec="&#x0E33;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E1E: "พ" THAI CHARACTER PHO PHAN -->
             <Key
-                latin:keyLabel="&#x0E1E;"
+                latin:keySpec="&#x0E1E;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E30: "ะ" THAI CHARACTER SARA A -->
             <Key
-                latin:keyLabel="&#x0E30;"
+                latin:keySpec="&#x0E30;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0020: " " SPACE
                  U+0E31: " ั" THAI CHARACTER MAI HAN-AKAT -->
             <!-- Note: The space character is needed as a preceding letter to draw some Thai
                  composing characters correctly. -->
             <Key
-                latin:keyLabel="&#x20;&#x0E31;|&#x0E31;"
+                latin:keySpec="&#x20;&#x0E31;|&#x0E31;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0020: " " SPACE
                  U+0E35: " ี" HAI CHARACTER SARA II -->
             <!-- Note: The space character is needed as a preceding letter to draw some Thai
                  composing characters correctly. -->
             <Key
-                latin:keyLabel="&#x20;&#x0E35;|&#x0E35;"
+                latin:keySpec="&#x20;&#x0E35;|&#x0E35;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0E23: "ร" THAI CHARACTER RO RUA -->
             <Key
-                latin:keyLabel="&#x0E23;"
+                latin:keySpec="&#x0E23;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E19: "น" THAI CHARACTER NO NU -->
             <Key
-                latin:keyLabel="&#x0E19;"
+                latin:keySpec="&#x0E19;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E22: "ย" THAI CHARACTER YO YAK -->
             <Key
-                latin:keyLabel="&#x0E22;"
+                latin:keySpec="&#x0E22;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E1A: "บ" THAI CHARACTER BO BAIMAI -->
             <Key
-                latin:keyLabel="&#x0E1A;"
+                latin:keySpec="&#x0E1A;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E25: "ล" THAI CHARACTER LO LING -->
             <Key
-                latin:keyLabel="&#x0E25;"
+                latin:keySpec="&#x0E25;"
                 latin:keyLabelFlags="fontNormal" />
         </default>
     </switch>
diff --git a/java/res/xml/rowkeys_thai3.xml b/java/res/xml/rowkeys_thai3.xml
index e326f9f574223fca3351b817a0b89231d5d7612e..4af4d232b0587e11cd3e2f7881f33d32d954bfc4 100644
--- a/java/res/xml/rowkeys_thai3.xml
+++ b/java/res/xml/rowkeys_thai3.xml
@@ -27,103 +27,103 @@
         >
             <!-- U+0E24: "ฤ" THAI CHARACTER RU -->
             <Key
-                latin:keyLabel="&#x0E24;"
+                latin:keySpec="&#x0E24;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E06: "ฆ" THAI CHARACTER KHO RAKHANG -->
             <Key
-                latin:keyLabel="&#x0E06;"
+                latin:keySpec="&#x0E06;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E0F: "ฏ" THAI CHARACTER TO PATAK -->
             <Key
-                latin:keyLabel="&#x0E0F;"
+                latin:keySpec="&#x0E0F;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E42: "โ" THAI CHARACTER SARA O -->
             <Key
-                latin:keyLabel="&#x0E42;"
+                latin:keySpec="&#x0E42;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E0C: "ฌ" THAI CHARACTER CHO CHOE -->
             <Key
-                latin:keyLabel="&#x0E0C;"
+                latin:keySpec="&#x0E0C;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0020: " " SPACE
                  U+0E47: " ็" THAI CHARACTER MAITAIKHU -->
             <!-- Note: The space character is needed as a preceding letter to draw some Thai
                  composing characters correctly. -->
             <Key
-                latin:keyLabel="&#x20;&#x0E47;|&#x0E47;"
+                latin:keySpec="&#x20;&#x0E47;|&#x0E47;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0020: " " SPACE
                  U+0E4B: " ๋" THAI CHARACTER MAI CHATTAWA -->
             <!-- Note: The space character is needed as a preceding letter to draw some Thai
                  composing characters correctly. -->
             <Key
-                latin:keyLabel="&#x20;&#x0E4B;|&#x0E4B;"
+                latin:keySpec="&#x20;&#x0E4B;|&#x0E4B;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0E29: "ษ" THAI CHARACTER SO RUSI -->
             <Key
-                latin:keyLabel="&#x0E29;"
+                latin:keySpec="&#x0E29;"
                 latin:keyLabelFlags="fontNormal" />
             <!--  U+0E28: "ศ" THAI CHARACTER SO SALA -->
             <Key
-                latin:keyLabel="&#x0E28;"
+                latin:keySpec="&#x0E28;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E0B: "ซ" THAI CHARACTER SO SO -->
             <Key
-                latin:keyLabel="&#x0E0B;"
+                latin:keySpec="&#x0E0B;"
                 latin:keyLabelFlags="fontNormal" />
             <Key
-                latin:keyLabel="." />
+                latin:keySpec="." />
         </case>
         <default>
             <!-- U+0E1F: "ฟ" THAI CHARACTER FO FAN -->
             <Key
-                latin:keyLabel="&#x0E1F;"
+                latin:keySpec="&#x0E1F;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E2B: "ห" THAI CHARACTER HO HIP -->
             <Key
-                latin:keyLabel="&#x0E2B;"
+                latin:keySpec="&#x0E2B;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E01: "ก" THAI CHARACTER KO KAI -->
             <Key
-                latin:keyLabel="&#x0E01;"
+                latin:keySpec="&#x0E01;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E14: "ด" THAI CHARACTER DO DEK -->
             <Key
-                latin:keyLabel="&#x0E14;"
+                latin:keySpec="&#x0E14;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E40: "เ" THAI CHARACTER SARA E -->
             <Key
-                latin:keyLabel="&#x0E40;"
+                latin:keySpec="&#x0E40;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0020: " " SPACE
                  U+0E49: " ้" THAI CHARACTER MAI THO -->
             <!-- Note: The space character is needed as a preceding letter to draw some Thai
                  composing characters correctly. -->
             <Key
-                latin:keyLabel="&#x20;&#x0E49;|&#x0E49;"
+                latin:keySpec="&#x20;&#x0E49;|&#x0E49;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0020: " " SPACE
                  U+0E48: " ่" THAI CHARACTER MAI EK -->
             <!-- Note: The space character is needed as a preceding letter to draw some Thai
                  composing characters correctly. -->
             <Key
-                latin:keyLabel="&#x20;&#x0E48;|&#x0E48;"
+                latin:keySpec="&#x20;&#x0E48;|&#x0E48;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0E32: "า" THAI CHARACTER SARA AA -->
             <Key
-                latin:keyLabel="&#x0E32;"
+                latin:keySpec="&#x0E32;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E2A: "ส" THAI CHARACTER SO SUA -->
             <Key
-                latin:keyLabel="&#x0E2A;"
+                latin:keySpec="&#x0E2A;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E27: "ว" THAI CHARACTER WO WAEN -->
             <Key
-                latin:keyLabel="&#x0E27;"
+                latin:keySpec="&#x0E27;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E07: "ง" THAI CHARACTER NGO NGU -->
             <Key
-                latin:keyLabel="&#x0E07;"
+                latin:keySpec="&#x0E07;"
                 latin:keyLabelFlags="fontNormal" />
         </default>
     </switch>
diff --git a/java/res/xml/rowkeys_thai4.xml b/java/res/xml/rowkeys_thai4.xml
index 1564d9753c58e357f3dd3a52148d5b5b87c9aa18..332d09d7e43ea56a0f6969b6224f16d4a670a660 100644
--- a/java/res/xml/rowkeys_thai4.xml
+++ b/java/res/xml/rowkeys_thai4.xml
@@ -26,92 +26,92 @@
             latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
         >
             <Key
-                latin:keyLabel="(" />
+                latin:keySpec="(" />
             <Key
-                latin:keyLabel=")" />
+                latin:keySpec=")" />
             <!-- U+0E09: "ฉ" THAI CHARACTER CHO CHING -->
             <Key
-                latin:keyLabel="&#x0E09;"
+                latin:keySpec="&#x0E09;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E2E: "ฮ" THAI CHARACTER HO NOKHUK -->
             <Key
-                latin:keyLabel="&#x0E2E;"
+                latin:keySpec="&#x0E2E;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0020: " " SPACE
                  U+0E3A: " ฺ" THAI CHARACTER PHINTHU -->
             <!-- Note: The space character is needed as a preceding letter to draw some Thai
                  composing characters correctly. -->
             <Key
-                latin:keyLabel="&#x20;&#x0E3A;|&#x0E3A;"
+                latin:keySpec="&#x20;&#x0E3A;|&#x0E3A;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0020: " " SPACE
                  U+0E4C: " ์" THAI CHARACTER THANTHAKHAT -->
             <!-- Note: The space character is needed as a preceding letter to draw some Thai
                  composing characters correctly. -->
             <Key
-                latin:keyLabel="&#x20;&#x0E4C;|&#x0E4C;"
+                latin:keySpec="&#x20;&#x0E4C;|&#x0E4C;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <Key
-                latin:keyLabel="\?" />
+                latin:keySpec="\?" />
             <!-- U+0E12: "ฒ" THAI CHARACTER THO PHUTHAO -->
             <Key
-                latin:keyLabel="&#x0E12;"
+                latin:keySpec="&#x0E12;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E2C: "ฬ" THAI CHARACTER LO CHULA -->
             <Key
-                latin:keyLabel="&#x0E2C;"
+                latin:keySpec="&#x0E2C;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E26: "ฦ" THAI CHARACTER LU -->
             <Key
-                latin:keyLabel="&#x0E26;"
+                latin:keySpec="&#x0E26;"
                 latin:keyLabelFlags="fontNormal" />
         </case>
         <default>
             <!-- U+0E1C: "ผ" THAI CHARACTER PHO PHUNG -->
             <Key
-                latin:keyLabel="&#x0E1C;"
+                latin:keySpec="&#x0E1C;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E1B: "ป" THAI CHARACTER PO PLA -->
             <Key
-                latin:keyLabel="&#x0E1B;"
+                latin:keySpec="&#x0E1B;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E41: "แ" THAI CHARACTER SARA AE -->
             <Key
-                latin:keyLabel="&#x0E41;"
+                latin:keySpec="&#x0E41;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E2D: "อ" THAI CHARACTER O ANG -->
             <Key
-                latin:keyLabel="&#x0E2D;"
+                latin:keySpec="&#x0E2D;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0020: " " SPACE
                  U+0E34: " ิ" THAI CHARACTER SARA I -->
             <!-- Note: The space character is needed as a preceding letter to draw some Thai
                  composing characters correctly. -->
             <Key
-                latin:keyLabel="&#x20;&#x0E34;|&#x0E34;"
+                latin:keySpec="&#x20;&#x0E34;|&#x0E34;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0020: " " SPACE
                  U+0E37: " ื" THAI CHARACTER SARA UEE -->
             <!-- Note: The space character is needed as a preceding letter to draw some Thai
                  composing characters correctly. -->
             <Key
-                latin:keyLabel="&#x20;&#x0E37;|&#x0E37;"
+                latin:keySpec="&#x20;&#x0E37;|&#x0E37;"
                 latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
             <!-- U+0E17: "ท" THAI CHARACTER THO THAHAN -->
             <Key
-                latin:keyLabel="&#x0E17;"
+                latin:keySpec="&#x0E17;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E21: "ม" THAI CHARACTER MO MA -->
             <Key
-                latin:keyLabel="&#x0E21;"
+                latin:keySpec="&#x0E21;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E43: "ใ" THAI CHARACTER SARA AI MAIMUAN -->
             <Key
-                latin:keyLabel="&#x0E43;"
+                latin:keySpec="&#x0E43;"
                 latin:keyLabelFlags="fontNormal" />
             <!-- U+0E1D: "ฝ" THAI CHARACTER FO FA -->
             <Key
-                latin:keyLabel="&#x0E1D;"
+                latin:keySpec="&#x0E1D;"
                 latin:keyLabelFlags="fontNormal" />
         </default>
     </switch>
diff --git a/java/res/xml/rows_number_normal.xml b/java/res/xml/rows_number_normal.xml
index c461eb009f542d4ad9847965771f27728550038a..8c9267a53ecf8d9ab4d305064dead3b5e1651671 100644
--- a/java/res/xml/rows_number_normal.xml
+++ b/java/res/xml/rows_number_normal.xml
@@ -23,16 +23,16 @@
 >
     <Row>
         <Key
-            latin:keyLabel="1"
+            latin:keySpec="1"
             latin:keyStyle="numKeyStyle" />
         <Key
-            latin:keyLabel="2"
+            latin:keySpec="2"
             latin:keyStyle="numKeyStyle" />
         <Key
-            latin:keyLabel="3"
+            latin:keySpec="3"
             latin:keyStyle="numKeyStyle" />
         <Key
-            latin:keyLabel="-"
+            latin:keySpec="-"
             latin:moreKeys="+"
             latin:keyLabelFlags="hasPopupHint"
             latin:keyStyle="numFunctionalKeyStyle"
@@ -40,20 +40,20 @@
     </Row>
     <Row>
         <Key
-            latin:keyLabel="4"
+            latin:keySpec="4"
             latin:keyStyle="numKeyStyle" />
         <Key
-            latin:keyLabel="5"
+            latin:keySpec="5"
             latin:keyStyle="numKeyStyle" />
         <Key
-            latin:keyLabel="6"
+            latin:keySpec="6"
             latin:keyStyle="numKeyStyle" />
         <switch>
             <case
                 latin:mode="date"
             >
                 <Key
-                    latin:keyLabel="."
+                    latin:keySpec="."
                     latin:keyStyle="numFunctionalKeyStyle"
                     latin:keyWidth="fillRight" />
             </case>
@@ -61,7 +61,7 @@
                 latin:mode="time|datetime"
             >
                 <Key
-                    latin:keyLabel="."
+                    latin:keySpec="."
                     latin:keyLabelFlags="hasPopupHint"
                     latin:moreKeys="!text/more_keys_for_am_pm"
                     latin:keyStyle="numFunctionalKeyStyle"
@@ -69,7 +69,7 @@
             </case>
             <default>
                 <Key
-                    latin:keyLabel=","
+                    latin:keySpec=","
                     latin:keyStyle="numFunctionalKeyStyle"
                     latin:keyWidth="fillRight" />
             </default>
@@ -77,13 +77,13 @@
     </Row>
     <Row>
         <Key
-            latin:keyLabel="7"
+            latin:keySpec="7"
             latin:keyStyle="numKeyStyle" />
         <Key
-            latin:keyLabel="8"
+            latin:keySpec="8"
             latin:keyStyle="numKeyStyle"/>
         <Key
-            latin:keyLabel="9"
+            latin:keySpec="9"
             latin:keyStyle="numKeyStyle" />
         <Key
             latin:keyStyle="deleteKeyStyle"
@@ -93,34 +93,34 @@
         <Key
             latin:keyStyle="numSpaceKeyStyle" />
         <Key
-            latin:keyLabel="0"
+            latin:keySpec="0"
             latin:keyStyle="numKeyStyle" />
         <switch>
             <case
                 latin:mode="date"
             >
                 <Key
-                    latin:keyLabel="/"
+                    latin:keySpec="/"
                     latin:keyStyle="numKeyStyle" />
             </case>
             <case
                 latin:mode="time"
             >
                 <Key
-                    latin:keyLabel=":"
+                    latin:keySpec=":"
                     latin:keyStyle="numKeyStyle" />
             </case>
             <case
                 latin:mode="datetime"
             >
                 <Key
-                    latin:keyLabel="/ :|/"
+                    latin:keySpec="/ :|/"
                     latin:moreKeys="!noPanelAutoMoreKey!,:"
                     latin:keyStyle="numKeyStyle" />
             </case>
             <default>
                 <Key
-                    latin:keyLabel="."
+                    latin:keySpec="."
                     latin:keyStyle="numKeyStyle" />
             </default>
         </switch>
diff --git a/java/res/xml/rows_phone.xml b/java/res/xml/rows_phone.xml
index 6f05e51beb253fdeeaa908258438c3c614180761..03e45419a57081625528d215189858373588b85b 100644
--- a/java/res/xml/rows_phone.xml
+++ b/java/res/xml/rows_phone.xml
@@ -33,7 +33,7 @@
         <Key
             latin:keyStyle="num3KeyStyle" />
         <Key
-            latin:keyLabel="-"
+            latin:keySpec="-"
             latin:moreKeys="+"
             latin:keyLabelFlags="hasPopupHint"
             latin:keyStyle="numFunctionalKeyStyle"
@@ -47,7 +47,7 @@
         <Key
             latin:keyStyle="num6KeyStyle" />
         <Key
-            latin:keyLabel="."
+            latin:keySpec="."
             latin:keyStyle="numFunctionalKeyStyle"
             latin:keyWidth="fillRight" />
     </Row>
@@ -68,7 +68,7 @@
         <!-- U+0030: "0" DIGIT ZERO -->
         <Key
             latin:keyStyle="num0KeyStyle"
-            latin:keyLabel="0 +|0"
+            latin:keySpec="0 +|0"
             latin:moreKeys="!noPanelAutoMoreKey!,+" />
         <Key
             latin:keyStyle="numSpaceKeyStyle" />
diff --git a/java/res/xml/rows_phone_symbols.xml b/java/res/xml/rows_phone_symbols.xml
index 8c10a2d71a1feee4f8692726a3b05053d7ac1599..983bfb5c8c1cc539ae142793b1b091d0403ec727 100644
--- a/java/res/xml/rows_phone_symbols.xml
+++ b/java/res/xml/rows_phone_symbols.xml
@@ -27,16 +27,16 @@
         latin:keyboardLayout="@xml/key_styles_number" />
     <Row>
         <Key
-            latin:keyLabel="("
+            latin:keySpec="("
             latin:keyStyle="numKeyStyle" />
         <Key
-            latin:keyLabel="/"
+            latin:keySpec="/"
             latin:keyStyle="numKeyStyle" />
         <Key
-            latin:keyLabel=")"
+            latin:keySpec=")"
             latin:keyStyle="numKeyStyle" />
         <Key
-            latin:keyLabel="-"
+            latin:keySpec="-"
             latin:moreKeys="+"
             latin:keyLabelFlags="hasPopupHint"
             latin:keyStyle="numFunctionalKeyStyle"
@@ -44,17 +44,17 @@
     </Row>
     <Row>
         <Key
-            latin:keyLabel="N"
+            latin:keySpec="N"
             latin:keyStyle="numKeyBaseStyle" />
         <!-- Pause is a comma. Check PhoneNumberUtils.java to see if this
             has changed. -->
         <Key
             latin:keyStyle="numPauseKeyStyle" />
         <Key
-            latin:keyLabel=","
+            latin:keySpec=","
             latin:keyStyle="numKeyStyle" />
         <Key
-            latin:keyLabel="."
+            latin:keySpec="."
             latin:keyStyle="numFunctionalKeyStyle"
             latin:keyWidth="fillRight" />
     </Row>
@@ -65,7 +65,7 @@
         <Key
             latin:keyStyle="numWaitKeyStyle" />
         <Key
-            latin:keyLabel="\#"
+            latin:keySpec="\#"
             latin:keyStyle="numKeyStyle" />
         <Key
             latin:keyStyle="deleteKeyStyle"
@@ -75,7 +75,7 @@
         <Key
             latin:keyStyle="numPhoneToNumericKeyStyle" />
         <Key
-            latin:keyLabel="+"
+            latin:keySpec="+"
             latin:keyStyle="numKeyStyle" />
         <Key
             latin:keyStyle="numSpaceKeyStyle" />
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index ed691f8747b4cd45fb9eb065868d9de837559ec3..1c8bada15caee1d4d299ab125d5b20de5414bf04 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -315,7 +315,7 @@ public class Key implements Comparable<Key> {
         }
         mActionFlags = actionFlags;
 
-        final String keySpec = style.getString(keyAttr, R.styleable.Keyboard_Key_keyLabel);
+        final String keySpec = style.getString(keyAttr, R.styleable.Keyboard_Key_keySpec);
         if (TextUtils.isEmpty(keySpec)) {
             throw new RuntimeException("Empty keySpec");
         }
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java b/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
index 8ce820cf3186be5326fcf8a8e1566cca51e30888..20996660690009998fa58208791f7579be3596b6 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
@@ -42,6 +42,7 @@ import com.android.inputmethod.latin.utils.StringUtils;
  * Note that the '\' is also parsed by XML parser and {@link MoreKeySpec#splitKeySpecs(String)}
  * as well.
  */
+// TODO: Rename to KeySpec and make this class to the key specification object.
 public final class KeySpecParser {
     // Constants for parsing.
     private static final char BACKSLASH = Constants.CODE_BACKSLASH;
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
index f6180e32aa6994224cfc4243025e675ad6b6d37d..700c9b07c6e8de44836dd64192d5e14265c77c5d 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
@@ -136,7 +136,7 @@ public final class KeyStylesSet {
         public void readKeyAttributes(final TypedArray keyAttr) {
             // TODO: Currently not all Key attributes can be declared as style.
             readString(keyAttr, R.styleable.Keyboard_Key_altCode);
-            readString(keyAttr, R.styleable.Keyboard_Key_keyLabel);
+            readString(keyAttr, R.styleable.Keyboard_Key_keySpec);
             readString(keyAttr, R.styleable.Keyboard_Key_keyHintLabel);
             readStringArray(keyAttr, R.styleable.Keyboard_Key_moreKeys);
             readStringArray(keyAttr, R.styleable.Keyboard_Key_additionalMoreKeys);
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
index 4322345cb9eb5847e05cf221281f201854b39286..377ec092ab98df448a39dfeb0b10efbb2f37b773 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
@@ -460,8 +460,8 @@ public final class KeyboardTextsSet {
         /* 128 */ "!icon/shortcut_key|!code/key_shortcut",
         /* 129 */ "!hasLabels!,!text/label_next_key|!code/key_action_next",
         /* 130 */ "!hasLabels!,!text/label_previous_key|!code/key_action_previous",
-        // Label for "switch to more symbol" modifier key.  Must be short to fit on key!
-        /* 131 */ "= \\ <",
+        // Label for "switch to more symbol" modifier key ("= \ <"). Must be short to fit on key!
+        /* 131 */ "= \\\\ <",
         // Label for "switch to more symbol" modifier key on tablets.  Must be short to fit on key!
         /* 132 */ "~ [ <",
         // Label for "Tab" key.  Must be short to fit on key!
diff --git a/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpec.java b/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpec.java
index 0551e9e98866b97bdadab10e6c1c103fcb583ed6..bd440b875770e34e126cccece0e3d1a23ae697e0 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpec.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpec.java
@@ -38,6 +38,7 @@ import java.util.Locale;
  * Note that the '\' is also parsed by XML parser and {@link MoreKeySpec#splitKeySpecs(String)}
  * as well.
  */
+// TODO: Should extend the key specification object.
 public final class MoreKeySpec {
     public final int mCode;
     public final String mLabel;