Skip to content

ForEveryone

Jim Nelson edited this page Feb 2, 2022 · 1 revision

IF is for everyone: Make menus accessible to screen reader users at startup

Problem

The TADS 3 menu system on native interpreters (both text-only and HTML TADS variants) are not accessible for players using screen readers. This is due to the way the Banner API works, and how they're usually displayed by interpreters.

Solution

Create an InitObject that asks the player if they're using a screen reader, and adjust the statusLine.statusDispMode to StatusModeText if so.

The reason to change the statusLine.statusDispMode variable is because the menu system displays menus in whichever mode the status line is displayed in.

screenReaderInit: InitObject
  execute()
  {
    "\bAre you using a screen reader to play this story? (Yes or no.)";
    if(yesOrNo())
    {
      statusLine.statusDispMode = StatusModeText;
    }
  }
;

You can use the exact same code for both adv3 and adv3Lite, so there's no need to change the code for the library you choose.

Author: BlindHunter95

Source

Clone this wiki locally