如何让屏幕 reader 说出任意文本?
How can I tell a screen reader to speak arbitrary text?
我正在开发一款 swing 游戏,我想在按下某个键时显示一些信息,例如角色的生命值。有没有一种方法可以让屏幕 reader 在不移动焦点的情况下读取此信息,从而中断游戏?
提前谢谢你。
使用屏幕 reader 优于单独的 TTS
作为我自己的盲人,我可以有效地确认,让屏幕 reader 说话比使用单独的 TTS 引擎更好。
优势包括:
- 使用用户已配置的语音朗读文字
- 您一定不会遇到两个声音同时说话的烦人问题(屏幕 reader 和 TTS)
使用单独的 TTS 引擎时,使用的语音可能与用户设置有很大差异,尤其是可能会说错语言,太慢或太快。
让屏幕reader在网络上说话
在网络上,使屏幕 reader 说出一些文本是通过 ARIA live region
实现的
让屏幕reader在桌面或本机应用程序中说话
对于桌面或本机应用程序,基本上,存在与屏幕 reader 一样多的不同 API。根本没有共同的标准。
您必须检测使用的屏幕 reader(如果有),然后使用其特定的 API.
与其通信
幸运的是,有图书馆可以帮助您做到这一点:
- 我是其中之一的作者,UniversalSpeech(仅 windows 支持 7 屏幕 reader)
- 还有一个,tolk(仅windows支持6屏reader)
- 对于python 3,您还有无障碍输出2
请注意,desktop/native 应用程序的几个 UI 工具包也实现了与 ARIA 实时区域非常相似的功能。如果要说的文本也必须同时显示,您最好使用它而不是上面列出的库。所有相当新的屏幕 reader 都支持它。请注意,ARIA 实时区域和类似系统通常比直接调用 screen readers API 稍慢;这对游戏来说可能很重要。
我正在开发一款 swing 游戏,我想在按下某个键时显示一些信息,例如角色的生命值。有没有一种方法可以让屏幕 reader 在不移动焦点的情况下读取此信息,从而中断游戏? 提前谢谢你。
使用屏幕 reader 优于单独的 TTS
作为我自己的盲人,我可以有效地确认,让屏幕 reader 说话比使用单独的 TTS 引擎更好。 优势包括:
- 使用用户已配置的语音朗读文字
- 您一定不会遇到两个声音同时说话的烦人问题(屏幕 reader 和 TTS)
使用单独的 TTS 引擎时,使用的语音可能与用户设置有很大差异,尤其是可能会说错语言,太慢或太快。
让屏幕reader在网络上说话
在网络上,使屏幕 reader 说出一些文本是通过 ARIA live region
实现的让屏幕reader在桌面或本机应用程序中说话
对于桌面或本机应用程序,基本上,存在与屏幕 reader 一样多的不同 API。根本没有共同的标准。 您必须检测使用的屏幕 reader(如果有),然后使用其特定的 API.
与其通信幸运的是,有图书馆可以帮助您做到这一点:
- 我是其中之一的作者,UniversalSpeech(仅 windows 支持 7 屏幕 reader)
- 还有一个,tolk(仅windows支持6屏reader)
- 对于python 3,您还有无障碍输出2
请注意,desktop/native 应用程序的几个 UI 工具包也实现了与 ARIA 实时区域非常相似的功能。如果要说的文本也必须同时显示,您最好使用它而不是上面列出的库。所有相当新的屏幕 reader 都支持它。请注意,ARIA 实时区域和类似系统通常比直接调用 screen readers API 稍慢;这对游戏来说可能很重要。