nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
https://www.nvaccess.org/
Other
2.11k stars 636 forks source link

Pin Reader To One Application #5175

Closed nvaccessAuto closed 6 years ago

nvaccessAuto commented 9 years ago

Reported by RMP2iN58bRrATmLS on 2015-06-21 02:17 The ability to lock or pin the reader to one application would help with multi-tasking; such as when reading an e-book while working on something else.

I realize this is probably outside the core functionality, so perhaps it would be more appropriate as a plug-in/add-on.

nvaccessAuto commented 9 years ago

Comment 1 by jteh on 2015-06-22 01:14 What part of NVDA are you trying to "pin"? If you're using application keyboard commands, NVDA of course only reads what's in the application. If you're using the mouse cursor, NVDA will read whatever is on the screen, but this is the only thing that makes sense, since there might be multiple applications visible on screen and the mouse can go anywhere on the screen. Please elaborate.

nvaccessAuto commented 9 years ago

Comment 2 by RMP2iN58bRrATmLS on 2015-07-02 21:14 Pinning or restricting the NVDA text-to-speech capability to keep reading a document's contents after the mouse has moved away allows sighted users to do other work while listening.

This is outside the normal use of NVDA, yet it fits my case because I want to use the TTS capability to read books and web articles while I'm using the computer to do other things like data entry. Since I am a sighted user the reading can continue in the background while my eyes, voice, and/or hands control the computer to do other things.

nvaccessAuto commented 9 years ago

Comment 3 by nvdakor on 2015-07-03 07:17 Hi there,

Hmmm, an interesting concept. Some users, who might be familiar with eBook readers and other demonstrations of screen reading technology, might ask us (blind programmers) to come up with a feature like what you are suggesting: not letting NVDA react to "external stimuli" - just staying in one app. This is understandable, given that some sighted users may wish to let the TTS do its thing (reading something to you) while they perform other tasks. On the other hand, some people may argue that, since a screen reader is a screen accessibility tool, it should react to external stimuli (as you may know, in physics, if there is action, there will be opposite reaction, or if something happens, others may respond or may ignore it). As a screen reader user who likes listening to music in the background and read articles online, I certainly do understand how this suggestion could be useful. But I cannot ignore the fact that, as a screen reader code contributor and user interface translator, whatever I do will have an impact on someone else's life half way across the globe, especially if it is something that'll decide their employment. This is my dilemma: what is more important, employment of one more blind person across the globe using free and open-source technology, or allow screen readers to morph into yet another book reader?

Based on recent trends and with our mission at hand, I would like to kindly suggest that we turn down this request, or in this case, reconsider this suggestion based on the following points:

  1. A screen reader is what it claims to be: a tool that reads what's on the screen in front of a user. This definition has wide ranging consequences: a screen reader must respond to external stimuli, it needs to support keyboard input, it needs to accept mouse events and needs to support tapping on touchscreens. It needs to tell users that an app is in focus, it needs to correctly analyze where the next heading of a document is located, it needs to try its best to understand tagged graphics and must be willing to work with third-party software to provide equal access to computers for blind people. Just because it has the word "reader" in it does not qualify NVDA as yet another ebook reader (the closest to this is Audible).
  2. NVDA's mission is to provide equal access to technology, employment and information. Technology, because many blind people cannot afford a computer, let alone commercial screen readers or ebook readers, which doesn't make sense in a culture where we should be on the lanes of information superhighway. Employment, since various statistics shows that number of blind people will increase and significant number of population with visual impairment lack employment, hence recent versions of NVDA has focused on professional app support. Information, because we are in a culture where information and connectedness is our locomotive to success and satisfaction, and for a population who cannot see what's in front of them, this lack of information hinders their decision-making process and prevents them from enjoying the satisfaction of being connected to the outside world and its possibilities.
  3. A screen reader is an expert in a specific area. Just as real-life experts talk about what they know in their fields, NVDA is also an expert in one specific area: screen reading and related procedure. For example, suppose you touch the lower left corner of the screen. NVDA will notice that you moved your finger and tapped somewhere, so it'll try its best to gather as much information about this touch gesture just like any program which demands your attention to mouse clicks. Once NVDA gathers what's needed (and nothing more), NVDA will read the contents of Start Menu, since in Windows, clicking the lower left corner (in case of Windows 8/8.1/10, tapping the lower left corner of the screen) tells Windows to open Start Menu, NVDA, performing the duty of a screen reader, will tell users that Start Menu is opened. Since NVDA is an expert in screen reading, it should not be confused as an app that'll let a user read articles in the background like that of an ebook reader.
  4. Text-to-speech is a completely different thing than that of a screen reader. There are various parts to a screen reader, and text-to-speech (TTS) is a service used by a screen reader. As explained in point 3, whenever something happens, the part of the screen reader responsible for gathering needed information will spring to life, and once the needed info is obtained, it'll send it to a TTS to be spoken to a user (or brailled via a refreshable braille display). Thus, a TTS is not the same thing as a screen reader; a TTS is a software that speaks what it is told to speak (translating text to speech, whether it's an output from a screen reader, ebook text or what not; in case of NVDA, it is an executable program with a variety of components working together to enhance the lives of thousands of blind people around the world, and TTS happens to be one of the services (or components) NVDA uses for its operation).

Of all these points, I'm thinking that perhaps point 4 might have been your reason for suggesting this feature. Am I right? If so, I'm really sorry to say that this may not be the right package for your needs at this time. And please remember this: as much as we wish to cater to needs of many people (including you), we cannot forget who we serve and why we serve them, and for Nonvisual Desktop Access, our mission is equal access to technology: a group of talented blind and visually impaired programmers around the world working together to enhance the lives of thousands of blind and visually impaired people around the globe.

Thanks, and hope this helps. You are more than welcome to talk to us at any time, and we do value your comments and suggestions.

bhavyashah commented 7 years ago

I have never disabled mouse tracking for all usage purposes, and am therefore a little confused here. Shouldn't NVDA ignore any and all mouse movement when mouse tracking is off anyways? In theory, this is what disabling mouse tracking suggests to me, but NVDA's speech is interrupted when I move the mouse pointer even though mouse tracking is off. I do think that NVDA should external mouse-related stimuli when mouse tracking is disabled, and if that is not the present scenario, a third state to mouse tracking would be useful. Thoughts/clarifications appreciated. @jcsteh @feerrenrut @josephsl @Qchristensen @leonardder

Qchristensen commented 7 years ago

I think there's two issues here - What you've pointed out about mouse tracking @bhavyashah may be an issue, but let's stick to "the ability to have NVDA read something in the background" which I think is essentially the summary of this issue.

While the earlier comment that if you just want something to read out long text to you while you do something else, there are other packages than a screen reader may be true, there could be instances where such a facility could be useful to a screen reader user. The example given of a sighted user could be reading a web page which takes up half the screen while taking notes in Word on the other half of the screen is an interesting one. On the one hand, what would perhaps be easier for most users would be the current behaviour - read the web page, press alt+tab to Word, type a note, press alt+tab back to your browser window and keep reading - repeat as needed. You could potentially have the ability to have a "background reading" command read the web page in the background, then alt+tab back to Word, and make notes while it's reading. You would then have to deal with issue such as would you have the background reading pause while giving information such as what window you are alt+tabbing to. You could have a background reading command that let the normal speech interrupt as needed, but then picked up where it left off after that - you would then potentially have to resolve issues such as what if I want to increase or decrease the speed of the background reading? Would you then need a second command to stop (or pause?) the background reading or could you use the regular control or shift?

Either way, I think this is a more suitable project as an add-on rather than core. I think the appeal would be limited, and primarily for power users, but having said that, those who use it would likely find it quite helpful.

Qchristensen commented 7 years ago

Not so much an update, but a potential alternative for someone wanting full documents read in the background, I found a freeware program called Balabolka. The first time I ran it, none of the controls read, but the second time it read everything perfectly. In any case, press control+o to open a file, then f5 to have it read in the background. The trick is you can't use the same synth as NVDA is using. Balabolka uses SAPI 5 by default. As long as NVDA is using something else,k both can work at the same time: http://www.cross-plus-a.com/balabolka.htm

ehollig commented 6 years ago

I am going to close this issue as wontfix according to https://github.com/nvaccess/nvda/issues/5175#issuecomment-155340796. As stated in https://github.com/nvaccess/nvda/issues/5175#issuecomment-318998578, I think this is a more suitable project as an add-on rather than core.