matt

@matt@toot.cafe

Software developer, formerly at Microsoft, now leader of the AccessKit open-source project (https://accesskit.dev/) and cofounder of Pneuma Solutions (https://pneumasolutions.com/). My current favorite programming language is Rust, but I don't want to make that part of my identity.

Music lover. Karaoke singer. Science fiction fan. Visually impaired (legally blind). Secular humanist

This profile is from a federated server and may be incomplete. Browse more on the original instance.

FluidEscence, to random

Heya @HeavenGames, cool program you've got, flash files. Two things. The most major one, is that I caught your program using 2.5 GB of ram on my machine. Second, you have files for handling OPUS playback but it doesn't actually seem to work, it just opens them in my default player. Third, I can't seem to get reverb or anything like that to work as well. Finally, it would be cool to have, say, control shift and letters to switch to that drive letter if possible. That's something xplorer2 does and I like that. But very cool program. I'm a fan.

matt,

@FluidEscence @jscholes And why not? File managers can show images inline without launching a separate program.

matt,

@FluidEscence @HeavenGames Wow, what an interesting way to implement an application by and for blind people. It's written like an audio game, self-voicing with no GUI, but the self-voicing interface more or less emulates Windows with a screen reader; the settings dialog even has the same UI as a GUI dialog with the various standard control types and tabbing behavior. Of course, the illusion falls apart if you want to use screen reader commands like NVDA+Tab. Nice work though.

matt,

@FluidEscence @HeavenGames I see this is using NVGT. Can NVGT applications already use external C libraries?

matt,

@FluidEscence @HeavenGames So here's an idea: Keep the UI invisible so you don't have to bother with visuals, but instead of self-voicing it, expose it through the platform accessibility API using AccessKit (https://github.com/AccessKit/accesskit). We have a C API, including an example using SDL. The C API doesn't use any particularly advanced C features, so it probably wouldn't be hard to use from NVGT.

matt,

@FluidEscence @HeavenGames Oh, is the Flash Files pseudo-GUI using a built-in NVGT feature for building that kind of UI?

matt,

@TheQuinbox @FluidEscence @HeavenGames So I gather audio_form is itself written in AngelScript?

matt,

@TheQuinbox @FluidEscence @HeavenGames The C API is already there. We have pre-built libraries, both a DLL and a static library.

matt,

@FluidEscence @TheQuinbox @HeavenGames I was thinking I could probably even write a module to render a GUI from the AccessKit tree structure using one of the Rust GUI toolkits. Retrofitting a GUI onto something developed speech-first would be an amusing reversal.

forrestbrazeal, to random
@forrestbrazeal@hachyderm.io avatar

idk why people say funding OSS is difficult

matt,

@forrestbrazeal Can you please add a description (alt text) to this image?

matt, to random

Me: All general-purpose personal computers should be fully open and hackable. Don't dumb them down; give the users full power to do whatever they want.

Also me: Tech support would be easier if all user machines were as locked down as the iPad. Windows gives users too much rope to hang themselves.

The second thought occurs to me sometimes when handling a tech support case where a Windows user did something that, at least from my point of view as the developer, seems self-evidently stupid.

matt,

OK, I might as well share what the user did, as long as I don't share their name. They meant to copy an application shortcut (.lnk) file to the Startup folder, but they copied the executable instead. Then when the executable ran, it showed an error about a missing DLL, because most real-world Windows executables don't work when copied outside their installation directory. Maybe it's unreasonable to expect the user to know that though.

matt,

Now, this particular application registers itself to run on startup, via the standard registry key for that purpose, on installation. We still haven't figured out why that's not working for this user, which is the only reason they bothered to try copying the application to the Startup folder. Probably some obscure power-user Windows setting, or maybe third-party add-on, is to blame.

matt, to random

Random thought: future generations will consider Windows a retro-computing platform. Then I'll really feel old.

glyph, to random
@glyph@mastodon.social avatar

It suddenly occurs to me that tremendous amounts of programmer culture are just various, mostly-failed attempts at managing the work associated with keeping pace with a changing world. Specifically: SemVer, LTSes, “commercial support” funding models for OSS, Win32’s “Old New Thing”-style compatibility, SaaS interface versioning, and, arguably, the popularity of the x86/amd64 architectures themselves are all aspects of a fantasy world where you build something once and have it work forever.

matt,

@glyph The combination of Win32 and x86 actually does work, sometimes anyway. The Win32 build of one of my favorite speech synthesizers, Eloquence, hasn't been updated in 2002. (I got the SDK in 2009, and the timestamp on the binaries was still 2002.) But it still runs fine on all the versions of Windows that have come out since XP.

matt,

@glyph Of course, abandoned software has its problems; there's at least one community-maintained pronunciation dictionary to compensate for the lack of official updates. And it sucks that the two best speech synthesizers of that generation, what one might call the purely synthetic kind, are abandoned, even though many blind users are still strongly attached to that kind of speech synthesizer. Those being Eloquence and DECtalk.

matt,

@glyph Yeah, Eloquence does have an ARM64 port, but only for the Apple platforms (a development that made many blind Apple users very happy). There was an Android port of Eloquence, but for whatever reason that was never ported to ARM64, so it's now near useless, and will become useless as 64-bit-only Android devices become more common.

matt,

@glyph And you're right to point out that the Win32+x86 promise of being backward compatible forever is fragile. I mentioned DECtalk earlier. In the mid 2000s, the company I worked for back then managed to get the last good version of DECtalk for Windows (before it was abandoned, it got much worse). When Windows Vista came out, we discovered that this build of DECtalk crashed often in some audio playback function on Vista. Probably Vista exposed an existing concurrency bug in that old code.

matt,

@glyph To fix that DECtalk crashing bug on Vista, we paid a freelance programmer to write an emulation of the waveOut API on top of DirectSound. Since we had DECtalk as a static library, it was easy to add that emulation library to the linker arguments before the real winmm library. The things we did to keep the good old speech synthesizers on life support...

matt,

@jscholes Well DECtalk was the best we had before we paid up for an Eloquence license (I'm pretty sure there was a significant up-front cost in addition to royalties). As soon as we had Eloquence I never went back.

matt,

@glyph Another case of the Win32 backward compatibility promise failing badly: There was an audio game for blind people, Grizzly Gulch Western Extravaganza, that came out in 2000. When I played it several years later, on Windows 7 or maybe just XP SP2 (I don't remember which), the timing of the action minigames was totally wrong. I think it was in the direction of being way too slow. And that game was apparently written in C++, unlike so many other audio games that were VB6 crap.

matt,

@glyph I also heard that some audio games that used DirectSound 3D, including the classic Shades of Doom (good article about that one here: https://if50.substack.com/p/2005-shades-of-doom), breaking when Windows Vista came out, because Microsoft abandoned DirectSound 3D. I didn't experience that myself though.

glyph, to random
@glyph@mastodon.social avatar

I heard many folks at PyCon — including a few very prominent ones who shall remain nameless to protect the guilty! — claiming that “black text on a white background” is uniformly and obviously the superior accessibility choice for conference presentations, for various reasons. This is, at the very least, debatable, and I think it would not be too spicy of a take to say it is straightforwardly incorrect. Some evidence follows: 🧵

matt,

@glyph Here's my spicier take: Even for those of you who can see the screen at the front of the room (I wouldn't be able to unless I was right in front of it, blocking everyone else's view), one set of settings for colors, font size, etc. will never work for everyone. The whole idea of projecting a single display to everyone in the room is archaic. Let everyone view the presentation in their own way on their own device. Yeah, this isn't practical for people preparing presentations now.

matt,

@glyph Full disclosure: My company offers a product for making an accessible HTML version of a slide deck available in real time to people attending meetings on Zoom or Teams. But I'm not here to advertise that. And anyway, we haven't yet figured out a solution for generic screen sharing as opposed to pre-made slide decks (the presenter has to upload the deck in advance), and we also haven't figured out a solution for in-person presentations.

nolan, to random
@nolan@toot.cafe avatar

Learning Rust after using JavaScript almost exclusively for 10 years is a humbling experience. I feel stupid and unproductive in a way I haven't felt in years.

But it's good! Learning new things is good. Gaining empathy for newer programmers is good. I like the challenge.

matt,

@nolan I guess the point of having it give you an error message, rather than just doing it for you, is so you can check that adding "&mut", or whatever, is actually what you wanted.

matt, to random

Question: Has anyone run into any real accessibility challenges in a work or (more likely) educational environment because Linux GUI apps aren't accessible with ChromeVox on Chrome OS? Thinking about a potential future project that could build on my current Wayland accessibility work. Wondering if it's really worthwhile though.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • GTA5RPClips
  • thenastyranch
  • ethstaker
  • everett
  • Durango
  • rosin
  • InstantRegret
  • DreamBathrooms
  • magazineikmin
  • Youngstown
  • mdbf
  • slotface
  • tacticalgear
  • anitta
  • kavyap
  • tester
  • cubers
  • cisconetworking
  • ngwrru68w68
  • khanakhh
  • normalnudes
  • provamag3
  • Leos
  • modclub
  • osvaldo12
  • megavids
  • lostlight
  • All magazines