diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-09-19 13:43:03 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-10-25 07:03:39 +0000 |
commit | 2e0653699ca849714cfe1481068b02539df46cd5 (patch) | |
tree | ca12a0f39bb3573681f999c27b8994029947aa40 /src/core/browser_accessibility_qt.cpp | |
parent | 049a2ef68fe37d86b1367fcaf5844aadf0e3fd96 (diff) |
Adaptations to 61-based
Change-Id: I5cb198445f283c6cea8187a1a2883896df0ee918
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'src/core/browser_accessibility_qt.cpp')
-rw-r--r-- | src/core/browser_accessibility_qt.cpp | 54 |
1 files changed, 41 insertions, 13 deletions
diff --git a/src/core/browser_accessibility_qt.cpp b/src/core/browser_accessibility_qt.cpp index cafc4f5ad..e31951307 100644 --- a/src/core/browser_accessibility_qt.cpp +++ b/src/core/browser_accessibility_qt.cpp @@ -160,7 +160,7 @@ QString BrowserAccessibilityQt::text(QAccessible::Text t) const case QAccessible::Value: return toQt(GetStringAttribute(ui::AX_ATTR_VALUE)); case QAccessible::Accelerator: - return toQt(GetStringAttribute(ui::AX_ATTR_SHORTCUT)); + return toQt(GetStringAttribute(ui::AX_ATTR_KEY_SHORTCUTS)); default: break; } @@ -458,18 +458,16 @@ QAccessible::State BrowserAccessibilityQt::state() const int32_t s = GetState(); if (s & (1 << ui::AX_STATE_BUSY)) state.busy = true; - if (s & (1 << ui::AX_CHECKED_STATE_TRUE)) - state.checked = true; if (s & (1 << ui::AX_STATE_COLLAPSED)) state.collapsed = true; - if (s & (1 << ui::AX_STATE_DISABLED)) - state.disabled = true; + if (s & (1 << ui::AX_STATE_DEFAULT)) + state.defaultButton = true; + if (s & (1 << ui::AX_STATE_EDITABLE)) + state.editable = true; if (s & (1 << ui::AX_STATE_EXPANDED)) state.expanded = true; if (s & (1 << ui::AX_STATE_FOCUSABLE)) state.focusable = true; - if (manager()->GetFocus() == this) - state.focused = true; if (s & (1 << ui::AX_STATE_HASPOPUP)) state.hasPopup = true; if (s & (1 << ui::AX_STATE_HOVERED)) @@ -482,14 +480,12 @@ QAccessible::State BrowserAccessibilityQt::state() const state.multiSelectable = true; if (s & (1 << ui::AX_STATE_OFFSCREEN)) state.offscreen = true; - if (s & (1 << ui::AX_STATE_PRESSED)) - state.pressed = true; if (s & (1 << ui::AX_STATE_PROTECTED)) {} // FIXME - if (s & (1 << ui::AX_STATE_READ_ONLY)) - state.readOnly = true; if (s & (1 << ui::AX_STATE_REQUIRED)) {} // FIXME + if (s & (1 << ui::AX_STATE_RICHLY_EDITABLE)) + {} // FIXME if (s & (1 << ui::AX_STATE_SELECTABLE)) state.selectable = true; if (s & (1 << ui::AX_STATE_SELECTED)) @@ -498,8 +494,40 @@ QAccessible::State BrowserAccessibilityQt::state() const {} // FIXME if (s & (1 << ui::AX_STATE_VISITED)) {} // FIXME - if (HasState(ui::AX_STATE_EDITABLE)) - state.editable = true; + + if (manager()->GetFocus() == this) + state.focused = true; + if (HasIntAttribute(ui::AX_ATTR_CHECKED_STATE)) { + ui::AXCheckedState checkedState = (ui::AXCheckedState)GetIntAttribute(ui::AX_ATTR_CHECKED_STATE); + switch (checkedState) { + case ui::AX_CHECKED_STATE_TRUE: + if (GetRole() == ui::AX_ROLE_TOGGLE_BUTTON) + state.pressed = true; + else + state.checked = true; + break; + case ui::AX_CHECKED_STATE_MIXED: + state.checkStateMixed = true; + break; + case ui::AX_CHECKED_STATE_FALSE: + case ui::AX_CHECKED_STATE_NONE: + break; + } + } + if (HasIntAttribute(ui::AX_ATTR_RESTRICTION)) { + ui::AXRestriction restriction = (ui::AXRestriction)GetIntAttribute(ui::AX_ATTR_RESTRICTION); + switch (restriction) { + case ui::AX_RESTRICTION_READ_ONLY: + state.readOnly = true; + break; + case ui::AX_RESTRICTION_DISABLED: + state.disabled = true; + break; + case ui::AX_RESTRICTION_NONE: + break; + } + } + return state; } |