Re: FW: [program-l] NVDA add-on development questions

James Scholes

Hi Adil,

The content of Joseph's earlier message is useful for background, if you truly wish to know how the various parts of NVDA, your operating system, etc. come together to provide you with an accessible experience. But in this case, the most important thing to take away from it is that you cannot set the value of an edit field by modifying the NVDA object representation of it.

I did send a separate message to the list, explaining how you can set the text of a standard Windows edit field. Did you try that? If it doesn't work, or if the application is not standard Win32, then you may not be able to achieve what you want from within NVDA. For example, if you're trying to set the content of an edit field on a web page, you definitely should be writing a browser extension instead, not an NVDA add-on.

If you need more info, please tell us what you're trying to achieve, and in which application.


James Scholes

On 19/05/2020 at 10:02 am, Adil Shaikh wrote:
Thanks for the explanation,
It explains me how it all works.
I’m just trying to summarize your explanation to solidify my understanding.
1.Every window control is represented by NVDAObject
2.To create NVDAObject, window handle is obtain from the application
3.This window handle is passed to the accessibility api (JAB MSAA etc)
4.The accessibility api expose the window by different methods/properties
5.The accessibility client receives information and creates object (in this case NVDAObject.IAccessible etc )

Another thing an API class must have is a way to talk to the control in question via accessibility API. Each API class includes a reference to the control as seen by accessibility API. For MSAA/IAccessible, it is object.IAccessibleObject; for UIA, it is object.UIAElement.

I’m bit confused here. Do you mean the accessibility API can provide mechanism to modify source object (the real application window?
Please correct me if I misunderstood something.
Best wishes

Join to automatically receive all group messages.