Skip to content

[observe] el-popover/el-dropdown 弹层菜单项(cursor:auto)被 tooltip 合并,无法分别 targeting #46

@benbergg

Description

@benbergg

现象

框架弹层菜单(Element Plus el-popover / el-dropdown 等)内的菜单项,当它们是 cursor:auto、无 role、无独立可访问名<div> 时,vortex_observe 把整个弹层(role=tooltip 容器)按 name-from-content 合并成单一 ref,各菜单项无法分别 targeting。

agent 只能拿到合并文本,点中心可能落在分隔区,observe→act 够不到具体菜单项。

复现(班牛预发 https://newbeta.bytenew.com/app.html

  1. 点左上角 addcube(+)打开「新建小程序」弹出菜单
  2. vortex_observe 仅得一条:tooltip "模板中心创建 新建空白小程序" [ref=@..]
  3. 「模板中心创建」「新建空白小程序」两项未分别暴露

白盒结构(实机 dump,2026-06-11)

host: DIV role=tooltip cursor=auto class="el-popover el-popper"
 └ DIV cursor=auto text="模板中心创建  新建空白小程序"   ← 两项在一个 cursor:auto div 里
 └ DIV (empty)

#42 的区别(重要)

#42(PR #45)修的是容器+子按钮全 cursor:pointer 的多 CTA 卡片(如班牛 createBox),走 cursor:pointer 候选池的多 CTA 去重。

本 issue 的菜单项是 cursor:auto(非 pointer),既不进 cursor:pointer 候选池,也无 role / 原生交互标签 → #42 的去重不覆盖也不应覆盖(其范围严格限定 cursor:pointer 多 CTA)。这是另一类根因:框架弹层菜单项无任何标准交互信号。

可能方向(待设计)

  • 识别 el-popover/el-dropdown/el-menu 等框架弹层容器,对其直接子菜单项(即使 cursor:auto)按"独立可点项"暴露;
  • 或检测菜单项上的框架点击处理器(hasFrameworkClickHandler 已有,但需扩展到 cursor:auto 的弹层项);
  • 注意与 tooltip name-from-content 合并逻辑的交互,须配 bench fixture(el-popover-menu 型)+ 0022 sweep 防噪声回归。

来源

N0062 vortex 生产能力评测 V3 → #42 PR #45 Task 0 probe 实机白盒确认。详见 #42 评论。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions