控制台应用和屏幕阅读器

console apps and screen readers

提问人:Anton 提问时间:11/13/2023 更新时间:11/14/2023 访问量:42

问:

由于我发现难以控制的原因,我坚持使用不使用 os 控件进行渲染的 gui 库。提供应用的控制台版本是否是使必须求助于屏幕阅读器/盲文显示器的用户能够访问应用的好方法?

辅助功能 屏幕阅读器

评论


答:

1赞 QuentinC 11/14/2023 #1

这与“我的网站无法访问,我应该制作一个替代的纯文本版本”的问题基本相同。 答案是否定的,不要。通过尊重 WCAG 来调整您的网站并使其可访问要好得多,而不是制作两个不同的版本。

事实上,必须维护两个版本从来都不是很好,因为你迟早会忘记另一个版本。缺乏时间、预算、知识、动力,瞧,它不同步,差异越来越大,然后它肯定消失了。

与网站和原生 GUI 世界相提并论,确实有使用原生操作系统控件和/或具有体面的屏幕阅读器可访问性支持的 GUI 工具包。例如,对于 Windows,有 wxWidgets、QT、Java SWT 等。 它们并不完美,一切都不是完全可访问的,平台之间存在差异,但它们多年来得到了很好的认可和维护,因此,它们应该是您的首选,而不是试图制作一种“纯文本版本”。

传统 GUI 工具包的另一个时髦替代方案是使用嵌入式 Web 浏览器。我可以提到著名的Elektron和nw.js。 优点是,你用HTML、CSS和JavaScript制作你的应用程序,它几乎可以在任何地方工作。如果您遵循 WCAG,大多数内容都可以访问。缺点是,使用带有屏幕阅读器的 Web 应用程序不像使用本机应用程序那样流畅和自然,并且通常被认为更复杂、更不实用且更不容易访问。话虽如此,与使用糟糕的 GUI 工具包相比,您可能会使用糟糕的 HTML 来制作更易于访问的应用程序。换句话说,原生应用程序的可访问性可以在 0 到 100% 之间,而 Elektron/NW.js 应用程序的可访问性可以在 25% 到 75% 之间;你当然会避免完全的灾难,但也要避免完全的完美。


现在,为了回答有关控制台应用程序的实际问题,实际上,从屏幕阅读器辅助功能的角度来看,控制台应用程序不一定比 GUI 应用程序更好或更差。这取决于控制台应用的确切含义。

原则上,简单的控制台应用程序是完全可访问的,但前提是操作系统本身提供可访问的终端。这可能并非到处都是这样,即使据我所知,情况或多或少总是如此。

但是,简单的定义非常严格。我们可以认为控制台应用程序很简单,因为 tehre 只有简单的文本输出和简单的文本输入。换句话说,你输入一个命令,你就会得到结果。就这样。 没有颜色,没有光标跳跃或向后移动,没有特殊的装饰字符,没有 ASCII 艺术,没有尝试将它们与诅咒一样的库组合在一起来创建伪 GUI。

即使创建一个菜单,您可以通过按箭头键来选择选项,也会很快在控制台窗口中出现问题。 屏幕阅读器可能无法很好地跟随光标,检测变化,并轻松确定要再次阅读或不阅读的内容,而在您这边,您没有真正的方法帮助它找到它。

没有角色,没有 ARIA,没有过期控件和标签,实时区域,选择指示,什么都没有。控制台实际上只是一个单元格网格,其中每个单元格显示具有给定颜色的给定字符。 因此,只有当它简单、非常简单时,它才能很好地工作,并且查看屏幕阅读器的命令也只能非常简单:阅读字符、单词或行,仅此而已。

请注意,屏幕阅读器正在努力利用控制台应用中可能拥有的有限信息做到最好。 我是瞎子,所以我可以告诉你,毕竟,结果并没有那么糟糕。

最后,它或多或少是可用的,是的,但比具有良好可访问性支持的最先进的 GUI 应用程序更好?也许不是。这也很大程度上取决于个人喜好。我不会成为邪恶的拥护者。

总之,您创建控制台应用程序以使其更易于访问的投资非常大,但成功是相当不确定的。 您将更好地花时间了解具有良好可访问性支持的优秀 GUI 工具包。

评论

0赞 Anton 11/14/2023
我一生都在使用各种可访问的工具包,这是我第一次使用不可访问的工具包。不可访问的软件已经存在,所以我的选择是在实现可访问性服务器和实现替代前端之间。是否有任何关于控制台应用辅助功能的信誉良好的指南?可能是某种标准?
0赞 QuentinC 11/14/2023
我所知道的没有什么具体的,因为控制台应用程序在很大程度上早于所有 WCAG/WAI 等。一切都基本上是在感觉和/或试错测试循环中完成的。自 20+ 年以来,我们可以单独安装带有盲文显示器的多个 linux 发行版,因此它还不错,但并不比 GUI 应用程序好。如果无法访问的应用程序已经存在,我可以建议另一种可能性,使用 API 直接与屏幕阅读器对话。我是 Windows 的 UniversalSpeech 库的作者