what are good qualities of a programming language for the blind?(self.Blind)
submitted by inlovewithGod
I'm designing a new programming language, and I would like to make it so that people with disabilities can use it. I'm not blind, but I imagine most programming languages would be difficult to read and write because they use a lot of symbols, or in the example of python use indentation for structure.
Anyway, I'm curious if anybody has ideas on what would be good to do, or things to avoid, to make a programming language more accessible for those who may be blind.
Thanks!
Stick8110 points4y ago
It kinda sounds like you're trying to reinvent the wheel here. While existing programming languages can present some issues, they are manageable. I use a refreshable Braille display, like many others, and it took a great deal of effort to learn the skills necessary to do so. In my opinion, my challenges are much the same as my sighted colleagues, such as parsing out verbose structures, and tracking down redundant coding. Someone learning Braille first has to learn Grade 1, then move on to Grade 2 (contracted), then learn Math coding. For some of us, we had to reteach ourselves a few years back, when Unified English Braille was implemented. I feel that after all the hurdle jumping I've had to do to get proficient in coding to this point, an additional system would be ice skating uphill. A lot of work, for little gain. If you plan on creating a new language, think about function over form, anything you would do to help yourself program easier, is most likely going to help other coders down the line. And as a general plea to all coders, please stop putting stylised images in your code, it's no fun trying to analyze code for two days, just to find out the part stumping me was someone's attempt to be cute and put breasts in their code.
inlovewithGod [OP]5 points4y ago
Thanks for the reply!
I want to clarify. I'm not designing a new programming language specifically for the blind. I'm designing a new programming language and would like to be mindful of potential blind programmers and how I can make my language more accessible in any way I can.
One example is I've heard python coding may be more difficult because python uses indentation for structure and screen readers ignore leading indentation. If that syntax makes it harder for blind programmers, I'd like to know that and probably not do that with my language. If that's just fine for blind programmers, that's also good to know.
Sounds like you're a good reference for these types of questions. Anything that I should keep in mind to not hinder and hopefully help blind programmers use my new programming language?
MakihikiMalahini-who1 points4y ago
Correct, indentations suck. Any other stuff E.G: do endif, { } are completely fine and are welcome!
multi-instrumental3 points4y ago
>then learn Math coding
Which variant do you primarily use? My refreshable Braille display sucks as well. Do you have any preferences there?
Stick813 points4y ago
Nemeth, with my display set to follow the system caret using the 7&8 dots. I'm using a Humanware Brailliant 32 with NVDA, I've tried others, mostly during rehab, and that's what works for me.
Marconius5 points4y ago
Screen Readers have a few ways of handling whitespace and repeated characters. I am fully blind and code in Python, Swift, and build sites by hand with HTML and CSS. I do it all with TextEdit or Xcode. VoiceOver has an option that will read out the number of repeated punctuation characters which quickly allows me to figure out indentation levels of my code. I build in my own comments so I can use the VO-F search feature to jump to specific areas in a long program, or use the Jump to Line feature in Xcode to navigate around. I do everything by listening to the code and having all punctuation announced so I don't miss any important syntax; I can go character by character, word by word, line by line very smoothly and have adapted to those languages fairly well. Thereisn't much you need to do as long as the language can be written and understood in a basic text editor and make your manpages accessible and don't skimp on accessibility in online training tutorials or videos. If the language can be run in a Terminal environment, all the better. Honestly, the worst thing about learning coding is dealing with indentation and how syntax is presented in training. The code element in HTML sometimes doesn't account for whitespace so the screen readers won't read that back making it hard to figure out the correct indentation while learning something new. I also found that I detest spaces since it's harder to jump through all of that character by character; tabs get announced properly by VoiceOver along with how many of them are together to establish the indentation, plus they are easier to navigate in large blocks of code.
CloudsOfMagellan1 points3y ago
How do you work with css?
Marconius2 points3y ago
I wasn't always blind, so I rely on my visual memory and context to give a rough estimate of how I want things to look, then show my work to my sighted partner or share it with someone who can see to have them critique it, and generally I tell them what I'm going for design-wise and their feedback allows me to go back in and tweak numbers until I get it right. It's aggravating, but no other way to do it.
CloudsOfMagellan1 points3y ago
I can generally understand what the layout should be but if I've misspelt a class name or browsers have different implementations I'm screwed and I couldn't imagine how to do anything more then a simple grid based page with no dialogs
inlovewithGod [OP]1 points4y ago
Thanks for the reply! That's a lot of good information and I'll definitely keep it in mind.
I'm curious, I've never used Xcode. I program using Vim, which has nice folding which helps me hide and large code blocks. Does Xcode allow jumping to say, the next function? So you could jump from function to function quickly?
You mentioned one of the worst things is how syntax is presented in training. Can you elaborate on that?
Thanks.
Marconius2 points4y ago
I believe Xcode has code-folding and advanced function jumping, but I haven't played around with any of that yet.
As for the training, lots of videos are done visually, naturally, so the instructors rely on the students being able to see their screens and what they are typing, typically without calling out syntax. Screen readers also won't catch whitespace in code snippets on the web if the indentation of the code snippet is done outside of the element where the actual code exists, resulting in the indentation being missed entirely when trying to figure out whitespace arrangement. Ideal training would come down to good example code files, clear and accessible syntax in the documentation, transcripts provided for training videos if any, along with instructors talking out exactly what they are typing when showing examples on a screen.
inlovewithGod [OP]1 points4y ago
Thanks! Lots of good suggestions. I'll remember this when I'm writing tutorials for my new language.
WoodenCartoon1 points4y ago
I was also going to bring up python. One other thing to think about that could be nice is certain characters that define words. For example: foo.bar(spam) When I move by word, it's annoying to move across that whole phrase. I'm not sure if that's part of it, but there have been some annoying times trying to navigate with the keyboard only
inlovewithGod [OP]1 points4y ago
Interesting.
I don't have carpal tunnel, and I hope I never do, but I really want to be nice to my hands when I type. I don't like having to use so many symbols in coding. At work we use a couple different languages: C, Python, Php, and even Tcl. And all the reaching to hold down shift to enter symbols, or use CamelCase or snake_case for names is just hard on the 'o body.
This is actually one thing I want my language to be good at, is to have as few symbols as possible so it's easier to type. I'm betting that would also make it easier to use with a screenreader too.
Thanks for the reply! And if you have any more suggestions I would love to hear them!
Our mission is to provide everyone with access to large- scale community websites for the good of humanity. Without ads, without tracking, without greed.