Hacker News new | past | comments | ask | show | jobs | submit login
How can you program if you're blind? (2013) (stackoverflow.com)
58 points by raoulj on July 5, 2017 | hide | past | favorite | 20 comments



I've seen blind CS students use a combination of braille displays and screen readers: https://en.wikipedia.org/wiki/Refreshable_braille_display


A lot of these solutions center on the entry part of programming.

I don't know what it is like to program blind, but I imagine the big challenge is on reading and stepping through code.

When I do that, I have multiple windows that step through the structure and then I pause the code and interrogate variables.

When someone cannot see, do they load up a greater part of the code into their memory? Instead of relying on the editor to pull up the definition of a function in a window, do they just read it once and keep that in their head?

For example, I am in a subroutine in a subroutine, and I notice that an array has an unexpected value. I look at the function that is assigning that value and I wonder what it does. That is 4 windows right there.


Saqib from Microsoft is blind and demoed using Visual Studio at Build this year

https://m.youtube.com/watch?v=iWXebEeGwn0


At 2:22 he has to press F5 to build.

Personally, I would like to say "Build", "Run", "Next Error", "insert line below", "rename function foo to bar", "Reformat file", "Reformat method", etc in my editor. Wouldn't we all benefit by having an editor that had some voice commands?


I hope a blind person will be able to answer you but I can't really imagine how voice command would be more efficient than a simple keyboard shortcut. Admittedly the F keys are not the easiest to access though, I prefer emacs-style chording.


Ok, imagine that you're sitting in front of a tablet without a keyboard. That's an easy use case.

Yes, one can be quite fast if they're sitting with their fingers resting on the keyboard. I wouldn't want to take that away.

However, I'm often sitting back reviewing what I wrote, and I'd certainly like the option of have my computer assist via voice without needing to reach for the keyboard.


Yes, that's a good use case. I've often thought it would be useful if I could do some light work (reading, maybe some form of more active work too), when I am not at my PC or laptop - though wouldn't want to do it all the time, just have the option and use it sometimes.


I'm not blind, but personally I would find voice commands to be quite useful, since I can speak much faster than I can type. Keyboard shortcuts are similarly efficient, but they are somewhat hard to memorize when you only infrequently use them.

Unfortunately, the state-of-the-art in speech recognition is not quite there yet, especially when you want to use arbitrary identifiers like strncmp that can't be found in any pronunciation dictionary.


>personally I would find voice commands to be quite useful, since I can speak much faster than I can type.

Interesting. Wouldn't speech recognition be marginally to somewhat slower in response, than response to keyboard commands, though? More so, considering that a lot of processing has to be done to recognize speech, not to mention the time to receive the audio input via the mic, do analog-to-digital conversion (assuming that is needed, not sure these days), etc.


What's a lot of processing? Speech recognition can be done on a phone. Are you sitting with your hands on your keyboard at all times while programming? Do you need to move the cursor to a variable, function, etc to refactor? You are assuming that we can only say commands that are bound to a key?

"Set breakpoint on line 20" -- You had to reach for the mouse in your world?


>What's a lot of processing? Speech recognition can be done on a phone.

AFAIK speech recognition is non-trivial processing (though not an expert on it at all). Just a few points: I've read somewhat recently that the reason why Google's speech recognition is good is because it does a lot of the processing on their servers, also because it has a huge volume of data to work with (from worldwide users). All I know is that there are various factors at play (even though I'm aware phones are very powerful nowadays). It was an exploratory question, not meant to suggest that it cannot be done or will necessarily be too slow. And I did say "marginally to somewhat", etc.

>Are you sitting with your hands on your keyboard at all times while programming?

Obviously not. As a programmer, I'm well aware that there is a lot of think time involved.

>Do you need to move the cursor to a variable, function, etc to refactor? You are assuming that we can only say commands that are bound to a key? "Set breakpoint on line 20" -- You had to reach for the mouse in your world?

Nope, no assumptions. It was an open-ended question.


I admit that I'm pretty mouse-adverse but I wouldn't have to use the mouse for any of that. Actually I mostly only use the mouse to browse the web.

But anyway, that's not really important, I agree that good "intelligent" speech recognition would be very useful for uncommon tasks. But building a project, searching and replacing are tasks that are so common that I can't imagine having to reach for the mouse to do them, much less pronounce them out loud.

And imagine the mess if you're coding in an open space and everybody chitchats with their computers...


If you can replace a long variable or function name more quickly than someone can say "rename aLongFunctionName to anotherLongFunctionName then build" then someone didn't implement the voice recognition properly.

Yeah, someone always mentions the noise coding in a group. Someone else usually brings up subvocal speech, or something else, but I'll leave that for you to imagine. We need a few more people to imagine what is possible rather than rehash why something can't be done.



I used to work in adaptive skiing, mostly with visually impaired kids and adults, and met a couple of blind develoeprs and people working on screen readers and other equipment.

They lived in California which helped with a lot of expensive Braille and other equipment, but mostly they achieved at a high academic and industry level thru sheer determination. Academics: degrees from MIT, Berkeley, other top programs. One critical skill was to crank up their browser readers to unbelievable speeds, I couldnt understand anything at that speed. I think most of them used the emacs-speak interface from Cornell. There weren't any tools to make schematics and similar dense graphic representations approachable, tho.


A blind person contacted me some time ago to check if I could give him training on Python. He was already using computers using some sort of open source software that helped with his disability, but it was rather inefficient.

After discussions, we concluded that (at least given the tech we knew about and that he could afford), it would not work out. Sad for such people.


There was a pretty good discussion here two years ago which included a screen reader example:

https://news.ycombinator.com/item?id=8965048


A man I worked with used a combination of a magnifier--he could see a foot-high letter, I gather--and a screen reader.


" I use windows xp as my operating system"... WTH!!

"Sep 29 '08" ohhh LOL


I use winxp too, today.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: