Files
maka/docs/computer-use-ui-coverage.md
T
agent-radar 7be535059e
Dependency audit / audit (push) Canceled after 0s
CI / plan (push) Canceled after 0s
Gitoxide helper admission / macos-latest (push) Canceled after 0s
Gitoxide helper admission / ubuntu-latest (push) Canceled after 0s
Gitoxide helper admission / windows-latest (push) Canceled after 0s
Runtime Host peer admission / quality (push) Canceled after 0s
Windows recovery / windows_recovery (push) Canceled after 0s
CI / heavy (push) Canceled after 0s
CI / test (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 19:05:14 +08:00

5.9 KiB

Computer Use Semantic UI Coverage

Status: maintained source and runtime inventory for Maka Desktop's Computer Use target, state, focus, action and effect semantics.

This document defines what "covered" means for Computer Use operability. A page is not complete merely because it renders or because every button has a non-empty name. Critical surfaces must expose an unambiguous target, state, keyboard/focus behavior, and an observable effect.

This gate is not a claim of complete WCAG conformance or complete assistive technology behavior. In particular, live-region and announcement completeness are not measured here; they require separate accessibility testing.

Automated surface inventory

Surface Runtime states Semantic actions and effects
Settings Every current top-level navigation entry is enumerated from the running UI; provider list/detail/catalog/add, subagent editor, memory populated, permission diagnostics, import empty/ready, usage variants, Daily Review selector and narrow states are in Storybook Navigation exposes aria-current; focused nested stories exercise dialogs, disclosures, selectors and editors
Extensions Skills empty/installed/bundled/update/disabled/narrow/inspector; MCP setup/marketplace/configured/inspector/editor/failure/narrow Page selection, inspector/editor opening and actionable-node identity
Scheduled work Empty/configured/long/narrow/task inspector; Daily Review loading/error/refreshing/report Task selection, dialog focus, selector state and report actions
Conversation shell New task, settled conversation, streaming, permission wait, native conversation, modes, context and inline completion Composer submit effect, unique per-task and per-turn actions, current regions and workbar selection
Workbar Launcher plus side chat, changes, active terminal, browser chrome, files, tasks and trace states Selected tabs, terminal input reaches the PTY bridge, browser navigation reaches the browser bridge
Dialogs and overlays Rename, scheduled-task form, Mermaid fullscreen, side-chat close, onboarding QR, WeChat QR, Runtime Host SSH and remote directory chooser Dialog naming/focus, rename callback, close confirmation, SSH input, directory navigation and registration
Generated content Markdown, tool output, attachments, Mermaid and HTML artifact iframe Scoped copy actions, fullscreen dialog and sandboxed iframe semantics
Embedded browser page Live WebContentsView on a loopback fixture Separate observe -> semantic ref -> fill/click -> business-effect smoke through the production browser bridge

The Storybook catalog is exhaustive for its source-defined entries and the smoke runner carries a required Computer Use story manifest for critical runtime boundaries. The Electron accessibility test dynamically enumerates settings navigation, then covers modules, global overlays, conversations and all workbar entry points.

AX completion gates

Every measured final state fails on:

  • an AX tree with zero exposed nodes, including trees containing only ignored Chromium source records;
  • an actionable node without a name;
  • two actionable nodes with the same role, name and semantic scope;
  • more than one primary main landmark;
  • a dialog without a name;
  • a checkbox, radio, switch, menu checkbox/radio, option, tab, combobox, slider or spinbutton without its required state/value;
  • focus inside an inert or aria-hidden surface;
  • a visible modal dialog that does not own focus.

Critical stories and Electron journeys additionally assert action-specific effects. Overlay journeys wait for the specifically named prior dialog to close before opening and auditing the next one. Transport success or a generic dialog match alone is not accepted.

Repeated message and answer actions use a bounded excerpt of visible text plus a stable human-readable timestamp. Opaque storage IDs remain machine data and are not spoken as the user-facing differentiator.

Platform boundaries

  • Renderer and same-process iframe semantics are validated through Chromium's full AX tree.
  • Embedded browser content is a separate WebContentsView; it is validated through its production semantic snapshot/action bridge, not falsely claimed as part of the renderer tree.
  • xterm surfaces run with screenReaderMode and have active PTY and SSH input fixtures.
  • Third-party page markup, Chromium's PDF plugin, native file dialogs and operating-system permission dialogs remain owned by their respective platform/provider. Maka validates the controls it owns around those surfaces and fails closed when the external target is unavailable or ambiguous.
  • Native macOS AX and Windows UIA packaged-app spot checks remain release gates; Linux CI cannot substitute for those platform trees.

Performance contract

The product adds no accessibility dependency, production AX/DOM walker, global MutationObserver, timer, polling loop, OCR model or hidden duplicate agent UI. Semantic names and state are emitted by the existing React render. All full-tree walking, duplicate detection and inventory enforcement run only in tests and developer tooling. Existing lazy module, workbar and dialog loading remains unchanged.