Accessibility and Usability: notes for authors

I think it’s one of those things - there certainly is, but until now no-one’s thought of using it that way. Sounds like a nice idea!

Here it is. inform7.com/extensions/Stephen%2 … index.html
It’s in the public library as well.

Here’s a test I did with text to speech turned on in Zoom on the Mac.

Accessibility Test.gblorb (602 KB)

[rant=Source Text][code]“Accessibility Test”

Include Footnotes by Stephen Granade.

When play begins:
say “If you are using text to speech, this game can note unusual words with a number. After that, type NOTE and a number to hear the spelling of that word. Type NOTES alone to be told whether notes are on or off.”;
say “Would you like to turn notes on now?”;
if the player consents:
now footnotes are on;
say “Word notation is now on. Type NOTES OFF, or NOTES ON, to toggle notes off and on.”;
now the command prompt is “[one of]Your command?[or]Your turn.[or]What now.[or]What next.[or]Go ahead.[in random order]”

The Library is a room. “Welcome to the library. If you need to know more about a numbered word, type NOTE and the number.”

A spell book is in library. The description is “You don’t understand quite what the words mean in the arcane language, but it appears to be a description how to cast a spell called frotz[note spell_frotz].”

A flurnace is here. “There is a flurnace[note thing_flurnace] propped against the wall.” The description is “It looks like every other flurnace you have ever seen.”

Volume 1 - Footnotes

Table of Footnotes (continued)
Name Note
spell_frotz “The word frotz is spelled, f, r, o, t, z.”
thing_flurnace “Flurnace is spelled, f, l. u, r. n, a, c, e. Like furnace, with an extra L.”[/code][/rant]

You could also do something like this:

[code]A thing can be oddly-spelled. A thing is usually not oddly-spelled.

spelling-mode is a truth state that varies. spelling-mode is initially false.

Rule for printing the name of an oddly-spelled thing (called the given object) when spelling-mode is true:
let strange-name be the printed name of the given object;
repeat with N running from 1 to the number of characters in strange-name:
say "[character number N in strange-name] ".

Toggling spelling is an action out of world.
Understand “spelling” as toggling spelling.

Carry out toggling spelling:
if spelling-mode is false:
now spelling-mode is true;
otherwise:
now spelling-mode is false;
say “Spelling mode is now [if spelling-mode is true]on[otherwise]off[end if].”.

When play begins, say “This game has a mode that spells out unusual words. To toggle this mode, type ‘spelling.’”

Lab is a room.

A gurphlub is here. The gurphlub is oddly-spelled.

A detember is here. The detember is oddly-spelled.

A sneaker is here.

Test me with “look / spelling / look”.[/code]

I like the footnote approach. It would be good when there aren’t too many unusual words. But, for example, if you’re going to list a bunch of spells, it would probably be better to print the spellings in the text itself, with the option of turning off spellings for individual words.

Neil

The turning-it-off option is something I hadn’t considered. Right now Scroll Thief always writes out the spell names letter by letter in accessibility mode; would a command like SHORTEN be useful? And the corresponding UNSHORTEN?

When I was listening to the text, I realized that the > symbol as a command prompt was really annoying. Is it preferable to change that to a consistent term like “Go ahead. or Your turn. or What next.” ?

One of the articles linked to in this thread (if not, it’s definitely in one of the other threads) said a general consensus among some to be "Your command… ". My Roodylib library for Hugo now reflects that in its accessibility mode.

Yeah, I wonder if some of this could be handled at the interpreter level for Inform games as well. Automatically replacing “>” with “your command,” running words through a spell-check and offering to spell words that weren’t in the dictionary, etc. (For games that don’t have these things built in.)

Or “prompt” or something. Yes, the interpreter should do this if there’s a way to mark up punctuation as having a special pronounciation for the text-to-speech API.

I suspect that’s impossible to get right. Really there needs to be a way for the user to spell out any word in the game output.

I’m not sure what you mean by “shorten” and “unshorten.” I just think there doesn’t seem to be a reason to spell it out when the player remembers the spelling, so turning it off for these words would be a useful option.

The “>” doesn’t bother me when I read line-by-line. Maybe it is more annoying when text is read automatically. I’m not sure it matters too much, though. I think most people who play a lot would just tune it out anyway. I don’t think any of the readers need to finish talking before a command can be typed (although I’m not sure of this), so the prompt won’t slow anyone down.

Neil

Ah, so to elaborate, right now Scroll Thief will say “F R O T Z” instead of frotz when accessibility is on. I’m considering adding a command “SHORTEN FROTZ” to make it say frotz from then on. It sounds like you would find that useful?

Here’s a modified version of my earlier example. This one lets you turn off individual words. No doubt there are things that could be improved though. I made a “spell all” command rather than a command to spell out individual words, because I wasn’t sure how players would specify which word to spell if they didn’t know the spelling.

[code]A thing can be oddly-spelled. A thing is usually not oddly-spelled.

A thing can be either spoken normally in spelling mode or spelled out in spelling mode. An oddly-spelled thing is usually spelled out in spelling mode.

spelling-mode is a truth state that varies. spelling-mode is initially false.

After printing the name of an oddly-spelled thing (called the current item) when spelling-mode is true and the current item is spelled out in spelling mode:
let strange-name be the printed name of the current item;
say " (spelled [run paragraph on]";
repeat with N running from 1 to the number of characters in strange-name:
say "[character number N in strange-name] ";
say “)”.

Toggling spelling is an action out of world.
Understand “spelling” as toggling spelling.

Carry out toggling spelling:
if spelling-mode is false:
now spelling-mode is true;
otherwise:
now spelling-mode is false;
say “Spelling mode is now [if spelling-mode is true]on[otherwise]off[end if].”.

When play begins, say “This game has a mode that spells out unusual words. To toggle this mode, type ‘spelling.’ Once in spelling mode, you can turn spelling off and on for individual words. For example, if the word is ‘zxyq,’ you can turn off spelling by typing ‘stop spelling zxyq.’ To turn spelling back on for all unusually-spelled words, type ‘spell all.’”.

Stopping spelling is an action applying to one thing.
Understand “stop spelling [thing]” as stopping spelling.

Check stopping spelling:
if the spelling-mode is false:
say “Spelling mode is not currently on. To turn it on, type ‘spelling.’” instead;
if (the noun is not oddly-spelled) or (the noun is spoken normally in spelling mode):
say “The word ‘[noun]’ is not being spelled out.” instead.

Carry out stopping spelling:
now the noun is spoken normally in spelling mode;
say “The word ‘[noun]’ will now be spoken as a complete word.”

Spelling all is an action out of world.
Understand “spell all” as spelling all.

Check spelling all:
if the spelling-mode is false:
say “Spelling mode is not currently on. To turn it on, type ‘spelling.’” instead.

Carry out spelling all:
repeat with item running through oddly-spelled things:
now item is spelled out in spelling mode.

Lab is a room.

A gurphlub is here. The gurphlub is oddly-spelled.

A detember is here. The detember is oddly-spelled.

A sneaker is here.

Test me with “spelling / look / stop spelling gurphlub / look / spell all / look / spelling”.[/code]

And as I was typing this I missed some other posts. Sorry for any redundancy.

Yes, I think the shortened form would be useful, especially if a lot of unusual words appear in the text. The example code looks good, too.

Neil

In speech mode, does there even need to be a command prompt? Since that is a visual idiom, I would guess having the voice-over stop speaking is enough. Especially since it’s been mentioned that one needn’t wait for the speech to stop, and in my experiments I found myself interrupting the narration a lot anyway.

This looks nice and I could see implementing it into a project. The only issue I see is if you write an initial description for objects. I guess the way around this is

A quordpleen is in Dank Dungeon. "A quordpleen[if spelling-mode is true and the current item is spelled out in spelling mode], spelled q u o r d p l e e n,[end if] rests against the wall.

You could also do:

"A [quordpleen] rests against the wall."

If I didn’t hear a prompt read out, I would think I needed to press a key or the spacebar. I would find it odd. Maybe newer players would prefer that, but I think having a prompt is still useful.

Neil

Thanks. If I thought people would use it I might clean it up and make a proper extension out of it. I don’t know how common it is for people to have lots and lots of hard-to-spell words in a game though.

Do you prefer a > then, or “Your command” or something else?

My thoughts were one of “your turn.” “what now.” or “what next.” I thought of rotating them randomly but that might be more annoying than consistency.