Title: [166594] trunk
Revision
166594
Author
commit-qu...@webkit.org
Date
2014-04-01 09:36:45 -0700 (Tue, 01 Apr 2014)

Log Message

AX: AccessibilityRenderObject::ariaLiveRegionAtomic() should default to true if
roleValue is ApplicationAlertRole || ApplicationStatusRole
https://bugs.webkit.org/show_bug.cgi?id=130907

Patch by James Craig <jcr...@apple.com> on 2014-04-01
Reviewed by Chris Fleizach.

Source/WebCore:

Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion.html:
       platform/mac/accessibility/aria-liveregions-attributes.html:

Updated AccessibilityRenderObject::ariaLiveRegionAtomic() to match ARIA spec.

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::ariaLiveRegionAtomic):

LayoutTests:

Updated AccessibilityRenderObject::ariaLiveRegionAtomic() to match ARIA spec.

* inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion-expected.txt:
* inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion.html:
* platform/mac/accessibility/aria-liveregions-attributes-expected.txt:
* platform/mac/accessibility/aria-liveregions-attributes.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (166593 => 166594)


--- trunk/LayoutTests/ChangeLog	2014-04-01 16:32:41 UTC (rev 166593)
+++ trunk/LayoutTests/ChangeLog	2014-04-01 16:36:45 UTC (rev 166594)
@@ -1,3 +1,18 @@
+2014-04-01  James Craig  <jcr...@apple.com>
+
+        AX: AccessibilityRenderObject::ariaLiveRegionAtomic() should default to true if
+        roleValue is ApplicationAlertRole || ApplicationStatusRole
+        https://bugs.webkit.org/show_bug.cgi?id=130907
+
+        Reviewed by Chris Fleizach.
+
+        Updated AccessibilityRenderObject::ariaLiveRegionAtomic() to match ARIA spec.
+
+        * inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion-expected.txt:
+        * inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion.html:
+        * platform/mac/accessibility/aria-liveregions-attributes-expected.txt:
+        * platform/mac/accessibility/aria-liveregions-attributes.html:
+
 2014-04-01  Zalan Bujtas  <za...@apple.com>
 
         Subpixel rendering: Transition class Image (and its dependencies) from int to float to enable subpixel positioned/sized images.

Modified: trunk/LayoutTests/inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion-expected.txt (166593 => 166594)


--- trunk/LayoutTests/inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion-expected.txt	2014-04-01 16:32:41 UTC (rev 166593)
+++ trunk/LayoutTests/inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion-expected.txt	2014-04-01 16:36:45 UTC (rev 166594)
@@ -8,14 +8,14 @@
 <div role="status" aria-live="off">off</div>
     exists: true
 
-<div role="status" aria-live="assertive">assertive <!-- FIXME: atomic should be true http://webkit.org/b/130907 --></div>
+<div role="status" aria-live="assertive">assertive</div>
     exists: true
-    liveRegionAtomic: false
+    liveRegionAtomic: true
     liveRegionStatus: assertive
 
-<div role="status">polite (default) <!-- FIXME: atomic should be true http://webkit.org/b/130907 --></div>
+<div role="status">polite (default)</div>
     exists: true
-    liveRegionAtomic: false
+    liveRegionAtomic: true
     liveRegionStatus: polite
 
 <div role="marquee">off (default)</div>
@@ -34,17 +34,17 @@
     liveRegionAtomic: false
     liveRegionStatus: polite
 
-<div role="alert" aria-live="polite">polite <!-- FIXME: atomic should be true http://webkit.org/b/130907 --></div>
+<div role="alert" aria-live="polite">polite</div>
     exists: true
-    liveRegionAtomic: false
+    liveRegionAtomic: true
     liveRegionStatus: polite
 
 <div role="alert" aria-live="off">off</div>
     exists: true
 
-<div role="alert">assertive (default) <!-- FIXME: atomic should be true http://webkit.org/b/130907 --></div>
+<div role="alert">assertive (default)</div>
     exists: true
-    liveRegionAtomic: false
+    liveRegionAtomic: true
     liveRegionStatus: assertive
 
 <div role="group" aria-live="assertive" aria-busy="true" aria-atomic="false">assertive</div>

Modified: trunk/LayoutTests/inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion.html (166593 => 166594)


--- trunk/LayoutTests/inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion.html	2014-04-01 16:32:41 UTC (rev 166593)
+++ trunk/LayoutTests/inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion.html	2014-04-01 16:36:45 UTC (rev 166594)
@@ -15,15 +15,15 @@
     <div class="ex" role="group" aria-live="polite" aria-busy="true" aria-atomic="false">polite</div>
     <div class="ex" role="group" aria-live="assertive" aria-busy="true" aria-atomic="false">assertive</div>
     
-    <div class="ex" role="alert">assertive (default) <!-- FIXME: atomic should be true http://webkit.org/b/130907 --></div>
+    <div class="ex" role="alert">assertive (default)</div>
 	<div class="ex" role="alert" aria-live="off">off</div>
-	<div class="ex" role="alert" aria-live="polite">polite <!-- FIXME: atomic should be true http://webkit.org/b/130907 --></div>
+	<div class="ex" role="alert" aria-live="polite">polite</div>
 	<div class="ex" role="log">polite (default)</div>
 	<div class="ex" role="log" aria-live="assertive">assertive</div>
 	<div class="ex" role="log" aria-live="off">off</div>
 	<div class="ex" role="marquee">off (default)</div>
-	<div class="ex" role="status">polite (default) <!-- FIXME: atomic should be true http://webkit.org/b/130907 --></div>
-	<div class="ex" role="status" aria-live="assertive">assertive <!-- FIXME: atomic should be true http://webkit.org/b/130907 --></div>
+	<div class="ex" role="status">polite (default)</div>
+	<div class="ex" role="status" aria-live="assertive">assertive</div>
 	<div class="ex" role="status" aria-live="off">off</div>
 	<div class="ex" role="timer">off (default)</div>
 

Modified: trunk/LayoutTests/platform/mac/accessibility/aria-liveregions-attributes-expected.txt (166593 => 166594)


--- trunk/LayoutTests/platform/mac/accessibility/aria-liveregions-attributes-expected.txt	2014-04-01 16:32:41 UTC (rev 166593)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-liveregions-attributes-expected.txt	2014-04-01 16:36:45 UTC (rev 166594)
@@ -32,6 +32,16 @@
 PASS accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic') is true
 PASS accessibilityController.focusedElement.boolAttributeValue('AXElementBusy') is false
 PASS accessibilityController.focusedElement.stringAttributeValue('AXARIARelevant') is 'additions text'
+PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'assertive'
+PASS accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic') is true
+PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'polite'
+PASS accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic') is true
+PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'polite'
+PASS accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic') is false
+PASS accessibilityController.focusedElement.isAttributeSupported('AXARIALive') is false
+PASS accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic') is false
+PASS accessibilityController.focusedElement.isAttributeSupported('AXARIALive') is false
+PASS accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic') is false
 PASS successfullyParsed is true
 
 TEST COMPLETE

Modified: trunk/LayoutTests/platform/mac/accessibility/aria-liveregions-attributes.html (166593 => 166594)


--- trunk/LayoutTests/platform/mac/accessibility/aria-liveregions-attributes.html	2014-04-01 16:32:41 UTC (rev 166593)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-liveregions-attributes.html	2014-04-01 16:36:45 UTC (rev 166594)
@@ -21,9 +21,15 @@
 <h3 tabindex=0 aria-atomic="true" id="h3live">h3</h3>
 </div>
 
-<div tabindex=0 id="liveregion2" role="group" aria-live="polite">
-</div>
+<div tabindex=0 id="liveregion2" role="group" aria-live="polite"></div>
 
+<!-- Default live region values per role. -->
+<div tabindex=0 id="liveregion_alert" role="alert"><!-- atomic=true, live=assertive --></div>
+<div tabindex=0 id="liveregion_status" role="status"><!-- atomic=true, live=polite --></div>
+<div tabindex=0 id="liveregion_log" role="log"><!-- atomic=false, live=polite --></div>
+<div tabindex=0 id="liveregion_timer" role="timer"><!-- atomic=false, live=off --></div>
+<div tabindex=0 id="liveregion_marquee" role="marquee"><!-- atomic=false, live=off --></div>
+
 <p id="description"></p>
 <div id="console"></div>
 
@@ -72,6 +78,26 @@
           document.getElementById("liveregion2").focus();
           shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIARelevant')", "'additions text'");
  
+          document.getElementById("liveregion_alert").focus();
+          shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'assertive'");
+          shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic')", "true");
+
+          document.getElementById("liveregion_status").focus();
+          shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'polite'");
+          shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic')", "true");
+
+          document.getElementById("liveregion_log").focus();
+          shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'polite'");
+          shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic')", "false");
+
+          document.getElementById("liveregion_timer").focus();
+          shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIALive')", "false");
+          shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic')", "false");
+
+          document.getElementById("liveregion_marquee").focus();
+          shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIALive')", "false");
+          shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic')", "false");
+
     }
 
 </script>

Modified: trunk/Source/WebCore/ChangeLog (166593 => 166594)


--- trunk/Source/WebCore/ChangeLog	2014-04-01 16:32:41 UTC (rev 166593)
+++ trunk/Source/WebCore/ChangeLog	2014-04-01 16:36:45 UTC (rev 166594)
@@ -1,3 +1,19 @@
+2014-04-01  James Craig  <jcr...@apple.com>
+
+        AX: AccessibilityRenderObject::ariaLiveRegionAtomic() should default to true if
+        roleValue is ApplicationAlertRole || ApplicationStatusRole
+        https://bugs.webkit.org/show_bug.cgi?id=130907
+
+        Reviewed by Chris Fleizach.
+
+        Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion.html:
+               platform/mac/accessibility/aria-liveregions-attributes.html:
+
+        Updated AccessibilityRenderObject::ariaLiveRegionAtomic() to match ARIA spec.
+
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::ariaLiveRegionAtomic):
+
 2014-04-01  Zan Dobersek  <zdober...@igalia.com>
 
         Unreviewed. Fixing debug builds after r166586.

Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (166593 => 166594)


--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp	2014-04-01 16:32:41 UTC (rev 166593)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp	2014-04-01 16:36:45 UTC (rev 166594)
@@ -3090,7 +3090,19 @@
 
 bool AccessibilityRenderObject::ariaLiveRegionAtomic() const
 {
-    return elementAttributeValue(aria_atomicAttr);    
+    const AtomicString& atomic = getAttribute(aria_atomicAttr);
+    if (equalIgnoringCase(atomic, "true"))
+        return true;
+    if (equalIgnoringCase(atomic, "false"))
+        return false;
+    // WAI-ARIA "alert" and "status" roles have an implicit aria-atomic value of true.
+    switch (roleValue()) {
+    case ApplicationAlertRole:
+    case ApplicationStatusRole:
+        return true;
+    default:
+        return false;
+    }
 }
 
 bool AccessibilityRenderObject::ariaLiveRegionBusy() const
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to