Re: Layers and NVDA
Honestly I have not heard the term layering used in the way that you are using it.
There is programmatic layering, which is mainly about isolating different portions of a program into higher and lower functions that only know about the layer directly above/below them.
There is screen reader keyboard layers, which is when one screen reader keyboard command (gesture, in NVDA terms), causes other keys on the keyboard to have effects other than they usually would.
For example, the Developer Toolkit add-on for NVDA does this.
Read more about it here: https://addons.nvda-project.org/./addons/developerToolkit.en.html
You press a certain key sequence, after which other keyboard keys now do something dedicated to that add-on, instead of whatever they did before. It is a way of using more keyboard commands than you normally have keys available to use conveniently.
But I don't think that's quite what you're talking about, at least not entirely, as you seem to be bringing in other concepts of programs interacting with each other, which I have not heard called layering.
Then again, there is much I don't know. You may be better off asking about this on either the nvda-devel or nvda-addons lists.
"In this life there are obstacles, and forces who overcome obstacles. You can be either one or the other.
If you refuse to even try to clear an obstacle, you become the obstacle."
- Joel Shepherd