Changeset 128404 in webkit
- Timestamp:
- Sep 12, 2012 10:50:07 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r128402 r128404 1 2012-09-12 Yoshifumi Inoue <yosin@chromium.org> 2 3 New time input needs accessibility 4 https://bugs.webkit.org/show_bug.cgi?id=96032 5 6 Reviewed by Chris Fleizach. 7 8 This patch adds two tests for checking accessibility functionalities 9 in multiple fields time input UI. 10 11 This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and 12 ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS. 13 14 * fast/forms/time-multiple-fields/time-multiple-fields-ax-aria-attributes-expected.txt: Added. 15 * fast/forms/time-multiple-fields/time-multiple-fields-ax-aria-attributes.html: Added to check ARIA attributes used in multiple fields time input UI. 16 * fast/forms/time-multiple-fields/time-multiple-fields-ax-value-changed-notification-expected.txt: Added. 17 * fast/forms/time-multiple-fields/time-multiple-fields-ax-value-changed-notification.html: Added to check accessibility notification supports in multiple fields time input UI. 18 1 19 2012-09-12 Kent Tamura <tkent@chromium.org> 2 20 -
trunk/Source/WebCore/ChangeLog
r128403 r128404 1 2012-09-12 Yoshifumi Inoue <yosin@chromium.org> 2 3 New time input needs accessibility 4 https://bugs.webkit.org/show_bug.cgi?id=96032 5 6 Reviewed by Chris Fleizach. 7 8 This patch adds accessibility support into multiple fields time input 9 UI by setting "role" HTML attribute of DateTimeFieldElement to "spinbutton" 10 and changing ARIA attributes to post value change notification. 11 12 This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and 13 ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS. 14 15 Tests: fast/forms/time-multiple-fields/time-multiple-fields-ax-aria-attributes.html 16 fast/forms/time-multiple-fields/time-multiple-fields-ax-value-changed-notification.html 17 18 * html/shadow/DateTimeFieldElement.cpp: 19 (WebCore::DateTimeFieldElement::DateTimeFieldElement): Changed to set 20 "role" HTML attribute to "spinbutton". 21 (WebCore::DateTimeFieldElement::initialize): Changed to set new 22 parameter axHelpText to aria-help attribute and set aria-valuemax and 23 aria-valuemin attributes. 24 (WebCore::DateTimeFieldElement::updateVisibleValue): Changed to set 25 aria-valuetext and aria-valuenow attributes. 26 * html/shadow/DateTimeFieldElement.h: 27 (DateTimeFieldElement): Changed to add new parameter axHelpText to initialize(). 28 * html/shadow/DateTimeFieldElements.cpp: 29 (WebCore::DateTimeAMPMFieldElement::create): Changed to add new argument. 30 (WebCore::DateTimeHourFieldElement::create): ditto. 31 (WebCore::DateTimeMillisecondFieldElement::create): ditto. 32 (WebCore::DateTimeMinuteFieldElement::create): ditto. 33 (WebCore::DateTimeSecondFieldElement::create): ditto. 34 * html/shadow/DateTimeNumericFieldElement.cpp: 35 (WebCore::DateTimeNumericFieldElement::maximum): Added for DateTimeFieldElement::initialize(). 36 (WebCore::DateTimeNumericFieldElement::minimum): ditto. 37 * html/shadow/DateTimeNumericFieldElement.h: 38 (DateTimeNumericFieldElement): Added maximum() and minimum() declarations. 39 * html/shadow/DateTimeSymbolicFieldElement.cpp: 40 (WebCore::DateTimeSymbolicFieldElement::maximum): Added for DateTimeFieldElement::initialize(). 41 (WebCore::DateTimeSymbolicFieldElement::minimum): ditto. 42 * html/shadow/DateTimeSymbolicFieldElement.h: 43 (DateTimeSymbolicFieldElement): Added maximum() and minimum() declarations. 44 1 45 2012-09-12 Sheriff Bot <webkit.review.bot@gmail.com> 2 46 -
trunk/Source/WebCore/html/shadow/DateTimeFieldElement.cpp
r127235 r128404 31 31 #include "HTMLNames.h" 32 32 #include "KeyboardEvent.h" 33 #include "LocalizedStrings.h" 33 34 #include "RenderObject.h" 34 35 #include "Text.h" 36 #include <wtf/text/WTFString.h> 35 37 36 38 namespace WebCore { … … 46 48 , m_fieldOwner(&fieldOwner) 47 49 { 50 // On accessibility, DateTimeFieldElement acts like spin button. 51 setAttribute(roleAttr, "spinbutton"); 48 52 } 49 53 … … 130 134 } 131 135 132 void DateTimeFieldElement::initialize(const AtomicString& shadowPseudoId )136 void DateTimeFieldElement::initialize(const AtomicString& shadowPseudoId, const String& axHelpText) 133 137 { 138 setAttribute(aria_helpAttr, axHelpText); 139 setAttribute(aria_valueminAttr, String::number(minimum())); 140 setAttribute(aria_valuemaxAttr, String::number(maximum())); 134 141 setShadowPseudoId(shadowPseudoId); 135 142 appendChild(Text::create(document(), visibleValue())); … … 173 180 174 181 textNode->replaceWholeText(newVisibleValue, ASSERT_NO_EXCEPTION); 182 setAttribute(aria_valuetextAttr, hasValue() ? newVisibleValue : AXDateTimeFieldEmptyValueText()); 183 setAttribute(aria_valuenowAttr, newVisibleValue); 175 184 176 185 if (eventBehavior == DispatchEvent && m_fieldOwner) -
trunk/Source/WebCore/html/shadow/DateTimeFieldElement.h
r127235 r128404 78 78 void focusOnNextField(); 79 79 virtual void handleKeyboardEvent(KeyboardEvent*) = 0; 80 void initialize(const AtomicString&); 80 void initialize(const AtomicString& shadowPseudoId, const String& axHelpText); 81 virtual int maximum() const = 0; 82 virtual int minimum() const = 0; 81 83 virtual double unitInMillisecond() const = 0; 82 84 void updateVisibleValue(EventBehavior); -
trunk/Source/WebCore/html/shadow/DateTimeFieldElements.cpp
r127085 r128404 29 29 30 30 #include "DateComponents.h" 31 #include "LocalizedStrings.h" 31 32 #include <wtf/DateMath.h> 32 33 … … 42 43 DEFINE_STATIC_LOCAL(AtomicString, ampmPsuedoId, ("-webkit-datetime-edit-ampm-field")); 43 44 RefPtr<DateTimeAMPMFieldElement> field = adoptRef(new DateTimeAMPMFieldElement(document, fieldOwner, ampmLabels)); 44 field->initialize(ampmPsuedoId );45 field->initialize(ampmPsuedoId, AXAMPMFieldText()); 45 46 return field.release(); 46 47 } … … 69 70 DEFINE_STATIC_LOCAL(AtomicString, hourPsuedoId, ("-webkit-datetime-edit-hour-field")); 70 71 RefPtr<DateTimeHourFieldElement> field = adoptRef(new DateTimeHourFieldElement(document, fieldOwner, minimum, maximum)); 71 field->initialize(hourPsuedoId );72 field->initialize(hourPsuedoId, AXHourFieldText()); 72 73 return field.release(); 73 74 } … … 105 106 DEFINE_STATIC_LOCAL(AtomicString, millisecondPsuedoId, ("-webkit-datetime-edit-millisecond-field")); 106 107 RefPtr<DateTimeMillisecondFieldElement> field = adoptRef(new DateTimeMillisecondFieldElement(document, fieldOwner)); 107 field->initialize(millisecondPsuedoId );108 field->initialize(millisecondPsuedoId, AXMillisecondFieldText()); 108 109 return field.release(); 109 110 } … … 130 131 DEFINE_STATIC_LOCAL(AtomicString, minutePsuedoId, ("-webkit-datetime-edit-minute-field")); 131 132 RefPtr<DateTimeMinuteFieldElement> field = adoptRef(new DateTimeMinuteFieldElement(document, fieldOwner)); 132 field->initialize(minutePsuedoId );133 field->initialize(minutePsuedoId, AXMinuteFieldText()); 133 134 return field.release(); 134 135 } … … 155 156 DEFINE_STATIC_LOCAL(AtomicString, secondPsuedoId, ("-webkit-datetime-edit-second-field")); 156 157 RefPtr<DateTimeSecondFieldElement> field = adoptRef(new DateTimeSecondFieldElement(document, fieldOwner)); 157 field->initialize(secondPsuedoId );158 field->initialize(secondPsuedoId, AXSecondFieldText()); 158 159 return field.release(); 159 160 } -
trunk/Source/WebCore/html/shadow/DateTimeNumericFieldElement.cpp
r127234 r128404 112 112 } 113 113 114 int DateTimeNumericFieldElement::maximum() const 115 { 116 return m_range.maximum; 117 } 118 119 int DateTimeNumericFieldElement::minimum() const 120 { 121 return m_range.minimum; 122 } 123 114 124 void DateTimeNumericFieldElement::setEmptyValue(const DateComponents& dateForReadOnlyField, EventBehavior eventBehavior) 115 125 { -
trunk/Source/WebCore/html/shadow/DateTimeNumericFieldElement.h
r127234 r128404 66 66 virtual void didBlur() OVERRIDE FINAL; 67 67 virtual void handleKeyboardEvent(KeyboardEvent*) OVERRIDE FINAL; 68 virtual int maximum() const OVERRIDE FINAL; 69 virtual int minimum() const OVERRIDE FINAL; 68 70 virtual void setEmptyValue(const DateComponents& dateForReadOnlyField, EventBehavior) OVERRIDE FINAL; 69 71 virtual void stepDown() OVERRIDE FINAL; -
trunk/Source/WebCore/html/shadow/DateTimeSymbolicFieldElement.cpp
r127525 r128404 96 96 } 97 97 98 int DateTimeSymbolicFieldElement::maximum() const 99 { 100 return static_cast<int>(m_symbols.size()); 101 } 102 103 int DateTimeSymbolicFieldElement::minimum() const 104 { 105 return 1; 106 } 107 98 108 void DateTimeSymbolicFieldElement::setEmptyValue(const DateComponents&, EventBehavior eventBehavior) 99 109 { -
trunk/Source/WebCore/html/shadow/DateTimeSymbolicFieldElement.h
r127400 r128404 50 50 virtual void handleKeyboardEvent(KeyboardEvent*) OVERRIDE FINAL; 51 51 virtual bool hasValue() const OVERRIDE FINAL; 52 virtual int maximum() const OVERRIDE FINAL; 53 virtual int minimum() const OVERRIDE FINAL; 52 54 virtual void setEmptyValue(const DateComponents& dateForReadOnlyField, EventBehavior = DispatchNoEvent) OVERRIDE FINAL; 53 55 virtual void stepDown() OVERRIDE FINAL;
Note: See TracChangeset
for help on using the changeset viewer.