Qt Quick 应用程序的可访问性

简介

本页说明了如何为Qt Quick 应用程序添加可访问性元数据。Qt Quick 应用程序及其许多 QML 类型已内置了可访问性功能。例如,"按钮控件"(Button Controls)具有键盘辅助功能,可在控件之间切换,并使用 Return 或 Enter 键激活控件。因此,通过使用现有控件,您已经为Qt Quick 应用程序的可访问性开了一个好头。不过,在某些情况下,您可能需要明确 QML 项目的工作。

网络应用程序的可访问性类似,您需要为 UI 元素(这里指 QML 项)分配属性。这些属性向无障碍工具提供了元数据,再加上精心选择的高对比度色彩主题和其他视觉提示,有助于用户与Qt Quick 应用程序进行交互。

一般来说,辅助工具会对三类不同的元数据感兴趣:

  • 属性:辅助功能客户端读取可访问对象的元数据。在某些情况下,辅助功能客户端还可以修改这些属性,例如行编辑中的文本。
  • 动作:无障碍客户端调用操作,如按下按钮。
  • 关系和导航:无障碍客户端利用对象之间的关系,从一个无障碍对象遍历到另一个无障碍对象。

对于Qt Quick 应用程序,最需要注意的类型是Accessible QML 类型,它可为 QML 项目添加辅助功能元数据。

为 QML 项目添加无障碍元数据

要为 QML 项添加可访问性元数据,无论是 Qt 提供的现有类型,还是在 C++ 中定义的自定义类型,都可使用Accessible QML 类型。Accessible QML 类型最重要的属性是name,description, 和role

下面是一个向Text 类型添加可访问性元数据的示例,在本例中,该类型表示一个数学公式:

Text {
    id: myMathEquation
    text: "y = 8x - 9"
    font.family: "Helvetica"

    Accessibility.role: Accessible.Equation
    Accessibility.name: myMathEquation.text
    Accessibility.description: qsTr("Linear equation")
    Accessible.onPressAction: {
        // Highlight the x variable
        ...
    }
}

role 设置为Equation ,表示Text 类型代表什么。name 是最重要的属性,它与按钮的文本绑定。要提供 QML 项目的额外信息,可使用description 属性。信号处理器Accessible.pressAction 可被无障碍工具调用来触发按钮,它需要具有与点击或单击文本相同的效果。

文本内容本质上是可访问的,而多媒体内容则不是。因此,为图片、视频和音频等多媒体内容提供必要的无障碍元数据非常重要。下面是为表示饼图的图片提供无障碍元数据的示例:

Image {
    source: "pie-chart-683.png"
    Accessibility.role: Accessible.Chart
    Accessibility.name: qsTr("Pie chart")
    Accessibility.description: qsTr("Pie chart that shows the distribution
    of sales from three store locations: Durban representing 60 percent,
    Johannesburg 20 percent, and Cape Town 20 percent")
    Accessible.onPressAction: {
        // Expand the image
        ...
    }
}

欲了解更多信息,请参阅Accessible ,查看可添加到 QML 项目的属性列表。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.