Skip to content

[ui/select] 替换 Windows native select 方形下拉 #483

@Cooper-X-Oak

Description

@Cooper-X-Oak

This was generated by AI during triage.

Parent

#478

Triage

  • Category: bug
  • State: ready-for-agent
  • Requested state label: ready-for-agent
  • Requested repository labels (not applied by this run due label permissions): bug, windows

What to build

将 Windows WebView2 下不可 CSS 控制的 native <select> 替换为真正可用的自定义下拉组件,使 Settings、Local ASR、SettingsModal 等下拉控件在 Windows/macOS 上拥有一致的圆角、阴影、键盘导航和可访问性行为。

Acceptance criteria

  • 自定义 Select 支持 options、value、onChange、disabled、keyboard navigation、outside click、Esc close。
  • popover 使用 role=listbox / role=option 或等价 a11y 语义。
  • Settings、Local ASR、SettingsModal 中面向用户的 native <select> 被替换。
  • Windows 下不再出现 Win32 方形 ComboBox 弹框。
  • macOS 视觉和交互不倒退。
  • 长文本选项不会撑破容器或遮挡后续内容。

Blocked by

None - can start immediately.

Evidence

#418: Windows 端点击任一下拉菜单时,WebView2 使用 Win32 ComboBox 默认样式,表现为直角方形和黑色实边框,无法用 CSS 修改。Issue 中列出多个 native <select> 用点,并指出现有 SelectLite 只是静态视觉占位,不是真正可用的下拉组件。

Expected / Actual

Expected: 下拉控件跨平台视觉一致,符合 OpenLess 圆角/玻璃感设计,并支持基础键盘和鼠标交互。

Actual: Windows native select 弹框由系统控件渲染,视觉突兀且不可通过 CSS 修复。

Validation gate

  • 运行:npm run build
  • 运行或补充 UI contract test,至少覆盖 value change、disabled、keyboard navigation、outside click、Esc close。
  • 运行:rg <select src,确认剩余 native select 都有明确保留理由。
  • Windows 手动截图验证 Settings 和 Local ASR 的主要下拉控件。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions