Using IntelliJ with a screen reader
I've been using Jetbrains products for years now (starting ReSharper, but mostly recently mainly PyCharm, DataGrip and WebStorm, as well as a little on IntelliJ itself and Android Studio). I'm also losing my sight, so need to start preparing for when that happens.
So I'm wondering if there are any users on these forums that maybe have any experience with screen readers that can advise me. Or even anyone from Jetbrains who can comment or point me at any resources that might help.
I mainly use a Mac and am trying to learn VoiceOver. I posted about some problems I had using the toolbox app, and then PyCharm in the toolbox app forum (https://toolbox-support.jetbrains.com/hc/en-us/community/posts/360009750820-Using-Toolbox-App-with-OSX-VoiceOver-Catalina-) but didn't get a reply. Since then I've read some things that suggest that VoiceOver is no good for coding. I've also read that IntelliJ based IDEs aren't the best for screen readers. Certainly my limited experience with the 2 together was not good, and the toolbox app appears completely unusable with VoiceOver as far as I can tell.
I'd like to keep coding on my Mac, and I'd like to keep using Jetbrains products, but if either is a no-go then I'd like to know sooner rather than later. Any advice at all would be great.
Please sign in to leave a comment.
Hey. I also have impaired vision and I use a screen reader. Recently I have been working on improving Accessibility in JetBrains products.
At the moment, I can tell you the following. Certainly our products can be used with screen readers, best of all with NVDA on Windows.
As for Mac and VoiceOver. Personally, I consider VoiceOver to be the ultimate screen reader. It accurately speaks in Xcode for sure. Unfortunately, VO is not yet enough supported in our IDEs, you can open and build a project in IDEA but you will experience difficulties with editing, navigation etc. We work on improving the situation. It's one of our goals to support accessibility on macOS at the same level as we do for NVDA on Windows.
Hello John,
I am sorry to hear that you have to go through this.
At the moment, fuller screen reader support is indeed provided on Windows rather than macOS (see related help page). We are working on improving the situation with macOS, but I cannot give you any ETA on that I'm afraid.
All reports about specific OSX accessibility-related issues (e.g. IDEA-121959, IDEA-172955, IDEA-202369) are taken into consideration by the developers responsible, so if you stumble upon something odd while using VoiceOver with IntelliJ IDEA, you can submit a new ticket to our tracking system and we will review it. See this article if you are not familiar with YouTrack.
You may also want to read this blog post. It is a bit outdated, but the author's POV on programming tools for visually impaired is very well-rounded and may give you some ideas.
Thanks, Arina Efremova for the reply.
I think my problem is that because I don't know the tools very well, I don't know if what I see as an accessibility problem is just that I don't know what I am doing. My other post I linked to above has a few things I discovered but I'm not sure if it's my ignorance or the tools that are at fault.
The problem is that going from a visual world to an audio one is such a fundamental shift, and particularly as I'm in my 40s now. So what I want to do is find tools that are supposed to work well right now and then stick at them.
If people are successfully using NVDA and IntelliJ IDEs together, for example, but VoiceOver is a no-go then that would be disappointing but really useful. Or if it's known that IntelliJ based IDEs are never going to be any good with screen readers, then it would be a big shame but I'd rather move on now than trying to raise lots of tickets when I don't really have the knowledge yet to inform them.
On another note, I read somewhere that VoiceOver isn't really good enough for this sort of thing because it doesn't provide the hooks that Windows does, so it's never going to be good enough. I vageuly know what that means, but not enough to raise it with anyone. Have the Jetbrains developers have any experience with being unable to achieve something because VO just doesn't allow it?
Arina Efremova - thanks very much for such a helpful and honest reply. It's good to know that NVDA should work with IntelliJ.
Interesting what you say about XCode - I'd read that it didn't work very well, but a lot of information gets out of date very quickly. It's extremely promising to know that it might be doable.
I'll give XCode a go and see if I can use it with my limited VO knowledge, then maybe I'll need to bite the bullet and try NVDA as well. Just my brain has limited capacity so I'd like to just find one thing and get up to speed with it. I think one of the biggest problems with losing your sight (other than the obvious) is how much you suddenly need to rely on your memory. All these years I've been delegating that to google!
Hi,
Interested in this thread.
I have been trying to use Android Studio with a screenreader over the last few weeks and NVDA and Windows is sort of doable.
I need to get android studio to work with the Mac as that is what we use at work for development.
I haven't had much success so far.
I mostly would like to put in a vote for continued development of Voiceover support.
Thanks for any progress!
Brett
I'm feeling quite disheartened by this. Looking at, for example, the first issue in the list posted above. It was created 7 years ago. A few days ago there was a vague comment that suggested that some work may be being done, but with no commitment whatsoever and no reply when questioned.
This may be unfair but I believe when a company says that they are keen to work on accessibility issues and then 7 years goes by and they are still trotting out the same lines with no progress being made, then what they are really saying is that they feel a bit bad about it, but actually have no intention of fixing the issues at all.
I saw this with Postman too - very basic simple things being asked for, promises being made, years going by then promises turning into silence.
Unless a commitment is made, then anything else is just hot air. I don't want to be humoured, I just want an honest assessment. If it can't be done on the macos because voiceover isn't good enough, then come out and say it. If it's a Jetbrains problem then either put your money where your mouth is, or be honest about it.
Regarding Android Studio, I would try google as they maybe do have more of an interest in this sort of thing, and could perhaps contribute fixes back to the core. But I don't know.
Anyway, apologies for the rant.
@John C I am a legally blind IntelliJ Idea user (On windows). Initially when I had to start using IntelliJ (We are using Kotlin at work and Eclipse Kotlin plugin is dead) They didn't even have a high contrast theme. I noticed that almost all accessibility related issues on they're bug tracker were very old (sometimes 10 years)... I then made a point to comment every time they posted on social media and highlight this/call them out on simply ignoring all accessibility related issues. Guess what happened, within three months we got a high contrast theme and lots of needed accessibility bug fixes on windows. It seems like the only way they'll ever pay attention to accessibility related users is if we make a point of exposing their complete ignorance wherever we can. I just tried installing IntelliJ idea on a Mac and it's so close to useable however there are a few deal breakers e.g. the project browser isn't read by VoiceOver at all. And it's definitely not a VoiceOver shortcoming as Visual studio code which is much newer than IntelliJ idea is completely accessible on Mac OS with VoiceOver. I'm sure if Jetbrains allocated 1% of their resources to accessibility for one month we would have a completely accessible Mac OS application. So please comment on all of their social media posts and highlight this and get a few friends to join and soon blind/low vision users on Mac OS might have a much better career outlook...
@Deon Nel
@Deon Nei Damn, let me try that again.....
Just wanted to say - that's a great, positive post and I really appreciate it.
I still feel like I'm personally not sure where to turn. It's hard to really learn how to completely change your whole outlook on te world anyway, let alone when working full time and during lockdown. I've not really been as proactive as I would like in learning a screen reader. I dip my toe from time to time but it's so frustrating and I'm finding it really hard. I'd really like VoiceOver to be the answer because I love my Mac and hate using Windows. I've tried NVDA but have no idea what I'm doing yet. I don't know which way ot go.
The high contrast theme was actually pretty great, I must admit (except the horribly white scrollbars). I have also seen on the 2021.1 EAP blog posts that there are promises of macos accessibility improvements, which I hope will be in this area. Fingers crossed.
Quite how a language like Python can ever be accessible given how it is so dependent on whitespace, which is quite a visual thing.
Hi,
I am a totally blind developer.
Most of my experience is with windows and Visual Studio (which is pretty accessible with JAWS).
I changed jobs recently and needed to figure out what I could use on the Mac.
IntelliJ is not good. The editor sort of works but the project browser, the comboboxes, the various selectors for project types when creating a new project just don't work well.
The Menus do work OK.
In contrast, Windows with NVDA is much better. The menus work, the editor is not bad, definitely doable (working my way through a book on Android development).
I don't know if there is something technical preventing Mac support for IntelliJ. I will say Voiceover on the Mac is generally much flakeier than the Windows screenreaders.
Some simple things like copying text from a web page are inconsistent or just impossible in some cases.
Chrome on the Mac can continually be "busy" requiring you to quit Chrome and restart (this also applies to Visual Studio Code which is an electron app).
VS code is what I am using as an editor on the Mac but it has some challenges.
Indentation is difficult with voiceover, on Windows you can have the screen reader announce indentation on each line, I have not found a way to do this with Voiceover.
You can use a Braille display to help identify indentation which is what I do and this works but not efficiently.
I understand disliking windows, but the screen reader developers on Windows tend to be much more responsive to users than Apple is w/r/t fixing Voiceover issues.
When I contact Apple about Voiceover issues, their first question is always wanting to know if this is a Apple provided app, if not they pretty much won't help.
Anyway, good luck and if I can help with any specific issues regarding screen reader use on either the Mac or Windows, please don't hesitate to post.
Thanks, @Brettlewis - it's great to hear from you. If you are using Visual Studio, does that mean you are a .net developer using maybe C#? I've somehow ended up with Python and I suspect that might be the least accessible language does to it using whitespace for indentation.
Can I ask how you got started using a screen reader? There's plenty of overwhelming reference guides out there, but not so much for beginners that I can find.
@john c why don't you DM me directly on Twitter @brettlewisjudo and I can provide help.
w/r/t IntelliJ, I would love to see more time spent on improving general accessibility. If it can be on the Mac, that would be great, but even on Windows, any improvement would be extremely helpful.
Brett
Hi all. We're actively working on improving accessibility in macOS. Some noticeable changes will be bundled in version 2021.1 already. You can try latest EAP that includes some of them: https://www.jetbrains.com/idea/nextversion/#section=mac
@John C. I've been using screen readers for my entire life, I'd be very happy to help you get productive (we can arrange a skype call/screen share) if you like... Voiceover on the mac is extremely hard to learn/get productive in even though Apple's promotional material might convince you otherwise... Voiceover is amazing however it seems like Apple has abandoned voiceover enhancements on Mac OS for the most part and put all effort into Voiceover on IOS and iPad OS (I hope this changes with Apple making their own processors now)... As @Brettlewis said the main issue with voiceover on Mac OS is internet browsing, not sure if it's the browser or Voiceover but there's workarounds for most issues...
@... Nisnevich That's AMAZING news!!!.
I really hope that accessibility becomes a part of actual development instead of a possible after thought at Jetbrains going forward...
@Arseniy Nisnevich
I tried the EAP build and yes there's definitely lots of improvement!!! The only major issue I noticed from a Voiceover useability perspective is that all menus and code hint popups are interpreted as separate windows by voiceover making it almost impossible to interact/read code hint popups and for example interact the right click(two finger click on touchpad) menu.
This is amazing, Thanks for putting in the effort, I finally feel like I can switch to Mac permanently with VSCode being useable now and IntelliJ idea being so close to useable for low vision/blind users.
Hi,
I just got the chance to give the EAP a try on the Mac and it is much better!!
I could create a project and know what kind of project it was!
The only control type I found that didn't work were comboboxes. I tried interacting with them and nothing happens other than I get a dialog explaining what the combo box is for.
I also found some items were dimmed suggesting they were disabled but they were fine (selecting a project type for android development for example)
Oh, another strange thing, but not a big deal, is that voiceover dings when navigating to a blank line in the editor. This suggests that you are at the end of the file but you aren't and things work fine.
Please keep the great progress coming!
Brett
Been a bit frantic at work so not had a chance to engage on here for a few days, but there are some really promising posts now. I will have another voiceover attempt at the weekend if I get some time and see if I can get anywhere.
Brettlewis - thanks very much for the offer. I've not got a twitter account but will create one and send you a DM.
Deon Nel - that would be amazing if you really don't mind. What's the best way of sending you a private message? Are you on twitter too?
@... - I use the macos zoom text thing, which gives me a really big tooltip when I mouseover something and press cmd. I think it shows the text that VoiceOver would read. I have noticed a couple of places where I am seeing "text/html" in this popup - specifically notifications that appear in the bottom right of PyCharm, such as telling me that a plugin had updated, and that I had switched workspace. (Although one of the git messages did work OK),
I also noticed this the other day in DataGrip when trying to read an error message that had popped up, but I've not updated that to 2021.1 yet.
For example, when a plugin updated,
Well, first experience wasn't great as I couldn't even figure out how to launch PyCharm through the toolbox app. I had tried and failed to do this about 6 months ago but never got a reply to my forum post, so I've raised a ticket (https://youtrack.jetbrains.com/issue/TBX-5787). Not sure if it's a bug but it doesn't seem to work the way I would expect anyway.
I had a little play about with PyCharm 2021.1 EAP, and although I had more success than my previous attempts, I am struggling to find it very useable.
When creating a new scratch file, PyCharm asks me to select which language I am using. However, as I move the keyboard up and down each item it just reads out "new scratch file". If I shift+vo I can navigate in and it can then read them out, which I think is better than last time.
In the preference dialog, the search box reads "command f". There are also various times VoiceOver just reads "image". I struggled to move around it properly. but probably just me.
When trying to code, almost everything I type brings up a window which then completely throws me.
I opened a new Python scratch file, and tried to create a function. So I typed "de" and then a window popped up with various suggestions. I couldn't then continue typing the "f" without first pressing ESC.
The window said something like "press control to insert selected", but I couldn't tell what was selected. Even so, pressing control didn't do anything. I couldn't use up/down arrows to select anything, although I could see it was silently scrolling the list up and down. I did manage to get it to work with the VoiceOver keys, but it did mean having to reposition both my hands and it is quite fiddly.
I pressed ESC, and then space and started to type the name of the function. "s" and then a similar dialog appeared.
Is this an intentional screen reader thing? Maybe I'm too used to doing things visually but I found it incredibly annoying, particularly as it does it for every single word I type.
I think the awkwardness is with all the popups. If I options+enter on something to get the context actions menu, I can't just use up/down arrows to select, I have to fiddle about with VO keys which seriously slows me down.
Other thing I noticed is that PyCharm seemed very inconsistent about reading out whitespace. So under my function name, I pressed tab and typed in a print statement and pressed enter. It then said "newline space space space space". I typed an if statement and pressed enter. PyCharm read out "space", but I was now indented under the if statement.
When reading back code, PyCharm reads each line as it is selected, which seems good, although it doesn't give me any indication about indentation. (Quite how it could do this in a way that wasn't really irritating I'm not sure.)
From what I can tell PyCharm has gone from being unusable to being usable but annoying. Which I think is an improvement!
Again I am utterly amateur at using VoiceOver so some of this is likely to be my own incompetence.
@John C
You can message me on
LinkedIn: www.linkedin.com/in/deon-n-067a7113b
Or
Skype: deon.nel2
It occurred to me that PyCharm EAP might not be 100% up to date with the changes in IntelliJ. So I gave that a (very) quick go and it does look a bit better.
Creating a new scratch file - it was reading out the languages as I scrolled up and down.
When trying, the popups did appear, but I could carry on typing.
I don't have Python enabled in IntelliJ, so I created a javascript scratch file to test with. It had the same issues with whitespace etc.
I will have another try when I have a bit more time, but just thought I'd point out my mistake.
I might have found a solution to the indentation problem. A little crude, but it doesn't bother me.
Go to the VoiceOver utility and add in pronunciations for all the indentation levels you are likely to come across. So add four spaces with a pronunciation of "four spaces" or something. Then repeat for 8, 12, 16 etc.
Now it's still a bit random when editing the file what voiceover will read out as you type, but when you navigate over existing lines it actually seems to work quite well. Blank lines with indentation you still get "space space space" etc.
I might try playing with some different pronunciations, maybe "in one" for two spaces, "in two" for four etc to reduce the syllables. Maybe when I get to 16 spaces I'll just get voiceover to start sobbing.
This is only a quick play, so time will tell if it is usable or not, but it's promising.
(I should add that I found this solution here: https://www.applevis.com/forum/macos-mac-apps/voiceover-and-reading-indentations-mac#comment-122762 and they also list an AppleScript that might be worth a play.)
Obviously if there's anything Jetbrains can do to make it work better that would be great. But I think this makes the problem more of an annoyance than a showstopper.
I've had a few little plays with PyCharm and VoiceOver, and - freezes aside - it's definitely moving int he right direction.
One thing that has been bugging me is the lack of feedback when something happens. So I run unit tests, and..... then what?? Well I found a nice option in Preferences > Appearance and Behaviour > Notifications where you can ask it to read out certain notifications. Sadly, the list isn't multiselect, but I think "Test Results: Run" means that every every test run, it announces how many passed and failed, which is really helpful.
Not all the notifications are clear though. I couldn't find one for database query execution errors. I'm also not sure of where it picks up the voice settings from.
Now if only I can figure out how to get it to tell me what test failed. I can press Cmd+4 to open the run window, which has the results in it. Just not sure how to actually put keyboard focus anywhere. (Maybe the subject for another forum post)
I'd love VoiceOver (or other screen readers) to be a feature Jetbrains actively develop and push.
Hi John C,
i would like to know the progress of yours with respect to your programming skills on Intellij. I too am going through the same issue. I currently am partially blind as i have a genetic disorder called Retinal Pigmentosa in which u will be visually impaired as you get older. i too am Java developer with 16 yrs of experince and would want to start enhancing my programming skills for visually impaired people.
Apreciate your help in advance
Rudraraju Varma
@Rudraraju Varma link. Jetbrains put in a good amount of effort this year with Mac OS accessibility in IntelliJ idea. There's still some issues (I'm still on 21.1.1 so not sure about 21.1.3) but I have been able to work full time on mac OS since IntelliJ idea 21.1 was released. If you need help you're welcome to contact me (contact details in previous post).
@Rudraraju Varma - apologies I didn't reply earlier. I've not got as far as I would like with this. I am very new to screen readers and can largely get away without using them (but not for long I think). I get frustrated and then temporarily give up.
I'm sorry you have RP, which is the same condition as me. It is horrible. The only positive is that there are some great strides being made on treatments and I am genuinely optimistic that in the next few years there options will start coming along. (Whether they can undo the damage or just stall it I'm not sure.)
I'm not sure what stage you are at - whether you are using VoiceOver generally, but just wanting to get going with intellij, or whether you are just trying to pick up VO at all. (I'm still nearer the latter than the former.)
From my limited experience using VO with IntelliJ (mainly PyCharm) I would say it's a bit of a mixed bag. It is loads better than it was last year and feels like it should be usable now, but there are also loads of niggly things that may or may not be my inexperience - like modals/errors not being announced automatically, focus not being quite right etc. But probably these are things you can get used to.
If you are using IntelliJ anyway, then I would get the latest version and just switch on VO each day (even for just an hour or so) just to get used to it. Learn the keyboard shortcuts for anything you use regularly. My typing was quite poor, so I spent some time with an online touch typing course, and that's been very helpful. (A keyboard with a numpad is also useful)
I would also encourage filing bug reports when you find things that don't work well. Even if they don't get fixed the more noise, the more likely things might improve. Don't worry about feeling stupid. Getting to grips with this sort of thing is hard, so always go easy on yourself.
One other thing I found useful was a post on AppleVis on how to setup voiceover for more advanced use (like coding). It was written by a Java dev who uses IntelliJ even though it's not really about IntelliJ. Have a look at https://www.applevis.com/forum/macos-mac-apps/tips-power-usersanyone-does-more-read-emailslight-web-browsing-be-more#comment-form
@Rudraraju Varma - forgot to mention one other thing I find useful. If you go to IntelliJ preferences, then Appearance and Behaviour and then Notifications, you can configure each popup notification to be read out aloud. You need to do each one individually and it's not always intuitive to know what's what. I ended up just sticking a load on. Now if I run unit tessts, I get the number of successes and failures read out to me which is really helpful. You can't do everything here it seems (e.g. running a query in Datagrip, if you get an error) but it's probably worth exploring.
I've been using VO with pycharm a little bit more the last couple of weeks, and I don't know whether this is an intellij thing or a VO thing, but the experience is pretty terrible.
"Busy, busy, busy. busy" is a regular occurrence
Often it'll go a little nuts trying to read a menu and just stuter the first syllable over and over again. In particular http requests seem to work very badly.
Just now it just totally broke. I can see the cursor is in the text editor, but I can't move it with the keyboard (only the mouse), and PyCharm seems convinced it's doing something with checkboxes that I can't see. Turning VO on and off doesn't work.
Plenty of times you're just not given any proper feedback about what's going on. If you have a commit warning, you are just told "Refresh", Run a database query - did it work? You won't know. Still can't figure out a good way to get focus into the results. Modal dialogs usually will just say something like "Cancel" when they appear, so it's hard to know what just happened if you weren't expecting it.
Focus often doesn't work as I'd expect. E.g. it looks like a textbox is selected but I then have to tab again to get into it. Or doing the shift+shift search everywhere means having to VO+arrow through all the tabs to get to the actual search box. (I'm used to shift+shift then type to get me somewhere fast, now it just seems slow)
Often I will get multiple VO voices blurting out at the same time. Sometimes almost in sync so it's like an echo, sometimes just different things I can't hear.
So I would say it doesn't crash much, and it's at least almost usable, it's constantly annoying and confusing.
I really hope Jetbrains are still on the start of the journey to make VO work properly and don't think it's job done. Really there are too many little issues to raise tickets for all of them.
Again it's the main thing I'm using VO for on my mac so it might be that some of these problems are commonplace.
@JohnC. I made the mistake of updating to the latest version (think it's 21.2) on my mac last week. It seems like the initial EAP build that was mentioned above and also 21.1 was much better than 21.2. Now I struggle just to navigate the file explorer without intelliJ hanging... Just like you I really hope they haven't abandoned the Mac OS accessibility effort as it seems like no bugs has been fixed since the initial EAP with voiceover support and it's getting to the point of becoming unusable again...