Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member
Since this course focuses on the structure and semantics of HTML 5. 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? Well, what's wrong with the ones we had? Well, nothing's wrong with the elements in HTML 4 per say. And I think it's important to point out, that they're all still there, they all still work. And there's absolutely preventing you from using them. Now to understand why the improvements to structure and semantics in HTML 5 are such a big deal, let's take a look at a sample page.
So here I have html4_plain.htm open, and you can find that and all the other files that I'm going to be working with in this particular unit. In the 0103 folder. Let's take a look at the page structure really quickly. This will look familiar to anybody that's dealt with, HTML 4 before. So here we have, a couple of headings, an h1 and h2. And unordered list, which is responsible for structuring our navigation. And some additional headings and content that, it 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. And 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'm going to go to my next file. Which is here at 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, or div tags, through the use of class and ID attributes. So if I go over to HTML four plain three, dot 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 add, or a 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 isn't really one set of standards to guide everybody. Now this problem of providing any type of underlining meaning for what was going on in the code.
Is one of the driving factors behind the development of HTML 5. Way back as far as 2003 and on up, people began to do studies about the types of ids and classes that folks were using out there. And I'm going to point you to a couple of those. 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 it's 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 content 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 nonsemantic elements such as table1, layer1, outerrnumber1. You begin to see some patterns. Search, nav, logo, header, container. Those are the driving forces behind the creation of these new semantic tags within HTML 5. So, coming out 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. Lets re-imagine this page in HTML 5, so I'm, I'm back in the code here in Dreamweaver and I have html5.htm opened up. And you can see the exact same page but now we're using those descriptive semantic tags that HTML 5 gives us. And it's a lot easier to tell what's going on. There's the header, there's the nav. A 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 of technology for example. Knowing exactly what's 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. And 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've extended the meaning of article by giving it an idea of main content. So, if I have multiple articles on the page, from multiple sides.
It's fine for me to go ahead and use classes and IDs to further identify them as well. So, what is that mean to your viewers? Well I be honest with you, not a lot. You can see here back in Firefox I've loaded up the first page we looked at which was just that plain HTML 4 document. So, now let's take a look at the same documents divided by div tags. Now, the same document with div tags and ID and classes attached to it. The same document in HTML 5. And the same document in HTML 5 with ids and classes assigned to it. So, no huge differences.
You might've 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 HTML 5, regarding the use of settings. 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.
Get unlimited access to all courses for just $25/month.Become a member
61 Video lessons · 100008 Viewers
56 Video lessons · 113078 Viewers
71 Video lessons · 81923 Viewers
131 Video lessons · 39312 Viewers
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
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.