Skip to content

Structure the page with HTML tags that state their role

Structure Updated Oct 4, 2026

Description

This criterion checks that your page’s code states the role of each part. iPand checks three points: a <main> element (or role="main") and at least two of <header>, <nav> and <footer>; at least half of the main text inside text elements (paragraphs, lists, headings, table cells, quotations, captions); a valid lang attribute (BCP 47) on <html>.

The second point is not evaluated when the main text has fewer than 100 words.

Why it matters for AI engines

Semantic tags separate the main content from the header, menu and footer, and say what each block is: paragraph, list, table. A program reading the code can then find the page’s useful text without having to guess it from the layout.

  • <main> sets the content specific to the page apart from what is repeated across the whole site.
  • Text in paragraphs and lists splits more cleanly than text dropped into <div> elements with no role.
  • According to the W3C, the lang attribute is used by search engines, translation tools and speech synthesizers.

How to fix it

  1. 1 Mark out the main areas of the page Wrap the content specific to the page in a single <main> element, the site header in a <header>, the menu in a <nav> and the footer in a <footer>. If your theme only uses <div> elements, ask your developer or the theme’s publisher to replace them.
  2. 2 Write the text in paragraphs and lists Put each paragraph in a <p>, enumerations in <ul> or <ol> with one <li> per item, and comparable data in a <table>. Avoid text placed directly in <div> or <span> elements: at least half of the main text must sit in text elements.
  3. 3 Declare the page language Add the lang attribute to the <html> tag with a BCP 47 code: lang="fr" for French, lang="fr-BE" for Belgian French, lang="en" for English. On a multilingual site, each version declares its own language.
  4. 4 Check the structure In your browser’s inspection tool, find the <main>, <header>, <nav> and <footer> elements, then the lang attribute of the <html> tag. Also check that the main text sits in <p> and <li> elements rather than in <div> elements.

Key takeaway

Named areas, text in paragraphs and a declared language make the page readable without guessing its layout. iPand checks these three points every day in the page’s code.

Further reading