Skip to content

Commit 38e4060

Browse files
strzhaoclaude
andcommitted
docs(evidence): record the keyboard band through a raise and dismiss
Co-Authored-By: Claude Code <[email protected]>
1 parent 8424d74 commit 38e4060

1 file changed

Lines changed: 64 additions & 0 deletions

File tree

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# HarmonyOS keyboard band fact, live, 2026-11-08
2+
3+
Evidence for #4285 (report the keyboard band in snapshot responses): the
4+
producer's window-manager probe tracks the real IME through a raise and a
5+
dismiss, and the measured band immediately feeds the tap guard — a stale ref
6+
aimed into the keyboard region got refused mid-run.
7+
8+
## Device
9+
10+
- HUAWEI 畅享 90 Plus, model `JDY-AL50`, HarmonyOS 7.0.0.111 (SP10C00E111R4P3), API 26
11+
- Serial `77TYD26826028730`, USB
12+
- Surface: system Settings → search bar (tapped at 540,378), no text typed,
13+
no data touched.
14+
15+
## Hidden → visible → hidden
16+
17+
Snapshot before the keyboard (device on the Settings page):
18+
19+
```json
20+
"/keyboard": {"kind": "visibility-only", "visible": false}
21+
```
22+
23+
The same window-manager dump the producer reads shows the panel window with a
24+
zero rect while hidden:
25+
26+
```
27+
SCBKeyboardPanel ... [ 0 0 0 0 ] [ 0 0 ] [ 1 1 0 0 ]
28+
```
29+
30+
Tap the search bar; the IME rises. The probe now answers a live container and
31+
the snapshot fact flips to the measured band:
32+
33+
```json
34+
"/keyboard": {"kind": "visible", "frame": {"x": 0, "y": 0, "width": 1080, "height": 2406}}
35+
```
36+
37+
After two Back keys the fact returns to
38+
`{"kind": "visibility-only", "visible": false}`.
39+
40+
## The guard consumed the band immediately
41+
42+
Mid-run, a ref captured before the keyboard rose was refused by the tap guard
43+
instead of tapping into the IME strip:
44+
45+
```
46+
Error (COMMAND_FAILED): Ref @e20 is behind the visible keyboard and cannot be tapped safely
47+
```
48+
49+
This is the failure class the evidence session itself hit earlier in the audit
50+
(a coordinate tap landed on the keyboard's suggestion strip and a record was
51+
created with a stray character in its name). With the band reported, the guard
52+
refuses the tap instead.
53+
54+
## Reproduce
55+
56+
```sh
57+
node bin/agent-device.mjs open com.huawei.hmos.settings --activity com.huawei.hmos.settings.MainAbility \
58+
--platform harmonyos --serial 77TYD26826028730
59+
node bin/agent-device.mjs snapshot --json --platform harmonyos --serial 77TYD26826028730 # hidden
60+
node bin/agent-device.mjs press 540 378 --platform harmonyos --serial 77TYD26826028730 # search bar
61+
node bin/agent-device.mjs snapshot --json --platform harmonyos --serial 77TYD26826028730 # visible + frame
62+
node bin/agent-device.mjs back --platform harmonyos --serial 77TYD26826028730 # dismiss
63+
node bin/agent-device.mjs snapshot --json --platform harmonyos --serial 77TYD26826028730 # hidden again
64+
```

0 commit comments

Comments
 (0)