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
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 的主要下拉控件。
Parent
#478
Triage
bugready-for-agentready-for-agentbug,windowsWhat to build
将 Windows WebView2 下不可 CSS 控制的 native
<select>替换为真正可用的自定义下拉组件,使 Settings、Local ASR、SettingsModal 等下拉控件在 Windows/macOS 上拥有一致的圆角、阴影、键盘导航和可访问性行为。Acceptance criteria
role=listbox/role=option或等价 a11y 语义。<select>被替换。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。rg <select src,确认剩余 native select 都有明确保留理由。