PySide6.QtGui.QAccessibleInterface

class QAccessibleInterface

QAccessibleInterface 类定义了一个接口,用于公开有关可访问对象的信息。更多

继承自: QAccessibleObject, QAccessibleWidget

概要

方法

虚拟方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

该类是QWidget应用程序的无障碍功能的一部分。

辅助功能工具(也称为AT客户端),如屏幕阅读器或盲文显示器,需要关于应用程序中可访问对象的高级信息。可访问对象提供专门的输入和输出方法,使用户能够使用启用了辅助功能工具的应用程序(AT服务器)。

用户需要与之交互或响应的每个元素都是一个可访问的对象,并且应该提供这些信息。这些主要是视觉对象,如小部件和小部件元素,但也可以是内容,如声音。

AT客户端使用三个基本概念来获取应用程序中任何可访问对象的信息:

  • 属性 客户端可以读取有关可访问对象的信息。在某些情况下,客户端还可以修改这些属性;例如行编辑中的文本。

  • 操作 客户端可以调用操作,比如按下按钮或。

  • 关系和导航 客户端可以利用对象之间的关系,从一个可访问的对象导航到另一个对象。

QAccessibleInterface 定义了这三个概念的API。

关系和导航

函数 childCount()indexOfChild() 返回可访问对象的子对象数量以及子对象在其父对象中的索引。函数 childAt() 返回在某个位置找到的子对象 QAccessibleInterface。该子对象不必是直接子对象。这允许在父对象已经知道最顶层子对象时绕过中间层。childAt() 用于点击测试(查找鼠标下的对象)。

relations() 函数提供了关于一个对象与其他对象之间关系的信息,而 parent()child() 允许从一个对象遍历到另一个对象。

属性

可访问对象的核心属性是它拥有什么role()。不同的对象可以拥有相同的角色,例如滚动条中的“添加行”元素和对话框中的OK按钮具有相同的角色,“按钮”。角色暗示了用户可以与用户界面元素进行何种交互。

一个对象的state()属性是不同状态标志的组合,可以描述对象状态与“正常”状态的不同之处,例如它可能不可用,以及它的行为方式,例如它可能是可选择的。

text() 属性提供了关于对象的文本信息。一个对象通常有一个名称,但可以提供扩展信息,如描述、帮助文本或关于它提供的任何键盘快捷键的信息。一些对象允许通过setText()函数更改text()属性,但这些信息在大多数情况下是只读的。

rect() 属性提供了关于可访问对象的几何信息。这些信息通常仅对视觉对象可用。

接口

为了让用户能够与可访问对象进行交互,对象除了实现QAccessibleInterface外,还必须实现QAccessibleActionInterface。支持选择的对象可以定义操作来更改选择。

还有其他几个接口应根据需要实现。QAccessibleTextInterface 应该用于较大的文本编辑,如文档视图。此接口不应为标签/单行编辑实现。

对于滑块、滚动条和其他数值选择器,应实现QAccessibleValueInterface

列表、表格和树应该实现 QAccessibleTableInterface

actionInterface()
Return type:

QAccessibleActionInterface

attributesInterface()
Return type:

QAccessibleAttributesInterface

backgroundColor()
Return type:

QColor

如果适用,返回可访问的背景颜色,否则返回无效的QColor

另请参阅

foregroundColor()

abstract child(index)
Parameters:

索引 – int

Return type:

QAccessibleInterface

返回索引为index的可访问子项。索引从0开始。可以使用childCount检查对象的子项数量。

当请求一个无效的子项时(例如,当子项在此期间变为无效时),返回 None

另请参阅

childCount() parent()

abstract childAt(x, y)
Parameters:
  • x – 整数

  • y – 整数

Return type:

QAccessibleInterface

返回包含屏幕坐标(x, y)的子级的QAccessibleInterface。如果该位置没有子级,此函数返回None。返回的可访问对象必须是一个子级,但不一定是直接子级。

此函数仅对可见对象可靠(不可见对象可能无法正确布局)。

所有视觉对象都提供此信息。

为继承QAccessibleObject的对象提供了默认实现。这将遍历所有子对象。如果小部件管理其子对象(例如表格),编写专门的实现将更高效。

另请参阅

rect()

abstract childCount()
Return type:

整数

返回属于此对象的子元素数量。子元素可以自行提供辅助功能信息(例如子部件),或者作为此可访问对象的子元素。

所有对象都提供此信息。

另请参阅

indexOfChild()

editableTextInterface()
Return type:

QAccessibleEditableTextInterface

focusChild()
Return type:

QAccessibleInterface

返回具有键盘焦点的对象。

返回的对象可以是任何后代,包括它自己。

foregroundColor()
Return type:

QColor

如果适用,返回可访问对象的前景色或无效的QColor

另请参阅

backgroundColor()

abstract indexOfChild(child)
Parameters:

子元素QAccessibleInterface

Return type:

整数

返回对象 child 在此对象的子列表中的基于0的索引,如果 child 不是此对象的子对象,则返回-1。

所有对象都提供关于其子对象的此信息。

另请参阅

childCount()

interface_cast(type)
Parameters:

类型InterfaceType

Return type:

void

从通用的QAccessibleInterface返回一个专门的无障碍接口type

当通过专门的接口提供有关小部件或对象的更多信息时,必须重新实现此函数。例如,行编辑应实现 QAccessibleTextInterface

abstract isValid()
Return type:

布尔

如果使用此接口实现所需的所有数据都有效(例如,所有指针都不为空),则返回 true;否则返回 false

另请参阅

object()

abstract object()
Return type:

QObject

返回指向此接口实现提供信息的QObject的指针。

另请参阅

isValid()

abstract parent()
Return type:

QAccessibleInterface

返回可访问对象层次结构中父级的QAccessibleInterface

如果没有父级存在(例如,对于顶级应用程序对象),则返回 None

另请参阅

child()

abstract rect()
Return type:

QRect

返回对象的几何形状。几何形状以屏幕坐标表示。

此函数仅对可见对象可靠(不可见对象可能无法正确布局)。

所有视觉对象都提供此信息。

另请参阅

childAt()

relations([match=QAccessible.AllRelations])
Parameters:

matchRelationFlag 的组合

Return type:

.std.pairQAccessibleInterface,QFlagsQAccessible.RelationFlag的列表

返回与其他小部件的有意义的关系。通常这不会返回父/子关系,除非它们以特定方式处理,例如在树视图中。它通常会返回标记为和被标记的关系。

可以通过使用可选参数match来过滤关系。它永远不应该返回自身。

另请参阅

parent() child()

abstract role()
Return type:

角色

返回对象的角色。对象的角色通常是静态的。

所有可访问的对象都有一个角色。

另请参阅

text() state()

selectionInterface()
Return type:

QAccessibleSelectionInterface

abstract setText(t, text)
Parameters:

将对象的文本属性 t 设置为 text

请注意,大多数对象的文本属性是只读的,因此调用此函数可能没有效果。

另请参阅

text()

abstract state()
Return type:

State

返回对象的当前状态。返回的值是QAccessible::StateFlag枚举中标志的组合。

所有可访问的对象都有一个状态。

另请参阅

text() role()

tableCellInterface()
Return type:

QAccessibleTableCellInterface

abstract text(t)
Parameters:

t文本

Return type:

字符串

返回对象的文本属性 t 的值。

Name 是客户端用来识别、查找或向用户宣布可访问对象的字符串。所有对象必须在其容器内具有唯一的名称。名称可以被客户端以不同的方式使用,因此名称应既提供对象的简短描述,又具有唯一性。

一个可访问对象的Description提供了关于对象视觉外观的文本信息。描述主要用于为视力受损的用户提供更多的上下文,但也用于上下文搜索或其他应用。并非所有对象都有描述。一个“OK”按钮不需要描述,但一个显示笑脸图片的工具按钮则需要。

可访问对象的Value表示对象包含的视觉信息,例如行编辑中的文本。通常,用户可以修改该值。并非所有对象都有值,例如静态文本标签没有,而一些对象的状态已经是值,例如切换按钮。

Help 文本提供了关于可访问对象的功能和用法的信息。并非所有对象都提供此信息。

Accelerator 是一个键盘快捷键,用于激活对象的默认操作。键盘快捷键是菜单、菜单项或小部件文本中的带下划线的字符,可以是字符本身,也可以是该字符与修饰键(如 Alt、Ctrl 或 Shift)的组合。像工具按钮这样的命令控件也有快捷键,通常会在工具提示中显示它们。

Identifier 可以显式设置为辅助技术提供一个ID。这对于UI测试尤其有用。如果没有显式设置标识符,标识符将由相应的接口根据QObject::objectName或其类名以及其父链中的QObject::objectName或类名设置为ID。

所有对象都为Name提供了一个字符串。

另请参阅

setText() role() state()

textInterface()
Return type:

QAccessibleTextInterface

valueInterface()
Return type:

QAccessibleValueInterface

virtual_hook(id, data)
Parameters:
  • id – int

  • datavoid

window()
Return type:

QWindow

返回与基础对象关联的窗口。例如,QAccessibleWidget 重新实现了此功能,并返回 QWidget 的 windowHandle()。

在某些平台上,它用于能够通知AT客户端有关状态变化。后端将遍历所有祖先,直到找到一个窗口。(这意味着在祖先中至少有一个接口应返回一个有效的QWindow指针)。

默认实现返回 None