summaryrefslogtreecommitdiffstats
path: root/src/core/browser_accessibility_qt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/browser_accessibility_qt.cpp')
-rw-r--r--src/core/browser_accessibility_qt.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/core/browser_accessibility_qt.cpp b/src/core/browser_accessibility_qt.cpp
index 106a71d4c..f71a50610 100644
--- a/src/core/browser_accessibility_qt.cpp
+++ b/src/core/browser_accessibility_qt.cpp
@@ -80,6 +80,10 @@ QAccessibleInterface *BrowserAccessibilityQt::childAt(int x, int y) const
void *BrowserAccessibilityQt::interface_cast(QAccessible::InterfaceType type)
{
switch (type) {
+ case QAccessible::ActionInterface:
+ if (!actionNames().isEmpty())
+ return static_cast<QAccessibleActionInterface*>(this);
+ break;
case QAccessible::TextInterface:
if (IsEditableText())
return static_cast<QAccessibleTextInterface*>(this);
@@ -436,6 +440,26 @@ void BrowserAccessibilityQt::NativeReleaseReference()
QAccessible::deleteAccessibleInterface(interfaceId);
}
+QStringList BrowserAccessibilityQt::actionNames() const
+{
+ QStringList actions;
+ if (HasState(blink::WebAXStateFocusable))
+ actions << QAccessibleActionInterface::setFocusAction();
+ return actions;
+}
+
+void BrowserAccessibilityQt::doAction(const QString &actionName)
+{
+ if (actionName == QAccessibleActionInterface::setFocusAction())
+ manager()->SetFocus(this, true);
+}
+
+QStringList BrowserAccessibilityQt::keyBindingsForAction(const QString &actionName) const
+{
+ QT_NOT_YET_IMPLEMENTED
+ return QStringList();
+}
+
void BrowserAccessibilityQt::addSelection(int startOffset, int endOffset)
{
manager()->SetTextSelection(*this, startOffset, endOffset);