From 2a3a6cd25b9ef223f74a31fc2e8257d34762f9d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=9D=E5=B0=98?= <237809796@qq.com> Date: Sat, 10 Oct 2026 01:04:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96:=20=E6=97=A0=E9=9A=9C?= =?UTF-8?q?=E7=A2=8D=E7=AC=AC=E4=BA=8C=E6=89=B9(icon-only=20aria-label=20+?= =?UTF-8?q?=20=E5=AE=B9=E5=99=A8=E9=94=AE=E7=9B=98=E5=8C=96=2020=20?= =?UTF-8?q?=E5=A4=84)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - TopBar 10 处 icon-only 按钮补 aria-label(复用同 :title 表达式,含三态 title) - ConversationSidebar: 4 icon-only aria-label + 2 分组标题键盘化(role/tabindex/aria-expanded/keydown) - MessageList 2 icon-only; KnowledgeDetail 3 章节折叠键盘化; dashboard 两列表项键盘化 - FileExplorer 面包屑/模块下拉项键盘化; ConflictResolver 冲突文件折叠键盘化 - 约定: 遮罩/点外关闭类(@click.self)非键盘缺口,跳过;零新增 i18n 键 - 验收: bunx vue-tsc --noEmit EXIT 0;看板 P3-2 更新(两批共 23 处) --- docs/todo.md | 2 +- src/components/ai/ConflictResolver.vue | 10 +++++- src/components/ai/ConversationSidebar.vue | 23 ++++++++++--- src/components/ai/MessageList.vue | 4 +-- src/components/ai/TopBar.vue | 19 +++++------ .../dashboard/ActiveProjectsPanel.vue | 2 +- src/components/dashboard/IdeasPanel.vue | 2 +- src/components/knowledge/KnowledgeDetail.vue | 30 +++++++++++++++-- src/components/project/FileExplorer.vue | 32 +++++++++++++++++-- 9 files changed, 98 insertions(+), 26 deletions(-) diff --git a/docs/todo.md b/docs/todo.md index 8911ca5..6bee679 100644 --- a/docs/todo.md +++ b/docs/todo.md @@ -25,7 +25,7 @@ > 详情:[05-代码审查/UX走查-Web规范合规-2026-10-05.md](./05-代码审查/UX走查-Web规范合规-2026-10-05.md) - [x] P2-2 高频可点 div 键盘化:ToolCard:11 卡头/MessageList:1423 轨迹头/AuditLog:67,119 审计行(@click div 全仓 56 处,去 mask 合规项约 20 真缺口,高频改 button 其余 tabindex+keydown) ✅ **2026-10-10 完成(named 高频点)**:四面包裹处均补 `role="button" tabindex="0"` + `@keydown.enter/.space.prevent` 复用原 handler(带展开态的补 `:aria-expanded`;AuditLog 的 `` 仅补 tabindex+keydown——加 role=button 会抹掉表格行语义,故不加)。验收:`bunx vue-tsc --noEmit` EXIT 0。**剩余**:全仓另 ~16 处 @click div 未清(见 P3-2)。 -- [~] P3-2 icon-only 按钮缺 aria-label ~15 处(title 非等价读屏补偿;EnrichmentPanel 关闭钮/ProjectDetail:185,189 编辑删除钮等)+剩余 div 键盘化 ✅ **2026-10-10 完成 3/15**(EnrichmentPanel 关闭钮 + ProjectDetail 模块编辑/删除钮,均复用已有 `:title` 同表达式为 `:aria-label`,未新增 i18n 键);**剩余 ~12 处** 未清,按「存量 vs 仅本批」拍板点待用户定范围。 +- [~] P3-2 icon-only 按钮缺 aria-label ~15 处(title 非等价读屏补偿;EnrichmentPanel 关闭钮/ProjectDetail:185,189 编辑删除钮等)+剩余 div 键盘化 —— ✅ **2026-10-10 两批共 23 处**:①批次一 3 处(EnrichmentPanel 关闭 / ProjectDetail 模块编辑·删除);②批次二 20 处(TopBar 10 icon-only 按钮 aria-label / ConversationSidebar 4 aria-label + 2 分组标题键盘化 / MessageList 2 icon-only / KnowledgeDetail 3 章节折叠键盘化 / dashboard 两列表项键盘化 / FileExplorer 面包屑·模块下拉项键盘化 / ConflictResolver 冲突文件折叠键盘化)。全部复用已有 `:title`/i18n key,**零新增键**;遮罩类(@click.self)按约定跳过。验收:`bunx vue-tsc --noEmit` EXIT 0。**剩余**少数(会话项 space 键、dblclick 重命名入口等)+「存量 vs 仅本批」拍板点仍在。 - 拍板点:修复范围「存量 vs 仅本批」——transition:all/outline:none 大半为存量;本批新代码 a11y 意识已好(svg aria-hidden 批补/MessageList role=log+aria-live/hover-only focus-within 补偿),仅清本批则工作量降 60%+ ### 💡 2026-09-29 aichat 可用性与交互成本研究(三动线走查+异常循环截图实证,39 项新发现) diff --git a/src/components/ai/ConflictResolver.vue b/src/components/ai/ConflictResolver.vue index 6fd9c10..9a4d47a 100644 --- a/src/components/ai/ConflictResolver.vue +++ b/src/components/ai/ConflictResolver.vue @@ -4,7 +4,15 @@ ⚠ {{ t('aiChat.conflictsPending', { n: conflicts.length }) }}
-
+
▸ {{ c.conflict_type === 'semantic' ? '语义' : '文件' }} diff --git a/src/components/ai/ConversationSidebar.vue b/src/components/ai/ConversationSidebar.vue index a787f6c..bd18d45 100644 --- a/src/components/ai/ConversationSidebar.vue +++ b/src/components/ai/ConversationSidebar.vue @@ -14,7 +14,7 @@ />
{{ t('aiChat.sidebarTitle') }} -
@@ -80,7 +80,7 @@
-
@@ -115,7 +115,12 @@