The Tools of a Blind Programmer
parhamdoustdar.com
parhamdoustdar.com
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...
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.
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
- 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.
that's because there aren't as many blind people as seeing people.
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.
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.
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.
This occurred to me while I was struggling with linear regression and its use in machine learning.
I do a lot of refactoring, maybe even more than you do, simply because I can't understand functions that have two indentation levels (like two if statements inside each other), or functions that go above 15 lines. I'm saying that I may do it more than you because, unlike sighted people, we can't glance at 6 lines at once; we have to look at the code one line at a time. So, the smaller each section (whether it's an if statement, a loop, or a function, depending on the language itself), the better for me.
Are there any languages or language families that you find easier to use? (inb4 COBOL is the easiest)
Perhaps that would make it easier for us to develop software that works well for blind people?
http://ergoemacs.org/emacs/using_voice_to_code.html
More resources here:
https://github.com/melling/ErgonomicNotes/blob/master/progra...
I'm interested because LibreOffice has an accessibility layer which I've never explored but that is cross platform.
An IDE is pretty much useless to a blind developer if the screen reader cannot adequately relay the current context to the developer.
I think when I have a moment I might attempt this as an exercise...
Why? It's probably the power of habits. Using a keyboard-mouse combination to interact with the computer is how you've always worked. Using a screen reader with a large number of specialized keystrokes is how I've always worked.
For example:, StructJumper for code navigation: http://dl.acm.org/citation.cfm?id=2702589
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":
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.
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."""
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?
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.
You can also use some accessibility evaluation tools. I would suggest that you go here, and check the box that says "WCAG 2.0" to get some tools that check accessibility in general:
http://www.w3.org/WAI/ER/tools/
If you fix stuff that these evaluation software show you, I think your blog will be among the very well thought-out websites in terms of accessibility. WAI-ARIA is for times that your application does a lot with Javascript, such as updating a region of text, or when you start using non-semantic elements for stuff they are not meant for (for example using the i tag for an icon, or the span tag as a link, etc).
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?
Genuinely curious...
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.
But the thing is: I wouldn't have to. People without sight live in space too. What mental models of the universe anyone has inside their head may vary wildly, but at the end of the day a torus is still torus-shaped when the lights are out, and West is to your right when you turn North while upside down.
In any case, it's never a good idea to question someone with a different set of abilities than you have with a "is it really that hard?" Their experience far outweighs your naive intuition about what's easy and hard for them.
Wise words, certainly. I apologize if my tone came across as condescending. I asked out of genuine curiosity, as I figured that someone who did not rely on their eyes could have a different, but not worse, perhaps even better understanding of space and spatial relations than someone who does (accounting for individuals being unique, and all that).
But perhaps I'm being blinded by my own eyes. After reading the article wlesieutre linked to, I believe it might be the case.
One particular point that seems obvious after reading, but would not have occurred to me: If you ask a sighted person to imagine a nearby and distant object (say, a car), the distant object is imagined as smaller than the nearby one. But that distance / visual size relationship is a totally visual thing because you're imagining seeing the objects; a blind person's mental model of the object would be built from touch and is the same regardless of distance. They don't have the visual perspective cues. (If the object make sounds, I suppose it's imagined as quieter?)
To take that a bit further, I'd guess that blind people's metal models of geometry, whether it's a small object or navigating within a building, is purely orthographic in nature. They wouldn't have any use for our ideas of visual perspective, field of view, lines of sight, or any of that. Artists didn't work out how to replicate it properly until the renaissance, so it's not as though people have an innate conscious grasp of how it works; we just understand perspective as an innate part of our sight.
And on the other hand, the blind probably have a much more developed model of spatial acoustics: changes in reverberation as you pass an open doorway, move from a corridor into a larger space, etc., which our brains for the most part don't learn to build.