Skip to content
Boring Doc
BreakingHigh impactOfficial migration guidesince 1.20.0landed 1.18.0

Adding TextInputClient.currentAutofillScope property

Framework · Official source

A new getter, `TextInputClient.currentAutofillScope`, was added to the `TextInputClient` interface; all `TextInputClient` subclasses must provide a concrete implementation of `currentAutofillScope`.

Original behavior

On many platforms, autofill services are capable of autofilling multiple input fields in a single autofill attempt. For example, username fields and password fields can usually be autofilled in one go. For this reason, a Flutter input field that is about to trigger autofill should also provide the platform with information about other autofillable input fields logically connected to it. `TextInputClient.currentAutofillScope` defines the group of input fields that are logically connected to this `TextInputClient`, and can be autofilled together.

New behavior

`TextInputClient` now has an additional getter that returns the `AutofillScope` that this client belongs to. This getter is used by the input client to collect autofill related information from other autofillable input fields within the same scope.

Who is affected
Applications and packages relying on the previous behaviour or signature. Code that uses TextInputClient.currentAutofillScope, TextInputClient, AutofillScope and related APIs.
Practical impact
Behaviour or API differences that can break builds or change runtime behaviour.
What action should I take?
Follow the official migration guide below, update affected call sites, run `dart fix --apply` where a fix is available, then run your tests.
Official migration guide (excerpt, © The Flutter Authors, CC BY 3.0)

If you're not planning to add multifield autofill support to your TextInputClient subclass, simply return null in the getter:

class CustomTextField implements TextInputClient {
  // Not having an AutofillScope does not prevent the input field
  // from being autofilled. However, only this input field is
  // autofilled when autofill is triggered on it.
  AutofillScope get currentAutofillScope => null;
}

If multifield autofill support is desirable, a common AutofillScope to use is the AutofillGroup widget. To get the closest AutofillGroup widget to the text input, use AutofillGroup.of(context):

class CustomTextFieldState extends State<CustomTextField> implements TextInputClient {
  AutofillScope get currentAutofillScope => AutofillGroup.of(context);
}

For more information, check out [AutofillGroup][].

Migration assistantAI-generated · grounded in cited sources
AI explanations are not configured
Set AI_PROVIDER (for example to openai-compatible with a local Ollama or LM Studio endpoint) to enable grounded explanations. Everything else on this page works without an AI provider.
Official migration guide·Verified classification (95%)

Listed in the official breaking-changes index (docs.flutter.dev/release/breaking-changes).

An official announcement or migration guide documents an intended behaviour or API change. A verified source change (git diff) shows code changed but does not by itself prove a public API is breaking. AI interpretations are labelled and never used to classify a change.

Source commit
b3045439b7c0
Source last updated
Oct 21, 2026
Last synchronized
Oct 21, 2026
Publication status
published
Publication history
  • Oct 21, 2026, 8:31 PM: new → published (ingestion) — Backed by an official breaking-change/migration guide.
AI explanationAI-generated · grounded in cited sources
AI explanations are not configured
Set AI_PROVIDER (for example to openai-compatible with a local Ollama or LM Studio endpoint) to enable grounded explanations. Everything else on this page works without an AI provider.
Was this useful?