v149 · android · ime · editing
Android IME media insertion
Chrome 149 on Android enables Input Method Editors (keyboards) to insert rich media content — images, GIFs, and stickers — directly into editable web content, matching the capability that native Android apps have had through the Android IME commitContent API.
at a glance
| Shipped in | Chrome 149 (Stepped rollout) |
|---|---|
| Status | Stepped rollout (gradually enabled) |
| Platform | Android only |
| API change | Behavioural — media arrives via existing clipboard/paste event pipeline |
| Standards position (Firefox) | No signal |
| Standards position (Safari) | No signal |
| ChromeStatus | 5484282563919872 — Android IME media insertion |
why it exists
On Android, virtual keyboards (IMEs) such as Gboard can insert rich content — emoji packs, GIF stickers, inline images — into native app text fields using the Android InputConnection.commitContent() API. Prior to Chrome 149, this capability did not propagate to web content: a user could tap a GIF key on their keyboard while editing a <textarea> or contenteditable element on a website, but nothing would happen.
Chrome 149 wires up the Android IME rich-content insertion path into Chromium's editing pipeline. When an IME commits media content, Chrome converts it and delivers it to the page using the existing paste event / InputEvent path, the same mechanism that handles clipboard pastes. No new Web API is needed; sites that already handle pasted images (e.g. by listening to paste events or using DataTransfer) receive the IME-inserted media automatically.
what this means for developers
| Scenario | Before Chrome 149 | Chrome 149+ (Android) |
|---|---|---|
| User taps GIF/sticker key in Android keyboard | No effect in web content | Media delivered via paste event to the focused editable element |
Site listening for paste + reading DataTransfer | Clipboard pastes only | Clipboard pastes + IME media insertions |
Sites not listening for paste | No change | No change — media is not inserted automatically into plain text fields |
example
No code changes are needed for sites that already handle pasted images. A minimal handler:
document.addEventListener('paste', (event) => {
const items = Array.from(event.clipboardData?.items ?? []);
for (const item of items) {
if (item.type.startsWith('image/')) {
event.preventDefault();
const blob = item.getAsFile();
if (!blob) continue;
const url = URL.createObjectURL(blob);
const img = document.createElement('img');
img.src = url;
document.querySelector('#editor').append(img);
}
}
});
// Chrome 149+ on Android: this handler also fires when the user
// taps a GIF or sticker key on their Android keyboard.
Source: Clipboard API Living Standard — paste event
browser support
| Browser | Support | Notes |
|---|---|---|
| Chrome 149+ (Android) | Stepped rollout | Android only; uses existing clipboard event path |
| Firefox (Android) | No signal | — |
| Safari (iOS) | No signal | — |