Bring your karma
Join the waitlist today
HUMBLECAT.ORG

Blind and Visually Impaired Community

Full History - 2020 - 01 - 26 - ID#euhr0q
7
NVDA help - writing for a blind student (self.Blind)
submitted by Jak1977
Hi,

I'm trying to write a coding course for a blind student, and need to write explanations as well as code samples in the same document. It's annoying for NVDA to read out every comma, full stop, and other punctuation for the explanations, but essential that it reads those out for the code samples. There are also times that NVDA should read out a word in a particular way (mkdir as a command, rather than saying "emkayder" ... it needs to be m-k-d-i-r).

I know it is possible for the user to change the settings, such as reading out all punctuation, or having particular words said a certain way. But is it possible for the author to 'force' NVDA to change how it reads out certain words or sections of a document? Like changing how a code block is read out without affecting the rest of the document?

Or, do you have any advice on how else I could approach this problem for my student?
BlindGuyNW 2 points 3y ago
I'm a fan of the braille display idea as well, if you can swing it. It's understandable why code and explanations might benefit from being in the same document. Might I suggest a very old-school technique for differentiating them?

You can do something like this…

+++ Begin Code XX, possibly with some kind of reference number

/* Code here */

++ End Code

The key is to give him a way to tell where he needs to move into thinking in code or pay special attention to punctuation, etc. It's not ideal, but at the moment no screen readers really support the <code> element or equivalents. Of course, as he gets used to the way things work this might become less helpful.

Hope you can get it sorted, coding is fun.
bscross32 2 points 3y ago
You can go in and change what symbols fire off at what punctuation levels, and rename them, like {} for me become lace and race () are len and ren, <> are langle and rangle. It might sound stupid to a sighted person, but it saves time.

&#x200B;

You can also make config profiles for whatever app that will be using code. They'll want to have indent reporting switched to tones I'd imagine.

&#x200B;

Neither of these are quite what you asked for, but I think it's the closest it's possible to get right now.
Jak1977 [OP] 2 points 3y ago
Thanks, I'll definitely suggest your shortcuts to my student! They don't sound stupid at all to me, because I've been playing around with NVDA trying to write and debug code with my monitor off. I'm making sure I understand how he will experience the tasks that I'm setting.
The problem is that the code is in the same documents as the explanations, so while I can adjust the punctuation levels, it will be too much for the text, or not enough for the code. I need to be able to have different punctuation levels for the different parts of a document.
bscross32 1 points 3y ago
Yeah I hear ya, there is no elegant solution that I know of (yet).
codeofdusk 2 points 3y ago
$1 will allow for these sorts of things (For example, you could do a config profile switch for code blocks to have different settings for source code). Will definitely be cool to see if someone does this with it, as it’d be unlike anything that exists at the moment.
Jak1977 [OP] 1 points 3y ago
Pretty much this! I think my only option is to use the trigger system that already exists, and to place the code segments in a separate file that opens in a different program. This way when the code opens in the other program, the trigger will change the punctuation level. For lots of reasons, this is not an ideal solution.
lhamil64 2 points 3y ago
Something to think about while doing this, unless the student isn't planning on a career in programming (and just needs the class credit), they need to be able to adapt these solutions to the real world. For example, while splitting code into another file may help navigate, that may be hard to do when trying to read a real code base.

My opinion would be to just make the code the same as you would for a sighted person, and then work with the student to tweak the screen reader so it's usable/tolerable. And make sure the student understands how you changed the settings, so they can do that themselves in the future.

The exception is probably for comments, I'd probably avoid making like ASCII diagrams and stuff that is very visual.
Jak1977 [OP] 1 points 3y ago
Thanks for the input. Problem is the students cognitive load is already huge. Learning 3 versions of Braille, adapting to screen readers, etc. He may want to go into programming as a career, even he has no idea yet. But I need to make this more accessible than I would for other students, as his barrier to entry is already so much higher. As he adapts to these problems, sure, give him the same resources as others, but right now, I fear that will force him out of the program and remove a future opportunity from him.
lhamil64 1 points 3y ago
Hmm. I see your point. Have you considered different programming languages that are less symbol-heavy (maybe something like Lua)?
codeofdusk 2 points 3y ago
Honestly though, most of us just use punctuation all when programming. Yes, you’ll get  punctuation in text, but you just get used to it after a while.
Jak1977 [OP] 1 points 3y ago
On a related note, in my code samples, I have the option of adding a comment to the end of each line to explain the purpose, or I can add it after the code block. Adding it to each line would add a lot of verbosity, but adding it at the end when he can't refer back to what he's written at the same time may be difficult too. The third option I can see is to leave the code clear and simple, and include snippets from that code in the explanation after the code block. Which do you think would be most useful for a young student?
Jak1977 [OP] 1 points 3y ago
Thanks for the info! It is possible I'm trying to solve problems that may not exist. If getting used to it isn't unrealistic, that may be the best option.
retrolental_morose 2 points 3y ago
agreed. also, forcing NVDA to "say" code the way you want it will not serve your student well in the long run. We learn to parse these things just as you did visually. having code in a separate file may help, but then you'd need to insure the student keeps their place in 2 documents at once etc.
Jak1977 [OP] 1 points 3y ago
You’ve sold me on it! I’ve begun discussions with his assistants about finding out how this device connects as a Braille screen. Problem is, I don’t have one, and can’t get hold of his, so I’m totally in the dark (pardon the poor choice of words, it’s late). I don’t know what needs to be done to connect his Polaris as a display, nor how it will function. But this is the direction I’m moving in.
bradley22 1 points 3y ago
We just get used to punctuationbeing read out.

What does your student think of the way you write?

You can read each character using the left and right arrows.
Jak1977 [OP] 1 points 3y ago
No idea about what he thinks yet, I've met him, but not taught him yet!
bradley22 1 points 3y ago
I’d recommending asking him if he can handle a text document and if not, going from there.
Jak1977 [OP] 1 points 3y ago
Yeah it makes sense. Sadly, the need to get stuff written in advance makes that difficult.
bradley22 1 points 3y ago
I understand.
CloudyBeep 1 points 3y ago
Can the student use a refreshable braille display? This will make it easier.
Jak1977 [OP] 1 points 3y ago
He's got a BrailleSense Polaris, but that's all. We do have a braille embosser, but its a computing class... seems to be missing the point.
CloudyBeep 2 points 3y ago
Use the BrailleSense with NVDA. I personally find it much easier to read computer code in braille than having a screen reader read it—you pick up on errors like missing punctuation much more quickly.
Jak1977 [OP] 1 points 3y ago
Thanks for the input. I gather the braillesense can be used as a PC braille display, though we haven't managed to do that with it yet. For conversational purposes with my student, would you mind giving me some background on your relationship with coding? Are you a professional programmer? etc etc
CloudyBeep 2 points 3y ago
Connecting the BrailleSense to the PC to be used with NVDA as a braille display is extremely straightforward, and I think that, depending on the student's feelings about braille, they might want to use it for more than just coding.

I have only recently started learning Python. I am learning from a book available from an online library of e-books for people with print disabilities (www.bookshare.org). I find a braille display useful in picking up the kind of errors I inadvertently make frequently like missing colons or quotation marks. I also find that seeing indentation levels is much easier with a braille display than when using a screen reader.

I strongly encourage you to at least try it.
This nonprofit website is run by volunteers.
Please contribute if you can. Thank you!
Our mission is to provide everyone with access to large-
scale community websites for the good of humanity.
Without ads, without tracking, without greed.
©2023 HumbleCat Inc   •   HumbleCat is a 501(c)3 nonprofit based in Michigan, USA.