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

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: svn://svn.chromium.org/blink/trunk@93342 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 7e533605
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> 2011-08-15 Dmitry Lomov <dslomov@google.com>
https://bugs.webkit.org/show_bug.cgi?id=61016 https://bugs.webkit.org/show_bug.cgi?id=61016
......
...@@ -87,26 +87,41 @@ public: ...@@ -87,26 +87,41 @@ public:
WEBKIT_EXPORT WebAccessibilityObject previousSibling() const; WEBKIT_EXPORT WebAccessibilityObject previousSibling() const;
WEBKIT_EXPORT bool canSetSelectedAttribute() const; WEBKIT_EXPORT bool canSetSelectedAttribute() const;
WEBKIT_EXPORT bool isAnchor() const; WEBKIT_EXPORT bool isAnchor() const;
WEBKIT_EXPORT bool isAriaReadOnly() const;
WEBKIT_EXPORT bool isButtonStateMixed() const;
WEBKIT_EXPORT bool isChecked() const; WEBKIT_EXPORT bool isChecked() const;
WEBKIT_EXPORT bool isCollapsed() const; WEBKIT_EXPORT bool isCollapsed() const;
WEBKIT_EXPORT bool isFocused() const; WEBKIT_EXPORT bool isControl() const;
WEBKIT_EXPORT bool isEnabled() const; WEBKIT_EXPORT bool isEnabled() const;
WEBKIT_EXPORT bool isFocused() const;
WEBKIT_EXPORT bool isHovered() const; WEBKIT_EXPORT bool isHovered() const;
WEBKIT_EXPORT bool isIndeterminate() const; WEBKIT_EXPORT bool isIndeterminate() const;
WEBKIT_EXPORT bool isLinked() const; WEBKIT_EXPORT bool isLinked() const;
WEBKIT_EXPORT bool isLoaded() const;
WEBKIT_EXPORT bool isMultiSelectable() const; WEBKIT_EXPORT bool isMultiSelectable() const;
WEBKIT_EXPORT bool isOffScreen() const; WEBKIT_EXPORT bool isOffScreen() const;
WEBKIT_EXPORT bool isPasswordField() const; WEBKIT_EXPORT bool isPasswordField() const;
WEBKIT_EXPORT bool isPressed() const; WEBKIT_EXPORT bool isPressed() const;
WEBKIT_EXPORT bool isReadOnly() const; WEBKIT_EXPORT bool isReadOnly() const;
WEBKIT_EXPORT bool isRequired() const;
WEBKIT_EXPORT bool isSelected() const; WEBKIT_EXPORT bool isSelected() const;
WEBKIT_EXPORT bool isVertical() const;
WEBKIT_EXPORT bool isVisible() const; WEBKIT_EXPORT bool isVisible() const;
WEBKIT_EXPORT bool isVisited() 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 WebRect boundingBoxRect() const;
WEBKIT_EXPORT double estimatedLoadingProgress() const;
WEBKIT_EXPORT WebString helpText() const; WEBKIT_EXPORT WebString helpText() const;
WEBKIT_EXPORT int headingLevel() const; WEBKIT_EXPORT int headingLevel() const;
WEBKIT_EXPORT int hierarchicalLevel() const;
WEBKIT_EXPORT WebAccessibilityObject hitTest(const WebPoint&) const; WEBKIT_EXPORT WebAccessibilityObject hitTest(const WebPoint&) const;
WEBKIT_EXPORT WebString keyboardShortcut() const; WEBKIT_EXPORT WebString keyboardShortcut() const;
WEBKIT_EXPORT bool performDefaultAction() const; WEBKIT_EXPORT bool performDefaultAction() const;
...@@ -118,6 +133,11 @@ public: ...@@ -118,6 +133,11 @@ public:
WEBKIT_EXPORT WebString title() const; WEBKIT_EXPORT WebString title() const;
WEBKIT_EXPORT WebURL url() 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 WebNode node() const;
WEBKIT_EXPORT WebDocument document() const; WEBKIT_EXPORT WebDocument document() const;
WEBKIT_EXPORT bool hasComputedStyle() const; WEBKIT_EXPORT bool hasComputedStyle() const;
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
#include "Document.h" #include "Document.h"
#include "EventHandler.h" #include "EventHandler.h"
#include "FrameView.h" #include "FrameView.h"
#include "HTMLNames.h"
#include "Node.h" #include "Node.h"
#include "PlatformKeyboardEvent.h" #include "PlatformKeyboardEvent.h"
#include "RenderStyle.h" #include "RenderStyle.h"
...@@ -212,6 +213,24 @@ bool WebAccessibilityObject::isAnchor() const ...@@ -212,6 +213,24 @@ bool WebAccessibilityObject::isAnchor() const
return m_private->isAnchor(); 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 bool WebAccessibilityObject::isChecked() const
{ {
if (m_private.isNull()) if (m_private.isNull())
...@@ -230,14 +249,13 @@ bool WebAccessibilityObject::isCollapsed() const ...@@ -230,14 +249,13 @@ bool WebAccessibilityObject::isCollapsed() const
return m_private->isCollapsed(); return m_private->isCollapsed();
} }
bool WebAccessibilityObject::isControl() const
bool WebAccessibilityObject::isFocused() const
{ {
if (m_private.isNull()) if (m_private.isNull())
return 0; return 0;
m_private->updateBackingStore(); m_private->updateBackingStore();
return m_private->isFocused(); return m_private->isControl();
} }
bool WebAccessibilityObject::isEnabled() const bool WebAccessibilityObject::isEnabled() const
...@@ -249,6 +267,15 @@ bool WebAccessibilityObject::isEnabled() const ...@@ -249,6 +267,15 @@ bool WebAccessibilityObject::isEnabled() const
return m_private->isEnabled(); 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 bool WebAccessibilityObject::isHovered() const
{ {
if (m_private.isNull()) if (m_private.isNull())
...@@ -276,6 +303,15 @@ bool WebAccessibilityObject::isLinked() const ...@@ -276,6 +303,15 @@ bool WebAccessibilityObject::isLinked() const
return m_private->isLinked(); 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 bool WebAccessibilityObject::isMultiSelectable() const
{ {
if (m_private.isNull()) if (m_private.isNull())
...@@ -321,6 +357,15 @@ bool WebAccessibilityObject::isReadOnly() const ...@@ -321,6 +357,15 @@ bool WebAccessibilityObject::isReadOnly() const
return m_private->isReadOnly(); 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 bool WebAccessibilityObject::isSelected() const
{ {
if (m_private.isNull()) if (m_private.isNull())
...@@ -330,6 +375,15 @@ bool WebAccessibilityObject::isSelected() const ...@@ -330,6 +375,15 @@ bool WebAccessibilityObject::isSelected() const
return m_private->isSelected(); 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 bool WebAccessibilityObject::isVisible() const
{ {
if (m_private.isNull()) if (m_private.isNull())
...@@ -348,6 +402,60 @@ bool WebAccessibilityObject::isVisited() const ...@@ -348,6 +402,60 @@ bool WebAccessibilityObject::isVisited() const
return m_private->isVisited(); 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 WebRect WebAccessibilityObject::boundingBoxRect() const
{ {
if (m_private.isNull()) if (m_private.isNull())
...@@ -357,6 +465,15 @@ WebRect WebAccessibilityObject::boundingBoxRect() const ...@@ -357,6 +465,15 @@ WebRect WebAccessibilityObject::boundingBoxRect() const
return m_private->boundingBoxRect(); 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 WebString WebAccessibilityObject::helpText() const
{ {
if (m_private.isNull()) if (m_private.isNull())
...@@ -375,6 +492,15 @@ int WebAccessibilityObject::headingLevel() const ...@@ -375,6 +492,15 @@ int WebAccessibilityObject::headingLevel() const
return m_private->headingLevel(); 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 WebAccessibilityObject WebAccessibilityObject::hitTest(const WebPoint& point) const
{ {
if (m_private.isNull()) if (m_private.isNull())
...@@ -493,6 +619,42 @@ WebURL WebAccessibilityObject::url() const ...@@ -493,6 +619,42 @@ WebURL WebAccessibilityObject::url() const
return m_private->url(); 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 WebNode WebAccessibilityObject::node() const
{ {
if (m_private.isNull()) if (m_private.isNull())
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment