HTML5

From Citizendium
Revision as of 13:24, 9 August 2010 by imported>Noah Ready-Campbell (→‎HTML5 Video and Audio)
Jump to navigation Jump to search
All unapproved Citizendium articles may contain errors of fact, bias, grammar etc. A version of an article is unapproved unless it is marked as citable with a dedicated green template at the top of the page, as in this version of the 'Biology' article. Citable articles are intended to be of reasonably high quality. The participants in the Citizendium project make no representations about the reliability of Citizendium articles or, generally, their suitability for any purpose.

Nuvola apps kbounce green.png
Nuvola apps kbounce green.png
This article is currently being developed as part of an Eduzendium student project. The course homepage can be found at CZ:Special_Topics_2010.
To provide students with experience in collaboration, you are warmly invited to join in here, or to leave comments on the discussion page. The anticipated date of course completion is 13 August 2010. One month after that date at the latest, this notice shall be removed.
Besides, many other Citizendium articles welcome your collaboration!


This article is a stub and thus not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
 
This editable Main Article is under development and subject to a disclaimer.

HTML5 is the next generation hypertext markup language standard developed by the World Wide Web Consortium. It is used by web programmers and designers — typically in conjunction with JavaScript and CSS — to lay out web pages, which people can then view in web browsers. As of July 2010, HTML5 is still not widely supported nor standardized, though browsers such as Google Chrome [1], Apple Safari [2], and Mozilla Firefox[3] have implemented various parts of the language.[1] This unofficial status will likely persist for some years still, with the W3C currently expecting HTML5 to become a recommended technology in 2012 and a full standard not before 2022. [2]

HTML5 represents an important step forward technologically, as it gives web developers greater capabilities and more flexibility in interacting with the underlying operating system. One important new capability is offline storage, which allows sites to better handle persistent sessions for their users. For example, if a user is editing a document in an online web editor, HTML5 allows some portion of the state associated with the document to be saved onto the user's computer -- rather than saving all of it to the server, as is currently done. This reduces the server load, and also provides a faster, more responsive experience for the user, as less data needs to be transferred over the network. Other new capabilities include a multipurpose graphical element called canvas, as well as native embedding of video and audio.

HTML5 also is a milestone politically and socially in the web world. As the web has evolved, many vendors have created proprietary technologies to enable greater functionality for their applications. Some of the most important include Adobe's Flash plugin, as well Microsoft's Silverlight and their browser Internet Explorer. Internet Explorer has a notable reputation for employing non-standard extensions to web technologies.[3] While such innovations enable a richer user experience, they also fragment development, and make cross-browser compliance challenging for developers. HTML5 offers the opportunity to continue to support advanced interface demands, but to do so in an open, community-approved way. Indeed, in the words of Ian Hickson, one of the designers of the language, "One of our goals [for HTML5] is to move the Web away from proprietary technologies."[2] Such a step would lay the groundwork for the web's increasing dominance over the next decade.

History

HTML5 is largely a creation of the WHATWG, which is an acronym for the longer and less common name Web Hypertext Application Technology Working Group. The WHATWG developed organically in 2004 as an alliance of people interested in rapidly advancing the state of web technology. It can be joined by anyone, though its principal support comes from Apple, Mozilla, and Opera, maker of the alternative browser of the same name. The WHATWG developed in counterpoint to the W3C, as many of the members of the WHATWG felt that the W3C was not doing enough to rapidly introduce new web technologies. Additionally, they were displeased that the W3C had decided to stop developing HTML in favor an XML-compliant alternative known as XHTML, since, though this approach had some academic allure, it ignored the realities of how people actually used the web.[4] Today, the HTML5 specification editor is Ian Hickson, who is also one of the original and most active members of WHATWG. Interestingly, Hickson now works at Google, which has been noted by many as an important signal of Google's commitment to HTML5.[5]

Implications and Significance

HTML5 is an important extension to the current web development toolkit, both from a technical perspective and from a social and political standpoint.

Technical Significance

HTML5 allows webpages to have much greater control over the user's browsing experience, thereby enabling better and more sophisticated web applications. Additionally, in conjunction with superior JavaScript interpreters, it provides more efficient implementations of user interface technologies, thereby providing a smoother, less resource-intensive experience. These innovations build toward the concept of thin-client computing, in which the user accesses the network via a relatively simple client, and where the more intensive computing is performed by servers. This was the original vision of Marc Andreessen, the co-founder of the early web browser company Netscape, though it has not yet been realized.[6]

However, more powerful technical abilities also means that HTML5 presents a potentially greater security threat. A malicious website could use the more sophisticated technologies, such as storing data on the user's client, in order to take over or infect the machine. HTML5 has been developed with an awareness of such issues, though, and has introduced several new security measures to address such concerns. Many of them are focused on ensuring that webpages which pull content from a variety of sources — an increasingly common real-world application — accord each source the proper security rights. The careful and consistent application of such security principles will be an ongoing challenge for the web community as HTML5 grows in popularity.[7]

Social and Political Significance

Tim Berners-Lee, the creator of the World Wide Web and co-chair of the W3C, recently stated that, "HTML 5 is still a markup language for webpages, but the really big shift that's happening here—and, you could argue, what's actually driving the fancy features—is the shift to the Web [supporting applications]."[2] In other words, HTML5's purpose and power lies in a fundamental shift in how people use the web; rather than it being a repository of static information, it is a medium through which users interact with and manipulate the world. The desktop computing paradigm—with its accompanying bulky, expensive hardware—will begin to be replaced by a lighter-weight and more pervasive internet-based paradigm. This change will likely have a profound effect on how society interacts with technology, and how individuals interact with each other. Its eventual ramifications are impossible to predict.[6]

HTML5 also has important political significance within the larger web community. It demonstrates the ability of the non-profit, non-governmental W3C and WHATWG—working in concert with today's most important technology companies—to create modern, relevant standards. It also reflects the growing backlash against closed-source, proprietary, or non-standards-compliant technology solutions. Though some of HTML5's promise can be approximated today with browser plugins like Adobe's Flash and Google Gears, HTML5 has risen with the growing preference—on the part of developers as well as consumers—for solutions which are not controlled by any one entity. In many ways, this movement is only an extension of the larger democratizing effect of the web, but its increasing power reinforces democracy and the individual as central concepts within the global internet movement. In the words of Dave Clark, a prominent member of the Internet Engineering Task Force (IETF), "We [as internet and web technologists] reject: kings, presidents, and voting. We believe in: rough consensus and running code."[8]

Standardization process

The W3C standards organization has published both a document containing the specifications of HTML5[9] and also one on how the specification differs from the now mature and more widely used HTML4[10] Ian Hickson, a researcher at Google is the editor of the working draft, and the W3C HTML Working Group is the W3C working group responsible for this specification's progress. Discussion of the specification also takes place among the original WHATWG community. HTML5 reached Last Call at the WHATWG in October 2009[11] Note however that, as mentioned at the beginning of this article, the HTML5 specification is still a working draft and is subject to changes with the W3C expecting HTML5 to become a recommended technology in 2012 and a full standard not before 2022.

Language Details

Brief Overview

Not unlike HTML4, HTML5 documents are built from elements which consists of tags and attributes and have a defined meaning. These elements form a tree using the Document Object Model (DOM)[12]. In HTML5, the Document type declaration is a preamble that should be given at the beginning of the html page. It is as shown:[13]

<!DOCTYPE html>

According to the W3C publication A Web Developer’s Guide to HTML 5 [14], each element in HTML falls into zero or more categories that group elements with similar characteristics together. The categories are Metadata content, Flow content, Sectioning root, Sectioning content, Heading content, Phrasing content, Embedded content, Interactive content and Transparent.

HTML 5 is being defined in terms of the Document Object Model (DOM)-the tree representation used internally by browsers to represent the document, in contrast to HTML4, which is defined in terms of its syntax[15]. It has extended the HTMLDocument interface from DOM Level 2 HTML. The Document interface can now be implemented on all objects[16] This allows HTML5 to be defined independently of syntax and there are two primary syntaxes that can be used to do this: the HTML serialization (known as HTML 5) and the XML serialization (known as XHTML5).

In addition to this fundamental change, HTML5 unlike its previous version is not based on SGML. The reason for this is given in the HTML5 Overview published by the W3C and is quoted here:

Some earlier versions of HTML (in particular from HTML2 to HTML4) were based on SGML and used SGML parsing rules. However, few (if any) web browsers ever implemented true SGML parsing for HTML documents; the only user agents to strictly handle HTML as an SGML application have historically been validators. The resulting confusion — with validators claiming documents to have one representation while widely deployed Web browsers interoperably implemented a different representation — has wasted decades of productivity. This version of HTML thus returns to a non-SGML basis. — HTML5 Overview , 8.2. Parsing HTML documents [17]

Markup and evolution from HTML4

For a full list of all changes in markup from HTML4 see HTML5 differences from HTML4 - W3C Working Draft 24 June 2010.

Work on a newer version of HTML was started to address many of the shortcomings of HTML4 in its design, functionality and syntax. As per the published draft document (as of August 2010), HTML5 introduces several new elements, including tags for multimedia content such as <video> and <audio>, among others. Other new tags include <canvas>, <details>, <keygen>. There is a greater emphasis on structure in this newer version of HTML, and to avoid the overuse of the <div> and <span>, new tags such as <header>, <footer>, <figure>, <nav>, <article> etc. have been introduced. Moreover, the HTML5 syntax now allows for MathML and SVG elements to be used inside a document.

In addition to new elements, new attributes have been added to existing HTML4 tags. Some of the these changes mentioned in the specification include the media and ping attributes for the <a> and <area> elements. Furthermore, the <style> element has a new scoped attribute, and the <script> element has a new attribute called async, as well as several other changes.

Finally, other tags and several attributes adopted from the current widely used HTML4 specification are now deprecated. Elements in HTML4 such as the <basefont>, <big>, <center>, <font>, <strike> have been removed as their function is for presentational purposes, and could therefore be better handled by the use of CSS. Besides these, tags like <frame>, <frameset>, <acronym>, etc. are also not present in HTML5 for their archaic or redundant nature. Some of the attributes that are now absent include rev and charset attributes on <link> and <a>, shape and coords attributes on <a>, name attribute on <img>, scope attribute on td and numerous others. A large number of attributes have been removed citing overlapping functionality with CSS elements. These include the align attribute on <caption>, <iframe>, <img>, <input>, <object>, <legend>, <table>, <hr>, <div> and alink, link, text, background and vlink attributes on <body>.

Use of APIs

New APIs are available in the latest version of HTML, which can be used via a variety of new elements that have been introduced to handle them.[18] The APIs bring about newer and richer functionality in the way content on the web is delivered to the end user. Likely the most discussed to-date is the multimedia API for the playing of video and audio content using the new <video> and <audio> elements. The specification also includes new APIs that enable offline Web application usage and storage, that allow a Web application to register itself for certain protocols or media types, and an editing API which can be used in combination with a new global contenteditable attribute. Other noteworthy changes include a "Drag & Drop" API in combination with a draggable attribute, and an API that exposes the browser's history and allows pages to be added to it to, so as to provide reasonable behavior of the "back" button within an application.


HTML5 Video and Audio

HTML5 provides a new <video> element for the purpose of playing video content on a web page, which previously was only possible via Flash or other third party plug-ins using the <object> tag.[19] The <video> element is thus introduced to remove dependencies on proprietary technology for playback of video content.

An example on how the video tag is to be used is given below[20] with all possible attributes assigned. (Note that the video format used is Ogg Theora).


<video src="movie.ogg" controls="controls" height="200" width="100" preload="preload" loop="loop" autoplay="autoplay">
This text is displayed if your browser does not support the HTML5 video tag.
</video>

Similarly, the new <audio> element is equipped with all of the same attributes except for height and width. It also may incorporate the new sub-element <source> to link to audio files in different formats (e.g. mp3, ogg vorbis, m4a, etc.). This may be desirable in case a particular browser does not support a certain audio format. The browser then interprets the sources one line at a time and stops as soon as a recognized media type is found.[21]


<audio controls="controls">



  Your browser does not support the audio element.
</audio>

Controversy over codec used for the <video> element

There has been widespread disagreement on the use of the video format that the <video> tag should support and as such the discussion of the default codec has been removed from the specification when no consensus was able to be reached on the same[22]. Hence, the HTML5 specification is such that it enables developers to use non-proprietary video codecs of their choice for the video tag. Popular video codecs of choice include the open source Ogg-Theora and h.264 codecs. However, there has been dispute over the default codec to be used. The open source community stands by and insists making Ogg-Theora the default codec due to its lesser patent regulations, royalty free nature and licensing advantages.[2] On the other hand, Apple, Adobe and Google citing quality concerns and other issues opposes the widespread adoption of Ogg-Theora causing browsers like Google's Chrome and Apple's Safari to be bundled with support for h.264 (though Chrome supports the Theora codec as well) and Mozilla's Firefox supporting the Theora video and the Vorbis audio codec through the Ogg container. Standing by its commitment to HTML5, Google released a royalty-free, open video compression format of high quality called WebM for use with HTML5 video after acquiring a company called On2 Technologies. It has video streams compressed with the VP8 video codec and audio streams compressed with the Vorbis audio codec with the file structure based on the Matroska media container. It is supported by the Google Chrome, Opera browsers and also by the daily builds of Mozilla Firefox. On the other hand, to support the development of Theora, the Mozilla foundation has provided a $100,000 grant to the Wikimedia Foundation. [23]

New Web Storage Options

Due to the stateless nature of the Hyper Text Transfer Protocol, web developers have made use of cookies to keep track of states and to seamlessly transmit data from one page to the next with HTML4. However, this is only useful for small amounts of data as information is inefficiently passed from the client cookies back to the server processes upon each subsequent request. Introduced as part of HTML5, there are two new options for storing data on the client-side machine: localStorage and sessionStorage.[24] The difference between the two new options is that localStorage stores data without any expiration whereas sessionStorage stores data only for the life of the current session, removing the stored data once the browser is closed. The advantage of these methods over cookies is that the data stored here is only passed back to the server if explicitly requested by the server. This allows the server to store more data on the client-side without negatively impacting website performance. Just as JavaScript was used to handle data in cookies for HTML4, JavaScript is also used here in both new storage methods for HTML5. To prevent cross-site scripting attacks, any data that a website stores on a client machine may only be accessed by the website that generated it.

Effect on Flash

Although Flash playback support is available in some mobile devices such as those running the latest version of the Android - Google's mobile OS(through Adobe's Flash player v10.1 beta[25]) - there are several cases where it is not yet supported as there is no official flash player plug-in released. Moreover, citing reasons such as reliability, security, performance concerns and usability issues such as UI components with rollover gestures not being possible in a touch screen environment with Adobe Flash, Apple's Steve Jobs wrote about the reasons why Apple is ditching flash playback support for devices like the iPad and iPhone in favor for HTML5 which is more integrated into the browser and does not require a third party plug-in[26]. To cater their services to the large number of owners of these devices and others which do not support Flash, numerous web sites such as those that provide news, sports and video, have started publishing richer web content using HTML5 particularly for deploying multimedia content. This has led to widespread adoption of HTML5 in recent times with the trend expected to grow dramatically in the future. In addition to Apple, several other companies have also embraced HTML5. These include Google and Microsoft (in spite of the company's commitment to Silverlight - a plug-in that provides a mechanism for delivering rich web content à la Flash). Video sites like Youtube, Vimeo and others have also jumped on the bandwagon with Youtube having started experimenting with HTML5 at the start of 2010 and is now in the process of converting most of its video to the new format[27].

HTML5 Adoption

In order for HTML5 to become a successful technology, it must both be widely supported by users' browsers and widely taken advantage of by web developers and designers. Though official standardization is still years away, significant steps have been made in both areas already.

Browser Support

Web browsers use a component called a rendering engine for converting HTML into a human-viewable format. This is the primary component of the web browser, but other components typically include a JavaScript interpreter, as well as associated code for network access and transfers, the graphical user interface (GUI) and more. Each of the major web browsers tends to use its own rendering engine, although the relationship can be somewhat complicated, with Safari and Chrome notably sharing the WebKit engine. The following table, adapted from Wikipedia, outlines the most common rendering engines used today.

Layout engine Release version Preview version Used by
Gecko 1.9.2.6 2.0b2pre All Mozilla-based software, including Firefox; SeaMonkey and Galeon; Camino; K-Meleon; Epiphany-gecko; GNU IceCat; Debian Iceweasel, Icedove, Iceape and Iceowl
Presto 2.6.30 Opera; Opera Mobile, Nintendo DS & DSi Browser‎; Internet Channel
Trident 4.0 (IE 8) 5.0 (IE 9) Internet Explorer and other Internet Explorer shells (Microsoft Windows operating systems only)
WebKit 533 Apple Safari (including OS X for desktops and iOS for iPhones and iPads), Google Chrome, Shiira, iCab 4, OmniWeb 5.5+, Epiphany, Adobe AIR, Midori, Adobe Dreamweaver CS4, Google Android browser, Palm WebOS browser, Symbian S60 browser, OWB, Steam, Flock

Each of the aforementioned rendering engines implement HTML5 to varying degrees and in varying forms. The following table, adapted from Wikipedia, summarizes the state of HTML5 support for each engine.

Trident Gecko WebKit Presto
Selectors API[28] Yes[4] Yes[5] Yes[6] Yes[7]
Web Storage[29] Yes Yes[8] Yes Yes[9]
Indexed Database API[30] No Nightly[10] Nightly No
Web SQL Database[31] No No[11] Yes[12] Yes
File API[32] No Yes[13] Partial[14][15] No
Media Capture API[33] No Depends/Partial[16] No No
Server-sent Events[34] No No[17] Yes[18] Experimental[19]
Web Sockets[35] No Nightly[20] Yes No
Web Workers[36][37] No Yes[21] Yes Yes
Geolocation API[38] No Yes[22] Yes[23] Yes[24][25]
Offline Web applications[39] No Yes[26] Yes Yes

Website Support

Though years away from ubiquity, HTML5 has been warmly embraced by many developers. It is the preferred rich internet application development framework of Apple. Indeed, Apple's popular iOS, which runs on the iPhone and the iPad does not support Flash or Silverlight at all, which are HTML5's main competitors today.[40] It also is supported by Google's YouTube, enabling smoother video playback on a wider variety of platforms. Other Google products, such as GMail and Google Maps also take advantage of some HTML5 features, and Google has declared its commitment to the language.[8] Finally, HTML5 is growing in popularity with even small developers. VisionWidget, a well-respected publication in the visual and web design community, recently produced a list of 22 independent websites that take advantage of HTML5 features.[41] Such compilations abound, as HTML5 has begun to be incorporated into all manner of sites and designs.

References

  1. Mulroy, James. "Web 101: New Site-Design Tools Are Coming." PC World 28.7 (2010).
  2. 2.0 2.1 2.2 2.3 Vaughan-Nichols, Steven J. "Will HTML 5 Restandardize the Web?." Computer 43.4 (2010): 13-15.
  3. Chris Pirillo. Why You Should Dump Internet Explorer.
  4. Introduction — HTML5 (including next generation additions still in development).
  5. Pilgrim, Mark. HTML5: Up and Running. O'Reilly Media. 2010.
  6. 6.0 6.1 Wright, Alex. "Ready for a Web OS?." Communications of the ACM 52.12 (2009): 16-17.
  7. Mansfield-Devine, Steve. "Divide and conquer: the threats posed by hybrid apps and HTML 5." Network Security 2010.3 (2010): 4-6.
  8. 8.0 8.1 Google Bets Big on HTML 5: News from Google I/O.
  9. Official HTML5 Specification. 2 Aug 2010.
  10. HTML5 differences from HTML4. 2 Aug 2010.
  11. HTML5. 8 Aug 2010.
  12. HTML5 Syntax. 8 Aug 2010.
  13. Official HTML5 Specification. 7 Aug 2010.
  14. A Web Developer’s Guide to HTML 5. 7 Aug 2010.
  15. A Preview of HTML 5 by Lachlan Hunt. 7 Aug 2010.
  16. HTML5 differences from HTML4. 2 Aug 2010.
  17. HTML5 Overview. 8 Aug 2010.
  18. HTML5 differences from HTML4. 2 Aug 2010
  19. HTML5 video element. 8 Aug 2010
  20. HTML 5 <video> Tag. 8 Aug 2010
  21. HTML5 audio element. 9 Aug 2010
  22. Video codec requirements changed - Ian Hickson. 8 Aug 2010.
  23. Mozilla and Wikimedia on open video codecs. 2 Aug 2010.
  24. cite web |url=://www.w3schools.com/html5/html5_webstorage.asp | title=HTML5 Web Storage Methods}} 9 Aug 2010http
  25. Adobe flash player for Android. 4 Aug 2010
  26. Thoughts on Flash - Steve Jobs. 4 Aug 2010
  27. Introducing Youtube HTML5 videos. 4 Aug 2010
  28. Selectors API Level 1, W3C
  29. Web Storage, W3C
  30. Indexed Database API, W3C
  31. Web SQL Database, W3C
  32. File API, W3C, 2009-11-17
  33. Media Capture API, W3C
  34. Server-Sent Events, W3C
  35. The Web Sockets API, W3C
  36. Web Workers, W3C
  37. Resig, John (2009-07-21), Computing with JavaScript Web Workers
  38. Geolocation API Specification, W3C
  39. 5.6 Offline Web applications — HTML5, W3C
  40. How will HTML 5, Google, and the iPad play out in Apple vs. Flash?.
  41. 22 Examples of Fresh Html 5 Websites.