| # 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. |