Rename Key.keyLabel attribute to KeySpec

Change-Id: Ida48cd9bdbc01fefad651a005084262c0f46c41c
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 0eacdb1..65c34d5 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -271,9 +271,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 a5a6e95..25b0e52 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 a5a6e95..25b0e52 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 530f7d6..ba78a64 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 3f09419..9e2c1fa 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 860a0be..edee5c5 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 4dbc23e..6a79c6f 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 39c5380..38a38fd 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 0f2ccc0..9b4031e 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 55302ae..eda96b2 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 58416ab..91ceb1c 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 fd84922..116bef2 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 3c91ae9..45d1286 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 324e025..ab99ec5 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 254b5e5..5443396 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 46a1c85..c95ca2e 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 11b4034..2ba6a49 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 2148bb2..edc68a3 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 ae6bab7..5389e22 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 37bf2e8..15f4cde 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 c4799bb..9022bc5 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 7a33f49..a915c33 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 79d1aa1..7ead4d5 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 27c7bff..ee0f21d 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 03017dd..29f41d1 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 09c3477..9157795 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 0316a7b..2f17399 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 4dd3e85..dc7a0e0 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 a2fbf53..764fb1f 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 ac56cb7..b047893 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 8e25603..fe9264b 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 e790339..fdb53bb 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 43387a3..653e79e 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 c70d9d9..7240a2c 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 845c1b0..5a006f0 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 0de9650..a2b07fe 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 06f07fa..4b764cd 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 469a27b..18d485a 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 25867c0..d770ee6 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 3865c19..b6418f2 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 007a580..cfc5bc0 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 65789ea..85a0666 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 307b4eb..9330be9 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 ed9cfbb..5d7c018 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 225d2a6..9e9c371 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 8f8da27..b56eb0a 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 8d5368c..6d7d000 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 fb91225..badea3e 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 0e9d497..d3a7539 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 ae73a59..9001e4d 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 838db25..edb4f94 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 2e59ced..d4c9b7d 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 84c2abc..ed40ebc 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 674a396..a02c9bf 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 c1b5e03..c2ae87b 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 b3def1f..64d09b1 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 3c0cf72..7136e10 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 0ffd0f9..84988f8 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 157af4a..2b3e12c 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 880fe40..5221d34 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 fd736c0..da6dfc0 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 fa94f1f..6efc7f2 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 77efb0a..2618e47 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 98dcef6..3304e4c 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 fe4e5de..ab33ef5 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 6f86477..9e62b09 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 8da145b..d889216 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 a5d5a42..f32d809 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 a9cf6a6..8f0dec5 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 9d00791..5e0e108 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 42facd7..45f519a 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 8013b0d..97f98e3 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 fd74ab5..4d1b2c5 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 15d4f90..66628b5 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 89d8fc7..de1d949 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 9e3c6ed..d1d56c1 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 3d064b5..fd0ce77 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 3eddbe5..edc3bef 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 9a00ade..c7de4fd 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 06b51eb..6029d6d 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 b78872f..0658079 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 09d2a19..09f6b62 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 3c0acf1..d5f1421 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 4f8090d..9bc91e8 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 8a17b4b..0bfc66a 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 1984fae..8ca78da 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 3764d0d..9991f73 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 3116811..2b79386 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 922481a..f8cdd12 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 42b2746..adb66b7 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 2eee214..db06867 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 2643f32..0aa2153 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 441b079..e847193 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 a4e93d8..e572a22 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 258219c..2509793 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 eed1fcb..9d64282 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 ff1bff8..e078ae7 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 7bb780a..8302d69 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 f1c3075..819a69d 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 f73d7e9..644d845 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 f0f9151..946910c 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 033308a..831bfaf 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 943e3f5..7c73473 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 b035f41..a9da6b9 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 5b3b4b4..7e95a8b 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 2e412f0..20d963c 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 c3a171b..b7d19b2 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 5a22a24..46fef42 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 590161f..f94ee8e 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 98949f4..edc22f9 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 d31a4c7..c412aa3 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 cdccda3..162960d 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 a371458..a16acf8 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 5777d3b..5080dc8 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 91bdc11..d8769ca 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 8a99db9..3f989bc 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 81a00e3..e888977 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 e4ecac3..d43f5a8 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 805a7a5..928e6b2 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 c0b3cb9..914618a 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 70ac66e..7ba4ee1 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 136bc5f..a9be472 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 05d1a86..567c6af 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 801f23f..4146895 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 f35ba5c..7a2efa7 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 598aed8..5523d86 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 fa1ad97..a5085a5 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 fca58ac..67c474f 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 2a6c2d1..172716d 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 fae9cc9..ed4b9b1 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 6c8c8e2..4d33755 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 a8aa006..f11f4f2 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 dc80c37..cf57d1c 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 408a966..3c082c2 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 66359ff..561ae6c 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 166d028..232d96e 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 c7883c7..98a7be2 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 45620a9..5ea14ea 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 1cacced..59f6e65 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 b2e01e4..d6a74d4 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 87f0616..a34f400 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 72ac86b..40e556b 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 836214a..4064e4f 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 1ac264a..fdb5072 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 718acfd..b9597c0 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 e7c9b59..7ebde8d 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 d9777d9..0700cce 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 b70fd72..b48606c 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 d87f03d..61ce97b 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 9e39fe0..55a8ffa 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 6117d46..8b1d696 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 88e8940..fa24264 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 b015509..8b54ec8 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 335dff3..68632fd 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 e3b8426..458771d 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 5364a44..0c25fe8 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 6e2f92d..b35b180 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 76cbf62..fe8653d 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 43fe108..01ca030 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 6013493..7cb3213 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 36f9214..39a5803 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 5fe1c74..92ff97b 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 805822f..e42bda3 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 bc9d70c..7ab036a 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 e326f9f..4af4d23 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 1564d97..332d09d 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 c461eb0..8c9267a 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 6f05e51..03e4541 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 8c10a2d..983bfb5 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 ed691f8..1c8bada 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -315,7 +315,7 @@
         }
         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 2925a4b..04464a4 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 @@
  * 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 f6180e3..700c9b0 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 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 f8c0988..3a6af8f 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
@@ -458,8 +458,8 @@
         /* 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 0551e9e..bd440b8 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 @@
  * 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;