HTML5: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Melvin Kanasseril
imported>Melvin Kanasseril
Line 40: Line 40:


<code><!DOCTYPE html></code>
<code><!DOCTYPE html></code>
. HTML5 reached Last Call at the WHATWG in October 2009


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.

Revision as of 20:59, 8 August 2010

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 at W3C, "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 member 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—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 WHATWG (Web Hypertext Application Technology Working Group) community. 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)[11]. In HTML5, the Document type declaration is a preamble that should be given at the beginning of the html page. It is as shown[12]:

<!DOCTYPE html>

According to the W3C publication - A Web Developer’s Guide to HTML 5 [13], 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, unlike the case in HTML4 which is defined in terms of its syntax[14]. It has extended the HTMLDocument interface from DOM Level 2 HTML. The Document interface can now be implemented on all objects[15] 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 XHTML 5).

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 [16]

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[17]. 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[18]) - 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[19]. 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[20].

HTML5 Video

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[21]. 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[22](Note that the video format used is Ogg Theora).


<video src="movie.ogg" controls="controls">
Your browser does not support the video tag!
</video>

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[23]. 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. After acquiring a company called On2 Technologies, Google released a royalty-free, open video compression format of high quality called WebM for use with HTML5 video. It has video streams compressed with the VP8 video codec and audio streams compressed with the Vorbis audio codec with the file structure is based on the Matroska media container. It is supported by Google Chrome, Opera Browser and 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. [24]

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[25] Yes[4] Yes[5] Yes[6] Yes[7]
Web Storage[26] Yes Yes[8] Yes Yes[9]
Indexed Database API[27] No Nightly[10] Nightly No
Web SQL Database[28] No No[11] Yes[12] Yes
File API[29] No Yes[13] Partial[14][15] No
Media Capture API[30] No Depends/Partial[16] No No
Server-sent Events[31] No No[17] Yes[18] Experimental[19]
Web Sockets[32] No Nightly[20] Yes No
Web Workers[33][34] No Yes[21] Yes Yes
Geolocation API[35] No Yes[22] Yes[23] Yes[24][25]
Offline Web applications[36] 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.[37] 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.[38] 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 Syntax. 8 Aug 2010.
  12. Official HTML5 Specification. 7 Aug 2010.
  13. A Web Developer’s Guide to HTML 5. 7 Aug 2010.
  14. A Preview of HTML 5 by Lachlan Hunt. 7 Aug 2010.
  15. HTML5 differences from HTML4. 2 Aug 2010.
  16. HTML5 Overview. 8 Aug 2010.
  17. HTML5 differences from HTML4. 2 Aug 2010
  18. Adobe flash player for Android. 4 Aug 2010
  19. Thoughts on Flash - Steve Jobs. 4 Aug 2010
  20. Introducing Youtube HTML5 videos. 4 Aug 2010
  21. HTML5 video element. 8 Aug 2010
  22. HTML 5 <video> Tag. 8 Aug 2010
  23. Video codec requirements changed - Ian Hickson. 8 Aug 2010.
  24. Mozilla and Wikimedia on open video codecs. 2 Aug 2010.
  25. Selectors API Level 1, W3C
  26. Web Storage, W3C
  27. Indexed Database API, W3C
  28. Web SQL Database, W3C
  29. File API, W3C, 2009-11-17
  30. Media Capture API, W3C
  31. Server-Sent Events, W3C
  32. The Web Sockets API, W3C
  33. Web Workers, W3C
  34. Resig, John (2009-07-21), Computing with JavaScript Web Workers
  35. Geolocation API Specification, W3C
  36. 5.6 Offline Web applications — HTML5, W3C
  37. How will HTML 5, Google, and the iPad play out in Apple vs. Flash?.
  38. 22 Examples of Fresh Html 5 Websites.