Discourse with a screen reader

Thank you! I installed NVDA today and am slowly getting a feel of the issues you are experiencing.

I completely understand the desire of getting Discourse working in a reasonable way using default bindings. I also understand much better the frustration around navigation.

I can see the phpBB tricks. NVDA is extremely limited there are not a lot of shortcuts to pick from.

The heading trick is unlikely to work on Discourse cause we allow users to enter custom headers in posts. For example:

heading 2

heading 3

heading 4

There is no “next article” button, best we have is “next region”, region support is somewhat flaky compared to JAWS. We already had an article element but NVDA did not respect it.

I made this PR to at least help people be a lot less lost when navigating through a topic:

https://github.com/discourse/discourse/pull/13130

I still feel the structure is not ideal. For example, the down button, gets trapped cause of our nested double-button in our post nav.

@eviltrout is investigating the focus issues with various dialogs, we are going to have to double test with NVDA to see if our fixes take.

We have quite extensive keyboard shortcuts if you quit browse mode, but I do get the reluctance of heading down that dark corner. The trouble is that once you are in “edit” mode you have to kick out of it to actually read the content.

For example:

j → computer says “article link visited”
nvda+space
down → computer says “link benno”
down → computer says “march 15”
down → computer starts reading post

After my fix there will be a major improvement

Instead of saying “article link visited” the computer will start saying “post #6 region article link visited”

Improvements here are going to be gradual, but we very much appreciate all the feedback. We are learning and will do our best to make Discourse more enjoyable to the blind community.

Modals feel like a general hornets nest. If we have a modal open and for any reason you manage to navigate back to the page you can get extremely confused. I do wonder if there is someway of signalling to NVDA - Hey NVDA … all these elements … no longer exist while the modal is open. We could pull them out of the DOM while modals are open but that may end up causing even more confusion.

10 Likes