Never had a problem communicating between them.
And the code in them has to get rather complicated if you expect to handle controller support.
You have to override the input and manage it via code to so so.
Never had a problem doing that either, except yes, in BP it’s painful.
What are you doing to communicate?
You can set the Owner and access from the widget.
Or you can set a variable and cast to the parent/solve a soft reference.
Doesn’t take much.