diff options
Diffstat (limited to 'Source/WebCore/accessibility/AccessibilityObject.cpp')
-rw-r--r-- | Source/WebCore/accessibility/AccessibilityObject.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/Source/WebCore/accessibility/AccessibilityObject.cpp b/Source/WebCore/accessibility/AccessibilityObject.cpp index ed071e216..e675be2f3 100644 --- a/Source/WebCore/accessibility/AccessibilityObject.cpp +++ b/Source/WebCore/accessibility/AccessibilityObject.cpp @@ -72,6 +72,7 @@ AccessibilityObject::AccessibilityObject() : m_id(0) , m_haveChildren(false) , m_role(UnknownRole) + , m_cachedIsIgnoredValue(DefaultBehavior) #if PLATFORM(GTK) , m_wrapper(0) #elif PLATFORM(CHROMIUM) @@ -1417,7 +1418,6 @@ static ARIARoleMap* createARIARoleMap() { "radiogroup", RadioGroupRole }, { "region", DocumentRegionRole }, { "row", RowRole }, - { "range", SliderRole }, { "scrollbar", ScrollBarRole }, { "search", LandmarkSearchRole }, { "separator", SplitterRole }, @@ -1771,6 +1771,28 @@ void AccessibilityObject::scrollToGlobalPoint(const IntPoint& globalPoint) const } } +bool AccessibilityObject::cachedIsIgnoredValue() +{ + if (m_cachedIsIgnoredValue == DefaultBehavior) + m_cachedIsIgnoredValue = accessibilityIsIgnored() ? IgnoreObject : IncludeObject; + + return m_cachedIsIgnoredValue == IgnoreObject; +} + +void AccessibilityObject::setCachedIsIgnoredValue(bool isIgnored) +{ + m_cachedIsIgnoredValue = isIgnored ? IgnoreObject : IncludeObject; +} + +void AccessibilityObject::notifyIfIgnoredValueChanged() +{ + bool isIgnored = accessibilityIsIgnored(); + if (cachedIsIgnoredValue() != isIgnored) { + axObjectCache()->childrenChanged(parentObject()); + setCachedIsIgnoredValue(isIgnored); + } +} + bool AccessibilityObject::ariaPressedIsPresent() const { return !getAttribute(aria_pressedAttr).isEmpty(); |