Skip to content

fix(a11y): stop docset grids skipping a heading level - #12594

Merged
mergify[bot] merged 2 commits into
mainfrom
devs/jd/agentic-readiness/stop-docset-grids-skipping-heading-level--e01f4c2b
Sep 3, 2026
Merged

fix(a11y): stop docset grids skipping a heading level#12594
mergify[bot] merged 2 commits into
mainfrom
devs/jd/agentic-readiness/stop-docset-grids-skipping-heading-level--e01f4c2b

Conversation

@jd

@jd jd commented Aug 28, 2026

Copy link
Copy Markdown
Member

Docset cards rendered their title as h4. Almost every grid sits directly
under an ##, so the outline jumped h2 to h4 — including on the homepage,
whose whole body is the "Products" grid. Screen readers and anything parsing
the document outline read that as a missing level.

Default the card heading to h3 and make it a prop, because one grid does
belong at h4: the "Components" grid in ci-insights.mdx is nested under an
### Components, where h3 would make the cards siblings of their own section
heading instead of children.

Depends-On: #12593

@mergify
mergify Bot had a problem deploying to Mergify Merge Protections August 28, 2026 13:26 Failure
@jd

jd commented Aug 28, 2026

Copy link
Copy Markdown
Member Author

This pull request is part of a Mergify stack:

# Pull Request Link
1 fix(seo): restore the homepage OpenGraph image #12593
2 fix(a11y): stop docset grids skipping a heading level #12594 👈
3 feat(docs): publish the API description where machines look for it #12595
4 feat(docs): serve Markdown to clients that ask for it #12596
5 feat(docs): tell agents what Mergify is for in llms.txt #12597
6 feat(seo): describe the site with schema.org JSON-LD #12598
7 feat(docs): point a lost agent somewhere useful from the 404 #12599

@mergify

mergify Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Merge Protections

🟢 All 7 merge protections satisfied — ready to merge.

Show 7 satisfied protections

🟢 ⛓️ Depends-On Requirements

Requirement based on the presence of Depends-On in the body of the pull request

🟢 🤖 Continuous Integration

  • all of:
    • check-success = build
    • check-success = lint
    • check-success = test
    • any of:
      • check-success = test-broken-links
      • label = ignore-broken-links
    • any of:
      • check-success=Cloudflare Pages
      • -head-repo-full-name~=^Mergifyio/

🟢 👀 Review Requirements

  • any of:
    • #approved-reviews-by >= 2
    • author = dependabot[bot]
    • author = renovate[bot]
    • all of:
      • author = mergify-ci-bot
      • -head ~= ^docs-agent/

🟢 Enforce conventional commit

Make sure that we follow https://www.conventionalcommits.org/en/v1.0.0/

  • title ~= ^(fix|feat|internal|docs|style|refactor|perf|test|build|ci|chore|revert|ui)(?:\(.+\))?!?:

🟢 🔎 Reviews

  • #changes-requested-reviews-by = 0
  • #review-requested = 0
  • #review-threads-unresolved = 0

🟢 📕 PR description

  • body ~= (?ms:.{48,})

🟢 🚦 Auto-queue

When all merge protections are satisfied, this pull request will be queued automatically.

@mergify
mergify Bot requested a review from a team August 28, 2026 13:30
@jd
jd marked this pull request as ready for review August 28, 2026 14:06
Copilot AI lite review requested due to automatic review settings August 28, 2026 14:07

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adjusts Docset card title markup to preserve a correct heading hierarchy in docset grids, improving the document outline for screen readers and other tooling.

Changes:

  • Default Docset card titles to h3 (instead of h4) and make the heading level configurable via a headingLevel prop.
  • Set headingLevel={4} for the CI Insights “Components” grid, since it is nested under an ### heading.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
src/content/docs/ci-insights.mdx Sets headingLevel={4} for the “Components” grid docset cards to avoid outline/structure issues under an ### heading.
src/components/DocsetGrid/Docset.astro Introduces configurable heading level for card titles and updates styling to support both h3 and h4.
Suppressed comments (2)

src/components/DocsetGrid/Docset.astro:33

  • The card title is rendered as an h3/h4, but it contains a
    wrapper for the icon. Headings should only contain phrasing content; a block-level
    inside a heading is invalid HTML and can confuse accessibility tooling. Use a (or other phrasing element) for the icon wrapper instead.

This issue also appears on line 34 of the same file.

		{productIconName && (
			<div class="docset-icon" data-product={productKey}>
				<ProductIcon name={productIconName} />
			</div>
		)}

src/components/DocsetGrid/Docset.astro:38

  • The h3/h4 heading contains a
    wrapper for the lucide/simple-icons icon. A
    inside a heading is invalid HTML (headings should contain phrasing content only). Use a wrapper (and keep the same class/data attributes) to preserve styling while keeping markup valid.
		{!productIconName && icon && (
			<div class="docset-icon" data-product={productKey}>
				<Icon name={icon} />
			</div>
		)}

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@jd
jd force-pushed the devs/jd/agentic-readiness/stop-docset-grids-skipping-heading-level--e01f4c2b branch from 4244760 to 76b1d20 Compare August 28, 2026 14:37
@jd

jd commented Aug 28, 2026

Copy link
Copy Markdown
Member Author

Revision history

# Type Changes Reason Date
1 initial 4244760 2026-08-28 14:37 UTC
2 rebase 4244760 → 76b1d20 (rebase only) 2026-08-28 14:37 UTC
3 rebase 76b1d20 → 0ac1500 (rebase only) 2026-08-28 15:09 UTC

@mergify
mergify Bot had a problem deploying to Mergify Merge Protections August 28, 2026 14:37 Failure
jd added 2 commits August 28, 2026 17:08
`getOgImageUrl` strips the leading and trailing slashes off the pathname to
build the image filename. For the homepage that pathname is `/`, so stripping
left an empty string and the lookup missed — every docs page had an OpenGraph
image and the homepage shipped `<meta property="og:image">` with no content.

The homepage's collection id is `index`, which is what `getStaticPaths` names
its image, so fall back to that when the slug comes out empty.

Covered by a regression test that fails against the old expression. The
generated-image set comes from the content collection and needs the Astro build
pipeline, so the test stubs it and exercises the derivation, which is the half
that was wrong.

Change-Id: Ifb9a23ea2caa20d28489a4f21363d85ed5e3342c
Docset cards rendered their title as `h4`. Almost every grid sits directly
under an `##`, so the outline jumped h2 to h4 — including on the homepage,
whose whole body is the "Products" grid. Screen readers and anything parsing
the document outline read that as a missing level.

Default the card heading to `h3` and make it a prop, because one grid does
belong at h4: the "Components" grid in `ci-insights.mdx` is nested under an
`### Components`, where h3 would make the cards siblings of their own section
heading instead of children.

Change-Id: Ie01f4c2b03f1f2b7f798ae89b056135a5b00800e
@jd
jd force-pushed the devs/jd/agentic-readiness/stop-docset-grids-skipping-heading-level--e01f4c2b branch from 76b1d20 to 0ac1500 Compare August 28, 2026 15:09
@mergify
mergify Bot deployed to Mergify Merge Protections August 28, 2026 15:09 Active
Base automatically changed from devs/jd/agentic-readiness/restore-homepage-opengraph-image--fb9a23ea to main September 1, 2026 08:55
@mergify
mergify Bot requested a review from a team September 1, 2026 12:35
@mergify

mergify Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Merge Queue Status

This pull request spent 3 minutes 45 seconds in the queue, including 2 minutes 59 seconds running CI.

Required conditions to merge

@mergify mergify Bot added the queued label Sep 3, 2026
@mergify
mergify Bot merged commit b543722 into main Sep 3, 2026
16 of 17 checks passed
@mergify
mergify Bot deleted the devs/jd/agentic-readiness/stop-docset-grids-skipping-heading-level--e01f4c2b branch September 3, 2026 07:47
@mergify mergify Bot removed the queued label Sep 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants