VoiceOver users wanted to test hack of Infocom's Journey

By Petter, 21 October, 2024

Forum
macOS and Mac Apps

EDIT: This post has been updated with a new build which fixes some bugs that could prevent the game from running at all.

EDIT: Link updated to newer build again. EDIT 3: And again.

I’ve tried to make Infocom's Journey accessible in my interactive fiction interpreter Spatterlight (previous post here), and I think it is ready for testing.

Here is a link to a Spatterlight beta build. A custom blorb file is included. https://github.com/angstsmurf/spatterlight/releases/download/v1.2.6.3b/Spatterlight.zip

Any version of Journey found at the Obsessively Complete Infocom Catalog should work, except the first one, the Z5 prototype named journey-dev-r46-s880603.z5.

It is recommended to set the interpreter to IBM PC or Apple IIe on the Format settings tab, rather than Amiga or Macintosh. This is to prevent VoiceOver from reading every graphic character individually.

The original game mainly uses two lists for input: a Party list which contains actions taken by the entire group, and an Individual Commands list for actions by individual members. This is now approximated by two new macOS menus at the top of the screen: the ”Journey Party” menu and the ”Individual Commands” menu. These will only be present when VoiceOver is active and there are actions available corresponding to the menus.

For example, at the very start of the game, there is no command menu, so none of the two Journey-specific macOS menus will be available. A few keypresses later, at the start menu, there are still no individual commands, so while the ”Journey Party” menu shows up, the Individual Commands menu is still hidden.

As these menus are at the right end of the menu bar, they can be reached by pressing VO + M followed by the left arrow key.

"Individual Commands" is a menu of submenus: Every character that has available actions, also has a submenu of verbs.

Often these actions will lead to second-order submenus, for example to pick an object for the verb you selected. This is currently handled in Spatterlight by throwing up a modal dialog, which might contain a popup menu if there is more than one choice to select.

I made all this under the assumption that the standard macOS controls would be sufficiently accessible out-of-the-box, but they seem to have a few problems. It is possible that this all has to be re-done in a completely different way.

The main problem is that VoiceOver really wants to read the start of the text buffer ("Our journey started on a day bright and clear …") instead of the results of the latest action. What seems to be happening is that after selecting an action from a menu or a dialog, focus is returned to the game window, and this notifies VoiceOver that focus has moved to a new accessibility element, which has to be described. I haven't found a reliable way to prevent this.

Therefore, it is recommended to use the Speak Last Move shortcut (Option + Command + left arrow) to interrupt VoiceOver if it starts misbehaving. Sometimes it has to be pressed repeatedly to work.

EDIT: After some experimentation with the settings in the VoiceOver utility, it seems that setting Verbosity > Speech > Text Area to “Custom” and unchecking “Content” might help at least a little with this problem.

Another useful feature is the Command History Rotor (VO + U), which lists all previous moves in the game. Sometimes another rotor may show up by default. Then you will have to cycle through available rotors with the left and right arrow keys to get to the Command History Rotor.

Here is a YouTube video with audio that demonstrates playing the start of the game with VoiceOver. although I'm not sure how helpful it is.

https://youtu.be/9jauDyUu6Ro

You can't tell from the video which buttons are pressed, but you can hear what results (and problems) to expect. It may not be apparent, but at many places in the video I use the Speak Last Move shortcut, sometimes repeatedly, to force VoiceOver to start speaking the results of the latest action.

As an added bonus I created a blorb file where the placeholder image descriptions from the dev-r46 prototype are added to every image, so that when you navigate the VoiceOver cursor to the graphics window, the image description will be read. These descriptions are usually not helpful and may not always accurately describe the actual images, but I hoped some people might still enjoy them.

Options