Add QAccessibleHyperlinkInterface

This is needed in order to support hyperlinks in text content.

Task-number: QTBUG-67878
Change-Id: I1e990a5db8f0cf78e5cdcec7359e5aabffe42e3d
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
bb10
Jan Arve Sæther 2021-05-20 11:16:04 +02:00
parent f00c63093b
commit 491ea140df
2 changed files with 56 additions and 1 deletions

View File

@ -448,6 +448,7 @@ Q_LOGGING_CATEGORY(lcAccessibilityCore, "qt.accessibility.core");
\omitvalue ImageInterface \omit For objects that represent an image. This interface is generally less important. \endomit
\value TableInterface For lists, tables and trees.
\value TableCellInterface For cells in a TableInterface object.
\value HyperlinkInterface For hyperlink nodes (usually embedded as children of text nodes)
\sa QAccessibleInterface::interface_cast(), QAccessibleTextInterface, QAccessibleValueInterface, QAccessibleActionInterface, QAccessibleTableInterface, QAccessibleTableCellInterface
*/
@ -2958,6 +2959,44 @@ QString qAccessibleLocalizedActionDescription(const QString &actionName)
return accessibleActionStrings()->localizedDescription(actionName);
}
/*!
\internal
\fn QString QAccessibleHyperlinkInterface::anchor() const
The logical/human readable name of the hyperlink
*/
/*!
\internal
\fn QString QAccessibleHyperlinkInterface::anchorTarget() const
The target url of the hyperlink
*/
/*!
\internal
\fn int QAccessibleHyperlinkInterface::startIndex() const
Returns the start index that will refer to the first character in the text where the hyperlink
begins. The index corresponds to the index that the QAccessibleTextInterface needs in order
to find the start of the hyperlink.
*/
/*!
\internal
\fn int QAccessibleHyperlinkInterface::endIndex() const
Returns the end index that will refer to the first character in the text where the hyperlink
begins. The index corresponds to the index that the QAccessibleTextInterface needs in order
to find the end of the hyperlink.
*/
QAccessibleHyperlinkInterface::~QAccessibleHyperlinkInterface()
{
}
#endif // QT_NO_ACCESSIBILITY
QT_END_NAMESPACE

View File

@ -384,7 +384,8 @@ public:
ActionInterface,
ImageInterface,
TableInterface,
TableCellInterface
TableCellInterface,
HyperlinkInterface
};
enum TextBoundaryType {
@ -451,6 +452,7 @@ class QAccessibleActionInterface;
class QAccessibleImageInterface;
class QAccessibleTableInterface;
class QAccessibleTableCellInterface;
class QAccessibleHyperlinkInterface;
class QAccessibleTableModelChangeEvent;
class Q_GUI_EXPORT QAccessibleInterface
@ -508,6 +510,9 @@ public:
inline QAccessibleTableCellInterface *tableCellInterface()
{ return reinterpret_cast<QAccessibleTableCellInterface *>(interface_cast(QAccessible::TableCellInterface)); }
inline QAccessibleHyperlinkInterface *hyperlinkInterface()
{ return reinterpret_cast<QAccessibleHyperlinkInterface *>(interface_cast(QAccessible::HyperlinkInterface)); }
virtual void virtual_hook(int id, void *data);
virtual void *interface_cast(QAccessible::InterfaceType)
@ -659,6 +664,17 @@ public:
virtual QPoint imagePosition() const = 0;
};
class Q_GUI_EXPORT QAccessibleHyperlinkInterface
{
public:
virtual ~QAccessibleHyperlinkInterface();
virtual QString anchor() const = 0;
virtual QString anchorTarget() const = 0;
virtual int startIndex() const = 0;
virtual int endIndex() const = 0;
virtual bool isValid() const = 0;
};
class Q_GUI_EXPORT QAccessibleEvent
{