Title: [97755] trunk/Source
Revision
97755
Author
[email protected]
Date
2011-10-18 08:28:11 -0700 (Tue, 18 Oct 2011)

Log Message

AX: buttons of number type <input> controls are not fully accessible
https://bugs.webkit.org/show_bug.cgi?id=70241

../WebCore: 

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):

../WebKit/chromium: 

Reviewed by Darin Adler.

* public/WebAccessibilityRole.h:
* src/AssertMatchingEnums.cpp:

Modified Paths

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);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to