[web_ui] Fixed aria-live attribute on web (flutter/engine#27985)

* Fixed aria-live attribute on web
This commit is contained in:
The one with the braid | Dфҿ mit dem Zopf
2021-08-10 21:10:53 +02:00
committed by GitHub
parent dc33755f64
commit 7830e8dd89
3 changed files with 12 additions and 9 deletions

View File

@@ -20,3 +20,4 @@ Hidenori Matsubayashi <Hidenori.Matsubayashi@sony.com>
Sarbagya Dhaubanjar <mail@sarbagyastha.com.np>
Callum Moffat <callum@moffatman.com>
Koutaro Mori <koutaro.mo@gmail.com>
TheOneWithTheBraid <the-one@with-the-braid.cf>

View File

@@ -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.

View File

@@ -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',