The below message was posted to NVDA development list, but I think this merits mentioning here. Please write to me offlist if you have comments or would like to help:
I’d like to request for comments before I proceed with further research into the following issue:
One of the advantages and weaknesses of NVDA source code (as it stands) is API docs. Although we do have development guide that gives high-level picture of what add-ons and other modules should do, more knowledge can be gained by reading NVDA Core source code. For those who’d like to go further than writing app modules, reading NVDA Core source code is a must, but because certain parts are not documented well, it is hard for some to get into NVDA Core development. One way we, the current NVDA developers can help, is writing down our know-how directly in NVDA Core source code, thereby allowing NVDA API docs to become one of the greatest out there and opening up opportunities for many to follow our footsteps by reading the improved documentation.
I do understand that NV Access may not have time or resources to pursue the task of adding or updating API docs. However, I believe that one of the best ways to showcase the power of NVDA is through extensive documentation, with our hard work, knowledge gained, and wisdom included in these pages. Documentation also serves as a valuable historical artifact – long after possible demise of NVDA, historians, generations of programmers and students can learn about history of the global movement that is NVDA and learn to appreciate our talents and mindset as they research further.
Because of time and effort involved, I’d like to suggest that we don’t use forceful advocacy to get this feature onboard right away – I’m thinking it is something we should try to do throughout 2017. Also, this is the kind of a project that those knowledgeable in the NVDA community (users, developers, observers, etc.) should take part in (NVDA source code is massive now), with one or two persons serving as overall coordinators and committing needed bits and recording names of contributors.