Bring your karma
Join the waitlist today
HUMBLECAT.ORG

Blind and Visually Impaired Community

Full History - 2018 - 09 - 04 - ID#9cwmgb
11
Trying to write accessible software... (self.Blind)
submitted by tiberiusdraig
Hi all,

I’m currently working on some enterprise software and I’m trying to ensure that it’s properly accessible, but I’m having real trouble with screen-readers; I don’t use them day-to-day so I don’t really have a handle on a screen-reader operator’s workflow, and so I’m just not sure if what I’m implementing is correct/useful. The core requirement is conformance with the US Section 508 rules, but I would really like this software to be easily accessible rather than just implementing the bare-minimum as a box-ticking exercise.

The screen-reader that we are primarily targeting is JAWS, but I am also testing with NVDA and Narrator. The application is built using WPF, so there are some limitations that I’ve found in the technology itself that I’ve been unable to overcome; for example, both Narrator and NVDA’s object-navigation will read elements and controls that are ‘Collapsed’, i.e. should not be considered part of the visual-tree, so, among other things, I can navigate to a ‘loading’ message that is not visible or enabled when the application isn’t actually loading – I can only assume that this would be somewhat confusing to the operator.

The main problem I am finding is that all of my interactive stuff works nicely, but it’s general page-content that I’m really struggling with – for example, I have a block of text at the side of the window which provides pointers on the current operation (e.g., something like “This operation can be used to change your current PIN – if you don’t know your current PIN, you must perform a PIN reset”) which simply doesn’t get read as part of the page unless I use the screen-reader to read the entire window, but this seems super cumbersome and it feels like there should be a better way. I’ve played around with the object-navigation stuff in NVDA and Narrator (with the mixed-results I mentioned previously, although it is generally really good), and the OCR functionality in NVDA, but none of it really solves all of the problems. JAWS seems lightyears behind in this respect with the only thing I can get to work being a full-read of the entire window, but then that could be my lack of experience with the tool.

My main question I guess is how do you approach a new application on Windows with a screen-reader? Do you try to get the lay-of-the-land first, or do you dive straight in and deal with problems as they come? Is getting JAWS/NVDA/Narrator to read an entire window (i.e. JAWS/NVDA + B) a common function, and is it something that you would expect to be using quite a lot before you got accustomed to a particular application? How do you handle text on a page that isn’t focusable or attached to an interactive control (e.g. a TextBlock on a form in WPF that doesn’t label anything)?

Warm regards,
Tiberius
bradley22 3 points 4y ago
I'd personally not use the read entire window command, I'd try tabbing, shift tabbing, object nav,, alt f for file, alt E for edit and other alt plus letter commands.

I'm not sure if your application is a web app, if it is, you might be able to use Aria to have an alert function, I think its called, that allows the screen reader user to be alerted when something changes on the screen.

Don't rely on object navigation or the jaws equivalent if you can help it. Imagine you're coming at this from a new user point of view, the user would probably not know about NVDA's object navigation shortcuts.
tiberiusdraig [OP] 2 points 4y ago
Yeah, this is pretty much what I figured. Unfortunately it's a WPF desktop app, so doesn't have aria support - it has a similar framework (AutomationProperties), but it doesn't seem to do everything that aria tags do on the web. Thanks!
bradley22 2 points 4y ago
No problem.
tiberiusdraig [OP] 1 points 4y ago
Quick follow up on this for anyone else that ends up searching for something similar - .Net 4.7.1 adds live-regions to WPF, much like ARIA tags in the web, so I have bumped up our targeted framework to match and have made the important information areas into live-regions, meaning they are now read correctly when they change using screen-readers that support this functionality. Thanks again for your help!
bradley22 2 points 4y ago
No problem. Would you like me to test the software?

I might be able to give you more feedback on what works and what doesn't with NVDA?
This nonprofit website is run by volunteers.
Please contribute if you can. Thank you!
Our mission is to provide everyone with access to large-
scale community websites for the good of humanity.
Without ads, without tracking, without greed.
©2023 HumbleCat Inc   •   HumbleCat is a 501(c)3 nonprofit based in Michigan, USA.