이 페이지에서

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 애플리케이션용 접근성(Accessibility)의 일부입니다.

스크린 리더나 점자 디스플레이와 같은 접근성 도구(AT 클라이언트라고도 함)는 애플리케이션 내의 접근 가능한 객체에 대한 고수준 정보를 필요로 합니다. 접근 가능한 객체는 특화된 입력 및 출력 방법을 제공하여, 사용자가 지원되는 애플리케이션(AT 서버)에서 접근성 도구를 사용할 수 있도록 합니다.

사용자가 상호 작용하거나 반응해야 하는 모든 요소는 접근 가능한 객체이며, 이러한 정보를 제공해야 합니다. 이들은 주로 위젯 및 위젯 요소와 같은 시각적 객체이지만, 소리 같은 콘텐츠일 수도 있습니다.

AT 클라이언트는 애플리케이션 내의 모든 접근 가능한 객체에 대한 정보를 획득하기 위해 세 가지 기본 개념을 사용합니다:

  • 속성: 클라이언트는 접근 가능한 객체에 대한 정보를 읽을 수 있습니다. 경우에 따라 클라이언트는 이러한 속성을 수정할 수도 있습니다(예: 라인 편집 상자의 텍스트).
  • 동작: 클라이언트는 버튼을 누르는 등의 동작을 호출할 수 있습니다.
  • 관계 및 탐색: 클라이언트는 객체 간의 관계를 이용하여 한 접근 가능한 객체에서 다른 객체로 이동할 수 있습니다.

QAccessibleInterface는 이 세 가지 개념을 위한 API를 정의합니다.

관계 및 탐색

childCount() 및 indexOfChild() 함수는 접근 가능한 객체의 자식 개체 수와 자식 개체가 부모 내에서 차지하는 인덱스를 반환합니다. childAt() 함수는 지정된 위치에서 발견된 자식 QAccessibleInterface를 반환합니다. 자식 객체는 반드시 직접적인 자식일 필요는 없습니다. 이를 통해 부모 객체가 최상위 자식 객체를 이미 알고 있는 경우 중간 계층을 건너뛸 수 있습니다. ` childAt()` 함수는 히트 테스트(마우스 아래에 있는 객체 찾기)에 사용됩니다.

relations() 함수는 객체가 다른 객체와 맺고 있는 관계에 대한 정보를 제공하며, parent() 및 child() 함수를 사용하면 한 객체에서 다른 객체로 이동할 수 있습니다.

속성

접근 가능한 객체의 핵심 속성은 해당 객체가 어떤 역할( role)을 가지고 있는가입니다. 서로 다른 객체가 동일한 역할을 가질 수 있습니다. 예를 들어, 스크롤 바의 “줄 추가” 요소와 대화 상자의 “ OK ” 버튼은 모두 “button”이라는 동일한 역할을 가집니다. 역할은 사용자가 사용자 인터페이스 요소와 어떤 종류의 상호 작용을 수행할 수 있는지를 나타냅니다.

객체의 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`를 반환합니다. 반환된 `accessible`은 자식 요소여야 하지만, 반드시 직접적인 자식일 필요는 없습니다.

이 함수는 보이는 객체에 대해서만 신뢰할 수 있습니다(보이지 않는 객체는 레이아웃이 올바르게 설정되지 않을 수 있음).

모든 시각적 객체는 이 정보를 제공합니다.

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 `를 반환합니다.

특화된 인터페이스를 통해 위젯이나 객체에 대한 추가 정보를 제공해야 할 경우, 이 함수를 재구현해야 합니다. 예를 들어, 라인 편집(line edit)은 ` 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 속성은 읽기 전용이므로, 이 함수를 호출해도 아무런 효과가 없을 수 있습니다.

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 클라이언트에 알리기 위해 이 메서드가 사용됩니다. 백엔드는 창을 찾을 때까지 모든 상위 객체를 순차적으로 탐색합니다. (즉, 상위 객체 중 적어도 하나는 유효한 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.