Before typing/pressing, we focus the target element. WebKit
sometimes selects the value in this case. To unify the behavior
between the browsers we behave similar to human:
- when the input is already focused, we just type;
- when the input is not focused, we focus it, move caret
to the start (like if user clicked at the start to focus the input)
and then type.
Note this only affects inputs with non-empty value.