New Feature: Playlist Center! Pick a topic and let our playlists guide the way.

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

HTML5: Structure, Syntax, and Semantics
Illustration by Don Barnett
Watching:

Understanding the outline algorithm


From:

HTML5: Structure, Syntax, and Semantics

with James Williamson

Video: Understanding the outline algorithm

One of the more confusing aspects of creating documents with HTML5 is when to use the new semantic elements and what effect they will have on document structure. While reading the definition of these elements within the specification can help, understanding the algorithm that HTML5 uses to outline documents could add even further clarity to the subject. HTML5 contains many algorithms that instruct the user agents how to handle HTML. Some deal with parsing code, error handling, how to parse badly formed code, and how to handle form submittal.
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

Understanding the outline algorithm

One of the more confusing aspects of creating documents with HTML5 is when to use the new semantic elements and what effect they will have on document structure. While reading the definition of these elements within the specification can help, understanding the algorithm that HTML5 uses to outline documents could add even further clarity to the subject. HTML5 contains many algorithms that instruct the user agents how to handle HTML. Some deal with parsing code, error handling, how to parse badly formed code, and how to handle form submittal.

The outline algorithm details how sectioning content should be parsed to build an outline of the current document. Using the rules for the outline algorithm, you can ensure that your page is structured exactly the way you want it to be. This can be useful from a semantic standpoint for accessibility reasons, or to make your content easier to syndicate. One of the easiest ways to picture the outline algorithm is to imagine your page as a table of contents. In a typical table of contents, you would list the most important sections as individual items, and then list interior sections nested within them.

So how does the HTML5 decide which parts of your page are used to structure and create your outline? Going back to the content model discussion we had earlier, HTML5 examines how Section and Heading content is structured within the document to create its outline. The algorithm starts with the body tag and establishes that as the outline's section root. The parser than walks down the elements in the document, in order, to establish its structure. Each time a new section is found, another item is added to the outline.

If the section contains a heading, the heading is used to name the section. Since sections are treated as containers, any new sections created within an existing one are nested in the outline. So, what elements create a new section? Well, again, look to the Sectioning content model we talked about. The article, aside, nav, and section elements will all generate a new section. Their use in fact should be restricted to only when you intend to create a new section in your document. Now the one thing that can be a little tricky here is the use of headings within sections.

The first heading content element in a section is used to define a heading for that section. After that, any additional headings will create new nested headings based on their ranks. All this may seem confusing, but it's much easier to grasp once you can visualize it. So in our next series of movies, I'm going to use an awesome online tool that can help us do just that. In the meantime, I also recommend you read the specification's section on creating document outlines. You can find this at w3.org/TR/html5/sections.html#outlines.

In this case, I recommend using the actual specification, not the author's guide, as it contains considerable more detail. And as you can see, it's fairly short, but it does a really great job of explaining how user agents should parse and section content in your HTML document. So don't shortchange yourself, go ahead and read this, so that you understand the outline algorithm in a little bit more detail.

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

 
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

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.

join now 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
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.

Are you sure you want to delete this note?

No

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
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.