claude 为某个案例编写了这份缺陷报告,我们刚刚为其编写了一个变通方案:
自 #42005(“A11Y: don’t use the title attribute for category and tag descriptions”,2026年7月)起,标签描述在主界面中已没有任何可见的位置。
复现步骤
- 为标签添加描述,例如为标签
KER添加描述Kreiselternrat。 - 打开 /latest、/categories、带有该标签的主题,或撰写器中的标签选择器。
- 将鼠标悬停在标签上或使其获得焦点。
预期结果: 有一种可访问的方式可以阅读描述,正如此次更改之前一样(此前是通过 title 工具提示显示)。
实际结果: 什么都没有。描述仅在 /tag/ 和 /tags 页面显示。
为何我认为这是一个缺陷,而不仅仅是一个设计选择
该 PR 指出相关信息“已在‘关于此分类’主题、分类下拉菜单、分类标题中提供”。这对于分类是成立的。但对于标签则不然:没有“关于”主题,标签选择器行不显示该信息,主题列表也不显示。
数据仍然被发送到客户端并传递给渲染器,但渲染器直接忽略了它:
frontend/discourse/app/lib/render-tag.js中的defaultRenderTag接收params.description(通过tags_descriptions在主题列表、主题标题、搜索中获取),但将其丢弃。frontend/discourse/select-kit/components/tag-row.gjs将description=this.item.description传递给dDiscourseTag,同样也被丢弃。
我同意使用 title 属性是不恰当的工具。PR 本身建议改用可访问的工具提示/切换提示(tooltip/toggletip)。Discourse 在 float-kit 中提供了 DTooltip,它支持鼠标悬停和键盘焦点。标签(以及标签选择器行)是否可以使用该组件,或许可以放在一个站点设置后面?
变通方案 供急需此功能的人使用:一个小型主题组件,使用 api.replaceTagRenderer 和 float-kit 工具提示服务,在鼠标悬停和键盘焦点时恰好实现此功能:GitHub - thoka/discourse-tag-description-tooltip: Discourse theme component: show the tag description in a tooltip on hover and focus · GitHub