2020-12-28 15:51:52

Hey all,

So there's an open-source project written in C#, using the .Net Framework to which I'd like to contribute some code.

This will be my first time doing anything in C#, however I do have extensive programming experience in Swift so hopefully it won't be all that difficult for me to get up to speed with the new language, fingers crossed.

My main concern however is in regards to the accessibility of Visual Studio Community Edition.

I'd already tried this a couple months ago and was having issues navigating in the source editor, there was a problem where NVDA would not properly read the focused line and there was something odd about how NVDA was speaking the selected code.

My understanding currently is that the interface works great with Jaws, however I do not have or want a Jaws license as NVDA serves all my other needs perfectly.

I was completely unable to find any good info on NVDA support for VS Community Edition however, I think there's an add-on that was developed in like 2016 that appears to be incompatible with current versions of NVDA.

So my main question is, are any of you out there successfully using VS Community Edition with NVDA and if so, is there any advice you could share to help me get started?

Secondly, in case VS Community Edition turns out to not be a good option for me as an NVDA user, would I be able to accomplish my goals with Visual Studio Code just as well?

My understanding is that VS Code is way more basic and not as feature rich which I think shouldn't be a deal breaker for me, but what put me off was a comment that I saw on Stack Overflow claiming that VS Code can only compile .Net Core applications, but is incompatible with the .Net Framework that I'd need to use.

If anyone could kindly shed some light on this that would be absolutely fantastic, many thanks!


Thumbs up

2020-12-28 18:00:12

Go to NVDA settings (on 2020.2 I believe and above), click advanced, and check the box that says
"Enable selective registration for UI Automation events and property changes"
This should improve the accessibility greatly, but there's a reason so many of us swear off VS. There was a time that Microsoft was just like, "Accessibility? What accessibility?" While that's (mostly) fixed now, most of us don't want to wake up again and "ha ha, your tools no longer work because the people in charge changed." You said you know Swift, though, so maybe you're used to XCode being that way, big_smile
Best of luck, and HTH!

2020-12-28 18:48:15

Hey Turret,

Thanks a lot for that tip, I'll definitely give that a try!

Just curious, are there perhaps other editors that work well for writing C# code and are perhaps more NVDA friendly?

Suppose I should have said this in my first post, but I really couldn't care less if the tools I'll end up using for this are the official Microsoft ones or 3rd-party solutions that might work better with NVDA, I'm really just trying to figure out what would work best in my situation.

Sure, it would be sweet if I could have everything in one package (code editor, access to API docs, compiler / debugger, GIT support), but I'd also be perfectly fine with, say, compiling or pushing to GIT from the command line.

I know this will definitely result in a steeper learning curve but hey, if it means I'll end up with a more usable experience, I wouldn't mind at all.



Thumbs up

2020-12-28 18:50:37

Nope, it sucks with NVDA. You can get around most places, but all the things aren't read like you'd expect, and the lag makes it just unpleasant and unworkable to use.

Join me in eliminating BGT from the forum.
It's very easy, if you see a topic about BGT, simply don't reply to it.
If you're thinking about creating a topic about BGT, just don't.
Doing these things will cause all such topics to sink to oblivion.

Thumbs up

2020-12-28 21:48:28

I've heard of EdSharp working well for people, though haven't used it myself so can't really say.
That's the thing about native languages like C#, or Swift on Mac. It ties you to the tools given. Microsoft hardly documents the .NET CLI stuff, and Apple is even worse about it. And if the GUI breaks...

2020-12-28 22:26:41

I wouldn't say it is so awful. There is ann addon which fixes reading the current line before the current code suggestion. It is compatible with nvda >2019.3 and vs 2019.
The next NVDA version should also have some fixes. I think they are already integrated in the snapshots.
Yes, there is some lag after some time of using it,but restarting nvda fixes the issue for a while.

Thumbs up +1

2020-12-28 22:54:07 (edited by ertay 2020-12-28 22:55:32)

Looks like I'm the only one here that doesn't have any major issues with VS 2019. IntelliSense can be quite dodgy, sure, I know that they are working on it (at least that's what they've said), and the second problem is there's lag when your code runs into compile errors, but other than that It works fairly well for me. CTRL + Tab is your best friend to quickly jump through different windows, and I recommend disabling file previews so that your files do not automatically popup previews as you are going through them in Solution Explorer. Also, disabling line numbers is a must so that NVDA can report spaces or tab levels. I am not using NVDA addons for it.

You can also try it with Narrator. I believe that's  their primary screen reader that they test with during development.

Host of Sightless Fun, podcast about visual accessibility in modern Board Games.

Follow on Twitter

2020-12-29 00:21:01

I totally agree with you, @6 and 7.
maybe my computer is optimised for vs or something, I DK, but I don't often run in lag that can impact my coding severely, and even when I do, a restart of nvda can do wanders.
I am into mobile development for a while now, and have to set breakpoints and use the debugging features on a remote target, for example my android device that's plugged in the computer. With all that running, I get some lag after some intense use, but it's bearable enough to not be a big problem.
sure enough, ms gui tools aren't the most accessible in the world, but that's why the dotnet cli for core exists. Plus, it is pretty well documented, though I know you need to use dotnet framework, but just a friendly suggestion to switch to core as soon as you can.
Another alternative to visual studio is using vs code with c# and f# extenssions, but then you would certainly need to switch to core, the cli support is many orders of magnitude better than framework ever was anyway, so no big deal there.

Thumbs up

2020-12-29 00:48:24

It's not bad here, IDK why Cross is having that issue, but I still will not use it, as I said, they can, and have, just gone, "What the actual serious fuck is accessibility?" Granted they probably won't as there are blind guys working on Seeing AI / SoundScape, but still.

2020-12-29 12:31:41

well, they can certainly do that, but as long as the cli tools exist, I don't feel like warring to much over it. Like...it'll always be accessible, in a way or another, unless they kill the dotnet command, in which case one should have long since abandoned ship anyway. So yeah, untill they're giving a sighn such things are likely to happen, I'm not moving away from .net.

Thumbs up

2020-12-29 15:39:28

Hey all,

Thanks so much for the super useful tips and pointers, very greatly appreciated!

I will most definitely try applying all the suggested settings, like turning off previews and line numbers to see what happens, and give the add-on a try to see how much difference it makes.

It's most definitely a shame that there doesn't appear to be good CLI documentation for .Net Framework, as I'm sure that would make life much much easier for us.

The really cool thing about Swift is that the language, compiler and standard library are fully open-source and available on GitHub, so it's always possible to use a 3rd-party editor like TextMate to write code and then compile using the CLI.

Linux support has also come a really really long way, so you could install the Swift compiler on a distro such as Ubuntu, write your code in Emacs or any other editor, and then natively build and run your code - it's even possible to build full featured server side projects using frameworks such as Vapor which you could then either run locally, or deploy using Docker or any of the major cloud hosters.

Sorry for the super OT comment, just wanted to clarify this as I really do enjoy Swift quite a lot as well as the community-driven ecosystem that has developed around the language thanks to it actually being open and relatively intuitive to learn :-).


Thumbs up

2021-03-29 02:08:55

For the love of sanity, turn off previewing. It will make the Solution Explorer functional again.

https://codeinreview.com/104/how-to-dis … al-studio/

You can follow me on twitter @s_luttrell and an almost never used Facebook account at skluttrell.

Thumbs up

2021-03-30 10:48:01

Great thread, nice tips. i follow, keep it updated.

Thumbs up