[PR #3824] [CLOSED] fix(browser): keep incomplete accessibility comparisons unknown #5927

Closed
opened 2026-10-31 01:10:30 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/3824
Author: @maxazure
Created: 10/15/2026
Status: ❌ Closed

Base: main ← Head: fix/accessibility-capture-comparison-3385


📝 Commits (1)

  • ace1315 fix(browser): keep incomplete accessibility comparisons unknown

📊 Changes

2 files changed (+190 additions, -16 deletions)

View changed files

📝 src/domain/webCaptureDiff.ts (+31 -16)
➕ tests/boundary/cli/accessibilityCaptureComparison.test.ts (+159 -0)

📄 Description

Summary

Fixes #3385. An omitted accessibility node could make an incomplete capture look like a real webpage change.

Problem and expected behavior

A truncated tree changed the aggregate fingerprint, and the generic comparison kept that as a modification even though coverage was incomplete. The accessibility dimension should remain unknown until the structural trees are comparable. Independently supported changes in other dimensions must remain visible.

Change and scope

Check structural coverage before fingerprinting the tree. Truncated, unavailable, attach-limited and count-mismatched structures stay unknown. Preserve non-text semantic comparisons when the producer explicitly records only unapproved text; other or unexplained policy filtering still blocks structural comparison. Remove the obsolete incomplete-node count projection. Generic and network comparison behavior is unchanged.

Contract and boundary impact

  • Owner: accessibility comparability in the shared domain comparison used by CLI/MCP.
  • Scope decision: not applicable; correctness fix within existing offline comparison.
  • CLI/MCP schema, source captures, target authority and package/generated metadata: unchanged.
  • Reads captured data only; no added browser/network or target-execution behavior.

Evidence and regression coverage

On unchanged base 4692bb3, six public offline CLI regressions failed with a false accessibility_tree modification; five controls passed. Regression cases compare both directions and cover each structural coverage marker, matching retained counts, count mismatch, genuine complete role/name changes and a separately changed resource.
Review caught an initial regression involving the real producer's text-only policy marker. It was reproduced and corrected; tests now include that marker plus stacked truncation and other policy reasons.

Validation performed

Linux cloud, pinned Node 24.18.0 / npm 11.16.0:

  • Focused suites: 87/87 passed, including 13 public CLI cases in both directions and existing browser/network comparisons.
  • npm run check:fast, npm run check, npm run verify:test-discovery (1,302 files), and git diff --check: passed.
  • Normal local commit hooks passed. Published tree d7cfa2a414 exactly matches the tested local tree.
  • One intermediate concurrent typecheck exited 137; the bounded final rerun passed.
  • Independent source re-review found no remaining actionable issues; it did not independently execute tests.

Compatibility, safety, and release

No schema or migration change. The public CLI tests read synthetic offline capture files; existing browser tests use simulated CDP. No local real-browser or full-suite pass is claimed here. Text omissions alone do not erase known structural changes.

Current-head CI

CI run 38676323984 completed successfully on 2026-10-15 for ace1315: 15 successful checks, 16 skipped, no failures. Portable tests and CI required passed. Skipped jobs are not verification evidence.

Author readiness

Human owner: @maxazure

  • I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work.
  • I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps.
  • I declare this PR ready for initial maintainer review.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/3824 **Author:** [@maxazure](https://github.com/maxazure) **Created:** 10/15/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `fix/accessibility-capture-comparison-3385` --- ### 📝 Commits (1) - [`ace1315`](https://github.com/morluto/rea/commit/ace13153b10d2e86479266490051617fa50feb0b) fix(browser): keep incomplete accessibility comparisons unknown ### 📊 Changes **2 files changed** (+190 additions, -16 deletions) <details> <summary>View changed files</summary> 📝 `src/domain/webCaptureDiff.ts` (+31 -16) ➕ `tests/boundary/cli/accessibilityCaptureComparison.test.ts` (+159 -0) </details> ### 📄 Description ## Summary Fixes #3385. An omitted accessibility node could make an incomplete capture look like a real webpage change. ## Problem and expected behavior A truncated tree changed the aggregate fingerprint, and the generic comparison kept that as a modification even though coverage was incomplete. The accessibility dimension should remain unknown until the structural trees are comparable. Independently supported changes in other dimensions must remain visible. ## Change and scope Check structural coverage before fingerprinting the tree. Truncated, unavailable, attach-limited and count-mismatched structures stay unknown. Preserve non-text semantic comparisons when the producer explicitly records only unapproved text; other or unexplained policy filtering still blocks structural comparison. Remove the obsolete incomplete-node count projection. Generic and network comparison behavior is unchanged. ## Contract and boundary impact - Owner: accessibility comparability in the shared domain comparison used by CLI/MCP. - Scope decision: not applicable; correctness fix within existing offline comparison. - CLI/MCP schema, source captures, target authority and package/generated metadata: unchanged. - Reads captured data only; no added browser/network or target-execution behavior. ## Evidence and regression coverage On unchanged base 4692bb3, six public offline CLI regressions failed with a false accessibility_tree modification; five controls passed. Regression cases compare both directions and cover each structural coverage marker, matching retained counts, count mismatch, genuine complete role/name changes and a separately changed resource. Review caught an initial regression involving the real producer's text-only policy marker. It was reproduced and corrected; tests now include that marker plus stacked truncation and other policy reasons. ## Validation performed Linux cloud, pinned Node 24.18.0 / npm 11.16.0: - Focused suites: 87/87 passed, including 13 public CLI cases in both directions and existing browser/network comparisons. - `npm run check:fast`, `npm run check`, `npm run verify:test-discovery` (1,302 files), and `git diff --check`: passed. - Normal local commit hooks passed. Published tree d7cfa2a41460e94fc63cf911c0dad8ba51820b54 exactly matches the tested local tree. - One intermediate concurrent typecheck exited 137; the bounded final rerun passed. - Independent source re-review found no remaining actionable issues; it did not independently execute tests. ## Compatibility, safety, and release No schema or migration change. The public CLI tests read synthetic offline capture files; existing browser tests use simulated CDP. No local real-browser or full-suite pass is claimed here. Text omissions alone do not erase known structural changes. ## Current-head CI [CI run 38676323984](https://github.com/morluto/rea/actions/runs/38676323984) completed successfully on 2026-10-15 for ace1315: 15 successful checks, 16 skipped, no failures. Portable tests and CI required passed. Skipped jobs are not verification evidence. ## Author readiness Human owner: @maxazure - [x] I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work. - [x] I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps. - [x] I declare this PR ready for initial maintainer review. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 01:10:30 +00:00
Sign in to join this conversation.
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
morluto/rea#5927
No description provided.