For now my solution is:
1. Created an Array of UI elements and set the grab_focus() method.
2. Listening for input from a player controller.
3. Setting a new focus for an element based on the key pressed
var conroller := "_joy0" # it's doesn't matter for now
func _unhandled_input(event: InputEvent) -> void:
if menu_is_opened and event is InputEventJoypadButton:
if Input.is_action_just_pressed("down%s"%conroller):
get_focus_owner().find_next_valid_focus().grab_focus()
if Input.is_action_just_pressed("up%s"%conroller):
get_focus_owner().find_prev_valid_focus().grab_focus()