Title: [144858] trunk
Revision
144858
Author
cfleiz...@apple.com
Date
2013-03-05 17:47:47 -0800 (Tue, 05 Mar 2013)

Log Message

AX: Support aria-posinset/setsize
https://bugs.webkit.org/show_bug.cgi?id=109725

Reviewed by Tim Horton.

Source/WebCore: 

Expose aria-setsize and aria-posinset through accessibility.
Right now only the Mac platform exposes them.

Test: platform/mac/accessibility/aria-setsize-posinset.html

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::supportsARIASetSize):
(WebCore):
(WebCore::AccessibilityObject::supportsARIAPosInset):
(WebCore::AccessibilityObject::ariaSetSize):
(WebCore::AccessibilityObject::ariaPosInset):
* accessibility/AccessibilityObject.h:
(AccessibilityObject):
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
* html/HTMLAttributeNames.in:

LayoutTests: 

* platform/mac/accessibility/aria-setsize-posinset-expected.txt: Added.
* platform/mac/accessibility/aria-setsize-posinset.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (144857 => 144858)


--- trunk/LayoutTests/ChangeLog	2013-03-06 01:41:51 UTC (rev 144857)
+++ trunk/LayoutTests/ChangeLog	2013-03-06 01:47:47 UTC (rev 144858)
@@ -1,3 +1,13 @@
+2013-03-05  Chris Fleizach  <cfleiz...@apple.com>
+
+        AX: Support aria-posinset/setsize
+        https://bugs.webkit.org/show_bug.cgi?id=109725
+
+        Reviewed by Tim Horton.
+
+        * platform/mac/accessibility/aria-setsize-posinset-expected.txt: Added.
+        * platform/mac/accessibility/aria-setsize-posinset.html: Added.
+
 2013-03-05  Emil A Eklund  <e...@chromium.org>
 
         Unreviewed apple rebaselines for r144837.

Added: trunk/LayoutTests/platform/mac/accessibility/aria-setsize-posinset-expected.txt (0 => 144858)


--- trunk/LayoutTests/platform/mac/accessibility/aria-setsize-posinset-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-setsize-posinset-expected.txt	2013-03-06 01:47:47 UTC (rev 144858)
@@ -0,0 +1,18 @@
+This tests verifies that aria-posinset and aria-setsize are exposed to accessibility correctly.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Verify that the first item in the list exposes setsize and posinset attributes.
+PASS list.childAtIndex(0).isAttributeSupported('AXARIASetSize') is true
+PASS list.childAtIndex(0).isAttributeSupported('AXARIAPosInSet') is true
+Verify that the first item in the list returns the correct value for setsize and posinset.
+PASS list.childAtIndex(0).numberAttributeValue('AXARIASetSize') is 100
+PASS list.childAtIndex(0).numberAttributeValue('AXARIAPosInSet') is 3
+Verify that the second item in the list does not support setsize and posinset.
+PASS list.childAtIndex(1).isAttributeSupported('AXARIASetSize') is false
+PASS list.childAtIndex(1).isAttributeSupported('AXARIAPosInSet') is false
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/platform/mac/accessibility/aria-setsize-posinset.html (0 => 144858)


--- trunk/LayoutTests/platform/mac/accessibility/aria-setsize-posinset.html	                        (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-setsize-posinset.html	2013-03-06 01:47:47 UTC (rev 144858)
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body id="body">
+
+<ul id="list">
+<li aria-setsize="100" aria-posinset="3">3</li>
+<li>4</li>
+</ul>
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+
+    description("This tests verifies that aria-posinset and aria-setsize are exposed to accessibility correctly.");
+
+    if (window.accessibilityController) {
+
+          var list = accessibilityController.accessibleElementById("list");
+
+          debug("Verify that the first item in the list exposes setsize and posinset attributes.");
+          shouldBeTrue("list.childAtIndex(0).isAttributeSupported('AXARIASetSize')");
+          shouldBeTrue("list.childAtIndex(0).isAttributeSupported('AXARIAPosInSet')");
+
+          debug("Verify that the first item in the list returns the correct value for setsize and posinset.");
+          shouldBe("list.childAtIndex(0).numberAttributeValue('AXARIASetSize')", "100");
+          shouldBe("list.childAtIndex(0).numberAttributeValue('AXARIAPosInSet')", "3");
+
+          debug("Verify that the second item in the list does not support setsize and posinset.");
+          shouldBeFalse("list.childAtIndex(1).isAttributeSupported('AXARIASetSize')");
+          shouldBeFalse("list.childAtIndex(1).isAttributeSupported('AXARIAPosInSet')");
+
+          document.getElementById("list").style.visibility = 'hidden';
+    }
+
+</script>
+
+<script src=""
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (144857 => 144858)


--- trunk/Source/WebCore/ChangeLog	2013-03-06 01:41:51 UTC (rev 144857)
+++ trunk/Source/WebCore/ChangeLog	2013-03-06 01:47:47 UTC (rev 144858)
@@ -1,3 +1,29 @@
+2013-03-05  Chris Fleizach  <cfleiz...@apple.com>
+ 
+        AX: Support aria-posinset/setsize
+        https://bugs.webkit.org/show_bug.cgi?id=109725
+
+        Reviewed by Tim Horton.
+
+        Expose aria-setsize and aria-posinset through accessibility.
+        Right now only the Mac platform exposes them.
+
+        Test: platform/mac/accessibility/aria-setsize-posinset.html
+
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::supportsARIASetSize):
+        (WebCore):
+        (WebCore::AccessibilityObject::supportsARIAPosInset):
+        (WebCore::AccessibilityObject::ariaSetSize):
+        (WebCore::AccessibilityObject::ariaPosInset):
+        * accessibility/AccessibilityObject.h:
+        (AccessibilityObject):
+        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
+        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
+        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
+        * html/HTMLAttributeNames.in:
+
+
 2013-03-05  Peter Nelson  <pe...@peterdn.com>
 
         [WinCairo] Support for cookies is incomplete

Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.cpp (144857 => 144858)


--- trunk/Source/WebCore/accessibility/AccessibilityObject.cpp	2013-03-06 01:41:51 UTC (rev 144857)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.cpp	2013-03-06 01:47:47 UTC (rev 144858)
@@ -1586,6 +1586,26 @@
         || isSpinButton();
 }
     
+bool AccessibilityObject::supportsARIASetSize() const
+{
+    return hasAttribute(aria_setsizeAttr);
+}
+
+bool AccessibilityObject::supportsARIAPosInSet() const
+{
+    return hasAttribute(aria_posinsetAttr);
+}
+    
+int AccessibilityObject::ariaSetSize() const
+{
+    return getAttribute(aria_setsizeAttr).toInt();
+}
+
+int AccessibilityObject::ariaPosInSet() const
+{
+    return getAttribute(aria_posinsetAttr).toInt();
+}
+    
 bool AccessibilityObject::supportsARIAExpanded() const
 {
     return !getAttribute(aria_expandedAttr).isEmpty();

Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.h (144857 => 144858)


--- trunk/Source/WebCore/accessibility/AccessibilityObject.h	2013-03-06 01:41:51 UTC (rev 144857)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.h	2013-03-06 01:47:47 UTC (rev 144858)
@@ -514,6 +514,11 @@
     AccessibilitySortDirection sortDirection() const;
     virtual bool canvasHasFallbackContent() const { return false; }
     bool supportsRangeValue() const;
+
+    bool supportsARIASetSize() const;
+    bool supportsARIAPosInSet() const;
+    int ariaSetSize() const;
+    int ariaPosInSet() const;
     
     // ARIA drag and drop
     virtual bool supportsARIADropping() const { return false; }

Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (144857 => 144858)


--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm	2013-03-06 01:41:51 UTC (rev 144857)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm	2013-03-06 01:47:47 UTC (rev 144858)
@@ -164,6 +164,14 @@
 #define NSAccessibilityARIABusyAttribute @"AXARIABusy"
 #endif
 
+#ifndef NSAccessibilityARIAPosInSetAttribute
+#define NSAccessibilityARIAPosInSetAttribute @"AXARIAPosInSet"
+#endif
+
+#ifndef NSAccessibilityARIASetSizeAttribute
+#define NSAccessibilityARIASetSizeAttribute @"AXARIASetSize"
+#endif
+
 #ifndef NSAccessibilityLoadingProgressAttribute
 #define NSAccessibilityLoadingProgressAttribute @"AXLoadingProgress"
 #endif
@@ -971,6 +979,11 @@
         [additional addObject:NSAccessibilityARIARelevantAttribute];
     }
     
+    if (m_object->supportsARIASetSize())
+        [additional addObject:NSAccessibilityARIASetSizeAttribute];
+    if (m_object->supportsARIAPosInSet())
+        [additional addObject:NSAccessibilityARIAPosInSetAttribute];
+    
     if (m_object->sortDirection() != SortDirectionNone)
         [additional addObject:NSAccessibilitySortDirectionAttribute];
     
@@ -2577,6 +2590,11 @@
         return convertToNSArray(ariaOwns);
     }
     
+    if ([attributeName isEqualToString:NSAccessibilityARIAPosInSetAttribute])
+        return [NSNumber numberWithInt:m_object->ariaPosInSet()];
+    if ([attributeName isEqualToString:NSAccessibilityARIASetSizeAttribute])
+        return [NSNumber numberWithInt:m_object->ariaSetSize()];
+    
     if ([attributeName isEqualToString:NSAccessibilityGrabbedAttribute])
         return [NSNumber numberWithBool:m_object->isARIAGrabbed()];
     

Modified: trunk/Source/WebCore/html/HTMLAttributeNames.in (144857 => 144858)


--- trunk/Source/WebCore/html/HTMLAttributeNames.in	2013-03-06 01:41:51 UTC (rev 144857)
+++ trunk/Source/WebCore/html/HTMLAttributeNames.in	2013-03-06 01:47:47 UTC (rev 144858)
@@ -37,11 +37,13 @@
 aria-multiselectable
 aria-orientation
 aria-owns
+aria-posinset
 aria-pressed
 aria-readonly
 aria-relevant
 aria-required
 aria-selected
+aria-setsize
 aria-sort
 aria-valuemax
 aria-valuemin
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to