Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Validates HTML5 semantic elements, ARIA landmarks, skip navigation, and page structure. Use when auditing semantic HTML, accessibility, or content structure for SEO. For the lang attribute, see the international-seo skill.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | -12% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 147% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 32% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -25% | 0% |
| case-21 | ✗→✓ | ▲ Improved | 14% | 0% |
Audit the page for proper use of HTML5 semantic elements and accessibility.
> Note: The lang attribute check is handled by the international-seo skill. Do not duplicate it here.
These elements must be present:
| Element | Missing = | |---|---| | <header> | ❌ FAIL | | <main> | ❌ FAIL | | <footer> | ❌ FAIL | | <nav> | ❌ FAIL |
Report count if present: ✅ PASS "<tag> element found (N instance(s))"
These elements should be present:
| Element | Missing = | |---|---| | <article> | ⚠️ WARN "Consider using for content structure" | | <section> | ⚠️ WARN | | <aside> | ⚠️ WARN | | <figure> | ⚠️ WARN |
Check for accessibility skip links: <a href="#main-content">, <a href="#content">, or <a href="#main">
Count <div> elements vs semantic elements (header, main, footer, nav, article, section, aside, figure):
| Condition | Status | |---|---| | Divs > 0 but zero semantic elements | ❌ FAIL "Restructure with semantic HTML" | | Divs > 5× semantic element count | ⚠️ WARN "High div-to-semantic ratio" |
Check for these roles: banner, navigation, main, contentinfo, search
<main><main> elements → ⚠️ WARN "Wrap primary content in <main>"<main> → ⚠️ WARN "Should have only one"<h2>, <h3>, <h4> that are NOT inside <section>, <article>, <aside>, or <main><section> or <article>"<figure><figure> → ⚠️ WARN "Use <figure>/<figcaption>"<time> elements found → ✅ PASS<time> elements → ⚠️ WARN "Wrap dates in <time datetime=\"...\">"<ul> or <ol> found → ⚠️ WARN "Use lists for list-type content (improves featured snippet eligibility)"<caption> → ⚠️ WARN "Add captions for accessibility"<div id="__next"> or <div id="root"> — this does not count as "div-soup"; evaluate the semantic elements inside it<template> or <slot> elements are not visible in static HTML — note this limitation<article>, <section>, or <aside> — do not flag as WARNOther measured skills in the registry, with their headline benchmark lift.