The Inside Story of NVDA: parts that make up NVDA screen reader
#NVDA_Internals
Hi all, Note: parts of this story include actual NVDA source code. For most of you, this might be the first time you are actually seeing source code of a screen reader (written in Python programming language). I think it is important to let you see some source code so you can better understand what’s going on and for me to use it as a base for explaining several concepts and NVDA mechanics. Also, parts of this story come from technical design overview document which is included in NVDA source code repository (github.com/nvaccess/nvda). This is the first story where we get to see NVDA in action: components that make up a screen reader, specifically, NVDA. After going deep into some reminders and definitions in last Inside Story, I think a story about NVDA components can help us transition to more practical matters and lay the foundation for talking about feature internals. But to recap what we saw so far: - A screen reader is not a productivity tool (we saw why last time).
- In essence, a screen reader (or I should say, today’s screen reader) is a sophisticated information processor that gathers, interprets, and presents screen content the user is focused on. The last part (focused on) will be important when we get into events, more specifically selective UIA event registration and how it works and helps (both really). I would like to add “represents” to the steps performed as we will see in this story.
- Developing a screen reader is an acknowledgement of social and cultural possibilities and constraints of disability and assistive technology. As I explained in the second story (what screen reader is and is not), accessibility advocacy still matters because writing software is designed to convince humans, not machines (this is why people talk about videos, icons, buttons, and even assistive tech such as screen readers as digital artifacts).
I will come back to what I wrote above throughout the Inside Story series. With that out of the way… NVDA is an information processor. As the name implies, a processor is software or hardware that processes something. As an immediate example, on a computer or a smartphone, there is a hardware (or a chip) made up of millions to billions of silicon transistors that calculates all sorts of things in a small fraction of a second. Without this calculating chip, computers become just a collection of metals and wires. This is why we call this chip “central processing unit” or CPU for short (there is an ongoing discussion on another forum that compares Intel versus AMD processors, but in essence, processors from both brands operate in the same principle: silicon transistors used to calculate many things at once); the actual internals of CPU’s is beyond the scope of this forum, but suffice to say that CPU’s consist of billions of silicon switches that are turned on or off based on specific rules it understands. Or let’s take a software example: media players. Media player programs such as VLC are experts in encoding and decoding multimedia file formats. These programs read an audio or video file, processes it (determines file format, uses rules to turn that into something that can be played on a screen and/or speakers), then plays them. Just like a CPU hardware, software such as media players consist of many components designed to work together to accomplish something. In the same way, NVDA comes with many components designed to accomplish its goal of information processing. One component is responsible for representing screen content in a way that users and the screen reader can understand. Another set of components represent how users will enter things to their computers, still others respond to events happening on screen, others help NVDA interpret screen content based on built-in rules and customizations by users, some are responsible for dealing with special situations such as web browsers, and another set of modules are responsible for output such as speech synthesis and braille display output. NVDA comes with its own graphical widgets powered by a GUI toolkit, it needs a way to talk to Windows and other apps using operating system facilities, and provides mechanisms to install, run, enable or disable, and remove add-ons (and one day update add-ons). The specific components included in NVDA are: - Representing GUI controls: a collection of modules named “NVDAObjects” defines NVDA’s representation of a screen control. At the bottommost layer is an idealized screen control named “NVDA object” (NVDAObjects.NVDAObject), defining properties such as name and role and event handling basics that are common to all screen controls. This object is also responsible for recording developer info upon request (NVDA+F1), with other layers appending more specific information. Not all NVDA object mechanics are defined in the base NVDA object because NVDA needs to handle accessibility API’s (see below). Another basic NVDA object is the window object (NVDAObjects.window.Window) that is the base representation of actual screen control (buttons, checkboxes, document fields, and even app windows are all windows) and provides window functions (such as recording window handle for the screen control) that accessibility API’s and other components rely on.
- Accessibility API support: NVDA can handle accessibility API’s such as Microsoft Active Accessibility (MSAA/IAccessible), IAccessible2, Java Access Bridge (JAB) and UI Automation (UIA). These API support modules are scattered throughout NVDA source code, divided into API and handler definitions and NVDA objects representing controls powered by these API’s. For example, to support MSAA, a package named “IAccessibleHandler” comes with event definitions and workarounds for both MSAA and IAccessible2, along with objects representing MSAA controls housed inside NVDAObjects.IAccessible package. Inside NVDAObjects.IAccessible package is the idealized MSAA object (NVDAObjects.IAccessible.IAccessible) that extends the “idealized” and window NVDA object and adds procedures to obtain information from MSAA API. Similarly, UIA support comes from the handler module named “UIAHandler” and UIA objects stored in NVDAObjects.UIA. NVDA objects that are part of NVDA and serve as representations of accessibility API controls are collectively termed “API class”.
- Custom controls from applications and add-ons: if NVDA was limited to recognizing controls that are powered by accessibility API’s alone, the screen reader would be severely limited. Therefore, NVDA allows app modules and global plugins to extend built-in objects or create new ones. These are called “overlay classes” and is specific to the task at hand. A special type of object, called “tree interceptor”, is used to let one NVDA object handle events and changes coming from controls contained within it (treating a tree of NVDA objects as single NVDA object), used in places such as browse mode. Tree interceptor is the main mechanism by which browse mode and other complex document interactions work.
- Input mechanisms: in theory, NVDA can work with all sorts of input tools such as keyboards, mice, touchscreens, joysticks, you name it. But since there are a limited number of “universal” input tools (keyboards, for example), NVDA can handle common input sources, namely keyboard, mouse, touchscreen, and braille display hardware (there was an attempt to let NVDA respond to voice input). Every piece of input is termed a “gesture”, with a related term being “scripts” (a script, in NVDA world, is a command that gets performed when a specific gesture is performed such as a key press; now you know why there is a dialog named “input gestures” in NVDA). Just like NVDA objects, an idealized input gesture (source) named “input gesture” (inputCore.InputGesture) represents an input gesture, with tools such as keyboard and touchscreen deriving from it. For braille displays, a separate braille and braille input modules are responsible for input from display hardware.
- Output mechanics: NVDA can send output to speech synthesizers and braille displays (tones can be generated and wave files can be played). There is no idealized output representation (actually, there are two, one sitting between data interpretation and output, the other being a driver base class, explained below). A speech synthesizer is represented by a “synth driver” (synthDriverHandler.SynthDriver), and a braille display by “braille display driver” (braille.BrailleDisplayDriver), both of which derive from a base “driver” (driverHandler.Driver). Each output mechanism is then further divided into driver settings collection and specific output driver. For example, a speech synthesizer driver can include settings such as rate, pitch, and other instructions (if required), and each synthesizer (built-in or from add-ons) are housed inside “synthDrivers” collection. Similarly, braille display drivers located in brailleDisplayDrivers package (built-in and add-ons) provide ways to let NVDA communicate with the hardware (or software in case of NVDA’s braille viewer). For example, Windows OneCore synthesizer is housed in synthDrivers.oneCore module, providing methods to obtain a list of voices installed on a Windows 10 or 11 system, rate boost setting, and handling speech processing.
- Talking to Windows and other apps: as a Windows screen reader, NVDA comes with modules to communicate with Windows and other apps through Windows API, Component Object Model (COM), and in some cases, inject parts of itself to other programs. Windows API support is provided by some modules starting with the letters “win” i.e. “winUser” handles user32.dll, winKernel is for kernel32.dll, among others. COM support is provided by an external module named “comtypes” with workarounds and specific COM interfaces provided by NVDA (notably, COM is used to communicate with UI Automation). Injecting parts of NVDA into other programs is provided by two modules: NVDA helper for talking to certain programs, and NVDA remote loader (not to be confused with NVDA Remote add-on), a 64-bit program designed to let NVDA, a 32-bit program, talk to 64-bit programs (because NVDA runs on top of 32-bit Python runtime).
- Event handling: in order to gather and interpret data, NVDA needs to handle events coming from Windows and apps. An appropriately named module, “event handler,” is included to define how events should be processed (perhaps this should be covered in detail in a future Inside Story post). What makes event handling actually work and effective is the fact that various parts of NVDA, notably NVDA objects, can respond to events and take appropriate action (data processing/interpretation).
- Data interpretation: if events is a big part of data gathering phase, many modules work together to provide interpretation services, and sometimes users can offer suggestions through NVDA settings. First, NVDA notes where the gathered data came from, then asks relevant components (app modules, NVDA objects, accessibility API handlers, to name a few) to create a representation of the gathered data. In most cases this involves creating an NVDA object corresponding to the screen control where the data came from. The just created object in turn uses whatever it knows about the gathered data (event, for example) to process and interpret data, with the interpretation phase depending on accessibility API, overlay classes, user settings (such as announcing tooltips and playing spelling error sound), consulting add-ons, among other factors. If told to output whatever it has, the interpreted data in turn gets fed into presentation preparation routines such as speech and braille data preparation (very complex topic which includes, among other things, character and speech dictionary processing, object caching for speech output, braille table lookup, etc.). A key piece of code that gets used to transition from data processing and interpretation to output is ui.message, responsible for outputting whatever text it gets to speech and braille.
- Configuration facility: this consist of an external module named “configobj” to read and write config files, configuration profiles (including profile triggers), and NVDA settings interface.
There are other components that are crucial for NVDA’s operation, including GUI toolkit (wxWidgets/wxPython), update check, add-ons management, browse mode and virtual buffers, global commands such as OCR and screen curtain, and many others. These are not mentioned in this story due to length. At the heart of all the components (and others not mentioned) is a main event loop, sometimes shortened to event loop or main loop. Think of event loops as a taxi driver waiting to pick up passengers (I think this is the closest analogy to how event loops work behind the scenes). The job of a taxi driver, among other things, is to await a message from the taxi company or a dispatch operator, informing the driver to pick up a passenger. The passenger, after (or before) paying money, would tell the driver the destination location, and after a few minutes (or hours), the passenger will be dropped off (try having a conversation with the driver and see how time flies). After dropping off the passenger, the taxi driver returns to the starting location or the closest garage run by the company or the dispatch operator, awaiting new dispatch messages. If you have ride share accounts, think of how drivers from companies such as Uber perform their duties. At the technical side of things, an event loop consists of, you guessed it, a loop that awaits messages (dispatch) from someone (or something) until told to exit. Dispatch (event) messages are sent mostly by the operating system (Windows in our case) on behalf of the program the user is interacting with or not, including messages raised by Windows on behalf of the program itself (this is how NVDA can announce its own GUI controls using accessibility API’s). Once received, a dispatch message is interpreted by the event loop somehow (in Windows, one calls TranslateMessage function), then based on its interpretation, informs app components (technically, application windows) to process the dispatch message (this is called event handling). As a graphical application (with its own GUI), NVDA does include an event loop. This comes from wxWidgets (better known in this community as wxPython via wx.App.MainLoop() function. This loop is entered in core.main function (see below for its content). To summarize, the components listed above (and other not listed) is managed by the main loop as follows: - NVDA starts and prepares modules for its operation.
- The first module, named “NVDA launcher” (nvda.pyw) checks startup information and calls core.main (defined in core.py module).
- Inside the core module, the main function initializes components such as synthesizer support and accessibility API handlers, then obtains wxWidgets app representation of NVDA, then calls the main loop (ap.MainLoop()).
- As the main loop runs, it “pumps” (dispatches) event messages for accessibility API’s and other events coming from Windows and apps, which in turn causes the components listed above to perform their tasks.
- The main loop exits, NVDA terminates various components, and finally leaves core.main function (exiting NVDA).
As a bonus, to clarify a point raised a few weeks ago on math expression announcement, a screen reader is not the same as speech synthesizer. It is possible to let NVDA users customize speech dictionaries and thus affect data interpretation and output, but issues with speech synthesizers should be raised with synthesizer vendors, not with NV Access. In the case of that discussion, even if NVDA has gathered and interpreted data so it can announce math expressions correctly, it is then up to speech synthesizers to take whatever data from NVDA and speak it using whatever rules THEY ship with. In other words, unless the screen reader vendor is intimately familiar with the synthesizer being used at that moment (perhaps influence some speech output rules at the time of data interpretation and processing), NVDA cannot influence everything related to speech output as that job is left to speech synthesizer driver maintainers; even after users customize speech dictionary entries and influence character processing steps somewhat, what synthesizers get in the end is text and speech commands. The question on math expression announcement is one of the reasons for writing an Inside Story on NVDA components, both to demonstrate what gets called and why in data gathering/representing/interpreting/presenting steps and to showcase separation between screen readers and TTS engines. Hope this helps in clarifying many things. Up next: is there any feature you’d like me to talk about its internals? Cheers, Joseph
|
|
Re: NVDA and natural voices
On Thu, Sep 22, 2022 at 07:36 PM, David Goldfield wrote:
When Jeff Bishop from Microsoft was a panelist at the 2022 ACB convention I did ask if the new natural voices might become available for third party screen readers. He said that they were only available for Narrator and I knew that attempting to try to get more information out of him by asking follow-up questions would probably be fruitless. This doesn’t mean we’ll never see them for other screen readers but it’s pretty clear to me that Microsoft has no immediate plans for this.
What synthesizer does NVDA use by default in Windows 11? It uses the Windows OneCore voices in Windows 10. Thanks, Louise
|
|
Re: The Inside Story of NVDA: what a screen reader is and is not, possibilities and constraints of screen readers
#NVDA_Internals
Perhaps a better word than equal would be optimized. I.E. the
best possible access within the limits we have to work within.
Shawn Klein
On 9/18/2022 7:26 PM, Gene wrote:
toggle quoted message
Show quoted text
I am not making this comment because I think the essay should be
changed. But I think a slogan like equal access to technology,
which sounds good and which you encounter often in terms of
advocacy, is misleading and somewhat meaningless. What is equal
access? You can't have equal access as a blind user because you
are not accessing the technology in the same way and sight
provides more information and faster when dealing with computer
information if it is visual. Obviously, I'm not talking about
streaming something that is only audio content. But a sighted
person can look at a screen and find something much more quickly
some of the time than a blind person can. If a blind person is
already familiar with an interface or knows enough what he/she is
looking for, the person may find content as quickly or perhaps
faster than a sighted person but there are many times when this is
not the case and the blind person finds what is being looked for
less efficiently.
I'm sure that, in an unfamiliar dialog, a sighted person can skim
what is there and find what they are looking for, if they have an
idea what they are looking for because of what they already know
about how a certain type of program or dialog works, than a blind
person who tabs and listens to field after field. In a known and
familiar dialog, the blind person, through use of shortcuts may do
something as fast or faster than a sighted person.
And that brings up something else screen-readers are not. They
are not ways to enable you to use a program without putting in the
time and work to learn enough about the interface to use it
efficiently.
Gene
On 9/18/2022 4:10 PM, Joseph Lee
wrote:
[Edited Message Follows]
[Reason: Terminology]
Hi all,
Before we actually get into talking about
NVDA components, it is important to think about what a
screen reader is and is not, as well as overall concepts
(and the big picture) behind possibilities and constraints
of screen readers. We also need to go over accessibility in
relation to screen reading. Only then the rest of the Inside
Story posts will make sense because the story begins and
ends with defining the reality, possibilities, and
constraints of screen reading technology (for anyone wishing
to submit code contributions to NVDA project, you need to
think about the overall social and cultural reality NVDA and
its users are facing).
First, let’s talk about what a screen
reader is not. A screen reader is not an operating system,
nor the user interface for an operating system. It is not a
“jack of all trades” productivity tool, nor the only way for
blind people to use computers (although screen readers get
lots of attention because they are one of the most familiar
tools the society will see). A screen reader is not your
accessibility advocate, nor designed to bring disability
justice to everyone. Most importantly, a screen reader is
not the million-dollar answer to everything in life,
blindness, and accessibility. Shocking? I assume so (for
most of us).
The truth is, I sometimes feel that a
screen reader is one or more of the “nots” I listed. Folks
on this forum encounter and live with screen readers 24
hours a day, 7 days a week, 365 (or 366) days a year. And
screen readers like NVDA are gaining more and more
mainstream attention (do a Google search for the terms
“accessibility” and “screen readers” and one of the results
is an article from The Verge published not so long ago on
the subject of screen reader history; the NVDA forum had an extensive talk about it a while
back). We use screen readers in many places: schools,
companies, accessibility testing, software development, or
even as an example of progress of accessibility.
So what exactly is a screen reader? Among
many Google searches, the common theme is that it is a
program that helps blind people use computers by reading
screen content. More specifically, a screen reader is a
program that reads content the user is interacting with (or
not). Sometimes the content is accessible and usable (both
terms are important), while others are not, requiring tips
and tricks to make them screen reader and user friendly. I
will come back to what I just said in a moment.
In a more technical definition, a screen
reader is an information processor that gathers, interprets,
and presents information displayed on screen and provide
ways to let blind users interact with the computer-based
task at hand. Screen readers such as NVDA use facilities
provided by the operating system (Microsoft Windows, in this
case) and apps to gather information on the screen (and
sometimes off-screen). Screen readers have rules and
expectations about what the gathered information is and
should be, and uses sophisticated rules to interpret what it
has “seen” i.e. gathered with help from the operating
system, the ap in question, and other ways. Based on
information gathered and subsequently interpreted, screen
readers use components such as text-to-speech (TTS),
braille, and other output mechanisms to present screen
content. I will address exactly which components are part of
NVDA in the next Inside Story.
To illustrate the overall workings of a
screen reader at the highest level (or not so high level),
let us say that you open Notepad and type the letter “H”. On
screen, the letter “H” is shown, and NVDA says “H” if speak
typed characters is on (NVDA+number row 2). If a braille
display is connected, it will show the letter “H” in braille
(in Unified English Braille, it is dots 6 and then 125, or
in this case, it could be dots 56, 6, then 125). But how can
NVDA accomplish so much magic? Here’s how:
- User types the letter “H”.
- Windows realizes that something
happened from the keyboard, so it tries to interpret what
happened.
- Windows sees that a character
was entered and sees where the system focus is.
- Windows sees that Notepad, a
text editor is in use, so it displays the letter “H” on
the screen.
- At the same time, a helper
called accessibility API notices this event and sees that
a character was entered.
- The accessibility API then
tells whoever is listening (NVDA, in this case) that an
input event occurred.
- In turn, Notepad (app) realizes
that an accessibility API is running, so it says to the
accessibility API, “please raise a value change event so
the screen reader can announce it to the user.”
- In turn, the accessibility API
raises value change event, which is then recognized by
NVDA.
- NVDA knows that a value change
event has occurred, so it tries to find out what has
changed, and eventually sees that a new character was
entered.
- NVDA then uses the configured
speech synthesizer to inform the user that the letter “H”
has been entered. This does not happen if the user says to
NVDA, “don’t tell me typed characters.”
The steps listed above should provide
just enough information to demonstrate the idea that a
screen reader is, in essence, a sophisticated information
processor: gathers, interprets, and presents information.
Going back to what I said above about
accessible and inaccessible (and usable and unusable)
content: what I outlined above may suggest that everything
is accessible if things work out between the operating
system, apps, and screen readers. This ignores the fact that
screen readers are, believe it or not, workarounds to the
current social and cultural conditions of computing,
disability, accessibility, and usability. Remember one of
the “nots” of screen readers: they are not accessibility
advocates for you. Why? Think about the term “assistive
technology”. What does it mean in practice? It means that
computers, tablets, smartphones, and gadgets we live with
are not designed with disability in mind, and screen readers
came along to “fill” the gap for inaccessible and unusable
computing. The history of screen readers is filled with
slogans such as “equal access to technology”, “making things
more productive”, “helping blind people get jobs” and others
(the story of screen readers goes back decades, believe it
or not).
The term “assistive technology”, at a
first glance, is a positive definition for folks on this
forum and elsewhere: tools to help you succeed in using
computers to perform tasks. But on the flip side, it shows
that, despite progress such as accessibility standards and
novel approaches to provide “technological social justice”
(disability emojis, for example), the world is still, for a
lack of better word, unconcerned (or not educated enough or
not fully aware of, perhaps) toward blind people. Screen
readers exist precisely because they demonstrate the lack of
consideration for the disabled when designing digital
technologies, and as we will see in subsequent Inside Story
of NVDA series, people like Mick Curran and others came up
with workarounds upon workarounds to demonstrate the
continued need for advocacy.
My statement that screen readers are
workarounds should ring a bell for some of you. Not just
because your life experiences are filled with accessibility
advocacy, but also because it touches on one of my own
mantras about accessibility and usability: mindset matters.
Fixing inaccessible applications so it can become screen
reader user friendly is just a micro-level solution. The
steps I listed to demonstrate parts of NVDA internals came
after years of advocacy by blind people, informing Microsoft
that they need to do better (people who lived in the 1990’s
should remember what I’m talking about). Accessibility
standards and API’s are next level up in solving computing
issues for screen reader users (by doing so, people and
organizations writing standards are acknowledging the
continued issues faced by disabled people thanks to larger
social and cultural issues at hand). The fundamental issue,
and the reason that NVDA is not the million-dollar answer to
everything in life for screen reader users, is the
perpetuation of ignorance by both sides of the coin:
ignorance by the public (mainstream) that accessibility and
usability matters in software design, and ignorance by
screen reader users and disability advocacy organizations
that we are a minority and must advocate continuously.
Putting all into context of NVDA, just
because the screen reader is free and open-source does not
mean equal access to technology is here at last. When you
use NVDA or contribute code to the project, you are doing
three things at once: shows dedication to the project,
acknowledges the progress made in screen reading, and
understands the effects of social and cultural attitude
toward disability. The last one is the reality of screen
reading as it stands in 2022: even if COVID-19 pandemic made
us realize how screen readers are important for us, it also
brought challenges such as inaccessible and unusable
videoconferencing systems, unreadable online documents, and
the notion that technology can solve world’s problems (it
won’t, I think). When looking at NVDA from the big picture
of accessibility and usability, it opens up possibilities
and constraints. Possibilities because the code is out there
so people can study and research it, and constraints as the
same source code demonstrates the larger social and cultural
issues faced by blind people. This is perhaps the biggest
lesson I want readers to understand as we meet NVDA
internals: screen readers such as NVDA represent the
reality, possibilities, and constraints of people needing to
use alternatives due to social and cultural attitudes. And
throughout Insider Story series, I will highlight all three
of them as much as possible.
Remember this: screen readers are not
productivity tools, the solution to life’s problems,
technological social justice, nor can advocate for users. As
sophisticated information processors, screen readers
represent the reality, possibilities, and constraints of
disability in the form of technology. NVDA both shows the
progress and waypoint toward accessibility and usability,
and in extension, more need for disability advocacy. I want
all of you to understand this, otherwise the rest of The
Insider Story of NVDA will not make sense – not only I will
take you on a journey on NVDA internals, but also help you
contemplate a lot (for anyone wishing to contribute code to
NVDA project, you must have the mindset that you are
contributing to both the possibilities and constraints of
accessibility and disability).
Next: NVDA screen reader components
and/or any feature you would like me to cover (comments and
topic suggestions are welcome).
Cheers,
Joseph
|
|
Re: The Inside Story of NVDA: introduction and overall goals and mindset
#NVDA_Internals
Hi,
To answer a few questions:
- Blog or a wiki: perhaps in the future.
- Architectural document: there is a technical design overview document that's part of NVDA source code's dev docs folder (use to be on the NVDA project wiki collection but moved to source code directly in a recent release). The next Inside Story will be mostly based on that document as I'll be talking about NVDA components with a few source code examples.
Cheers,
Joseph
|
|
Re: could nvda announce entries in the Windows 11 emoji panel?
I think you should be able to select one or any number of add-ons
from the list as you do in a standard list and then use the disable
or enable button to disable or enable the selected ones as a group
but whatever you do, you still have to restart NVDA for the changes
to take effect.
There may be nothing to be done about that for technical reasons but
it makes enabling add-ons and then testing, especially when doing so
one or two at a time, a very cumbersome effort, if you have many
installed.
Gene
On 9/23/2022 10:29 AM, Brian Vogel
wrote:
toggle quoted message
Show quoted text
On Fri, Sep 23,
2022 at 09:19 AM, Tyler Spivey wrote:
What you can't do is select multiple addons and
disable.
-
That's most likely what I requested then, as it is a grand PITA to
do one-by-one if someone is using a lot of add-ons, and many
people do. I think I have somewhere around 10 installed.
But it would be really handy to be able to selectively disable a
group of 5, then if the issue is not resolved, re-enable them and
disable the second group of 5. Lather, rinse, repeat by halves in
the group where the issue keeps showing up until I've narrowed it
down to "the one."
--
Brian - Windows
10, 64-Bit, Version 21H2, Build 19044
It is well to open one's mind
but only as a preliminary to closing it . . . for the supreme
act of judgment and selection.
~ Irving
Babbitt
|
|
Re: could nvda announce entries in the Windows 11 emoji panel?
On Fri, Sep 23, 2022 at 09:19 AM, Tyler Spivey wrote:
What you can't do is select multiple addons and disable.
- That's most likely what I requested then, as it is a grand PITA to do one-by-one if someone is using a lot of add-ons, and many people do. I think I have somewhere around 10 installed. But it would be really handy to be able to selectively disable a group of 5, then if the issue is not resolved, re-enable them and disable the second group of 5. Lather, rinse, repeat by halves in the group where the issue keeps showing up until I've narrowed it down to "the one." --
Brian - Windows 10, 64-Bit, Version 21H2, Build 19044
It is well to open one's mind but only as a preliminary to closing it . . . for the supreme act of judgment and selection.
~ Irving Babbitt
|
|
Re: The Inside Story of NVDA: introduction and overall goals and mindset
#NVDA_Internals
Hi Joseph,
This sounds very interesting, I've always wondered what was under the covers of NVDA.
Is there architectural/design documentation that can provide a framework on which we can place the stories?
Thank you
Russ
toggle quoted message
Show quoted text
On Thu, Sep 22, 2022 at 9:52 PM Pranav Lal < pranav@...> wrote: Joseph, You may want to put these stories on the web perhaps on a wiki on the nvaccess github repository. E-mail works too but tends to get lost. Pranav
|
|
Re: could nvda announce entries in the Windows 11 emoji panel?
To enable/disable addons, there are buttons in the manager. NVDA, Tools, Manage add-ons. Find the addon you want, press Disable, repeat. What you can't do is select multiple addons and disable. But arrowing through the list and pressing Alt d on one works just as well.
toggle quoted message
Show quoted text
On 9/23/2022 6:11 AM, Brian Vogel wrote: On Fri, Sep 23, 2022 at 02:27 AM, Joseph Lee wrote: The answer is a resounding yes - you can enable or disable individual add-ons (one at a time). - I would love to know how this is done, as I even created a GitHub issue asking for this feature to be made a part of Add-Ons Manager. I'd love to be able to do something akin to what's called a clean start under Windows where I can enable things "by halves" to determine which add-on specifically is causing a problem. It's a much faster "search and destroy" method that doing one by one if you have a lot of add-ons active. -- Brian -Windows 10, 64-Bit, Version 21H2, Build 19044 It is well to open one's mind but only as a preliminary to closing it . . . for the supreme act of judgment and selection. ~ Irving Babbitt
|
|
Re: could nvda announce entries in the Windows 11 emoji panel?
On Fri, Sep 23, 2022 at 02:27 AM, Joseph Lee wrote:
The answer is a resounding yes - you can enable or disable individual add-ons (one at a time).
- I would love to know how this is done, as I even created a GitHub issue asking for this feature to be made a part of Add-Ons Manager. I'd love to be able to do something akin to what's called a clean start under Windows where I can enable things "by halves" to determine which add-on specifically is causing a problem. It's a much faster "search and destroy" method that doing one by one if you have a lot of add-ons active. --
Brian - Windows 10, 64-Bit, Version 21H2, Build 19044
It is well to open one's mind but only as a preliminary to closing it . . . for the supreme act of judgment and selection.
~ Irving Babbitt
|
|
Re: NVDA and natural voices
Brian's Mail list account
I think these voices are only meant to read documents. You can to some extent speed them up and slow them down, but I would imagine the reason they are only available to Microsoft is that they have actually not written the API yet needed for external use. Brian
-- bglists@... Sent via blueyonder.(Virgin media) Please address personal E-mail to:- briang1@..., putting 'Brian Gaff' in the display name field.
toggle quoted message
Show quoted text
----- Original Message ----- From: "Gene" <gsasner@...> To: <nvda@nvda.groups.io> Sent: Friday, September 23, 2022 4:39 AM Subject: Re: [nvda] NVDA and natural voices The person doing the video keeps repeating how natural the voices sound, as though a natural sounding voice in and of itself is an extraordinary achievement. We've had natural sounding voices for a long time. Having natural sounding voices is common these days. Its other characteristics of a lot of these voices that cause me to dislike them.
If the behavior of the voices using Edge is what you get when using them in Windows 11, they currently have characteristics that would lead me to not use the voices.
By far the most important one is the ridiculously long pauses at the ends of sentences. If this occurs in Narrator and not just in Edge, those long, long pauses are maddening to the point where I wouldn't consider using the voices as long as the pauses can't be adjusted by the user and greatly shortened.
Also, inflection is too high and there is a slight sing-songy quality to the inflection.
The voices may be quite good if these defects are eliminated.
Do these problems exist when using the voices with Narrator? Those interested in using these voices, if these problems exist when using Narrator, and if you object to them, may wish to contact Microsoft about them.
Gene On 9/22/2022 10:12 PM, Gene via groups.io wrote:
This youtube video let's you hear at least a little of the voices, I didn't listen to all of it so I don't know if more samples are provided later. But the really important thing is that it tells you how to hear them on any system using Edge.
You can have material more than just a short sample spoken. https://www.youtube.com/watch?v=XdQitJEuyug
Gene Gene
On 9/22/2022 8:30 PM, Şenolcan HANCI wrote:
Hello friends. As you know with Windows 11 22h2 new natural voices are available, although for english USA for now. İ have a question. To see these voices in NVDA, does Microsoft or NVDA developers should take a step and can we do something for this
Windows için Posta <https://go.microsoft.com/fwlink/?LinkId=550986> ile gönderildi
|
|
Re: move NVDA settings to new computer
Brian's Mail list account
Yes I've brought this up before. I think there used to be a ticket for it, but as you say, its still doing the very unfriendly thing of just giving up or shoving the files in the root. I too do not have any registered voices. I'd imagine there should be a certain number of installs you are allowed. Brian
-- bglists@... Sent via blueyonder.(Virgin media) Please address personal E-mail to:- briang1@..., putting 'Brian Gaff' in the display name field.
toggle quoted message
Show quoted text
----- Original Message ----- From: "Gene" <gsasner@...> To: <nvda@nvda.groups.io> Sent: Friday, September 23, 2022 3:39 AM Subject: Re: [nvda] move NVDA settings to new computer I believe it will transfer all add-ons.
Whether the add-on will have to be authorized, I don't know. Since you are placing the add-on in a copy you will use portably, and it is a product you pay for, you may have to authorize it in the portable copy.
Open tools and press enter on create portable copy. A dialog will open. Tab around the dialog and you will find a check box that says something like use current user configuration. Check it with the space bar, then continue to create the portable copy. Set up a folder with nothing in it before you begin to create the portable copy and use it during creation. If you don't, the files will be splattered all over whatever already used folder you select. The portable installation should automatically make its own folder at whatever location you are using, as happens when you unzip a file, but it doesn't.
Gene On 9/22/2022 6:15 PM, Brian Vogel wrote:
On Thu, Sep 22, 2022 at 07:08 PM, Don H wrote:
Will this properly install addons such as the code factory vocalizer addon? Wasn't there a way to move the settings from a portable copy made from the old computer?
- I don't know the answer to your first question, because I don't know what Code Factory's licensing scheme is and what it checks (or doesn't) in relation to the computer on which it's running. I can say it will copy the add-on over in its entirety, but that doesn't mean that it will work. Someone else will have to answer this, as I don't own it.
Sarah has already referenced the ability to make a portable copy of NVDA, including your add-ons when you do so, then using that portable copy as as the install media on your new computer. I believe I recall when you do that it will ask you if you wish to copy the profile/settings/configuration associated with the portable copy to the new installation, but I haven't done this in ages. --
Brian -Windows 10, 64-Bit, Version 21H2, Build 19044
It is well to open one's mind but only as a preliminary to closing it . . . for the supreme act of judgment and selection.
~ Irving Babbitt
|
|
Re: could nvda announce entries in the Windows 11 emoji panel?
Hi,
The answer is a resounding yes - you can enable or disable individual add-ons (one at a time). As for its internals, I'll do my best to cover it in an Inside Story post on add-on flags (running/disabled/enabled).
Cheers,
Joseph
|
|
Re: could nvda announce entries in the Windows 11 emoji panel?
Hi,,
this raises an interesting question.
Can add-ons be enabled one by one to troubleshoot such issues?
JAWS has had a setting for a while now where one can use default settings to start JAWS with, and then another one where scripts can be enabled one by one to rule out user quirks.
I've never had anything odd happen with add-ons, just throwing out the question here to think about, mainly for NV Access and developers of NVDA.
|
|
Re: NVDA and natural voices
There is no reason long pauses are necessary if the voices are
online. People use voice assistants routinely and they don't have
long pauses at the ends of sentences.
Gene
On 9/22/2022 11:01 PM, Şenolcan HANCI
wrote:
toggle quoted message
Show quoted text
But long pouse in Microsoft edge is normal
because these voices are working as online
Windows için Posta ile gönderildi
Kimden: Gene
Gönderilme: 23 Eylül 2022 Cuma 06:39
Kime: nvda@nvda.groups.io
Konu: Re: [nvda] NVDA and natural voices
The person doing the video keeps repeating
how natural the voices sound, as though a natural sounding
voice in and of itself is an extraordinary achievement. We've
had natural sounding voices for a long time. Having natural
sounding voices is common these days. Its other
characteristics of a lot of these voices that cause me to
dislike them.
If the behavior of the voices using Edge is what you get when
using them in Windows 11, they currently have characteristics
that would lead me to not use the voices.
By far the most important one is the ridiculously long pauses
at the ends of sentences.
If this occurs in Narrator and not just in Edge, those long,
long pauses are maddening to the point where I wouldn't
consider using the voices as long as the pauses can't be
adjusted by the user and greatly shortened.
Also, inflection is too high and there is a slight sing-songy
quality to the inflection.
The voices may be quite good if these defects are eliminated.
Do these problems exist when using the voices with Narrator?
Those interested in using these voices, if these problems
exist when using Narrator, and if you object to them, may wish
to contact Microsoft about them.
Gene
On 9/22/2022 10:12 PM, Gene via groups.io
wrote:
This youtube video let's you hear at
least a little of the voices, I didn't listen to all of it
so I don't know if more samples are provided later. But the
really important thing is that it tells you how to hear them
on any system using Edge.
You can have material more than just a short sample spoken.
https://www.youtube.com/watch?v=XdQitJEuyug
Gene
Gene
On 9/22/2022 8:30 PM, Şenolcan HANCI
wrote:
Hello friends. As you know with
Windows 11 22h2 new natural voices are available,
although for english USA for now. İ have a question. To
see these voices in NVDA, does Microsoft or NVDA
developers should take a step and can we do something
for this
Windows için Posta ile gönderildi
|
|
Re: NVDA and natural voices
By human sounding, I mean the actual voice itself. Different people
may have different definitions. I consider things like inflection
and pause length to be characteristics of speech, not of the sound
of the voice.
If the very long pauses don't occur in Narrator, then my main
objection is removed if the pauses aren't too long. Regardless, I
think that inflection and pause length should be adjustable by the
user.
Different people prefer different voices but I think that such
characteristics should be adjustable in part because people have
such differences.
I'm pleased that the long pauses don't exist in Narrator.
Narrator in Windows 10 doesn't let you adjust inflection. I hope it
does in Windows 11. I would want less inflection in the natural
voices.
Perhaps others may comment about whether, ignoring the long pauses
in Edge read aloud, you get a good idea of the sound and inflection
of the voices when listening in Edge.
Gene
Gene
On 9/22/2022 10:47 PM, David Goldfield
wrote:
toggle quoted message
Show quoted text
Gene,
When using these voices in Narrator you
definitely don’t have unnatural pauses at the end of each
sentence. I understand your point of view in that we’ve had
many human sounding voices for quite some time but, to me,
human sounding doesn’t always mean that they sound natural.
Some of the Nuance voices, while they sound human, have a
quality about them that sounds unnatural and electronic and
that odd nonhuman aspect isn’t as noticeable with these new
voices. Then again, that’s just my perception and as I’m sure
you’d agree a voice that may sound fabulous to my ear might
sound jarring or problematic to yours.
The person doing the video keeps repeating
how natural the voices sound, as though a natural sounding
voice in and of itself is an extraordinary achievement. We've
had natural sounding voices for a long time. Having natural
sounding voices is common these days. Its other
characteristics of a lot of these voices that cause me to
dislike them.
If the behavior of the voices using Edge is what you get when
using them in Windows 11, they currently have characteristics
that would lead me to not use the voices.
By far the most important one is the ridiculously long pauses
at the ends of sentences.
If this occurs in Narrator and not just in Edge, those long,
long pauses are maddening to the point where I wouldn't
consider using the voices as long as the pauses can't be
adjusted by the user and greatly shortened.
Also, inflection is too high and there is a slight sing-songy
quality to the inflection.
The voices may be quite good if these defects are eliminated.
Do these problems exist when using the voices with Narrator?
Those interested in using these voices, if these problems
exist when using Narrator, and if you object to them, may wish
to contact Microsoft about them.
Gene
On 9/22/2022 10:12 PM, Gene via groups.io
wrote:
This youtube video let's you hear at
least a little of the voices, I didn't listen to all of it
so I don't know if more samples are provided later. But the
really important thing is that it tells you how to hear them
on any system using Edge.
You can have material more than just a short sample spoken.
https://www.youtube.com/watch?v=XdQitJEuyug
Gene
Gene
On 9/22/2022 8:30 PM, Şenolcan HANCI
wrote:
Hello friends. As you know with
Windows 11 22h2 new natural voices are available,
although for english USA for now. İ have a question. To
see these voices in NVDA, does Microsoft or NVDA
developers should take a step and can we do something
for this
Windows için
Posta ile gönderildi
|
|
Re: NVDA and natural voices
But long pouse in Microsoft edge is normal because these voices are working as online Windows için Posta ile gönderildi The person doing the video keeps repeating how natural the voices sound, as though a natural sounding voice in and of itself is an extraordinary achievement. We've had natural sounding voices for a long time. Having natural sounding voices is common these days. Its other characteristics of a lot of these voices that cause me to dislike them.
If the behavior of the voices using Edge is what you get when using them in Windows 11, they currently have characteristics that would lead me to not use the voices.
By far the most important one is the ridiculously long pauses at the ends of sentences. If this occurs in Narrator and not just in Edge, those long, long pauses are maddening to the point where I wouldn't consider using the voices as long as the pauses can't be adjusted by the user and greatly shortened.
Also, inflection is too high and there is a slight sing-songy quality to the inflection.
The voices may be quite good if these defects are eliminated.
Do these problems exist when using the voices with Narrator? Those interested in using these voices, if these problems exist when using Narrator, and if you object to them, may wish to contact Microsoft about them.
Gene
toggle quoted message
Show quoted text
On 9/22/2022 10:12 PM, Gene via groups.io wrote: This youtube video let's you hear at least a little of the voices, I didn't listen to all of it so I don't know if more samples are provided later. But the really important thing is that it tells you how to hear them on any system using Edge.
You can have material more than just a short sample spoken. https://www.youtube.com/watch?v=XdQitJEuyug
Gene Gene On 9/22/2022 8:30 PM, Şenolcan HANCI wrote: Hello friends. As you know with Windows 11 22h2 new natural voices are available, although for english USA for now. İ have a question. To see these voices in NVDA, does Microsoft or NVDA developers should take a step and can we do something for this Windows için Posta ile gönderildi
|
|
Re: NVDA and natural voices
As far as İ see long pouse isn’t exist in narrator so İ don’t have that problem in narrator Windows için Posta ile gönderildi The person doing the video keeps repeating how natural the voices sound, as though a natural sounding voice in and of itself is an extraordinary achievement. We've had natural sounding voices for a long time. Having natural sounding voices is common these days. Its other characteristics of a lot of these voices that cause me to dislike them.
If the behavior of the voices using Edge is what you get when using them in Windows 11, they currently have characteristics that would lead me to not use the voices.
By far the most important one is the ridiculously long pauses at the ends of sentences. If this occurs in Narrator and not just in Edge, those long, long pauses are maddening to the point where I wouldn't consider using the voices as long as the pauses can't be adjusted by the user and greatly shortened.
Also, inflection is too high and there is a slight sing-songy quality to the inflection.
The voices may be quite good if these defects are eliminated.
Do these problems exist when using the voices with Narrator? Those interested in using these voices, if these problems exist when using Narrator, and if you object to them, may wish to contact Microsoft about them.
Gene
toggle quoted message
Show quoted text
On 9/22/2022 10:12 PM, Gene via groups.io wrote: This youtube video let's you hear at least a little of the voices, I didn't listen to all of it so I don't know if more samples are provided later. But the really important thing is that it tells you how to hear them on any system using Edge.
You can have material more than just a short sample spoken. https://www.youtube.com/watch?v=XdQitJEuyug
Gene Gene On 9/22/2022 8:30 PM, Şenolcan HANCI wrote: Hello friends. As you know with Windows 11 22h2 new natural voices are available, although for english USA for now. İ have a question. To see these voices in NVDA, does Microsoft or NVDA developers should take a step and can we do something for this Windows için Posta ile gönderildi
|
|
Re: NVDA and natural voices
Gene,
When using these voices in Narrator you definitely don’t have unnatural pauses at the end of each sentence. I understand your point of view in that we’ve had many human sounding voices for quite some time but, to me, human sounding doesn’t
always mean that they sound natural. Some of the Nuance voices, while they sound human, have a quality about them that sounds unnatural and electronic and that odd nonhuman aspect isn’t as noticeable with these new voices. Then again, that’s just my perception
and as I’m sure you’d agree a voice that may sound fabulous to my ear might sound jarring or problematic to yours.
toggle quoted message
Show quoted text
From: nvda@nvda.groups.io <nvda@nvda.groups.io> On Behalf Of
Gene
Sent: Thursday, September 22, 2022 11:39 PM
To: nvda@nvda.groups.io
Subject: Re: [nvda] NVDA and natural voices
The person doing the video keeps repeating how natural the voices sound, as though a natural sounding voice in and of itself is an extraordinary achievement. We've had natural sounding voices for a long time. Having natural sounding voices
is common these days. Its other characteristics of a lot of these voices that cause me to dislike them.
If the behavior of the voices using Edge is what you get when using them in Windows 11, they currently have characteristics that would lead me to not use the voices.
By far the most important one is the ridiculously long pauses at the ends of sentences.
If this occurs in Narrator and not just in Edge, those long, long pauses are maddening to the point where I wouldn't consider using the voices as long as the pauses can't be adjusted by the user and greatly shortened.
Also, inflection is too high and there is a slight sing-songy quality to the inflection.
The voices may be quite good if these defects are eliminated.
Do these problems exist when using the voices with Narrator? Those interested in using these voices, if these problems exist when using Narrator, and if you object to them, may wish to contact Microsoft about them.
Gene
On 9/22/2022 10:12 PM, Gene via groups.io wrote:
This youtube video let's you hear at least a little of the voices, I didn't listen to all of it so I don't know if more samples are provided later. But the really important thing is that it tells you how to
hear them on any system using Edge.
You can have material more than just a short sample spoken.
https://www.youtube.com/watch?v=XdQitJEuyug
Gene
Gene
On 9/22/2022 8:30 PM, Şenolcan HANCI wrote:
Hello friends. As you know with Windows 11 22h2 new natural voices are available, although for english USA for now. İ have a question. To see these voices in NVDA, does Microsoft
or NVDA developers should take a step and can we do something for this
Windows için
Posta ile gönderildi
|
|
Google sheets not showing field on Mantis braille display?
Hello.
In a Google sheet, as I tab or arrow right or left among fields I hear the field content but the corresponding braille is not displayed on the Mantis q40. The display only shows "Catalog - Google Sheets doc app grp" constantly.
I've tinkered with some NVDA Doc formatting and Browse mode settings, but no joy.
Help appreciated.
MS Surface Laptop 3, Updated Windows 11, NVDA 2022.2.3, Google Chrome.
John
-- - jso msl -
|
|
Re: NVDA and natural voices
The person doing the video keeps repeating how natural the voices
sound, as though a natural sounding voice in and of itself is an
extraordinary achievement. We've had natural sounding voices for a
long time. Having natural sounding voices is common these days.
Its other characteristics of a lot of these voices that cause me to
dislike them.
If the behavior of the voices using Edge is what you get when using
them in Windows 11, they currently have characteristics that would
lead me to not use the voices.
By far the most important one is the ridiculously long pauses at the
ends of sentences.
If this occurs in Narrator and not just in Edge, those long, long
pauses are maddening to the point where I wouldn't consider using
the voices as long as the pauses can't be adjusted by the user and
greatly shortened.
Also, inflection is too high and there is a slight sing-songy
quality to the inflection.
The voices may be quite good if these defects are eliminated.
Do these problems exist when using the voices with Narrator? Those
interested in using these voices, if these problems exist when using
Narrator, and if you object to them, may wish to contact Microsoft
about them.
Gene
On 9/22/2022 10:12 PM, Gene via
groups.io wrote:
toggle quoted message
Show quoted text
This youtube video let's you hear at least a little of the voices,
I didn't listen to all of it so I don't know if more samples are
provided later. But the really important thing is that it tells
you how to hear them on any system using Edge.
You can have material more than just a short sample spoken.
https://www.youtube.com/watch?v=XdQitJEuyug
Gene
Gene
On 9/22/2022 8:30 PM, Şenolcan HANCI
wrote:
Hello friends. As you know with Windows
11 22h2 new natural voices are available, although for
english USA for now. İ have a question. To see these voices
in NVDA, does Microsoft or NVDA developers should take a
step and can we do something for this
Windows için Posta ile gönderildi
|
|