Diff
Modified: releases/WebKitGTK/webkit-2.18/LayoutTests/ChangeLog (223399 => 223400)
--- releases/WebKitGTK/webkit-2.18/LayoutTests/ChangeLog 2017-10-16 13:10:27 UTC (rev 223399)
+++ releases/WebKitGTK/webkit-2.18/LayoutTests/ChangeLog 2017-10-16 13:14:11 UTC (rev 223400)
@@ -1,3 +1,18 @@
+2017-09-24 Joanmarie Diggs <[email protected]>
+
+ [ATK] Object attributes are missing for ARIA live region roles
+ https://bugs.webkit.org/show_bug.cgi?id=171174
+
+ Reviewed by Chris Fleizach.
+
+ Move two macOS tests to the shared layout test set.
+
+ * accessibility/aria-liveregion-marquee-default-expected.txt: Renamed from LayoutTests/accessibility/mac/aria-liveregion-marquee-default-expected.txt.
+ * accessibility/aria-liveregion-marquee-default.html: Renamed from LayoutTests/accessibility/mac/aria-liveregion-marquee-default.html.
+ * accessibility/aria-liveregions-attributes-expected.txt: Renamed from LayoutTests/accessibility/mac/aria-liveregions-attributes-expected.txt.
+ * accessibility/aria-liveregions-attributes.html: Renamed from LayoutTests/accessibility/mac/aria-liveregions-attributes.html.
+ * platform/win/TestExpectations: Add the above tests to the list of known failures.
+
2017-09-22 Nael Ouedraogo <[email protected]>
[GTK] HTMLMediaElement resize event not fired when video size changes
Copied: releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/aria-liveregion-marquee-default-expected.txt (from rev 223399, releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/mac/aria-liveregion-marquee-default-expected.txt) (0 => 223400)
--- releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/aria-liveregion-marquee-default-expected.txt (rev 0)
+++ releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/aria-liveregion-marquee-default-expected.txt 2017-10-16 13:14:11 UTC (rev 223400)
@@ -0,0 +1,13 @@
+marquee1
+marquee2
+This tests that the marquee role has the correct default aria-live status (off).
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'off'
+PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'assertive'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Copied: releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/aria-liveregion-marquee-default.html (from rev 223399, releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/mac/aria-liveregion-marquee-default.html) (0 => 223400)
--- releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/aria-liveregion-marquee-default.html (rev 0)
+++ releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/aria-liveregion-marquee-default.html 2017-10-16 13:14:11 UTC (rev 223400)
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body id="body">
+
+<div tabindex="0" id="marquee1" role="marquee">marquee1</div>
+<div tabindex="0" id="marquee2" role="marquee" aria-live="assertive">marquee2</div>
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+
+ description("This tests that the marquee role has the correct default aria-live status (off).");
+
+ if (window.accessibilityController) {
+
+ // Make sure that regular elements are not exposing ARIA live attributes.
+ document.getElementById("marquee1").focus();
+ shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'off'");
+
+ document.getElementById("marquee2").focus();
+ shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'assertive'");
+ }
+
+</script>
+
+<script src=""
+</body>
+</html>
Copied: releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/aria-liveregions-attributes-expected.txt (from rev 223399, releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/mac/aria-liveregions-attributes-expected.txt) (0 => 223400)
--- releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/aria-liveregions-attributes-expected.txt (rev 0)
+++ releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/aria-liveregions-attributes-expected.txt 2017-10-16 13:14:11 UTC (rev 223400)
@@ -0,0 +1,48 @@
+// This tests that elements that are not live regions do not have the live region attrs.
+no live region
+
+// These test that they have the correct default values for aria-live.
+test
+test
+test
+test
+test
+// These test that elements with live regions on have the right attributes
+h3
+
+This tests that the attributes used for ARIA live regions behave correctly.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS accessibilityController.focusedElement.isAttributeSupported('AXElementBusy') is true
+PASS accessibilityController.focusedElement.isAttributeSupported('AXARIARelevant') is false
+PASS accessibilityController.focusedElement.isAttributeSupported('AXARIAAtomic') is false
+PASS accessibilityController.focusedElement.isAttributeSupported('AXARIALive') is false
+PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'assertive'
+PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'assertive'
+PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'polite'
+PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'polite'
+PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'off'
+PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'polite'
+PASS accessibilityController.focusedElement.stringAttributeValue('AXARIARelevant') is 'additions'
+PASS accessibilityController.focusedElement.boolAttributeValue('AXElementBusy') is true
+PASS accessibilityController.focusedElement.isAttributeSupported('AXARIALive') is false
+PASS accessibilityController.focusedElement.isAttributeSupported('AXARIARelevant') is false
+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
+
Copied: releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/aria-liveregions-attributes.html (from rev 223399, releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/mac/aria-liveregions-attributes.html) (0 => 223400)
--- releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/aria-liveregions-attributes.html (rev 0)
+++ releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/aria-liveregions-attributes.html 2017-10-16 13:14:11 UTC (rev 223400)
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body id="body">
+
+// This tests that elements that are not live regions do not have the live region attrs.
+<h3 tabindex=0 id="h3">no live region</h3>
+
+// These test that they have the correct default values for aria-live.
+
+<div tabindex=0 id="alert" role="alert">test</div>
+<div tabindex=0 id="alertdialog" role="alertdialog">test</div>
+<div tabindex=0 id="log" role="log">test</div>
+<div tabindex=0 id="status" role="status">test</div>
+<div tabindex=0 id="timer" role="timer">test</div>
+
+// These test that elements with live regions on have the right attributes
+<div tabindex=0 id="liveregion" role="group" aria-busy="true" aria-live="polite" aria-relevant="additions">
+<h3 tabindex=0 aria-atomic="true" id="h3live">h3</h3>
+</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>
+
+<script>
+
+ description("This tests that the attributes used for ARIA live regions behave correctly.");
+
+ if (window.accessibilityController) {
+
+ // Make sure that regular elements are not exposing ARIA live attributes.
+ document.getElementById("h3").focus();
+ shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXElementBusy')", "true");
+ shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIARelevant')", "false");
+ shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIAAtomic')", "false");
+ shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIALive')", "false");
+
+ // Make sure that specific aria roles get the right aria live values.
+ document.getElementById("alert").focus();
+ shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'assertive'");
+
+ document.getElementById("alertdialog").focus();
+ shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'assertive'");
+
+ document.getElementById("log").focus();
+ shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'polite'");
+
+ document.getElementById("status").focus();
+ shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'polite'");
+
+ document.getElementById("timer").focus();
+ shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'off'");
+
+ // Test the other attributes for a live region
+ document.getElementById("liveregion").focus();
+ shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'polite'");
+ shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIARelevant')", "'additions'");
+ shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXElementBusy')", "true");
+
+ document.getElementById("h3live").focus();
+ shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIALive')", "false");
+ shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIARelevant')", "false");
+ shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic')", "true");
+ shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXElementBusy')", "false");
+
+ // when an element has no specific aria-relevant, it should be additions text by default.
+ 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>
+
+<script src=""
+</body>
+</html>
Deleted: releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/mac/aria-liveregion-marquee-default-expected.txt (223399 => 223400)
--- releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/mac/aria-liveregion-marquee-default-expected.txt 2017-10-16 13:10:27 UTC (rev 223399)
+++ releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/mac/aria-liveregion-marquee-default-expected.txt 2017-10-16 13:14:11 UTC (rev 223400)
@@ -1,13 +0,0 @@
-marquee1
-marquee2
-This tests that the marquee role has the correct default aria-live status (off).
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'off'
-PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'assertive'
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
Deleted: releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/mac/aria-liveregion-marquee-default.html (223399 => 223400)
--- releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/mac/aria-liveregion-marquee-default.html 2017-10-16 13:10:27 UTC (rev 223399)
+++ releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/mac/aria-liveregion-marquee-default.html 2017-10-16 13:14:11 UTC (rev 223400)
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<script src=""
-</head>
-<body id="body">
-
-<div tabindex="0" id="marquee1" role="marquee">marquee1</div>
-<div tabindex="0" id="marquee2" role="marquee" aria-live="assertive">marquee2</div>
-
-<p id="description"></p>
-<div id="console"></div>
-
-<script>
-
- description("This tests that the marquee role has the correct default aria-live status (off).");
-
- if (window.accessibilityController) {
-
- // Make sure that regular elements are not exposing ARIA live attributes.
- document.getElementById("marquee1").focus();
- shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'off'");
-
- document.getElementById("marquee2").focus();
- shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'assertive'");
- }
-
-</script>
-
-<script src=""
-</body>
-</html>
Deleted: releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/mac/aria-liveregions-attributes-expected.txt (223399 => 223400)
--- releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/mac/aria-liveregions-attributes-expected.txt 2017-10-16 13:10:27 UTC (rev 223399)
+++ releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/mac/aria-liveregions-attributes-expected.txt 2017-10-16 13:14:11 UTC (rev 223400)
@@ -1,48 +0,0 @@
-// This tests that elements that are not live regions do not have the live region attrs.
-no live region
-
-// These test that they have the correct default values for aria-live.
-test
-test
-test
-test
-test
-// These test that elements with live regions on have the right attributes
-h3
-
-This tests that the attributes used for ARIA live regions behave correctly.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS accessibilityController.focusedElement.isAttributeSupported('AXElementBusy') is true
-PASS accessibilityController.focusedElement.isAttributeSupported('AXARIARelevant') is false
-PASS accessibilityController.focusedElement.isAttributeSupported('AXARIAAtomic') is false
-PASS accessibilityController.focusedElement.isAttributeSupported('AXARIALive') is false
-PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'assertive'
-PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'assertive'
-PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'polite'
-PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'polite'
-PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'off'
-PASS accessibilityController.focusedElement.stringAttributeValue('AXARIALive') is 'polite'
-PASS accessibilityController.focusedElement.stringAttributeValue('AXARIARelevant') is 'additions'
-PASS accessibilityController.focusedElement.boolAttributeValue('AXElementBusy') is true
-PASS accessibilityController.focusedElement.isAttributeSupported('AXARIALive') is false
-PASS accessibilityController.focusedElement.isAttributeSupported('AXARIARelevant') is false
-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
-
Deleted: releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/mac/aria-liveregions-attributes.html (223399 => 223400)
--- releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/mac/aria-liveregions-attributes.html 2017-10-16 13:10:27 UTC (rev 223399)
+++ releases/WebKitGTK/webkit-2.18/LayoutTests/accessibility/mac/aria-liveregions-attributes.html 2017-10-16 13:14:11 UTC (rev 223400)
@@ -1,107 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<script src=""
-</head>
-<body id="body">
-
-// This tests that elements that are not live regions do not have the live region attrs.
-<h3 tabindex=0 id="h3">no live region</h3>
-
-// These test that they have the correct default values for aria-live.
-
-<div tabindex=0 id="alert" role="alert">test</div>
-<div tabindex=0 id="alertdialog" role="alertdialog">test</div>
-<div tabindex=0 id="log" role="log">test</div>
-<div tabindex=0 id="status" role="status">test</div>
-<div tabindex=0 id="timer" role="timer">test</div>
-
-// These test that elements with live regions on have the right attributes
-<div tabindex=0 id="liveregion" role="group" aria-busy="true" aria-live="polite" aria-relevant="additions">
-<h3 tabindex=0 aria-atomic="true" id="h3live">h3</h3>
-</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>
-
-<script>
-
- description("This tests that the attributes used for ARIA live regions behave correctly.");
-
- if (window.accessibilityController) {
-
- // Make sure that regular elements are not exposing ARIA live attributes.
- document.getElementById("h3").focus();
- shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXElementBusy')", "true");
- shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIARelevant')", "false");
- shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIAAtomic')", "false");
- shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIALive')", "false");
-
- // Make sure that specific aria roles get the right aria live values.
- document.getElementById("alert").focus();
- shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'assertive'");
-
- document.getElementById("alertdialog").focus();
- shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'assertive'");
-
- document.getElementById("log").focus();
- shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'polite'");
-
- document.getElementById("status").focus();
- shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'polite'");
-
- document.getElementById("timer").focus();
- shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'off'");
-
- // Test the other attributes for a live region
- document.getElementById("liveregion").focus();
- shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'polite'");
- shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIARelevant')", "'additions'");
- shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXElementBusy')", "true");
-
- document.getElementById("h3live").focus();
- shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIALive')", "false");
- shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIARelevant')", "false");
- shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic')", "true");
- shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXElementBusy')", "false");
-
- // when an element has no specific aria-relevant, it should be additions text by default.
- 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>
-
-<script src=""
-</body>
-</html>
Modified: releases/WebKitGTK/webkit-2.18/LayoutTests/platform/win/TestExpectations (223399 => 223400)
--- releases/WebKitGTK/webkit-2.18/LayoutTests/platform/win/TestExpectations 2017-10-16 13:10:27 UTC (rev 223399)
+++ releases/WebKitGTK/webkit-2.18/LayoutTests/platform/win/TestExpectations 2017-10-16 13:14:11 UTC (rev 223400)
@@ -45,6 +45,8 @@
#////////////////////////////////////////////////////////////////////////////////////////
accessibility/media-emits-object-replacement.html [ Failure ]
+accessibility/aria-liveregions-attributes.html [ Failure ]
+accessibility/aria-liveregion-marquee-default.html [ Failure ]
# <rdar://problem/5075790> Layout tests that depend on certain fonts don't match Mac results:
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog (223399 => 223400)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog 2017-10-16 13:10:27 UTC (rev 223399)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog 2017-10-16 13:14:11 UTC (rev 223400)
@@ -1,3 +1,30 @@
+2017-09-24 Joanmarie Diggs <[email protected]>
+
+ [ATK] Object attributes are missing for ARIA live region roles
+ https://bugs.webkit.org/show_bug.cgi?id=171174
+
+ Reviewed by Chris Fleizach.
+
+ Expose the values of aria-live, aria-atomic, and aria-relevant via AtkObject
+ attributes on live region elements and their descendants. In order to accomplish
+ exposure on descendants, add AccessibilityObject::ariaLiveRegionAncestor(). Add an
+ optional argument, excludeIfOff, to AccessibilityObject::isInsideARIALiveRegion()
+ and AccessibilityObject::supportsARIALiveRegion(). This is needed because we need
+ to expose live region properties via ATK even in the case where the live region
+ is disabled/off, but supportsARIALiveRegion() deliberately checks if the live
+ region is enabled.
+
+ Tests: accessibility/aria-liveregion-marquee-default.html
+ accessibility/aria-liveregions-attributes.html
+
+ * accessibility/AccessibilityObject.cpp:
+ (WebCore::AccessibilityObject::isInsideARIALiveRegion const):
+ (WebCore::AccessibilityObject::ariaLiveRegionAncestor const):
+ (WebCore::AccessibilityObject::supportsARIALiveRegion const):
+ * accessibility/AccessibilityObject.h:
+ * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
+ (webkitAccessibleGetAttributes):
+
2017-09-26 Said Abou-Hallawa <[email protected]>
Followup (r222427): SynchronizedFixedQueue should not have a public constructor
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/accessibility/AccessibilityObject.cpp (223399 => 223400)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/accessibility/AccessibilityObject.cpp 2017-10-16 13:10:27 UTC (rev 223399)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/accessibility/AccessibilityObject.cpp 2017-10-16 13:14:11 UTC (rev 223400)
@@ -2497,14 +2497,16 @@
return nullAtom();
}
-bool AccessibilityObject::isInsideARIALiveRegion() const
+bool AccessibilityObject::isInsideARIALiveRegion(bool excludeIfOff) const
{
- if (supportsARIALiveRegion())
- return true;
+ return ariaLiveRegionAncestor(excludeIfOff);
+}
- return AccessibilityObject::matchedParent(*this, false, [] (const AccessibilityObject& object) {
- return object.supportsARIALiveRegion();
- }) != nullptr;
+AccessibilityObject* AccessibilityObject::ariaLiveRegionAncestor(bool excludeIfOff) const
+{
+ return const_cast<AccessibilityObject*>(AccessibilityObject::matchedParent(*this, true, [excludeIfOff] (const AccessibilityObject& object) {
+ return object.supportsARIALiveRegion(excludeIfOff);
+ }));
}
bool AccessibilityObject::supportsARIAAttributes() const
@@ -2535,9 +2537,10 @@
return equalLettersIgnoringASCIICase(liveRegionStatus, "polite") || equalLettersIgnoringASCIICase(liveRegionStatus, "assertive");
}
-bool AccessibilityObject::supportsARIALiveRegion() const
+bool AccessibilityObject::supportsARIALiveRegion(bool excludeIfOff) const
{
- return liveRegionStatusIsEnabled(ariaLiveRegionStatus());
+ const AtomicString& liveRegionStatus = ariaLiveRegionStatus();
+ return excludeIfOff ? liveRegionStatusIsEnabled(liveRegionStatus) : !liveRegionStatus.isEmpty();
}
AccessibilityObject* AccessibilityObject::elementAccessibilityHitTest(const IntPoint& point) const
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/accessibility/AccessibilityObject.h (223399 => 223400)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/accessibility/AccessibilityObject.h 2017-10-16 13:10:27 UTC (rev 223399)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/accessibility/AccessibilityObject.h 2017-10-16 13:14:11 UTC (rev 223400)
@@ -973,8 +973,9 @@
void ariaTreeItemContent(AccessibilityChildrenVector&);
// ARIA live-region features.
- bool supportsARIALiveRegion() const;
- bool isInsideARIALiveRegion() const;
+ bool supportsARIALiveRegion(bool excludeIfOff = true) const;
+ bool isInsideARIALiveRegion(bool excludeIfOff = true) const;
+ AccessibilityObject* ariaLiveRegionAncestor(bool excludeIfOff = true) const;
virtual const String ariaLiveRegionStatus() const { return String(); }
virtual const AtomicString& ariaLiveRegionRelevant() const { return nullAtom(); }
virtual bool ariaLiveRegionAtomic() const { return false; }
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp (223399 => 223400)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp 2017-10-16 13:10:27 UTC (rev 223399)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp 2017-10-16 13:14:11 UTC (rev 223400)
@@ -548,6 +548,33 @@
if (!roleDescription.isEmpty())
attributeSet = addToAtkAttributeSet(attributeSet, "roledescription", roleDescription.utf8().data());
+ // We need to expose the live region attributes even if the live region is currently disabled/off.
+ if (auto liveContainer = coreObject->ariaLiveRegionAncestor(false)) {
+ String liveStatus = liveContainer->ariaLiveRegionStatus();
+ String relevant = liveContainer->ariaLiveRegionRelevant();
+ bool isAtomic = liveContainer->ariaLiveRegionAtomic();
+ String liveRole = roleString.isEmpty() ? computedRoleString : roleString;
+
+ // According to the Core AAM, we need to expose the above properties with "container-" prefixed
+ // object attributes regardless of whether the container is this object, or an ancestor of it.
+ attributeSet = addToAtkAttributeSet(attributeSet, "container-live", liveStatus.utf8().data());
+ attributeSet = addToAtkAttributeSet(attributeSet, "container-relevant", relevant.utf8().data());
+ if (isAtomic)
+ attributeSet = addToAtkAttributeSet(attributeSet, "container-atomic", "true");
+ if (!liveRole.isEmpty())
+ attributeSet = addToAtkAttributeSet(attributeSet, "container-live-role", liveRole.utf8().data());
+
+ // According to the Core AAM, if this object is the live region (rather than its descendant),
+ // we must expose the above properties on the object without a "container-" prefix.
+ if (liveContainer == coreObject) {
+ attributeSet = addToAtkAttributeSet(attributeSet, "live", liveStatus.utf8().data());
+ attributeSet = addToAtkAttributeSet(attributeSet, "relevant", relevant.utf8().data());
+ if (isAtomic)
+ attributeSet = addToAtkAttributeSet(attributeSet, "atomic", "true");
+ } else if (!isAtomic && coreObject->ariaLiveRegionAtomic())
+ attributeSet = addToAtkAttributeSet(attributeSet, "atomic", "true");
+ }
+
return attributeSet;
}
Modified: releases/WebKitGTK/webkit-2.18/Tools/ChangeLog (223399 => 223400)
--- releases/WebKitGTK/webkit-2.18/Tools/ChangeLog 2017-10-16 13:10:27 UTC (rev 223399)
+++ releases/WebKitGTK/webkit-2.18/Tools/ChangeLog 2017-10-16 13:14:11 UTC (rev 223400)
@@ -1,3 +1,19 @@
+2017-09-24 Joanmarie Diggs <[email protected]>
+
+ [ATK] Object attributes are missing for ARIA live region roles
+ https://bugs.webkit.org/show_bug.cgi?id=171174
+
+ Reviewed by Chris Fleizach.
+
+ Add support for testing property values for AXARIALive, AXARIAAtomic, and
+ AXARIARelevant. Also add handling for testing whether AXElementBusy is
+ "supported" (in ATK, busy is a state and is supported on all elements
+ regardless of whether the state is present or absent from the state set).
+
+ * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
+ (WTR::AccessibilityUIElement::boolAttributeValue):
+ (WTR::AccessibilityUIElement::isAttributeSupported):
+
2017-09-26 Said Abou-Hallawa <[email protected]>
Followup (r222427): SynchronizedFixedQueue should not have a public constructor
Modified: releases/WebKitGTK/webkit-2.18/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp (223399 => 223400)
--- releases/WebKitGTK/webkit-2.18/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp 2017-10-16 13:10:27 UTC (rev 223399)
+++ releases/WebKitGTK/webkit-2.18/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp 2017-10-16 13:14:11 UTC (rev 223400)
@@ -82,6 +82,10 @@
PlaceholderNameIndex,
SortNameIndex,
CurrentNameIndex,
+ AriaLiveNameIndex,
+ AriaAtomicNameIndex,
+ AriaRelevantNameIndex,
+ BusyNameIndex,
// Attribute values.
SortAscendingValueIndex,
@@ -106,6 +110,10 @@
{ "AXPlaceholderValue", "placeholder-text" } ,
{ "AXSortDirection", "sort" },
{ "AXARIACurrent", "current" },
+ { "AXARIALive", "live" },
+ { "AXARIAAtomic", "atomic" },
+ { "AXARIARelevant", "relevant" },
+ { "AXElementBusy", "busy" },
// Attribute values.
{ "AXAscendingSortDirection", "ascending" },
@@ -1216,6 +1224,11 @@
if (attributeString == "AXInterfaceTableCell")
return ATK_IS_TABLE_CELL(m_element.get());
+ if (attributeString == "AXARIAAtomic") {
+ String atkAttribute = coreAttributeToAtkAttribute(attribute);
+ return getAttributeSetValueForId(ATK_OBJECT(m_element.get()), ObjectAttributeType, atkAttribute) == "true";
+ }
+
return false;
}
@@ -1283,11 +1296,19 @@
if (atkAttributeName.isEmpty())
return false;
+ // In ATK, "busy" is a state and is supported on all AtkObject instances.
+ if (atkAttributeName == "busy")
+ return true;
+
// For now, an attribute is supported whether it's exposed as a object or a text attribute.
String attributeValue = getAttributeSetValueForId(ATK_OBJECT(m_element.get()), ObjectAttributeType, atkAttributeName);
if (attributeValue.isEmpty())
attributeValue = getAttributeSetValueForId(ATK_OBJECT(m_element.get()), TextAttributeType, atkAttributeName);
+ // When the aria-live value is "off", we expose that value via the "live" object attribute.
+ if (atkAttributeName == "live" && attributeValue == "off")
+ return false;
+
return !attributeValue.isEmpty();
}