Fix heading order for better accessibility

Fix heading order issues in Lighthouse accessibility audits. Ordered headings convey semantic structure for easier navigation.
Harlan WiltonHarlan Wilton4 min read Published

Screen reader users rely on headings to navigate your page. Skipped levels break navigation and make content structure unclear.

What's happening

Headings (<h1> through <h6>) must form a logical hierarchy, increasing by only one level at a time. Skipping from <h2> to <h4> breaks the user's mental model of the page. Users cannot tell if the skipped <h3> represents missing content or poor markup.

Ordered headings let users jump between sections, understand the page structure, and orient themselves.

Diagnose

Chrome DevTools

  1. Open DevTools (F12)
  2. Press Ctrl+Shift+P (Cmd+Shift+P on Mac)
  3. Type "Show headings" and select the option
  4. Review the heading outline - look for skipped levels

Quick console check:

const headings = [...document.querySelectorAll('h1, h2, h3, h4, h5, h6')]
let lastLevel = 0

headings.forEach((h) => {
  const level = Number.parseInt(h.tagName[1])
  if (level > lastLevel + 1 && lastLevel !== 0) {
    console.warn(`Skipped heading level: ${h.tagName} after H${lastLevel}`, h)
  }
  lastLevel = level
})

Accessibility tree

  1. DevTools > Elements > Accessibility pane
  2. Expand the tree and look at heading structure
  3. Levels must descend sequentially: 1 > 2 > 3, not 1 > 3.

Fix

1. Restructure heading levels

Fix the hierarchy by adjusting heading levels:

<!-- Before: Skipped level -->
<h1>Product Catalog</h1>
<h3>Electronics</h3>  <!-- Wrong: skipped h2 -->
<h3>Clothing</h3>

<!-- After: Sequential levels -->
<h1>Product Catalog</h1>
<h2>Electronics</h2>  <!-- Correct: h2 follows h1 -->
<h2>Clothing</h2>

For nested sections, continue the hierarchy:

<h1>Product Catalog</h1>
  <h2>Electronics</h2>
    <h3>Phones</h3>
    <h3>Laptops</h3>
  <h2>Clothing</h2>
    <h3>Shirts</h3>
    <h3>Pants</h3>

2. Style independently from semantics

Use CSS to achieve desired visual sizes without breaking semantics:

<!-- Keep correct heading level, style differently -->
<h2 class="text-3xl font-bold">Main Section</h2>
<h3 class="text-2xl font-semibold">Subsection</h3>
<h4 class="text-xl">Nested Item</h4>
/* Override default heading styles */
.section-title {
  font-size: 1.5rem;
  font-weight: 600;
}

h2.section-title,
h3.section-title,
h4.section-title {
  /* Same visual appearance, correct semantic level */
}

3. Fix component headings

Components often hardcode heading levels. Make them configurable:

<!-- Bad: Component always uses h3 -->
<div class="card">
  <h3>Card Title</h3>
</div>

<!-- Good: Heading level is contextual -->
<div class="card">
  <h2>Card Title</h2>  <!-- or h3, h4 depending on context -->
</div>

Pass the heading level as a prop.

Framework examples

Nuxt / VueMake heading levels dynamic in components:
<script setup>
defineProps({
  level: {
    type: Number,
    default: 2,
    validator: v => v >= 1 && v <= 6
  }
})
</script>

<template>
  <component :is="`h${level}`" class="card-title">
    <slot />
  </component>
</template>
Usage:
<Card>
  <CardHeading :level="2">Products</CardHeading>
  <Card>
    <CardHeading :level="3">Electronics</CardHeading>
  </Card>
</Card>
ReactDynamic heading component:
function Heading({ level = 2, children, className }) {
  const Tag = `h${level}`
  return <Tag className={className}>{children}</Tag>
}

// Usage with context for automatic levels
function Section({ children }) {
  const parentLevel = useHeadingLevel()
  return (
    <HeadingLevelProvider value={parentLevel + 1}>
      {children}
    </HeadingLevelProvider>
  )
}

SEO impact: passage ranking

Correct heading structure is critical for Google Passage Ranking.

Google indexes and ranks individual passages from a page independently. It relies on <h> tags to understand where one topic ends and another begins.

  • Broken hierarchy: Confuses the crawler about the relationship between sections.
  • Logical hierarchy: Allows Google to snip a specific section and serve it as a Featured Snippet.

Fixing heading order maximizes your content's surface area in search results.

Verify the fix

  1. Re-run Lighthouse - The "Heading elements appear in a sequentially-descending order" audit must pass.
  2. Check heading outline - In DevTools, run:
Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6'), h => `${h.tagName}: ${h.textContent.trim().slice(0, 50)}`)
  .join('\n')

The output must show logical nesting without skips.

  1. Screen reader test - Use heading navigation (H key in NVDA/JAWS) to move through headings. The structure must be logical.

Common mistakes

  • Using headings for visual styling: Use a <p> or <span> with CSS if you want big bold text that isn't a section heading. Reserve headings for actual document structure.
  • Multiple h1 elements: Use only one <h1> per page. Multiple <h1> elements confuse screen readers and search engines.
  • Starting at h2 or h3: The first heading on a page must be <h1>. Starting at a lower level breaks the hierarchy.
  • Using divs with heading roles: <div role="heading" aria-level="2"> is fragile. Use real heading elements.
  • Hiding headings for visual design: Use visually-hidden CSS if a heading shouldn't be visible. display: none hides it from screen readers.

Heading order issues often appear alongside:

  • Document Title - The title and h1 should describe the same topic
  • Bypass - Proper headings enable skip navigation
  • HTML Lang - Both affect how screen readers interpret structure

Test your entire site

Heading structure issues often creep in through reusable components, templates, or CMS content. A card component using <h3> might be correct on one page but break hierarchy on another. Unlighthouse scans every page and flags heading order violations across your entire site.

\n\n\n",[4294,5266,5267,5279,5288,5297,5308,5320,5350,5354,5360,5368,5372,5381,5415,5429,5439],{"__ignoreMap":1843},[4299,5268,5269,5271,5274,5277],{"class":4390,"line":1766},[4299,5270,4302],{"class":4301},[4299,5272,5273],{"class":4305},"script",[4299,5275,5276],{"class":4942}," setup",[4299,5278,4693],{"class":4301},[4299,5280,5281,5284,5286],{"class":4390,"line":1756},[4299,5282,5283],{"class":4418},"defineProps",[4299,5285,4422],{"class":4405},[4299,5287,4562],{"class":4301},[4299,5289,5290,5293,5295],{"class":4390,"line":1828},[4299,5291,5292],{"class":4504}," level",[4299,5294,5052],{"class":4301},[4299,5296,4483],{"class":4301},[4299,5298,5299,5302,5304,5306],{"class":4390,"line":1749},[4299,5300,5301],{"class":4504}," type",[4299,5303,5052],{"class":4301},[4299,5305,4496],{"class":4405},[4299,5307,5095],{"class":4301},[4299,5309,5310,5313,5315,5318],{"class":4390,"line":1984},[4299,5311,5312],{"class":4504}," default",[4299,5314,5052],{"class":4301},[4299,5316,5317],{"class":4449}," 2",[4299,5319,5095],{"class":4301},[4299,5321,5322,5325,5327,5330,5332,5335,5338,5340,5342,5344,5347],{"class":4390,"line":4523},[4299,5323,5324],{"class":4418}," validator",[4299,5326,5052],{"class":4301},[4299,5328,5329],{"class":4473}," v",[4299,5331,4480],{"class":4393},[4299,5333,5334],{"class":4405}," v ",[4299,5336,5337],{"class":4401},">=",[4299,5339,4545],{"class":4449},[4299,5341,4548],{"class":4401},[4299,5343,5334],{"class":4405},[4299,5345,5346],{"class":4401},"<=",[4299,5348,5349],{"class":4449}," 6\n",[4299,5351,5352],{"class":4390,"line":4565},[4299,5353,4619],{"class":4301},[4299,5355,5356,5358],{"class":4390,"line":4616},[4299,5357,4593],{"class":4301},[4299,5359,4613],{"class":4405},[4299,5361,5362,5364,5366],{"class":4390,"line":4622},[4299,5363,4688],{"class":4301},[4299,5365,5273],{"class":4305},[4299,5367,4693],{"class":4301},[4299,5369,5370],{"class":4390,"line":4633},[4299,5371,4456],{"emptyLinePlaceholder":4455},[4299,5373,5374,5376,5379],{"class":4390,"line":5123},[4299,5375,4302],{"class":4301},[4299,5377,5378],{"class":4305},"template",[4299,5380,4693],{"class":4301},[4299,5382,5384,5386,5390,5393,5395,5397,5400,5402,5404,5406,5408,5411,5413],{"class":4390,"line":5383},12,[4299,5385,4819],{"class":4301},[4299,5387,5389],{"class":5388},"sFfpx","component",[4299,5391,5392],{"class":4942}," :is",[4299,5394,4446],{"class":4301},[4299,5396,4948],{"class":4425},[4299,5398,5399],{"class":4429},"`h${level}`",[4299,5401,4948],{"class":4425},[4299,5403,4943],{"class":4942},[4299,5405,4446],{"class":4301},[4299,5407,4948],{"class":4425},[4299,5409,5410],{"class":4429},"card-title",[4299,5412,4948],{"class":4425},[4299,5414,4693],{"class":4301},[4299,5416,5418,5420,5423,5427],{"class":4390,"line":5417},13,[4299,5419,4836],{"class":4301},[4299,5421,5422],{"class":4305},"slot",[4299,5424,5426],{"class":5425},"sSrKx"," /",[4299,5428,4693],{"class":4301},[4299,5430,5432,5435,5437],{"class":4390,"line":5431},14,[4299,5433,5434],{"class":4301}," \n Products\n \n Electronics\n \n\n",[4294,5455,5456,5465,5495,5503,5530,5538],{"__ignoreMap":1843},[4299,5457,5458,5460,5463],{"class":4390,"line":1766},[4299,5459,4302],{"class":4301},[4299,5461,5462],{"class":5388},"Card",[4299,5464,4693],{"class":4301},[4299,5466,5467,5469,5472,5475,5477,5479,5482,5484,5486,5489,5491,5493],{"class":4390,"line":1756},[4299,5468,4819],{"class":4301},[4299,5470,5471],{"class":5388},"CardHeading",[4299,5473,5474],{"class":4942}," :level",[4299,5476,4446],{"class":4301},[4299,5478,4948],{"class":4425},[4299,5480,5481],{"class":4429},"2",[4299,5483,4948],{"class":4425},[4299,5485,4309],{"class":4301},[4299,5487,5488],{"class":4405},"Products",[4299,5490,4688],{"class":4301},[4299,5492,5471],{"class":5388},[4299,5494,4693],{"class":4301},[4299,5496,5497,5499,5501],{"class":4390,"line":1828},[4299,5498,4819],{"class":4301},[4299,5500,5462],{"class":5388},[4299,5502,4693],{"class":4301},[4299,5504,5505,5507,5509,5511,5513,5515,5518,5520,5522,5524,5526,5528],{"class":4390,"line":1749},[4299,5506,4836],{"class":4301},[4299,5508,5471],{"class":5388},[4299,5510,5474],{"class":4942},[4299,5512,4446],{"class":4301},[4299,5514,4948],{"class":4425},[4299,5516,5517],{"class":4429},"3",[4299,5519,4948],{"class":4425},[4299,5521,4309],{"class":4301},[4299,5523,4704],{"class":4405},[4299,5525,4688],{"class":4301},[4299,5527,5471],{"class":5388},[4299,5529,4693],{"class":4301},[4299,5531,5532,5534,5536],{"class":4390,"line":1984},[4299,5533,5434],{"class":4301},[4299,5535,5462],{"class":5388},[4299,5537,4693],{"class":4301},[4299,5539,5540,5542,5544],{"class":4390,"line":4523},[4299,5541,4688],{"class":4301},[4299,5543,5462],{"class":5388},[4299,5545,4693],{"class":4301},[5250,5547,5549,5554,5557],{"icon":5548},"i-logos-react",[4282,5550,5551],{},[5256,5552,5553],{},"React",[4282,5555,5556],{},"Dynamic heading component:",[4381,5558,5562],{"className":5559,"code":5560,"language":5561,"meta":1843,"style":1843},"language-jsx shiki shiki-themes github-light github-light material-theme-palenight","function Heading({ level = 2, children, className }) {\n const Tag = `h${level}`\n return {children}\n}\n\n// Usage with context for automatic levels\nfunction Section({ children }) {\n const parentLevel = useHeadingLevel()\n return (\n \n {children}\n \n )\n}\n","jsx",[4294,5563,5564,5569,5574,5579,5583,5587,5592,5597,5602,5607,5612,5617,5622,5627],{"__ignoreMap":1843},[4299,5565,5566],{"class":4390,"line":1766},[4299,5567,5568],{},"function Heading({ level = 2, children, className }) {\n",[4299,5570,5571],{"class":4390,"line":1756},[4299,5572,5573],{}," const Tag = `h${level}`\n",[4299,5575,5576],{"class":4390,"line":1828},[4299,5577,5578],{}," return {children}\n",[4299,5580,5581],{"class":4390,"line":1749},[4299,5582,5079],{},[4299,5584,5585],{"class":4390,"line":1984},[4299,5586,4456],{"emptyLinePlaceholder":4455},[4299,5588,5589],{"class":4390,"line":4523},[4299,5590,5591],{},"// Usage with context for automatic levels\n",[4299,5593,5594],{"class":4390,"line":4565},[4299,5595,5596],{},"function Section({ children }) {\n",[4299,5598,5599],{"class":4390,"line":4616},[4299,5600,5601],{}," const parentLevel = useHeadingLevel()\n",[4299,5603,5604],{"class":4390,"line":4622},[4299,5605,5606],{}," return (\n",[4299,5608,5609],{"class":4390,"line":4633},[4299,5610,5611],{}," \n",[4299,5613,5614],{"class":4390,"line":5123},[4299,5615,5616],{}," {children}\n",[4299,5618,5619],{"class":4390,"line":5383},[4299,5620,5621],{}," \n",[4299,5623,5624],{"class":4390,"line":5417},[4299,5625,5626],{}," )\n",[4299,5628,5629],{"class":4390,"line":5431},[4299,5630,5079],{},[4286,5632,5634],{"id":5633},"seo-impact-passage-ranking","SEO impact: passage ranking",[4282,5636,5637,5638,4415],{},"Correct heading structure is critical for ",[5256,5639,5640],{},"Google Passage Ranking",[4282,5642,5643,5644,5652],{},"Google indexes and ranks individual passages from a page independently. It relies on ",[4294,5645,5646,5648,5650],{"className":4296,"language":4297,"style":1843},[4299,5647,4302],{"class":4301},[4299,5649,4474],{"class":5388},[4299,5651,4309],{"class":4301}," tags to understand where one topic ends and another begins.",[5654,5655,5656,5662],"ul",{},[4365,5657,5658,5661],{},[5256,5659,5660],{},"Broken hierarchy",": Confuses the crawler about the relationship between sections.",[4365,5663,5664,5667,5668,4415],{},[5256,5665,5666],{},"Logical hierarchy",": Allows Google to snip a specific section and serve it as a ",[5256,5669,5670],{},"Featured Snippet",[4282,5672,5673],{},"Fixing heading order maximizes your content's surface area in search results.",[4286,5675,5677],{"id":5676},"verify-the-fix","Verify the fix",[4362,5679,5680,5686],{},[4365,5681,5682,5685],{},[5256,5683,5684],{},"Re-run Lighthouse"," - The \"Heading elements appear in a sequentially-descending order\" audit must pass.",[4365,5687,5688,5691],{},[5256,5689,5690],{},"Check heading outline"," - In DevTools, run:",[4381,5693,5695],{"className":4383,"code":5694,"language":4385,"meta":1843,"style":1843},"Array.from(document.querySelectorAll('h1,h2,h3,h4,h5,h6'), h => `${h.tagName}: ${h.textContent.trim().slice(0, 50)}`)\n .join('\\n')\n",[4294,5696,5697,5784],{"__ignoreMap":1843},[4299,5698,5699,5702,5704,5707,5710,5712,5714,5716,5718,5721,5723,5725,5727,5729,5731,5734,5736,5738,5740,5742,5745,5747,5749,5751,5754,5756,5759,5763,5765,5768,5770,5773,5775,5778,5780,5782],{"class":4390,"line":1766},[4299,5700,5701],{"class":4405},"Array",[4299,5703,4415],{"class":4301},[4299,5705,5706],{"class":4418},"from",[4299,5708,5709],{"class":4405},"(document",[4299,5711,4415],{"class":4301},[4299,5713,4419],{"class":4418},[4299,5715,4422],{"class":4405},[4299,5717,4426],{"class":4425},[4299,5719,5720],{"class":4429},"h1,h2,h3,h4,h5,h6",[4299,5722,4426],{"class":4425},[4299,5724,4477],{"class":4405},[4299,5726,4607],{"class":4301},[4299,5728,4610],{"class":4473},[4299,5730,4480],{"class":4393},[4299,5732,5733],{"class":4425}," `${",[4299,5735,4474],{"class":4405},[4299,5737,4415],{"class":4425},[4299,5739,4511],{"class":4405},[4299,5741,4593],{"class":4425},[4299,5743,5744],{"class":4429},": ",[4299,5746,4584],{"class":4425},[4299,5748,4474],{"class":4405},[4299,5750,4415],{"class":4425},[4299,5752,5753],{"class":4405},"textContent",[4299,5755,4415],{"class":4425},[4299,5757,5758],{"class":4418},"trim",[4299,5760,5762],{"class":5761},"s4OlC","()",[4299,5764,4415],{"class":4425},[4299,5766,5767],{"class":4418},"slice",[4299,5769,4422],{"class":5761},[4299,5771,5772],{"class":4449},"0",[4299,5774,4607],{"class":4425},[4299,5776,5777],{"class":4449}," 50",[4299,5779,4477],{"class":5761},[4299,5781,4604],{"class":4425},[4299,5783,4613],{"class":4405},[4299,5785,5786,5789,5792,5794,5796,5799,5801],{"class":4390,"line":1756},[4299,5787,5788],{"class":4301}," .",[4299,5790,5791],{"class":4418},"join",[4299,5793,4422],{"class":4405},[4299,5795,4426],{"class":4425},[4299,5797,5798],{"class":4397},"\\n",[4299,5800,4426],{"class":4425},[4299,5802,4613],{"class":4405},[4282,5804,5805],{},"The output must show logical nesting without skips.",[4362,5807,5808],{},[4365,5809,5810,5813],{},[5256,5811,5812],{},"Screen reader test"," - Use heading navigation (H key in NVDA/JAWS) to move through headings. The structure must be logical.",[4286,5815,5817],{"id":5816},"common-mistakes","Common mistakes",[5654,5819,5820,5844,5868,5883,5920],{},[4365,5821,5822,5825,5826,5834,5835,5843],{},[5256,5823,5824],{},"Using headings for visual styling",": Use a ",[4294,5827,5828,5830,5832],{"className":4296,"language":4297,"style":1843},[4299,5829,4302],{"class":4301},[4299,5831,4282],{"class":4305},[4299,5833,4309],{"class":4301}," or ",[4294,5836,5837,5839,5841],{"className":4296,"language":4297,"style":1843},[4299,5838,4302],{"class":4301},[4299,5840,4299],{"class":4305},[4299,5842,4309],{"class":4301}," with CSS if you want big bold text that isn't a section heading. Reserve headings for actual document structure.",[4365,5845,5846,5849,5850,5858,5859,5867],{},[5256,5847,5848],{},"Multiple h1 elements",": Use only one ",[4294,5851,5852,5854,5856],{"className":4296,"language":4297,"style":1843},[4299,5853,4302],{"class":4301},[4299,5855,4306],{"class":4305},[4299,5857,4309],{"class":4301}," per page. Multiple ",[4294,5860,5861,5863,5865],{"className":4296,"language":4297,"style":1843},[4299,5862,4302],{"class":4301},[4299,5864,4306],{"class":4305},[4299,5866,4309],{"class":4301}," elements confuse screen readers and search engines.",[4365,5869,5870,5873,5874,5882],{},[5256,5871,5872],{},"Starting at h2 or h3",": The first heading on a page must be ",[4294,5875,5876,5878,5880],{"className":4296,"language":4297,"style":1843},[4299,5877,4302],{"class":4301},[4299,5879,4306],{"class":4305},[4299,5881,4309],{"class":4301},". Starting at a lower level breaks the hierarchy.",[4365,5884,5885,5744,5888,5919],{},[5256,5886,5887],{},"Using divs with heading roles",[4294,5889,5890,5892,5894,5897,5899,5901,5904,5906,5909,5911,5913,5915,5917],{"className":4296,"language":4297,"style":1843},[4299,5891,4302],{"class":4301},[4299,5893,5149],{"class":4305},[4299,5895,5896],{"class":4942}," role",[4299,5898,4446],{"class":4301},[4299,5900,4948],{"class":4425},[4299,5902,5903],{"class":4429},"heading",[4299,5905,4948],{"class":4425},[4299,5907,5908],{"class":4942}," aria-level",[4299,5910,4446],{"class":4301},[4299,5912,4948],{"class":4425},[4299,5914,5481],{"class":4429},[4299,5916,4948],{"class":4425},[4299,5918,4309],{"class":4301}," is fragile. Use real heading elements.",[4365,5921,5922,5925,5926,5929],{},[5256,5923,5924],{},"Hiding headings for visual design",": Use visually-hidden CSS if a heading shouldn't be visible. ",[4294,5927,5928],{},"display: none"," hides it from screen readers.",[4286,5931,5933],{"id":5932},"related-issues","Related issues",[4282,5935,5936],{},"Heading order issues often appear alongside:",[5654,5938,5939,5946,5952],{},[4365,5940,5941,5945],{},[5942,5943,5944],"a",{"href":4130},"Document Title"," - The title and h1 should describe the same topic",[4365,5947,5948,5951],{},[5942,5949,5950],{"href":4124},"Bypass"," - Proper headings enable skip navigation",[4365,5953,5954,5957],{},[5942,5955,5956],{"href":4094},"HTML Lang"," - Both affect how screen readers interpret structure",[4286,5959,5961],{"id":5960},"test-your-entire-site","Test your entire site",[4282,5963,5964,5965,5973],{},"Heading structure issues often creep in through reusable components, templates, or CMS content. A card component using ",[4294,5966,5967,5969,5971],{"className":4296,"language":4297,"style":1843},[4299,5968,4302],{"class":4301},[4299,5970,4346],{"class":4305},[4299,5972,4309],{"class":4301}," might be correct on one page but break hierarchy on another. Unlighthouse scans every page and flags heading order violations across your entire site.",[5975,5976,5977],"style",{},"html pre.shiki code .sx-uw, html code.shiki .sx-uw{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#89DDFF}html pre.shiki code .sV-QU, html code.shiki .sV-QU{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .swqme, html code.shiki .swqme{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#C792EA}html pre.shiki code .smpaK, html code.shiki .smpaK{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#BABED8}html pre.shiki code .sc1V3, html code.shiki .sc1V3{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#89DDFF}html pre.shiki code .sqjlB, html code.shiki .sqjlB{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#BABED8}html pre.shiki code .s0YkB, html code.shiki .s0YkB{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#82AAFF}html pre.shiki code .sbw7o, html code.shiki .sbw7o{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#89DDFF}html pre.shiki code .sJnJ8, html code.shiki .sJnJ8{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#C3E88D}html pre.shiki code .sjz_z, html code.shiki .sjz_z{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#F78C6C}html pre.shiki code .sgUNn, html code.shiki .sgUNn{--shiki-light:#E36209;--shiki-light-font-style:inherit;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sqVJQ, html code.shiki .sqVJQ{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#F07178}html pre.shiki code .smL2f, html code.shiki .smL2f{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTBSN, html code.shiki .sTBSN{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sg-iE, html code.shiki .sg-iE{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#C792EA}html pre.shiki code .sy1TL, html code.shiki .sy1TL{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#89DDFF}html pre.shiki code .sryBE, html code.shiki .sryBE{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#FFCB6B}html pre.shiki code .sQZzC, html code.shiki .sQZzC{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#B2CCD6}html pre.shiki code .sJXcV, html code.shiki .sJXcV{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F78C6C}html pre.shiki code .sTwkl, html code.shiki .sTwkl{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#FFCB6B}html pre.shiki code .sFfpx, html code.shiki .sFfpx{--shiki-light:#B31D28;--shiki-light-font-style:italic;--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#F07178;--shiki-dark-font-style:inherit}html pre.shiki code .sSrKx, html code.shiki .sSrKx{--shiki-light:#B31D28;--shiki-light-font-style:italic;--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:inherit}html pre.shiki code .s4OlC, html code.shiki .s4OlC{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#BABED8}",{"title":1843,"searchDepth":1756,"depth":1756,"links":5979},[5980,5981,5985,5990,5991,5992,5993,5994,5995],{"id":4288,"depth":1756,"text":4289},{"id":4355,"depth":1756,"text":4356,"children":5982},[5983,5984],{"id":4359,"depth":1828,"text":4360},{"id":4640,"depth":1828,"text":4641},{"id":4655,"depth":1756,"text":4656,"children":5986},[5987,5988,5989],{"id":4659,"depth":1828,"text":4660},{"id":4919,"depth":1828,"text":4920},{"id":5128,"depth":1828,"text":5129},{"id":5247,"depth":1756,"text":5248},{"id":5633,"depth":1756,"text":5634},{"id":5676,"depth":1756,"text":5677},{"id":5816,"depth":1756,"text":5817},{"id":5932,"depth":1756,"text":5933},{"id":5960,"depth":1756,"text":5961},"Fix heading order issues in Lighthouse accessibility audits. Ordered headings convey semantic structure for easier navigation.","md","i-heroicons-wrench-screwdriver",[6000,6001,6002,6003,6004],"heading-order","heading levels","h1 h2 h3","semantic structure","accessibility",{"tags":6006},[6004,6007],"lighthouse",{"title":4137},null,"4 min",[6012,6015],{"path":6013,"title":6014},"/learn-lighthouse/accessibility#common-accessibility-issues","All Accessibility Issues",{"path":4086,"title":6016},"Accessibility Overview",{"title":4277,"description":5996},{"loc":4136,"lastmod":313},"learn-lighthouse/accessibility/9.heading-order","n06tGuUExBeiEjzy3B069oYPmIsKeWhiZEGXqmPSRXs",[6022,6025],{"title":4134,"path":4133,"stem":6023,"description":6024,"children":-1,"_path":4133},"learn-lighthouse/accessibility/8.frame-title","Learn how to fix frame and iframe title issues in Lighthouse accessibility audits",{"title":4169,"path":4168,"stem":6026,"description":6027,"children":-1,"_path":4168},"learn-lighthouse/best-practices/0.index","Master Lighthouse Best Practices audits. Learn what they measure, why they matter for security and UX, and how to pass every audit.",["Reactive",6029],{"$scolor-mode":6030,"$snuxt-seo-utils:routeRules":6032,"$stoasts":6033,"$snuxt-seo:breadcrumb:breadcrumb":6034,"$ssite-config":6041},{"preference":6031,"value":6031,"unknown":4455,"forced":3855},"system",{"head":-1,"seoMeta":-1},[],[6035,6039,6040],{"to":6036,"icon":6037,"label":6038,"ariaLabel":6038,"current":3855},"/learn-lighthouse","i-heroicons-academic-cap","Learn Google Lighthouse",{"to":4086,"label":4081,"ariaLabel":4081,"current":3855},{"to":4086,"label":4087,"ariaLabel":4087,"current":3855},{"_priority":6042,"description":6045,"env":6046,"name":6047,"titleSeparator":6048,"url":6049},{"env":6043,"url":6044,"name":6044,"description":6044,"titleSeparator":6044},-15,-3,"Google Lighthouse for your entire site.","production","Unlighthouse","·","https://unlighthouse.dev",["Set"],["ShallowReactive",6052],{"stats":-1,"search":-1,"navigation":-1,"learn-nav":-1,"learn-/learn-lighthouse/accessibility/heading-order":-1,"learn-/learn-lighthouse/accessibility/heading-order-surround":-1}]