The `SemanticsProperties.focusable` and `SemanticsConfiguration.isFocusable` parameters were deprecated in favor of the `SemanticsProperties.focused` and `SemanticsConfiguration.isFocused` parameters.
Original behavior
The `SemanticsConfiguration.isFocusable` property is a boolean that indicates whether the semantics node can have input focus. `SemanticsConfiguration.isFocused` is a boolean that indicates if the semantics node has input focus.
New behavior
The `SemanticsConfiguration.isFocusable` property is deprecated in favor of `SemanticsConfiguration.isFocused`. This property is a nullable boolean; setting it to `true` or `false` automatically sets `isFocusable` to `true`, and setting it to `null` sets `isFocusable` to `false`.
- Who is affected
- Code that still calls the deprecated API; it keeps working until removal but produces analyzer warnings. Code that uses SemanticsProperties.focusable, SemanticsConfiguration.isFocusable, SemanticsProperties.focused and related APIs.
- Practical impact
- Warnings now; removal in a future release. Plan the migration but no immediate break.
- 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.
Before and after (from the official guide)
| 1 | void describeSemanticsConfiguration(SemanticsConfiguration config) { | |
| 2 | − | config.isFocusable = true; |
| 3 | config.isFocused = true; | |
| 4 | } |
| 1 | void describeSemanticsConfiguration(SemanticsConfiguration config) { | |
| 2 | config.isFocused = true; | |
| 3 | } |
Raw before / after
void describeSemanticsConfiguration(SemanticsConfiguration config) {
config.isFocusable = true;
config.isFocused = true;
}void describeSemanticsConfiguration(SemanticsConfiguration config) {
config.isFocused = true;
}Official migration guide (excerpt, © The Flutter Authors, CC BY 3.0)
Replace SemanticsConfiguration.isFocusable with
SemanticsConfiguration.isFocused.
Example 1: Setting isFocused to true automatically sets isFocusable to true
Code before migration:
void describeSemanticsConfiguration(SemanticsConfiguration config) {
config.isFocusable = true;
config.isFocused = true;
}Code after migration:
void describeSemanticsConfiguration(SemanticsConfiguration config) {
config.isFocused = true;
}Example 2: Setting isFocused to null automatically sets isFocusable to false
Code before migration:
void describeSemanticsConfiguration(SemanticsConfiguration config) {
config.isFocusable = false;
config.isFocused = false;
}Code after migration:
void describeSemanticsConfiguration(SemanticsConfiguration config) {
config.isFocused = null;
}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.Listed in the official breaking-changes index; title states deprecation.
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_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.