Title: [151831] trunk
Revision
151831
Author
[email protected]
Date
2013-06-21 03:33:34 -0700 (Fri, 21 Jun 2013)

Log Message

[ATK] Added support for aria-required attribute.
https://bugs.webkit.org/show_bug.cgi?id=117730

Patch by Krzysztof Czech <[email protected]> on 2013-06-21
Reviewed by Chris Fleizach.

Source/WebCore:

Tests: accessibility/aria-required.html
       accessibility/html5-required-attribute.html

The aria-required attribute is used to indicate that user input is required on an
element before a form can be submitted.

* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(setAtkStateSetFromCoreObject):

Tools:

Added support for testing aria-required attribute.

* DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
(AccessibilityUIElement::isRequired):
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::isRequired):

LayoutTests:

Moving specific platform accessibility tests.

* accessibility/aria-required-expected.txt: Renamed from LayoutTests/platform/mac/accessibility/aria-required-expected.txt.
* accessibility/aria-required.html: Renamed from LayoutTests/platform/mac/accessibility/aria-required.html.
* accessibility/html5-required-attribute-expected.txt: Renamed from LayoutTests/platform/mac/accessibility/html5-required-attribute-expected.txt.
* accessibility/html5-required-attribute.html: Renamed from LayoutTests/platform/mac/accessibility/html5-required-attribute.html.

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (151830 => 151831)


--- trunk/LayoutTests/ChangeLog	2013-06-21 09:36:05 UTC (rev 151830)
+++ trunk/LayoutTests/ChangeLog	2013-06-21 10:33:34 UTC (rev 151831)
@@ -1,3 +1,17 @@
+2013-06-21  Krzysztof Czech  <[email protected]>
+
+        [ATK] Added support for aria-required attribute.
+        https://bugs.webkit.org/show_bug.cgi?id=117730
+
+        Reviewed by Chris Fleizach.
+
+        Moving specific platform accessibility tests.
+
+        * accessibility/aria-required-expected.txt: Renamed from LayoutTests/platform/mac/accessibility/aria-required-expected.txt.
+        * accessibility/aria-required.html: Renamed from LayoutTests/platform/mac/accessibility/aria-required.html.
+        * accessibility/html5-required-attribute-expected.txt: Renamed from LayoutTests/platform/mac/accessibility/html5-required-attribute-expected.txt.
+        * accessibility/html5-required-attribute.html: Renamed from LayoutTests/platform/mac/accessibility/html5-required-attribute.html.
+
 2013-06-21  Chris Fleizach  <[email protected]>
 
         IndieUI: Add basic IndieUI infrastructure

Copied: trunk/LayoutTests/accessibility/aria-required-expected.txt (from rev 151830, trunk/LayoutTests/platform/mac/accessibility/aria-required-expected.txt) (0 => 151831)


--- trunk/LayoutTests/accessibility/aria-required-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/accessibility/aria-required-expected.txt	2013-06-21 10:33:34 UTC (rev 151831)
@@ -0,0 +1,25 @@
+  
+This tests that aria-required is a usable attribute.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS succeeded is true
+PASS succeeded is true
+PASS succeeded is true
+PASS succeeded is true
+PASS succeeded is true
+PASS succeeded is true
+PASS succeeded is true
+PASS succeeded is true
+PASS succeeded is true
+PASS succeeded is true
+PASS succeeded is true
+PASS succeeded is true
+PASS succeeded is true
+PASS succeeded is true
+PASS succeeded is true
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Copied: trunk/LayoutTests/accessibility/aria-required.html (from rev 151830, trunk/LayoutTests/platform/mac/accessibility/aria-required.html) (0 => 151831)


--- trunk/LayoutTests/accessibility/aria-required.html	                        (rev 0)
+++ trunk/LayoutTests/accessibility/aria-required.html	2013-06-21 10:33:34 UTC (rev 151831)
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body id="body">
+
+<input type="text" aria-required="true" id="textfield1">
+<input type="text" aria-required="false" id="textfield2">
+<input type="text" id="textfield3">
+
+<div id="toBeHidden">
+
+  <div tabindex="0" aria-required="true" role="listbox" id="lb1">text</div>
+  <div tabindex="0" aria-required="false" role="listbox" id="lb2">text</div>
+  <div tabindex="0" role="listbox" id="lb3">text</div>
+
+  <div tabindex="0" aria-required="true" role="radiogroup" id="rg1">text</div>
+  <div tabindex="0" aria-required="false" role="radiogroup" id="rg2">text</div>
+  <div tabindex="0" role="radiogroup" id="rg3">text</div>
+
+  <div tabindex="0" aria-required="true" role="spinbutton" id="sb1">text</div>
+  <div tabindex="0" aria-required="false" role="spinbutton" id="sb2">text</div>
+  <div tabindex="0" role="spinbutton" id="sb3">text</div>
+
+  <div tabindex="0" aria-required="true" role="tree" id="t1">text</div>
+  <div tabindex="0" aria-required="false" role="tree" id="t2">text</div>
+  <div tabindex="0" role="tree" id="t3">text</div>
+
+</div>
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+
+    description("This tests that aria-required is a usable attribute.");
+
+    function $(id){
+      return document.getElementById(id);
+    }
+
+    if (window.accessibilityController) {
+
+          var succeeded = false;
+
+          // textfield 1 is required
+          $("textfield1").focus();
+          succeeded = accessibilityController.focusedElement.isRequired;
+          shouldBe("succeeded", "true");
+          // textfield 2 and 3 are not required
+          $("textfield2").focus();
+          succeeded = !(accessibilityController.focusedElement.isRequired);
+          shouldBe("succeeded", "true");
+          $("textfield3").focus();
+          succeeded = !(accessibilityController.focusedElement.isRequired);
+          shouldBe("succeeded", "true");
+
+          // listbox 1 is required
+          $("lb1").focus();
+          succeeded = accessibilityController.focusedElement.isRequired;
+          shouldBe("succeeded", "true");
+          // listbox 2 and 3 are not required
+          $("lb2").focus();
+          succeeded = !(accessibilityController.focusedElement.isRequired);
+          shouldBe("succeeded", "true");
+          $("lb3").focus();
+          succeeded = !(accessibilityController.focusedElement.isRequired);
+          shouldBe("succeeded", "true");
+
+          // radiogroup 1 is required
+          $("rg1").focus();
+          succeeded = accessibilityController.focusedElement.isRequired;
+          shouldBe("succeeded", "true");
+          // radiogroup 2 and 3 are not required
+          $("rg2").focus();
+          succeeded = !(accessibilityController.focusedElement.isRequired);
+          shouldBe("succeeded", "true");
+          $("rg3").focus();
+          succeeded = !(accessibilityController.focusedElement.isRequired);
+          shouldBe("succeeded", "true");
+
+          // spinbutton 1 is required
+          $("sb1").focus();
+          succeeded = accessibilityController.focusedElement.isRequired;
+          shouldBe("succeeded", "true");
+          // spinbutton 2 and 3 are not required
+          $("sb2").focus();
+          succeeded = !(accessibilityController.focusedElement.isRequired);
+          shouldBe("succeeded", "true");
+          $("sb3").focus();
+          succeeded = !(accessibilityController.focusedElement.isRequired);
+          shouldBe("succeeded", "true");
+
+          // tree 1 is required
+          $("t1").focus();
+          succeeded = accessibilityController.focusedElement.isRequired;
+          shouldBe("succeeded", "true");
+          // tree 2 and 3 are not required
+          $("t2").focus();
+          succeeded = !(accessibilityController.focusedElement.isRequired);
+          shouldBe("succeeded", "true");
+          $("t3").focus();
+          succeeded = !(accessibilityController.focusedElement.isRequired);
+          shouldBe("succeeded", "true");
+
+    }
+
+    $('toBeHidden').hidden = true; // hide this to avoid text diffs when adding more elements to the test
+
+</script>
+
+<script src=""
+</body>
+</html>

Copied: trunk/LayoutTests/accessibility/html5-required-attribute-expected.txt (from rev 151830, trunk/LayoutTests/platform/mac/accessibility/html5-required-attribute-expected.txt) (0 => 151831)


--- trunk/LayoutTests/accessibility/html5-required-attribute-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/accessibility/html5-required-attribute-expected.txt	2013-06-21 10:33:34 UTC (rev 151831)
@@ -0,0 +1,12 @@
+
+This tests that the required attribute is returned correctly through accessibility.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS accessibilityController.focusedElement.isRequired is true
+PASS accessibilityController.focusedElement.isRequired is false
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Copied: trunk/LayoutTests/accessibility/html5-required-attribute.html (from rev 151830, trunk/LayoutTests/platform/mac/accessibility/html5-required-attribute.html) (0 => 151831)


--- trunk/LayoutTests/accessibility/html5-required-attribute.html	                        (rev 0)
+++ trunk/LayoutTests/accessibility/html5-required-attribute.html	2013-06-21 10:33:34 UTC (rev 151831)
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body id="body">
+
+
+<input type="text" id="text1" required>
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+
+    description("This tests that the required attribute is returned correctly through accessibility.");
+
+    if (window.accessibilityController) {
+
+        document.getElementById("text1").focus();
+        shouldBeTrue("accessibilityController.focusedElement.isRequired");
+
+        document.getElementById("text1").removeAttribute("required");
+        shouldBeFalse("accessibilityController.focusedElement.isRequired");
+
+    }
+
+</script>
+
+<script src=""
+</body>
+</html>

Deleted: trunk/LayoutTests/platform/mac/accessibility/aria-required-expected.txt (151830 => 151831)


--- trunk/LayoutTests/platform/mac/accessibility/aria-required-expected.txt	2013-06-21 09:36:05 UTC (rev 151830)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-required-expected.txt	2013-06-21 10:33:34 UTC (rev 151831)
@@ -1,25 +0,0 @@
-  
-This tests that aria-required is a usable attribute.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS succeeded is true
-PASS succeeded is true
-PASS succeeded is true
-PASS succeeded is true
-PASS succeeded is true
-PASS succeeded is true
-PASS succeeded is true
-PASS succeeded is true
-PASS succeeded is true
-PASS succeeded is true
-PASS succeeded is true
-PASS succeeded is true
-PASS succeeded is true
-PASS succeeded is true
-PASS succeeded is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-

Deleted: trunk/LayoutTests/platform/mac/accessibility/aria-required.html (151830 => 151831)


--- trunk/LayoutTests/platform/mac/accessibility/aria-required.html	2013-06-21 09:36:05 UTC (rev 151830)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-required.html	2013-06-21 10:33:34 UTC (rev 151831)
@@ -1,115 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<script src=""
-</head>
-<body id="body">
-
-<input type="text" aria-required="true" id="textfield1">
-<input type="text" aria-required="false" id="textfield2">
-<input type="text" id="textfield3">
-
-<div id="toBeHidden">
-
-  <div tabindex="0" aria-required="true" role="listbox" id="lb1">text</div>
-  <div tabindex="0" aria-required="false" role="listbox" id="lb2">text</div>
-  <div tabindex="0" role="listbox" id="lb3">text</div>
-
-  <div tabindex="0" aria-required="true" role="radiogroup" id="rg1">text</div>
-  <div tabindex="0" aria-required="false" role="radiogroup" id="rg2">text</div>
-  <div tabindex="0" role="radiogroup" id="rg3">text</div>
-
-  <div tabindex="0" aria-required="true" role="spinbutton" id="sb1">text</div>
-  <div tabindex="0" aria-required="false" role="spinbutton" id="sb2">text</div>
-  <div tabindex="0" role="spinbutton" id="sb3">text</div>
-
-  <div tabindex="0" aria-required="true" role="tree" id="t1">text</div>
-  <div tabindex="0" aria-required="false" role="tree" id="t2">text</div>
-  <div tabindex="0" role="tree" id="t3">text</div>
-
-</div>
-
-<p id="description"></p>
-<div id="console"></div>
-
-<script>
-
-    description("This tests that aria-required is a usable attribute.");
-
-    function $(id){
-      return document.getElementById(id);
-    }
-
-    if (window.accessibilityController) {
-
-          var succeeded = false;
-
-          // textfield 1 is required
-          $("textfield1").focus();
-          succeeded = accessibilityController.focusedElement.isRequired;
-          shouldBe("succeeded", "true");
-          // textfield 2 and 3 are not required
-          $("textfield2").focus();
-          succeeded = !(accessibilityController.focusedElement.isRequired);
-          shouldBe("succeeded", "true");
-          $("textfield3").focus();
-          succeeded = !(accessibilityController.focusedElement.isRequired);
-          shouldBe("succeeded", "true");
-
-          // listbox 1 is required
-          $("lb1").focus();
-          succeeded = accessibilityController.focusedElement.isRequired;
-          shouldBe("succeeded", "true");
-          // listbox 2 and 3 are not required
-          $("lb2").focus();
-          succeeded = !(accessibilityController.focusedElement.isRequired);
-          shouldBe("succeeded", "true");
-          $("lb3").focus();
-          succeeded = !(accessibilityController.focusedElement.isRequired);
-          shouldBe("succeeded", "true");
-
-          // radiogroup 1 is required
-          $("rg1").focus();
-          succeeded = accessibilityController.focusedElement.isRequired;
-          shouldBe("succeeded", "true");
-          // radiogroup 2 and 3 are not required
-          $("rg2").focus();
-          succeeded = !(accessibilityController.focusedElement.isRequired);
-          shouldBe("succeeded", "true");
-          $("rg3").focus();
-          succeeded = !(accessibilityController.focusedElement.isRequired);
-          shouldBe("succeeded", "true");
-
-          // spinbutton 1 is required
-          $("sb1").focus();
-          succeeded = accessibilityController.focusedElement.isRequired;
-          shouldBe("succeeded", "true");
-          // spinbutton 2 and 3 are not required
-          $("sb2").focus();
-          succeeded = !(accessibilityController.focusedElement.isRequired);
-          shouldBe("succeeded", "true");
-          $("sb3").focus();
-          succeeded = !(accessibilityController.focusedElement.isRequired);
-          shouldBe("succeeded", "true");
-
-          // tree 1 is required
-          $("t1").focus();
-          succeeded = accessibilityController.focusedElement.isRequired;
-          shouldBe("succeeded", "true");
-          // tree 2 and 3 are not required
-          $("t2").focus();
-          succeeded = !(accessibilityController.focusedElement.isRequired);
-          shouldBe("succeeded", "true");
-          $("t3").focus();
-          succeeded = !(accessibilityController.focusedElement.isRequired);
-          shouldBe("succeeded", "true");
-
-    }
-
-    $('toBeHidden').hidden = true; // hide this to avoid text diffs when adding more elements to the test
-
-</script>
-
-<script src=""
-</body>
-</html>

Deleted: trunk/LayoutTests/platform/mac/accessibility/html5-required-attribute-expected.txt (151830 => 151831)


--- trunk/LayoutTests/platform/mac/accessibility/html5-required-attribute-expected.txt	2013-06-21 09:36:05 UTC (rev 151830)
+++ trunk/LayoutTests/platform/mac/accessibility/html5-required-attribute-expected.txt	2013-06-21 10:33:34 UTC (rev 151831)
@@ -1,12 +0,0 @@
-
-This tests that the required attribute is returned correctly through accessibility.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS accessibilityController.focusedElement.isRequired is true
-PASS accessibilityController.focusedElement.isRequired is false
-PASS successfullyParsed is true
-
-TEST COMPLETE
-

Deleted: trunk/LayoutTests/platform/mac/accessibility/html5-required-attribute.html (151830 => 151831)


--- trunk/LayoutTests/platform/mac/accessibility/html5-required-attribute.html	2013-06-21 09:36:05 UTC (rev 151830)
+++ trunk/LayoutTests/platform/mac/accessibility/html5-required-attribute.html	2013-06-21 10:33:34 UTC (rev 151831)
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<script src=""
-</head>
-<body id="body">
-
-
-<input type="text" id="text1" required>
-
-<p id="description"></p>
-<div id="console"></div>
-
-<script>
-
-    description("This tests that the required attribute is returned correctly through accessibility.");
-
-    if (window.accessibilityController) {
-
-        document.getElementById("text1").focus();
-        shouldBeTrue("accessibilityController.focusedElement.isRequired");
-
-        document.getElementById("text1").removeAttribute("required");
-        shouldBeFalse("accessibilityController.focusedElement.isRequired");
-
-    }
-
-</script>
-
-<script src=""
-</body>
-</html>

Modified: trunk/Source/WebCore/ChangeLog (151830 => 151831)


--- trunk/Source/WebCore/ChangeLog	2013-06-21 09:36:05 UTC (rev 151830)
+++ trunk/Source/WebCore/ChangeLog	2013-06-21 10:33:34 UTC (rev 151831)
@@ -1,3 +1,19 @@
+2013-06-21  Krzysztof Czech  <[email protected]>
+
+        [ATK] Added support for aria-required attribute.
+        https://bugs.webkit.org/show_bug.cgi?id=117730
+
+        Reviewed by Chris Fleizach.
+
+        Tests: accessibility/aria-required.html
+               accessibility/html5-required-attribute.html
+
+        The aria-required attribute is used to indicate that user input is required on an
+        element before a form can be submitted.
+
+        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
+        (setAtkStateSetFromCoreObject):
+
 2013-06-21  Chris Fleizach  <[email protected]>
 
         IndieUI: Add basic IndieUI infrastructure

Modified: trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp (151830 => 151831)


--- trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp	2013-06-21 09:36:05 UTC (rev 151830)
+++ trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp	2013-06-21 10:33:34 UTC (rev 151831)
@@ -712,6 +712,9 @@
     if (coreObject->isPressed())
         atk_state_set_add_state(stateSet, ATK_STATE_PRESSED);
 
+    if (coreObject->isRequired())
+        atk_state_set_add_state(stateSet, ATK_STATE_REQUIRED);
+
     // TODO: ATK_STATE_SELECTABLE_TEXT
 
     if (coreObject->canSetSelectedAttribute()) {

Modified: trunk/Tools/ChangeLog (151830 => 151831)


--- trunk/Tools/ChangeLog	2013-06-21 09:36:05 UTC (rev 151830)
+++ trunk/Tools/ChangeLog	2013-06-21 10:33:34 UTC (rev 151831)
@@ -1,3 +1,17 @@
+2013-06-21  Krzysztof Czech  <[email protected]>
+
+        [ATK] Added support for aria-required attribute.
+        https://bugs.webkit.org/show_bug.cgi?id=117730
+
+        Reviewed by Chris Fleizach.
+
+        Added support for testing aria-required attribute.
+
+        * DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
+        (AccessibilityUIElement::isRequired):
+        * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
+        (WTR::AccessibilityUIElement::isRequired):
+
 2013-06-20  Ryuan Choi  <[email protected]>
 
         [CMAKE][EFL] Enable DOM4 Events Constructor

Modified: trunk/Tools/DumpRenderTree/atk/AccessibilityUIElementAtk.cpp (151830 => 151831)


--- trunk/Tools/DumpRenderTree/atk/AccessibilityUIElementAtk.cpp	2013-06-21 09:36:05 UTC (rev 151830)
+++ trunk/Tools/DumpRenderTree/atk/AccessibilityUIElementAtk.cpp	2013-06-21 10:33:34 UTC (rev 151831)
@@ -581,8 +581,7 @@
 
 bool AccessibilityUIElement::isRequired() const
 {
-    // FIXME: implement
-    return false;
+    return checkElementState(m_element, ATK_STATE_REQUIRED);
 }
 
 bool AccessibilityUIElement::isFocused() const

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp (151830 => 151831)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp	2013-06-21 09:36:05 UTC (rev 151830)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp	2013-06-21 10:33:34 UTC (rev 151831)
@@ -761,8 +761,7 @@
 
 bool AccessibilityUIElement::isRequired() const
 {
-    // FIXME: implement
-    return false;
+    return checkElementState(m_element.get(), ATK_STATE_REQUIRED);
 }
 
 bool AccessibilityUIElement::isFocused() const
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to