このページでは

Qt Quick アプリケーションのアクセシビリティ

はじめに

このページでは、Qt Quick アプリケーションにアクセシビリティメタデータを追加する方法について説明します。Qt Quick アプリケーションおよびそのQMLタイプの多くは、すでにアクセシビリティ機能が組み込まれています。たとえば、Buttonコントロールにはキーボードによる操作機能が備わっており、タブキーでコントロール間を移動したり、ReturnキーやEnterキーを使用して操作を行ったりすることが可能です。 したがって、既存のコントロールを使用することで、Qt Quick アプリケーションのアクセシビリティ向上に向けた良いスタートを切ることができます。ただし、場合によっては、QMLアイテムの役割を明確にする必要があるかもしれません。

Webアプリケーションのアクセシビリティを確保する場合と同様に、UI要素(この場合はQMLアイテム)にプロパティを割り当てます。これらのプロパティは、アクセシビリティツールに対してメタデータを公開します。これらは、慎重に選択された高コントラストのカラーテーマやその他の視覚的な手がかりと相まって、ユーザーがQt Quick アプリケーションを操作するのを支援します。

一般的に、アクセシビリティツールが注目するのは、以下の 3 つのカテゴリのメタデータです。

  • プロパティ:アクセシビリティクライアントは、アクセシビリティ対象オブジェクトに関するメタデータを読み取ります。場合によっては、ラインエディットのテキストなど、これらのプロパティを変更することも可能です。
  • アクション:アクセシビリティクライアントは、ボタンの押下などのアクションを実行します。
  • 関係とナビゲーション:アクセシビリティクライアントは、オブジェクト間の関係を利用して、あるアクセシブルなオブジェクトから別のオブジェクトへと移動します。

Qt Quick アプリケーションにおいて、特に留意すべき最も重要なタイプは、Accessible というQMLタイプです。これは、QMLアイテムにアクセシビリティメタデータを追加します。

QML アイテムへのアクセシビリティ メタデータの追加

Qt が提供する既存のタイプや、C++ で定義されたカスタムタイプにアクセシビリティメタデータを追加するには、Accessible QML タイプを使用します。Accessible QML タイプの最も重要なプロパティは、name 、description 、およびrole です。

以下は、Text 型(この例では数式を表しています)にアクセシビリティメタデータを追加する例です:

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

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

role は、Text 型が何を表すかを示すためにEquation に設定されています。name は最も重要なプロパティであり、ボタンのテキストにバインドされています。QMLアイテムに関する追加情報を提供するには、description プロパティを使用します。アクセシビリティツールによって呼び出され、ボタンをトリガーするシグナルハンドラAccessible.pressAction は、テキストをタップまたはクリックした場合と同じ効果を持つ必要があります。

テキストコンテンツは本質的にアクセシビリティに対応していますが、マルチメディアコンテンツはそうではありません。そのため、画像、動画、音声などのマルチメディアコンテンツには、必要なアクセシビリティメタデータを提供することが重要です。以下は、円グラフを表す画像にアクセシビリティメタデータを提供する例です。

Image {
    source: "pie-chart-683.png"
    Accessible.role: Accessible.Chart
    Accessible.name: qsTr("Pie chart")
    Accessible.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
        ...
    }
}

詳細については、QML アイテムに追加できるプロパティの一覧が記載されたAccessible を参照してください。

© 2026 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.