Skip to content

Make dashboard readable at maximum accessibility text - #161

Open
FZ2000 wants to merge 4 commits into
codex/dashboard-real-world-honestyfrom
codex/dashboard-accessible-layout
Open

Make dashboard readable at maximum accessibility text#161
FZ2000 wants to merge 4 commits into
codex/dashboard-real-world-honestyfrom
codex/dashboard-accessible-layout

Conversation

@FZ2000

@FZ2000 FZ2000 commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

Effect in one sentence

Makes the hardened Dashboard readable at very large and maximum accessibility text, including retained-error states, without changing its normal-size hierarchy or data contract.

Stack position

6 of 6: #153#155#157#159#160#161 (this accessibility follow-up).

This branch is based on current #160 head fbd6c69, not main. The stack is an alternative to standalone #152.

Central behavior

  • Dashboard-local semantic font roles read the injected DynamicTypeSize directly and apply explicit macOS scaling. This replaces the ineffective @ScaledMetric assumption found during native-host testing.
  • xLarge remains the last compact two-column/table state. At .xxLarge and above, the brief, signal rail, Recent Work, card headers, and usage history reflow before fixed geometry becomes unsafe.
  • Recent Work replaces fixed columns with complete vertical rows. Maximum-size usage history becomes a date/value list rather than a compressed chart; static facts are not exposed as controls.
  • Global refresh/list errors participate in the scroll document instead of overlaying and obscuring final rows at maximum text size.
  • Full-content snapshot configurations measure the intrinsic Dashboard before capture and fail if the requested canvas would clip it.
  • Normal-size views retain the compact two-column hierarchy and chart; their existing canonical references are byte-preserved against Make dashboard honest across real-world states #160.

Review order

  1. DashboardFontRole, DashboardFontModifier, and dashboardUsesAccessibilityLayout in DashboardPane.swift.
  2. Large-text branches for the brief, proof facts, signals, Recent Work, usage history, and in-flow error alert.
  3. Intrinsic measurement and clipping rejection in DashboardSnapshotHarness.swift.
  4. Boundary/native-host tests and the five new canonical references: xLarge, xxLarge, accessibility5 light/dark, and accessibility5 retained-error.

Verification at current head 70acf39

  • Full Python suite on the inherited final Python tree: 2,652 passed, 1 external Starlette deprecation warning.
  • swift test: 155 executed, 5 expected opt-in visual skips, 0 failures.
  • DashboardInteractionTests: 51 passed, including native-host font growth and the xLarge/xxLarge transition.
  • DashboardSnapshotHarnessTests: 10 passed, including full-content clipping rejection and maximum-text retained-error coverage.
  • ./Scripts/visual-snapshots verify: About, Dashboard, Menu, Usage, and Work all match the pinned canonical renderer.
  • All 13 Dashboard references match. The five new images were manually inspected; the largest retained-error artifact is 1920×5800 and shows every work and usage row without occlusion or excessive dead space.
  • swift build -c release: passed.
  • Effective diff against Make dashboard honest across real-world states #160: 11 Dashboard-only files; git diff --check is clean.
  • Two independent final code/scenario audits: GO, no remaining blocker.

Current-head GitHub CI: Python 3.11/3.12/3.13 and macOS app/snapshot jobs all passed.

Scope and validation boundary

This PR is intentionally Dashboard-local. Data truth, pagination, retained-error, and request-race behavior live in #160. Shared top-bar typography remains compact and fully visible at the supported 960-point minimum, but app-wide typography migration is not part of this change.

Canonical snapshots and native-host measurements prove deterministic geometry and font growth; they do not substitute for a live manual VoiceOver traversal or keyboard-focus smoke. No PR in this stack is merged by this change.

FZ2000 added 2 commits August 28, 2026 19:40
…ty' into codex/dashboard-accessible-layout

# Conflicts:
#	apps/agentacct/Sources/agentacct/DashboardPane.swift
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