Replies: 8 comments 7 replies
-
These are some great questions Joseph, I look forward to the discussion here. Just to add to some of the simpler ones first:
Off the top of my head:
Here are a couple I think we see in the scope of core, and are valuable to have:
This is going to always fall back on NV Access as the maintainers of the project. However, in practice of course there would be collective efforts to fix or back out code. Generally with PRs we will revert it if there is no capacity to fix blocking issues, and so it becomes on the original author or the community to decide if they want to take responsibility. |
Beta Was this translation helpful? Give feedback.
-
A couple of questions I think worth asking: Are there barriers for people using add-ons? And is this a key reason there is sometimes a push for functionality already available in an add-on to be included in core? Where something is developed as an add-on first for whatever reason, and is found to be really beneficial for the majority of users, there are multiple examples where it then has moved into core - screen curtain for instance. In some cases, I think even if something may be widely regarded as beneficial, there can be arguments for keeping it as an add-on. Two mentioned already could be: NVDA Remote Given the online nature of features such of those and the potential for user data to be sent over the internet - these raise security and privacy questions for some users and companies, and I believe "This functionality is available to be downloaded separately" is a better approach than "This functionality is built-in, and you can either disable it or not use it if you prefer". The question then becomes "as a user, if I want those features, is it hard for me to get them?" Either in terms of discoverability (finding out that such a feature even exists as an add-on) or setup (can I easily access the add-on and install it?) I think having the add-on store built-in to NVDA now should help to a lesser or greater extent with both of those issues, but is there more that could / should be done to make it easier? |
Beta Was this translation helpful? Give feedback.
-
Thanks for reaching out and providing the context for this discussion. I appreciate the opportunity to address these important questions regarding the direction of NVDA development and the role of add-ons. First and foremost, the core purpose of NV Access is to support the health and longevity of NVDA, with the ultimate goal of maximising the benefit that NVDA brings to the visually impaired community. The best way to accomplish this is by being deeply attuned to the community's needs, working in a collaborative manner with them, and being guided and bound by our product vision and guiding principles (which can be found at https://github.com/nvaccess/nvda/blob/master/projectDocs/product_vision.md). These principles emphasise accessibility, user empowerment and flexibility to meet individual needs. It's important to recognise that user needs and the technological environment are constantly evolving, and NVDA is no exception. As such, there is no one-size-fits-all equation for balancing the various needs of different user groups, or even for determining the appropriate balance between infrastructure improvements and new features. This is part of the complex decision-making process that the NV Access staff are tasked with. Regarding the definition and core nature of a screen reader, it is true that this has evolved over time. We recognise that the lines of "core" screen reader functionality have never been static throughout NVDA's history. Screen readers aren't just about reading text. They're about empowering visually impaired individuals to interact with and control a digital world. As that world expands, so must NVDA's capabilities. With respect to the development and maintenance of features and code between the core NVDA application and add-ons, there is no strict boundary or hard line. While add-ons provide fantastic experimentation and niche solutions and have played a crucial role in extending NVDA's capabilities and addressing specific use cases, there are instances where it may be appropriate to incorporate certain add-on features or concepts into the core NVDA codebase. This decision is made on a case-by-case basis, taking into account factors such as the potential benefit to a broader user base, the maturity and stability of the feature, and the long-term maintenance implications. Ultimately, the responsibility for maintaining and supporting features that are incorporated into NVDA core rests with NV Access. However, we highly value and encourage community contributions, whether in the form of bug reports, feature requests or code contributions. This collaborative approach has been a key strength of the NVDA project, and we are committed to continuing to foster an open and inclusive development process. In conclusion, while there may be differing perspectives on the appropriate scope and direction of NVDA development, our commitment remains unwavering: to provide a robust and accessible screen reader that empowers users and meets their evolving needs. NV Access will continue to engage with the community, leverage their insights and expertise, and make thoughtful decisions that align with our product vision and guiding principles. |
Beta Was this translation helpful? Give feedback.
-
Yes, there are several:
I'd say add-on store should really have an ability to display the documentation for a given add-on - this is covered in #13454 |
Beta Was this translation helpful? Give feedback.
-
One thing which both @LeonarddeR and I mentioned briefly in #16056 which has not really been discussed here, is the impact of yearly compatibility breaks on add-ons. I'd say that if we could limit them we would get much less requests about including stuff into the core, just because users would be much less annoyed. Is this a direction which has at least been considered by NV Access? |
Beta Was this translation helpful? Give feedback.
-
@seanbudd wrote:
In general yes, but regarding extensions system admins are very strict. It is not only NVDA that is impacted by this.
In some cases that might indeed be the case, but I wouldn't generalize it otherwise it becomes a really hard statement. There are also valid reasons why an employer would not allow add-ons to be installed, and I think there is too less knowledge about accessibility in IT departments so they will rather make a requirement for all instead of looking for add-ons case by case. I think though there are companies who are more open minded and hear the arguments of a person who needs the add-on for their job. But there are also such add-ons like "speak passwords" which I guess no system admin would allow them to be installed.
That's a really good goal, though I think add-ons will always remain a thorn in the side of system admins and IT security departments. Not only in the case of NVDA. So there will always arise cases where an add-on's functionality will be proposed for core inclusion. And there will be add-ons which are so impactful, that a single add-on author with a small community behind him or her will never be able to use its full potential. So having certain features in NVDA that can impact positively the whole community will always be a wish case by case.
It certainly improved the situation for some users, but certainly not for the majority of people in the community:
@gerald-hartig wrote:
That's a very strong and valid statement in my view. This makes it already very obvious that discussions with the community and understanding the use cases and the potential of a feature will help in deciding whether it is elligible to be part of the core or not. There are also add-ons which only solve bugs in NVDA. Such add-ons are for sure easier to integrate into the core and will generate less discussions than an add-on which brings a totally new feature. |
Beta Was this translation helpful? Give feedback.
-
My conclusion after more than 10 years of power using NVDA and building the german and romanian NVDA community is that now we have more than 250 add-ons out there, some people have installed more than 50 add-ons and they will never be able to reach out to each of the add-ons authors to request a new functionality or to request solving a bug. Merging some of the add-ons which are very important for the community will become more and more important, because it opens up the potential that the whole community can easily contribute to these features within one single repository. The challenge will be to discuss the UX design and the documentation of each proposal in such a way that NVDA still remains an easy to use screen reader and does not overwelm people. |
Beta Was this translation helpful? Give feedback.
-
Hi, While I can't comment on all discussion posts so far, to offer context around Windows App Essentials: I created Windows App Essentials add-on in 2015 to respond to Windows as a Service (WaaS) where things can change without notice. This was evident in Windows Insider Program (WIP) where new builds were released monthly or so. The build release frequency has increased significantly in recent years (close to a weekly release). I still participate in Windows Insider Program and have made changes to the add-on in response to Windows feature changes (I am planning to submit several pull requests once Windows 11 24H2/2024 Update/Server 2025 final build is revealed to Insiders). From its first (stable) release in December 2015, I knew that parts of Windows App Essentials add-on must be made available in NVDA Core. Sooner or later NVDA users upgrading to Windows 10 and later will meet changes proposed and implemented by Microsoft with community feedback, and NVDA users should be able to access and use built-in Windows features (including included apps) without help from add-ons. More importantly, Windows Insiders will be testing builds where features can come and go without notice, including bug fixes dealing with accessibility and usability. While it was a minor factor, since 2018 Narrator has shown remarkable progress, and I could not ignore it - I consider Narrator to be the gold standard on Windows 10 and later as far as feature support is concerned. The above three things - continuous development and delivery for Insiders, feature availability and accessibility on stable Windows 10/11 releases, and Narrator development - are what keeps Windows App Essentials and my contribution to NVDA Core going (of course I consider this an opportunity to further develop research topics in graduate school). Therefore, I realized early on that parts of this add-on must be made available to NVDA users. As Sean noted, many features from this add-on have made their way to NVDA Core, including:
All of these features have one thing in common: built into Windows at one time or another. For me, an important criteria for bringing add-ons into NVDA Core is support for features and apps built into Windows. We have various add-ons supporting various apps and scenarios, and many do not come with the operating system by default; for these, I think they should remain add-ons; this is more so for apps that change their interfaces and experiences quite frequently. We also have add-ons adding enhancements and offering fixes at the global level, and these are sites of tensions and discussions. For these, I think we need to think about where these features are encountered and needed, with ones built into Windows having priority along with improving usage of various apps (say, supporting a common set of controls found across apps, both built into Windows or obtained elsewhere). In some ways, folks could say that I'm basing my thoughts on Windows App Essentials because the add-on is an example of my thinking in this regard (and is structured and coded to follow these principles); this is why I keep an eye on Windows changes (through Insider Preview builds) and features I helped write in NVDA Core to see if things must be refined from time to time. Postscript: there is one thing I will NOT transfer from Windows App Essentials to NVDA Core: Windows 10 Settings app and live region change event handling in Windows Update interface. This feature will be removed from Windows App Essentials either in late 2025 (when Windows 10 support ends) or the add-on is declared end of life, whichever happens earlier (I did say that add-on development is tied to Windows Insider Program, but since 2023 I began the slow process of retiring the add-on; I don't know when the add-on will be declared EOL, and that's the day I plan to step aside from most NVDA activities). Thanks. |
Beta Was this translation helpful? Give feedback.
-
Hi,
Stemming from #16056, this discussion is intended to serve as a venue for NVDA community and development stakeholders (NV Access, broader NVDA community, observers, and others) to offer thoughts on the overall direction of NVDA development/maintenance and its connection with add-ons and bringing ideas/features from them to the screen reader core:
Context
One of the strengths of NVDA is add-ons, a small, self-contained module that adds features and workarounds at the global and app levels. Over the years, NVDA community members (including NV Access) has developed several add-ons that has enriched the lives of NVDA users with features such as online-based image recognition and generative AI powered descriptions, computer resource monitoring, numerous speech synthesizers and braille displays support, support for apps such as audio editors, and other enhancements and workarounds. Recently, several features from these add-ons have made their way to NVDA Core. These include audio output splitting, visual highlight and screen curtain, and checking for and applying add-on updates.
With requests to bring add-on features/ideas/code to NVDA Core, several community members have commented on the scope of a screen reader in recent issues. In #16056, for example, while discussing a request to add a command to mute microphones, a discussion arose around the need to bring add-on features/ideas/code to the core screen reader. Some community members believed that it is okay to bring add-on features to solve real-life issues, while some felt that screen readers should focus on the core task of screen reading. While some participants insisted on keeping screen readers to their minimum and let add-ons take care of various feature requests, some felt that it is time to reassess use cases and think about development and maintenance strategy.
Stemming from the above discussion, another conversation arose around who is responsible for maintaining NVDA project. Some argued that NV Access is in charge because pull requests are accepted and merged by NV Access staff even though pull requests may come from the broader community. Some said the broader NVDA Community because NVDA itself is a screen reader with community sentiments, needs, and wishes embedded in its code and ideas, with add-ons representing how community members use NVDA across contexts.
Key questions and discussion points
Definitions of screen readers and screen reading
Features/ideas/code development/maintenance between screen readers and add-ons
Thanks.
Beta Was this translation helpful? Give feedback.
All reactions