Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

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

Geschlossen
#2,996 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
52/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
ios, react-native, typescript
Bereich
mobile-dev, testing

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
TypeScript
Sterne
5k
Forks
334
Ø Merge
12 Std. 2 Min.
Gemergte PRs (30 T.)
678

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus callstack/agent-device

Alle Issues in callstack/agent-device

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.