If you want to use automatic navigation, you need to disable all controls that you don’t want to be accessible at a given time–NOT merely e.g. move them off-screen, or conceal them by drawing other stuff on top of them, which are tricks that work fine if you only care about pointer input. This will probably involve a lot of Canvas Groups used to disable an entire screen or window of controls.
If you have a screen where some controls get dynamically added, removed, or moved around, automatic navigation can save a lot of effort because it will update on the fly to compensate for those changes. Explicit navigation will require that you reassign those fields yourself as things change.
But automatic navigation is also not terribly smart. It sometimes makes wonky decisions about what goes where, and I don’t think it’s guaranteed to make every control reachable in extreme cases (it’s certainly not guaranteed symmetrical). You can almost certainly make things sleeker if you devise a custom solution that takes your specific screen layout into account.