Programmatically Bring Up Keyboard

Problem: On desktop you can run element.focus() and the input receives focus. However, on mobile, element.focus() must come from a touch event for the virtual keyboard to appear.

Proposal: Allow the keyboard to programmatically appear, without requiring to come from without a touch event's callstack.

Current Results:

Tapping the input below will bring up the keyboard because it came from the user's touch event.

However, programmatically bringing up the keyboard is a challenge. For example, the button below calls focus on the input from within a setTimeout, which will fire the focus() outside of the touch event's' callstack. This does not work, but shows how it's difficult to manage the keyboard through only input focusing/blurring.