このページでは

QAccessibleInterface Class

QAccessibleInterface クラスは、アクセシブルなオブジェクトに関する情報を公開するインターフェースを定義しています。詳細...

ヘッダー: #include <QAccessibleInterface>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
継承元:

QAccessibleObject

パブリック関数

QAccessibleActionInterface *actionInterface()
virtual QColor backgroundColor() const
virtual QAccessibleInterface *child(int index) const = 0
virtual QAccessibleInterface *childAt(int x, int y) const = 0
virtual int childCount() const = 0
virtual QAccessibleInterface *focusChild() const
virtual QColor foregroundColor() const
virtual int indexOfChild(const QAccessibleInterface *child) const = 0
virtual void *interface_cast(QAccessible::InterfaceType type)
virtual bool isValid() const = 0
virtual QObject *object() const = 0
virtual QAccessibleInterface *parent() const = 0
virtual QRect rect() const = 0
virtual QList<std::pair<QAccessibleInterface *, QAccessible::Relation>> relations(QAccessible::Relation match = QAccessible::AllRelations) const
virtual QAccessible::Role role() const = 0
(since 6.5) QAccessibleSelectionInterface *selectionInterface()
virtual void setText(QAccessible::Text t, const QString &text) = 0
virtual QAccessible::State state() const = 0
QAccessibleTableCellInterface *tableCellInterface()
QAccessibleTableInterface *tableInterface()
virtual QString text(QAccessible::Text t) const = 0
QAccessibleTextInterface *textInterface()
QAccessibleValueInterface *valueInterface()
(since 6.12) QAccessibleViewportInterface *viewportInterface()
virtual QWindow *window() const

プロテクトされた関数

詳細な説明

このクラスは、QWidget アプリケーションのアクセシビリティの一部です。

スクリーンリーダーや点字ディスプレイなどのアクセシビリティツール(AT クライアントとも呼ばれる)は、アプリケーション内のアクセシブルなオブジェクトに関する高レベルの情報を必要とします。アクセシブルなオブジェクトは、特殊な入力および出力方法を提供し、ユーザーがアクセシビリティツールを、対応したアプリケーション(AT サーバー)で使用できるようにします。

ユーザーが操作したり反応したりする必要があるすべての要素はアクセシビリティ対応オブジェクトであり、この情報を提供する必要があります。これらは主にウィジェットやウィジェット要素などの視覚的なオブジェクトですが、サウンドなどのコンテンツである場合もあります。

ATクライアントは、アプリケーション内のアクセシブルなオブジェクトに関する情報を取得するために、3つの基本的な概念を使用します:

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

QAccessibleInterfaceは、これら3つの概念のためのAPIを定義しています。

関係とナビゲーション

関数 `childCount()` および `indexOfChild()` は、アクセシブルオブジェクトの子オブジェクトの数と、親オブジェクト内における子オブジェクトのインデックスを返します。関数 `childAt()` は、指定された位置にある子 QAccessibleInterface を返します。 子オブジェクトは直接の子である必要はありません。これにより、親オブジェクトが最上位の子オブジェクトをすでに把握している場合、中間層をバイパスすることが可能になります。childAt() は、ヒットテスト(マウスカーソルの下にあるオブジェクトの検出)に使用されます。

relations() 関数は、あるオブジェクトと他のオブジェクトとの関係に関する情報を提供し、parent() およびchild() を使用することで、あるオブジェクトから別のオブジェクトへとトラバースすることができます。

プロパティ

アクセシブルなオブジェクトの中心となるプロパティは、そのオブジェクトが持つ `role()` です。異なるオブジェクトでも同じロールを持つことがあります。例えば、スクロールバーの「行を追加」要素と、ダイアログ内の `OK ` ボタンは、どちらも「ボタン」という同じロールを持っています。ロールは、ユーザーがユーザーインターフェース要素に対してどのような操作を行えるかを示します。

オブジェクトのstate()プロパティは、さまざまな状態フラグの組み合わせであり、オブジェクトの状態が「通常の」状態とどのように異なるか(例:使用不可であるなど)、またどのように動作するか(例:選択可能であるなど)の両方を記述することができます。

text() プロパティは、オブジェクトに関するテキスト情報を提供します。オブジェクトには通常名前がありますが、説明、ヘルプテキスト、または提供されているキーボードショートカットに関する情報など、より詳細な情報を提供することもできます。一部のオブジェクトでは、setText() 関数を通じてtext() プロパティを変更できますが、この情報はほとんどの場合、読み取り専用です。

rect() プロパティは、アクセシブルなオブジェクトのジオメトリに関する情報を提供します。この情報は通常、視覚的なオブジェクトでのみ利用可能です。

インターフェース

ユーザーがアクセシブルなオブジェクトと対話できるようにするには、そのオブジェクトは QAccessibleInterface に加えてQAccessibleActionInterface を実装する必要があります。選択機能をサポートするオブジェクトは、選択内容を変更するためのアクションを定義できます。

その他にも、必要に応じて実装すべきインターフェースがいくつかあります。QAccessibleTextInterface は、ドキュメントビューなどの大規模なテキスト編集に使用すべきです。このインターフェースは、ラベルや単一行編集には実装すべきではありません。

スライダー、スクロールバー、その他の数値選択機能については、QAccessibleValueInterface を実装する必要があります。

リスト、テーブル、ツリーについては、QAccessibleTableInterface を実装する必要があります。

スクロール可能なビューは、QAccessibleViewportInterface を実装する必要があります。

QAccessible 、QAccessibleActionInterface 、QAccessibleTextInterface 、QAccessibleValueInterface 、QAccessibleTableInterface 、およびQAccessibleViewportInterfaceも参照してください 。

メンバー関数のドキュメント

[constexpr noexcept protected default] QAccessibleInterface::QAccessibleInterface()

QAccessibleInterface のインスタンスをデフォルトコンストラクタで生成します。

[virtual noexcept protected] QAccessibleInterface::~QAccessibleInterface()

QAccessibleInterface を破棄します。

QAccessibleActionInterface *QAccessibleInterface::actionInterface()

[virtual] QColor QAccessibleInterface::backgroundColor() const

該当する場合、アクセシブルの背景色を返します。該当しない場合は、無効なQColor を返します。

foregroundColor()も参照してください 。

[pure virtual] QAccessibleInterface *QAccessibleInterface::child(int index) const

インデックスindex を持つアクセス可能な子オブジェクトを返します。インデックスは0から始まります。オブジェクトの子オブジェクトの数は、childCount で確認できます。

無効な子オブジェクトを要求した場合(例:その間に子オブジェクトが無効になった場合など)、nullptr を返します。

childCount() およびparent()も参照してください 。

[pure virtual] QAccessibleInterface *QAccessibleInterface::childAt(int x, int y) const

画面座標(x 、y )を含む子要素のQAccessibleInterface を返します。この位置に子要素が存在しない場合、この関数はnullptr を返します。返される は子要素でなければなりませんが、必ずしも直接の子要素である必要はありません。

この関数は、表示されているオブジェクトに対してのみ信頼性があります(非表示のオブジェクトは正しく配置されない場合があります)。

すべての視覚オブジェクトはこの情報を提供します。

QAccessibleObject を継承するオブジェクトには、デフォルトの実装が提供されています。これはすべての子要素を反復処理します。ウィジェットがその子要素を管理している場合(例:テーブル)、特化した実装を記述する方が効率的です。

rect()も参照してください 。

[pure virtual] int QAccessibleInterface::childCount() const

このオブジェクトに属する子要素の数を返します。子要素は、それ自体がアクセシビリティ情報を提供する場合(例:子ウィジェット)もあれば、このアクセシブルなオブジェクトのサブ要素である場合もあります。

すべてのオブジェクトがこの情報を提供します。

indexOfChild()も参照してください 。

[virtual] QAccessibleInterface *QAccessibleInterface::focusChild() const

キーボードフォーカスが当たっているオブジェクトを返します。

返されるオブジェクトは、それ自身を含め、任意の子孫オブジェクトである可能性があります。

[virtual] QColor QAccessibleInterface::foregroundColor() const

該当する場合、アクセシブルの前景色を返します。該当しない場合は、無効なQColor を返します。

backgroundColor()も参照してください 。

[pure virtual] int QAccessibleInterface::indexOfChild(const QAccessibleInterface *child) const

このオブジェクトの子リスト内におけるオブジェクト `child ` の0を基点とするインデックスを返します。child ` がこのオブジェクトの子でない場合は -1 を返します。

すべてのオブジェクトは、その子要素に関するこの情報を提供します。

childCount()も参照してください 。

[virtual] void *QAccessibleInterface::interface_cast(QAccessible::InterfaceType type)

汎用的なQAccessibleInterface から、特殊化されたアクセシビリティインターフェースtype を返します。

この関数は、特化されたインターフェースを通じてウィジェットやオブジェクトに関する詳細な情報を提供する場合に、再実装する必要があります。例えば、ラインエディットは `QAccessibleTextInterface` を実装する必要があります。

関連項目: QAccessible::InterfaceType 、QAccessibleTextInterface 、QAccessibleValueInterface 、QAccessibleActionInterface 、QAccessibleTableInterface 、QAccessibleTableCellInterface 、およびQAccessibleViewportInterface 。

[pure virtual] bool QAccessibleInterface::isValid() const

このインターフェースの実装を使用するために必要なすべてのデータが有効である場合(例えば、すべてのポインタがNULLでない場合)、true を返します。そうでない場合は、false を返します。

object()も参照してください 。

[pure virtual] QObject *QAccessibleInterface::object() const

このインターフェースの実装が情報を提供するQObject へのポインタを返します。

isValid()も参照してください 。

[pure virtual] QAccessibleInterface *QAccessibleInterface::parent() const

アクセス可能なオブジェクト階層における親のQAccessibleInterface を返します。

親が存在しない場合(例えば、最上位のアプリケーション・オブジェクトの場合など)、nullptr を返します。

child()も参照してください 。

[pure virtual] QRect QAccessibleInterface::rect() const

オブジェクトのジオメトリを返します。ジオメトリは画面座標系で表されます。

この関数は、表示されているオブジェクトに対してのみ信頼性があります(非表示のオブジェクトは正しく配置されない場合があります)。

すべてのビジュアルオブジェクトがこの情報を提供します。

childAt()も参照してください 。

[virtual] QList<std::pair<QAccessibleInterface *, QAccessible::Relation>> QAccessibleInterface::relations(QAccessible::Relation match = QAccessible::AllRelations) const

他のウィジェットとの意味のある関連性を返します。通常、ツリービューなど特定の方法で処理されていない限り、親子関係は返されません。通常は、「labeled-by」および「label」の関連性が返されます。

オプションのパラメータ `match` を使用して、関係性をフィルタリングすることができます。自身を返すことは決してあってはなりません。

parent() およびchild()も参照してください 。

[pure virtual] QAccessible::Role QAccessibleInterface::role() const

オブジェクトのロールを返します。オブジェクトのロールは通常、静的です。

アクセス可能なすべてのオブジェクトにはロールがあります。

text() およびstate()も参照してください 。

[since 6.5] QAccessibleSelectionInterface *QAccessibleInterface::selectionInterface()

この関数は Qt 6.5 で導入されました。

[pure virtual] void QAccessibleInterface::setText(QAccessible::Text t, const QString &text)

オブジェクトのテキストプロパティ `t ` を `text` に設定します。

ほとんどのオブジェクトのテキストプロパティは読み取り専用であるため、この関数を呼び出しても何の効果も得られない場合があることに注意してください。

text()も参照してください 。

[pure virtual] QAccessible::State QAccessibleInterface::state() const

オブジェクトの現在の状態を返します。返される値は、QAccessible::StateFlag 列挙型のフラグの組み合わせです。

すべてのアクセシブルオブジェクトには状態があります。

text() およびrole()も参照してください 。

QAccessibleTableCellInterface *QAccessibleInterface::tableCellInterface()

QAccessibleTableInterface *QAccessibleInterface::tableInterface()

[pure virtual] QString QAccessibleInterface::text(QAccessible::Text t) const

オブジェクトのテキストプロパティ「t 」の値を返します。

QAccessible::Name は、クライアントがユーザーのためにアクセシブルなオブジェクトを識別、検索、または読み上げるために使用する文字列です。すべてのオブジェクトは、そのコンテナ内で一意の名前を持つ必要があります。名前はクライアントによって異なる用途で使用される可能性があるため、オブジェクトの簡単な説明となるだけでなく、一意である必要があります。

アクセシブルなオブジェクトの `QAccessible::Description ` は、そのオブジェクトの視覚的な外観に関するテキスト情報を提供します。この説明は、主に視覚障害のあるユーザーにより詳しい文脈情報を提供するために使用されますが、文脈検索やその他の用途にも利用されます。すべてのオブジェクトに説明があるわけではありません。 「OK」ボタンには説明は不要ですが、スマイルマークの絵が表示されたツールボタンには説明が必要です。

アクセシブルオブジェクトのQAccessible::Value は、そのオブジェクトに含まれる視覚的な情報(例:ラインエディット内のテキスト)を表します。通常、この値はユーザーによって変更可能です。すべてのオブジェクトに値があるわけではありません(例:静的なテキストラベルには値がありません)。また、一部のオブジェクト(例:トグルボタン)は、その状態自体が値となっています。

QAccessible::Help のテキストは、アクセシビリティ対応オブジェクトの機能や使用方法に関する情報を提供します。すべてのオブジェクトがこの情報を提供しているわけではありません。

QAccessible::Accelerator とは、そのオブジェクトのデフォルトのアクションを実行するキーボードショートカットのことです。 キーボードショートカットとは、メニュー、メニュー項目、またはウィジェットのテキスト内で下線が引かれている文字のことで、その文字自体、あるいはその文字と Alt、Ctrl、Shift などの修飾キーの組み合わせのいずれかです。ツールボタンなどのコマンドコントロールにもショートカットキーがあり、通常はツールチップに表示されます。

QAccessible::Identifier は、支援技術にIDを提供するために明示的に設定できます。これは特にUIテストにおいて有用です。識別子が明示的に設定されていない場合、識別子はそれぞれのインターフェースによって、QObject::objectName またはそのクラス名、およびQObject::objectName または親チェーン内の親のクラス名に基づいてIDが設定されます。

すべてのオブジェクトは、QAccessible::Name に対して文字列を提供します。

setText()、role()、およびstate()も参照してください 。

QAccessibleTextInterface *QAccessibleInterface::textInterface()

QAccessibleValueInterface *QAccessibleInterface::valueInterface()

[since 6.12] QAccessibleViewportInterface *QAccessibleInterface::viewportInterface()

この機能は Qt 6.12 で導入されました。

[virtual] QWindow *QAccessibleInterface::window() const

基になるオブジェクトに関連付けられたウィンドウを返します。たとえば、QAccessibleWidget はこのメソッドを再実装しており、QWidget のwindowHandle()を返します。

一部のプラットフォームでは、状態の変化をATクライアントに通知するために使用されます。バックエンドは、ウィンドウが見つかるまですべての祖先を遡って探索します。(これは、祖先の中に少なくとも1つのインターフェースが有効なQWindow ポインタを返す必要があることを意味します)。

デフォルトの実装は、nullptr を返します。

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