However, it is expected that the hidden node will not be visible in the program by the first sentence.
The client application, in this case, means the client program that is connecting to the replica set. The client writes and reads data from the replica set. You specify the replica set’s uri from your client program (e.g., shell, NodeJS or Java program) to connect, read and write. This client program cannot connect to the hidden member in any case (only data replication happens). But, a client program can read data from other secondary members - when appropriate Read Preference is configured.
If the replica set’s primary crashes, an election takes place and a new member is elected as primary. And the client program reads and writes from the new primary. In such a scenario, the hidden member cannot become a primary.
Use hidden members for dedicated tasks such as reporting and backups
In a replica set, you can connect to a secondary member directly and perform read operations (e.g., query a collection). This capability allows you to extract the data needed from the hidden member for reporting and such tasks. Note that, the only operation happening on the hidden member is just the replication (copy of the write operations are written to this node).