Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

iOS: `_UIFloatingBarContainerView` counts as an occluder, so press/fill refuse everything above the tab bar

Đang mở
#2,996 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
52/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
ios, react-native, typescript
Lĩnh vực
mobile-dev, testing

Hướng nghiên cứu

Start by tracing the press and fill entry points using the reproduced selectors and the snapshot --raw output. Compare the iOS occlusion behavior with the Android case in #1806, and use the coordinate press workaround as a baseline. Done means content above the tab bar is no longer rejected when the full-screen container passes touches through, while genuine occlusion remains protected.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

ready-for-agent

Summary

On an iOS simulator, press and fill refuse every element above the tab bar of a React Native app with:

Error (COMMAND_FAILED): Selector label="Add plant" is covered by another visible element and cannot be tapped safely

Nothing covers those elements on screen, and a coordinate press <x> <y> at the element's centre works. The node that counts as covering them is a full-screen UIKit container, _UIFloatingBarContainerView, which touches pass through. This looks like the iOS counterpart of #1806, where contentless full-screen containers counted as occluders on Android.

Repro

  • agent-device 0.21.15 (also 0.20.10), iPhone 18 Pro simulator, driven through agent-device proxy
  • App: an Expo SDK 57 app in Expo Go, with JS bottom tabs (expo-router/js-tabs). It's the example app from avas-app/agent-bridge, but any screen with content above a tab bar should do.
agent-device open host.exp.Exponent "exp://<metro-host>:<port>" --platform ios --device "<sim>"
agent-device press 'label="Add plant"'          # covered
agent-device fill 'id="plant-name"' "Fern"      # covered (on the next screen)
agent-device find "Plants, tab" click           # works: the tab bar sits outside the container
agent-device press 380 118                      # works: same button by coordinates

snapshot -i marks every content node [covered].

Evidence

From snapshot --raw, the container is a sibling above the app content, full screen apart from the tab bar, and reported hittable:

{"index":122,"parentIndex":11,"type":"Toolbar","role":"_UIFloatingBarContainerView","label":"Toolbar","identifier":"Toolbar","rect":{"x":0,"y":0,"width":402,"height":791},"enabled":true,"depth":12,"hittable":true}

The content it "covers" is its sibling subtree at the same depth, with the same frame (0,0,402,791). The tab bar (y: 791) is outside the container's frame, which is why tab presses work.

Expected

A container with no content of its own that passes touches through (here _UIFloatingBarContainerView, possibly other _UI*Container* views) shouldn't count as an occluder. Or press/fill could fall back to the element's frame centre, the way a coordinate press works today.

Workaround

Look up the rect with get attrs <selector> --json and press/fill its centre by coordinates.

Ngôn ngữ chính
TypeScript
Star
4.7k
Fork
304
Merge trung bình
11 giờ 6 phút
Pull request đã merge (30 ngày)
521

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của callstack/agent-device

Tất cả issue của callstack/agent-device

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.