summaryrefslogtreecommitdiff
path: root/Source/WebCore/accessibility/AccessibilityObject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/accessibility/AccessibilityObject.cpp')
-rw-r--r--Source/WebCore/accessibility/AccessibilityObject.cpp24
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();