如何确保pythonqt应用程序在所有操作系统上都是屏幕可读的

2024-06-07 04:32:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个包含Python和Qt的文本,供盲人和视力受损者使用。 文本编辑器应该适合屏幕阅读器。 我用屏幕阅读器NVDA(Windows)和 奥卡(Ubuntu)

屏幕阅读器的文本实际上应该保存在“AccessibleDescription”属性中。NVDA屏幕读取器不读取“AccessibleDescription”属性。仅AccessibleName属性。Orca屏幕读取器读取“AccessibleDescription”属性

问题: 如何使我的应用程序在所有操作系统上都具有屏幕可读性


Tags: 文本属性屏幕ubuntuwindows读取器qt阅读器
1条回答
网友
1楼 · 发布于 2024-06-07 04:32:49

简短回答

不幸的是,这里可能没有神奇的解决办法。 唯一合理的答案就是尽可能多地尝试和测试操作系统、屏幕阅读器、GUI工具包和组件的不同组合。这是发现哪些适合您的特定范围,哪些不适合您的唯一方法。 操作系统、屏幕阅读器和GUI工具包之间根本没有统一性,可能没有任何组合在所有情况下都适用

更长的答案

这不是给出这个答案的保证,但事实上,如果你想确保你的应用程序是100%的屏幕阅读器可访问的,你唯一的方法就是基本上停止使用GUI工具包,只使用操作系统提供的本地组件,这些组件的可访问性有很好的记录;因此,当然,开发尽可能多的不同的应用程序,你打算支持的操作系统。 当您使用GUI工具包时,您正在添加一个层,并且在这个过程中可能会失去一些可访问性(通常会更多)

本机操作系统组件提供的功能与工具包中建议的功能之间的差距通常通过仿真来弥补,并且一些仿真无法访问,或者由于各种原因(或多或少可以原谅)无法访问。 这就是为什么有些组件是可访问的,而有些组件是不可访问的;为什么一个给定的组件可以在一个操作系统下访问,但在另一个操作系统下根本无法访问;以及为什么在工具包的版本N中可以访问组件,但在版本N+1中不能访问相同的组件。 简而言之,您已经了解,可访问性是极其脆弱的

遗憾的是,GUI工具包很少能很好地记录它们所支持的不同操作系统下组件的可访问性。 真是太遗憾了。必须解决这个问题。 此外,可访问性通常表现为专家复杂的特性。不应该这样。对于应用程序开发人员来说,制作可访问的应用程序应该很容易

所以,wwell,因为通常没有关于可访问性的文档,所以您唯一的方法就是尝试和测试。 这是一项艰巨的工作,别无选择。试试看。就这些

挖得更深

设计GUI工具包通常有两种基本方法,这取决于选择了哪种方法,这对自然可访问性以及工具包希望实现的可访问性有着巨大的影响

  • 第一种方法是在操作系统允许的范围内从一个空白页开始,然后从那里决定一切:提供什么组件,以及它们的外观和行为。 通过这样做,您可以确保您的应用程序在任何地方的外观和行为都完全相同。用户第一次可能会感到惊讶或困惑,因为外观和行为通常不是100%符合操作系统惯例或用户偏好,但从长远来看,无论使用何种操作系统,他/她都会对你的应用感到宾至如归。 然而,更重要的是,从空白页面创建所有内容也意味着必须从头开始定义所有内容,以实现可访问性。这当然需要大量的工作,无论是对于GUI实现人员还是应用程序开发人员。不同的工具包将职责光标放置在不同的位置。 有些工具包比其他工具包性能更好和/或更进一步,但总体而言,它们与操作系统的本机组件所能提供的相差甚远
  • 第二种方法是尽可能多地使用操作系统提出的组件,在真正需要时只模拟缺少的功能。 这对于可访问性非常好,因为几乎所有本机操作系统组件都是自然可访问的,或者只需要很少的努力。用户将拥有符合其操作系统总体外观的应用程序,因此不会对界面及其行为感到困惑或惊讶。 然而,并非所有电脑上的应用程序看起来都完全一样。不幸的是,对于许多设计师和开发人员来说,这是一个决定性的障碍

正如我所知道的绝大多数GUI工具包一样,QT是其中的一部分第一组,但如果应用程序开发人员也意识到可访问性,那么在可访问性方面(至少在windows下)没有那么糟糕。 在第二组中,您有WXWidgets

相关问题 更多 >