HTML5 can sometimes be used as an alternative to Adobe Flash.[1] Both include features for playing audio and video within web pages, and using integrated SVG, vector graphics are possible with both.
A common misconception is that HTML5 can provide animation and interactivity within web pages, which is untrue.[2] Either JavaScript or CSS 3 is necessary for animating HTML elements. Animation using JavaScript is also possible with HTML 4.
Contents |
Flash has been in existence since 1996 and, because of this, has a strong base of developers and users. According to Adobe statistics, Flash had reached 98% penetration in March 2010.[3]
The latest version of the Adobe Flash Player runs on Microsoft Windows, Mac OS X, Linux, Android 2.2+, RIM QNX and Google TV. Earlier versions run on PlayStation 3 (Flash 9), and PSP (Flash 6). Adobe Flash Lite runs on Wii, Symbian, Maemo Linux, Windows Mobile, and Chumby.
Apple does not allow Flash to run on iOS, the operating system which runs on iPad, iPhone, iPod Touch and 2nd-gen Apple TV. Apple stated that it had no plans to do so.[4]
Work on the HTML5 specification began in 2003 and, as of January 2011, the standard was in working draft state.[5] The standard currently contains bugs.[6] In 2006, editor Ian Hickson suggested the standard wouldn't be published until 2022.[7]
As of March 2011[update] versions of browsers such as Internet Explorer, Mozilla Firefox, Opera, Google Chrome, and Apple Safari implement HTML5 to a large degree. However, many Internet users continue using older browsers such as Internet Explorer 8, so portions of the HTML5 specification do not work with a significant fraction of browsers still in use.
According to Adobe,
In contrast, some video sites, including YouTube, Vimeo and blip.tv, have implemented a degree of experimental support for HTML5 video.[9] Steve Jobs noted that Flash is not an open standard – it is controlled by Adobe Systems – whereas HTML5 is largely controlled by a committee (WHATWG) made up of three companies – Opera Software, the Mozilla Foundation, and Apple.[4]
Some users – especially those on Mac OS X and Linux – have complained about the relatively high CPU usage of Flash for video playback.[10] This was partially because the Flash plugin did not use the GPU to render video. Adobe has responded to some of those criticisms in the 10.1 and 10.2 releases of the Flash plugin by offloading H.264 video decoding to dedicated hardware and by introducing a new video API called Stage Video.[11] In addition, the use of the newer ActionScript 3.0 inside Flash movies instead of the older ActionScript 2.0 improves code execution speed by a factor of around 10. But older websites that use ActionScript 2.0 will not benefit from this.[12] Another reason for poor Flash performance is that some Flash developers incorrectly code their Flash files which can be a problem with "HTML5" animations as well.[13]
Constructing Flash websites using Adobe tools is relatively easier than with integrated development environments for CSS, HTML, and JavaScript,[14] however, many of Adobe's tools are expensive.[14]
It obviously takes time for tooling for HTML5 to get on the market, however Adobe has released a first version of a Flash to HTML5 conversion tool for existing content[15] and are working on creating new tooling for HTML5 as well, like Adobe Edge.[16]
Because HTML5 is an open format (like SWF) any toolmaker can build them, the first ones like Hype are already on the market.
Flash has the ability to specify measurements in sub-pixel increments. This can result in a crisper and generally more pleasant appearance of Flash web sites. When confronted with CSS and HTML measurements on a sub-pixel scale, web browsers will round either up or down, depending on the browser, which leads to inconsistency and unreliability in the display of those pages.[14]
Flash offers webcam and DRM support, while HTML and related technologies currently do not.
There are however people working on adding "device support" (device API) to the HTML5 specification, which would allow for videoconferencing, access to webcams, microphones, USB-thumbdrives and other USB- or serial devices.[17][18]
HTML5 does not include any digital rights management functionality. Implementations can support DRM outside the scope of HTML, for example in codecs.[19]
Speaking at Adobe Max, Itai Asseo said that, unlike HTML 5, Flash offers a great way to develop applications that work across platforms. HTML 5, on the other hand, is implemented differently (if at all) by different browsers. Although the Flash browser plugin isn't supported on the Apple iPhone OS, Flash applications can still be exported to Adobe AIR, which does run on that operating system as a native application. In the same talk, Mr. Asseo lamented the return to another browser war (like what was seen in the late 1990s). If Flash falls out of favor, he argues, web developers will have to either (1) develop many different versions of their web sites and native applications to take into account different HTML 5 implementations, (2) deny access to browsers that do not support their version of HTML, or (3) dramatically reduce the functionality of their sites in order to deliver content to the least-advanced browser.[20]
Both Flash and HTML text can be read by screen readers. However, special care must be taken to ensure Flash movies are read correctly. For example, if a Flash movie is set to repeat indefinitely, this can cause a screen reader to repeat the content endlessly. If the user is using the WindowEyes screen reader, they can press ALT + SHIFT + M to stop the animation. Also, selecting the "Make object accessible" check box in Adobe Flash Professional will create a text-only version of the object for screen readers. It will also hide any motion from the screen reader.[21]
Both Flash content and HTML content can be indexed by Google, Yahoo!, and Bing, although bi-directional text (e.g., Hebrew) is not supported by Google.[22][23] Yahoo! added support for indexing Flash sites in 2008, although Google had been able to index them for several years before that. Bing added support for Flash sites in 2010.
Apple has been promoting HTML5 as an alternative to Flash for video and other content on the iOS, citing performance reasons for not allowing the Flash runtime to be installed on iOS.[4][24] Flash as a runtime is not available on Apple's iOS devices: iPhone, iPod touch and iPad[24] but can be compiled as a native iOS application through Adobe's iOS packager in Flash CS5 Professional. According to Adobe Labs, Adobe's iOS Packager “offers Flash developers a fast and efficient method to reuse existing code from ActionScript 3 projects to deliver native applications on iOS devices”.[25]
In April 2010, Steve Jobs, the co-founder and then-chief executive officer of Apple[26] criticized Flash technology in an open letter posted to Apple's website, offering an explanation for why Apple does not support Flash on its mobile devices. Among his criticisms were that "Flash was created during the PC era – for PCs and mice," and that "Flash is no longer necessary to watch video or consume any kind of web content." He also described Flash's performance and security as sub-standard.[27]
In November 2010, a Wired columnist said "allowing Flash — which is a development platform of its own — [on the iPhone] would just be too dangerous for Apple, a company that enjoys exerting total dominance over its hardware and the software that runs on it. Flash has evolved from being a mere animation player into a multimedia platform capable of running applications of its own. That means Flash would open a new door for application developers to get their software onto the iPhone: Just code them in Flash and put them on a web page. In so doing, Flash would divert business from the App Store, as well as enable publishers to distribute music, videos and movies that could compete with the iTunes Store." [28]
Also in April 2010, Apple modified its iOS developer agreement to limit the development of iOS apps to the use of a small set of Apple-approved programming languages and tools. Adobe's iOS packager was seen as the target of these new rules.[29] However, because the new rules were broadly written, and did not cite Adobe's iOS Packager specifically, they also potentially restricted the development of many popular iOS games and applications created using other non-approved application frameworks, such as MonoTouch, Unity3D, and Lua.[30]
In September 2010, after having "listened to our developers and taken much of their feedback to heart",[31] Apple removed the restrictions on third-party tools, languages and frameworks, removing uncertainty from developers who used these third-party tools, and again allowing the deployment of Flash applications on iOS using Adobe's iOS Packager.[32]