I can see canvas rendering as a good target for games and for individual components such as a drawing surface or a chart but using it for a whole app is just throwing out the baby with the bathwater.
It seems like it renders text via a SVG on top of a canvas layer that is the background, so that's a plus for a11y. As for the downsides, and I'm not sure how much this is due to flutter or the app itself:
* I can't use the browser search for elements outside the viewport
* I can't select text at all
* I can't tab through elements/links at all (which is often seen as a strong indicator of bad a11y)
* Browser back/forward do not work as expected (back exits the app completely, and then forward does not bring me back)
The second demo there: https://gallery.flutter.dev/#/shrine
* All the same as the first one, but also clickable elements do not give me any feedback that they are clickable (hand-pointer cursour or any underline/similar effect)
---
Maybe these are just demos that have not thought of these specific things but since it is a web showcase of a framework meant to work on the web (although not exclusively) and these were the first links up there it's a bit disappointing.
My point is that you get most of these things for free (or easy) on the normal web, but flutter seems to try to patch them back onto it instead of using what is there.
https://github.com/flutter/flutter/issues?q=is%3Aopen+is%3Ai...
The framework seems designed to hold the hand of android developers, not to provide a decent experience to the end user. I have no clue why people keep referencing it as some kind of working cross-platform solution when it clearly caters exclusively to android.
So in a browser/web context, all you need (roughly) is a canvas, and to compile the relevant Dart to JS and you're off to the races.