Before we dive into the topics listed above, I want to take a minute to look at an extremely important feature that we won’t be covering in its own dedicated article: the new APIs. HTML5 includes several new APIs that are integrated with some of the new HTML5 elements (which we’ll be looking at later). Here’s the complete list straight from W3.org:

  • 2D drawing API which can be used with the new canvas element.
  • API for playing of video and audio which can be used with the new video and audio elements.
  • An API that enables offline Web applications.
  • An API that allows a Web application to register itself for certain protocols or media types.
  • Editing API in combination with a new global contenteditable attribute.
  • Drag & drop API in combination with a draggable attribute.
  • API that exposes the history and allows pages to add to it to prevent breaking the back button.
  • Cross-document messaging.
  • As you can see, the principal purpose of these APIs is to facilitate web application creation. Notice the third API enables offline web apps. This is excellent news for users and programmers alike because it enables the use of rich, internet-driven applications in an offline environment. You can expect to see many of your favorite applications follow Gmail in introducing offline access.

    New Elements in HTML5

    HTML5 introduces quite a few new elements. Article two in this series will look at a few of these in detail, but for now here’s the complete list with brief descriptions (source: w3schools):

  • Defines external content

  • Defines sound, such as music or other audio streams
  • Defines graphic, such as graphs or other images
  • Defines a command button, like a radiobutton, a checkbox, or a button
  • Defines a list of selectable data. The datagrid is displayed as a tree-list
  • Defines a list of selectable data. Use this element together with the input element, to make a dropdown list for the input’s value
  • Defines a container for data template. This element must have child elements to define a template: elements

  • Defines details of an element, which the user can see, and click to hide
  • Defines a dialog, such as a conversation
  • Defines embedded content, such as a plug-in
  • Defines a source for events sent by a server

  • Used to group some elements

  • Defines the footer of a section or document. Typically contains the name of the author, the date the document was written and/or contact information

  • Defines the header of a section or document
  • Defines marked text. Use the tag if you want to highlight parts of your text
  • Defines a measurement. Used only for measurements with a known minimum and maximum value

  • Defines a nestingpoint in a datatemplate for child elements. Used together with the elements and
  • Defines different types of output, such as output written by a script
  • Defines work-in-progress. Use the progress element to display the progress of a time consuming function in JavaScript
  • Defines the rules for updating a datatemplate. Used together with the elements and

  • Defines sections in a document. Such as chapters, headers, footers, or any other sections of the document
  • Defines media resources for media elements, such as
  • Defines a time or a date, or both
  • Defines video, such as a movie clip or other video streams
  • Though we won’t have time to go over each of these in detail, we’ll be examining a few of the important ones such as and

    Semantic Changes

    This is the part that should fundamentally change the way you structure your sites. Included in the list above are six new structural elements that will help bring consistency to the basic frame of sites all across the web. These six elements are: