Repository navigation
Conversation
The proof scripts still used html-proofer 3.x flags, which the pinned 5.0.0 gem rejects at startup, so the link check could not run at all and 404s accumulated unchecked. Update both scripts to the current CLI syntax and bump html-proofer to 5.2.2, where /regex/ --ignore-files patterns parse as real regular expressions again and the 2017-2021 archive posts are excluded as intended. With the proofer running again, fix everything it found: - Point the developers page Contributing nav link at the real #contributing-to-the-codebase heading ID. - Stop component guidance heading IDs growing a trailing hyphen when a page sets no type, and point the default banner usability text at its own #using-the-default-banner section. - Update moved GSA pages: TTS (now tts.gsa.gov), accessibility aids (now in the accessibility statement), plain language (now a Digital.gov guide), and small business events and contacts. - Point the service ecosystem design reference at the author's republication of the Touchpoint article. - Cite the withdrawn SAMHSA trauma publication (SMA14-4884) via its Internet Archive snapshot. - Remove the U.S. Data Federation showcase entry; the project ended and only a historical record page remains. npm run proof now finishes with no failures; rspec and lint pass. Fixes uswds#3187
annepetersen
approved these changes
Aug 10, 2026
annepetersen
left a comment
Contributor
There was a problem hiding this comment.
Content changes are ✅ but I'd like @ethangardner or @jonathanbobel to check the rest before merging.
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.
Summary
Fixed every broken link flagged by HTML Proofer and repaired the
npm run proofcommand itself, so the link check can run again and finishes with zero failures.Related issue
Closes #3187
Problem statement
The site's link checker hasn't been able to start for a while: the
proofscripts inpackage.jsonstill use html-proofer 3.x flag syntax (--enforce-https=false,--only_4xx), which the pinned html-proofer 5.0.0 gem rejects before checking a single page. With the checker offline, links that moved or disappeared piled up unnoticed — exactly the situation this issue predicted. Running a corrected check today surfaces 24 failures: 3 in-page anchors that lead nowhere and 21 hits on external pages that moved or were taken down.Solution
Two parts — make the checker work, then fix what it finds:
Restore the checker. Updated both
proofscripts to html-proofer 5 syntax (--no-enforce-https,--allow-missing-href,--only-4xx) and bumped the gem from 5.0.0 to 5.2.2. The version bump matters beyond the flags: in 5.0.0 the/regex/patterns passed to--ignore-filesare silently treated as literal strings, so the intended exclusion of 2017–2021 archive posts never applied. 5.2.2 parses them as real regular expressions again, which keeps old blog posts out of the scan as the script always intended.Fix the 24 failures. All in-page anchor bugs are fixed at their source, and every dead external link now points to a live, verified destination (details below).
Major changes
In-page anchors
#contributing-to-the-code-base, but the heading's real ID is#contributing-to-the-codebase. Fixed the nav link.typevalue rendered their "Using the…" heading ID with a stray hyphen at the end (for example#using-the-default-banner-). The template now only appends the type when one exists. This cleans up the malformed IDs on four variant pages; nothing linked to the old malformed IDs.#using-the-banner-component, an anchor that only exists on the main Banner page. It now points to the matching section on its own page,#using-the-default-banner.Moved or removed external pages
Testing and review
npm run proof— HTML-Proofer finished successfully, 0 failures. (Before this change the command exits immediately with an option-parsing error; with only the flags corrected it reports the 24 failures listed above.)bundle exec rspec— 10 examples, 0 failures.npm run lint— passes.A good review pass: spot-check the replacement URLs above, and confirm you're comfortable with the three judgment calls — the archive.org citation, the kolmiot.com republication, and removing the Data Federation showcase entry.
Dependency updates