Класс QAccessibleInterface
Класс QAccessibleInterface определяет интерфейс, который предоставляет информацию об объектах с возможностью доступа. Подробнее...
| Заголовок: | #include <QAccessibleInterface> |
| qmake: | QT += gui |
| Наследуется от: |
Открытые функции
| 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 QVector<QPair<QAccessibleInterface *, QAccessible::Relation> > | relations(QAccessible::Relation match) const |
| virtual QAccessible::Role | role() const = 0 |
| 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() |
| virtual QWindow * | window() const |
Защищённые функции
| virtual | ~QAccessibleInterface() |
Подробное описание
Класс QAccessibleInterface определяет интерфейс, который предоставляет информацию об объектах с возможностью доступа.
Этот класс входит в состав Доступности для приложений QWidget.
Инструменты для обеспечения доступности (также называемые клиентами AT), такие как программы чтения с экрана или устройства для вывода шрифтов Брайля, нуждаются в высокоуровневой информации об объектах с возможностью доступа в приложении. Объекты с возможностью доступа предоставляют специализированные методы ввода и вывода, позволяя пользователям использовать инструменты обеспечения доступности с активированными приложениями (серверами AT).
Каждый элемент, с которым пользователь должен взаимодействовать или на который должен реагировать, является объектом с возможностью доступа и должен предоставлять эту информацию. В основном это визуальные объекты, такие как виджеты и элементы виджетов, но также могут быть и элементы содержимого, такие как звуки.
Клиент AT использует три основных понятия для получения информации об любом объекте с возможностью доступа в приложении:
- Свойства Клиент может считывать информацию об объектах с возможностью доступа. В некоторых случаях клиент также может изменять эти свойства, например, текст в поле ввода.
- Действия Клиент может вызывать действия, такие как нажатие кнопки или.
- Связи и навигация Клиент может перемещаться от одного объекта с возможностью доступа к другому, используя связи между объектами.
Класс QAccessibleInterface определяет API для этих трех понятий.
Связи и навигация
Функции childCount() и indexOfChild() возвращают количество дочерних объектов объекта с возможностью доступа и индекс дочернего объекта в его родительском объекте. Функция childAt() возвращает дочерний объект QAccessibleInterface, который находится в заданной позиции. Дочерний объект не обязательно должен быть непосредственным потомком. Это позволяет обойти промежуточные слои, когда родительский объект уже знает самый верхний дочерний объект. childAt() используется для проверки попадания (поиск объекта под курсором мыши).
Функция relations() предоставляет информацию о связях объекта с другими объектами, а функции parent() и child() позволяют переходить от одного объекта к другому.
Свойства
Основным свойством объекта с возможностью доступа является то, какой role() у него есть. Различные объекты могут иметь одинаковый role, например, и элемент "Добавить строку" в полосе прокрутки, и кнопка OK в диалоговом окне имеют один и тот же role, "button". Role определяет, какие виды взаимодействия пользователь может выполнять с элементом пользовательского интерфейса.
Свойство state() объекта — это комбинация различных флагов состояния и может описывать как отличие состояния объекта от "нормального" состояния, например, оно может быть недоступно, так и то, как оно ведет себя, например, оно может быть выбираемым.
Свойство text() предоставляет текстовую информацию об объекте. Обычно у объекта есть имя, но он может предоставлять расширенную информацию, такую как описание, текст справки или информацию о любых сочетаниях клавиш, которые он предоставляет. Некоторые объекты позволяют изменять свойство text() с помощью функции setText(), но эта информация в большинстве случаев является только для чтения.
Свойство rect() предоставляет информацию о геометрии объекта с возможностью доступа. Эта информация обычно доступна только для визуальных объектов.
Интерфейсы
Чтобы пользователь мог взаимодействовать с объектом с возможностью доступа, объект должен реализовывать QAccessibleActionInterface в дополнение к QAccessibleInterface. Объекты, поддерживающие выбор, могут определять действия для изменения выбора.
Существует несколько других интерфейсов, которые должны быть реализованы по мере необходимости. QAccessibleTextInterface следует использовать для больших текстовых редакторов, таких как просмотр документов. Этот интерфейс не следует реализовывать для меток/полей ввода одной строки.
Для ползунков, полос прокрутки и других селекторов числовых значений следует реализовать QAccessibleValueInterface.
Списки, таблицы и деревья должны реализовывать QAccessibleTableInterface.
См. также QAccessible, QAccessibleActionInterface, QAccessibleTextInterface, QAccessibleValueInterface и QAccessibleTableInterface.
Документация по функциям-членам
[virtual 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
Возвращает QAccessibleInterface дочернего элемента, содержащего экранные координаты (x, y). Если в этой позиции нет дочерних элементов, функция возвращает 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, или -1, если child не является дочерним элементом этого объекта.
Все объекты предоставляют информацию о своих дочерних элементах.
См. также childCount().
[virtual] void *QAccessibleInterface::interface_cast(QAccessible::InterfaceType type)
Возвращает специализированный интерфейс доступности type из общего интерфейса QAccessibleInterface.
Эта функция должна быть переопределена при предоставлении дополнительной информации о виджете или объекте через специализированные интерфейсы. Например, поле ввода должно реализовывать QAccessibleTextInterface.
Qt's QLineEdit, например, реализует поддержку доступности в QAccessibleLineEdit.
void *QAccessibleLineEdit::interface_cast(QAccessible::InterfaceType t)
{
if (t == QAccessible::TextInterface)
return static_cast<QAccessibleTextInterface*>(this);
return QAccessibleWidget::interface_cast(t);
} См. также QAccessible::InterfaceType, QAccessibleTextInterface, QAccessibleValueInterface, QAccessibleActionInterface, QAccessibleTableInterface и QAccessibleTableCellInterface.
[pure virtual] bool QAccessibleInterface::isValid() const
Возвращает true если все данные, необходимые для использования этой реализации интерфейса, являются корректными (например, все указатели не равны null); в противном случае возвращает 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] QVector<QPair<QAccessibleInterface *, QAccessible::Relation> > QAccessibleInterface::relations(QAccessible::Relation match) const
Возвращает значимые отношения с другими виджетами. Обычно это не отношения родитель/дочерний элемент, если только они не обрабатываются особым способом, например, в деревьях. Обычно возвращаются отношения "метка для" и "метка".
Можно фильтровать отношения с помощью match. Он никогда не должен возвращать себя.
[pure virtual] QAccessible::Role QAccessibleInterface::role() const
Возвращает роль объекта. Роль объекта обычно является статической.
Все объекты со свойством доступа имеют роль.
[pure virtual] void QAccessibleInterface::setText(QAccessible::Text t, const QString &text)
Устанавливает свойство текста t объекта на text.
Обратите внимание, что свойства текста большинства объектов являются только для чтения, поэтому вызов этой функции может не иметь эффекта.
См. также text().
[pure virtual] QAccessible::State QAccessibleInterface::state() const
Возвращает текущее состояние объекта. Возвращаемое значение представляет собой комбинацию флагов в перечислении QAccessible::StateFlag.
Все объекты со свойством доступа имеют состояние.
QAccessibleTableCellInterface *QAccessibleInterface::tableCellInterface()
QAccessibleTableInterface *QAccessibleInterface::tableInterface()
[pure virtual] QString QAccessibleInterface::text(QAccessible::Text t) const
Возвращает значение свойства текста t объекта.
Свойство QAccessible::Name — это строка, используемая клиентами для идентификации, поиска или объявления объекта со свойством доступа для пользователя. Все объекты должны иметь уникальное имя в своём контейнере. Имя может использоваться клиентами по-разному, поэтому имя должно давать краткое описание объекта и быть уникальным.
Свойство QAccessible::Description объекта со свойством доступа предоставляет текстовую информацию о визуальном представлении объекта. Описание в первую очередь используется для предоставления большего контекста для пользователей с нарушениями зрения, но также используется для поиска контекста или других применений. Не все объекты имеют описание. Кнопка «ОК» не нуждается в описании, но кнопка инструмента, показывающая изображение смайлика, нуждается.
Свойство QAccessible::Value объекта со свойством доступа представляет визуальную информацию, содержащуюся в объекте, например, текст в поле ввода. Обычно значение может быть изменено пользователем. Не все объекты имеют значение, например, статические метки текста не имеют, а у некоторых объектов состояние уже является значением, например, переключатели.
Текстовое свойство QAccessible::Help предоставляет информацию о функции и использовании объекта со свойством доступа. Не все объекты предоставляют эту информацию.
Свойство QAccessible::Accelerator — это сочетание клавиш для активации стандартного действия объекта. Сочетание клавиш — это подчеркнутый символ в тексте меню, пункта меню или виджета, и это либо сам символ, либо комбинация этого символа и клавиши-модификатора, например, Alt, Ctrl или Shift. Контрольные элементы, такие как кнопки инструмента, также имеют сочетания клавиш и обычно отображают их в своём всплывающем подсказке.
Все объекты предоставляют строку для QAccessible::Name.
См. также setText(), role() и state().
QAccessibleTextInterface *QAccessibleInterface::textInterface()
QAccessibleValueInterface *QAccessibleInterface::valueInterface()
[virtual] QWindow *QAccessibleInterface::window() const
Возвращает окно, связанное с базовым объектом. Например, QAccessibleWidget переопределяет этот метод и возвращает windowHandle() QWidget.
Используется на некоторых платформах для уведомления клиента AT об изменениях состояния. Бэкенд будет перебирать всех предков до тех пор, пока не найдёт окно. (Это означает, что хотя бы один интерфейс среди предков должен вернуть допустимый указатель QWindow).
Реализация по умолчанию возвращает nullptr.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qaccessibleinterface.html