summaryrefslogtreecommitdiff
path: root/Source/WebCore/accessibility/AccessibilityObject.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-09-10 19:10:20 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-09-10 19:10:20 +0200
commit284837daa07b29d6a63a748544a90b1f5842ac5c (patch)
treeecd258180bde91fe741e0cfd2638beb3c6da7e8e /Source/WebCore/accessibility/AccessibilityObject.cpp
parent2e2ba8ff45915f40ed3e014101269c175f2a89a0 (diff)
downloadqtwebkit-284837daa07b29d6a63a748544a90b1f5842ac5c.tar.gz
Imported WebKit commit 68645295d2e3e09af2c942f092556f06aa5f8b0d (http://svn.webkit.org/repository/webkit/trunk@128073)
New snapshot
Diffstat (limited to 'Source/WebCore/accessibility/AccessibilityObject.cpp')
-rw-r--r--Source/WebCore/accessibility/AccessibilityObject.cpp37
1 files changed, 36 insertions, 1 deletions
diff --git a/Source/WebCore/accessibility/AccessibilityObject.cpp b/Source/WebCore/accessibility/AccessibilityObject.cpp
index f867ec3ee..a5330684e 100644
--- a/Source/WebCore/accessibility/AccessibilityObject.cpp
+++ b/Source/WebCore/accessibility/AccessibilityObject.cpp
@@ -1294,6 +1294,19 @@ const AtomicString& AccessibilityObject::invalidStatus() const
return ariaInvalid;
}
+bool AccessibilityObject::hasAttribute(const QualifiedName& attribute) const
+{
+ Node* elementNode = node();
+ if (!elementNode)
+ return false;
+
+ if (!elementNode->isElementNode())
+ return false;
+
+ Element* element = static_cast<Element*>(elementNode);
+ return element->fastHasAttribute(attribute);
+}
+
const AtomicString& AccessibilityObject::getAttribute(const QualifiedName& attribute) const
{
Node* elementNode = node();
@@ -1340,6 +1353,15 @@ bool AccessibilityObject::isAncestorOfObject(const AccessibilityObject* axObject
return this == axObject || axObject->isDescendantOfObject(this);
}
+AccessibilityObject* AccessibilityObject::firstAnonymousBlockChild() const
+{
+ for (AccessibilityObject* child = firstChild(); child; child = child->nextSibling()) {
+ if (child->renderer() && child->renderer()->isAnonymousBlock())
+ return child;
+ }
+ return 0;
+}
+
typedef HashMap<String, AccessibilityRole, CaseFoldingHash> ARIARoleMap;
struct RoleEntry {
@@ -1474,7 +1496,12 @@ bool AccessibilityObject::isInsideARIALiveRegion() const
bool AccessibilityObject::supportsARIAAttributes() const
{
- return supportsARIALiveRegion() || supportsARIADragging() || supportsARIADropping() || supportsARIAFlowTo() || supportsARIAOwns();
+ return supportsARIALiveRegion()
+ || supportsARIADragging()
+ || supportsARIADropping()
+ || supportsARIAFlowTo()
+ || supportsARIAOwns()
+ || hasAttribute(aria_labelAttr);
}
bool AccessibilityObject::supportsARIALiveRegion() const
@@ -1534,6 +1561,14 @@ AccessibilitySortDirection AccessibilityObject::sortDirection() const
return SortDirectionNone;
}
+
+bool AccessibilityObject::supportsRangeValue() const
+{
+ return isProgressIndicator()
+ || isSlider()
+ || isScrollbar()
+ || isSpinButton();
+}
bool AccessibilityObject::supportsARIAExpanded() const
{