8 ms·
The Tools of a Blind Programmer
- DrFunke 11y agoAs a blind programmer I am thrilled at the progression of Amazon's Echo. The accessibility functions are all too often overshadowed by issues of privacy.
- staticelf 11y agoCool, there is also a stackoverflow thread which is pretty interesting: http://stackoverflow.com/questions/118984/how-can-you-program-if-youre-blind http://stackoverflow.com/questions/118984/how-can-you-progra... What I think stinks is that companies seldom thinks of accessibility. In many cases, there are more people in need of special accessibility tools than support for lower web browsers, yet all focus is on the latter when it comes to web development. A good thing can be to follow the standard: https://www.w3.org/standards/webdesign/accessibility https://www.w3.org/standards/webdesign/accessibility
- sotojuan 11y agoI wonder what is stopping accessibility from being as popular as backwards compatibility... none of the resources I used when I started learning web development ever mentioned it (aside from alt text in the image tag). You really have to seek out information about it purposely.
- Fradow 11y agoThere are several things that stop accessibility from being popular, here are the few I think about : - developers generally don't need it, can't easily test it, and aren't even that aware of it - "accessibility" can mean a lot of things. Are we talking about blind persons, daltonism, low visibility, limited motor skills, or something else I don't even know about? Each one has their challenge, and it's difficult to address all of them on purpose - accessibility is often regarded as "niche" by stakeholders (unless one of them requires it or you really have a big scale), and thus not important. Unlike backward compatibility, it's not easy to have accurate numbers on how many of your users require it too. That is not to say accessibility is not important. Generally, the first steps to get it right is NOT to design anything specific for them, but instead to adhere to standards, semantic HTML (or whatever your platform use if you do a native app), have enough constrast, big enough fonts, and take user-settings into account (generally it's as easy as not overriding anything like zooming and scrolling). The good thing about accessibility is if your app/website is accessible, it also benefits all your other users, in some ways.
- voltagex_ 11y agoJust remember that WCAG isn't the be-all-and-end-all [1] [1]: https://www.youtube.com/watch?v=0ijIzUUXdTM https://www.youtube.com/watch?v=0ijIzUUXdTM
- diskcat 11y ago>What I think stinks is that companies seldom thinks of accessibility. that's because there aren't as many blind people as seeing people.
- treerock 11y agoThere aren't that many people using i.e. 9 (for example) but still, a lot of companies make effort to support it. Meanwhile there are huge numbers of people with poor eyesight or other disabilities. You'd think a business would be keen to get those customers.
- Zecc 11y agoIs it really that hard for a blind person to intuit geometry? I would have figured one does not require working eyes to understand space.
- chris_wot 11y agoI'm genuinely curious how you would think of three dimensional objects without ever being able to see them... I guess you would have to describe them. As a suggestion - and not an attack in any way because I'm not sure how I'd do it! - without reference to anything you can see with your eyes, how would you describe space?
- gchpaco 11y agoAs a counterpoint it's routine in topological mathematics to work with 8 or 12 or 11 dimensional objects.
- chris_wot 11y agoGood point! But is this done without any reference to 3 dimensional objects, or does it take the principle and not make any assumptions, or describe it in such a way that the concept is explained without any aspects related to sight? Genuinely curious...
- gchpaco 11y agoIt is ... difficult for me to describe just how dangerous it is to try to use 3 dimensional intuitions in a higher dimensional space. As the number of dimensions increases the amount of "space" there is for things to get weird get much more complicated; for example any knot that exists in 3 dimensions can be untied trivially in a 4 dimensional space. Suffice to say if you try to use your ordinary everyday life intuitions doing higher dimensional mathematics you will continuously embarrass yourself until you learn not to. Some folks develop the necessary adjustments and have higher dimensional intuitions; I do not and have to do the math anywhere higher than around 4.
- 11y ago
- chris_wot 11y agoI wonder if it might be worthwhile for sighted developers to set up a system that a blind person would use and then blindfold themselves, and start using the system... Perhaps that would make it easier for us to develop software that works well for blind people?
- melling 11y agoI imagine that if we tried to make programming by voice more practical, that would help solve part of the problem. A few developers have made it work but it requires a lot of setup. http://ergoemacs.org/emacs/using_voice_to_code.html http://ergoemacs.org/emacs/using_voice_to_code.html More resources here: https://github.com/melling/ErgonomicNotes/blob/master/programming_by_voice.org https://github.com/melling/ErgonomicNotes/blob/master/progra...
- chris_wot 11y agoBut what about making it work with existing tools? My u der standing is that when developing software there are a variety of things you must implement so that these tools work well. I'm interested because LibreOffice has an accessibility layer which I've never explored but that is cross platform.
- taddeimania 11y agoi think coding by voice is solving a different challenge than blind developers are facing. Blind developers have no issue with manipulating a keyboard. I feel the most immediate accessibility issue facing blind and low vision developers is quickly being made aware of context changes and making sure the element you expect to have selected is actually selected. An IDE is pretty much useless to a blind developer if the screen reader cannot adequately relay the current context to the developer.
- gchpaco 11y agoPart of the problem is that most accessibility software has a hell of a learning curve, that the blind have implicitly overcome already to use the thing at all. (e.g. emacspeak) It can be very daunting to try to use it as a sighted person with a blindfold over their eyes.
- lr4444lr 11y agoFascinating. We programmers live by our eyes, and I've had a few frightening flights of fancy about losing my sight, and what employment would be like in this field. I still wonder though how you'd go about reading other people's (bad) code, since there isn't any prior memory about what it was _supposed_ to do, and how you perform major refactors that just appear so "visual" to my way of thinking, e.g. hollowing out a function body into two smaller functions and adding a tail call.
- stevetrewick 11y ago>e.g. hollowing out a function body into two smaller functions and adding a tail call. Actually theres's a direct analogy there. The reason you do that is to make it easier to comprehend. It looks messy. To much info. Now imagine you have to listen to your screen reader speaking all of it. Same deal. To much, time to refactor to something more navigable.
- Nishioka 11y agoI'd like to believe, given that the largest part of the brain is devoted to visual processing, that it gets freed up for memory\creativity etc. Given the right kind of guidance and development people with "disabilities" could bring a very unique perspective and new ways of thinking to problems and algorithms. Deaf people for example think visually from birth as they have never heard sound. And we still don't even have a good way of representing sign language on paper or digitally.
- parham90 11y agoThis is really one of the points that always amazes me. We have all this potential, right here on earth. Why are we looking for aliens? Why aren't we spending more time in knowing how people with different senses missing understand a particular concept? This occurred to me while I was struggling with linear regression and its use in machine learning.
- x404 11y agoYes, I also have the fear of losing my sight when I'm getting older. I hope I could code even I'm 70 or 80 years old. It's not just for make living, also for dignity.
- azhenley 11y agoThere is a professor at University of Washington that researches tools for blind programmers. For example:, StructJumper for code navigation: http://dl.acm.org/citation.cfm?id=2702589 http://dl.acm.org/citation.cfm?id=2702589
- x404 11y agoDo you have the professor's homepage or name?
- jdmichal 11y agoNot OP, but I did find from the linked paper Richard Ladner, whose bio indicates a primary focus on accessibility: https://www.cs.washington.edu/people/faculty/ladner/ https://www.cs.washington.edu/people/faculty/ladner/ Lauren Milne and Catherine Baker are both graduate students of his, so I'm going to guess that he was the professor mentioned. He is also one of two professors at the "Taskar Center for Accessible Technology": https://tcat.cs.washington.edu/people https://tcat.cs.washington.edu/people
- x404 10y agoThanks
- e19293001 11y agoBlind people had exceptional memory because they've done intensive mental exercises and use their memory a lot that they had surpassed how a normal person thinks.
- taddeimania 11y agoI was incredibly lucky enough to recently do a live broadcasted interview where Parham (op) talked about his experience in tech, his country (Iran), and even showed us some of his tools to write and debug code. It was an incredible interview and can be viewed here: https://www.livecoding.tv/parham90/videos/z8MoB-how-do-blind-engineers-write-and-debug-code https://www.livecoding.tv/parham90/videos/z8MoB-how-do-blind... edit: you may have to fast forward about 17 minutes in to get past the intro buffer. Also part 2 is where all of the demo stuff is: https://www.livecoding.tv/parham90/videos/nD1Er-how-do-blind-engineers-write-and-debug-code-2 https://www.livecoding.tv/parham90/videos/nD1Er-how-do-blind...
- Nishioka 11y agoVery cool. Thanks for the links!
- agumonkey 11y agoThe idea of a blind person investigating is one strong meta metaphor.
- mwcampbell 11y agoAt least in the part of the demo I watched, I didn't hear his screen reader. But I know that it's difficult to make a screen reader's speech output audible over a VoIP program like Skype, without causing a nasty feedback loop. The last time I attempted it, several years ago, I had to use a USB audio device in addition to my computer's built-in audio output, with an analog audio cable between the two. By the way, what version of Windows do you use, Parham? I ask because it looks like you're using the Windows Classic theme, which isn't available in versions after Windows 7 as far as I know. I know that using this theme used to improve compatibility with screen readers like JAWS and Window-Eyes, but as far as I know, it doesn't matter with NVDA, though I suppose using the simpler theme would still reduce CPU and memory usage.
- parham90 11y agoYes, I'm using Windows 7. I use that theme because my screen reader is more responsive the less CPU and memory usage I have. So for example, if I open a heavyweight IDE, the fact that it's using so much CPU will make my screen reader lag.
- tetraodonpuffer 11y agohow would a blind programmer deal with something like python? it seems that having indentation be part of the syntax would make it difficult to figure out, unless the screen scraping software was made to understand same indentation = same block
- tyrylu 11y agoFrom my personal experience, it's useful if the editor has at least some basic support for this kind of blocks, e. g. enter key opens a line with same indent level etc. And editor scripting also helps, then you can write a script toreport the indent level on demand. Of course, many screen readers can report the number of spaces/tabs (e. g. the raw value), but you usually want only the level with respect to the current codebase and most likely only sometimes e. g. not on every line movement, you can infer the blocks sometimes from context and recheck only if needed/things go wrong.
- parham90 11y agoThis was a problem years ago. however, nowadays almost all screen readers have a setting to report the indentation of the current line. This was popularized when NVDA (a Windows screen reader) and Orca (a screen reader for Linux) were written, since they are both in Python.
- tetraodonpuffer 11y agothanks for chiming in, I was really wondering about it btw, if you read this, do you have any recommendations for ways we can make sure our sites are accessible? Say for my blog I have alt= tags for everything and tried to organize things meaningfully in terms of H tags, I would like to also add aria tags but I am not sure how I can check that they were done correctly, as even if I installed a screen reader it I don't have any experience with it so I am not sure if what I hear is correct or not. Do you have any suggestions?
- mwcampbell 11y ago(Not the OP, but I have experience in this area too.) You're on the right track. As a finishing touch, you should add role="main" to whichever element contains the main page content (in this case, the article or the most recent articles). That way, screen reader users can easily skip past all the navigation links and other auxiliary elements that are common to every page.
- kriro 11y agoGreat post as it made me realize how ignorant I am at times. The idea that it must be really hard to understand data visualization, graphs and some chunks of mathematics if you're blind has been in the back of my head but I never really thought about the real life implications. Thank you for the post and the linked "Autobiography of a Blind Programmer". I also noticed the "15 minute read" under the date. Haven't really seen that much but it must be pretty valuable if you're blind since you can't estimate the reading time from glancing at the scrollbar etc. [Even though I guess this could be automated as a feature in screen readers with a wordcount?] This quote from the end of the article is a fantastic general attitude towards life: """There are a few things I love about being blind. One of them is the need to carve out your own path most of the time."""
- nunobrito 11y agoGood article. Only when we first had a visually impaired end-user asking for accessibility is that we understood what was wrong. As result, the next generation of our tooling runs from the command line without a mouse. Solved two problems, 100% accessibility (no mouse involved nor graphs, just log files or console output) and automation (make things easier to deploy without user input). Accessibility doesn't need to be an after-thought. When planned ahead can actually make tooling simpler.