Skip to content

test: record context menu accessibility spike - #66

Closed
leoafarias wants to merge 6 commits into
feat/naked-linkfrom
spike/naked-context-menu
Closed

test: record context menu accessibility spike#66
leoafarias wants to merge 6 commits into
feat/naked-linkfrom
spike/naked-context-menu

Conversation

@leoafarias

Copy link
Copy Markdown
Member

Summary

  • records disposable V0/V1 trigger, focus, lifecycle, and geometry evidence against Link PR feat: add naked link #65
  • preserves the real child role and behavior while testing secondary click, long press, keyboard entry, focus restoration, and edge positioning
  • changes only five spike/evidence files; no production API or package export is added

Findings

  • the Link child passes the automated node/action contract
  • SelectableText and the generic row fail the proposed V1 semantic/action contract
  • SelectableText also prevents wrapper secondary-click and physical-long-press opens
  • same-gesture touch selection is not proven
  • D-03 remains open; production Context Menu is not authorized

Verification

  • Flutter 3.41.0, 3.41.2, and 3.44.6: 15 focused, 4 flutter-tester integration, and 67 Menu/Select/Popover regression tests pass on each SDK
  • Flutter 3.41.2 full analyze: clean
  • macOS 26.5.2: 4/4 pass, exit 0
  • Chrome 150: all in-app tests report pass, but host result/teardown hangs and requires interruption; this is recorded as infrastructure-incomplete, not a clean target pass

Remaining blockers

VoiceOver, TalkBack, and headed Chrome accessibility-tree sessions are UNRUN. This PR is based on feat/naked-link and should be retargeted to main only after PR #65 merges.

@leoafarias

Copy link
Copy Markdown
Member Author

Closing — the findings are worth keeping, the scaffolding isn't.

This adds 1,899 lines across five *_spike* files, all under packages/example/, and zero library code. Its own summary calls the evidence "disposable."

Merged, it becomes a permanent fixture nothing imports, that CI must keep compiling, and that silently drifts as the components beneath it change. A year from now nobody will know whether it still holds.

Recording the findings here so they survive the close:

  • the Link child passes the automated node/action contract
  • SelectableText and the generic row fail the proposed V1 semantic/action contract
  • SelectableText also prevents wrapper secondary-click and physical-long-press opens
  • same-gesture touch selection is not proven
  • D-03 remains open; production Context Menu is not authorized

That last point is the outcome: the spike concluded don't build it yet. It did its job, and the conclusion is what the next attempt needs — not the harness that produced it.

Full detail stays in the branch (context_menu_accessibility_at_results.md) if it's needed again.

@leoafarias leoafarias closed this Aug 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant