summaryrefslogtreecommitdiffstats
path: root/src/core/browser_accessibility_manager_qt.cpp
diff options
context:
space:
mode:
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;
}