> ## Documentation Index
> Fetch the complete documentation index at: https://docs.streampixel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Virtual keyboard for text input

> How editable text fields in Unreal trigger the on-screen keyboard in the browser, automatically from UE 5.3+.

If your Unreal project uses **editable text boxes** (UMG `EditableText`, `EditableTextBox`, or any widget that accepts text input), Streampixel can capture the keystrokes from a viewer's browser and forward them to your application — including the on-screen keyboard on touch devices.

## How it works (UE 5.3+)

From **Unreal Engine 5.3 onwards**, this is automatic — no Blueprint or C++ work needed.

When the viewer clicks an editable text field in the streamed scene:

1. The browser detects that the field is focused.
2. A small popup with an input box appears over the stream.
3. The viewer types into that input box; on touch devices, the on-screen keyboard opens at this point.
4. Each keystroke is forwarded to Unreal as a normal text input event.

The popup exists because the browser cannot send keystrokes "into" the streamed pixels directly — it needs a real DOM input element to attach the keyboard to. Streampixel handles that bridge automatically.

<Frame caption="Virtual keyboard input popup">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/streampixel/images/Virtual-Keyboard-Popup.png" alt="Streampixel's input popup that appears when the viewer clicks an editable text field in the streamed Unreal application." />
</Frame>

## Older Unreal versions

On UE 5.2 and below, this auto-bridging isn't available. If you're targeting an older engine version, upgrade if you can — otherwise text input from touch devices won't work without custom JavaScript-side handling.

## Troubleshooting

<AccordionGroup>
  <Accordion title="The popup doesn't appear when I click my text field">
    Confirm you're on UE 5.3 or later — the auto-bridge ships with the Pixel Streaming plugin from that version. Also confirm the field is a UMG editable text widget (not a custom HUD draw), since only widgets that report focus to the engine trigger the bridge.
  </Accordion>

  <Accordion title="Mobile keyboard doesn't open even after the popup shows">
    Browser autoplay/autofocus policies on iOS and some Android browsers require a direct user gesture. Make sure the click on the text field is the first interaction — if your UI auto-focuses on load, the keyboard often won't show until the viewer taps somewhere first.
  </Accordion>

  <Accordion title="Typed text appears in the popup but not in Unreal">
    Check that **Keyboard** input is enabled in **Project Settings → Input** ([Input & UI controls](/resources/quick-start-guide/frontend-settings)). If keyboard input is toggled off at the project level, the bridge has nowhere to send keystrokes.
  </Accordion>
</AccordionGroup>

## Next

<CardGroup cols={2}>
  <Card title="Input & UI controls" icon="sliders" href="/resources/quick-start-guide/frontend-settings">
    Toggle keyboard, mouse, touch, and other input devices.
  </Card>

  <Card title="Hide / unhide touch controls" icon="hand-pointer" href="/resources/additional-unreal-engine-features/hide-unhide-touch-controls">
    Programmatically show or hide on-screen touch HUDs.
  </Card>
</CardGroup>
