Add a bunch of accessors to WebAccessibilityObject to expose more of
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 18 Aug 2011 20:22:47 +0000 (20:22 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 18 Aug 2011 20:22:47 +0000 (20:22 +0000)
AccessibilityObject to Chromium, including range control values,
document load state, live region attributes, and a few other
ARIA attributes.

https://bugs.webkit.org/show_bug.cgi?id=66411

Patch by Dominic Mazzoni <dmazzoni@google.com> on 2011-08-18
Reviewed by Dimitri Glazkov.

* public/WebAccessibilityObject.h:
* src/WebAccessibilityObject.cpp:
(WebKit::WebAccessibilityObject::isAriaReadOnly):
(WebKit::WebAccessibilityObject::isButtonStateMixed):
(WebKit::WebAccessibilityObject::isControl):
(WebKit::WebAccessibilityObject::isFocused):
(WebKit::WebAccessibilityObject::isLoaded):
(WebKit::WebAccessibilityObject::isRequired):
(WebKit::WebAccessibilityObject::isVertical):
(WebKit::WebAccessibilityObject::accessKey):
(WebKit::WebAccessibilityObject::ariaHasPopup):
(WebKit::WebAccessibilityObject::ariaLiveRegionAtomic):
(WebKit::WebAccessibilityObject::ariaLiveRegionBusy):
(WebKit::WebAccessibilityObject::ariaLiveRegionRelevant):
(WebKit::WebAccessibilityObject::ariaLiveRegionStatus):
(WebKit::WebAccessibilityObject::estimatedLoadingProgress):
(WebKit::WebAccessibilityObject::hierarchicalLevel):
(WebKit::WebAccessibilityObject::valueDescription):
(WebKit::WebAccessibilityObject::valueForRange):
(WebKit::WebAccessibilityObject::maxValueForRange):
(WebKit::WebAccessibilityObject::minValueForRange):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@93342 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/public/WebAccessibilityObject.h
Source/WebKit/chromium/src/WebAccessibilityObject.cpp

index eba8721..ba98c88 100644 (file)
@@ -1,3 +1,36 @@
+2011-08-18  Dominic Mazzoni  <dmazzoni@google.com>
+
+        Add a bunch of accessors to WebAccessibilityObject to expose more of
+        AccessibilityObject to Chromium, including range control values,
+        document load state, live region attributes, and a few other
+        ARIA attributes.
+
+        https://bugs.webkit.org/show_bug.cgi?id=66411
+
+        Reviewed by Dimitri Glazkov.
+
+        * public/WebAccessibilityObject.h:
+        * src/WebAccessibilityObject.cpp:
+        (WebKit::WebAccessibilityObject::isAriaReadOnly):
+        (WebKit::WebAccessibilityObject::isButtonStateMixed):
+        (WebKit::WebAccessibilityObject::isControl):
+        (WebKit::WebAccessibilityObject::isFocused):
+        (WebKit::WebAccessibilityObject::isLoaded):
+        (WebKit::WebAccessibilityObject::isRequired):
+        (WebKit::WebAccessibilityObject::isVertical):
+        (WebKit::WebAccessibilityObject::accessKey):
+        (WebKit::WebAccessibilityObject::ariaHasPopup):
+        (WebKit::WebAccessibilityObject::ariaLiveRegionAtomic):
+        (WebKit::WebAccessibilityObject::ariaLiveRegionBusy):
+        (WebKit::WebAccessibilityObject::ariaLiveRegionRelevant):
+        (WebKit::WebAccessibilityObject::ariaLiveRegionStatus):
+        (WebKit::WebAccessibilityObject::estimatedLoadingProgress):
+        (WebKit::WebAccessibilityObject::hierarchicalLevel):
+        (WebKit::WebAccessibilityObject::valueDescription):
+        (WebKit::WebAccessibilityObject::valueForRange):
+        (WebKit::WebAccessibilityObject::maxValueForRange):
+        (WebKit::WebAccessibilityObject::minValueForRange):
+
 2011-08-15  Dmitry Lomov  <dslomov@google.com>
 
         https://bugs.webkit.org/show_bug.cgi?id=61016
index c4f7611..364297e 100644 (file)
@@ -87,26 +87,41 @@ public:
     WEBKIT_EXPORT WebAccessibilityObject previousSibling() const;
 
     WEBKIT_EXPORT bool canSetSelectedAttribute() const;
+
     WEBKIT_EXPORT bool isAnchor() const;
+    WEBKIT_EXPORT bool isAriaReadOnly() const;
+    WEBKIT_EXPORT bool isButtonStateMixed() const;
     WEBKIT_EXPORT bool isChecked() const;
     WEBKIT_EXPORT bool isCollapsed() const;
-    WEBKIT_EXPORT bool isFocused() const;
+    WEBKIT_EXPORT bool isControl() const;
     WEBKIT_EXPORT bool isEnabled() const;
+    WEBKIT_EXPORT bool isFocused() const;
     WEBKIT_EXPORT bool isHovered() const;
     WEBKIT_EXPORT bool isIndeterminate() const;
     WEBKIT_EXPORT bool isLinked() const;
+    WEBKIT_EXPORT bool isLoaded() const;
     WEBKIT_EXPORT bool isMultiSelectable() const;
     WEBKIT_EXPORT bool isOffScreen() const;
     WEBKIT_EXPORT bool isPasswordField() const;
     WEBKIT_EXPORT bool isPressed() const;
     WEBKIT_EXPORT bool isReadOnly() const;
+    WEBKIT_EXPORT bool isRequired() const;
     WEBKIT_EXPORT bool isSelected() const;
+    WEBKIT_EXPORT bool isVertical() const;
     WEBKIT_EXPORT bool isVisible() const;
     WEBKIT_EXPORT bool isVisited() const;
 
+    WEBKIT_EXPORT WebString accessKey() const;
+    WEBKIT_EXPORT bool ariaHasPopup() const;
+    WEBKIT_EXPORT bool ariaLiveRegionAtomic() const;
+    WEBKIT_EXPORT bool ariaLiveRegionBusy() const;
+    WEBKIT_EXPORT WebString ariaLiveRegionRelevant() const;
+    WEBKIT_EXPORT WebString ariaLiveRegionStatus() const;
     WEBKIT_EXPORT WebRect boundingBoxRect() const;
+    WEBKIT_EXPORT double estimatedLoadingProgress() const;
     WEBKIT_EXPORT WebString helpText() const;
     WEBKIT_EXPORT int headingLevel() const;
+    WEBKIT_EXPORT int hierarchicalLevel() const;
     WEBKIT_EXPORT WebAccessibilityObject hitTest(const WebPoint&) const;
     WEBKIT_EXPORT WebString keyboardShortcut() const;
     WEBKIT_EXPORT bool performDefaultAction() const;
@@ -118,6 +133,11 @@ public:
     WEBKIT_EXPORT WebString title() const;
     WEBKIT_EXPORT WebURL url() const;
 
+    WEBKIT_EXPORT WebString valueDescription() const;
+    WEBKIT_EXPORT float valueForRange() const;
+    WEBKIT_EXPORT float maxValueForRange() const;
+    WEBKIT_EXPORT float minValueForRange() const;
+
     WEBKIT_EXPORT WebNode node() const;
     WEBKIT_EXPORT WebDocument document() const;
     WEBKIT_EXPORT bool hasComputedStyle() const;
index 48714d1..e5c23f0 100644 (file)
@@ -38,6 +38,7 @@
 #include "Document.h"
 #include "EventHandler.h"
 #include "FrameView.h"
+#include "HTMLNames.h"
 #include "Node.h"
 #include "PlatformKeyboardEvent.h"
 #include "RenderStyle.h"
@@ -212,6 +213,24 @@ bool WebAccessibilityObject::isAnchor() const
     return m_private->isAnchor();
 }
 
+bool WebAccessibilityObject::isAriaReadOnly() const
+{
+    if (m_private.isNull())
+        return 0;
+
+    m_private->updateBackingStore();
+    return equalIgnoringCase(m_private->getAttribute(HTMLNames::aria_readonlyAttr), "true");
+}
+
+bool WebAccessibilityObject::isButtonStateMixed() const
+{
+    if (m_private.isNull())
+        return 0;
+
+    m_private->updateBackingStore();
+    return m_private->checkboxOrRadioValue() == ButtonStateMixed;
+}
+
 bool WebAccessibilityObject::isChecked() const
 {
     if (m_private.isNull())
@@ -230,14 +249,13 @@ bool WebAccessibilityObject::isCollapsed() const
     return m_private->isCollapsed();
 }
 
-
-bool WebAccessibilityObject::isFocused() const
+bool WebAccessibilityObject::isControl() const
 {
     if (m_private.isNull())
         return 0;
 
     m_private->updateBackingStore();
-    return m_private->isFocused();
+    return m_private->isControl();
 }
 
 bool WebAccessibilityObject::isEnabled() const
@@ -249,6 +267,15 @@ bool WebAccessibilityObject::isEnabled() const
     return m_private->isEnabled();
 }
 
+bool WebAccessibilityObject::isFocused() const
+{
+    if (m_private.isNull())
+        return 0;
+
+    m_private->updateBackingStore();
+    return m_private->isFocused();
+}
+
 bool WebAccessibilityObject::isHovered() const
 {
     if (m_private.isNull())
@@ -276,6 +303,15 @@ bool WebAccessibilityObject::isLinked() const
     return m_private->isLinked();
 }
 
+bool WebAccessibilityObject::isLoaded() const
+{
+    if (m_private.isNull())
+        return 0;
+
+    m_private->updateBackingStore();
+    return m_private->isLoaded();
+}
+
 bool WebAccessibilityObject::isMultiSelectable() const
 {
     if (m_private.isNull())
@@ -321,6 +357,15 @@ bool WebAccessibilityObject::isReadOnly() const
     return m_private->isReadOnly();
 }
 
+bool WebAccessibilityObject::isRequired() const
+{
+    if (m_private.isNull())
+        return 0;
+
+    m_private->updateBackingStore();
+    return m_private->isRequired();
+}
+
 bool WebAccessibilityObject::isSelected() const
 {
     if (m_private.isNull())
@@ -330,6 +375,15 @@ bool WebAccessibilityObject::isSelected() const
     return m_private->isSelected();
 }
 
+bool WebAccessibilityObject::isVertical() const
+{
+    if (m_private.isNull())
+        return 0;
+
+    m_private->updateBackingStore();
+    return m_private->orientation() == AccessibilityOrientationVertical;
+}
+
 bool WebAccessibilityObject::isVisible() const
 {
     if (m_private.isNull())
@@ -348,6 +402,60 @@ bool WebAccessibilityObject::isVisited() const
     return m_private->isVisited();
 }
 
+WebString WebAccessibilityObject::accessKey() const
+{
+    if (m_private.isNull())
+        return WebString();
+
+    m_private->updateBackingStore();
+    return WebString(m_private->accessKey());
+}
+
+bool WebAccessibilityObject::ariaHasPopup() const
+{
+    if (m_private.isNull())
+        return 0;
+
+    m_private->updateBackingStore();
+    return m_private->ariaHasPopup();
+}
+
+bool WebAccessibilityObject::ariaLiveRegionAtomic() const
+{
+    if (m_private.isNull())
+        return 0;
+
+    m_private->updateBackingStore();
+    return m_private->ariaLiveRegionAtomic();
+}
+
+bool WebAccessibilityObject::ariaLiveRegionBusy() const
+{
+    if (m_private.isNull())
+        return 0;
+
+    m_private->updateBackingStore();
+    return m_private->ariaLiveRegionBusy();
+}
+
+WebString WebAccessibilityObject::ariaLiveRegionRelevant() const
+{
+    if (m_private.isNull())
+        return WebString();
+
+    m_private->updateBackingStore();
+    return m_private->ariaLiveRegionRelevant();
+}
+
+WebString WebAccessibilityObject::ariaLiveRegionStatus() const
+{
+    if (m_private.isNull())
+        return WebString();
+
+    m_private->updateBackingStore();
+    return m_private->ariaLiveRegionStatus();
+}
+
 WebRect WebAccessibilityObject::boundingBoxRect() const
 {
     if (m_private.isNull())
@@ -357,6 +465,15 @@ WebRect WebAccessibilityObject::boundingBoxRect() const
     return m_private->boundingBoxRect();
 }
 
+double WebAccessibilityObject::estimatedLoadingProgress() const
+{
+    if (m_private.isNull())
+        return 0.0;
+
+    m_private->updateBackingStore();
+    return m_private->estimatedLoadingProgress();
+}
+
 WebString WebAccessibilityObject::helpText() const
 {
     if (m_private.isNull())
@@ -375,6 +492,15 @@ int WebAccessibilityObject::headingLevel() const
     return m_private->headingLevel();
 }
 
+int WebAccessibilityObject::hierarchicalLevel() const
+{
+    if (m_private.isNull())
+        return 0;
+
+    m_private->updateBackingStore();
+    return m_private->hierarchicalLevel();
+}
+
 WebAccessibilityObject WebAccessibilityObject::hitTest(const WebPoint& point) const
 {
     if (m_private.isNull())
@@ -493,6 +619,42 @@ WebURL WebAccessibilityObject::url() const
     return m_private->url();
 }
 
+WebString WebAccessibilityObject::valueDescription() const
+{
+    if (m_private.isNull())
+        return WebString();
+
+    m_private->updateBackingStore();
+    return m_private->valueDescription();
+}
+
+float WebAccessibilityObject::valueForRange() const
+{
+    if (m_private.isNull())
+        return 0.0;
+
+    m_private->updateBackingStore();
+    return m_private->valueForRange();
+}
+
+float WebAccessibilityObject::maxValueForRange() const
+{
+    if (m_private.isNull())
+        return 0.0;
+
+    m_private->updateBackingStore();
+    return m_private->maxValueForRange();
+}
+
+float WebAccessibilityObject::minValueForRange() const
+{
+    if (m_private.isNull())
+        return 0.0;
+
+    m_private->updateBackingStore();
+    return m_private->minValueForRange();
+}
+
 WebNode WebAccessibilityObject::node() const
 {
     if (m_private.isNull())