Conversation
Every page shipped the 35-item concept list twice: once in the desktop sidebar and again inside a details drawer in the mobile header, with CSS hiding whichever one did not apply. Both copies were always in the DOM, so crawlers and screen readers saw two navigation landmarks both labelled "Concepts", and every page carried about 60 words of duplicate boilerplate. The sidebar is now the single home for the list. Below the 700px breakpoint it becomes an off-canvas drawer opened by a button in the mobile header, handled by a small nav.js module because the content security policy disallows inline scripts. The drawer closes on Escape, on a backdrop click, and when a link inside it is followed, and Escape returns focus to the button. The drawer and its backdrop sit at z-index 91 and 90. The site footer is z-index 50, so the earlier values left the footer painting over the overlay and swallowing backdrop clicks.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Every page shipped the 35-item concept list twice: once in the desktop sidebar and again inside a
<details>drawer in the mobile header, with CSS hiding whichever one did not apply at the current width. Both copies were always in the DOM, so crawlers and screen readers saw two navigation landmarks both labelled "Concepts", and each page carried about 60 words of duplicate boilerplate.What changed
The sidebar is now the single home for the list. Below the 700px breakpoint it becomes an off-canvas drawer opened by a button in the mobile header, backed by a new
src/nav.jsmodule. It is a module rather than an inline script because the content security policy setsscript-src 'self'with nounsafe-inline.The drawer closes on Escape, on a backdrop click, and when a link inside it is followed. Escape returns focus to the button, and
aria-expandedtracks the open state.The z-index detail
The drawer and its backdrop sit at 91 and 90.
.site-footerisz-index:50, so the first values I tried (30 and 29) left the footer painting over the overlay and swallowing backdrop clicks in the footer region. The new values stay below.skip-link(100) and the analytics consent banner (150), both of which should remain reachable over the drawer.Verification
npm testpasses, 73/73.aria-expandedtransitions, no console errors, no horizontal overflow.Note on scope
This was found while investigating a Search Console report of 33 unindexed pages. It is not the cause of that. Those pages are mostly uncrawled because the property is six days old, and removing the duplicate only moves page-to-page text similarity from 87% to 85%. This is worth having as a markup and accessibility fix, not as an indexing fix.