It legitimately angers me that Google claim any sort of robust #accessibility support in their half-baked #Flutter UI toolkit. From the need for users to manually enable an accessible mode in web apps, to the use of accessible names to convey role information on mobile, to a borderline unusable keyboard experience on Windows, it is a rotten mess throughout.
Just had a session with an app team who've developed with Flutter. On Windows they have a pretty basic landing screen: a language selector button, two columns of text, an input field and a submit button, and a link.
We spent 30 minutes just breaking down all the ways it is unusable with NVDA, and I do mean that in the truest sense of the word. Without object navigation, you can't reach most of the context and controls. Even when you manage to reach e.g. the submit button, pressing Space or Enter on it does nothing.
I feel bad for the team, but Google should feel worse. #accessibility
More #Flutter #accessibility woes with the single-select menu button component:
It doesn't convey the currently selected value to screen readers.
It allows Tab and Shift+Tab, despite supposedly being a menu. But when tabbing and the arrow keys are used, #VoiceOver on #macOS doesn't say anything.
When the menu opens, focus lands on the selected item, but VoiceOver confusingly reads the first one.
It isn't semantically conveyed as a menu, but the word "menu" is in the accessible name of the container.
@jscholes I continue to wish and wish and wish I could get an audience with Luke from Floatplane...
@FreakyFwoof Did they use Flutter for their app?
@jscholes I have no idea. I don't know about such things, it's just that talking to companies doesn't need to be this hard. I'm happy you got to do that, as it sounds like they cared enough to give you time of day.
@FreakyFwoof Oh I see! This specifically was in a work context with a client.
@jscholes Google should be sued for flutter.
@jscholes It is 100% understandable that a development team would assume that keyboard & screen reader accessibility is included if they use standard built-in form fields from an application framework provided by one of the largest global tech companies. Anything less should come with huge "experimental project, not fit for use" warnings.
I hope the project is still in early stages & they're able to redirect their efforts based on your review.