In the header file have publicly declared
virtual bool IsInteractable() const override {return true;};
virtual bool SupportsKeyboardFocus() const override { return true;};
TSharedPtr<SButton> ButtonToFocusOn;
Implement as follows in slate code (see my comment)
SAssignNew(ButtonToFocusOn, SButton)
When creating the widget containing the button save a reference to it, then set focus as follows (modify as required) I have this in my MenuHUD.cpp
FSlateApplication::Get().SetKeyboardFocus(WidgetReference->ButtonToFocusOn.ToSharedRef());
If includes are correct this should work. (Thanks to BrUnO_XaVIeR How do I set focus on SButton - #6 by CanadianCheesus)