Skip to content
This repository has been archived by the owner on May 19, 2022. It is now read-only.

Screen reader support #79

Open
DanielOaks opened this issue Aug 31, 2014 · 10 comments
Open

Screen reader support #79

DanielOaks opened this issue Aug 31, 2014 · 10 comments
Assignees

Comments

@DanielOaks
Copy link
Contributor

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.

@DanielOaks DanielOaks self-assigned this Sep 2, 2014
@DanielOaks
Copy link
Contributor Author

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.

@DanielOaks
Copy link
Contributor Author

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.

@ghost
Copy link

ghost commented May 3, 2015

OMG. It seems we need a new interface for screenreaders.

@DanielOaks
Copy link
Contributor Author

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.

@ghost
Copy link

ghost commented May 5, 2015

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).

@DanielOaks
Copy link
Contributor Author

DanielOaks commented May 8, 2015 via email

@ghost
Copy link

ghost commented May 9, 2015

Here you go.
I've tested it on jaws, nvda, system access, supernova, zoomtext, window eyes and sapi (all lastest versions, except for jaws (v.15)). Sapi is working on XP 32 and 8.1 64.
No idea how to test braille... brltty doesn't seem to work properly on windows or just nvda isn't working with it properly.
I think, we can do nothing about their sdks and libs; if they allows us to distribute their stuff with our apps, then we're good to go. Another problem is to find those sdks, libs and docs.

@DanielOaks
Copy link
Contributor Author

DanielOaks commented May 14, 2015 via email

@ghost
Copy link

ghost commented May 14, 2015

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...

@ghost
Copy link

ghost commented May 15, 2016

Updated some things. Not sure on, should I pull the request or not. Take a look, let me know what you think.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant