In my opinion, hidden controls aren’t bad per se. But they are something you have to learn to use. That makes them generally worse for beginners and (hopefully) better for experts. It’s a trade off and sometimes getting users to learn your UI is the right decision. I’m glad my code editor puts so much power at my fingertips. I’m glad git is so powerful. I don’t want a simplified version of git if it means giving up some of its power.
That said, I think we have gone way too far toward custom per-app controls. If you’re going to force users to learn your UI conventions, those learnings should apply to other applications on the same platform. Old platforms like the palm were amazing for this - custom controls were incredibly rare. When you learned to use a palm pilot, you could use all the apps on it.
One press turns on/off the display Two taps enables Apple Pay
Quite often my timing is not perfect or one press isn’t hard enough so I shut off the display
Then, paying with Apple Pay is a double press but paying for transit is no press. but often I’m absent minded and as I’m walking through the transit gate my brain thinks “must pay” “pay = double press” so I subconsciously double press and the gate screams since is not in transit mode now it’s in Apple Pay mode