Hi,
the number field type is really meant to take numbers (integers or decimals). Numbers cannot have a leading zero and therefore are never suited to take a phone number. Providing functionality to increment the number is a browser implementation and not a Visforms implementation. As far as i know, it is not possible to change this with css (It the same with the design of upload field for example).
You are correct, that the amount of different field types supported by html5 is increasing constantly and the browser support for those field types becomes more and more common. This was different in the past and that is, why those modern field types are not yet available in Visforms. But even if there were a field type "tel" I would not know which validation rules I have to implement because phone number format is very different throughout the world. Nevertheless I will set your request to my feature wish list and check this point again. But this may take its time.
Having said this, Visforms provides a solution for your problem. There is an option to add a custom validation to the field type "text".
If you want to make sure, that only numbers are typed in use the following regular expression with this option.
If you want to make sure, that the user can only input a given amount of numbers (12 in this example) use the following regular expression with this option. Adapt the number in the curly brackets to the amount of characters of a phone number in your country.
You can allow a range for the amount of numbers required, too. For example if the length of a phone number can vary between ten and twelve use the following regular expression.
Or you can search on Google for a regular expression suited for the phone number format in your country.
Good luck,
Aicha