Categories
Opera blog post Web development

Web Standards, the real Flash killer

There’s changes in the wind in the world of visual web technologies, and they show a beautiful future for what might soon (and to some degree now) be possible with the use of web standards.

Specifically, I’m talking about web alternatives to that ever popular Adobe Flash plug-in. Note that I won’t be talking about Microsoft’s Silverlight here, since it has many of the same shortcomings as Flash does.

There seem to be three major ways Flash is being used today: For online videos, as a web page interface, and for web-based games. Upcoming standards being developed and implemented for each of these uses.

Video

The HTML 5 specification includes an actual <video> element, that can run a video much like the <img> element displays an image. Javascript can be used for the user to set any the actions (stop, pause, play, etc.). What’s more, videos can also be referenced to in SVG, allowing nifty effects like Reflection and filtering. There are experimental builds of Opera, Firefox, and now Safari that all support this feature to some degree.

Interface

Flash allows for all sorts of tricks to make cool looking (albeit often irritating and unnecessary) web page interfaces, occasionally bypassing HTML altogether. Some of these effects can already be somewhat reproduced using CSS and javascript in today’s current browsers, as for example is shown in this jQuery UI demo. More complex effects are also possible using SVG and/or the HTML 5 <canvas> element, both of which are seeing increasing support in the same three browsers.

Additionally, Safari is experimenting with effects that just use CSS properties. These allow for animation, and transformation (allowing things like scaling, rotating and skewing). Think about it, combined these would allow you to specify any HTML element and have it do all sorts of crazy things, without a single line of javascript. Somebody was quick to mention how the Cover Flow effect might even be possible this way.

Games

Primarily Canvas/SVG should eventually be able to handle anything Flash games already do, and possibly more with the recent introduction of 3D Canvas. This could possibly appear in Firefox 3, and is also available (apparently in a different form) in the previously mentioned experimental build by Opera. An example game is this amazing 3D version of Snake.

Some might ask “but…why? Flash already does so much of this! Why reinvent the wheel?”.

Well, there’s several reasons. Flash is a proprietary and not part of any W3 standard, which prevents a lot of things like easy and free ways for developers to create SWF files. It also causes many accessibility problems, because Flash files are just single binary files, unreadable (mostly) to anything but Adobe’s Flash player. Several other problems exist too.

All these issues are addressed in the various methods mentioned above. And that’s great news for the future of the web. The fact that we’re seeing all these cross-browser implementations already bodes very well for the future. Of course, it’s yet to be seen how much and how fast Microsoft will incorporate these features in Internet Explorer. I’m pretty optimistic, however, that they will find it in their best interest to keep up with these technologies eventually.

Web standards have done a lot for the web so far, and it’s great to get a glimpse of how far they can take us into the future.