-
Notifications
You must be signed in to change notification settings - Fork 28
Screen reader support #79
Comments
Got an updated source archive from Schwarzstorch that significantly improves the support. Merging it with my own sentence-processing code produces a very decent and clean text output, along with buttons and such actually being accessible! This uses an XML document to find the accessibility text, basing it off sprite names and such, which does work very well and allows people to add accessibility when the original script does not support it (and to add full accessibility support while not modifying the script at all). There are a few things to continue with, such as producing output for history and the save/load screens, but a decent amount of vocalisation is done thanks to @Schwarzstorch ! I'm currently going through and hooking it up to OS X's VoiceOver system. The main problem at this point is detecting whether or not a screen-reader is active, but there are a few hacks to let us detect that. Once I'm fairly happy with that, I'll go dev in some VMs to add Linux/Windows screen-reader support. |
Got another updated source archive from @Schwarzstorch , which is integrated into the project now (except for the actual Tolk library which makes it all workable on Windows). The problem with linking to the Tolk library is that that's an LGPLv3 project, and this is GPLv2-or-later project (with a dependency on the LGPLv2-only SMPEG library). License talk is really, /really/ boring but I don't want to change the license like that, since it would mess with SMPEG as well as cut the other *Nscripter projects from taking code from us (unless we say that it only becomes GPLv3 when we make an accessibility build on Windows, which is irritating and annoying). So... I'll keep having more of a look. It seems the other project linked on the Tolk page is also GPLv3. It might make more sense for us to bind directly to the SAPI library? Or if there is actually another unencumbered (or GPLv2-or-later encumbered) library, we could use that directly. edit: I should be mostly linked to the Windows SAPI now, not setup in the build system yet but from the tutorial it looks mostly correct. I'll experiment with this when I have time. |
OMG. It seems we need a new interface for screenreaders. |
Yeah, not much we can do unfortunately. I'll try to fire up my Windows VM and get the SAPI code working on there over the next few days, then see how Linux wants us to do it. |
You know, before I started using Tolk, I wrote (reinvented the wheel) an interface for NVDA and Jaws (that worked). I'm thinking to make something similar to Tolk (fortunately, all those screen readers are using pretty much the same algorithm). |
Fair enough. I've been thinking of something similar (though if I were
writing one, I'd go either MIT/BSD/public domain licensing, rather than
GPL). Been meaning to add this sorta simple functionality to a few
different projects, just always been stopped by the cross-platform stuff,
and licensing issues with existing libraries.
|
Here you go. |
Awesome, thanks!
I'll be having a look through and seeing how to integrate this nicely.
Thanks a bunch for the code, though.
Just curious, what license are you putting this code under? And is it
alright if I made a git repo for it, or do you want to create that yourself?
|
I don't really care about type of the license. Do what you think is better for you (git, licensing, whatever). I've managed to make brltty to work with nvda, but the output was like - here's a bunch of text and do whatever you want with it. It's not like we should throw text at people and hope for the best... |
Updated some things. Not sure on, should I pull the request or not. Take a look, let me know what you think. |
Hopefully we can add okay screen-reader support sometime down the line (for people who are visually impared, for instance). Schwarzstorch has seemed to do it in this thread, and if we can get his code or just do it ourselves, it would be nice to be able to add that feature.
This isn't a definite or a priority issue, but it's a nice-to-have, if we can include it without too much hassle.
edit:
Found Schwarzstorch's branch and his changes here. It's good, but I think I can take the same approach, clean it up a bit, and have something that's a little nicer for the screen readers.
Work going on in the screen-readers branch.
The text was updated successfully, but these errors were encountered: