diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-07-14 18:32:31 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-07-15 16:33:48 +0200 |
commit | d5fa096056b033203d9a54497e1554f153a19d93 (patch) | |
tree | 587561be12137594d389834d1ed09f4be59b0220 /src/core/browser_accessibility_manager_qt.cpp | |
parent | 28f493a9310b370d23a874e4893587b7fb931fa5 (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.cpp | 33 |
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; } |