A menu is not controller-ready because the first button receives focus. Real navigation must define where each direction moves, how confirm and cancel behave, and what happens when a list changes at runtime.
Focus needs an owner
Each screen should decide its initial focus, restore focus when submenus close, and return gameplay input cleanly when the whole interface exits.
Input devices should not fight
Mouse movement, keyboard navigation, and gamepad input need a consistent policy. Button prompts and focus visuals should update according to the active device.
Dynamic content needs deterministic navigation
Inventory grids, battle commands, and party lists must rebuild their navigation graph after content changes instead of depending on incidental widget order.