Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

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

Ouverte
#2,996 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
52/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Stack technique
ios, react-native, typescript
Domaine
mobile-dev, testing

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
TypeScript
Étoiles
4.8k
Forks
315
Merge moyen
11 h 25 min
PR mergées (30 j)
545

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de callstack/agent-device

Toutes les issues de callstack/agent-device

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.