Bring your karma
Join the waitlist today
HUMBLECAT.ORG

Blind and Visually Impaired Community

Full History - 2019 - 01 - 28 - ID#akmyw3
12
Are you a blind or visually impaired computer programmer? (self.Blind)
submitted by tshannon0
I'm a sighted computer programmer and I do some volunteering with a local charity for the visually impaired. I'm planning to run a short course to introduce programming to VI adults.

What development and accessibility tools do you use or would recommend to beginners?

I understand that VS Code works well with NVDA on Windows, but not very well on MacOS. XCode works well with VoiceOver but it's limited to working in Apple technologies like Swift.

I'm probably going to start with some very simple javascript. I'm thinking a web based editor like CodePen might be better. Most screenreader users will be familiar with navigation a web browser and web application.

​
codeofdusk 5 points 4y ago
I'm totally blind and a first year computer science student at $1, although I've self-taught and have been doing some programming (starting with simple scripting languages) since around age 8 or so. I like $1. Emacs can do so much, and the audio interface gives us an equivalent for things like syntax highlighting. Before Emacspeak, though, I used notepad++ on Windows with a command console (still my preferred environment for Windows development, unless/until I find something better).

I'd recommend starting with something like $1; my friend /u/graham87 (also totally blind) and I went through it a few years ago and we liked it a lot – although the turtle chapter didn't do that much for us (for obvious reasons).

Feel free to let me know if you have any other questions!
tshannon0 [OP] 1 points 4y ago
Emacspeak looks really powerful, I'm going to have a play around with it. Will be a good recommendation for people that want to take things further and get more advanced. Thanks for your help.
bright_side1977 4 points 4y ago
Three leading experts in the field are Jennison Ascencion, Matt King and Rob Dodson. You can look up their work online. Where are you located? If you’re in the SF Bay Area PM me for resources.
tshannon0 [OP] 2 points 4y ago
That’s great thanks. It’s actually surprisingly difficult to google around this subject, mostly find things about developing for accessibility tools rather than with them. I’m in the UK.
bright_side1977 1 points 4y ago
The term A11y is often used, so that may be good to use on google or as a hashtag on Twitter.
inboxzerohero 1 points 4y ago
Was fortunate to have lunch with Matt on several occasions. Incredible human being.
retrolental_morose 3 points 4y ago
I recently had a batch of VI teens who started on HTML, but were really struggling with The move to JS. We went backward a little and did some work with XSLT and XML datasets to get some basic concepts and that seemed to work pretty well.

As a blind coder I also prefer a text editor, although some IDE features are handy.
I have also played with BBC Micro:bit (I work at a school) and that's been fun. we're now moving on to the old MOO system, using telnet-style clients to connect to a "game machine" and build a world. Huge fun.
tshannon0 [OP] 2 points 4y ago
A lot of schools seem to be using Scratch to teach programming. I don't know what it's like with a screen reader, but it's probably fine for low vision users.

The MOO server sounds really interesting, what client software are you using, how well does it work with readers?
retrolental_morose 2 points 4y ago
We're using Mudrammer on iOS, and MUSHclient on Windows. ,I was looking for a decent/accessible HTML5 thing that would cover everything, but none of them seem to use ARIA at all.
[deleted] 1 points 4y ago
[deleted]
retrolental_morose 2 points 4y ago
Guaranteed no-no with a screen reader. Far too graphical.
MostlyBlindGamer 1 points 4y ago
I would not like Scratch one bit. What most sighted people don't realize is that magnifying the screen makes things easier to see, but it also reduces your field of view dramatically.

Text, on the other hand, can be set to a larger size with less of a penalty and you can even use word wrapping so you can see the whole line.
tshannon0 [OP] 2 points 4y ago
That's a really good point. I was thinking that with some visual impairments the large colour coded blocks in scratch could be a good way of getting an overview and navigating the code.
MostlyBlindGamer 1 points 4y ago
From a high level perspective, sure, but then you're scrolling from side to side to actually get anything done.

I second the suggestion of using Python. It's pretty accessible on the interpreter in a terminal emulator and it's easy enough to work with that you can use a simple text editor.

There's nothing more tedious than getting on somebody's computer and trying to find out where to change the font size for their IDE. That's a lot easier to do on text editors.
WhatWouldVaderDo 2 points 4y ago
For education, check out Quorum. It is a pretty neat language, and they have lots of educational resources targeted at VI/blind learners. https://quorumlanguage.com/learn.html. Even if you eventually move to a more mainstream language, Quorum is designed to help people learn programming fundimentals (not to say it isn't generally useful).
modulus 2 points 4y ago
Hi, I write code though I'm not a professional programmer.

My guess is that a web-based editor is going to be problematic. Web UI type things are often very iffy, respond inconsistently to shortcut keys, etc. Maybe I'm just old school but I use text editors for code rather than IDEs. Tend to find the latter unbearably unresponsive.

I don't want to give the impression I have the recipe for how to teach programming to blind people, but I might try with an REPL type language like python, ruby, etc. Python has the whitespace thing, but one gets used to it eventually.

Best of luck. I'd like to hear how it went.
tshannon0 [OP] 1 points 4y ago
Yes I've been thinking about starting with Python, I considered using Jupyter Notebook but seems it's not great for screen readers either.

Do you use command line tools with a screen reader? How do you find that?

I've just found (this tool called Pode)[https://pode.herokuapp.com/] built specifically for screen reader users to learn coding. It's a bit too basic though.
modulus 1 points 4y ago
Yes, I find the CLI quite usable. All the information is linearly presented, you issue a command and you get a response, it's all textual, etc. Generally CLI has few problems in accessibility terms. It's also how I learned to use computers at first though so I may be biased.

I do know some blind people who use both VS and Eclipse. Just not the way I would go about it, personally.
BlindGuyNW 1 points 4y ago
I do HTML and Javascript without any trouble, though I tend to use Emacspeak or other text editors. CodePen is a mess accessibility-wise, or was last time I looked.
brainotomy 1 points 4y ago
In Xcode set the font to presentation.

Mac has a really good zoom function; Ctrl-Mouse wheel. You may have to turn on zoom in accesibility panel in systems preferences.

Again on Mac, dark mode really helps me.

Why are you starting with Javascript?
tshannon0 [OP] 2 points 4y ago
It’s the most commonly used language, very easy to get up and running on any platform, familiarity with the C like syntax can be directly transferred to c/c++, java, c#, obj-c, swift, php and so on.

I think it’s as good as any place to start.
brainotomy 1 points 4y ago
My only issue is that javascript is very fiddly about syntax with lots of hard to distinguish characters and poor whitespace requirements.
tshannon0 [OP] 1 points 4y ago
That’s a great point. Also for screen readers it might be hard to follow. Python or basic would be closer to English.
honestduane 1 points 4y ago
So I have over 20 years experience as a programmer, but I'm without a job atm due to my blind eye.

​

Emacspeak may be an option. Open source software for the blind to use speech recognition and synthases using things like FLITE or Festival on a linux host is going to be the big deal because most hardware for the blind is expensive beyond the affordability of most people.

​

Languages that don't enjoy using white-space for things is going to be best; Python is unusable as a language when you cant see white-space, I have never seen a good way to code in it blind. Stick with Languages based on C like C, C++, Java, C#, etc. Teach them BASH.

​

Teach them the basics, help them automate their own lives.. but don't expect to get them jobs. The market is glutted with sighted, cheap noobs who don't know what market rate looks like and don't really care they are being set up for failure later in their career 2-5 years from now. I'm dealing with companies DAILY right now that if they even suspect I have a vision issue, actively refuse to hire or even cancel the interview request; its all set up so you cant prove it and its all set up to protect the company so there is no way around it, I'm powerless against it and your people will be as well, sadly.
tshannon0 [OP] 1 points 4y ago
A few people here have recommended Python but I've not really used it a lot. I'm pretty certain I'll start with a C like language.

I'm really sad to hear about your experiences looking for work, but not at all surprised. I've hired a lot of developers, although I've never had a VI candidate I could imagine what the conversations would be like once they weren't in the room.
hork_monkey 1 points 4y ago
I've worked in IT/Programming since before I developed vision problems. I've been using VSCode (embedded/microcontroller development) with the font cranked up and sometimes a magnifier.

It's taught me a new level of patience. Since I deal with C and C++ mostly, debugging usually involves a couple of breaks and coming back to find out that was a colon instead of a semicolon or something like that.
tshannon0 [OP] 2 points 4y ago
I've done a little of that too, and debugging embedded systems is a complete nightmare at the best of times!
hork_monkey 1 points 4y ago
Yep. I actually bought a cheap jewlers "helmet" that has 3 magnifying glasses and LED lights built right in. Best $20 investment I've ever made and makes prototyping and soldering SO much easier.

I enjoy the challenge though. I've always been a problem solver, and this is just the most complex problem I've ever had to work on. :)
tshannon0 [OP] 2 points 4y ago
It sounds like a real challenge!

I’m currently working on an electronics project for a VI friend, she’s planning a baby and asked if I could build a pram that would detect obstacles. Currently developing the haptics system and experimenting with some proximity sensors.
Marconius 1 points 4y ago
I tend to write code using TextEdit and running Python scripts in iTerm or Terminal. Those work just fine with VoiceOver, and I'll pop into Xcode to work on Python when I need to do major revisions or jump to a certain line of code when bug testing. I've also found Tabs to work a hell of a lot better than Spaces for the white space in Python since VoiceOver can announce the amount of a repeated bit of punctuation, making it easier to manage indents. I can't speak for Windows, but rather than doing a web interface, having students get used to a Terminal interface, writing and running code directly from directories on their machines, all would work to their advantage. Those skills come in handy when getting into git and practical application of learning how to code.

The application and use of code seems to be largely missing from a lot of curriculums. Sure, you can learn Swift, but how do you turn that into an app? I'm still having trouble finding the right information I need to get that far after having learned Swift and it's really frustrating. Python gets you up and running on building fun little bits of useful functions pretty quickly.
tshannon0 [OP] 2 points 4y ago
My plan was to keep it text based. Most introductory coding courses seem to start with HTML and CSS, which is of course very visual. I was planning on starting from imperative programming, and making some simple text based games, like guessing a random number.

I'd like to start with JavaScript, as it can be used almost anywhere and the C based syntax is transferable to many other languages. It would also be great to start with something browser based so people can carry on at home without installing any other software or requiring either mac or windows.

With JavaScript they could even build custom Amazon Alexa Skills.
Duriello 1 points 4y ago
I used to code as a visually impaired person with only 10% of vision since my lack of visual acuity didn't really affect the process, however I stopped after going blind since I have a very hard time understanding code dictated by a screen-reader and struggle a lot with Braille.

Xcode isn't limited to Swift, it also supports C, C++, and Objective-C very well, and is the recommended IDE for the Mac even though from an accessibility perspective I find it to be inferior to Visual Studio 2017 on Windows, especially with the latter's $1 extension. One aspect in which Xcode is superior to Visual Studio, however, is debugging, because it allows for direct interaction with the debugger's console so you only have to type commands whereas in Visual Studio it requires you to use an interface that's not fully accessible to keyboard users without the so-called "object navigation" of NVDA.
tshannon0 [OP] 1 points 4y ago
CodeTalk seems like a really good idea, I'd not come across that before. Also interesting to hear that XCode is better for debugging. Most VI people I know use iPhones over Android, so if people are interesting in app development I know I can at least point them to xcode.
This nonprofit website is run by volunteers.
Please contribute if you can. Thank you!
Our mission is to provide everyone with access to large-
scale community websites for the good of humanity.
Without ads, without tracking, without greed.
©2023 HumbleCat Inc   •   HumbleCat is a 501(c)3 nonprofit based in Michigan, USA.