I need to set the most user-friendly keyboard for anyone who enters his car's license plate number.

In the country I develop for, those are alphanumeric. There are other countries that use numbers only for license plate.

I looked into my platform's visual guide to keyboard type options and nothing satisfies my need.

Although I'm fast on my mobile keyboard, I find it very annoying when entering WW1E1E, which is a valid license plate number.

I can only imagine the frustration of somebody unexperienced who needs to toggle alpha and numeric up to 4 times while typing 6-characters long string.

Left side is iOS, right side is Android. Although the visible-password keyboard is OK, it does not currently work with automatic capitalization (autoCapitalize="characters", to capitalize all characters typed), and is overall hacky, I guess.

Here is a collection of all the available keyboard types currently on React Native v0.55 on iOS 11 and Android 8.

Which keyboard type should I go with?

enter image description here

  • Not helpful for answering the question, but I wonder why no platform apparently has a calculator numeric pad layout
    – Crissov
    Mar 17, 2019 at 13:21
  • @Crissov I suspect because hese are fundamentally phones. So the standard phone numeric keypad needs to be included for dialing and therefore gets used everywhere else (i.e., no "calculator" option) that a "keyboard" is used, whether for a calculator application, a web page (e.g., numeric input which might be a phone number but might be ordinary numbers), etc. But at least on a couple of Android apps I just checked, the apps use a calculator style keyboard by not using a "keyboard" reference but instead building a clearly different page of their own specific buttons for everything. Mar 17, 2019 at 14:46
  • Would it be an affordable option to design your own keyboard modally popping up, with precisely the signs needed? Mar 18, 2019 at 6:34
  • 1
    I don't know any country where they're not [alphanumeric] - They are numeric-only in Israel, and presumably anywhere which uses a non-Latin-or-similar alphabet
    – Jonathan
    Mar 20, 2019 at 13:24
  • 1
    Also, some keyboards have a "number keys" option, which add the numeric row to the top (like my Galaxy S7). So a user who's bothered enough with the lack of number keys (like me) can turn it on anyways - another plus for keeping the default keyboard.
    – Jonathan
    Mar 20, 2019 at 13:30

2 Answers 2


The keyboard with the numbers row on top!

Whether it is the visible-password keyboard, or default keyboard that has the numbers row added to the top (enabled by default), what matters is having the numbers row added.

I do not think the visible-password keyboard is hacky. Just an opinion.

Take these scenarios:

1- Numbers row is added and autoCapitalize ="characters" is working:

There is no doubt that this keyboard will be the fastest among the ones you provided. It will take 8 taps to input the 6-character string "WW1E1E". The extra 2 taps are to activate capitalizing all characters.

2- Numbers row is added BUT autoCapitalize = "characters" is not working:

It will take 9 taps to input the 6-character string "WW1E1E".

Remember that the autoCapitalize="characters" issue with visible-password keyboard is a temporary bug that if there is no way around it now, it will be fixed with an update.

3- NO numbers row, but autoCapitalize ="characters" is working:

It will take 12 taps! to input the 6-character string "WW1E1E". Or longer time if you choose to hold the top row keys instead of toggling back and forth between alphabets and numbers.


  • If we compare two keyboards, both have autoCapitalizing working, but one with the numbers row added, and the other without it, as long as your string is alphanumeric, you will always need more taps or time when using a no-numbers-row keyboard!

  • I used the string you provided "WW1E1E" as an example to calculate the number of taps having in mind that other strings like "WWW111" could result in only one extra tap using no-numbers-row keyboard.

  • autoCapitalize = "characters" gets usually enabled by users when double tapping the shift key on the mobile keyboard (2 taps).

  • Thanks for your time, although there are is a problem on the iPhone - no such keyboard. Also, I strongly agreed with @peter_the_oak in the comments under the question and will go for the default keyboard instead.
    – wscourge
    Mar 29, 2019 at 6:13
  • Sure, it is your decision. Different people think differently, that's a beauty! However, I do not agree with the approach that people could live with it (switching four times between numbers and letters). Our goal is improve and create a better user experience. I find that the numbers row feature is mainly the reason the android keyboard is better than the iphone.
    – Mo'ath
    Mar 29, 2019 at 19:19
  • 1
    It's not about what's better, it's about supporting both
    – wscourge
    Mar 29, 2019 at 19:37
  • I understand that iphone does not have that keyboard. But they (ios and android) will have two different keyboards anyway. So I do not see the point of consistency if that what you are trying to achieve. iphone does not support it (a limitation), android supports it (an advantage). I won't prevent android users from having a better keyboard because iphone does not support it. And if it is for consistency, then again they are going to use two different keyboards anyway...
    – Mo'ath
    Mar 29, 2019 at 22:09

If it is alphanumeric, it has to be the default keyboard. Uppercase letters should not be a concern because the text input can be coded to accept all alphabetical characters as Uppercase which will allow the users to enter alphabets in lower case without having to toggle Uppercase every time.

One way to provide explicit numeric or alphabetic keypads would be to break down the number into multiple smaller inputs as per the country license format. For example, if the number is XX-00-000, then have three input boxes where XX is pure alphabetic and the rest two numeric.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.