WIP: integrate accessibility, responsive containment, and Markdown privacy #9

Closed
clawlter wants to merge 6 commits from audit/accessibility-privacy into audit/core-wiki-correctness
Owner

Draft integration summary

This PR depends on the approved core branch audit/core-wiki-correctness at exact base bc578b55f0d54c17a06d64aa4f42e074daf9712f; merge that dependency first and preserve this PR base until then.

Integrated the approved signed outputs in required order:

  1. accessible navigation (bf6a0cd3b4ed7b909534083028f384d4361b6559)
  2. responsive content containment (c267326d3d429f72da16dc963cefd7f5aecd466a)
  3. remote-content trust (31c22412c71053c552a992201b65f95dff4d8b8a plus approved tip d0f5624192c02e651dce2bfbcc59ba6c837c5102)

Conflict resolution retains core heading/wikilink semantics, skip navigation and route metadata, persistent non-color link cues, input contrast, local table/pre overflow, responsive media containment, remote-image opt-in notices, safe external-link disclosure, and repository CSP/Referrer-Policy. One focused integration regression changes the responsive image fixture to a root-relative image so it tests containment without contradicting the privacy policy.

The follow-up accessibility fix at signed commit a254bf6e0f302bc758fea0e8b9c546ae93889a8d makes the article chrome the sole page-title <h1>. When the first Markdown heading is an H1 matching the article title, it is omitted before heading-ID and table-of-contents extraction; later H1 headings are demoted to H2. Content headings, duplicate-slug suffixes, and TOC targets remain intact.

Verification

  • npm ci
  • npm run lint
  • npm run typecheck
  • npm test -- --run (8 files, 33/33 tests)
  • LLM_WIKI_ROOT=/tmp/llm-wikipedia-nonexistent npm run build
  • live SSR probe with synthetic wiki content: one page-title H1, two repeated-section H2s with IDs repeated-section and repeated-section-1, and matching TOC links
  • keyboard assertions in tests/a11y-navigation.test.tsx
  • narrow-style probes and independently recalculated input-border contrast (4.515793:1 vs white; 4.283981:1 vs chrome)
  • git diff --check, signed-commit verification, and clean worktree

The browser automation backend could not access the local loopback server, so visual verification used the live SSR response plus component-level regression tests rather than a screenshot. CI is triggered for both repository workflows.

## Draft integration summary This PR depends on the approved core branch `audit/core-wiki-correctness` at exact base `bc578b55f0d54c17a06d64aa4f42e074daf9712f`; merge that dependency first and preserve this PR base until then. Integrated the approved signed outputs in required order: 1. accessible navigation (`bf6a0cd3b4ed7b909534083028f384d4361b6559`) 2. responsive content containment (`c267326d3d429f72da16dc963cefd7f5aecd466a`) 3. remote-content trust (`31c22412c71053c552a992201b65f95dff4d8b8a` plus approved tip `d0f5624192c02e651dce2bfbcc59ba6c837c5102`) Conflict resolution retains core heading/wikilink semantics, skip navigation and route metadata, persistent non-color link cues, input contrast, local table/pre overflow, responsive media containment, remote-image opt-in notices, safe external-link disclosure, and repository CSP/Referrer-Policy. One focused integration regression changes the responsive image fixture to a root-relative image so it tests containment without contradicting the privacy policy. The follow-up accessibility fix at signed commit `a254bf6e0f302bc758fea0e8b9c546ae93889a8d` makes the article chrome the sole page-title `<h1>`. When the first Markdown heading is an H1 matching the article title, it is omitted before heading-ID and table-of-contents extraction; later H1 headings are demoted to H2. Content headings, duplicate-slug suffixes, and TOC targets remain intact. ## Verification - `npm ci` - `npm run lint` - `npm run typecheck` - `npm test -- --run` (8 files, 33/33 tests) - `LLM_WIKI_ROOT=/tmp/llm-wikipedia-nonexistent npm run build` - live SSR probe with synthetic wiki content: one page-title H1, two repeated-section H2s with IDs `repeated-section` and `repeated-section-1`, and matching TOC links - keyboard assertions in `tests/a11y-navigation.test.tsx` - narrow-style probes and independently recalculated input-border contrast (`4.515793:1` vs white; `4.283981:1` vs chrome) - `git diff --check`, signed-commit verification, and clean worktree The browser automation backend could not access the local loopback server, so visual verification used the live SSR response plus component-level regression tests rather than a screenshot. CI is triggered for both repository workflows.
Improve accessibility and markdown privacy
All checks were successful
Build and publish container image / Build Docker image and publish package tags (pull_request) Successful in 8m4s
CI / Validate formatting, linting, types, tests, and build (pull_request) Successful in 2m14s
f89d63193b
clawlter force-pushed audit/accessibility-privacy from f89d63193b
All checks were successful
Build and publish container image / Build Docker image and publish package tags (pull_request) Successful in 8m4s
CI / Validate formatting, linting, types, tests, and build (pull_request) Successful in 2m14s
to 6095e00e6b
All checks were successful
Build and publish container image / Build Docker image and publish package tags (pull_request) Successful in 7m20s
CI / Validate formatting, linting, types, tests, and build (pull_request) Successful in 2m20s
2026-07-12 09:57:34 -04:00
Compare
clawlter changed title from Improve accessibility and markdown privacy to WIP: integrate accessibility, responsive containment, and Markdown privacy 2026-07-12 09:57:51 -04:00
fix: render one article page title
All checks were successful
Build and publish container image / Build Docker image and publish package tags (pull_request) Successful in 1m52s
CI / Validate formatting, linting, types, tests, and build (pull_request) Successful in 5m39s
a254bf6e0f
clawlter force-pushed audit/accessibility-privacy from a254bf6e0f
All checks were successful
Build and publish container image / Build Docker image and publish package tags (pull_request) Successful in 1m52s
CI / Validate formatting, linting, types, tests, and build (pull_request) Successful in 5m39s
to 8603a4a0a9
All checks were successful
Build and publish container image / Validate Docker build inputs (pull_request) Successful in 1m31s
Build and publish container image / Publish verified container image (pull_request) Has been skipped
CI / Validate formatting, linting, types, tests, and build (pull_request) Successful in 6m59s
2026-07-12 12:27:50 -04:00
Compare
Author
Owner

Closing without merge because the owner cancelled the code-security-audit-2026-07 campaign. This does not revert previously merged work.

Closing without merge because the owner cancelled the `code-security-audit-2026-07` campaign. This does not revert previously merged work.
clawlter closed this pull request 2026-07-14 08:16:10 -04:00
All checks were successful
Build and publish container image / Validate Docker build inputs (pull_request) Successful in 1m31s
Build and publish container image / Publish verified container image (pull_request) Has been skipped
CI / Validate formatting, linting, types, tests, and build (pull_request) Successful in 6m59s

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
clawlter/llm-wikipedia!9
No description provided.