6 ms·
Dear Flutter devs: please reconsider your plans for Flutter on web. Flutter for web flies in the face of all accessibility standards and tooling, and will make
by AaronFriel 5y ago
Dear Flutter devs: please reconsider your plans for Flutter on web.
Flutter for web flies in the face of all accessibility standards and tooling, and will make it impossible for extensions and interoperability with the Open Web. The path Flutter is going down is one in which the web browser is simply a canvas that pixels are blitted onto from a web-incompatible language (Dart) that interoperates with nothing else and requires reinventing everything that makes web applications work well for millions of people that face accessibility challenges. And of course, for page isolation, it means that Flutter will have to reinvent iframe-esque sandboxing and RPC to support ads. (More on that at the end.)
Rendering real text blocks, links, alt text, etc., ensures compatibility with screen readers, non-mouse navigation, accessibility modes including magnification and high contrast, and enables real interoperability/embedding with an open web.
It may come at a high engineering cost, but surely not at a higher moral cost than locking out millions of users from using apps, or a higher cost to the principle of an open web than removing the ability of end-users to integrate HTML, CSS, JS in the same web application as a Flutter Web app.
React Native Web does this by providing escape hatches that allow, e.g., iframes in web applications, and rendering to HTML/CSS/JS by default to ensure compatibility with web standards. It is not impossible.
See: https://flutterplasma.dev/ https://flutterplasma.dev/
This page cannot be interacted with by a screen reader, by keyboard shortcuts, and so on. Even the text highlighting, ability to copy paste text had to be reinvented. The browser is not highlighting text, and ctrl-C is not copying characters that were highlighted. That's all being done by Flutter re-implementing an entire rendering stack.
And the future of this, of course, is advertisements rendered by Flutter in Flutter apps. We all know this is true, even if Flutter developers might deny it and say they have nothing on their roadmap to do this. At some point, people will want to integrate ads in their Flutter app to monetize them. And how will they do that, except by including some snippet of code in their Flutter app that leaks user information or provides a remote-code-execution-as-a-service to advertising networks, if Flutter doesn't reinvent the wheel to sandbox and isolate code snippets and composite the ad into the canvas? And we'll have come full circle then, Flutter will have reinvented - again - everything a browser does just to wall itself off from the rest of the world.
And at that point, since the entire web browser is just the end of a pipe pixels are blitted onto, users won't be able to say no to yet another form of intrusive advertising.