HTML5 is part of the way there but many browsers still crap out over trivial stuff. For example, for a long time (still might be true), Chrome would go nuts if someone tried to play an audio link that produced a 404 error.
So, this isn't a comprehensive answer, but hopefully shines some light on where HTML5 actually is with regard to providing an experience similar to a native app.
So, this isn't a comprehensive answer, but hopefully shines some light on where HTML5 actually is with regard to providing an experience similar to a native app.