feat: text zoom shortcuts and high-contrast resize lines #222

Closed
duan_j wants to merge 1 commits from gui-for-people-with-worse-eyesight into main
Owner

What changed:

  • Ctrl+plus / Ctrl+minus / Ctrl+0 (also in the View menu) scale all UI text: the QSS FONT_* ladder and the application default font together, clamped to 0.8-1.6x and persisted in QSettings.
  • Dock/splitter resize gutters keep a 5px grab area but draw only a 2px line with a 1px shadow instead of a full-width fill (SEPARATOR_REGION is the knob).
  • Contrast fixes, measured as WCAG ratios: separators were 1.0-1.2:1 against every theme background, now >=3.25:1 (dark theme gold at 70 percent); scrollbar handle 1.17:1 -> 3.38:1; unselected tab text on the sky gradient 2.07:1 -> 4.71:1 (new TAB_IDLE_TEXT).

Why: operators with worse eyesight could not enlarge the fixed 11-14px text and could not find the resize lines, scrollbar handles, or unselected tabs - all measured below the WCAG floors (4.5:1 for text, 3:1 for UI components). The touched elements now meet them. Verified by rendering the GUI in the RHEL9 container and by unit tests; typecheck and diff coverage gates green (90 percent).

Generated with Claude Code (https://claude.com/claude-code)

What changed: - Ctrl+plus / Ctrl+minus / Ctrl+0 (also in the View menu) scale all UI text: the QSS FONT_* ladder and the application default font together, clamped to 0.8-1.6x and persisted in QSettings. - Dock/splitter resize gutters keep a 5px grab area but draw only a 2px line with a 1px shadow instead of a full-width fill (SEPARATOR_REGION is the knob). - Contrast fixes, measured as WCAG ratios: separators were 1.0-1.2:1 against every theme background, now >=3.25:1 (dark theme gold at 70 percent); scrollbar handle 1.17:1 -> 3.38:1; unselected tab text on the sky gradient 2.07:1 -> 4.71:1 (new TAB_IDLE_TEXT). Why: operators with worse eyesight could not enlarge the fixed 11-14px text and could not find the resize lines, scrollbar handles, or unselected tabs - all measured below the WCAG floors (4.5:1 for text, 3:1 for UI components). The touched elements now meet them. Verified by rendering the GUI in the RHEL9 container and by unit tests; typecheck and diff coverage gates green (90 percent). Generated with Claude Code (https://claude.com/claude-code)

Coverage report (automated)

Total line + branch coverage: 51%
Diff coverage vs main: 90% (minimum 80%)

Full report: coverage artifact on this run.

Coverage report (automated) Total line + branch coverage: 51% Diff coverage vs main: 90% (minimum 80%) Full report: coverage artifact on this run.
Author
Owner

@leonarski_f Could you test this branch at beamline if you have time? =) thanks! if looks ok, feel free to merge

@leonarski_f Could you test this branch at beamline if you have time? =) thanks! if looks ok, feel free to merge
perl_d added 1 commit 2026-09-14 09:50:19 +02:00
feat: text zoom shortcuts and high-contrast resize lines
CI / lint (push) Skipped
CI / test (3.12) (push) Skipped
CI / test (3.13) (push) Skipped
CI / test-with-beamline-plugins (pxi_bec) (push) Skipped
CI / test-with-beamline-plugins (pxii_bec) (push) Skipped
CI / test-with-beamline-plugins (pxiii_bec) (push) Skipped
CI / lint (pull_request) Successful in 45s
CI / test (3.12) (pull_request) Successful in 1m12s
CI / test (3.13) (pull_request) Successful in 1m16s
CI / test (3.14) (pull_request) Successful in 1m16s
CI / test-with-beamline-plugins (pxi_bec) (pull_request) Successful in 1m25s
CI / test-with-beamline-plugins (pxii_bec) (pull_request) Successful in 1m24s
CI / test-with-beamline-plugins (pxiii_bec) (pull_request) Successful in 1m29s
CI / test-with-coverage (pull_request) Successful in 1m51s
CI / coverage-analysis (pull_request) Successful in 4s
816e166caa
- Ctrl+plus / Ctrl+minus / Ctrl+0 (and View menu entries) scale the QSS
  FONT_* ladder and the application default font together; the scale is
  clamped to 0.8-1.6 and persisted in QSettings appearance/font_scale.
- Resize gutters keep a 5px hover/drag region but paint only a 2px line
  with a 1px shadow (hard-stop gradients per orientation).
- WCAG contrast fixes: separators were 1.0-1.2:1 against every theme
  background, now >=3.25:1 (dark theme gold @70%); scrollbar handle
  1.17:1 -> 3.38:1; unselected tab text on the sky gradient 2.07:1 ->
  4.71:1 via TAB_IDLE_TEXT.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
perl_d force-pushed gui-for-people-with-worse-eyesight from bd74ac47bc to 816e166caa 2026-09-14 09:50:19 +02:00 Compare
duan_j closed this pull request 2026-09-14 10:33:45 +02:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.