Date   

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:

  1. NVDA starts and prepares modules for its operation.
  2. The first module, named “NVDA launcher” (nvda.pyw) checks startup information and calls core.main (defined in core.py module).
  3. 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()).
  4. 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.
  5. 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

Louise Pfau
 

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

Shawn
 

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:

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:

  1. User types the letter “H”.
  2. Windows realizes that something happened from the keyboard, so it tries to interpret what happened.
  3. Windows sees that a character was entered and sees where the system focus is.
  4. Windows sees that Notepad, a text editor is in use, so it displays the letter “H” on the screen.
  5. At the same time, a helper called accessibility API notices this event and sees that a character was entered.
  6. The accessibility API then tells whoever is listening (NVDA, in this case) that an input event occurred.
  7. 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.”
  8. In turn, the accessibility API raises value change event, which is then recognized by NVDA.
  9. 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.
  10. 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?

Gene
 

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:

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

Russell James
 

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


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?

Tyler Spivey
 

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.

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.

----- 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.

----- 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?

Nermin
 

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

Gene
 

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:

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

Gene
 

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:

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.

 

David Goldfield,

Blindness Assistive Technology Specialist

NVDA Certified Expert

 

Subscribe to the Tech-VI announcement list to receive news, events and information regarding the blindness assistive technology field.

Email: tech-vi+subscribe@groups.io

www.DavidGoldfield.org

 

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

 

 

 



Re: NVDA and natural voices

Şenolcan HANCI
 

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

Şenolcan HANCI
 

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

 

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

David Goldfield
 

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.

 

David Goldfield,

Blindness Assistive Technology Specialist

NVDA Certified Expert

 

Subscribe to the Tech-VI announcement list to receive news, events and information regarding the blindness assistive technology field.

Email: tech-vi+subscribe@groups.io

www.DavidGoldfield.org

 

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?

John Sanfilippo
 

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

Gene
 

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