FocusSemanticEvent class
An event to move the accessibility focus.
Using this API is generally not recommended, as it may break a users' expectation of how a11y focus works and therefore should be used very carefully.
One possible use case: For example, the currently focused rendering object is replaced by another rendering object. In general, such design should be avoided if possible. If not, one may want to refocus the newly added rendering object.
One example that is not recommended: When a new popup or dropdown opens, moving the focus in these cases may confuse users and make it less accessible.
The following code snippet shows how one can request focus on a
certain widget.
link
class MyWidget extends StatefulWidget {
const MyWidget({super.key});
@override
State<MyWidget> createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
final GlobalKey mykey = GlobalKey();
@override
void initState() {
super.initState();
// Using addPostFrameCallback because changing focus need to wait for the widget to finish rendering.
WidgetsBinding.instance.addPostFrameCallback((_) {
mykey.currentContext?.findRenderObject()?.sendSemanticsEvent(const FocusSemanticEvent());
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('example'),
),
body: Column(
children: <Widget>[
const Text('Hello World'),
const SizedBox(height: 50),
Text('set focus here', key: mykey),
],
),
);
}
}
This currently only supports Android and iOS.
- Inheritance
-
- Object
- SemanticsEvent
- FocusSemanticEvent
Constructors
- FocusSemanticEvent()
-
Constructs an event that triggers a focus change by the platform.
const
Properties
Methods
-
getDataMap(
) → Map< String, dynamic> -
Returns the event's data object.
override
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toMap(
{int? nodeId}) → Map< String, dynamic> -
Converts this event to a Map that can be encoded with
StandardMessageCodec.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited