diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-07-15 11:03:37 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-07-15 16:34:03 +0200 |
commit | 51ac037c2082a4f6681eda07795869f4c14488e1 (patch) | |
tree | 238d9d58b826a055eb9c54973029867db7c3d16b /src/core/browser_accessibility_qt.cpp | |
parent | d5fa096056b033203d9a54497e1554f153a19d93 (diff) |
Implement accessible value interface
Change-Id: I837d7f3041aec59ae83c0fe802bc83b746e62b76
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Diffstat (limited to 'src/core/browser_accessibility_qt.cpp')
-rw-r--r-- | src/core/browser_accessibility_qt.cpp | 54 |
1 files changed, 52 insertions, 2 deletions
diff --git a/src/core/browser_accessibility_qt.cpp b/src/core/browser_accessibility_qt.cpp index 7a7895a94..1e478c212 100644 --- a/src/core/browser_accessibility_qt.cpp +++ b/src/core/browser_accessibility_qt.cpp @@ -78,6 +78,15 @@ void *BrowserAccessibilityQt::interface_cast(QAccessible::InterfaceType type) if (IsEditableText()) return static_cast<QAccessibleTextInterface*>(this); break; + case QAccessible::ValueInterface: { + QAccessible::Role r = role(); + if (r == QAccessible::ProgressBar || + r == QAccessible::Slider || + r == QAccessible::ScrollBar || + r == QAccessible::SpinBox) + return static_cast<QAccessibleValueInterface*>(this); + break; + } default: break; } @@ -271,7 +280,7 @@ QAccessible::Role BrowserAccessibilityQt::role() const case WebAXRolePresentational: return QAccessible::NoRole; // FIXME case WebAXRoleProgressIndicator: - return QAccessible::NoRole; // FIXME + return QAccessible::ProgressBar; case WebAXRoleRadioButton: return QAccessible::RadioButton; case WebAXRoleRadioGroup: @@ -297,7 +306,7 @@ QAccessible::Role BrowserAccessibilityQt::role() const case WebAXRoleSliderThumb: return QAccessible::NoRole; // FIXME case WebAXRoleSpinButton: - return QAccessible::NoRole; // FIXME + return QAccessible::SpinBox; case WebAXRoleSpinButtonPart: return QAccessible::NoRole; // FIXME case WebAXRoleSplitter: @@ -506,4 +515,45 @@ void BrowserAccessibilityQt::scrollToSubstring(int startIndex, int endIndex) manager()->ScrollToMakeVisible(*this, GetLocalBoundsForRange(startIndex, endIndex - startIndex)); } +QVariant BrowserAccessibilityQt::currentValue() const +{ + QVariant result; + float value; + if (GetFloatAttribute(AccessibilityNodeData::ATTR_VALUE_FOR_RANGE, &value)) { + result = (double) value; + } + return result; +} + +void BrowserAccessibilityQt::setCurrentValue(const QVariant &value) +{ + // not yet implemented anywhere in blink + QT_NOT_YET_IMPLEMENTED +} + +QVariant BrowserAccessibilityQt::maximumValue() const +{ + QVariant result; + float value; + if (GetFloatAttribute(AccessibilityNodeData::ATTR_MAX_VALUE_FOR_RANGE, &value)) { + result = (double) value; + } + return result; +} + +QVariant BrowserAccessibilityQt::minimumValue() const +{ + QVariant result; + float value; + if (GetFloatAttribute(AccessibilityNodeData::ATTR_MIN_VALUE_FOR_RANGE, &value)) { + result = (double) value; + } + return result; +} + +QVariant BrowserAccessibilityQt::minimumStepSize() const +{ + return QVariant(); +} + } // namespace content |