优化: 无障碍批次(可点容器键盘化 + icon-only aria-label)

- P2-2 命名 4 处可点容器键盘可达: ToolCard 卡头 / MessageList 轨迹卡头 / AuditLog audit-row(tr) / conv-list-item —— tabindex+keydown 复用原 handler, div 类加 role=button+aria-expanded; tr 因 role=button 会抹掉行语义故不加 role
- P3-2 3 处 icon-only 按钮补 aria-label(EnrichmentPanel 关闭 / ProjectDetail 编辑·删除),复用同 :title 的 i18n key,零新增键
- 硬约束执行: 4 个并行子代理按文件分区,零跨文件改动;主代理独立核查 diff 后修正一处语义缺陷(tr role)
- 看板同步: P2-2 销账 / P3-2 部分完成(~12 处待续) / 残留诊断代码 authz_debug 已清销账 / G6 标题泄漏(title.rs sanitize_title_source 双路径)销账
- 验收: bunx vue-tsc --noEmit EXIT 0 + node scripts/check-i18n.cjs 0 失败
This commit is contained in:
lxy
2026-10-10 01:00:28 +08:00
parent bcb0b82f33
commit 9d83a06300
6 changed files with 27 additions and 11 deletions
+2 -2
View File
@@ -64,7 +64,7 @@
</thead>
<tbody>
<template v-for="r in filteredRecords" :key="r.id">
<tr class="audit-row" :class="{ expanded: expandedId === r.id }" @click="toggleExpand(r.id)">
<tr class="audit-row" :class="{ expanded: expandedId === r.id }" tabindex="0" @click="toggleExpand(r.id)" @keydown.enter.prevent="toggleExpand(r.id)" @keydown.space.prevent="toggleExpand(r.id)">
<td class="col-time">
<div class="time-rel">{{ formatRelative(r.requested_at) }}</div>
<div class="time-abs">{{ formatDate(r.requested_at) }}</div>
@@ -116,7 +116,7 @@
<!-- 左侧:对话标题列表 -->
<div class="conv-list-panel">
<div class="conv-list" v-if="conversations.length > 0">
<div v-for="conv in conversations" :key="conv.id" class="conv-list-item" :class="{ active: expandedConv === conv.id }" @click="toggleConv(conv.id)">
<div v-for="conv in conversations" :key="conv.id" class="conv-list-item" :class="{ active: expandedConv === conv.id }" role="button" tabindex="0" :aria-expanded="expandedConv === conv.id" @click="toggleConv(conv.id)" @keydown.enter.prevent="toggleConv(conv.id)" @keydown.space.prevent="toggleConv(conv.id)">
<span class="conv-list-item-title">{{ conv.title || '—' }}</span>
<span class="conv-list-item-date">{{ formatDate(conv.updated_at) }}</span>
</div>