Reported by cnorman on 2008-04-07 17:16
In most windows screen readers, they create the "Virtual focus" mode, or be it, possibly under a different name.
The (opensource) screen reader Orca has a "Flat review" mode, where the user uses the keys on the number pad to navigate the screen, 7 is previous line, 8 speaks the currentline, 9 speaks the nextline down, 6 thenext word, 5 the current word, 4 the previous word, and 1, 2, and 3 are the same with characters, I think this would be a great feature for NVDA, to be able to read the hole screen from the number pad. Also, there whould be a feature for laptops, which works on the u, i, o, j, k, l, m, ,, and . keys. I also think there should be two sets of key bindings, but that's a different ticket.
Blocked by #22, #643
Blocking #502, #788
Comment 1 by pvagner on 2008-04-07 18:16
Under windows creating flat representation of a window means hooking display functions or creating video intercept driver.
Currently there are some experients happening you may like to see ticket 40. Anyway I think it will take some time to make it really usable.
Display hooks seems to be good compromis for NVDA because it is still know to help with such issues and in most cases does not require administrative privileges to install.
Comment 2 by aleksey_s on 2008-04-08 05:47
let me disagree with you. you can use msaa info to create flat review of whole window as well, ofcourse not all possible info will be available, but even in this case it might be very usefull. msaa provides info also about real coords of controls, however we must use msaa even we will make display hooks, so user might know how control it is when reviewing virtual model as in jaws.
Comment 3 by pvagner on 2008-04-08 06:55
yes you are right it is possible to do such calculations with info provided by MSAA. But given the fact object navigation is working well it will show no benefit. Therefore in extreme cases this might be seen as a duplicate feature.
Comment 4 by aleksey_s on 2008-04-08 07:06
again, i am disagree. my opinion is that flat navigation will be more usefull and confortable. however, all people i recommend nvda, if they even do not know jaws feel theyselves not comfort with undersdanding and using navigation model as in nvda. problem is that most controls are ungrouped and there can be e.g. text after buttons and before it (as in mycomputer properties etc). so implementing flat review for me is very priority feature.
Comment 5 by mdcurran on 2008-04-27 10:32
As much as I eventually want to see some kind of screen layout that can be reviewed, I don't think this should be waited on by 0.6. There are too many other bugs. However, as I said, I do believe this is important, but just not for 0.6.
Milestone changed from 0.6 to None
Comment 6 by aleksey_s on 2008-07-30 09:05
i guess, this might be implemented with virtual buffers concept. so user press some keystroke and goes into virtual representation of current window, even with some specific keystrokes working inside it as in current buffers. is it such problematicaly to do it or developers things it is unnecessary?
however, i thing we do not need to abuse display hooks here. my opinion is that the display hooks nvda must use to receive text of specific controls (or if nvda can not recognize some as control but hook library reports there are portion of text - nvda must create object whatever), and creating flat review by taking position and other info from each nvda object.
Comment 8 by pvagner on 2008-08-01 06:55
I have got quite a lot of request to do something like this from the czech and slovak community. Therefore I have to adapt to all the thoughts and ideas flying here because I don't have better approach my-self.
How do you see this interfacing to the virtual buffers. Should this be written in python or in c++?
Comment 10 by mdcurran on 2010-05-10 07:14
I think at the moment, the best chance we have for this is to reply on NVDA's display models. It would be then possible to review a flat representation of the entire application. However some applications do not write their text in a standard way, so the display models will not pick them up (e.g. Java, Gecko). But in general, this would work well enough. We also may consider key strokes to move to the deepest NVDAObject at the particular review location, e.g. you arrow down to the ok button in a dialog then you should be able to get the navigator object to that button as well.
If virtualBuffers were used instead, we would have a tough time getting the screen layout right, especially for objects that are beside each other. Plus, in-process is fast by is limited to one accessibility API. Out-of-process is slow, but is not limited to one accessibility API.
For now I think display model is more what people are looking for.
Comment 11 by jteh on 2010-07-27 07:47
Milestone changed from None to 2010.2
Comment 12 by mdcurran on 2010-07-27 08:04
NVDA main as of now already allows you to review a flat representation of an object hyerarchi, either by a treeInterceptor (virtualBuffer or compoundDocument) if it exists, or by a display model, at least for window IAccessibles.
However, the interaction model between object navigation, review cursor, and these particular flat representations is currently a little complex.
A branch has been started to come up with a much more understandable way of interacting.
This will add functionality to:
With this functionality in place, NVDA would also no longer automatically set the navigator object to the deepest object when reviewing a flat representation. Rather they would need to execute the script.
This should hopefully make the experience a little more easy to understand as the navigator object and review cursor arn't anymore magically mvoing around due to the other moving.
The branch is at:
Comment by aleksey_s on 2010-07-27 09:45
(In #788) Since it seems to be not very difficult to implement, but it will bring a great convenience for users, I would like to see it taken for 2010.2.
Comment 14 by jteh on 2010-07-30 06:40
Merged in d560b45.
Comment by jteh on 2013-03-25 06:19
(In #502) Duplicate of #58.