- class QAccessible#
提供与无障碍访问相关的枚举和静态函数的
QAccessible
类。更多...概要#
静态函数#
def
cleanup()
def
installFactory()
def
isActive()
def
setActive()
def
setRootObject()
def
uniqueId()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们 always 欢迎对代码片段进行翻译的贡献。如果您发现翻译问题,您也可以通过在https:/bugreports.qt.io/projects/PYSIDE 创建工单的方式通知我们。
详细描述#
此类是QWidget应用程序可访问性的一个部分。
可访问应用程序可供无法通过常规方式使用应用程序的人使用。
此类中的函数用于可访问应用程序(也称为AT服务器)和可访问性工具(AT客户端)之间的通信,例如屏幕阅读器和点阵显示。客户端和服务器以以下方式进行通信
AT服务器通过调用
updateAccessibility()
函数通知客户端事件。AT客户端请求有关服务器中对象的信息。
QAccessibleInterface
类是核心接口,并封装了此信息在纯虚拟API中。通过queryAccessibleInterface()
API提供了接口的实现。
服务器和客户端之间的通信由
setRootObject()
函数初始化。可以将函数指针安装到QAccessible
的静态函数中以替换或扩展默认行为。Qt支持微软活性可访问性(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子类的基类。- class 事件#
此枚举类型定义了辅助功能事件类型。
常量
描述
QAccessible.AcceleratorChanged
一个动作的键盘快捷键已被更改。
QAccessible.ActionChanged
一个动作已被更改。
QAccessible.ActiveDescendantChanged
QAccessible.Alert
系统警报(例如,来自QMessageBox的消息)。
QAccessible.AttributeChanged
QAccessible.ContextHelpEnd
对象的上下文帮助(QWhatsThis)已经结束。
QAccessible.ContextHelpStart
对象的上下文帮助(QWhatsThis)已启动。
QAccessible.DefaultActionChanged
辅助对象默认QAccessible::Action已被更改。
QAccessible.DescriptionChanged
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.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
用于用户定义文本的第一个值。
- class RelationFlag#
(继承自
enum.Flag
) 该枚举类型定义了可以组合使用以指示两个可访问对象之间关系的位标志。它由relations()函数使用,该函数返回调用对象的全部相关接口的列表,以及每个对象的关系。列表中的每个条目都是一个QPair,其中第二个成员存储了由第一个成员表示的返回对象与原(调用)接口/对象之间的关系类型。
以下表中,“返回对象”指返回列表中的对象,“原对象”是指调用接口表示的对象。
常量
描述
QAccessible.Label
返回的对象是
origin
对象的标签。QAccessible.Labelled
返回的对象由
origin
对象标记。QAccessible.Controller
返回的对象控制
origin
对象。QAccessible.Controlled
返回的对象由
origin
对象控制。QAccessible.DescriptionFor
返回的对象为
origin
对象提供描述。QAccessible.Described
返回的对象由
origin
对象描述。QAccessible.FlowsFrom
内容逻辑上从返回的对象流向
origin
对象。QAccessible.FlowsTo
内容逻辑上从
origin
对象流向返回的对象。QAccessible.AllRelations
用作掩码,以指示我们感兴趣所有关系的信息。
relations()实现返回这些标志的组合。某些值是互斥的。
- class InterfaceType#
QAccessibleInterface
支持多个子接口。为了提供关于一些对象更多的信息,它们的可访问表示应该实现一个或多个这些接口。注意
当对象这些接口之一进行子类化时,需要实现
interface_cast()
。常量
描述
QAccessible.TextInterface
用于支持选择或超过一行文本的文本。简单的标签不需要实现此接口。
QAccessible.ValueInterface
用于操作值的对象,例如滑块或滚动条。
QAccessible.ActionInterface
用于允许用户触发动作的交互式对象。基本上包括允许鼠标交互的一切内容。
QAccessible.TableInterface
用于列表、表格和树。
QAccessible.TableCellInterface
用于TableInterface对象中的单元格。
QAccessible.HyperlinkInterface
用于超链接节点(通常作为文本节点的子节点嵌入)。
QAccessible.SelectionInterface
用于支持选择子对象的非文本对象。
参见
interface_cast()
QAccessibleTextInterface
QAccessibleValueInterface
QAccessibleActionInterface
QAccessibleTableInterface
QAccessibleTableCellInterface
QAccessibleSelectionInterface
- class TextBoundaryType#
此枚举描述了不同的文本边界类型。它遵循IAccessible2 API,并在
QAccessibleTextInterface
中使用。常量
描述
QAccessible.CharBoundary
使用单独的字符作为边界。
QAccessible.WordBoundary
使用单词作为边界。
QAccessible.SentenceBoundary
使用句子作为边界。
QAccessible.ParagraphBoundary
使用段落作为边界。
QAccessible.LineBoundary
使用换行符作为边界。
QAccessible.NoBoundary
无边界(使用整个文本)。
- static accessibleInterface(uniqueId)#
- 参数:
uniqueId – int
- 返回类型:
返回属于
id
的QAccessibleInterface
。如果id无效,则返回
None
。- static cleanup()#
- static deleteAccessibleInterface(uniqueId)#
- 参数:
uniqueId – int
从缓存中删除此
id
所属的接口并将其删除。该id将无效且可能被缓存重新使用。- static installFactory(arg__1)#
- 参数:
arg__1 –
PyCallable
- static isActive()#
- 返回类型:
bool
如果平台请求了辅助功能信息,则返回
true
。该函数在屏幕阅读器等工具访问辅助功能框架之前将返回false。即使辅助功能未激活,仍然可以使用
queryAccessibleInterface()
方法。但不会有任何通知发送到平台。建议在不需要时使用此函数,以避免通过
updateAccessibility()
方法发送昂贵的通知。- staticqAccessibleTextBoundaryHelper(cursor, boundaryType)#
- 参数:
cursor –
QTextCursor
boundaryType –
TextBoundaryType
- 返回类型:
.std.pairint,int
- staticqueryAccessibleInterface(arg__1)#
- 参数:
arg__1 –
QObject
- 返回类型:
如果给定对象存在
QAccessibleInterface
实现,则此函数返回实现对实现的指针;否则返回None
。该函数将调用所有已安装的工厂函数(从最近安装到最久远安装),直到找到一个为对象的类提供接口的函数。如果没有工厂可以提供类对应的辅助功能实现,则函数加载已安装的辅助功能插件,并检查这些插件是否能提供实现。
如果对象的类没有可用的实现,该函数将尝试使用上述策略为对象的父类查找实现。
所有接口都由内部缓存管理,不应删除。
- staticregisterAccessibleInterface(iface)#
- 参数:
iface –
QAccessibleInterface
- 返回类型:
int
调用此函数可确保手动创建的接口被正确地管理内存。
必须对每个接口
iface
正好调用一次。在调用queryAccessibleInterface
时将隐式调用此函数。如果使用“new”运算符创建了QAccessibleInterfaces实例,则调用此函数是必需的。这不建议这么做,在可能的情况下,使用默认函数,并让queryAccessibleInterface()
处理此事。当需要重新实现
child()
函数并在构造它之后返回子对象时,需要调用此函数。- static setActive(active)#
- 参数:
active – bool
将此应用程序的可访问对象的根对象设置为
object
。所有其他可访问对象均可以通过从根对象进行对象导航来访问。通常不需要调用此函数,因为 Qt 在进入 QApplication::exec() 的事件循环之前立即将 QApplication 对象设置为根对象。
使用 QAccessible::installRootObjectHandler() 将函数调用重定向到自定义处理函数。
- static uniqueId(iface)#
- 参数:
iface –
QAccessibleInterface
- 返回类型:
int
返回
QAccessibleInterface
的唯一 ID。- static updateAccessibility(event)#
- 参数:
event –
QAccessibleEvent
通知有关可能对可访问性客户端相关的更改。
event
提供更改的详细信息,包括更改的来源和性质。应包含足够的信息以提供有意义的通知。例如,类型
ValueChange
表示滑块的位置已更改。每当你的可访问对象或其子元素的状态发生改变时(无论是通过程序(例如通过调用 QLabel::setText())还是用户交互)都应调用此函数。
如果没有可访问性工具在监听此事件,调用此函数的性能损失很小,但如果你确定调用参数的成本很高,你可以测试
isActive()
以避免不必要的计算。