nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
Other
2.08k stars 628 forks source link

new feature request- provide information in print preview in MS Excel #6428

Open sumandogra opened 7 years ago

sumandogra commented 7 years ago

Use case- Print preview/back stage view in MS Excel. In banks many a times the data is provided in MS Excel and it needs to be analyzed and printed for reference of the senior officers or to be printed in order to be enclosed as an annexure to letter / report correspondence. For this we need to adjust the data using diverse formatting tools. At this point the visualization of the print area is most important to deliver productive output independently by a VI employee. Excel has historically provided a separate Print Preview window that made it easy to zoom in and adjust settings. Excel 2010 introduced a new "Backstage View" where print preview became embedded into the File menu. In MS Excel 2007, Commercial screen reader JAWS provides the access to print preview screen using route JAWS to PC feature, which reads the entire data and the number of pages the data will be printed on. However in MS 2010 the print preview and print dialogue box is combined and when the changes are made in the print dialogue box such as, changing orientation from land scape to portrait, adjusting margins, changing paper size etc. the output is not readable by the screen reader neither by JAWS nor by NVDA. There is a need to have a feature in NVDA to get details of the print preview to avoid dependency with sighted to confirm.

jcsteh commented 7 years ago

I'm reasonably certain it's not going to be possible to support this without changes from Microsoft. Excel 2010 and later don't use GDI to render information to the screen, so screen scraping techniques don't work. Information can now only be accessed either through MSAA/UI Automation and the Excel object model, and I don't think either of these expose any useful information.

Still, the use case is valid, so I'm happy for someone to look into this or follow it up with Microsoft to see what can be done.

Adriani90 commented 5 years ago

cc: @qchristensen

Qchristensen commented 5 years ago

In Excel 365, the current status of options in the Print preview pane (such as orientation, paper size, collation, print one or double-sided) is read and changes to these options are reported.

The one thing that isn't read so easily, is the number of pages. To get to this, press TAB or SHIFT+TAB to move to the "Next page button", then press the "Move to previous object" keystroke - NVDA+numpad 4 or if using laptop keyboard layout, NVDA+shift+left arrow.

It would be handy if that were a bit easier to get to, but actually it's not the easiest thing to find visually either - it's off the bottom of my screen.

Adriani90 commented 5 years ago

are this not information which can be added to the status bar which can be reached with f6? If you open the context menu in the status bar you can actually add new things to it. Or am I wrong?

Qchristensen commented 5 years ago

Theoretically yes there is an option to add "page number" to the status bar as described by @Adriani90 - however in practice, my status bar only ever seems to say "Ready", and the count and sum of any selected cells etc.

Excel also has a "Page break preview" feature (on the View ribbon - alt+w, i) which could be used (by a sighted user) to plan the print layout - you can also drag page borders around with the mouse, however, there is no reporting by NVDA of where those page borders are.

Visually, in page break layout, the view zooms out (where I can see up to column P and row 14 in "Normal" view, in page break preview, the view zooms out to column AA and row 24. The words "Page 1", "Page 2", etc are displayed like a watermark behind the centre of each page that will be printed. Default page break lines are dotted blue, but if you manually move them with the mouse they become solid blue). Anything outside the printable area is shaded grey (you can set the printable area from the "Page layout" ribbon.

Another option which is accessible is that in the page setup dialog (alt+p, s, p) you can scale the spreadsheet or fit to X pages wide by X pages high. If adjusting those, I would recommend not going too far from the original measurements (eg if you have a spreadsheet which is 100 pages wide, setting it to print on 1 page wide is going to result in very small text.