This page explores the APIs used to perform these operations on a Flutter
application, and how the focus system works. We have noticed that there is some
confusion among developers about how to define and use FocusNode objects.
If that describes your experience, skip ahead to the best practices for
creating FocusNode objects.

Focus use cases

Some examples of situations where you might need to know how to use the focus
system:

Receiving/handling key events

Implementing a custom component that needs to be focusable

Receiving notifications when the focus changes

Changing or defining the “tab order” of focus traversal in an application

Defining groups of controls that should be traversed together

Preventing some controls in an application from being focusable

Glossary

Below are terms, as Flutter uses them, for elements of the focus system. The
various classes that implement some of these concepts are introduced below.