♻️ refactor(vscode): 看板的悬停提示也改走 data-tooltip,插件网页只剩一条提示的路;lint 禁止原生 title

- 看板剩下的原生 title(顶栏按钮、工单卡片、工单详情、会话、Profile 表、改动文件树和 diff、属性表)全部改成 data-tooltip,
  禁用的按钮照样弹;只有图标、原来只靠 title 当名字的(审查勾、生成说明、属性说明的 i 图标、没头像的归属人)补上 aria-label
- 提示框按原文换行:摘修复弹框里「迁移」列的几个文件一行一个
- 代码阅读 Markdown 链接的标题写成 data-tooltip
- eslint 规则:网页 TSX 的 DOM 元素上写 title 报错,iframe 和组件自己的 title 属性不算
This commit is contained in:
cruldra committed 2026-09-27 21:39:15 +08:00
1 parent 1f7bf63e27
commit c8620e6e1b
15 files changed
+86 -46

No files matched your search

@@ -35,13 +35,15 @@ function OwnerBadge({ login, avatar }: { login: string, avatar?: string }) {
<img
src={avatar}
alt={login}
title={`${login} 的工单(只读)`}
data-tooltip={`${login} 的工单(只读)`}
className="size-4 shrink-0 rounded-full ring-1 ring-[var(--vscode-panel-border)]"
/>
)
: (
<span
title={`${login} 的工单(只读)`}
data-tooltip={`${login} 的工单(只读)`}
role="img"
aria-label={`${login} 的工单(只读)`}
className="grid size-4 shrink-0 place-items-center rounded-full bg-[var(--vscode-badge-background)] text-[8px] uppercase text-[var(--vscode-badge-foreground)]"
>
{login.slice(0, 1)}
@@ -90,7 +92,7 @@ export const IssueCard = forwardRef<HTMLDivElement, IssueCardProps>(
? (
<span
className="grid place-items-center text-[var(--vscode-disabledForeground)]"
title={lockedPrerequisite != null ? `等待 #${lockedPrerequisite} 完成` : '等待前置工单完成'}
data-tooltip={lockedPrerequisite != null ? `等待 #${lockedPrerequisite} 完成` : '等待前置工单完成'}
aria-label={lockedPrerequisite != null ? `等待 #${lockedPrerequisite} 完成` : '等待前置工单完成'}
>
<Lock className="size-3.5" />
@@ -103,7 +105,7 @@ export const IssueCard = forwardRef<HTMLDivElement, IssueCardProps>(
? (
<span
className="absolute bottom-1 right-1.5 rounded border border-blue-400/50 bg-blue-400/10 px-1 text-[9px] text-blue-400"
title={`${issue.handoffFrom ?? '?'} 已移交,待接管`}
data-tooltip={`${issue.handoffFrom ?? '?'} 已移交,待接管`}
>
待接管
</span>