HTML5: Difference between revisions
imported>Noah Ready-Campbell m (→Brief Overview) |
imported>Noah Ready-Campbell m (→Brief Overview) |
||
Line 43: | Line 43: | ||
According to the [[W3C]] publication ''A Web Developer’s Guide to HTML 5'' <ref>{{cite web |url=http://dev.w3.org/html5/html-author/ | title=A Web Developer’s Guide to HTML 5}} 7 Aug 2010.</ref>, 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. | According to the [[W3C]] publication ''A Web Developer’s Guide to HTML 5'' <ref>{{cite web |url=http://dev.w3.org/html5/html-author/ | title=A Web Developer’s Guide to HTML 5}} 7 Aug 2010.</ref>, 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<ref>{{cite web |url=http://www.alistapart.com/articles/previewofhtml5 | title=A Preview of HTML 5 by Lachlan Hunt}} 7 Aug 2010.</ref>. It has extended the <code>HTMLDocument</code> interface from DOM Level 2 HTML. The <code>Document</code> interface can now be implemented on all objects<ref>{{cite web |url=http://dev.w3.org/html5/html4-differences/ | title=HTML5 differences from HTML4}} 2 Aug 2010.</ref> 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 | 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<ref>{{cite web |url=http://www.alistapart.com/articles/previewofhtml5 | title=A Preview of HTML 5 by Lachlan Hunt}} 7 Aug 2010.</ref>. It has extended the <code>HTMLDocument</code> interface from DOM Level 2 HTML. The <code>Document</code> interface can now be implemented on all objects<ref>{{cite web |url=http://dev.w3.org/html5/html4-differences/ | title=HTML5 differences from HTML4}} 2 Aug 2010.</ref> 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 | In addition to this fundamental change, HTML5 unlike its previous version is not based on SGML. The reason for this is given in the |
Revision as of 12:34, 9 August 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! |
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 both in its design, functionality and syntax. As per the published draft document (as of August 2010), in addition to several new elements, which include tags for multimedia content such as (<video>)
and (<audio>)
among others, there have been addition (and deprecation) of several attributes for elements that are already adopted from the current widely used HTML4 specification. New tags include <canvas>, <details>, <keygen>
. There is a greater emphasis on structure in this newer version of HTML and to avoid the overly use of the div and span, new tags such as <header>, <footer>, <figure>, <nav>, <article>
etc. have been introduced. The HTML5 syntax now also 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 a and area elements now have media and ping attributes, the style element has a new scoped attribute, the script element has a new attribute called async and several other changes.
Along with inclusion of new elements and attributes several existing ones have been removed. Elements in HTML4 such as the <basefont>, <big>, <center>, <font>, <strike>
and others tags have been removed as their function is for presentational purposes which could also be handled by the use of CSS. Besides these tags like <frame>, <frameset>, <acronym>
etc. are also not present in HTML5. 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 among several others, 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 and is used together with 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. The most talked about is the multimedia API for playing of video and audio content using the new <video> and <audio> elements. The specification also mentions about new APIs that enables offline Web applications, that allows a Web application to register itself for certain protocols or media types, an editing API in combination with a new global content editable attribute, a Drag & drop API in combination with a draggable attribute and an API that exposes the history and allows pages to add to it to prevent breaking the back button.
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[19]) - 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[20]. 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[21].
HTML5 Video and Audio
HTML5 provides a new <video>
element for the purpose of playing video content on a web page which could only have been possible previously by using Flash or other third party plug-ins using the <object>
tag[22]. 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[23] 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 video tag not supported by your browser.
</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 of different formats in case a particular browser does not support the type of audio being linked. The browser interprets the sources one line at a time and stops as soon as a recognized media type is found[24].
<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[25]. 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. [26]
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.[27] 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.
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
- ↑ Mulroy, James. "Web 101: New Site-Design Tools Are Coming." PC World 28.7 (2010).
- ↑ 2.0 2.1 2.2 2.3 Vaughan-Nichols, Steven J. "Will HTML 5 Restandardize the Web?." Computer 43.4 (2010): 13-15.
- ↑ Chris Pirillo. Why You Should Dump Internet Explorer.
- ↑ Introduction — HTML5 (including next generation additions still in development).
- ↑ Pilgrim, Mark. HTML5: Up and Running. O'Reilly Media. 2010.
- ↑ 6.0 6.1 Wright, Alex. "Ready for a Web OS?." Communications of the ACM 52.12 (2009): 16-17.
- ↑ Mansfield-Devine, Steve. "Divide and conquer: the threats posed by hybrid apps and HTML 5." Network Security 2010.3 (2010): 4-6.
- ↑ 8.0 8.1 Google Bets Big on HTML 5: News from Google I/O.
- ↑ Official HTML5 Specification. 2 Aug 2010.
- ↑ HTML5 differences from HTML4. 2 Aug 2010.
- ↑ HTML5. 8 Aug 2010.
- ↑ HTML5 Syntax. 8 Aug 2010.
- ↑ Official HTML5 Specification. 7 Aug 2010.
- ↑ A Web Developer’s Guide to HTML 5. 7 Aug 2010.
- ↑ A Preview of HTML 5 by Lachlan Hunt. 7 Aug 2010.
- ↑ HTML5 differences from HTML4. 2 Aug 2010.
- ↑ HTML5 Overview. 8 Aug 2010.
- ↑ HTML5 differences from HTML4. 2 Aug 2010
- ↑ Adobe flash player for Android. 4 Aug 2010
- ↑ Thoughts on Flash - Steve Jobs. 4 Aug 2010
- ↑ Introducing Youtube HTML5 videos. 4 Aug 2010
- ↑ HTML5 video element. 8 Aug 2010
- ↑ HTML 5 <video> Tag. 8 Aug 2010
- ↑ HTML5 audio element. 9 Aug 2010
- ↑ Video codec requirements changed - Ian Hickson. 8 Aug 2010.
- ↑ Mozilla and Wikimedia on open video codecs. 2 Aug 2010.
- ↑ cite web |url=://www.w3schools.com/html5/html5_webstorage.asp | title=HTML5 Web Storage Methods}} 9 Aug 2010http
- ↑ Selectors API Level 1, W3C
- ↑ Web Storage, W3C
- ↑ Indexed Database API, W3C
- ↑ Web SQL Database, W3C
- ↑ File API, W3C, 2009-11-17
- ↑ Media Capture API, W3C
- ↑ Server-Sent Events, W3C
- ↑ The Web Sockets API, W3C
- ↑ Web Workers, W3C
- ↑ Resig, John (2009-07-21), Computing with JavaScript Web Workers
- ↑ Geolocation API Specification, W3C
- ↑ 5.6 Offline Web applications — HTML5, W3C
- ↑ How will HTML 5, Google, and the iPad play out in Apple vs. Flash?.
- ↑ 22 Examples of Fresh Html 5 Websites.