react / react/react-native

[iOS] TestID for StatusBar component is not visible

Open
#39,382 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Component: StatusBar Needs: Triage :mag: Never gets stale Platform: iOS
Dominant language
C++
Stars
127k
Forks
25.3k
Avg merge
1d 23h
Merged PRs (30d)
4

Description

Description

After adding testID, the new name attribute does not appear on the iOS platform, thanks to which I could use this element in my e2e tests. On the Android platform, this testID is visible as a resource-id attribute.
For example, in the Button component, after adding testID, the name attribute appears on the iOS platform, and for the Android platform, testID is visible as the resource-id attribute.

A screenshot from the Appium inspector tool, where all the attributes of the hidden element are visible (missing testID for iOS platform):

Screenshot 2023-09-11 at 12 53 57

A screenshot from the Appium inspector tool, where all the attributes of the hidden element are visible (testID is visible as resource-id for the Android platform):

Screenshot 2023-09-11 at 12 55 11

React Native Version

0.72.4

Output of npx react-native info

System:
OS: macOS 13.0.1
CPU: (8) arm64 Apple M1 Pro
Memory: 223.94 MB / 32.00 GB
Shell:
version: 5.8.1
path: /bin/zsh
Binaries:
Node:
version: 18.17.0
path: ~/.nvm/versions/node/v18.17.0/bin/node
Yarn:
version: 1.22.19
path: /usr/local/bin/yarn
npm:
version: 9.6.7
path: ~/.nvm/versions/node/v18.17.0/bin/npm
Watchman:
version: 2023.07.24.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.12.1
path: /Users/elzbietaszulc/.rvm/gems/ruby-2.7.6/bin/pod
SDKs:
iOS SDK:
Platforms:

  • DriverKit 22.1
  • iOS 16.1
  • macOS 13.0
  • tvOS 16.1
  • watchOS 9.1
    Android SDK: Not Found
    IDEs:
    Android Studio: 2021.3 AI-213.7172.25.2113.9123335
    Xcode:
    version: 14.1/14B47b
    path: /usr/bin/xcodebuild
    Languages:
    Java:
    version: 17.0.8
    path: /usr/bin/javac
    Ruby:
    version: 2.7.6
    path: /Users/elzbietaszulc/.rvm/rubies/ruby-2.7.6/bin/ruby
    npmPackages:
    "@react-native-community/cli": Not Found
    react: Not Found
    react-native: Not Found
    react-native-macos: Not Found
    npmGlobalPackages:
    "react-native": Not Found
    Android:
    hermesEnabled: false
    newArchEnabled: false
    iOS:
    hermesEnabled: true
    newArchEnabled: false
Steps to reproduce
  1. Add testID="status_bar_hidden_button" to the StatusBarExample.js component (hidden element)
  2. Reload RNtester app
  3. Run the Appium Inspector tool
  4. Check if name attribute has been added for the iOS platform
Snack, screenshot, or link to a repository

A link to the StatusBar component that I defined:

https://github.com/facebook/react-native/commit/1a0aa4deccf8e4906b6cabb6ca1c256144c1905d#diff-b18fc0c0f0855b6d50574152d4c1169b6e17ca8058d1cdf6aa0ff35203b03183

A link to StatusBarExample.js where I added testID:

https://github.com/elzszulc/react-native/commit/a8e91190646ee31d925d08e9916f707530319f87#diff-2b00a1862df8983883889bfdc2e01f3ea7ca3970edab508da39c26419f9447e3

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with StatusBarExample.js and the linked StatusBar component change, then reproduce the hidden-element case in the RNtester app with Appium Inspector. Compare the iOS accessibility attributes with the Android resource-id behavior; done means testID produces the expected iOS name attribute for the hidden StatusBar element.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, react-native
Domain
mobile
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.