A mongo replica set will only be available if more than 50% of the nodes are available.
In your case if Site A failed then your replica set will go offline
A possible alternative is to run 2 replica nodes in A and 2 in B. Then on an external location either run an arbitrator or a delayed replica.
The delayed replica would provide a further backup of your data, however I would make sure that you set its priority to 0, this will ensure that whilst it is a voting member it will not get promoted to the primary.
Having a third site may not be feasible but it is the safest approach.
The complications will obviously come with ensuring that you secure the communications between Site A -> Site C, Site B -> Site C.
If you are truly limited to 2 Sites, then the only real way to ensure that the replica set remains healthy would be to monitor the number of nodes that are healthy and have some auto scale function to ensure that you always have enough nodes to vote on a primary. However I would think in this solution you would still end up with some downtime whilst a new server was started and added to the replica set.