9 ms·
How a Blind Person Programs
- bobosha 12y agoThanks for sharing, learned something valuable today
- madethemcry 12y agoThat blog post is very interesting. I really enjoyed the reading and must admit that I should spend more time on accessibility. The speed of the screen reader Zersiax uses is unbelievable fast. I can't understand a single word: https://soundcloud.com/freecodecamp/zersiaxs-screen-reader https://soundcloud.com/freecodecamp/zersiaxs-screen-reader
- sergiosgc 12y agoWow! Just, wow! I had skipped hearing the screen reader on my first pass on the article. It is amazing how human audition can parse that speech rate. If that rate were the norm, I'd be classified as hearing impaired. I can't identify a single word.
- hueving 12y agoNot hearing impaired, just mentally disabled. :)
- cjfont 12y agoListening to that blew my mind to the point where I was convinced the audio wasn't being played through my speakers the way it was intended.
- zersiax 12y agoI hear that more often :) It was actually set at a reasonably fast clip in that bit of audio ...like you'd use for a novel. For speedreading I tend to go a bit faster
- Lrigikithumer 12y agoHoly shit, I admire that guy so much. Being able to program whilst lacking sight astounds me. I wonder how he got into it. Becoming blind is one of my biggest fears and I consider programming to be one of my favourite activities on the planet, I'm happy that if the worst were to ever happen to me, I wouldn't be completely screwed. However I gotta wonder how well he's able to hold all his code in his head just off hearing it, whenever I program I often go back and read and re-read parts I've already written, I imagine having to hear it over just glancing over it would slow the whole process down a lot. I know he mentioned that he's gotten very good at mentally conceptualising his code which no doubt takes a lot of training but damn, a really large codebase would throw me for a tizz.
- Rapzid 12y agoI imagine to some extent, due to the speed of his reader, he can audibly browse his code. This is just a guess.. My mind is actually getting all sorts of accessibility ideas for coders. If you could have hot keys to call out the function your in, call out all the methods in the current file(structure/class view etc). Jump to files. I have no idea what the current state of the art is, but I bet it could be streamlined a ton. LISP's might make an interesting language of choice to due to the simplicity of their syntax and the ease of navigation through forms. Hmmmm.
- kuschku 12y agoThere was another post about this months ago, and the blind poster said that while C is usable (thanks to brackets), python is completely unusable or unreadable to them.
- danielbarla 12y agoI'm pretty sure a screen reader could be configured to understand significant whitespace, even if it's not a trivial task.
- qznc 12y ago
- ruben94 12y agowow, respect.
- cturner 12y agoI'd like to know: what is the most comfortable posture for coding once you no longer have to look at a screen? I've wondered whether a syntax-sparse language like iolanguage might allow you to code entirely by voice and ear, with no need for keyboard. For those of us with vision, imagine having a lounge with a large screen on the wall. You can talk into your headset as you pace around, or lie on the couch.
- zersiax 12y agoTechnically I can already sort of do that in any language. Do keep in mind that all I need to interact with a computer is a keyboard and some way to hear audio ...so I can in fact lay back on the couch with a keyboard on my lap and code away. In fact ... I do that all the time ;) I can't check my work using braille that way though, which is kind of essential with very complex code
- murbard2 12y agoThanks for writing this article. I've often wondered if I could still program if I lost my eyesight; this is reassuring. When I consider at expressions with infix notations, I visually scan then from left to right and right to left. Visually matching parenthesis is also important. I get the impression that if one were to listen to an expression in one pass, reverse polish notation would be the most intelligible. What's your experience like here? Does it make a difference?
- zersiax 12y agoI am afraid I didn't understand most of the sentence. I am not familiar with the notation you are referring to, not the type of expression you mean :(
- murbard2 12y agoInfix notation is when the operators goes in the middle. For instance, the expression: x * (y-z) uses infix notation. When I look at it, I can see at a glance that x is multiplied by the difference between y and z. However, were I to listen to it, I wouldn't know when to expect the parenthesis to close. I would have to remember that I am within a parenthesis. Postfix notation, or reverse polish notation places operators after the operands. So that same expression would read " x y z - * ". The idea is that you push x on a stack, then y, then z. Then comes the minus sign, you pop the top two elements, y and z, and push their difference on the stack. Finally you pop the two elements, x and y-z, and replace them with their product. In reverse polish notation, you still need to remember something, the state of the stack, but there are no parenthesis. I get the impression it would easier to parse if listening to the expression, but I may be wrong. So which parses most easily for you? x * (y-z), or x y z - * ?
- lsiebert 12y agoYeah, I will definitely try to do more to implement screen reader accessibility in web apps I build.
- lovelearning 12y agoStarting today, every time I feel like ignoring accessibility in my applications because "no blind person is likely to use them", I'll remember this blog and punch myself in the face.
- ianlevesque 12y agoOr the eyes
- V-2 12y agoNice one! I can recommend this thread on StackOverflow as well: http://stackoverflow.com/questions/118984/how-can-you-program-if-youre-blind http://stackoverflow.com/questions/118984/how-can-you-progra...
- darkFunction 12y agoWow, the audio example... It's like a solid wall of pure data.
- elzr 12y agoYes! I guess I'm experiencing an awe at symbolic prowess comparable to that of only-functionally-literate people staring for the first time at the syntax-colored/indented walls of text used by programmers. I had to download the audio example and lower the playback speed to a third of what it was before it started making sense! It is a reading of an earlier draft of the first bit of the post, btw, so there are several divergences which make it even harder to try to match text to speech.
- mickeyp 12y agoA friend of mine, a programmer, lost his sight. He was an Emacs user and could more or less continue programming thanks to Emacspeak, a package for Emacs that alters the voice depending on the syntactic construct of the word it is reading. It goes without saying that without Emacs and Emacspeak he would have had an uphill struggle returning to his job.
- chinpokomon 12y agoA decade ago, I got to visit one of the accessibility labs at Microsoft. I'm not terribly surprised that Visual Studio works well as there are ocularly impaired developers at the company. I had the opportunity to speak with those who ran the lab and observe how someone used these screen readers first hand.
- 4ad 12y agoRelated: BSDTalk episode with a blind BSD user[1]. It's about many things, not how blind people deal with computers, but it offers some great insights nevertheless. She finds VAXen much easier to deal with than PCs, and CLIs much more accessible than GUI screen readers. http://bsdtalk.blogspot.co.at/2008/03/bsdtalk143-bsd-hobbiest-deborah-norling.html http://bsdtalk.blogspot.co.at/2008/03/bsdtalk143-bsd-hobbies...
- Kenji 12y agoWow! Those screen readers are fast (his example https://soundcloud.com/freecodecamp https://soundcloud.com/freecodecamp)! I barely understood a word. I didn't know that. It's a shame that so many programs don't follow the accessibility guidelines, but it's just too damn easy to forget about the disabled if you aren't. But this article was an eye-opener for me (no pun intended).
- smoyer 12y agoI'm installing a screen-reader today ... and I'm going to listen to everything I create on it (at a slower speed - at least to start). We have stringent accessibility guidelines, tools to help find accessibility problems and a person in charge of making sure we adhere to those principles, but wouldn't it be more real to close your eyes and experience your creation yourself?
- bphogan 12y agoThank you for doing this. And for saying this.
- trishume 12y agoIndeed, I used NVDA for a while when I was working on accessibility for a web app and after a week I could turn it up pretty fast, but nowhere near that fast. (I'm not blind)
- fiatjaf 12y agoSoundCloud is evil and started playing bad songs right after this audio stopped.
- simi_ 12y agoWhat a nice chap. I like and adhere to the opinion prevalent in this thread that we should pay more attention to Accessibility. I personally find I'm conditioned to ignore people with different needs than me when I design products, and this is an eye-opening example. apologies for the horrible pun
- k__ 12y agoI knew a blind programmer back in the days. We always joked he did our UI.
- Sanddancer 12y agoA housemate of mine works with a blind web dev. The only real problem she has with is making sure certain css divs appear correctly on the screen, which she overcomes by asking friends, etc if it looks correct.
- lohengramm 12y agoReally interesting, specially the audio. I can't understand a single word. In fact, im far from it!
- Throwaway1224 12y agoI was in an ACM programming competition in 2004(?) where one of the competitors was blind. It was hosted by LSU. I always wondered what happened to that dude.
- zersiax 12y agoWow ...so many questions ...I'm not sure where to begin answering all of these :) HN is throttling me, so please come find me on #zersiax on freenode to discuss this if you have more questions :) I hope this goes through ...
- Raphmedia 12y agoAs a web developper, I would LOVE if you could compile a list of things I should do to make your life easier. I have read the best practices. However, I would love to have a list that comes from you. What are some websites that are doing it well?
- zersiax 12y agoPlease come find me on IRC or twitter for this :) any list I could draw up will leave you with a lot of questions, and asking those would just get frustrating in a medium like this. If you rather use another form of communication, please let me know and I'll see what I can do
- js2 12y agoI turned on OS X's built-in screen reader, then set the rate to 100 (the fastest it goes). It's still not as fast NVDA. It's interesting that he's using Windows 8 and I'd have liked if he'd talked about that briefly. I'd always thought that Apple was way ahead of the other vendors on this accessibility, but perhaps with third-party software available on the desktop for screen reading that's not the case.
- zersiax 12y agoEven though the built-in screenreader mac OS X uses blows Narrator out of the water currently, it has a long way to go to compete with 3rd-party screenreaders on the Windows platform, especially when it comes to productivity and actually getting work done. The advantage of VoiceOver is that it is baked into the OS and therefore also the recovery media, making it far easier to reinstall the entire OS from scratch. Thiscan be done in Windows as well, but only recently were the tools created to actually allow this semi-reliably. On the mobile front, Apple does outperform the competition by a rather broad margin.
- neverartful 12y agoSeveral years back I worked with a team that had a blind developer. The team was transitioning to Java. The blind developer told me in a meeting that she was having trouble doing something in Eclipse. I told her that I would go with her to her desk to help diagnose the problem. Watching a blind person use Eclipse with a screen reader was simultaneously awe-inspiring (the screen reader part) and horrifying (the Eclipse part). Needless to say, Eclipse was not well suited for the blind.
- zersiax 12y agoPlease, elaborate on this. I tend to use Eclipse as my primary IDE and am wondering what the blind person had trouble with, what screenreader they were using and how long ago this happened.
- neverartful 12y agoThis occurred in 2009 and unfortunately I don't recall any of the details. I only remember that it was running on Windows. I was blown away watching her use a screen reader for doing all sorts of things. I know that some of the developers on the team had originally worked with COBOL on mainframe or AS400. I don't know how well (if at all) 3270 or 5250 terminal emulators work with screen readers, but I strongly suspect that COBOL source code was easier to manage than Java in Eclipse.
- blackRust 12y agoI imagine a purely text-based terminal set up running on a specially crafted host OS/VM that does the text-to-speech would be a fantastic solution. You can browse the web, email, twitter! I'm not sure how CLI browsers handle JS? If this existed would there any good reason to be using a GUI at all (for a Visually Impaired Person)?
- jareds 12y agoI think Emacspeak is close to what your talking about. http://emacspeak.sourceforge.net/ http://emacspeak.sourceforge.net/ The reason I don't use it is because I could never get it to work quite right so just continued using Windows. It's a lot easier to use Windows, Eclipse, Outlook, Office, etc even if it is somewhat less productive then Emacspeak would be. The amount of time I'd have to spend working around how to integrate with my co-workers Windows based setups if I used Linux with no GUI makes it a non-starter.
- evincarofautumn 12y agoThe only command-line screenreader-compatible browser I know of that also supports JavaScript is edbrowse, which is not so bad to use if you’re already familiar with ed.
- zersiax 12y agoMainly if you are working with others, this approach would fall on its face rather quickly. People actually do this, doing all their work using emacs modes and Emacspeak. It can be done, but in this day and age it is not the most elegant solution especially with web 2.0-based websites
- fiatjaf 12y agoThis audio is the most unintelligible block of sound I've ever heard, but it made my day much happier to know you can understand it and use it nicely. I will try to use the HTML5 accessibility tags and attributes whenever I can from now on (I currently don't even know what is there about accessibility to be implemented).
- jrochkind1 12y ago> I therefore have to keep looking for tutorials, programs and tools that are accessible, and cannot simply pick up any off-the-shelf IDE. Another advantage of the ruby community's general commitment to produce a language that can be written in any old text editor. I think Java long past that point, you really need an effective IDE with certain features that it knows about Java to be effective in Java. Making sure things are still doable with a plain text editor gives developers a lot more options (including for developing new editing environment improvements), instead of locking them in to certain IDEs. A lot more options for accessibility reasons or any reasons.
- nothrabannosir 12y agoHey guys a note from the author on Twitter: Florian @zersiax 2 hours ago mate, could you comment on there that I created a channel on freenode called #zersiax if peeps have questions? Florian @zersiax 2 hours ago seems I posted too many comments on HN , its blocking me from sending more :) and I do want to reply o all these https://twitter.com/zersiax/status/560810466789044224 https://twitter.com/zersiax/status/560810466789044224 https://twitter.com/zersiax/status/560810548263407617 https://twitter.com/zersiax/status/560810548263407617 --- There's something beautiful about a typo from a visually impaired person :)
- 20kleagues 12y agoAre there frameworks to automatically analyse html for accessibility and perhaps provide a certain rating based on set guidelines? I think that might be a very interesting project to work on if such a thing does not exist.
- steveax 12y agoThere are automated tools, but in my experience they mostly pick up the easy things (missing alt attributes, etc.) The harder bits are focus and notification in SPAs. Read the WCAG docs [1] and the and WAI ARIA docs [2] stick to them. Then test with a screenreader. [1] http://www.w3.org/TR/WCAG20/ http://www.w3.org/TR/WCAG20/ [2] http://www.w3.org/WAI/intro/aria.php http://www.w3.org/WAI/intro/aria.php
- yaddayadda 12y ago>Fortunately, some fellow campers at the Free Code Camp were sympathetic towards my plight and volunteered to transcribe all these slides for me. This offer left me 'flabbergasted', as our dear western neighbors across the sea would say. Many ions ago, I volunteered for an organization called "Recordings for the Blind and Dyslexic" (now known as Learning Ally - http://www.learningally.org/ http://www.learningally.org/). Groups of individuals (mostly retired professors and other students) would record textbooks for college students. It was all volunteer and donation based. It would typically take days to weeks from starting a book until the recording was ready. I loved almost all of it. The one thing I didn't like was that we would read a book in shifts and you wouldn't always be working on the same book from shift to shift, so you might read scene three of a play one shift, then the next day read chapter seven of a calculus 2 textbook. Regardless, it was always interesting and we always knew that there were students benefiting from our effort. As an extremely nearsighted child, one of my fears growing up was that I would grow to be so nearsighted I would be functionally blind, so it was a little personal for me. Since then, I've been in charge of 508 conformance on many different websights [1]. I have always appreciated the sensory-challenged sharing how they are, or are not, able to use websites. I never cease to be amazed at the human ability to adapt and overcome such challenges! [1] Freudian slip that I noticed but decided was worth sharing ;-)
- steverb 12y agoThank you so much for the link to learning ally. That is going to solve so many problems for my wife. We've been searching for audio versions of some of the text books they have listed there for months.
- steveax 12y agoAlso, Bookshare [1] has 300k+ accessible titles. [1] https://www.bookshare.org/ https://www.bookshare.org/
- r00nk 12y agoI actually had an idea for this. What if blind users could wear little braille terminals? Like, braile is constructed of a series of dots, so why not have like a bracer that has a array of dots that poke the skin?
- zersiax 12y agoit might work, but the nerves found in the fingertips are far more sensitive than anywhere else on the body. This might be trainable though, I don't know
- FreeFull 12y agoThe tongue is incredibly sensitive, I've seen some work on giving blind people the ability to have low-resolution vision by having an array of electrodes on the tongue (before the tongue, they used the back, but that's not anywhere near as sensitive) and a webcam.
- dugmartin 12y agoI helped rewrite Narrator, the Windows built in screen reader, for Vista. After we had a basic version working I tried turning off my monitor and using it to write code. I gave up quickly.
- waynecochran 12y agoA blind student took my programming tools course last spring and together we wrote an accessible sudoku app for the Mac: https://github.com/wcochran/accessiblesudoku https://github.com/wcochran/accessiblesudoku Apple usually has fantastic documentation, but we had to experiment a lot to figure out the accessibility API.
- queryly 12y agoThank you so much for your insightful post and prospective. I have a question on how you imagine/think. People with eye sigh often think with pictures. Even thinking about abstract things like programming. I often visualize how a data structure looks and how it interacts with other code. I have found it tremendous useful as I can replay/test such scenario in my head. Do you have similar experience when you think? Do you construct mental picture (such as circle, a binary tree) in your head? What is it like?
- zersiax 12y agothat question is both very easy and incredibly difficult to answer. Yes, I visualize code the way you guys do, but not with pictures. Let us take a 2-dimentional array as an example. I tend to visualize this as a table. A table, for me, is a construct with columns and rows. Naturally, I do not have a spacial picture of this, the closest I can get is a tactile representation of either a chess board or a scrabble board. In both cases, a single array index becomes a tile, which makes me able to visualize it. But just like dreams, I would not use a visual frame of reference here because that simply isn't an option, it is a tactile representation that I somehow translate into a mental ...'picture' for lack of a better word. If you think that is tough, think of how incredibly tough it is for me to visualize CSS ;)
- queryly 12y agoThank you for answering my question. I think I now get a sense of thinking using tactile representation. I can imagine it is incredible hard to work on things that don't have 1-to-1 mapping between visual and tactile. It is a fascinating topic. I hope to have a chance to understand how brain really works in my lifetime. Thank again!
- gcb0 12y ago> If left paren x equals five you have a bug there :) also, why not use different sounds for ( [ { etc? would a different beep for each instead of "left paren" make life easier?
- zersiax 12y agoIt might. You are putting your finger on a rather experimental way of browsing through code, something which Emacspeak currently does reliably as the only editor I am aware of. Rather than using sound fx, it uses difference in the TTSvoice to denote different syntax properties, kind of like audible syntax highlighting
- ckuttruff 12y agoReally curious about how a linux environment compares in terms of usability for the blind. zersiax, are you using windows primarily because of the toolchain you need for work / school, or did you find linux lacking in terms of its support for your needs?
- mattmurdog 12y agoReally cool. Thank you for sharing.
- krick 12y agoI never had a chance to talk to somebody who was blind all his life and I've always been curious about that. It seems pretty obvious, that blind person can be dreaming, because hearing or smell are senses as much as eyesight is. I cannot comprehend the opposite: does person, blind all his life actually understand what "seeing" means? Of course he knows from the communicating with the others, that he lacks some ability, which most people have, but does he "feel" it somehow? Especially it is interesting with well-read people: writers often spend quite a large portion of the book describing how something looks. So, literate blind person must be well aware of words like "color", "beauty" (addressing the look of something), "bright", "dark", "dull", "picture" and such. But if he never ever saw — do all these words mean anything to him? Does he have idea of what it is like "to see"?
- jareds 12y agoI have been almost totally blind all my life. I have some light perception and from talking to people the nearest I can come up with for colors is that black is when it is totally dark, gray is a normal room with lights turned on, and white is looking directly at the son. I associate colors with objects such as grass being green, brown being dirt, blue being the ocean etc but this isn't actually useful information.
- krick 12y agoThank you for the response. I don't know if having some light perception can be called "totally blind", because the sense of seeing isn't totally unfamiliar to you, probably it's more like "very-very bad eyesight", am I right? But still, as I understand you somewhat have a grasp of what color actually is, it isn't just "some word other people use", is it? But what of notion of visual beauty? Does it mean something to you, when somebody says that this picture, or woman, or sculpture is beautiful? Can you tell if sculpture is "beautiful" or not after touching it with your fingers? If so, would it be meaningful to discuss something like that with your seeing friends or you would be more likely addressing something completely different from what they do? And a couple more questions, if you don't mind. Are you completely functional in well-known environment? For example, how hard cooking in your own kitchen is for you? And how much of a problem it is if somebody was working in the kitchen before you and left some items, like knife, in the wrong places? How hard it is to you to move in completely unfamiliar environment? Like, say, can you travel to some distant new location completely on your own, without a dog or another human? How long would it take to being accustomed to the new environment, like when being guests at somebody's place? Could you take a walk in the forest or a big park on your own? Would you feel insecure being there for the first time? I'm sorry if I'm bothering you, it's just I really, really wanted to ask all these questions and more for quite a long time.
- SwellJoe 12y agoA friend of mine is a blind developer. He built his own screenreader for Android ( https://play.google.com/store/apps/details?id=info.spielproject.spiel https://play.google.com/store/apps/details?id=info.spielproj... ), because he was unhappy with the existing options. I haven't yet gotten over being amazed, but I always knew he was really bright, so I should just get over assuming not having sight would prevent him from being an effective developer. He has ambitions to do hardware hacking, but has been thwarted by difficulties with identifying parts (i.e. resistors are color-coded), among other things. I've been meaning to sit down with him sometime and work on something.
- bellacodes 12y agoThe absolute limit of comprehension for sighted people is 10 syllables per second. Blind people, however, can comprehend speech sped up to 25 syllables per second. This sample is playing at 16 syllables per second and it already sounds like COMPLETE gibberish to me: https://rdouglasfields.files.wordpress.com/2010/12/speech16-syllables-a-sec.wav https://rdouglasfields.files.wordpress.com/2010/12/speech16-... (http://www.scientificamerican.com/article/why-can-some-blind-people-process/ http://www.scientificamerican.com/article/why-can-some-blind...) Makes you wonder who the "impaired" ones are.
- fiatjaf 12y agoLog of the Q&A session at #zersiax channel: http://pastebin.com/FUQUnXVR http://pastebin.com/FUQUnXVR