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

はじめに

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

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

一般的に、アクセシビリティツールは3つの異なるカテゴリーのメタデータに関心を持ちます:

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

Qt Quick アプリケーションの場合、最も重要な型は、Accessible QML型で、QMLアイテムにアクセシビリティメタデータを追加します。

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

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

以下は、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
        ...
    }
}

Text 型が何を表しているかを示すために、roleEquation に設定されています。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 を参照してください。

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