From 8b89824c2bae5824dcfcd2e0f9d23570121efc53 Mon Sep 17 00:00:00 2001
From: SiYue-ZO <2835601846@qq.com>
Date: Wed, 15 Apr 2026 00:07:58 +0800
Subject: [PATCH] fix(web): restore accessible labels for model action tooltips
---
.../src/components/models/model-card.tsx | 32 +++++++++++++++++--
1 file changed, 29 insertions(+), 3 deletions(-)
diff --git a/web/frontend/src/components/models/model-card.tsx b/web/frontend/src/components/models/model-card.tsx
index f61469314..44730bb57 100644
--- a/web/frontend/src/components/models/model-card.tsx
+++ b/web/frontend/src/components/models/model-card.tsx
@@ -38,18 +38,21 @@ export function ModelCard({
const canSetDefault =
model.available && !model.is_default && !model.is_virtual
+ const setDefaultLabel = t("models.action.setDefault")
const setDefaultDisabledReason = (() => {
if (settingDefault) return t("models.action.setDefaultDisabled.setting")
if (!model.available)
return t("models.action.setDefaultDisabled.unavailable")
if (model.is_default) return t("models.action.setDefaultDisabled.isDefault")
if (model.is_virtual) return t("models.action.setDefaultDisabled.isVirtual")
- return t("models.action.setDefault")
+ return setDefaultLabel
})()
+ const editLabel = t("models.action.edit")
+ const deleteLabel = t("models.action.delete")
const deleteDisabledReason = model.is_default
? t("models.action.deleteDisabled.isDefault")
- : t("models.action.delete")
+ : deleteLabel
const deleteDisabled = model.is_default
return (
@@ -109,12 +112,28 @@ export function ModelCard({
: undefined
}
tabIndex={!canSetDefault || settingDefault ? 0 : undefined}
+ role={!canSetDefault || settingDefault ? "button" : undefined}
+ aria-disabled={
+ !canSetDefault || settingDefault ? true : undefined
+ }
+ aria-label={
+ !canSetDefault || settingDefault
+ ? setDefaultLabel
+ : undefined
+ }
+ title={
+ !canSetDefault || settingDefault
+ ? setDefaultLabel
+ : undefined
+ }
>
@@ -142,12 +162,18 @@ export function ModelCard({