Skip to content

Complete accessibility, review-history, and Markdown compatibility readiness #15

Open

Description

@lastobelus

Outcome

Sustained use has accessible core workflows, user-controlled review history, and explicit Markdown compatibility boundaries.

Acceptance criteria

  • The full review loop passes keyboard-only and VoiceOver testing.
  • Focus order, names/states, live announcements, contrast, text zoom, reduced motion, and minimum-window behavior are verified.
  • Users can delete reviews and orphaned attachments or use an equally safe documented in-app path.
  • Storage/history behavior is understandable before deletion.
  • Supported Markdown and intentionally opaque or unsupported constructs are published as a compatibility table.
  • Automated coverage protects the compatibility boundaries where practical.

Activity

  1. added this to the Broad announcement milestone on Aug 3, 2026
  2. self-assigned this
    on Aug 3, 2026
  3. added
    enhancementNew feature or request
    accessibilityAccessibility improvements and verification
    launchWork required for an announcement or release gate
    on Aug 3, 2026
  4. moved this from Todo to In Progress in Markover Announcement Readinesson Aug 8, 2026
  5. lastobelus commented on Aug 8, 2026

    @lastobelus
    OwnerAuthor
    \n### Superseded work intent
    phase: blocked
    summary: "PR 1 review deletion and attachment cleanup merged through PR #106; PR 2 Markdown compatibility and PR 3 accessibility await fresh work threads"
    touch-points:
      - "PR 1 merged: review deletion and orphaned-attachment cleanup across the durable store, guarded main/preload/renderer boundary, review navigation UI, and focused tests"
      - "PR 1 deletion contract: move the complete self-contained review directory, including referenced and orphaned attachments, to macOS Trash; do not add an internal Recently Deleted store"
      - "PR 1 state contract: editing and pending-agent reviews are deletable after per-review saves drain; pending-agent uses a stronger warning; an explicit exhaustive state policy requires future review states to define deletion eligibility and confirmation behavior"
      - "PR 1 confirmation contract: cancelling review deletion occurs before renderer snapshots or autosave; after mutations pause, revalidate the review state and repeat confirmation if the warning policy changed"
      - "PR 1 command surfaces: an extensible native Review application menu for the active review plus shared tab/document-list context menus expose Move Review to Trash"
      - "PR 1 destructive UI boundary: the main process owns every destructive confirmation and resolves all filesystem paths; renderer surfaces pass only validated review and attachment IDs or opaque operation tokens, never paths, and all entry points share one controller"
      - "PR 1 orphan contract: after an intentional attachment removal is durably saved, move its file to Trash; Clean Up Unused Attachments reports count and size and never sweeps invalid or unreadable reviews"
      - "PR 1 final guarded IPC: review:context-menu:open invokes with one exact {reviewId}; attachment:remove invokes with one exact {reviewId, attachmentId, tree} and returns the echoed IDs plus outcome cancelled or trashed; review:trashed emits one exact {reviewId} only after success; native Review-menu deletion and cleanup have no renderer handler"
      - "PR 1 IPC base: issue #6 PR #103 merged at 46e17d9; all new renderer-to-main paths extend its sender/frame/URL guard and runtime schema registry through guarded registration APIs"
      - "PR 1 validation: npm run ci:local passed with 434 tests and the Electron smoke; configured GitHub CI passed; Codex reported no major issues on final head ffd2f63; all review threads were resolved"
      - "issue #59 retains ownership of Copy Review Link and can extend the shared context menus without issue #15 absorbing that feature"
      - "issue #107 owns changing Open Markdown to create a managed review while preserving the original file; issue #15 retains deletion and cleanup semantics"
      - "PR 2: publish and test a Markover behavior-level Markdown matrix classifying constructs as structured, opaque single blocks, preserved inline content, or visible uninterpreted text; do not claim blanket CommonMark compliance"
      - "PR 2 is contract-first: preserve current intentional behavior and fix only data loss, incorrect source ranges, or contradictions with the matrix; defer new structured extension syntax to separate future work"
      - "PR 3: own accessibility remediation, automated protections, and a packaged development-profile keyboard/VoiceOver pass covering focus, names/states, announcements, contrast, text zoom, reduced motion, and minimum-window behavior"
      - "PR 3 baseline: apply WCAG 2.2 AA criteria where relevant to the HTML interface plus Apple macOS keyboard, VoiceOver, Reduce Motion, and control conventions; record exact criteria and exceptions without claiming certification or third-party audit"
      - "issue #15 remains open after PR 3 until issue #91 completes authoritative clean-profile keyboard and VoiceOver acceptance on the final broad candidate"
      - "do not edit issue #9 active public documentation paths without coordination or handoff"
      - "do not absorb issue #63 native About-panel implementation or its focused accessibility verification"
    blocked-by:
      - "public storage/deletion and compatibility documentation edits wait for issue #9 completion or explicit handoff"
      - "final issue closure waits for #91 clean-profile accessibility acceptance"
    may-block:
      - "#59 can build Copy Review Link on the merged shared context-menu plumbing"
      - "#91 consumes the completed workflow and remediation for final clean-profile acceptance"
      - "#18"
    pull-request: "https://github.com/lastobelus/markover/pull/106"
    merge-commit: "3f0022f3ebed53d4af889cf509a8cc3ce34f8728"
    branch: "none (PR 1 merged; remaining slices unclaimed)"
    base: "3f0022f3ebed53d4af889cf509a8cc3ce34f8728"
    thread: "start-issue-15-20260807-ce081a73"
    authorized: true

    IPC handoff: #6 (comment)

    PR 1 was authorized on 2026-08-07, resumed after PR #103 merged, and accepted through manual validation before PR #106 merged on 2026-08-09. Future PR 2 and PR 3 runs must resume or hand off this canonical intent before implementation.

  6. lastobelus commented on Aug 12, 2026

    @lastobelus
    OwnerAuthor

    Superseded work intent

    phase: blocked
    summary: "PR 2 merged through PR #140 at main commit 0a16d3b; PR 3 accessibility work awaits a fresh thread, and issue #91 remains final acceptance"
    touch-points:
      - "PR 1 merged through PR #106: review deletion and orphaned-attachment cleanup are complete"
      - "PR 2 merged through PR #140: the 13-row behavior-level Markdown compatibility matrix and one-to-one executable fixtures are published"
      - "document-level exact source, normalized block raw text, source-only reference definitions, literal reference uses, and the inline-image source boundary are explicitly documented and tested"
      - "inline image sources cannot fall through to unrelated managed attachments; only embedded data: sources can open"
      - "user privacy, user limitations, developer security, DECISIONS.md, and examples/block-types.md agree with tested runtime behavior"
      - "PR #142 from current main was integrated before the final PR #140 gate; its review-link context-menu behavior is preserved"
      - "PR 3 accessibility implementation and automated coverage must start from current main in another fresh thread"
      - "do not begin PR 3 in this completed PR 2 thread"
      - "do not close issue #15 until PR 3 is complete and issue #91 records authoritative clean-profile keyboard and VoiceOver acceptance"
    blocked-by:
      - "fresh thread for PR 3 accessibility work"
      - "#91 final clean-profile keyboard and VoiceOver acceptance"
    may-block:
      - "#18"
    pull-request: "https://github.com/lastobelus/markover/pull/140"
    reviewed-head: "527a018112c47610166d4c3ac42cecebaff4edd1"
    merged-main: "0a16d3bf6ff4015399383f683b049d087097b20d"
    branch: "t3code/start-issue-15"
    thread: "start-issue-15-8e1b35111da942b0bba15041e89cf1f7"
    authorized: true

    Handoff confirmed by the user on 2026-08-12. PR #140 is merged. Start PR 3 only in a fresh thread; issue #91 remains the final acceptance dependency before issue #15 can close.

    Superseded on 2026-08-12 after the user confirmed the PR2 thread had finished and explicitly handed issue #15 slice 3 to a fresh thread.

  7. lastobelus commented on Aug 12, 2026

    @lastobelus
    OwnerAuthor

    Work intent

    phase: blocked
    summary: "PR3 accessibility remediation and deterministic sustained-workflow coverage merged through PR #143; issue #15 awaits #91 final acceptance"
    touch-points:
      - "PR3 merged: https://github.com/lastobelus/markover/pull/143"
      - "squash merge commit: f4be27ec8b2ce05f603a5351072c2b425e6256e6"
      - "core open → navigate → annotate → attach → retrieve/edit → history/delete workflow retains standard Tab traversal, explicit F6 pane navigation, keyboard-operable resizers, tab/menu navigation, useful focus return, and focus preservation across asynchronous rerenders"
      - "tree, attachment, review-list, dialog, tab, resizer, and overflow controls expose accessible names, roles, relationships, states, values, current-review state, and keyboard shortcuts"
      - "polite live announcements cover meaningful selection, activation, status, source-edit, attachment, deletion, and bounded-feedback transitions without repeated typing announcements"
      - "attachment preview and review context use native dialog behavior; destructive and rerendering operations restore useful focus targets by stable review identity where applicable"
      - "muted text meets 4.5:1 AA contrast on the darkest light surface; reduced-motion handling, text zoom, zoom-aware minimum sizing, full work-area fitting, and display-transition behavior are protected"
      - "Help includes exact label Markdown Support and Limitations between User Guide and Privacy and Local Data at https://lastobelus.github.io/markover/limitations/"
      - "the Help destination uses PUBLIC_LINKS and the existing bounded native public-link opener; README/public-site destination parity remains enforced"
      - "final focused menu/accessibility/settings validation after the display-transition correction passed 36/36; immediately preceding combined accessibility/menu/public-link/settings/inbox/brand/background-focus validation passed 62/62"
      - "final npm run ci:local on current main passed: build, lint, typecheck, third-party notices, 653/653 tests, and Electron smoke"
      - "GitHub Verify (Node 24) passed on reviewed head 9a05fdc521c78ac96ff6a1a9815152c06890cb1b"
      - "Codex posted an explicit no-major-issues result on that exact head; all 20 review threads are resolved"
      - "Markover post-merge done completed successfully; zero matching local reviews required transition"
      - "no interactive native QA or clean-profile keyboard/VoiceOver acceptance was performed; #91 remains authoritative for that final pass"
      - "PR1 remains merged through #106 and PR2 remains merged through #140; neither slice is reopened"
      - "PR3 did not absorb #63 About-panel work, unrelated redesign, compatibility-matrix behavior, or review-history behavior"
    blocked-by:
      - "#91 final clean-profile keyboard and VoiceOver acceptance"
    may-block:
      - "#18 broad-announcement operations"
    pull-request: "https://github.com/lastobelus/markover/pull/143"
    reviewed-head: "9a05fdc521c78ac96ff6a1a9815152c06890cb1b"
    merge-commit: "f4be27ec8b2ce05f603a5351072c2b425e6256e6"
    branch: "t3code/accessibility-help-menu"
    base: "a0358815816a07ed34cd8c2f8ee3e846ac0c47b1"
    thread: "start-issue-15-pr3-20260812-b192cf04da0841d59348a97ed2b93863"
    authorized: true

    Issue #15 remains open and In Progress. Issue #91 is the final acceptance dependency and must complete before #15 can close.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

accessibilityAccessibility improvements and verificationenhancementNew feature or requestlaunchWork required for an announcement or release gate

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions