Title: [160762] trunk
Revision
160762
Author
[email protected]
Date
2013-12-18 06:18:41 -0800 (Wed, 18 Dec 2013)

Log Message

AX: HTML spec change indicates @aria-required should trump @required on any element
https://bugs.webkit.org/show_bug.cgi?id=122145

Reviewed by Mario Sanchez Prada.

Source/WebCore:

aria-required should win over the native "required" attribute.

Updated tests: accessibility/aria-required.html

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isRequired):

LayoutTests:

* accessibility/aria-required-expected.txt:
* accessibility/aria-required.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (160761 => 160762)


--- trunk/LayoutTests/ChangeLog	2013-12-18 13:56:35 UTC (rev 160761)
+++ trunk/LayoutTests/ChangeLog	2013-12-18 14:18:41 UTC (rev 160762)
@@ -1,3 +1,13 @@
+2013-12-18  Chris Fleizach  <[email protected]>
+
+        AX: HTML spec change indicates @aria-required should trump @required on any element
+        https://bugs.webkit.org/show_bug.cgi?id=122145
+
+        Reviewed by Mario Sanchez Prada.
+
+        * accessibility/aria-required-expected.txt:
+        * accessibility/aria-required.html:
+
 2013-12-18  Michał Pakuła vel Rutka  <[email protected]>
 
         Unreviewed EFL gardening

Modified: trunk/LayoutTests/accessibility/aria-required-expected.txt (160761 => 160762)


--- trunk/LayoutTests/accessibility/aria-required-expected.txt	2013-12-18 13:56:35 UTC (rev 160761)
+++ trunk/LayoutTests/accessibility/aria-required-expected.txt	2013-12-18 14:18:41 UTC (rev 160762)
@@ -3,7 +3,7 @@
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-Elements to test: 32
+Elements to test: 35
 
 PASS textfield isRequired is false
 PASS textfield_required isRequired is true
@@ -14,17 +14,20 @@
 PASS checkbox_required isRequired is true
 PASS checkbox_required_ariarequired isRequired is true
 PASS checkbox_ariarequiredfalse isRequired is false
-PASS checkbox_required_ariarequiredfalse isRequired is true
+PASS checkbox_required_ariarequiredfalse isRequired is false
+PASS checkbox_requiredfalse_ariarequiredtrue isRequired is true
 PASS select isRequired is false
 PASS select_required isRequired is true
 PASS select_required_ariarequired isRequired is true
 PASS select_ariarequiredfalse isRequired is false
-PASS select_required_ariarequiredfalse isRequired is true
+PASS select_required_ariarequiredfalse isRequired is false
+PASS select_requiredfalse_ariarequiredtrue isRequired is true
 PASS textarea isRequired is false
 PASS textarea_required isRequired is true
 PASS textarea_required_ariarequired isRequired is true
 PASS textarea_ariarequiredfalse isRequired is false
-PASS textarea_required_ariarequiredfalse isRequired is true
+PASS textarea_required_ariarequiredfalse isRequired is false
+PASS textarea_requiredfalse_ariarequiredtrue isRequired is true
 PASS listbox_ariarequiredtrue isRequired is true
 PASS listbox_ariarequiredfalse isRequired is false
 PASS listbox isRequired is false

Modified: trunk/LayoutTests/accessibility/aria-required.html (160761 => 160762)


--- trunk/LayoutTests/accessibility/aria-required.html	2013-12-18 13:56:35 UTC (rev 160761)
+++ trunk/LayoutTests/accessibility/aria-required.html	2013-12-18 14:18:41 UTC (rev 160762)
@@ -25,11 +25,9 @@
   <input type="checkbox" id="checkbox_required" required data-expectedrequired="true">
   <input type="checkbox" required aria-required="true" id="checkbox_required_ariarequired" data-expectedrequired="true">
   <input type="checkbox" aria-required="false" id="checkbox_ariarequiredfalse" data-expectedrequired="false">
-  <!-- these last ones conflict with implicit value of @required, so host language attr should win -->
-  <input type="checkbox" aria-required="false" required id="checkbox_required_ariarequiredfalse" data-expectedrequired="true">
-  <!-- BLOCKED by http://webkit.org/b/119988
-  <input type="checkbox" aria-required="true" id="checkbox_requiredfalse_ariarequiredtrue" data-expectedrequired="false">
-  -->
+  <!-- these last ones conflict with implicit value of @required, so ARIA should win -->
+  <input type="checkbox" aria-required="false" required id="checkbox_required_ariarequiredfalse" data-expectedrequired="false">
+  <input type="checkbox" aria-required="true" id="checkbox_requiredfalse_ariarequiredtrue" data-expectedrequired="true">
 
 
   <!-- select -->
@@ -37,11 +35,9 @@
   <select id="select_required" required data-expectedrequired="true"><option>test</option></select>
   <select required aria-required="true" id="select_required_ariarequired" data-expectedrequired="true"><option>test</option></select>
   <select aria-required="false" id="select_ariarequiredfalse" data-expectedrequired="false"><option>test</option></select>
-  <!-- these last ones conflict with implicit value of @required, so host language attr should win -->
-  <select aria-required="false" required id="select_required_ariarequiredfalse" data-expectedrequired="true"><option>test</option></select>
-  <!-- BLOCKED by http://webkit.org/b/119988
-  <select aria-required="true" id="select_requiredfalse_ariarequiredtrue" data-expectedrequired="false"><option>test</option></select>
-  -->
+  <!-- these last ones conflict with implicit value of @required, so ARIA should win -->
+  <select aria-required="false" required id="select_required_ariarequiredfalse" data-expectedrequired="false"><option>test</option></select>
+  <select aria-required="true" id="select_requiredfalse_ariarequiredtrue" data-expectedrequired="true"><option>test</option></select>
 
   
   <!-- textarea -->
@@ -49,11 +45,9 @@
   <textarea id="textarea_required" required data-expectedrequired="true"></textarea>
   <textarea required aria-required="true" id="textarea_required_ariarequired" data-expectedrequired="true"></textarea>
   <textarea aria-required="false" id="textarea_ariarequiredfalse" data-expectedrequired="false"></textarea>
-  <!-- these last ones conflict with implicit value of @required, so host language attr should win -->
-  <textarea aria-required="false" required id="textarea_required_ariarequiredfalse" data-expectedrequired="true"></textarea>
-  <!-- BLOCKED by http://webkit.org/b/119988
-  <textarea aria-required="true" id="textarea_requiredfalse_ariarequiredtrue" data-expectedrequired="false"></textarea>
-  -->
+  <!-- these last ones conflict with implicit value of @required, so ARIA should win -->
+  <textarea aria-required="false" required id="textarea_required_ariarequiredfalse" data-expectedrequired="false"></textarea>
+  <textarea aria-required="true" id="textarea_requiredfalse_ariarequiredtrue" data-expectedrequired="true"></textarea>
   
 
   <!-- Custom ARIA controls (@required is not allowed on these elements, so no conflict resolution needed.) -->

Modified: trunk/Source/WebCore/ChangeLog (160761 => 160762)


--- trunk/Source/WebCore/ChangeLog	2013-12-18 13:56:35 UTC (rev 160761)
+++ trunk/Source/WebCore/ChangeLog	2013-12-18 14:18:41 UTC (rev 160762)
@@ -1,3 +1,17 @@
+2013-12-18  Chris Fleizach  <[email protected]>
+
+        AX: HTML spec change indicates @aria-required should trump @required on any element
+        https://bugs.webkit.org/show_bug.cgi?id=122145
+
+        Reviewed by Mario Sanchez Prada.
+
+        aria-required should win over the native "required" attribute.
+
+        Updated tests: accessibility/aria-required.html
+
+        * accessibility/AccessibilityNodeObject.cpp:
+        (WebCore::AccessibilityNodeObject::isRequired):
+
 2013-12-18  Carlos Garcia Campos  <[email protected]>
 
         Unreviewed. Fix make distcheck.

Modified: trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp (160761 => 160762)


--- trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp	2013-12-18 13:56:35 UTC (rev 160761)
+++ trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp	2013-12-18 14:18:41 UTC (rev 160762)
@@ -730,8 +730,12 @@
 
 bool AccessibilityNodeObject::isRequired() const
 {
-    if (equalIgnoringCase(getAttribute(aria_requiredAttr), "true"))
+    // Explicit aria-required values should trump native required attributes.
+    const AtomicString& requiredValue = getAttribute(aria_requiredAttr);
+    if (equalIgnoringCase(requiredValue, "true"))
         return true;
+    if (equalIgnoringCase(requiredValue, "false"))
+        return false;
 
     Node* n = this->node();
     if (n && (n->isElementNode() && toElement(n)->isFormControlElement()))
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to