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