From fe943fc74482825d3554ef7dc297073035119658 Mon Sep 17 00:00:00 2001 From: Michael Curran Date: Mon, 19 Jun 2023 10:58:31 +1000 Subject: [PATCH 01/11] Add a product vision and guiding principles document. --- product_vision.md | 65 +++++++++++++++++++++++++++++++++++++++++++++++ readme.md | 2 ++ 2 files changed, 67 insertions(+) create mode 100644 product_vision.md diff --git a/product_vision.md b/product_vision.md new file mode 100644 index 00000000000..70a64288c4e --- /dev/null +++ b/product_vision.md @@ -0,0 +1,65 @@ +## Product Vision +A world where blind and vision impaired people can independently and fully interact with the Windows Operating System and popular third party applications, enabling them to contribute to society, no matter their language, location or economic status. +Blind and vision impaired people are empowered to control their own destiny and ensure this vision, through being able to significantly contribute to the technology that makes this possible. + +## Product description +NVDA (NonVisual Desktop Access) is software that allows blind and vision impaired people to independently interact with the Windows Operating System and popular third party applications by outputting content in either synthetic speech or via a refreshable Braille Display. +Developed by NV Access in partnership with a dedicated open source community, NVDA enables blind and vision impaired people to increase their chances at education and employment, and to make a contribution to society. + +## Guiding Principles +1. Freely Available to all: To ensure that NVDA is available to anyone who needs to access the Windows Operating system, no matter their economic status: + A. NVDA is free of charge for anyone who needs to access a computer. + B. NVDA can be downloaded, copied, shared, and used on any amount of computers. + C. Future updates are free of charge. +2. By users for users: To allow and empower blind and vision impaired people to have a say in and directly contribute to NVDA, ensuring it meets their needs as a solution to technology access: + A. NVDA is an open source project, meaning that its source code is available to anyone who wishes to learn from and or contribute to the project. + B. Documentation is provided to ensure code can be understood and developers can get up and running with ease. + C. The vast majority of contributers to the NvDA project are blind or vision impaired, and are users of the product themselves. +3. Multilingual: Ensure that NVDA can be used by people no matter what language they speak: + A. NVDA provides mechanisms for volunteers to translate user interface messages and documentation. + B. Release processes provide time and reminders for volunteers to contribute translations to NVDA. +4. Stability: Ensure NVDA is stable, minimizes freezes, and avoids drastic updates that could disrupt user experience: + A. NVDA strives to support any breaking changes in Windows or supported popular third party applications before they reach the user. + B. NVDA updates should not drastically change or remove pre-existing features or defined behaviour without clearly warning the user first. + C. NVDA's code should do its best to recover from application freezes, allowing the user to still interact with the rest of the Operating System. +5. Quality: Ensure NvDA's code is high-quality, safe, and that bugs are caught before reaching a release: + A. All code is reviewed by at least one other core contributer. + B. Automated unit and system tests decrease the possibility of unwanted changes in behaviour. + C. Alpha and beta builds are provided for early testing by a large base of dedicated community testers +6. Security: Ensure that NVDA does not place a user at risk of security attacks: + A. NVDA prioritizes user security, striving to eliminate risks of remote control attacks or data leaks. + B. A strict process exists to follow a security report from implementation to rollout. + C. Critical security fixes are minimized in size and complexity to focus on the exact issue reported, which lessens the chance of other security or instabilities accidentally being introduced. +7. Efficient: Ensure responsiveness to user input, but also energy efficiency where possible: + A. Make use of newer more efficient APIs where possible, at the same time falling back to older APIs to ensure functionality on older systems. + B. Periodically remove technical debt and refactor code to make code more efficient and understandable, making sure to maintain compatibility with existing scenarios and OS / application versions still supported. +8. Innovative: Strive to push the boundaries of what is possible and to avoide stagnation for both NvDA and its compeditors: + A. Prototype new ideas and make them available through try builds. + B. Promote the sharing and healthy debate of ideas on developer email lists and Github Discussions. +9. Compliance: Ensure app / web developers can rely upon NVDA to make best use of the accessibility they implement: + A. NVDA strives to comply with all application and web accessibility standards where possible. + B. Where there is disagreement or inability to comply with an accessibility standard, NVDA maintainers clearly and respectfully argue the case, providing practical alternative solutions. + C. NVDA maintainers partispate in discussions with standards groups. +10. Documentation: Ensure users have the knowledge to fully leverage NVDA's features for productivity in work and everyday life: + A. NVDA offers comprehensive, user-friendly documentation such as an official user guide free of charge. + B. User-level support is available via various community-run email lists. +11. Multimodal: Ensure that NVDA supports various modes of interaction, meeting the diverse needs of its users: + A. NVDA supports multiple input methods including the keyboard, mouse, touch, and braille input devices. + B. NVDA delivers output through both speech synthesis and braille displays. + C. To cater to the diversity of user preferences, NVDA strives to make all its features accessible through all input and output modalities. +12. Compatibility: Ensure that NVDA works with a wide range of software and hardware to provide maximum accessibility and to ensure users are not left behind in today's rapidly changing technology: + A. NVDA is regularly updated to be compatible with the latest versions of Windows and popular third-party applications. + B. NVDA also maintains compatibility with older versions of Windows and third-party applications that are still officially supported by their respective companies, providing accessibility solutions for users on older systems. + C. NVDA strives to support all common speech synthesizers and refreshable Braille displays that exist today. +13. Configurable: Ensure the user can configure NVDA to suit their own particular preferences and the task at hand: + A. NVDA contains many options for configuring what information is reported and how it is presented. + B. NvDA allows the user to configure attributes of the output such as the voice rate and pitch, punctuation, and what Braille standard is used. + C. NVDA allows the user to create configuration profiles, so that the user can easily switch configurations depending on the particular task they are performing. +14. Extendable: Ensure that NVDA can be easily enhanced and customized to meet specific user needs and requirements: + A. NVDA allows the creation and integration of community-created add-ons, providing support for extra speech synthesizers, refreshable Braille displays and more third party applications. + B. NVDA allows the user to browse for, download and install available add-ons from within NVDA itself. + C. NVDA provides freedom for add-ons to find innovative solutions by allowing them broad access to NVDA's internals. + D. NVDA ensures add-ons do not break by postponing major API changes to once per year, announcing these changes many months ahead of time. + E. NVDA Protects users from installing an add-on that is incompatible with the current version of NVDA, allowing the user to override this protection if they understand the risk. + + \ No newline at end of file diff --git a/readme.md b/readme.md index 1109cee1cef..a7f6137a25b 100644 --- a/readme.md +++ b/readme.md @@ -6,6 +6,8 @@ To learn more about NVDA or download a copy, visit the main [NV Access](http://w Please note: the NVDA project has a [Citizen and Contributor Code of Conduct](CODE_OF_CONDUCT.md). NV Access expects that all contributors and other community members will read and abide by the rules set out in this document while participating or contributing to this project. +The NVDA project is guided by a [product vision statement and set of principles](product_vision.md). The vision and principles should be always considered when planning features and prioritizing work. + ## Get support Whether you are a beginner, an advanced user, a new or a long time developer; or if you represent an organization wishing to know more or to contribute to NVDA: you can get support through the included documentation as well as several communication channels dedicated to the NVDA screen reader. Here is an overview of the most important support sources. From 24bc0c0a5d95bc4b26a88df7ecaf1c6a8b63c6ad Mon Sep 17 00:00:00 2001 From: Michael Curran Date: Mon, 19 Jun 2023 12:08:28 +1000 Subject: [PATCH 02/11] Fix indenting --- product_vision.md | 80 +++++++++++++++++++++++------------------------ 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/product_vision.md b/product_vision.md index 70a64288c4e..019e9ed442c 100644 --- a/product_vision.md +++ b/product_vision.md @@ -8,58 +8,58 @@ Developed by NV Access in partnership with a dedicated open source community, NV ## Guiding Principles 1. Freely Available to all: To ensure that NVDA is available to anyone who needs to access the Windows Operating system, no matter their economic status: - A. NVDA is free of charge for anyone who needs to access a computer. - B. NVDA can be downloaded, copied, shared, and used on any amount of computers. - C. Future updates are free of charge. + A. NVDA is free of charge for anyone who needs to access a computer. + B. NVDA can be downloaded, copied, shared, and used on any amount of computers. + C. Future updates are free of charge. 2. By users for users: To allow and empower blind and vision impaired people to have a say in and directly contribute to NVDA, ensuring it meets their needs as a solution to technology access: - A. NVDA is an open source project, meaning that its source code is available to anyone who wishes to learn from and or contribute to the project. - B. Documentation is provided to ensure code can be understood and developers can get up and running with ease. - C. The vast majority of contributers to the NvDA project are blind or vision impaired, and are users of the product themselves. + A. NVDA is an open source project, meaning that its source code is available to anyone who wishes to learn from and or contribute to the project. + B. Documentation is provided to ensure code can be understood and developers can get up and running with ease. + C. The vast majority of contributers to the NvDA project are blind or vision impaired, and are users of the product themselves. 3. Multilingual: Ensure that NVDA can be used by people no matter what language they speak: - A. NVDA provides mechanisms for volunteers to translate user interface messages and documentation. - B. Release processes provide time and reminders for volunteers to contribute translations to NVDA. + A. NVDA provides mechanisms for volunteers to translate user interface messages and documentation. + B. Release processes provide time and reminders for volunteers to contribute translations to NVDA. 4. Stability: Ensure NVDA is stable, minimizes freezes, and avoids drastic updates that could disrupt user experience: - A. NVDA strives to support any breaking changes in Windows or supported popular third party applications before they reach the user. - B. NVDA updates should not drastically change or remove pre-existing features or defined behaviour without clearly warning the user first. - C. NVDA's code should do its best to recover from application freezes, allowing the user to still interact with the rest of the Operating System. + A. NVDA strives to support any breaking changes in Windows or supported popular third party applications before they reach the user. + B. NVDA updates should not drastically change or remove pre-existing features or defined behaviour without clearly warning the user first. + C. NVDA's code should do its best to recover from application freezes, allowing the user to still interact with the rest of the Operating System. 5. Quality: Ensure NvDA's code is high-quality, safe, and that bugs are caught before reaching a release: - A. All code is reviewed by at least one other core contributer. - B. Automated unit and system tests decrease the possibility of unwanted changes in behaviour. - C. Alpha and beta builds are provided for early testing by a large base of dedicated community testers + A. All code is reviewed by at least one other core contributer. + B. Automated unit and system tests decrease the possibility of unwanted changes in behaviour. + C. Alpha and beta builds are provided for early testing by a large base of dedicated community testers 6. Security: Ensure that NVDA does not place a user at risk of security attacks: - A. NVDA prioritizes user security, striving to eliminate risks of remote control attacks or data leaks. - B. A strict process exists to follow a security report from implementation to rollout. - C. Critical security fixes are minimized in size and complexity to focus on the exact issue reported, which lessens the chance of other security or instabilities accidentally being introduced. + A. NVDA prioritizes user security, striving to eliminate risks of remote control attacks or data leaks. + B. A strict process exists to follow a security report from implementation to rollout. + C. Critical security fixes are minimized in size and complexity to focus on the exact issue reported, which lessens the chance of other security or instabilities accidentally being introduced. 7. Efficient: Ensure responsiveness to user input, but also energy efficiency where possible: - A. Make use of newer more efficient APIs where possible, at the same time falling back to older APIs to ensure functionality on older systems. - B. Periodically remove technical debt and refactor code to make code more efficient and understandable, making sure to maintain compatibility with existing scenarios and OS / application versions still supported. + A. Make use of newer more efficient APIs where possible, at the same time falling back to older APIs to ensure functionality on older systems. + B. Periodically remove technical debt and refactor code to make code more efficient and understandable, making sure to maintain compatibility with existing scenarios and OS / application versions still supported. 8. Innovative: Strive to push the boundaries of what is possible and to avoide stagnation for both NvDA and its compeditors: - A. Prototype new ideas and make them available through try builds. - B. Promote the sharing and healthy debate of ideas on developer email lists and Github Discussions. + A. Prototype new ideas and make them available through try builds. + B. Promote the sharing and healthy debate of ideas on developer email lists and Github Discussions. 9. Compliance: Ensure app / web developers can rely upon NVDA to make best use of the accessibility they implement: - A. NVDA strives to comply with all application and web accessibility standards where possible. - B. Where there is disagreement or inability to comply with an accessibility standard, NVDA maintainers clearly and respectfully argue the case, providing practical alternative solutions. - C. NVDA maintainers partispate in discussions with standards groups. + A. NVDA strives to comply with all application and web accessibility standards where possible. + B. Where there is disagreement or inability to comply with an accessibility standard, NVDA maintainers clearly and respectfully argue the case, providing practical alternative solutions. + C. NVDA maintainers partispate in discussions with standards groups. 10. Documentation: Ensure users have the knowledge to fully leverage NVDA's features for productivity in work and everyday life: - A. NVDA offers comprehensive, user-friendly documentation such as an official user guide free of charge. - B. User-level support is available via various community-run email lists. + A. NVDA offers comprehensive, user-friendly documentation such as an official user guide free of charge. + B. User-level support is available via various community-run email lists. 11. Multimodal: Ensure that NVDA supports various modes of interaction, meeting the diverse needs of its users: - A. NVDA supports multiple input methods including the keyboard, mouse, touch, and braille input devices. - B. NVDA delivers output through both speech synthesis and braille displays. - C. To cater to the diversity of user preferences, NVDA strives to make all its features accessible through all input and output modalities. + A. NVDA supports multiple input methods including the keyboard, mouse, touch, and braille input devices. + B. NVDA delivers output through both speech synthesis and braille displays. + C. To cater to the diversity of user preferences, NVDA strives to make all its features accessible through all input and output modalities. 12. Compatibility: Ensure that NVDA works with a wide range of software and hardware to provide maximum accessibility and to ensure users are not left behind in today's rapidly changing technology: - A. NVDA is regularly updated to be compatible with the latest versions of Windows and popular third-party applications. - B. NVDA also maintains compatibility with older versions of Windows and third-party applications that are still officially supported by their respective companies, providing accessibility solutions for users on older systems. - C. NVDA strives to support all common speech synthesizers and refreshable Braille displays that exist today. + A. NVDA is regularly updated to be compatible with the latest versions of Windows and popular third-party applications. + B. NVDA also maintains compatibility with older versions of Windows and third-party applications that are still officially supported by their respective companies, providing accessibility solutions for users on older systems. + C. NVDA strives to support all common speech synthesizers and refreshable Braille displays that exist today. 13. Configurable: Ensure the user can configure NVDA to suit their own particular preferences and the task at hand: - A. NVDA contains many options for configuring what information is reported and how it is presented. - B. NvDA allows the user to configure attributes of the output such as the voice rate and pitch, punctuation, and what Braille standard is used. - C. NVDA allows the user to create configuration profiles, so that the user can easily switch configurations depending on the particular task they are performing. + A. NVDA contains many options for configuring what information is reported and how it is presented. + B. NvDA allows the user to configure attributes of the output such as the voice rate and pitch, punctuation, and what Braille standard is used. + C. NVDA allows the user to create configuration profiles, so that the user can easily switch configurations depending on the particular task they are performing. 14. Extendable: Ensure that NVDA can be easily enhanced and customized to meet specific user needs and requirements: - A. NVDA allows the creation and integration of community-created add-ons, providing support for extra speech synthesizers, refreshable Braille displays and more third party applications. - B. NVDA allows the user to browse for, download and install available add-ons from within NVDA itself. - C. NVDA provides freedom for add-ons to find innovative solutions by allowing them broad access to NVDA's internals. - D. NVDA ensures add-ons do not break by postponing major API changes to once per year, announcing these changes many months ahead of time. - E. NVDA Protects users from installing an add-on that is incompatible with the current version of NVDA, allowing the user to override this protection if they understand the risk. + A. NVDA allows the creation and integration of community-created add-ons, providing support for extra speech synthesizers, refreshable Braille displays and more third party applications. + B. NVDA allows the user to browse for, download and install available add-ons from within NVDA itself. + C. NVDA provides freedom for add-ons to find innovative solutions by allowing them broad access to NVDA's internals. + D. NVDA ensures add-ons do not break by postponing major API changes to once per year, announcing these changes many months ahead of time. + E. NVDA Protects users from installing an add-on that is incompatible with the current version of NVDA, allowing the user to override this protection if they understand the risk. \ No newline at end of file From 8876456c201fb49c878a29894b23d589ffbc7a79 Mon Sep 17 00:00:00 2001 From: Michael Curran Date: Mon, 19 Jun 2023 12:12:10 +1000 Subject: [PATCH 03/11] fix bullets --- product_vision.md | 80 +++++++++++++++++++++++------------------------ 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/product_vision.md b/product_vision.md index 019e9ed442c..d17a6b6439e 100644 --- a/product_vision.md +++ b/product_vision.md @@ -8,58 +8,58 @@ Developed by NV Access in partnership with a dedicated open source community, NV ## Guiding Principles 1. Freely Available to all: To ensure that NVDA is available to anyone who needs to access the Windows Operating system, no matter their economic status: - A. NVDA is free of charge for anyone who needs to access a computer. - B. NVDA can be downloaded, copied, shared, and used on any amount of computers. - C. Future updates are free of charge. + * NVDA is free of charge for anyone who needs to access a computer. + * NVDA can be downloaded, copied, shared, and used on any amount of computers. + * Future updates are free of charge. 2. By users for users: To allow and empower blind and vision impaired people to have a say in and directly contribute to NVDA, ensuring it meets their needs as a solution to technology access: - A. NVDA is an open source project, meaning that its source code is available to anyone who wishes to learn from and or contribute to the project. - B. Documentation is provided to ensure code can be understood and developers can get up and running with ease. - C. The vast majority of contributers to the NvDA project are blind or vision impaired, and are users of the product themselves. + * NVDA is an open source project, meaning that its source code is available to anyone who wishes to learn from and or contribute to the project. + * Documentation is provided to ensure code can be understood and developers can get up and running with ease. + * The vast majority of contributers to the NvDA project are blind or vision impaired, and are users of the product themselves. 3. Multilingual: Ensure that NVDA can be used by people no matter what language they speak: - A. NVDA provides mechanisms for volunteers to translate user interface messages and documentation. - B. Release processes provide time and reminders for volunteers to contribute translations to NVDA. + * NVDA provides mechanisms for volunteers to translate user interface messages and documentation. + * Release processes provide time and reminders for volunteers to contribute translations to NVDA. 4. Stability: Ensure NVDA is stable, minimizes freezes, and avoids drastic updates that could disrupt user experience: - A. NVDA strives to support any breaking changes in Windows or supported popular third party applications before they reach the user. - B. NVDA updates should not drastically change or remove pre-existing features or defined behaviour without clearly warning the user first. - C. NVDA's code should do its best to recover from application freezes, allowing the user to still interact with the rest of the Operating System. + * NVDA strives to support any breaking changes in Windows or supported popular third party applications before they reach the user. + * NVDA updates should not drastically change or remove pre-existing features or defined behaviour without clearly warning the user first. + * NVDA's code should do its best to recover from application freezes, allowing the user to still interact with the rest of the Operating System. 5. Quality: Ensure NvDA's code is high-quality, safe, and that bugs are caught before reaching a release: - A. All code is reviewed by at least one other core contributer. - B. Automated unit and system tests decrease the possibility of unwanted changes in behaviour. - C. Alpha and beta builds are provided for early testing by a large base of dedicated community testers + * All code is reviewed by at least one other core contributer. + * Automated unit and system tests decrease the possibility of unwanted changes in behaviour. + * Alpha and beta builds are provided for early testing by a large base of dedicated community testers 6. Security: Ensure that NVDA does not place a user at risk of security attacks: - A. NVDA prioritizes user security, striving to eliminate risks of remote control attacks or data leaks. - B. A strict process exists to follow a security report from implementation to rollout. - C. Critical security fixes are minimized in size and complexity to focus on the exact issue reported, which lessens the chance of other security or instabilities accidentally being introduced. + * NVDA prioritizes user security, striving to eliminate risks of remote control attacks or data leaks. + * A strict process exists to follow a security report from implementation to rollout. + * Critical security fixes are minimized in size and complexity to focus on the exact issue reported, which lessens the chance of other security or instabilities accidentally being introduced. 7. Efficient: Ensure responsiveness to user input, but also energy efficiency where possible: - A. Make use of newer more efficient APIs where possible, at the same time falling back to older APIs to ensure functionality on older systems. - B. Periodically remove technical debt and refactor code to make code more efficient and understandable, making sure to maintain compatibility with existing scenarios and OS / application versions still supported. + * Make use of newer more efficient APIs where possible, at the same time falling back to older APIs to ensure functionality on older systems. + * Periodically remove technical debt and refactor code to make code more efficient and understandable, making sure to maintain compatibility with existing scenarios and OS / application versions still supported. 8. Innovative: Strive to push the boundaries of what is possible and to avoide stagnation for both NvDA and its compeditors: - A. Prototype new ideas and make them available through try builds. - B. Promote the sharing and healthy debate of ideas on developer email lists and Github Discussions. + * Prototype new ideas and make them available through try builds. + * Promote the sharing and healthy debate of ideas on developer email lists and Github Discussions. 9. Compliance: Ensure app / web developers can rely upon NVDA to make best use of the accessibility they implement: - A. NVDA strives to comply with all application and web accessibility standards where possible. - B. Where there is disagreement or inability to comply with an accessibility standard, NVDA maintainers clearly and respectfully argue the case, providing practical alternative solutions. - C. NVDA maintainers partispate in discussions with standards groups. + * NVDA strives to comply with all application and web accessibility standards where possible. + * Where there is disagreement or inability to comply with an accessibility standard, NVDA maintainers clearly and respectfully argue the case, providing practical alternative solutions. + * NVDA maintainers partispate in discussions with standards groups. 10. Documentation: Ensure users have the knowledge to fully leverage NVDA's features for productivity in work and everyday life: - A. NVDA offers comprehensive, user-friendly documentation such as an official user guide free of charge. - B. User-level support is available via various community-run email lists. + * NVDA offers comprehensive, user-friendly documentation such as an official user guide free of charge. + * User-level support is available via various community-run email lists. 11. Multimodal: Ensure that NVDA supports various modes of interaction, meeting the diverse needs of its users: - A. NVDA supports multiple input methods including the keyboard, mouse, touch, and braille input devices. - B. NVDA delivers output through both speech synthesis and braille displays. - C. To cater to the diversity of user preferences, NVDA strives to make all its features accessible through all input and output modalities. + * NVDA supports multiple input methods including the keyboard, mouse, touch, and braille input devices. + * NVDA delivers output through both speech synthesis and braille displays. + * To cater to the diversity of user preferences, NVDA strives to make all its features accessible through all input and output modalities. 12. Compatibility: Ensure that NVDA works with a wide range of software and hardware to provide maximum accessibility and to ensure users are not left behind in today's rapidly changing technology: - A. NVDA is regularly updated to be compatible with the latest versions of Windows and popular third-party applications. - B. NVDA also maintains compatibility with older versions of Windows and third-party applications that are still officially supported by their respective companies, providing accessibility solutions for users on older systems. - C. NVDA strives to support all common speech synthesizers and refreshable Braille displays that exist today. + * NVDA is regularly updated to be compatible with the latest versions of Windows and popular third-party applications. + * NVDA also maintains compatibility with older versions of Windows and third-party applications that are still officially supported by their respective companies, providing accessibility solutions for users on older systems. + * NVDA strives to support all common speech synthesizers and refreshable Braille displays that exist today. 13. Configurable: Ensure the user can configure NVDA to suit their own particular preferences and the task at hand: - A. NVDA contains many options for configuring what information is reported and how it is presented. - B. NvDA allows the user to configure attributes of the output such as the voice rate and pitch, punctuation, and what Braille standard is used. - C. NVDA allows the user to create configuration profiles, so that the user can easily switch configurations depending on the particular task they are performing. + * NVDA contains many options for configuring what information is reported and how it is presented. + * NvDA allows the user to configure attributes of the output such as the voice rate and pitch, punctuation, and what Braille standard is used. + * NVDA allows the user to create configuration profiles, so that the user can easily switch configurations depending on the particular task they are performing. 14. Extendable: Ensure that NVDA can be easily enhanced and customized to meet specific user needs and requirements: - A. NVDA allows the creation and integration of community-created add-ons, providing support for extra speech synthesizers, refreshable Braille displays and more third party applications. - B. NVDA allows the user to browse for, download and install available add-ons from within NVDA itself. - C. NVDA provides freedom for add-ons to find innovative solutions by allowing them broad access to NVDA's internals. - D. NVDA ensures add-ons do not break by postponing major API changes to once per year, announcing these changes many months ahead of time. - E. NVDA Protects users from installing an add-on that is incompatible with the current version of NVDA, allowing the user to override this protection if they understand the risk. + * NVDA allows the creation and integration of community-created add-ons, providing support for extra speech synthesizers, refreshable Braille displays and more third party applications. + * NVDA allows the user to browse for, download and install available add-ons from within NVDA itself. + * NVDA provides freedom for add-ons to find innovative solutions by allowing them broad access to NVDA's internals. + * NVDA ensures add-ons do not break by postponing major API changes to once per year, announcing these changes many months ahead of time. + * NVDA Protects users from installing an add-on that is incompatible with the current version of NVDA, allowing the user to override this protection if they understand the risk. \ No newline at end of file From b89239db9c96ebe3a8b0c05207271411b0adcd1a Mon Sep 17 00:00:00 2001 From: Quentin Christensen Date: Mon, 19 Jun 2023 13:55:19 +1000 Subject: [PATCH 04/11] Update product_vision.md Several small typos --- product_vision.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/product_vision.md b/product_vision.md index d17a6b6439e..22c6ac5267d 100644 --- a/product_vision.md +++ b/product_vision.md @@ -14,7 +14,7 @@ Developed by NV Access in partnership with a dedicated open source community, NV 2. By users for users: To allow and empower blind and vision impaired people to have a say in and directly contribute to NVDA, ensuring it meets their needs as a solution to technology access: * NVDA is an open source project, meaning that its source code is available to anyone who wishes to learn from and or contribute to the project. * Documentation is provided to ensure code can be understood and developers can get up and running with ease. - * The vast majority of contributers to the NvDA project are blind or vision impaired, and are users of the product themselves. + * The vast majority of contributors to the NVDA project are blind or vision impaired, and are users of the product themselves. 3. Multilingual: Ensure that NVDA can be used by people no matter what language they speak: * NVDA provides mechanisms for volunteers to translate user interface messages and documentation. * Release processes provide time and reminders for volunteers to contribute translations to NVDA. @@ -22,8 +22,8 @@ Developed by NV Access in partnership with a dedicated open source community, NV * NVDA strives to support any breaking changes in Windows or supported popular third party applications before they reach the user. * NVDA updates should not drastically change or remove pre-existing features or defined behaviour without clearly warning the user first. * NVDA's code should do its best to recover from application freezes, allowing the user to still interact with the rest of the Operating System. -5. Quality: Ensure NvDA's code is high-quality, safe, and that bugs are caught before reaching a release: - * All code is reviewed by at least one other core contributer. +5. Quality: Ensure NVDA's code is high-quality, safe, and that bugs are caught before reaching a release: + * All code is reviewed by at least one other core contributor. * Automated unit and system tests decrease the possibility of unwanted changes in behaviour. * Alpha and beta builds are provided for early testing by a large base of dedicated community testers 6. Security: Ensure that NVDA does not place a user at risk of security attacks: @@ -33,13 +33,13 @@ Developed by NV Access in partnership with a dedicated open source community, NV 7. Efficient: Ensure responsiveness to user input, but also energy efficiency where possible: * Make use of newer more efficient APIs where possible, at the same time falling back to older APIs to ensure functionality on older systems. * Periodically remove technical debt and refactor code to make code more efficient and understandable, making sure to maintain compatibility with existing scenarios and OS / application versions still supported. -8. Innovative: Strive to push the boundaries of what is possible and to avoide stagnation for both NvDA and its compeditors: +8. Innovative: Strive to push the boundaries of what is possible and to avoid stagnation for both NVDA and its competitors: * Prototype new ideas and make them available through try builds. - * Promote the sharing and healthy debate of ideas on developer email lists and Github Discussions. + * Promote the sharing and healthy debate of ideas on developer email lists and GitHub Discussions. 9. Compliance: Ensure app / web developers can rely upon NVDA to make best use of the accessibility they implement: * NVDA strives to comply with all application and web accessibility standards where possible. * Where there is disagreement or inability to comply with an accessibility standard, NVDA maintainers clearly and respectfully argue the case, providing practical alternative solutions. - * NVDA maintainers partispate in discussions with standards groups. + * NVDA maintainers participate in discussions with standards groups. 10. Documentation: Ensure users have the knowledge to fully leverage NVDA's features for productivity in work and everyday life: * NVDA offers comprehensive, user-friendly documentation such as an official user guide free of charge. * User-level support is available via various community-run email lists. @@ -62,4 +62,4 @@ Developed by NV Access in partnership with a dedicated open source community, NV * NVDA ensures add-ons do not break by postponing major API changes to once per year, announcing these changes many months ahead of time. * NVDA Protects users from installing an add-on that is incompatible with the current version of NVDA, allowing the user to override this protection if they understand the risk. - \ No newline at end of file + From 496b6d30aad188800624d81f4ed8270e4f439680 Mon Sep 17 00:00:00 2001 From: Michael Curran Date: Mon, 19 Jun 2023 16:55:37 +1000 Subject: [PATCH 05/11] Apply suggestions from code review Co-authored-by: Sean Budd --- product_vision.md | 8 ++++---- readme.md | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/product_vision.md b/product_vision.md index 22c6ac5267d..083c95c2c74 100644 --- a/product_vision.md +++ b/product_vision.md @@ -53,13 +53,13 @@ Developed by NV Access in partnership with a dedicated open source community, NV * NVDA strives to support all common speech synthesizers and refreshable Braille displays that exist today. 13. Configurable: Ensure the user can configure NVDA to suit their own particular preferences and the task at hand: * NVDA contains many options for configuring what information is reported and how it is presented. - * NvDA allows the user to configure attributes of the output such as the voice rate and pitch, punctuation, and what Braille standard is used. + * NVDA allows the user to configure attributes of the output such as the voice rate and pitch, punctuation, and what Braille standard is used. * NVDA allows the user to create configuration profiles, so that the user can easily switch configurations depending on the particular task they are performing. 14. Extendable: Ensure that NVDA can be easily enhanced and customized to meet specific user needs and requirements: - * NVDA allows the creation and integration of community-created add-ons, providing support for extra speech synthesizers, refreshable Braille displays and more third party applications. - * NVDA allows the user to browse for, download and install available add-ons from within NVDA itself. + * NVDA allows the creation and integration of community created add-ons, providing support for extra speech synthesizers, refreshable Braille displays and more third party applications. + * NVDA allows the user to browse, download and install available add-ons from within NVDA itself. * NVDA provides freedom for add-ons to find innovative solutions by allowing them broad access to NVDA's internals. - * NVDA ensures add-ons do not break by postponing major API changes to once per year, announcing these changes many months ahead of time. + * NVDA ensures add-ons do not break by postponing API breakages to once per year, announcing these changes many months ahead of time. * NVDA Protects users from installing an add-on that is incompatible with the current version of NVDA, allowing the user to override this protection if they understand the risk. diff --git a/readme.md b/readme.md index a7f6137a25b..7784eba56fe 100644 --- a/readme.md +++ b/readme.md @@ -6,7 +6,8 @@ To learn more about NVDA or download a copy, visit the main [NV Access](http://w Please note: the NVDA project has a [Citizen and Contributor Code of Conduct](CODE_OF_CONDUCT.md). NV Access expects that all contributors and other community members will read and abide by the rules set out in this document while participating or contributing to this project. -The NVDA project is guided by a [product vision statement and set of principles](product_vision.md). The vision and principles should be always considered when planning features and prioritizing work. +The NVDA project is guided by a [product vision statement and set of principles](product_vision.md). +The vision and principles should be always considered when planning features and prioritizing work. ## Get support Whether you are a beginner, an advanced user, a new or a long time developer; or if you represent an organization wishing to know more or to contribute to NVDA: you can get support through the included documentation as well as several communication channels dedicated to the NVDA screen reader. Here is an overview of the most important support sources. From e5345dd500012519621a1a76170ba4a724d97b89 Mon Sep 17 00:00:00 2001 From: Michael Curran Date: Tue, 20 Jun 2023 17:39:37 +1000 Subject: [PATCH 06/11] mention 'participate in' not just 'contribute to' society. --- product_vision.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/product_vision.md b/product_vision.md index 083c95c2c74..46a9a88a9b2 100644 --- a/product_vision.md +++ b/product_vision.md @@ -1,10 +1,10 @@ ## Product Vision -A world where blind and vision impaired people can independently and fully interact with the Windows Operating System and popular third party applications, enabling them to contribute to society, no matter their language, location or economic status. +A world where blind and vision impaired people can independently and fully interact with the Windows Operating System and popular third party applications, enabling them to participate in and contribute to society, no matter their language, location or economic status. Blind and vision impaired people are empowered to control their own destiny and ensure this vision, through being able to significantly contribute to the technology that makes this possible. ## Product description NVDA (NonVisual Desktop Access) is software that allows blind and vision impaired people to independently interact with the Windows Operating System and popular third party applications by outputting content in either synthetic speech or via a refreshable Braille Display. -Developed by NV Access in partnership with a dedicated open source community, NVDA enables blind and vision impaired people to increase their chances at education and employment, and to make a contribution to society. +Developed by NV Access in partnership with a dedicated open source community, NVDA enables blind and vision impaired people to increase their chances at education and employment, and to participate in and contribute to society. ## Guiding Principles 1. Freely Available to all: To ensure that NVDA is available to anyone who needs to access the Windows Operating system, no matter their economic status: From 98b8b4c787710804899f0937b01311afba1f10ce Mon Sep 17 00:00:00 2001 From: Michael Curran Date: Tue, 20 Jun 2023 17:40:26 +1000 Subject: [PATCH 07/11] Add a subpoint about speech viewer in the Compliance goal. --- product_vision.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/product_vision.md b/product_vision.md index 46a9a88a9b2..1d80aeb2a68 100644 --- a/product_vision.md +++ b/product_vision.md @@ -38,8 +38,8 @@ Developed by NV Access in partnership with a dedicated open source community, NV * Promote the sharing and healthy debate of ideas on developer email lists and GitHub Discussions. 9. Compliance: Ensure app / web developers can rely upon NVDA to make best use of the accessibility they implement: * NVDA strives to comply with all application and web accessibility standards where possible. - * Where there is disagreement or inability to comply with an accessibility standard, NVDA maintainers clearly and respectfully argue the case, providing practical alternative solutions. - * NVDA maintainers participate in discussions with standards groups. + * Where there is disagreement or inability to comply with an accessibility standard, clear reasoning and possible practical alternatives are documented. + * Tools such as the NVDA speech viewer help application and web developers use NVDA to test and verify the accessibility of their products. 10. Documentation: Ensure users have the knowledge to fully leverage NVDA's features for productivity in work and everyday life: * NVDA offers comprehensive, user-friendly documentation such as an official user guide free of charge. * User-level support is available via various community-run email lists. From a7adde77da4308375e83d480235ae79fad89cfb1 Mon Sep 17 00:00:00 2001 From: Michael Curran Date: Tue, 20 Jun 2023 17:57:23 +1000 Subject: [PATCH 08/11] Add a goal about collaborating with sighted people, mentioning visual highlighting and speech viewer. Also mention vision providers in add-ons, and screen Curtain in the Security goal. --- product_vision.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/product_vision.md b/product_vision.md index 1d80aeb2a68..6008ee1d693 100644 --- a/product_vision.md +++ b/product_vision.md @@ -30,6 +30,7 @@ Developed by NV Access in partnership with a dedicated open source community, NV * NVDA prioritizes user security, striving to eliminate risks of remote control attacks or data leaks. * A strict process exists to follow a security report from implementation to rollout. * Critical security fixes are minimized in size and complexity to focus on the exact issue reported, which lessens the chance of other security or instabilities accidentally being introduced. + * NVDA can optionally blank the screen while running, to make sure that another person cannot view personal or sensitive information without the blind or vision impaired user knowing. 7. Efficient: Ensure responsiveness to user input, but also energy efficiency where possible: * Make use of newer more efficient APIs where possible, at the same time falling back to older APIs to ensure functionality on older systems. * Periodically remove technical debt and refactor code to make code more efficient and understandable, making sure to maintain compatibility with existing scenarios and OS / application versions still supported. @@ -40,26 +41,29 @@ Developed by NV Access in partnership with a dedicated open source community, NV * NVDA strives to comply with all application and web accessibility standards where possible. * Where there is disagreement or inability to comply with an accessibility standard, clear reasoning and possible practical alternatives are documented. * Tools such as the NVDA speech viewer help application and web developers use NVDA to test and verify the accessibility of their products. -10. Documentation: Ensure users have the knowledge to fully leverage NVDA's features for productivity in work and everyday life: +10. Collaboration: Ensure that blind and sighted people can collaborate together: + * NVDA can clearly visually highlight the position at which the user is currently reading or navigating, to allow another person to be aware of exactly where the user is on the screen. + * The NVDA speech viewer can be used to display the text currently being spoken, so that a sighted person who may have trouble understanding the synthesized speech can follow along. +11. Documentation: Ensure users have the knowledge to fully leverage NVDA's features for productivity in work and everyday life: * NVDA offers comprehensive, user-friendly documentation such as an official user guide free of charge. * User-level support is available via various community-run email lists. -11. Multimodal: Ensure that NVDA supports various modes of interaction, meeting the diverse needs of its users: +12. Multimodal: Ensure that NVDA supports various modes of interaction, meeting the diverse needs of its users: * NVDA supports multiple input methods including the keyboard, mouse, touch, and braille input devices. * NVDA delivers output through both speech synthesis and braille displays. * To cater to the diversity of user preferences, NVDA strives to make all its features accessible through all input and output modalities. -12. Compatibility: Ensure that NVDA works with a wide range of software and hardware to provide maximum accessibility and to ensure users are not left behind in today's rapidly changing technology: +13. Compatibility: Ensure that NVDA works with a wide range of software and hardware to provide maximum accessibility and to ensure users are not left behind in today's rapidly changing technology: * NVDA is regularly updated to be compatible with the latest versions of Windows and popular third-party applications. * NVDA also maintains compatibility with older versions of Windows and third-party applications that are still officially supported by their respective companies, providing accessibility solutions for users on older systems. * NVDA strives to support all common speech synthesizers and refreshable Braille displays that exist today. -13. Configurable: Ensure the user can configure NVDA to suit their own particular preferences and the task at hand: +14. Configurable: Ensure the user can configure NVDA to suit their own particular preferences and the task at hand: * NVDA contains many options for configuring what information is reported and how it is presented. * NVDA allows the user to configure attributes of the output such as the voice rate and pitch, punctuation, and what Braille standard is used. * NVDA allows the user to create configuration profiles, so that the user can easily switch configurations depending on the particular task they are performing. -14. Extendable: Ensure that NVDA can be easily enhanced and customized to meet specific user needs and requirements: - * NVDA allows the creation and integration of community created add-ons, providing support for extra speech synthesizers, refreshable Braille displays and more third party applications. +15. Extendable: Ensure that NVDA can be easily enhanced and customized to meet specific user needs and requirements: + * NVDA allows the creation and integration of community created add-ons, providing support for extra speech synthesizers, refreshable Braille displays, visual inhancements for low vision, and more third party applications. * NVDA allows the user to browse, download and install available add-ons from within NVDA itself. * NVDA provides freedom for add-ons to find innovative solutions by allowing them broad access to NVDA's internals. * NVDA ensures add-ons do not break by postponing API breakages to once per year, announcing these changes many months ahead of time. * NVDA Protects users from installing an add-on that is incompatible with the current version of NVDA, allowing the user to override this protection if they understand the risk. - + From 6726abbf3d0813bc6ceb6d4d090f3aeb8a1d1fee Mon Sep 17 00:00:00 2001 From: Michael Curran Date: Thu, 22 Jun 2023 15:28:59 +1000 Subject: [PATCH 09/11] Update product_vision.md Co-authored-by: Sean Budd --- product_vision.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_vision.md b/product_vision.md index 6008ee1d693..1f8fd14b630 100644 --- a/product_vision.md +++ b/product_vision.md @@ -60,7 +60,7 @@ Developed by NV Access in partnership with a dedicated open source community, NV * NVDA allows the user to configure attributes of the output such as the voice rate and pitch, punctuation, and what Braille standard is used. * NVDA allows the user to create configuration profiles, so that the user can easily switch configurations depending on the particular task they are performing. 15. Extendable: Ensure that NVDA can be easily enhanced and customized to meet specific user needs and requirements: - * NVDA allows the creation and integration of community created add-ons, providing support for extra speech synthesizers, refreshable Braille displays, visual inhancements for low vision, and more third party applications. + * NVDA allows the creation and integration of community created add-ons, providing support for extra speech synthesizers, refreshable Braille displays, visual enhancements for low vision, and more third party applications. * NVDA allows the user to browse, download and install available add-ons from within NVDA itself. * NVDA provides freedom for add-ons to find innovative solutions by allowing them broad access to NVDA's internals. * NVDA ensures add-ons do not break by postponing API breakages to once per year, announcing these changes many months ahead of time. From cfd62235a5d0edd7beef6d9fa8bc67dc910304cd Mon Sep 17 00:00:00 2001 From: Michael Curran Date: Mon, 10 Jul 2023 09:53:44 +1000 Subject: [PATCH 10/11] Product vision guiding principles, Multimodal section: mention 'preferences' in main statement, and remove goal in subpoint.. --- product_vision.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/product_vision.md b/product_vision.md index 1f8fd14b630..d980b4ae7f0 100644 --- a/product_vision.md +++ b/product_vision.md @@ -47,10 +47,10 @@ Developed by NV Access in partnership with a dedicated open source community, NV 11. Documentation: Ensure users have the knowledge to fully leverage NVDA's features for productivity in work and everyday life: * NVDA offers comprehensive, user-friendly documentation such as an official user guide free of charge. * User-level support is available via various community-run email lists. -12. Multimodal: Ensure that NVDA supports various modes of interaction, meeting the diverse needs of its users: +12. Multimodal: Ensure that NVDA supports various modes of interaction, meeting the diverse needs and preferences of its users: * NVDA supports multiple input methods including the keyboard, mouse, touch, and braille input devices. * NVDA delivers output through both speech synthesis and braille displays. - * To cater to the diversity of user preferences, NVDA strives to make all its features accessible through all input and output modalities. + * NVDA strives to make all its features accessible through all input and output modalities. 13. Compatibility: Ensure that NVDA works with a wide range of software and hardware to provide maximum accessibility and to ensure users are not left behind in today's rapidly changing technology: * NVDA is regularly updated to be compatible with the latest versions of Windows and popular third-party applications. * NVDA also maintains compatibility with older versions of Windows and third-party applications that are still officially supported by their respective companies, providing accessibility solutions for users on older systems. From 7c451a46d4f7cc58abfecec382dad8c9936c56a4 Mon Sep 17 00:00:00 2001 From: Michael Curran Date: Mon, 10 Jul 2023 10:38:47 +1000 Subject: [PATCH 11/11] Product vision: moved 'language, location and economic status' from the first sentence down to its own third sentence, also including sensory, physical, cognitive and mental abilities. Also added a specific example to the multipmodal section of the guiding principles to call out abiility for a deaf-blind user to use NvDA with Braille alone. --- product_vision.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/product_vision.md b/product_vision.md index d980b4ae7f0..64be8a151f4 100644 --- a/product_vision.md +++ b/product_vision.md @@ -1,6 +1,7 @@ ## Product Vision -A world where blind and vision impaired people can independently and fully interact with the Windows Operating System and popular third party applications, enabling them to participate in and contribute to society, no matter their language, location or economic status. +A world where blind and vision impaired people can independently and fully interact with the Windows Operating System and popular third party applications, enabling them to participate in and contribute to society. Blind and vision impaired people are empowered to control their own destiny and ensure this vision, through being able to significantly contribute to the technology that makes this possible. +All blind and vision impaired people deserve these rights and opportunities, no matter the language they speak, their geographic location, economic status, or sensory, physical, cognitive, or mental abilities. ## Product description NVDA (NonVisual Desktop Access) is software that allows blind and vision impaired people to independently interact with the Windows Operating System and popular third party applications by outputting content in either synthetic speech or via a refreshable Braille Display. @@ -50,7 +51,7 @@ Developed by NV Access in partnership with a dedicated open source community, NV 12. Multimodal: Ensure that NVDA supports various modes of interaction, meeting the diverse needs and preferences of its users: * NVDA supports multiple input methods including the keyboard, mouse, touch, and braille input devices. * NVDA delivers output through both speech synthesis and braille displays. - * NVDA strives to make all its features accessible through all input and output modalities. + * NVDA strives to make all its features accessible through all input and output modalities. E.g. a deaf-blind user should be able to independently use NVDA through Braille alone. 13. Compatibility: Ensure that NVDA works with a wide range of software and hardware to provide maximum accessibility and to ensure users are not left behind in today's rapidly changing technology: * NVDA is regularly updated to be compatible with the latest versions of Windows and popular third-party applications. * NVDA also maintains compatibility with older versions of Windows and third-party applications that are still officially supported by their respective companies, providing accessibility solutions for users on older systems.