Looking for VoiceOver testers for my text adventure interpreter

macOS and Mac Apps

I don't know if there are any text adventure fans hanging out here at present, but I've found old posts like this one: https://www.applevis.com/forum/macos-mac-apps/any-alternative-zoom-clie…

I'm looking for testers of the accessibility and VoiceOver functionality of my macOS text adventure interpreter Spatterlight. https://github.com/angstsmurf/spatterlight/releases

It is free and open source, and is used to play text-based, parser driven games like the old Infocom Zork and Hitchhiker's games. Many free ones can be downloaded here: https://ifdb.tads.org

I've been asking around for testers at the forum at https://intfiction.org , but have only found one so far, and I'd like more. The current testing is happening in this thread: https://intfiction.org/t/mac-voiceover-users-wanted-for-testing-again/4…



Submitted by Chris on Thursday, December 24, 2020

Do you have a compiled version of this app? The zip file I downloaded from the link you provided appears to contain just the source code.

Submitted by Chris on Thursday, December 24, 2020

Every time I try to run the app, I get a dialog that says "Spatterlight quit unexpectedly." I've downloaded the app again and it still does the same thing. I've even tried restarting my Mac, but no good. I'm running Big Sur 11.1 on a 2013 13-inch MacBook Air.

Submitted by Petter on Thursday, December 24, 2020

Now I have installed Big Sur and can reproduce your problem. I also found that the older version I linked to does work on Bug Sur, and after I run this old version once, the new one will suddenly work fine.

So there seems to be a problem when creating new preferences and database. This is definitely not good and will have to be fixed, but for now, you should be able to test it using this workaround.

Submitted by Chris on Thursday, December 24, 2020

This is amazing! Thank you for making an Interactive Fiction interpreter for the Mac that plays a bunch of formats and is nearly completely accessible. Here are my findings thus far.

I downloaded a copy of Adventure from https://ifarchive.org/if-archive/games/zcode/Advent.z5 and was extremely impressed with the performance. I could open the file directly from the Finder and VoiceOver immediately began reading the text. I didn't go very far in the game, but I was able to walk around and pick up items with very good VoiceOver feedback. I appreciate the feature to review the output if you interact with the edit field and use VO+up and down arrow to move by line. I love the custom rotors you've implemented, although the command history one seems to be a little buggy. When starting at the top of the list, VoiceOver reads the welcome text. Perhaps this rotor isn't necessary, since pressing up and down arrow already speaks previous commands. Here are the few tiny things I found.
VoiceOver speaks the first letter you type into the text box and the completed string when pressing enter. Is there any way to disable this behavior? I have key echo disabled. Maybe not, since it looks like standard VoiceOver behavior in edit fields, but I figured I'd ask. When I typed help, VoiceOver wouldn't read the menu items as I pressed n or p or used the up and down arrows. It just said something about being on menu item 1 of 1. I was able to navigate and press enter to have the text read, but VoiceOver doesn't tell me what option I'm selecting.

Other than those small gripes, this is wonderful! Thank you so much! I've wanted an accessible IF interpreter for Mac for a very very long time.

Finally, is it possible to add a feature to download games? Currently they have to be hunted down manually, and this might make it easier for players who aren't as experienced to get started. It also might not be a bad idea to bundle a few games such as Adventure and Andrew Plotkin's Dreamhold tutorial.

Submitted by Petter on Friday, December 25, 2020

Bugs are to be expected at this stage, as there are a lot of new VoiceOver-related features that are largely untested. Some of the things you mention will be easy to fix.

When you write that VoiceOver reads the welcome text in the command history rotor, I think that is working as intended. I want the rotor to be an alternative way to read the all of the on-screen text, from start to finish, which includes the text printed before the first command.

Turning off speaking individual letters in the VoiceOver settings seems to be working for me, but the finished command will currently always be spoken. I plan on adding more settings to Spatterlight, and that is one thing that I'd like to be able to turn off. This will have to be a separate setting in the Spatterlight preferences though, as there is no API in macOS to read the actual VoiceOver settings.

If you ever tried the Zoom interpreter, you may remember its very nice integration with the Interactive Fiction Database site (http://ifdb.tads.org), and I'd love to have something similar in Spatterlight. We'll see.

I hope to get back to you soon with a new version that addresses some of the stuff you noticed. Until then, feel free to report any new bugs or missing features you stumble upon.

Submitted by Petter on Friday, December 25, 2020

Here is another quick update: https://github.com/angstsmurf/spatterlight/releases/download/v0.6.7b/Sp…

It fixes the bug you mentioned in the Advent.z5 menu. It also fixes a crash that would occur when stepping through previous moves in the Bureaucracy form.

Re-reading my reply from yesterday, I wonder if I misunderstood. I'd like to know more in detail why the command history rotor seemed buggy to you.

Submitted by X2 on Friday, December 25, 2020

OMG! Thank you so so much! I have been looking for an accessible way to play text adventure games on the Mac. And let me tell you that this a dream come true.
I'm definitely going to play tons of games. I already downloaded a game, which is Adverbum. If you haven't played, I highly recommend it. Anyway, I tried it out and it works beautifully. Voiceover reads everything and picking things up/moving through the game works flawlessly.
However, I agree with one of the above comments that a few games like A dreamhold by Andrew Plotkin, should be included with the app. You know, for people who are beginners or want to get into text adventure but don't know where to start. As for bugs, I haven't ran into any yet. But if I do, I'll be sure to post them here.
So again, thank you so much. This might have to be the best Christmas gift this year. Now, time to go plunder lots of treasures and explore caves. :-)
Merry Christmas and Happy New Years!

Submitted by Chris on Friday, December 25, 2020

Thanks for fixing the help menus. A few things regarding that:
It's not really necessary to say on item 1 of 3, on item 2 of 3, etc. Perhaps this should be a setting that can be turned off, but it irritates me and slows down progress. I've also noticed that the menus don't always seem to wrap around when navigating continuously in one direction. For example, pressing n multiple times causes VoiceOver to read to the end of the menu and then repeat the last item. Pressing up and down arrow also doesn't seem to wrap and in some cases doesn't change the selection. Can you fix this for all games that use these types of menus?

The commands history rotor doesn't seem to work reliably. It starts by reading the banner introduction text followed by the > sign without telling me the initial command. Pressing the next command moves to my last command, not necessarily the one immediately after starting the game. If you intend this to be another way to review the screen, the rotor needs to step through all the commands in sequence and speak the results, including the banner text at the top followed by the first typed command and its output. Finally, can you make the rotor navigation loop back to the top or bottom if navigating in one direction? I.E I want to cycle from the last game command to the first by going down from the bottom, or from the first to the last by going up from the top.

Thanks once again for doing all this. This program is awesome and these are minor issues in the grand scheme of things.

Submitted by Daniil Gusev on Saturday, December 26, 2020

greetings. But are there analogues of this application and in general it is possible to adapt this application for iOs?

Submitted by Petter on Saturday, December 26, 2020

In reply to by Chris

Those are excellent comments. Unfortunately I can't really do anything about many of these things.

It definitely needs more user settings, but perhaps the first thing would be helped if the text is moved to the end, so that you can just interrupt it by navigating away? Such as "Instructions for playing. This is menu item 1 of 3"?

The menu accessibility code only looks at the text on the screen and tries to guess if it is a menu, and then tries to guess which line is selected. It does not control navigation or selection, that is all done by the game internally. Different games use different keyboard shortcuts for navigation, some games' menus wrap to the top when you get to the bottom and others don't. To change this would be a huge amount of work. The menu accessibility code will read the particular navigation instructions for this particular game if it finds any, usually after a short delay.

The same goes for the custom rotors. It is all Apple's code, and I can't really change how navigation works. All I can control is the contents.

I tried using the command history rotor in the Advent.z5 game you linked to above, and I'm afraid I didn't notice any bugs. It all seems to work as intended. Technically, it is a way to navigate a number of ranges in the text of the main text scroll window, the same ranges that the menu actions Repeat Last Move, Speak Previous and so on use, and together they cover all text in the window, except any text that you may have typed at the command prompt but not yet entered. I guess I could add another range for the last part. Would that be useful?

The banner text at the top is in a different window, not part of the scroll view. The Game Windows rotor is meant to make it easier to keep track of the different windows and any changes in them. Some games have a lot of windows, and I suppose it would be possible to mash the contents of all of them into the Command History rotor, but I think it would just be confusing.

Submitted by Petter on Saturday, December 26, 2020

In reply to by Daniil Gusev

It think Frotz for iOS is the closest equivalent:

It would probably be easier to write a new app from scratch than porting Spatterlight to iOS. I myself don't know much about iOS development, but the source code is available, so anyone who is up for a challenge could give it a try.

Submitted by Petter on Sunday, December 27, 2020


This update adds two VoiceOver-specific settings, available on the new VO preferences tab.

Speak commands: When this is switched off, Spatterlight will no longer speak entered commands during normal play. Also, keys and words entered in the Bureaucracy form will not be spoken. If the “While typing speak” setting in VoiceOver Utility is set to None, there will be no VoiceOver feedback at all while typing commands, except that the first character is still spoken for some reason. Entered commands will still be spoken in the Command history rotor.

Speak menu lines: The new default behaviour when navigating a menu is Text only: Only the actual text of the line will be spoken, not its index in the menu or the total number of lines. When the menu is first detected, these numbers will still be read once, along with the title of the menu and instructions for navigation. All of these except the title will also be read when the current line is repeated with the Repeat last move action. Menu detection can now also be switched off entirely.

It is recommended that the setting "Synchronize keyboard focus and VoiceOver cursor" is switched on in the VoiceOver Utility while using this. I also recommend that you do not rely on autosaves in Glulx games, as they might break with this update. Make sure that you have traditional save files before updating to this version.

Submitted by Petter on Friday, January 1, 2021


This release improves support for Z-code quote boxes, introduced in Trinity and seen in Curses and many other games. These will now be displayed (for one turn) as separate text views, detached from the status bar. They will be spoken by VoiceOver when shown and are added to the Game windows rotor.

Also adds VoiceOver support for the help menu in the original 1998 freeware release of Anchorhead.

Submitted by Petter on Monday, January 11, 2021


This update is not really focused on VoiceOver functionality, but it contains some major changes that will likely introduce new VoiceOver bugs as well.

The main new feature is autosave and autorestore for Z-code games. Previously this was only implemented for Glulx.

There are some minor VoiceOver-related improvements:

- Fixes a bug that made VoiceOver say “No last move to speak” when certain game windows were selected or opened.
- Underscore characters, as seen in 1893: A World’s Fair Mystery are trimmed from spoken text.
- Quote boxes can now be searched with the text search rotor. (VO + F)