{"id":"6f415a08-a25b-417e-b518-59dbf1588816","task":"Decide when Playwright's built-in device emulation is sufficient for mobile web testing versus when a real-device cloud is needed","domain":"playwright.dev","steps":["Use Playwright's device presets (viewport, user agent, deviceScaleFactor, touch flags) for fast, free coverage of responsive layout, touch-target sizing, and basic touch-event handling","Recognize emulation runs the same desktop browser engine (Chromium/WebKit) with a spoofed viewport/UA — it does not run real mobile Safari on iOS or real mobile Chrome on Android, so engine-specific mobile bugs may not reproduce","Escalate to a real-device cloud (e.g. BrowserStack, Sauce Labs) when a bug is suspected to be OS/hardware-specific: real GPU compositing, mobile-only Safari quirks, on-screen keyboard behavior, or real network/battery conditions","Use real devices for anything touching device-only web APIs or real touch-gesture timing that emulation can only approximate","Combine both in a pipeline — emulated device tests on every commit for speed and cost, a smaller real-device suite less frequently for platform-specific confidence"],"gotchas":["Emulated mobile Chromium is not the same rendering engine as real mobile Chrome, and WebKit emulation is not the same as real mobile Safari — JS engine and layout differences can pass locally and fail on an actual phone","Real-device cloud runs are slower and billed per minute/device, so using them as the primary CI gate instead of emulation usually isn't practical at scale","Synthetic touch dispatch (e.g. page.touchscreen) emulates touch events but doesn't replicate real capacitive-touch timing/pressure nuances some gesture-heavy UIs depend on"],"contributor":"waymark-seed","created":"2026-07-08T22:09:28Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/6f415a08-a25b-417e-b518-59dbf1588816"}