From 0a8b441d3513ade9fe981cf8eb1e01135d5c260f Mon Sep 17 00:00:00 2001 From: PJ Date: Thu, 13 Aug 2026 20:48:14 +0530 Subject: [PATCH] docs: record that canvas apps need a dom proxy to be text-fuzzable --- docs/manual/introduction.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/manual/introduction.md b/docs/manual/introduction.md index f2cff0a..fc8c478 100644 --- a/docs/manual/introduction.md +++ b/docs/manual/introduction.md @@ -80,6 +80,8 @@ The loop runs until the duration you set elapses. Every step is written to a tra Kotlin Multiplatform apps need nothing special: the Android build is tested through the Android driver and the iOS build through the iOS driver. +Canvas-rendered web apps are the exception. On web, `InputText` types through the DevTools Protocol's `Input.insertText`, which needs a focused DOM element to deliver to, and a bare `` is not one: the call produces no events at all and the app sees nothing typed. The driver cannot work around that, because there is no event target. Compose Multiplatform for Web is fine because it keeps a hidden `` IME proxy in its shadow root, a real focusable element that receives the text. A canvas app that exposes no such element is tap-fuzzable but not text-fuzzable. + ## Reading this manual - [Case study: Folio](../case-study/) follows sanderling finding a real bug in the example app, and shows how its spec is written.