AX: buttons of number type <input> controls are not fully accessible
authorcfleizach@apple.com <cfleizach@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 18 Oct 2011 15:22:09 +0000 (15:22 +0000)
committercfleizach@apple.com <cfleizach@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 18 Oct 2011 15:22:09 +0000 (15:22 +0000)
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.

This will be a staged commit since the first time around Windows layout tests started crashing for an undeterminable reason.

Reviewed by Darin Adler.

* html/shadow/TextControlInnerElements.cpp:
(WebCore::SpinButtonElement::step):
(WebCore::SpinButtonElement::repeatingTimerFired):
* html/shadow/TextControlInnerElements.h:

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

Source/WebCore/ChangeLog
Source/WebCore/html/shadow/TextControlInnerElements.cpp
Source/WebCore/html/shadow/TextControlInnerElements.h

index 52b456b..0cbe43f 100644 (file)
@@ -1,3 +1,21 @@
+2011-10-18  Chris Fleizach  <cfleizach@apple.com>
+
+        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.
+
+        This will be a staged commit since the first time around Windows layout tests started crashing for an undeterminable reason.
+
+        Reviewed by Darin Adler.
+
+        * html/shadow/TextControlInnerElements.cpp:
+        (WebCore::SpinButtonElement::step):
+        (WebCore::SpinButtonElement::repeatingTimerFired):
+        * html/shadow/TextControlInnerElements.h:
+
 2011-10-18  Andreas Kling  <kling@webkit.org>
 
         MediaList: Remove inheritance from StyleBase.
index f7c38e4..555bd7b 100644 (file)
@@ -344,7 +344,7 @@ void SpinButtonElement::stopRepeatingTimer()
     m_repeatingTimer.stop();
 }
 
-void SpinButtonElement::repeatingTimerFired(Timer<SpinButtonElement>*)
+void SpinButtonElement::step(int amount)
 {
     HTMLInputElement* input = static_cast<HTMLInputElement*>(shadowAncestorNode());
     if (input->disabled() || input->isReadOnlyFormControl())
@@ -356,7 +356,12 @@ void SpinButtonElement::repeatingTimerFired(Timer<SpinButtonElement>*)
     if (m_upDownState != m_pressStartingState)
         return;
 #endif
-    input->stepUpFromRenderer(m_upDownState == Up ? 1 : -1);
+    input->stepUpFromRenderer(amount);
+}
+    
+void SpinButtonElement::repeatingTimerFired(Timer<SpinButtonElement>*)
+{
+    step(m_upDownState == Up ? 1 : -1);
 }
 
 void SpinButtonElement::setHovered(bool flag)
index cba7d5f..c231f88 100644 (file)
@@ -100,6 +100,8 @@ public:
     UpDownState upDownState() const { return m_upDownState; }
     virtual void releaseCapture();
 
+    void step(int amount);
+    
 private:
     SpinButtonElement(Document*);