Skip to content

Components: Complete Callout geometry, lifecycle, and assistive-technology qualification #4375

Open

Description

@JasonVMo

Goal

Close the remaining desktop Callout qualification gaps from native-core modernization. Part of #4274; coordinate #4343 and #4346 for accessibility coverage/state projection.

Observed baseline — 2026-10-15

On native-lib2 at b55d6c9a3, Windows 11 x64 / RNW 0.81.35 at 100% scale passes view/local-rect/local-point geometry within one logical unit, readiness/focus/reposition/close/rearm, outside-input and Escape dismissal, owner focus return, teardown without visible leaked popups, and flat Menu composition. macOS Fabric and Paper pass the updated authored native cases; local rect/point stories render but do not establish the full geometry matrix. Win32 REX 0.81.1 / react-native-win32 0.81.9 passes legacy outside-click/recreate and Escape, not modern operations.

Remaining work and acceptance

  • Qualify Windows geometry at non-100% DPI, RTL, negative monitor origins, collision/flip, alignment/gap, and scrolled/transformed anchors. The current frame-summing positioning path ignores ancestor scroll offsets; fix the owning native geometry path rather than blessing it with render-only tests.
  • Qualify Windows app deactivation for presentations that do not hold keyboard focus; preserve outside-input and nested-popup ownership.
  • Execute the full macOS Fabric/Paper one-logical-unit view/rect/point geometry matrix, including RTL, backing scale, collision/flip, and attachment replacement.
  • Run at least 100 open/close/rearm/reattach cycles per qualified host and check popup/window, observer/subscription, native view, and input resource lifetime; stale cleanup must not detach a newer generation.
  • Qualify VoiceOver, field-editor content, and accessibility behavior beyond the authored happy paths.
  • Record exact commands/versions, native evidence, pass/fail/skip counts, and unsupported scenarios. Passive inspection must not activate a popup; compile checks and skipped tests are not native qualification.

Evidence and reproduction

Historical handoff: b55d6c9a3:packages/agentic/native-core/plans/modernization.md. Contract: packages/agentic/native-core/src/components/callout/SPEC.md. Run native-core package checks and, from apps/storybook, the native-* owned storybook smoke --<platform> --mode stories-and-tests lanes; add --paper on macOS. Preserve existing qualified readiness, explicit-operation, dismissal, focus-return, and rearm behavior.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions