How To Grab All Widgets in a Window?

So I’m trying to add Screen Reader support to Unreal Engine. From a little research, Screen Readers work in browsers thanks to a DOM Tree and all the different HTML tags conveniently create a tree structure to traverse. Is there a tree like structure of SWidgets that exists for each SWindow?

If a default one doesn’t exist, I’m open to build one. Is there an alternative to building the tree recursively via GetChildren() every Tick though? Cause that seems very expensive.

The end goal is to be able to go through an entire window in a BFS fashion. First visiting all the large containers and having the choice to go a level deeper and interact with leaf widgets. Key presses can then be used to simulate mouse presses and when a widget is “focused”, a voice synthesiser speaks the name of the widget and how to interact with it.

If anyone thinks a widget tree isn’t necessary to accomplish that, I’m all ears. Thanks all.