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