I’d say that’s mostly right. Most screen readers these days do support reading of emphasis and other text characteristics like foreground and background color, font name, size, style, etc. These are usually separate options to give more granular control, and they’re usually all off by default to cut down on noise. Even relatively low-key text can sound busy.
I’m happy to report that text characteristics are described in both HTML TADS on Windows and FrobTADS on Linux, although in my case I used the NVDA (Windows only) screen reader for both, since I don’t use desktop Linux and I’m only average with Espeakup. Glancing at the docs, though, it doesn’t look like it reads any of this. Someone who uses different software might want to check this on their setup.
It’s good advice for static writing and IF which doesn’t use emphasis at all, but I’m not sure how well it translates to a game which will have a keywords system or something of the like. The advantage of being able to point the player directly at important stuff is lost when they have to read carefully over everything, just to pick out something that the author didn’t think worth hiding in the text to begin with. That itself might become an accessibility problem (and not just for screen readers) if the game relies on the player knowing what’s been emphasized. I don’t know enough about writing TADS to suggest anything specific to that system, but if you don’t mind some general suggestions:
You could surround emphasized text with distinguishing punctuation marks. *
or /
are usually read out by default, and any user who’s spent any time IMing is probably familiar with this form of emphasis. I use it myself, even on platforms which support markdown. It may still be a little distracting if it happens a lot, but so long as the player is informed and has the option to turn it off, I don’t see the harm in offering it. A lot of text-to-speech (TTS) engines also pause briefly when reading parenthetical text (just like humans do), so that’s another option.
A final option might be to give the player a command which lists recently displayed keywords, although how it should decide what (and how much) to list might be hard to answer.
Overall, as a player, I’d prefer the *delimited* or (parenthetical) forms. It adds a little noise to the output, but it’s unambiguous, and you get the same benefits as a sighted player reading through and making note of highlighted text. I also wouldn’t mind too much if I had to turn on reporting styles/colors once and a while for particular games, but it’s not guaranteed that it’ll work on all systems, and others might find it too intrusive, as you mentioned.