Skip to content

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

Open
jd wants to merge 1 commit into
devs/jd/agentic-readiness/restore-homepage-opengraph-image--fb9a23eafrom
devs/jd/agentic-readiness/stop-docset-grids-skipping-heading-level--e01f4c2b
Open

fix(a11y): stop docset grids skipping a heading level#12594
jd wants to merge 1 commit into
devs/jd/agentic-readiness/restore-homepage-opengraph-image--fb9a23eafrom
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

🔴 3 of 7 protections blocking · waiting on 👀 reviews and ⛓️ dependency

Protection Waiting on
🔴 ⛓️ Depends-On Requirements ⛓️ dependency
🔴 👀 Review Requirements 👀 reviews
🔴 🔎 Reviews 👀 reviews
🟢 🤖 Continuous Integration
🟢 Enforce conventional commit
🟢 📕 PR description
🟢 🚦 Auto-queue

🔴 ⛓️ Depends-On Requirements

Waiting for

This rule is failing.

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

🔴 👀 Review Requirements

Waiting for

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

🔴 🔎 Reviews

Waiting for

  • #review-requested = 0
This rule is failing.
  • #review-requested = 0
  • #changes-requested-reviews-by = 0
  • #review-threads-unresolved = 0

Show 4 satisfied protections

🟢 🤖 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/

🟢 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)(?:\(.+\))?!?:

🟢 📕 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
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 had a problem deploying to Mergify Merge Protections August 28, 2026 15:09 Failure
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.

2 participants