This is a rather bad way of making portability. It is bad for accessibility (even though they tried to add things to improve accessibility, it does not work very well), for working on multiple types of computers (since, then the software specific to that computer cannot do so by itself, and instead needs to use the specification of the received file, which is probably wrong anyways), and for many types of features that may be helpful but that are unavailable or are not designed or implemented well. Furthermore, WWW is also, not work well with multiple programs and with user customization very well, pipes, etc. And, it is complicated to implement and does not run efficiently. And, there are many security issues, having to be made more complicated just to avoid some of them, in ways that would not be necessary if it were designed properly. And, anyways, it cannot be the same everywhere, even if they want it to be.