Accessibility: Obsidian with screen readers

Hi all. I’m a totally blind person that’s interested in using Obsidian in my job, and maybe personally as well. My boss told me about Obsidian–that’s what he uses–so I decided to try it out. I found that some of it was usable with a screen reader (I tried NVDA on Windows. I found that when I navigated text that I’d written, using the arrow keys, all I heard was “blank” signifying that the screen reader could not read the text.

Steps to reproduce

Assuming NVDA is installed(get from link above):

  • Start NVDA.
  • Start Obsidian.
    Close all open files, then create a new one. You can use arrow keys and Enter for this.
  • A file name box opens, and gains keyboard focus. The name of the field isn’t spoken with NVDA (much more minor bug). Enter any name, and press Enter.
  • Now, type some text. A heading, and then a paragraph, will do.
  • press the Up arrow a few times to get back to the heading.

Expected result

After pressing the arrow keys, NVDA should be speaking text behind the cursor, or the line that the cursor is on.

Actual result

NVDA speaks “blank” instead, meaning that NVDA sees no text at all. Interestingly, if I select all with Control + A, NVDA reads the text then. However, this is hardly a good editing experience.

Environment

  • Operating system: Windows 10
  • Obsidian version: v0.12.4

Additional information

18 Likes

Hey there thanks for posting this bug report. I am a Obsidian user. I was wondering how Obsidian is fairing on the accessibility side.
Thought I would also drop in my message.

I have issues regarding keyboard accessibility. I mean ‘mouse less usage’. Hope the team will address both issues. They are a great developers.

1 Like

I don’t have a good answer to this.
Other users have had better luck with other screen readers on mac.
One day we could try to do sprint and try several scrren readers.

Does windows built in screen reader work? I think it’s called Narrator.

1 Like

I just tried both Narrator on Windows and VoiceOver on the Mac. Narrator works even more poorly than NVDA, and while I can review the lines I’ve written with VoiceOver, I cannot hear what my cursor passes over. I’ll try JAWS next. I’m an accessibility tester as part of my job, so I have access to just about any screen reader you’d like me to test with.

2 Likes

Okay, tried with JAWS and Orca (for Linux). JAWS did the same thing as VoiceOver, allowing me to review the text outside of the edit field, but I still cannot move my cursor there. The program didn’t work at all with Orca.

1 Like

Thank you very much for your testing. Your efforts prompted me to do some research. The issues you are highlighting are due to our editor library Codemirror 5.
Codemirror 5 doesn’t play well with screen reader due to some architectural decisions and technical limitations and it won’t get “fixed”.

Codemirror 6 is a complete rewrite of the editor and it does work with screenreaders. We already use Codemirror 6 in the mobile app and will eventually upgrade to Codemirror 6 in the desktop app as well.

4 Likes

This is great, I’m very much looking forward to the transition to CodeMirror 6 on desktop. Is there any rough timeline on when that transition might happen? I know of a few visually impaired users that are anxious to try out Obsidian (and I’ve told them all how great it is), so I’m excited about this update! :smiley:

1 Like

I’m interested too. I’d like to introduce it to my students who are visually impaired. It’s a great tool, but until accessiblity issues are addressed, it’s a no go.

1 Like

I am on obsidian 0.12 as a blind user of the nvda screenreader.
I would love to get in to obsidian, but am still not able to read text back while editing. Will this be fixed? How can we adres such a thing on the roadmap I mean accessibility should be a priority hthese days of all kinds of organisations. HOw can we get this properly adresed on the backlog? And fixed within one of the upcoming sprints?

I am not 100% sure how things are now. 0.13 available to insiders now has the new editor. Let us know if it works better when you get chance.

Seems wto work better, thnx.
I enabled livepreview and now while my screenreader is in edit mode, I can read the text backwarts while editing in the same formfield.

@devinprater Did you get the chance to test how the new editor in 0.13+ works with screen readers?

I just did a quick test in version 0.13.33:

  • In source view, the current editor works quite well
  • In preview view, the editor has serious issues in NVDA when links/embedded elements are in the text. NVDA reads the text before the link and stops. The only way to read further is moving through the text until the cursor is on the link
  • The rest of the interface is not really accessible. For example, I can use ctrl+p to open the command palette, but while typing and arrowing through the list I can’t read which command is selected. Because many functions are available from this palette and I don’t think it would be so hard to make this accessible, this might be a good first step. Another app based on web technologies which implements such a command palette really well is Visual Studio Code, you might get some inspiration there.
  • Other parts of the UI such as the explorer are not accessible from the keyboard. Ensure everything that should be focusable (such as buttons/links/input controls) are reachable by tab or shift+tab. Of course, tab has another function in the editor, so you need a way to get out of the editor first. A few possible approaches:
    • Introduce a hotkey to switch tab between inserting a tab in the editor or moving focus. Visual Studio Code does this and assigns ctrl+m by default
    • Introduce a hotkey to move between UI panes, f6 is a common choice in Windows applications. This could move between the most important parts of the UI and get you out of the editor without using tab.

Hope this helps.

6 Likes

Hi, I am new to Obsidian. Have posted this on discord server as well. I figured this was a better place though for long form posts because I talk a lot. I use NVDA, JAWS, and Voiceover on Iphone. I am an accessibility tester by trade as well. Both the previous and next buttons that are labeled “go back,” and “go forward,” are greyed out on both IPhone and desktop. I use an external keyboard on my phone or a braille display. I would really like to help somehow if I can.

The whole idea of linking notes: I can’t really do that very well on either the mobile or desktop apps as far as I can tell. As of this writing I have not played around with the desktop app very much, I have been able to kind of do the linking on the phone, but if that could be made into some sort of list instead of an image-based approach, that would be helpful. I realize that might change the whole structure of things, and I don’t know how that would be implemented. In other words, if there is a possibility that a list of notes could come up that you could double tap on to link, it might help Voiceover a bit more. Ok, there is a list, kind of, but selecting the note in question is a bit tricky. Again, please keep in mind I am extremely new to the software so apologies if some of this has already been discussed… Although I couldn’t really find much on the forum.

As I said on the Discord, the app is so close but kind of so far away in terms of accessibility. The interface looks so simple at first glance, and there is quite a bit of keyboard functionality. I wonder if somebody could maybe make plug-ins to help with accessibility? I do not know code very well at all. Either that or perhaps add-ons for NVDA and scripts for Jaws? But I use my phone far more than my computer.

Okay, sorry for the rambling post, but I had to get all of that out. Any thoughts are appreciated
Dave

3 Likes

Hi, still the accessibility of obsidian is not good. F.e. in the IOS and IPAD-Version it is not possible to reach the Button for switching Preview/Edit with Voiceover as well as the two other buttons. This means, that a user with screenreader can not switch from edit zu preview at all. Is it possible to fix the accessibility? - should not be too hard.
Michael

1 Like

I really wish there was at least minimal keyboard accessibility in Obsidian Canvas.

Critical needs are…

  • ability to navigate between notes
  • ability to enter “edit mode” on a selected note

n.b. escape already exits “edit mode”, so that is good.

Just adding to this as I was looking for answers as to why Texthelp Read&Write was unable to read aloud and highlight text in-pane. I use R&W as a screen reader more than a navigation tool, so not sure how many others use it/ would be affected, just a pain it basically grabs the text and plonks it in a formatless text box, then reads from there, instead of highlighting the text i just formatted…

Hi there, i’m a user of Obsidian who is visually impaired. While I do not use a screen reader primarily, I’ve been wanting to get sertified for several screen readers. During some testing with both NVDA and Fusion I noticed that there was no way for the screen reader to read text on screen unless the mouse cursor was hovering over them. This is just not accessible for folks that use these two screen readers. In most applications, users can use the tab key in order to navigate using a screen reader, however that is not an option with Obsidian.

3 Likes

I want to help my blind friend use Obsidian. He uses JAWS, can’t remember which version.

We created the vault, and created a note. When the note is read back JAWS simply skips over hyperlinks. For example:

If the text is

Map of Burgundy
Regional trains
Repair cafe

But if the word “trains” is hyperlinked (either local Obsidian links bracket-bracket or https: to some train website), it is simply not spoken.

So JAWS would say:

Map of Burgundy
Regional
Repair cafe

Not having internal or hyperlinks read aloud pretty much makes the whole point of Obsidian moot.

Is anyone else having this behavior from JAWS?

I should note that we’re in edit more. I wonder if preview mode would give different behavior.

1 Like

Hi, I too am a totally blind user. I just started trying Obsidian a week ago using JAWS 2024 as my screen reader.
I am still seeing a lot of issues that were already reported on this thread. I am very glad that Obsidian moved from codemirror 5 to 6 because codemirror 5 was awful for accessibility.
There are still a lot of accessibility issues with Obsidian, but so far I have figured out work arounds for most issues. I will soon document my findings and post a detailed document on how to use Obsidian with JAWS.

1 Like