summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/browser_accessibility_qt.cpp24
-rw-r--r--src/core/browser_accessibility_qt.h6
2 files changed, 30 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);
diff --git a/src/core/browser_accessibility_qt.h b/src/core/browser_accessibility_qt.h
index 2c85b3349..5a0e4f026 100644
--- a/src/core/browser_accessibility_qt.h
+++ b/src/core/browser_accessibility_qt.h
@@ -50,6 +50,7 @@ namespace content {
class BrowserAccessibilityQt
: public BrowserAccessibility
, public QAccessibleInterface
+ , public QAccessibleActionInterface
, public QAccessibleTextInterface
, public QAccessibleValueInterface
{
@@ -80,6 +81,11 @@ public:
void NativeReleaseReference() Q_DECL_OVERRIDE;
bool IsNative() const Q_DECL_OVERRIDE { return true; }
+ // QAccessibleActionInterface
+ QStringList actionNames() const Q_DECL_OVERRIDE;
+ void doAction(const QString &actionName) Q_DECL_OVERRIDE;
+ QStringList keyBindingsForAction(const QString &actionName) const Q_DECL_OVERRIDE;
+
// QAccessibleTextInterface
void addSelection(int startOffset, int endOffset) Q_DECL_OVERRIDE;
QString attributes(int offset, int *startOffset, int *endOffset) const Q_DECL_OVERRIDE;