Flutter 3.10 liveRegion: should CustomPaint updates rely on manual Semantics wrapping?
0 reputation · 24 Jul 2020, 21:27 UTC
Accessibility boundary for custom painters
Flutter 3.10 added the liveRegion property to SemanticsConfiguration, letting developers mark dynamic content so screen readers announce changes. I am building a dashboard where a CustomPaint canvas redraws values continuously, and I want those updates announced politely without flooding the accessibility tree.
The uncertainty is the documented compatibility boundary: semantics upgrades are only guaranteed for widgets inheriting from RenderObjectWidget, while CustomPaint uses RenderCustomPaint. That leaves it unclear whether wrapping the painter in a Semantics widget with liveRegion set is a supported, stable pattern or an undocumented workaround that could regress on a future minor release. Community packages seem split between manual annotation and hoping for a built-in painter-level mixin.
Does Flutter officially support applying Semantics with liveRegion around a CustomPaint, and is that behavior guaranteed across upgrades? Is there a recommended pattern for throttling announcements from a frequently repainting canvas? Should I wait for a painter-level API, or is manual annotation the intended long-term approach?