PySide6.QtGui.QAccessible

class QAccessible

QAccessible 类提供了与可访问性相关的枚举和静态函数。More_

概要

静态函数

注意

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

详细描述

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

可访问的应用程序可以被那些无法通过常规方式使用应用程序的人使用。

此类中的函数用于可访问应用程序(也称为AT服务器)和辅助功能工具(AT客户端,如屏幕阅读器和盲文显示器)之间的通信。客户端和服务器通过以下方式进行通信:

服务器和客户端之间的通信由setRootObject()函数初始化。可以安装函数指针来替换或扩展QAccessible中静态函数的默认行为。

Qt 支持 Microsoft Active Accessibility (MSAA)、macOS 辅助功能和 Unix/X11 AT-SPI 标准。其他后端可以使用 QAccessibleBridge 来支持。

在Unix/X11 AT-SPI实现中,应用程序在满足两个条件时变得可访问:

  • org.a11y.Status.IsEnabled DBus 属性为 true

  • org.a11y.Status.ScreenReaderEnabled DBus 属性为 true

设置DBus AT-SPI属性的另一种方法是设置QT_LINUX_ACCESSIBILITY_ALWAYS_ON环境变量。

除了QAccessible的静态函数外,Qt还提供了一个通用接口QAccessibleInterface,可以用来包装所有的小部件和对象(例如,QPushButton)。这个单一接口提供了辅助技术所需的所有元数据。Qt为其内置小部件提供了此接口的实现作为插件。

当你开发自定义小部件时,你可以创建QAccessibleInterface的自定义子类,并将它们作为插件分发(使用QAccessiblePlugin)或编译到应用程序中。同样,Qt的预定义无障碍支持可以作为插件构建(默认)或直接构建到Qt库中。使用插件的主要优点是,无障碍类只有在实际使用时才会加载到内存中;它们不会在没有使用辅助技术的情况下减慢常见情况。

Qt 还包括两个便利类,QAccessibleObject 和 QAccessibleWidget,它们继承自 QAccessibleInterface 并提供元数据的最低共同标准(例如,小部件几何形状、窗口标题、基本帮助文本)。在包装自定义的 QObject 或 QWidget 子类时,您可以将它们用作基类。

另请参阅

QAccessibleInterface

class Event

此枚举类型定义了可访问的事件类型。

常量

描述

QAccessible.AcceleratorChanged

操作的键盘快捷键已更改。

QAccessible.ActionChanged

一个动作已被更改。

QAccessible.ActiveDescendantChanged

QAccessible.Alert

系统警报(例如,来自QMessageBox的消息)

QAccessible.Announcement

请求消息的公告。

QAccessible.AttributeChanged

QAccessible.ContextHelpEnd

对象的上下文帮助(QWhatsThis)已完成。

QAccessible.ContextHelpStart

对象的上下文帮助(QWhatsThis)已启动。

QAccessible.DefaultActionChanged

可访问对象的默认 QAccessible::Action 已更改。

QAccessible.DescriptionChanged

对象的Description已更改。

QAccessible.DialogEnd

一个对话框(QDialog)已被隐藏

QAccessible.DialogStart

一个对话框(QDialog)已设置为可见。

QAccessible.DocumentContentChanged

文本文档的内容已更改。

QAccessible.DocumentLoadComplete

文档已加载。

QAccessible.DocumentLoadStopped

文档加载已停止。

QAccessible.DocumentReload

文档重新加载已启动。

QAccessible.DragDropEnd

拖放操作即将完成。

QAccessible.DragDropStart

拖放操作即将开始。

QAccessible.Focus

一个对象获得了键盘焦点。

QAccessible.ForegroundChanged

一个窗口已被激活(即,桌面上有一个新窗口获得了焦点)。

QAccessible.HelpChanged

对象的Help文本属性已更改。

QAccessible.HyperlinkEndIndexChanged

超文本链接的显示文本的结束位置已更改。

QAccessible.HyperlinkNumberOfAnchorsChanged

超文本链接中的锚点数量已更改,可能是因为显示文本已被拆分以提供多个链接。

QAccessible.HyperlinkSelectedLinkChanged

所选超文本链接的链接已更改。

QAccessible.HyperlinkStartIndexChanged

超文本链接的显示文本的起始位置已更改。

QAccessible.HypertextChanged

超文本链接的显示文本已更改。

QAccessible.HypertextLinkActivated

一个超文本链接已被激活,可能是通过点击或按键。

QAccessible.HypertextLinkSelected

已选择超文本链接。

QAccessible.HypertextNLinksChanged

QAccessible.IdentifierChanged

对象的标识符已更改。

QAccessible.LocationChanged

对象在屏幕上的位置已更改。

QAccessible.MenuCommand

菜单项被触发。

QAccessible.MenuEnd

菜单已关闭(Qt 对所有菜单使用 PopupMenuEnd)。

QAccessible.MenuStart

菜单栏上的菜单已打开(Qt 对所有菜单使用 PopupMenuStart)。

QAccessible.NameChanged

对象的Name属性已更改。

QAccessible.ObjectAttributeChanged

QAccessible.ObjectCreated

创建了一个新对象。

QAccessible.ObjectDestroyed

一个对象被删除。

QAccessible.ObjectHide

一个对象被隐藏;例如,使用QWidget::hide()。被隐藏的对象的任何子对象不会发送此事件。当对象被其他对象遮挡而隐藏时,不会发送此事件。

QAccessible.ObjectReorder

布局或项目视图已添加、删除或移动了一个对象(Qt 不使用此事件)。

QAccessible.ObjectShow

一个对象被显示;例如,使用QWidget::show()。

QAccessible.PageChanged

QAccessible.ParentChanged

对象的父对象已更改。

QAccessible.PopupMenuEnd

一个弹出菜单已关闭。

QAccessible.PopupMenuStart

一个弹出菜单已打开。

QAccessible.ScrollingEnd

滚动条滚动操作已结束(鼠标已释放滑块手柄)。

QAccessible.ScrollingStart

滚动条的滚动操作即将开始;例如,这可能是由于鼠标按下滑块手柄引起的。

QAccessible.SectionChanged

QAccessible.SelectionAdd

一个项目已被添加到项目视图中的选择中。

QAccessible.SelectionRemove

一个项目已从项目视图选择中移除。

QAccessible.Selection

菜单或项目视图中的选择已更改。

QAccessible.SelectionWithin

在项目视图中发生了多项选择更改。

QAccessible.SoundPlayed

对象已播放声音

QAccessible.TableCaptionChanged

表格标题已更改。

QAccessible.TableColumnDescriptionChanged

表格列的描述,通常在列的标题中找到,已被更改。

QAccessible.TableColumnHeaderChanged

表格列标题已更改。

QAccessible.TableRowDescriptionChanged

表格行的描述,通常在行的标题中找到,已被更改。

QAccessible.TableRowHeaderChanged

表格行标题已更改。

QAccessible.TableSummaryChanged

表格的摘要已更改。

QAccessible.TextColumnChanged

文本列已更改。

QAccessible.VisibleDataChanged

此枚举的值被定义为与IAccessible2和MSAA规范中定义的值相同。

class Role

此枚举定义了一个可访问对象的角色。角色包括:

常量

描述

QAccessible.AlertMessage

用于提醒用户的对象。

QAccessible.Animation

一个显示动画的对象。

QAccessible.Application

应用程序的主窗口。

QAccessible.Assistant

一个提供交互式帮助的对象。

QAccessible.Border

一个表示边框的对象。

QAccessible.ButtonDropDown

一个按钮,用于下拉显示项目列表。

QAccessible.ButtonDropGrid

一个按钮,点击后会下拉一个网格。

QAccessible.ButtonMenu

一个可以下拉菜单的按钮。

QAccessible.Canvas

一个显示用户可以与之交互的图形的对象。

QAccessible.Caret

一个表示系统插入符号(文本光标)的对象。

QAccessible.Cell

表格中的一个单元格。

QAccessible.Chart

一个显示数据图形表示的对象。

QAccessible.CheckBox

一个表示可以选中或取消选中的选项的对象。某些选项提供“混合”状态,例如既未选中也未取消选中。

QAccessible.Client

窗口中的客户区域。

QAccessible.Clock

显示时间的时钟。

QAccessible.ColorChooser

一个让用户选择颜色的对话框。

QAccessible.Column

一列单元格,通常在表格内。

QAccessible.ColumnHeader

数据列的标题。

QAccessible.ComboBox

用户可以从中选择的选项列表。

QAccessible.ComplementaryContent

文档或网页的一部分,补充主要内容,通常是一个地标(参见WAI-ARIA)。

QAccessible.Cursor

一个表示鼠标光标的对象。

QAccessible.Desktop

该对象代表桌面或工作区。

QAccessible.Dial

一个表示拨号盘或旋钮的对象。

QAccessible.Dialog

一个对话框。

QAccessible.Document

一个文档,例如在办公应用程序中。

QAccessible.EditableText

可编辑的文本,例如行或文本编辑。

QAccessible.Equation

一个表示数学方程的对象。

QAccessible.Footer

页面中的页脚(通常在文档中)。

QAccessible.Form

包含控件的网页表单。

QAccessible.Graphic

图形或图片,例如图标。

QAccessible.Grip

用户可以拖动以改变小部件大小的手柄。

QAccessible.Grouping

一个表示其他对象逻辑分组的对象。

QAccessible.Heading

文档中的标题。

QAccessible.HelpBalloon

一个在单独的、短暂存在的窗口中显示帮助的对象。

QAccessible.HotkeyField

一个允许用户输入键序列的热键字段。

QAccessible.Indicator

表示当前值或项目的指示器。

QAccessible.LayeredPane

一个可以包含分层子对象的对象,例如在堆栈中。

QAccessible.Link

指向其他内容的链接。

QAccessible.List

一个项目列表,用户可以从中选择一个或多个项目。

QAccessible.ListItem

列表中的一个项目。

QAccessible.MenuBar

用户从中打开菜单的菜单栏。

QAccessible.MenuItem

菜单或菜单栏中的一个项目。

QAccessible.NoRole

该对象没有角色。这通常表示一个无效的对象。

QAccessible.Note

一个部分,其内容是对资源主要内容的补充或辅助。

QAccessible.Notification

一个表示通知的对象(例如在系统托盘中)。此角色仅在Linux上有效。

QAccessible.PageTab

用户可以选择的页面标签,用于在对话框中切换到不同的页面。

QAccessible.PageTabList

页面标签列表。

QAccessible.Paragraph

一段文本(通常在文档中找到)。

QAccessible.Pane

一个通用容器。

QAccessible.PopupMenu

一个列出用户可以选择的选项以执行操作的菜单。

QAccessible.ProgressBar

该对象显示正在进行的操作的进度。

QAccessible.PropertyPage

一个属性页面,用户可以在其中更改选项和设置。

QAccessible.Button

一个按钮。

QAccessible.RadioButton

一个表示与其他选项互斥的选项的对象。

QAccessible.Row

一行单元格,通常在表格内。

QAccessible.RowHeader

数据行的标题。

QAccessible.ScrollBar

滚动条,允许用户滚动可见区域。

QAccessible.Section

一个部分(在文档中)。

QAccessible.Separator

一个将空间划分为逻辑区域的分隔符。

QAccessible.Slider

一个允许用户在给定范围内选择值的滑块。

QAccessible.Sound

一个表示声音的对象。

QAccessible.SpinBox

一个微调框小部件,允许用户在给定范围内输入一个值。

QAccessible.Splitter

一个分割器,用于在其子部件之间分配可用空间。

QAccessible.StaticText

静态文本,例如其他小部件的标签。

QAccessible.StatusBar

一个状态栏。

QAccessible.Table

一个表示行和列网格中数据的表格。

QAccessible.Terminal

终端或命令行界面。

QAccessible.TitleBar

窗口的标题栏标题。

QAccessible.ToolBar

工具栏,用于分组用户经常访问的小部件。

QAccessible.ToolTip

一个工具提示,提供有关其他对象的信息。

QAccessible.Tree

树结构中的项目列表。

QAccessible.TreeItem

树结构中的一个项目。

QAccessible.UserRole

用于用户定义角色的第一个值。

QAccessible.WebDocument

HTML文档,通常在浏览器中。

QAccessible.Whitespace

其他对象之间的空白区域。

QAccessible.Window

一个顶层窗口。

class Text

此枚举指定可访问对象返回的字符串信息。

常量

描述

QAccessible.Name

对象的名称。这可以被辅助客户端用作标识符或简短描述。

QAccessible.Description

描述对象的简短文本。

QAccessible.Value

对象的值。

QAccessible.Help

提供有关如何使用该对象的较长文本信息。

QAccessible.Accelerator

执行对象默认操作的键盘快捷键。

QAccessible.UserText

用于用户定义文本的第一个值。

QAccessible.Identifier

对象的标识符,例如用于UI测试。

class RelationFlag

(继承自 enum.Flag) 此枚举类型定义了可以组合的位标志,用于指示两个可访问对象之间的关系。它由 relations() 函数使用,该函数返回调用对象的所有相关接口列表,以及每个对象的关系。

列表中的每个条目都是一个QPair,其中second成员存储了由first成员表示的returned对象与origin(调用者)接口/对象之间的关系类型。

在下表中,returned 对象指的是返回列表中的对象,而 origin 对象是由调用接口表示的对象。

常量

描述

QAccessible.Label

返回的对象是原始对象的标签。

QAccessible.Labelled

返回的对象由原始对象标记。

QAccessible.Controller

返回的对象控制原始对象。

QAccessible.Controlled

返回的对象由原始对象控制。

QAccessible.DescriptionFor

返回的 对象提供了对 原始 对象的描述。

QAccessible.Described

返回的对象由原始对象描述。

QAccessible.FlowsFrom

内容逻辑上从returned对象流向origin对象。

QAccessible.FlowsTo

内容逻辑上从origin对象流向returned对象。

QAccessible.AllRelations

用作掩码,指定我们对所有关系的信息感兴趣

relations() 的实现返回这些标志的组合。某些值是互斥的。

class InterfaceType

QAccessibleInterface 支持多个子接口。为了提供有关某些对象的更多信息,它们的可访问表示应实现这些接口中的一个或多个。

注意

当子类化这些接口之一时,需要实现interface_cast()

常量

描述

QAccessible.TextInterface

对于支持选择或多行的文本。简单的标签不需要实现此接口。

QAccessible.ValueInterface

用于操作值的对象,例如滑块或滚动条。

QAccessible.ActionInterface

用于允许用户触发操作的交互式对象。基本上所有允许例如鼠标交互的内容。

QAccessible.TableInterface

用于列表、表格和树。

QAccessible.TableCellInterface

用于TableInterface对象中的单元格。

QAccessible.HyperlinkInterface

用于超链接节点(通常作为文本节点的子节点嵌入)

QAccessible.SelectionInterface

用于支持选择子对象的非文本对象。

QAccessible.AttributesInterface

适用于支持对象特定属性的对象。

class TextBoundaryType

此枚举描述了不同类型的文本边界。它遵循IAccessible2 API,并在QAccessibleTextInterface中使用。

常量

描述

QAccessible.CharBoundary

使用单个字符作为边界。

QAccessible.WordBoundary

使用单词作为边界。

QAccessible.SentenceBoundary

使用句子作为边界。

QAccessible.ParagraphBoundary

使用段落作为边界。

QAccessible.LineBoundary

使用换行符作为边界。

QAccessible.NoBoundary

无边界(使用整个文本)。

class Attribute

此枚举描述了由QAccessibleAttributesInterface使用的不同类型的属性。

这些属性类似于在ARIA、AT-SPI2、IAccessible、UIA和NSAccessibility中发现的属性/(对象)属性的概念,并在适用时映射到它们的平台对应物。

每个属性都被视为键值对,此枚举的值用作键。

属性值以QVariant表示。存储在QVariant中的值的类型是固定的,并在下面为每种属性类型指定。

常量

描述

QAccessible.Attribute.Custom

值类型: QHash, QString> Custom 属性的特殊之处在于它可以有效地同时表示多个属性,因为它本身是一个用于表示键值对的 QHash。对于支持自定义键值对属性的平台,那些在 Custom 属性中设置的键值对会直接桥接到平台层,而不会应用任何特定于平台的属性转换。通常,应该使用其他更严格类型的属性。例如,这个属性可以用于在正式为特定功能添加新的枚举值之前进行原型设计。

QAccessible.Attribute.Level

值类型: int 定义元素在结构中的层次级别,例如标题的标题级别。此属性在概念上与ARIA中的“aria-level”属性匹配。

在版本6.8中添加。

class AnnouncementPoliteness

此枚举描述了由QAccessibleAnnouncementEvent使用的公告优先级。

使用QAccessible::AnouncementPoliteness::Polite,辅助技术应在下一个合适的时机宣布消息,例如在说完当前句子或用户暂停打字时。

当指定QAccessible::AnouncementPoliteness::Assertive时,辅助技术应立即通知用户。

因为中断可能会使用户迷失方向或导致他们无法完成当前任务,所以除非中断是必要的,否则不应使用QAccessible::AnouncementPoliteness::Assertive

常量

描述

QAccessible.AnnouncementPoliteness.Polite

公告具有正常优先级。

QAccessible.AnnouncementPoliteness.Assertive

该通知具有高优先级,应立即通知用户,即使这意味着中断用户当前的任务。

在版本6.8中添加。

static accessibleInterface(uniqueId)
Parameters:

uniqueId – int

Return type:

QAccessibleInterface

返回属于idQAccessibleInterface

如果id无效,则返回None

static cleanup()
static deleteAccessibleInterface(uniqueId)
Parameters:

uniqueId – int

从缓存中移除属于此id的接口并删除它。该id将变为无效,并可能被缓存重新使用。

static installFactory(arg__1)
Parameters:

arg__1PyCallable

static isActive()
Return type:

布尔

如果平台请求了无障碍信息,则返回 true

此函数将返回false,直到诸如屏幕阅读器之类的工具访问了无障碍框架。即使无障碍功能未激活,仍然可以使用queryAccessibleInterface()。但不会有通知发送到平台。

建议使用此函数来防止在不需要时通过updateAccessibility()发送昂贵的通知。

static qAccessibleTextBoundaryHelper(cursor, boundaryType)
Parameters:
Return type:

.std.pairint,int

static queryAccessibleInterface(object)
Parameters:

对象QObject

Return type:

QAccessibleInterface

如果给定的object存在QAccessibleInterface实现,此函数将返回指向该实现的指针;否则返回None

该函数调用所有已安装的工厂函数(从最近安装到最早安装),直到找到一个为object类提供接口的函数。如果没有工厂能为该类提供可访问性实现,该函数会加载已安装的可访问性插件,并测试是否有任何插件能提供该实现。

如果没有对象类的实现可用,函数会尝试使用上述策略为对象的父类寻找实现。

所有接口都由内部缓存管理,不应删除。

static registerAccessibleInterface(iface)
Parameters:

ifaceQAccessibleInterface

Return type:

整数

调用此函数以确保手动创建的接口得到正确的内存管理。

每个接口 iface 必须仅被调用一次。当调用 queryAccessibleInterface 时,此操作会被隐式调用,只有在使用“new”操作符实例化 QAccessibleInterfaces 时才需要调用此函数。不建议这样做,尽可能使用默认函数,并让 queryAccessibleInterface() 来处理此操作。

当需要重新实现child()函数并在构造后返回子对象时,需要调用此函数。

static setActive(active)
Parameters:

active – 布尔值

static setRootObject(object)
Parameters:

对象QObject

将此应用程序的可访问对象的根对象设置为object。所有其他可访问对象都可以通过从根对象进行对象导航来访问。

通常,不需要调用此函数,因为Qt在进入QApplication::exec()的事件循环之前立即将QApplication对象设置为根对象。

使用 QAccessible::installRootObjectHandler() 将函数调用重定向到自定义的处理函数。

static uniqueId(iface)
Parameters:

ifaceQAccessibleInterface

Return type:

整数

返回QAccessibleInterface iface的唯一ID。

static updateAccessibility(event)
Parameters:

事件QAccessibleEvent

通知可能对无障碍客户端相关的更改。

event 提供了有关更改的详细信息。这些信息包括更改的来源和更改的性质。event 应包含足够的信息以提供有意义的通知。

例如,类型 ValueChange 表示滑块的位置已被更改。

每当您的可访问对象或其子元素的状态以编程方式(例如通过调用QLabel::setText())或通过用户交互发生更改时,请调用此函数。

如果没有辅助工具监听此事件,调用此函数的性能损失很小,但如果确定调用的参数成本较高,您可以测试isActive()以避免不必要的计算。

class State

概要

方法

注意

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

详细描述

PySide6.QtGui.QAccessible.State.disabled
PySide6.QtGui.QAccessible.State.selected
PySide6.QtGui.QAccessible.State.focusable
PySide6.QtGui.QAccessible.State.focused
PySide6.QtGui.QAccessible.State.pressed
PySide6.QtGui.QAccessible.State.checkable
PySide6.QtGui.QAccessible.State.checked
PySide6.QtGui.QAccessible.State.checkStateMixed
PySide6.QtGui.QAccessible.State.readOnly
PySide6.QtGui.QAccessible.State.hotTracked
PySide6.QtGui.QAccessible.State.defaultButton
PySide6.QtGui.QAccessible.State.expanded
PySide6.QtGui.QAccessible.State.collapsed
PySide6.QtGui.QAccessible.State.busy
PySide6.QtGui.QAccessible.State.expandable
PySide6.QtGui.QAccessible.State.marqueed
PySide6.QtGui.QAccessible.State.animated
PySide6.QtGui.QAccessible.State.invisible
PySide6.QtGui.QAccessible.State.offscreen
PySide6.QtGui.QAccessible.State.sizeable
PySide6.QtGui.QAccessible.State.movable
PySide6.QtGui.QAccessible.State.selfVoicing
PySide6.QtGui.QAccessible.State.selectable
PySide6.QtGui.QAccessible.State.linked
PySide6.QtGui.QAccessible.State.traversed
PySide6.QtGui.QAccessible.State.multiSelectable
PySide6.QtGui.QAccessible.State.extSelectable
PySide6.QtGui.QAccessible.State.passwordEdit
PySide6.QtGui.QAccessible.State.hasPopup
PySide6.QtGui.QAccessible.State.modal
PySide6.QtGui.QAccessible.State.active
PySide6.QtGui.QAccessible.State.invalid
PySide6.QtGui.QAccessible.State.editable
PySide6.QtGui.QAccessible.State.multiLine
PySide6.QtGui.QAccessible.State.selectableText
PySide6.QtGui.QAccessible.State.supportsAutoCompletion
PySide6.QtGui.QAccessible.State.searchEdit
__init__()

构造一个新的State,所有状态都设置为false。

__eq__(second)
Parameters:

第二State

Return type:

布尔