Title: [219922] branches/safari-604-branch

Diff

Modified: branches/safari-604-branch/LayoutTests/ChangeLog (219921 => 219922)


--- branches/safari-604-branch/LayoutTests/ChangeLog	2017-07-26 09:51:41 UTC (rev 219921)
+++ branches/safari-604-branch/LayoutTests/ChangeLog	2017-07-26 09:51:45 UTC (rev 219922)
@@ -1,5 +1,20 @@
 2017-07-26  Jason Marcell  <[email protected]>
 
+        Cherry-pick r219751. rdar://problem/33523861
+
+    2017-07-21  Nan Wang  <[email protected]>
+
+            AX: Expose form validation on iOS as hint
+            https://bugs.webkit.org/show_bug.cgi?id=174722
+            <rdar://problem/33459761>
+
+            Reviewed by Chris Fleizach.
+
+            * accessibility/ios-simulator/form-control-validation-message-expected.txt: Added.
+            * accessibility/ios-simulator/form-control-validation-message.html: Added.
+
+2017-07-26  Jason Marcell  <[email protected]>
+
         Cherry-pick r219638. rdar://problem/33523787
 
     2017-07-18  Ryosuke Niwa  <[email protected]>

Added: branches/safari-604-branch/LayoutTests/accessibility/ios-simulator/form-control-validation-message-expected.txt (0 => 219922)


--- branches/safari-604-branch/LayoutTests/accessibility/ios-simulator/form-control-validation-message-expected.txt	                        (rev 0)
+++ branches/safari-604-branch/LayoutTests/accessibility/ios-simulator/form-control-validation-message-expected.txt	2017-07-26 09:51:45 UTC (rev 219922)
@@ -0,0 +1,12 @@
+Required text input: 
+This tests that we are exposing form validation message through hint on iOS.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS input.helpText is 'AXHint: '
+PASS input.helpText is 'AXHint: Fill out this field'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: branches/safari-604-branch/LayoutTests/accessibility/ios-simulator/form-control-validation-message.html (0 => 219922)


--- branches/safari-604-branch/LayoutTests/accessibility/ios-simulator/form-control-validation-message.html	                        (rev 0)
+++ branches/safari-604-branch/LayoutTests/accessibility/ios-simulator/form-control-validation-message.html	2017-07-26 09:51:45 UTC (rev 219922)
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script>
+var successfullyParsed = false;
+</script>
+<script src=""
+</head>
+<body id="body">
+
+<form>
+  Required text input: <input id="input" type="text" required=""><input id="submit" type="submit" id="firstSubmitButton">
+</form>
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+
+    description("This tests that we are exposing form validation message through hint on iOS.");
+
+    if (window.accessibilityController) {
+
+        var input = accessibilityController.accessibleElementById("input");
+        
+        shouldBe("input.helpText", "'AXHint: '");
+        document.getElementById("submit").click();
+        shouldBe("input.helpText", "'AXHint: Fill out this field'");
+    }
+
+    successfullyParsed = true;
+</script>
+
+<script src=""
+</body>
+</html>
+

Modified: branches/safari-604-branch/Source/WebCore/ChangeLog (219921 => 219922)


--- branches/safari-604-branch/Source/WebCore/ChangeLog	2017-07-26 09:51:41 UTC (rev 219921)
+++ branches/safari-604-branch/Source/WebCore/ChangeLog	2017-07-26 09:51:45 UTC (rev 219922)
@@ -1,5 +1,32 @@
 2017-07-26  Jason Marcell  <[email protected]>
 
+        Cherry-pick r219751. rdar://problem/33523861
+
+    2017-07-21  Nan Wang  <[email protected]>
+
+            AX: Expose form validation on iOS as hint
+            https://bugs.webkit.org/show_bug.cgi?id=174722
+            <rdar://problem/33459761>
+
+            Reviewed by Chris Fleizach.
+
+            Adding the validation message to the hint of the form control element.
+
+            Test: accessibility/ios-simulator/form-control-validation-message.html
+
+            * accessibility/AccessibilityObject.cpp:
+            (WebCore::AccessibilityObject::isShowingValidationMessage):
+            (WebCore::AccessibilityObject::validationMessage):
+            * accessibility/AccessibilityObject.h:
+            * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+            (-[WebAccessibilityObjectWrapper accessibilityHint]):
+            (-[WebAccessibilityObjectWrapper accessibilityIsShowingValidationMessage]):
+            * html/HTMLFormControlElement.cpp:
+            (WebCore::HTMLFormControlElement::isShowingValidationMessage):
+            * html/HTMLFormControlElement.h:
+
+2017-07-26  Jason Marcell  <[email protected]>
+
         Cherry-pick r219742. rdar://problem/33523798
 
     2017-07-21  Zalan Bujtas  <[email protected]>

Modified: branches/safari-604-branch/Source/WebCore/accessibility/AccessibilityObject.cpp (219921 => 219922)


--- branches/safari-604-branch/Source/WebCore/accessibility/AccessibilityObject.cpp	2017-07-26 09:51:41 UTC (rev 219921)
+++ branches/safari-604-branch/Source/WebCore/accessibility/AccessibilityObject.cpp	2017-07-26 09:51:45 UTC (rev 219922)
@@ -44,6 +44,7 @@
 #include "FrameLoader.h"
 #include "FrameSelection.h"
 #include "HTMLDetailsElement.h"
+#include "HTMLFormControlElement.h"
 #include "HTMLInputElement.h"
 #include "HTMLNames.h"
 #include "HTMLParserIdioms.h"
@@ -3163,6 +3164,20 @@
     return style.display() == NONE || style.visibility() != VISIBLE;
 }
 
+bool AccessibilityObject::isShowingValidationMessage() const
+{
+    if (is<HTMLFormControlElement>(node()))
+        return downcast<HTMLFormControlElement>(*node()).isShowingValidationMessage();
+    return false;
+}
+
+String AccessibilityObject::validationMessage() const
+{
+    if (is<HTMLFormControlElement>(node()))
+        return downcast<HTMLFormControlElement>(*node()).validationMessage();
+    return String();
+}
+
 AccessibilityObjectInclusion AccessibilityObject::defaultObjectInclusion() const
 {
     bool useParentData = !m_isIgnoredFromParentData.isNull();

Modified: branches/safari-604-branch/Source/WebCore/accessibility/AccessibilityObject.h (219921 => 219922)


--- branches/safari-604-branch/Source/WebCore/accessibility/AccessibilityObject.h	2017-07-26 09:51:41 UTC (rev 219921)
+++ branches/safari-604-branch/Source/WebCore/accessibility/AccessibilityObject.h	2017-07-26 09:51:45 UTC (rev 219922)
@@ -648,6 +648,9 @@
     virtual AccessibilityObjectInclusion defaultObjectInclusion() const;
     bool accessibilityIsIgnoredByDefault() const;
     
+    bool isShowingValidationMessage() const;
+    String validationMessage() const;
+    
     unsigned blockquoteLevel() const;
     virtual int headingLevel() const { return 0; }
     virtual int tableLevel() const { return 0; }

Modified: branches/safari-604-branch/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm (219921 => 219922)


--- branches/safari-604-branch/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm	2017-07-26 09:51:41 UTC (rev 219921)
+++ branches/safari-604-branch/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm	2017-07-26 09:51:45 UTC (rev 219922)
@@ -1377,7 +1377,13 @@
     if (![self _prepareAccessibilityCall])
         return nil;
 
-    return [self baseAccessibilityHelpText];
+    NSMutableString *result = [NSMutableString string];
+    appendStringToResult(result, [self baseAccessibilityHelpText]);
+    
+    if ([self accessibilityIsShowingValidationMessage])
+        appendStringToResult(result, m_object->validationMessage());
+    
+    return result;
 }
 
 - (NSURL *)accessibilityURL
@@ -2859,6 +2865,14 @@
     return m_object->isExpanded();
 }
 
+- (BOOL)accessibilityIsShowingValidationMessage
+{
+    if (![self _prepareAccessibilityCall])
+        return NO;
+    
+    return m_object->isShowingValidationMessage();
+}
+
 - (NSString *)accessibilityInvalidStatus
 {
     if (![self _prepareAccessibilityCall])

Modified: branches/safari-604-branch/Source/WebCore/html/HTMLFormControlElement.cpp (219921 => 219922)


--- branches/safari-604-branch/Source/WebCore/html/HTMLFormControlElement.cpp	2017-07-26 09:51:41 UTC (rev 219921)
+++ branches/safari-604-branch/Source/WebCore/html/HTMLFormControlElement.cpp	2017-07-26 09:51:45 UTC (rev 219922)
@@ -488,6 +488,11 @@
     return false;
 }
 
+bool HTMLFormControlElement::isShowingValidationMessage() const
+{
+    return m_validationMessage && m_validationMessage->isVisible();
+}
+    
 bool HTMLFormControlElement::reportValidity()
 {
     Vector<RefPtr<HTMLFormControlElement>> elements;

Modified: branches/safari-604-branch/Source/WebCore/html/HTMLFormControlElement.h (219921 => 219922)


--- branches/safari-604-branch/Source/WebCore/html/HTMLFormControlElement.h	2017-07-26 09:51:41 UTC (rev 219921)
+++ branches/safari-604-branch/Source/WebCore/html/HTMLFormControlElement.h	2017-07-26 09:51:45 UTC (rev 219922)
@@ -102,6 +102,7 @@
     WEBCORE_EXPORT bool checkValidity(Vector<RefPtr<HTMLFormControlElement>>* unhandledInvalidControls = nullptr);
     bool reportValidity();
     void focusAndShowValidationMessage();
+    bool isShowingValidationMessage() const;
     // This must be called when a validation constraint or control value is changed.
     void updateValidity();
     void setCustomValidity(const String&) override;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to