summaryrefslogtreecommitdiffstats
path: root/src/core/browser_accessibility_manager_qt.cpp
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-07-14 18:32:31 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-07-15 16:33:48 +0200
commitd5fa096056b033203d9a54497e1554f153a19d93 (patch)
tree587561be12137594d389834d1ed09f4be59b0220 /src/core/browser_accessibility_manager_qt.cpp
parent28f493a9310b370d23a874e4893587b7fb931fa5 (diff)
Implement accessible text interface
Change-Id: I3a9143c61ecda98513be031fc554fd4bfcef7b7c Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Diffstat (limited to 'src/core/browser_accessibility_manager_qt.cpp')
-rw-r--r--src/core/browser_accessibility_manager_qt.cpp33
1 files changed, 29 insertions, 4 deletions
diff --git a/src/core/browser_accessibility_manager_qt.cpp b/src/core/browser_accessibility_manager_qt.cpp
index 8c2c3444a..7d1050774 100644
--- a/src/core/browser_accessibility_manager_qt.cpp
+++ b/src/core/browser_accessibility_manager_qt.cpp
@@ -84,7 +84,6 @@ void BrowserAccessibilityManagerQt::NotifyAccessibilityEvent(blink::WebAXEvent e
break;
}
case WebAXEventCheckedStateChanged: {
- BrowserAccessibilityQt *iface = static_cast<BrowserAccessibilityQt*>(node);
QAccessible::State change;
change.checked = true;
QAccessibleStateChangeEvent event(iface, change);
@@ -105,12 +104,38 @@ void BrowserAccessibilityManagerQt::NotifyAccessibilityEvent(blink::WebAXEvent e
break;
case WebAXEventLoadComplete:
break;
- case WebAXEventTextChanged:
+
+ case WebAXEventTextChanged: {
+ QAccessibleTextUpdateEvent event(iface, -1, QString(), QString());
+ QAccessible::updateAccessibility(&event);
break;
- case WebAXEventTextInserted:
+ }
+ case WebAXEventTextInserted: {
+ QAccessibleTextInsertEvent event(iface, -1, QString());
+ QAccessible::updateAccessibility(&event);
break;
- case WebAXEventTextRemoved:
+ }
+ case WebAXEventTextRemoved: {
+ QAccessibleTextRemoveEvent event(iface, -1, QString());
+ QAccessible::updateAccessibility(&event);
+ break;
+ }
+ case WebAXEventSelectedTextChanged: {
+ QAccessibleTextInterface *textIface = iface->textInterface();
+ if (textIface) {
+ int start = 0;
+ int end = 0;
+ textIface->selection(0, &start, &end);
+ if (start == end) {
+ QAccessibleTextCursorEvent event(iface, start);
+ QAccessible::updateAccessibility(&event);
+ } else {
+ QAccessibleTextSelectionEvent event(iface, start, end);
+ QAccessible::updateAccessibility(&event);
+ }
+ }
break;
+ }
default:
break;
}