Skip to content

Preserve datatype palettes and scope accessibility styling to high contrast - #114

Closed
jonaraphael wants to merge 7 commits into
codex/fix-column-sizingfrom
codex/fix-high-contrast
Closed

jonaraphael wants to merge 7 commits into
codex/fix-column-sizingfrom
codex/fix-high-contrast

Conversation

@jonaraphael

@jonaraphael jonaraphael commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

Dark High Contrast was classified as a light theme, so CSV used its light datatype palette on a dark background. This change classifies it correctly while preserving the user's selected default, cool, or warm datatype palette. Both high-contrast variants continue to honor csv.columnColorMode: datatype colors remain the default, and theme foreground remains an explicit local choice. No settings or commands are added.

The accessibility stylesheet applies only to high-contrast body classes. It adds theme-aware borders, menus, Find/Replace controls and selection/find outlines without forcing cell foregrounds or covering datatype colors with selection fills. Ordinary light/dark colors retain their previous values. Inherited color variables allow theme transitions without replacing the webview, cell DOM, draft, focus or caret. The palette calculation itself is unchanged.

Addresses #92.

Validation:

  • Node 20.20.0: npm run compile, npm test — all 173 tests pass; npm run lint — 0 errors, 87 existing warnings; git diff --check passes.
  • Actual provider regressions cover CSV/TSV, all three palettes and both modes, all four theme kinds, headers, body/append cells, serialized/on-demand chunks and metadata/header-off rendering. Scope tests enforce HC-only accessibility rules and unchanged ordinary chrome values.
  • The shipped webview script is exercised with a live multiline draft: theme classes change while DOM identity, focus, caret, source text and version remain unchanged.
  • Chromium fixture QA compares actual generated provider HTML and shipped assets with immutable parent Make multiline and manual column sizing predictable #112. Ordinary text/background/border/menu/Find colors match the previous implementation across all palettes and both modes. The two-pane fixture's native focus-ring differences are separate from authored colors.
  • With the packaged stylesheet confirmed loaded, Chromium checks preserve every data-cell foreground across all three palettes in both HC variants; explicit theme mode uses the supplied foreground. HC selection/find states retain those colors and use editor-background fills with visible outlines.
  • In-editor theme transitions preserve a live multiline draft, DOM/widget identity, caret position 5 and source/version 1 across all four classes. A deferred edit remains pending across transitions, then applies exactly once when released; disk text remains unchanged.
  • Browser QA uses simulated VS Code theme variables and host callbacks; it does not claim native VS Code high-contrast paint or a contrast guarantee for every customized theme.

Synthetic high-contrast palette comparison

Independent orchestrator review and integration: inspected the final delta and both renderer conflict resolutions. The combined candidate 8b2860e passes compile, all 529 tests, lint (0 errors; 86 existing warnings) and diff checks. Chromium checks cover frozen selection and actual Find matches, all four theme transitions, numeric/date/boolean filtered source identities, and live/deferred multiline edits. Frozen offsets, filter-bar inset, serial/header actions, popup geometry, arrow scrolling and existing draft guards remain intact.

Exact-head GitHub CI succeeds and this PR is mergeable against its current stacked base. The narrowed palette policy is cleared for human review; no merge or release has been performed.

@jonaraphael
jonaraphael force-pushed the codex/fix-high-contrast branch from 351b378 to 1a3d74d Compare October 17, 2026 04:19
@jonaraphael
jonaraphael changed the base branch from main to codex/fix-column-sizing October 17, 2026 04:19
@jonaraphael
jonaraphael marked this pull request as ready for review October 17, 2026 04:26
@jonaraphael
jonaraphael marked this pull request as draft October 17, 2026 05:02
@jonaraphael jonaraphael changed the title Restore readable cells and controls in high-contrast themes Preserve datatype palettes and scope accessibility styling to high contrast Oct 17, 2026
@jonaraphael
jonaraphael marked this pull request as ready for review October 17, 2026 14:01
@jonaraphael
jonaraphael deleted the codex/fix-high-contrast branch October 17, 2026 21:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant