Start learning with our library of video tutorials taught by experts. Get started

HTML5: Structure, Syntax, and Semantics
Watching:

Why do we need new structural elements?


From:

HTML5: Structure, Syntax, and Semantics

with James Williamson

Video: Why do we need new structural elements?

Since this course focuses on the structure and semantics of HTML5, I think it's fair to address, at the outset, a question I've heard more than once: Do we really need new structural elements? What's wrong with the ones we had? Well, nothing is wrong with the elements in HTML 4 per se, and I think it's important to point out that they're all still there; they all still work and there's absolutely nothing preventing you from using them. Now, to understand why the improvements to structure and semantics in the HTML5 are such a big deal, let's take a look at a sample page.
Expand all | Collapse all
  1. 2m 20s
    1. Welcome
      48s
    2. Using the exercise files
      1m 32s
  2. 19m 7s
    1. A brief overview of HTML5
      3m 57s
    2. What's in the HTML5 specification?
      8m 17s
    3. Why do we need new structural elements?
      6m 53s
  3. 50m 33s
    1. Defining HTML5 documents
      5m 5s
    2. HTML5 syntax
      9m 14s
    3. The header element
      5m 22s
    4. The nav element
      4m 55s
    5. The section element
      4m 51s
    6. The article element
      4m 48s
    7. The aside element
      4m 13s
    8. The footer element
      4m 17s
    9. Content model overview
      7m 48s
  4. 35m 28s
    1. Understanding the outline algorithm
      3m 17s
    2. Creating document sections
      8m 25s
    3. Using headings properly
      9m 1s
    4. Using hgroup to override sectioning
      4m 17s
    5. Properly nesting structure
      7m 17s
    6. Sectioning roots
      3m 11s
  5. 58m 30s
    1. Organizing content
      4m 41s
    2. Planning document structure
      5m 47s
    3. Choosing the right structural element
      4m 43s
    4. Checking document outlines
      5m 27s
    5. Coding initial page structure
      5m 28s
    6. Using class and ID attributes
      5m 31s
    7. Structuring headers
      13m 13s
    8. Building navigation
      7m 1s
    9. Structuring footers
      6m 39s
  6. 1h 27m
    1. Working with figure and figcaption
      7m 12s
    2. Grouping content with asides
      3m 46s
    3. Using divs in HTML5
      5m 0s
    4. Working with lists in HTML5
      7m 10s
    5. The return of bold and italic
      5m 52s
    6. Citing works semantically
      6m 32s
    7. Using the address element
      5m 24s
    8. Using the small element
      4m 24s
    9. Using the mark element
      5m 16s
    10. Working with date and time
      11m 55s
    11. Creating block-level links
      8m 53s
    12. Understanding link relationships
      9m 28s
    13. Defining link relationships
      6m 23s
  7. 17m 22s
    1. Current browser support
      7m 38s
    2. Ensuring block-level display
      4m 3s
    3. Adding support for elements in older browsers
      5m 41s
  8. 3m 46s
    1. Additional Resources
      3m 46s

Watch this entire course now—plus get access to every course in the library. Each course includes high-quality videos taught by expert instructors.

Become a member
Please wait...
HTML5: Structure, Syntax, and Semantics
4h 34m Beginner May 31, 2011

Viewers: in countries Watching now:

Gain a deeper understanding of HTML5 and learn how to create richer, more meaningful web pages with structural tags and descriptive attributes. In this course, author James Williamson presents an overview of HTML5 and its development, defines the new tags and attributes, and discusses how browsers parse and display HTML5 content. The course also includes step-by-step instructions for constructing an HTML5 document with a header and footer, navigation, content groups, and formatting.

Topics include:
  • Defining basic elements
  • Exploring the content model
  • Creating document sections
  • Using hgroup to override sectioning
  • Using the proper nesting structure
  • Choosing the right structural element
  • Using class and ID attributes
  • Building navigation
  • Grouping content with asides
  • Using divs in HTML5
  • Creating block level links
  • Defining link relationships
  • Understanding current browser support
  • Adding support for elements in older browsers
Subjects:
Developer Web Web Design Web Foundations Programming Languages Web Development
Software:
HTML
Author:
James Williamson

Why do we need new structural elements?

Since this course focuses on the structure and semantics of HTML5, I think it's fair to address, at the outset, a question I've heard more than once: Do we really need new structural elements? What's wrong with the ones we had? Well, nothing is wrong with the elements in HTML 4 per se, and I think it's important to point out that they're all still there; they all still work and there's absolutely nothing preventing you from using them. Now, to understand why the improvements to structure and semantics in the HTML5 are such a big deal, let's take a look at a sample page.

So here I have html4_plane.htm open, and you can find that, and all the other files that I am going to be working with in this particular unit, in the 01_03 folder. Let's take a look at the page structure really quickly. This should look familiar to anybody that's dealt with HTML 4 before. So here we have a couple of headings, an h1 and an h2, an unordered list, which is responsible for structuring our navigation, and some additional headings and contents that kind of goes down the page. Okay, that's nice, but really, the content is not grouped in any way.

It's not described in any way. There's nothing there telling any type of user agent that might visit this page, what differentiates one section of content from the other. In HTML 4, the tag that we used to group content and basically section it off was the div tag. So I am going to my next file, which is here, this html4_plain2.htm, and you can see here the content is now being separated and sectioned by using this div tag. Now, the div tag is a generic block-level element. It really doesn't mean anything. Semantically, it has no meaning at all.

All it really does for us is allow us to group content together. It's up to us as authors to add any type of meaning to it at all. And typically, the technique that evolved over the years was to add meaning to our div tags through the use of class and ID attributes. So if I go over to html4_plain3.htm, you can see that. So here, now the div tags have ids that explain okay, this is the header, this is our navigation, this is our main content, this is our sidebar--and that's much easier to understand. But the real problem with this, however, is there really aren't any standardized ID and class values.

I can use any ones that I want. I didn't have to use sidebar, for example; I could've used ad or secondary content. So creating a system, any type of user agent that can read and understand the content that I've just created, is not a given, because I can use any IDs and class names that I want, if I'm working within a system but there really isn't one set of standards to guide everybody. Now this problem of providing any type of underlining meaning for what was going on the code is one of the driving factors behind the development of HTML5.

Way back, as far as 2003 and on and up, people began to do studies about the types of IDs and classes that folks were using out there, and I am going to point you to a couple of those. First, go to code.google.com/webstats, and if you scroll down, you'll see a study on the number of classes that was done. The study was done in 2005, and it's a sample of over a slightly a billion documents. They were looking to see what types of class values people were using when they identified their content. And this helps us see patterns that are merging.

What types of class names are people using over and over again? How are they describing their content? John Allsopp did a nice study in 2005. You can find this one on his blog 'dog or higher'. Just go through the archives into November 05 of 2005 and you can find this article which contains a really nice study of the current level of semantics in HTML documents. And again, he is going to give you a sampling of some of the class values and ID values that people were using. Opera did another study as well, and that's the one I really want to look at.

So let me switch over here to the ID attribute list study that Opera did. Most people were defining sections of contents through IDs rather than classes. It's valuable to look at both of them, obviously, but when people started looking at these class and ID values for this wide range of pages, some patterns began to emerge, and you can see them here in the Opera study: footer, content, header, logo, container. So when you take off the clearly non- semantic elements, such as table1, layer1, autonumber1, you begin the see some patterns. Search, nav, logo, header, container-- those are the driving forces behind the creation of these new semantic tags within HTML5.

So, coming up with a standard set of tags would give everybody the ability to consistently identify and define content, which in turn is going to make it easier for web applications and user agents to parse that content and return the proper data. Let's re-imagine this page in HTML5. So I am back in the code here in Dreamweaver and I have html5.htm opened up. And you see, the exact same page, but now were using those descriptive semantic tags that HTML5 gives, us and it's a lot easier to tell what's going on.

There is the header, there is our nav, an article, an aside, and a footer; all of that makes sense to us, in terms of what these tags do. Even right off the bat, if you haven't heard anything about the tags, it's pretty easy to identify where the navigation for the page is, by just finding the nav element. Now as easy as that is for us, it's even easier for user agents. So, imagine the assistive technology, for example, knowing exactly what the content of this element is because it's a nav element, and you can start to see some of the attraction to these HTML5 semantic elements.

Now, IDs and classes are still there. If we want to extend the meaning of these new elements, we're free to do that. So if I move over here to html5_2.htm, you can see I have extended the meaning of article by giving an id of mainContent. So if I have multiple articles on a page or multiple asides, it's fine for me to go ahead and use classes and IDs to further identify them as well. So, what does that mean to your viewers? Well, I'll be honest with you--not a lot. You can see here back in Firefox I've loaded up the first page that we looked at, which was just that plain html4 document.

So now, let's take a look at the same document, divided by diff tags. Now, the same document with div tags and ID and classes attached to it. The same document in HTML5, and the same document in HTML5 with IDs and classes assigned to it. So, no huge differences. You might have noticed a slight difference between this and this, but the only thing that changed there was the actual heading tag that I used for a specific section, because there are slight differences in the syntax between HTML 4 and HTML5 regarding the use of headings. So as you can see, all of the versions of this page that I've shown you look exactly the same in the browser.

So let's be honest, the structure and semantic markup of the page is not for the viewer. Without looking at the code, viewers would have no idea which page is which. However, browsers, accessibility devices, or other user agents will notice the difference, and that's the point of our new semantic markup.

There are currently no FAQs about HTML5: Structure, Syntax, and Semantics.

Share a link to this course
Please wait... Please wait...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.
Upgrade now


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ.

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Upgrade now

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed HTML5: Structure, Syntax, and Semantics.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferencesfrom the dropdown menu.

Continue to classic layout Stay on new layout
Welcome to the redesigned course page.

We’ve moved some things around, and now you can



Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked