Skip to content

objectui: remaining untranslated console-chrome accessible names (Page header actions, Emoji picker, the reaction-count label, Close/Close panel in the nav overlay) #5430

Description

@yinlianghui

Swept while implementing objectstack#5407 item 2, which enumerates four strings (More actions, Add reaction, Clear, Close). These are the neighbours the sweep turned up that #5407 does not name, so they are filed here rather than smuggled into that PR.

All are icon-only controls, so the hardcoded literal IS the control's name to a screen reader and to a hover tooltip.

String Site
Page header actions packages/components/src/renderers/layout/containers.tsx — the role="toolbar" accessible name, ~8 lines above the More actions trigger #5407 fixes
Emoji picker packages/plugin-detail/src/ReactionPicker.tsx — the role="listbox" popup the (now translated) add button opens
{emoji} {count} reaction(s) same file — the per-reaction chip's label, with English pluralization built in (reaction${count !== 1 ? 's' : ''})
Close + Close panel packages/components/src/custom/navigation-overlay.tsx lines 391-392 and 476

The pluralized one needs a shape decision, not just a key

This repo does not use i18next plural suffixes — it uses an explicit two-key scheme (lookup.recordCount / lookup.recordCountOne, detail.relatedRecords / detail.relatedRecordOne). A _one / _other pair would also break all-locales-key-parity, since zh/ja legitimately have no _one form and the guard demands identical key sets. So the reaction-count label should follow the existing two-key convention, not introduce a third.

Not filed here

Clear and Close as #5407 reports them (untranslated in every locale) could not be reproduced in the console chrome a CRM sweep would touch — see the objectstack#5407 dev report for the enumeration of every Clear/Close site and which resolver each one already goes through.

Activity

  1. self-assigned this
    on Aug 5, 2026
  2. yinlianghui commented on Aug 5, 2026

    @yinlianghui
    CollaboratorAuthor

    认领:objectui 分片 PM 滚动补位第 10 单(bug 优先)
    会话:session_01GTRjn8xBqp75dk7kFupVRt
    分支:claude/issue-5430-chrome-a11y-names-i18n(代码落地 objectui 仓)
    Worktree:objectui-issue-5430
    域:objectui 分片(components / plugin-detail / i18n locales)
    文件面:packages/components/src/renderers/layout/containers.tsx、packages/plugin-detail/src/ReactionPicker.tsx、packages/components/src/custom/navigation-overlay.tsx、packages/i18n/src/locales/*.ts(新词条十包齐)+ 相应测试 + .changeset/*.md(越界即停)。当前在飞 0,无相交(#5407/#3341 的同包改动均已合入 main,从新 main 切分支)。

    口径照正文:复数那条必须走本仓既有双 key 约定(recordCount/recordCountOne 形制),⛔ 不引入 i18next _one/_other 后缀(zh/ja 无 _one 会破 all-locales-key-parity)。


    Generated by Claude Code

  3. yinlianghui commented on Aug 5, 2026

    @yinlianghui
    CollaboratorAuthor

    PM 验收:ACCEPT → objectui PR #3390 已转 ready + auto-merge(报告时 9 项完成全绿、7 项在跑零失败),跟到 MERGED。

    落地内容:五个新 key 十包全补;复数条按仓内双 key 约定(reactionCount/reactionCountOne),测试用「zh 两 key 同形」把不用 _one/_other 后缀的理由钉进断言;drawer close 复用既有 common.close 不另造;common.closePanel 落 common 命名空间的分层判断(通用组件不反向依赖 console 命名空间)PM 复核采纳。反向验证预判正确(en 例字面量与词条同值不可能红 —— 10 红全为非 en,5 绿全为 en);按 key 消费方扫半径抓到并复跑了 plugin-view 的既有 fixture。

    衍生入队:#5505(shadcn Sheet/Dialog 原语硬编码 sr-only "Close",波及全部 drawer/modal;ui/** 是 shadcn-sync No-Touch 区,修复路线 —— wrapper / sync patch / closeLabel prop —— 派发时 PM 裁定)、#5506(同扫描半径另五处硬编码 chrome 串,含 collaboration 包的同款复数形)。

    objectui 分片 PM session_01GTRjn8xBqp75dk7kFupVRt


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions