From 7830e8dd89ef3864226d7170cef319d08d97ca5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20one=20with=20the=20braid=20=7C=20D=D1=84=D2=BF=20mit?= =?UTF-8?q?=20dem=20Zopf?= Date: Tue, 10 Aug 2021 21:10:53 +0200 Subject: [PATCH] [web_ui] Fixed aria-live attribute on web (flutter/engine#27985) * Fixed aria-live attribute on web --- engine/src/flutter/AUTHORS | 1 + .../lib/src/engine/semantics/semantics_helper.dart | 8 +++++--- .../test/engine/semantics/semantics_helper_test.dart | 12 ++++++------ 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/engine/src/flutter/AUTHORS b/engine/src/flutter/AUTHORS index 9dcfff5242..455f2c6699 100644 --- a/engine/src/flutter/AUTHORS +++ b/engine/src/flutter/AUTHORS @@ -20,3 +20,4 @@ Hidenori Matsubayashi Sarbagya Dhaubanjar Callum Moffat Koutaro Mori +TheOneWithTheBraid \ No newline at end of file diff --git a/engine/src/flutter/lib/web_ui/lib/src/engine/semantics/semantics_helper.dart b/engine/src/flutter/lib/web_ui/lib/src/engine/semantics/semantics_helper.dart index 591d85df43..0d57780b29 100644 --- a/engine/src/flutter/lib/web_ui/lib/src/engine/semantics/semantics_helper.dart +++ b/engine/src/flutter/lib/web_ui/lib/src/engine/semantics/semantics_helper.dart @@ -174,7 +174,8 @@ class DesktopSemanticsEnabler extends SemanticsEnabler { @override html.Element prepareAccessibilityPlaceholder() { - final html.Element placeholder = _semanticsPlaceholder = html.Element.tag('flt-semantics-placeholder'); + final html.Element placeholder = + _semanticsPlaceholder = html.Element.tag('flt-semantics-placeholder'); // Only listen to "click" because other kinds of events are reported via // PointerBinding. @@ -189,7 +190,7 @@ class DesktopSemanticsEnabler extends SemanticsEnabler { // to the assistive technology user. placeholder ..setAttribute('role', 'button') - ..setAttribute('aria-live', 'true') + ..setAttribute('aria-live', 'polite') ..setAttribute('tabindex', '0') ..setAttribute('aria-label', placeholderMessage); @@ -372,7 +373,8 @@ class MobileSemanticsEnabler extends SemanticsEnabler { @override html.Element prepareAccessibilityPlaceholder() { - final html.Element placeholder = _semanticsPlaceholder = html.Element.tag('flt-semantics-placeholder'); + final html.Element placeholder = + _semanticsPlaceholder = html.Element.tag('flt-semantics-placeholder'); // Only listen to "click" because other kinds of events are reported via // PointerBinding. diff --git a/engine/src/flutter/lib/web_ui/test/engine/semantics/semantics_helper_test.dart b/engine/src/flutter/lib/web_ui/test/engine/semantics/semantics_helper_test.dart index 92b0d42b06..1b38d0c9d2 100644 --- a/engine/src/flutter/lib/web_ui/test/engine/semantics/semantics_helper_test.dart +++ b/engine/src/flutter/lib/web_ui/test/engine/semantics/semantics_helper_test.dart @@ -35,9 +35,9 @@ void testMain() { EngineSemanticsOwner.instance.semanticsEnabled = false; }); - test('prepare accesibility placeholder', () async { + test('prepare accessibility placeholder', () async { expect(_placeholder!.getAttribute('role'), 'button'); - expect(_placeholder!.getAttribute('aria-live'), 'true'); + expect(_placeholder!.getAttribute('aria-live'), 'polite'); expect(_placeholder!.getAttribute('tabindex'), '0'); html.document.body!.append(_placeholder!); @@ -72,7 +72,7 @@ void testMain() { }); test( - 'Relevants events targeting placeholder should not be forwarded to the framework', + 'Relevant events targeting placeholder should not be forwarded to the framework', () async { final html.Event event = html.MouseEvent('mousedown'); _placeholder!.dispatchEvent(event); @@ -110,15 +110,15 @@ void testMain() { EngineSemanticsOwner.instance.semanticsEnabled = false; }); - test('prepare accesibility placeholder', () async { + test('prepare accessibility placeholder', () async { expect(_placeholder!.getAttribute('role'), 'button'); // Placeholder should cover all the screen on a mobile device. final num bodyHeight = html.window.innerHeight!; - final num bodyWidht = html.window.innerWidth!; + final num bodyWidth = html.window.innerWidth!; expect(_placeholder!.getBoundingClientRect().height, bodyHeight); - expect(_placeholder!.getBoundingClientRect().width, bodyWidht); + expect(_placeholder!.getBoundingClientRect().width, bodyWidth); }); test('Non-relevant events should be forwarded to the framework',