nav Element in HTML - Internal and External Navigation with ARIA Roles

HTML <nav> Element: Guiding the User’s Journey

Navigation is more than menus — it’s the map to your content. In HTML, the <nav> element tells browsers, search engines, and assistive devices: “Here is where the journey begins.” Whether it’s a site-wide menu or a local section, <nav> structures it semantically and accessibly.

What Is the <nav> Element?

The <nav> element defines a block of navigation links. This can include internal anchor links, external URLs, or in-page sections — anything that helps users move around your site or page.

Basic Structure

<nav>
  <ul>
    <li><a href="#apple">Apple</a></li>
    <li><a href="#banana">Banana</a></li>
    <li><a href="#cherry">Cherry</a></li>
  </ul>
</nav>
• Apple  
• Banana  
• Cherry

This example offers a simple in-page navigation menu — great for single-page layouts, documentation, or FAQs.

Internal vs External Links

Internal Link (same page):

<a href="#banana">Go to Banana Section</a>

Internal Link (another page):

<a href="/fruits/banana.html">Banana Info</a>

External Link:

<a href="https://example.com/banana" target="_blank" rel="noopener">Learn about bananas</a>

All these links can live within a <nav> block if their goal is to guide navigation.

Example: Site Navigation

<nav>
  <ul>
    <li><a href="/">Home</a></li>
    <li><a href="/about">About Us</a></li>
    <li><a href="/contact">Contact</a></li>
  </ul>
</nav>
• Home  
• About Us  
• Contact

This structure clearly separates navigational content and helps users (and bots) quickly identify it.

Accessibility Tip: Add ARIA Role

While <nav> is already semantic, screen readers benefit even more when used with aria-label for multiple navs.

<nav aria-label="Main Site Navigation">...</nav>
<nav aria-label="Social Media Links">...</nav>

This distinction is helpful when pages include more than one navigation block (e.g., main nav + footer links).

Example: Navigation with Icons and External Links

<nav aria-label="Fruit Navigation">
  <ul>
    <li><a href="#apple">🍎 Apple</a></li>
    <li><a href="#banana">🍌 Banana</a></li>
    <li><a href="https://fruitinfo.com/cherry" target="_blank">🍒 Cherry (external)</a></li>
  </ul>
</nav>
• 🍎 Apple  
• 🍌 Banana  
• 🍒 Cherry (external)

When NOT to Use <nav>

Not all links belong in a <nav>. Avoid wrapping inline links (like “read more” in an article) inside <nav>. Use <nav> for groups of links that define structure and flow.

Summary

The <nav> element is a semantic powerhouse for structuring navigational content. You’ve learned how to:

  • Use <nav> to group internal and external links
  • Implement accessible labels with aria-label
  • Structure clear menus for pages, sections, or even footers

What’s Next?

Coming up next: we’ll explore the <main> element — the heart of your content, where everything truly begins.

QUIZ

Question 1:What is the primary purpose of the <nav> element in HTML?

Question 2:The <nav> element should only contain links to external websites.

Question 3:Which of the following are best practices when using the <nav> element?

Question 4:Which ARIA role is automatically implied by the <nav> element?

Question 5:It’s acceptable to use the <nav> element for a group of links that are unrelated to site navigation, like social media links in a footer.

Question 6:When structuring navigation with the <nav> element, which HTML elements are typically used inside it?

Mallikarjuna Mallisetty, author
About the author

Mallikarjuna Mallisetty

General programming

Mallikarjuna shares practical programming tutorials and foundational concepts designed to help developers learn by building and experimenting.

View LinkedIn profile ↗