Diff
Modified: trunk/Source/WebCore/ChangeLog (97754 => 97755)
--- trunk/Source/WebCore/ChangeLog 2011-10-18 15:26:47 UTC (rev 97754)
+++ trunk/Source/WebCore/ChangeLog 2011-10-18 15:28:11 UTC (rev 97755)
@@ -3,6 +3,22 @@
AX: buttons of number type <input> controls are not fully accessible
https://bugs.webkit.org/show_bug.cgi?id=70241
+ Phase 2 of the staged commit.
+
+ Reviewed by Darin Adler.
+
+ * accessibility/AccessibilityObject.cpp:
+ (WebCore::AccessibilityObject::boundingBoxForQuads):
+ * accessibility/AccessibilityObject.h:
+ (WebCore::AccessibilityObject::isSpinButton):
+ (WebCore::AccessibilityObject::isSpinButtonPart):
+ (WebCore::AccessibilityObject::isMockObject):
+
+2011-10-18 Chris Fleizach <[email protected]>
+
+ AX: buttons of number type <input> controls are not fully accessible
+ https://bugs.webkit.org/show_bug.cgi?id=70241
+
Expose the spin button object to the AX hierarchy. Since there is no distinct
render object that backs this object, a mock object needs to be created for the entire
spin button and the actual increment and decrement buttons inside.
Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.cpp (97754 => 97755)
--- trunk/Source/WebCore/accessibility/AccessibilityObject.cpp 2011-10-18 15:26:47 UTC (rev 97754)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.cpp 2011-10-18 15:28:11 UTC (rev 97755)
@@ -408,6 +408,28 @@
return LayoutPoint(rect.x() + rect.width() / 2, rect.y() + rect.height() / 2);
}
+LayoutRect AccessibilityObject::boundingBoxForQuads(RenderObject* obj, const Vector<FloatQuad>& quads)
+{
+ ASSERT(obj);
+ if (!obj)
+ return LayoutRect();
+
+ size_t count = quads.size();
+ if (!count)
+ return LayoutRect();
+
+ LayoutRect result;
+ for (size_t i = 0; i < count; ++i) {
+ LayoutRect r = quads[i].enclosingBoundingBox();
+ if (!r.isEmpty()) {
+ if (obj->style()->hasAppearance())
+ obj->theme()->adjustRepaintRect(obj, r);
+ result.unite(r);
+ }
+ }
+ return result;
+}
+
bool AccessibilityObject::press() const
{
Element* actionElem = actionElement();
Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.h (97754 => 97755)
--- trunk/Source/WebCore/accessibility/AccessibilityObject.h 2011-10-18 15:26:47 UTC (rev 97754)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.h 2011-10-18 15:28:11 UTC (rev 97755)
@@ -30,6 +30,7 @@
#ifndef AccessibilityObject_h
#define AccessibilityObject_h
+#include "FloatQuad.h"
#include "LayoutTypes.h"
#include "VisiblePosition.h"
#include "VisibleSelection.h"
@@ -178,6 +179,8 @@
SheetRole,
SliderRole,
SliderThumbRole,
+ SpinButtonRole,
+ SpinButtonPartRole,
SplitGroupRole,
SplitterRole,
StaticTextRole,
@@ -369,6 +372,9 @@
virtual bool isMenuList() const { return false; }
virtual bool isMenuListPopup() const { return false; }
virtual bool isMenuListOption() const { return false; }
+ virtual bool isSpinButton() const { return false; }
+ virtual bool isSpinButtonPart() const { return false; }
+ virtual bool isMockObject() const { return false; }
bool isTextControl() const { return roleValue() == TextAreaRole || roleValue() == TextFieldRole; }
bool isARIATextControl() const;
bool isTabList() const { return roleValue() == TabListRole; }
@@ -508,7 +514,8 @@
virtual LayoutRect elementRect() const = 0;
virtual LayoutSize size() const { return elementRect().size(); }
virtual LayoutPoint clickPoint();
-
+ static LayoutRect boundingBoxForQuads(RenderObject*, const Vector<FloatQuad>&);
+
virtual PlainTextRange selectedTextRange() const { return PlainTextRange(); }
unsigned selectionStart() const { return selectedTextRange().start; }
unsigned selectionEnd() const { return selectedTextRange().length; }
Modified: trunk/Source/WebKit/chromium/ChangeLog (97754 => 97755)
--- trunk/Source/WebKit/chromium/ChangeLog 2011-10-18 15:26:47 UTC (rev 97754)
+++ trunk/Source/WebKit/chromium/ChangeLog 2011-10-18 15:28:11 UTC (rev 97755)
@@ -1,3 +1,13 @@
+2011-10-18 Chris Fleizach <[email protected]>
+
+ AX: buttons of number type <input> controls are not fully accessible
+ https://bugs.webkit.org/show_bug.cgi?id=70241
+
+ Reviewed by Darin Adler.
+
+ * public/WebAccessibilityRole.h:
+ * src/AssertMatchingEnums.cpp:
+
2011-10-17 Sheriff Bot <[email protected]>
Unreviewed, rolling out r97677.
Modified: trunk/Source/WebKit/chromium/public/WebAccessibilityRole.h (97754 => 97755)
--- trunk/Source/WebKit/chromium/public/WebAccessibilityRole.h 2011-10-18 15:26:47 UTC (rev 97754)
+++ trunk/Source/WebKit/chromium/public/WebAccessibilityRole.h 2011-10-18 15:28:11 UTC (rev 97755)
@@ -115,6 +115,8 @@
WebAccessibilityRoleSheet,
WebAccessibilityRoleSlider,
WebAccessibilityRoleSliderThumb,
+ WebAccessibilityRoleSpinButton,
+ WebAccessibilityRoleSpinButtonPart,
WebAccessibilityRoleSplitGroup,
WebAccessibilityRoleSplitter,
WebAccessibilityRoleStaticText,
Modified: trunk/Source/WebKit/chromium/src/AssertMatchingEnums.cpp (97754 => 97755)
--- trunk/Source/WebKit/chromium/src/AssertMatchingEnums.cpp 2011-10-18 15:26:47 UTC (rev 97754)
+++ trunk/Source/WebKit/chromium/src/AssertMatchingEnums.cpp 2011-10-18 15:28:11 UTC (rev 97755)
@@ -171,6 +171,8 @@
COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleDefinitionListDefinition, DefinitionListDefinitionRole);
COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleAnnotation, AnnotationRole);
COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleSliderThumb, SliderThumbRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleSpinButton, SpinButtonRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleSpinButtonPart, SpinButtonPartRole);
COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleIgnored, IgnoredRole);
COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRolePresentational, PresentationalRole);
COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleTab, TabRole);