summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Arve Sæther <jan-arve.saether@qt.io>2021-05-20 11:16:04 +0200
committerJan Arve Sæther <jan-arve.saether@qt.io>2021-06-03 19:00:37 +0200
commit491ea140df524a8ea6bafe08b5375583113e5248 (patch)
tree2ca3edbe0e38c8cf1e008ee5d0d392ee8e325129
parentf00c63093b0313f3385d158739af5cdc3105d89c (diff)
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>
-rw-r--r--src/gui/accessible/qaccessible.cpp39
-rw-r--r--src/gui/accessible/qaccessible.h18
2 files changed, 56 insertions, 1 deletions
diff --git a/src/gui/accessible/qaccessible.cpp b/src/gui/accessible/qaccessible.cpp
index dc6794ac9c..1ba206e82a 100644
--- a/src/gui/accessible/qaccessible.cpp
+++ b/src/gui/accessible/qaccessible.cpp
@@ -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
diff --git a/src/gui/accessible/qaccessible.h b/src/gui/accessible/qaccessible.h
index c47ff41207..521cfb855b 100644
--- a/src/gui/accessible/qaccessible.h
+++ b/src/gui/accessible/qaccessible.h
@@ -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
{