[web_ui] Fixed aria-live attribute on web (flutter/engine#27985)
* Fixed aria-live attribute on web
This commit is contained in:
committed by
GitHub
parent
dc33755f64
commit
7830e8dd89
@@ -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>
|
||||
@@ -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.
|
||||
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user