dmitchelljackson commited on
Commit
152c46e
Β·
verified Β·
1 Parent(s): aa15c60

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +26 -5
README.md CHANGED
@@ -59,11 +59,32 @@ Each interactive element is one line:
59
 
60
  Fields per element:
61
  - `[n]` β€” element index (used in action codes)
62
- - type: `btn`=button, `ed`=text-input, `img`=image, `chk`=checkbox, `swt`=switch, etc.
63
- - zone: approximate screen position (tl/tc/tr/ml/mc/mr/bl/bc/br)
64
- - `fc=focused` β€” this element has keyboard focus (K action types here)
65
- - `sr=scrollable` β€” this element is scrollable
66
- - label/content text follows
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
 
68
  ---
69
 
 
59
 
60
  Fields per element:
61
  - `[n]` β€” element index (used in action codes)
62
+ - type: `bt`=Button, `ed`=EditText, `tx`=TextView, `im`=ImageView, `ck`=CheckBox, `sw`=Switch, `rd`=RadioButton, `sp`=Spinner, `sc`=ScrollView, `ls`=ListView/RecyclerView, `bar`=Toolbar, `tab`=TabLayout, `dw`=DrawerLayout, `vw`=other
63
+ - zone: screen position of element center β€” row (`t`=top, `m`=mid, `b`=bottom) + col (`l`=left, `c`=center, `r`=right), e.g. `tl`=top-left, `mc`=mid-center
64
+ - `fc` β€” element has keyboard focus (K action types here)
65
+ - `ed` β€” element is editable (text input)
66
+ - `sr` β€” element is scrollable
67
+ - `hd` β€” element supports long-press
68
+ - `ds` β€” element is disabled
69
+ - `ck`/`uc` β€” checkbox checked/unchecked
70
+ - `sl` β€” element is selected
71
+ - `pw` β€” password field
72
+ - `...above (N nodes, scroll up)` / `...below (N nodes, scroll down)` β€” off-screen content indicators
73
+
74
+ ### Tree Compression Rules
75
+
76
+ The raw Android accessibility tree is compressed before being passed to the model:
77
+
78
+ 1. **Node filtering** β€” nodes without text, content description, resource ID, clickability, or scrollability are collapsed (their children are promoted up)
79
+ 2. **Off-screen filtering** β€” nodes fully outside the screen bounds (`x2<=0`, `y1>=screen_height`, etc.) are excluded; replaced with `...above (N)` / `...below (N)` scroll indicators
80
+ 3. **Sibling deduplication** β€” identical sibling subtrees are rendered only once (handles repeated list items)
81
+ 4. **Multi-window deduplication** β€” Android can return multiple root windows; duplicate root blocks are dropped. Roots whose tappable element IDs are fully covered by a larger root are also dropped (handles split-screen / overlay artifacts)
82
+ 5. **Largest-first ordering** β€” when multiple roots exist, the most complete window (most lines) is rendered first
83
+ 6. **Element indexing** β€” only `clickable=true AND enabled=true` nodes get a numeric index `[n]`. Non-clickable nodes are rendered without an index. Index order is top-to-bottom, left-to-right by element position
84
+ 7. **Type abbreviation** β€” class names are mapped to short tags (e.g. `android.widget.Button` β†’ `bt`)
85
+ 8. **Zone encoding** β€” element center is bucketed into a 3Γ—3 grid zone string (`tl/tc/tr/ml/mc/mr/bl/bc/br`)
86
+ 9. **Label selection** β€” `text` is preferred; falls back to `content_desc`; falls back to `resource_id` (last component after `/`)
87
+ 10. **Hard truncation** β€” tree is truncated at 4000 characters before tokenization to prevent OOM on dense screens
88
 
89
  ---
90