Skip to content

Complete nested-webview interaction, find, focus, and accessibility handoff #268

Description

@wieslawsoltes

Current cumulative interaction checkpoint — 19 September 2026

Main is 2cd3913fceff7a0c9660aca05ab232fa237bda1d. The no-change audit confirmed focused find/Selection, focus/input, clipboard/permissions, links/downloads, reload/history, inbound/outbound drag and nested semantic snapshot/action/live/delta providers are merged. No non-duplicative bounded source gap remained.

#268 owns cumulative unchanged Markdown/notebook/custom-editor/extension/Chat/Simple Browser interaction, accessibility, lifecycle, performance and package acceptance. No implementation worktree remains. Only source diff checks ran; all current-package product evidence remains open.

Parent epic: #264. Top-level release epic: #227.

Proven gap

The unchanged webview prelude forwards focus/blur, key, wheel, scroll, context-menu, drag/drop, click/auxclick, link, message, and clipboard commands through the nested frame. Its enabled find widget calls contentWindow.getSelection() and non-standard contentWindow.find(...). WebScene exposes a limited Selection surface but no Window.find implementation was found. Markdown enables enableFindWidget; all webviews share the remaining event and command bridge.

Existing owners remain authoritative: WebScene #81 for MessagePort; #86 for clipboard API/data transfer; #100 for native input observability; #262 for release-wide accessibility; AppScene#27 for host input/focus, #30 for native accessibility, and #32 for downloads/clipboard/drag. This issue owns the webview-shaped integration and missing reusable DOM behavior, without reopening those completed or broader scopes.

Acceptance

Proposed PR stack

  1. Selection/Window.find API and browser oracle;
  2. nested-frame event/focus/link/download/reload integration;
  3. accessibility semantics and platform handoff with AppScene#30;
  4. bounded interaction/lifecycle and unchanged product acceptance.

Current status — 19 September 2026

Merged focused children:

All listed child issues are attached and closed. Current dependent implementation is AppScene #30 native semantic peers. AppScene #32 remains authoritative for platform drag translation and filesystem grants. Remaining WebScene/AppScene work is outbound desktop drag initiation, any proven semantic action/edit/live-region follow-ups, and cumulative unchanged Code OSS interaction/accessibility/package acceptance. Reload/history remains coordinated with #267.

Only git diff --check ran for the latest implementation. Authored focused tests, 10,000-over performance, lifecycle/memory, assistive-technology, visual, package, and computer-use evidence were not executed.

Focused remaining child #548 owns bounded outbound desktop drag requests. Its platform consumer is SceneTech/AppScene#187; inbound platform translation is SceneTech/AppScene#186.

Accessibility action prerequisite #545/#553 is now merged as b3869360; #546 live regions is active.

Outbound desktop drag child #548/#561 is merged as 79ed2c84: bounded immutable request leases, pointer-threshold admission, writable dragstart DataTransfer, text/URI/selection/image payloads, operation/drag-image metadata, completion/dragend, and generation/subtree/navigation retirement. AppScene #187 macOS consumer is now active.

Current implementation checkpoint — 19 September 2026

Merged nested-document interaction slices cover pointer, keyboard/focus, context menu, link/default navigation, bounded downloads, inbound drag routing, and bounded outbound drag requests through WebScene 2b64b08. AppScene consumers now include macOS/Windows/Linux inbound adapters, macOS outbound #194/#195, and Windows outbound #196/#197 through f3fd2d2e.

Linux outbound child #202/#203 is merged; AppScene #187 retains the real Wayland/X11 display-host and package integration. AppScene retains native paths, objects, grants, platform sessions and completion authority; WebScene publishes bounded generation-stamped data only.

Remaining #268 work is cumulative unchanged Markdown/notebook/custom-editor/extension/Chat/Simple Browser interaction, selection/find/clipboard/accessibility, navigation/reload, teardown, lifecycle and package acceptance. Only source diff checks ran in the current wave.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    vscode-oss/plannedPlanned for the AppScene/WebScene VS Code OSS integration

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions