You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Maintainer ruling (2026-08-16, recorded by PM session session_01NYgmGheCzM6NrHZN436Cxf). The maintainer accepted the evening decision-inbox report's recommendations in full, verbatim: 「8931 我已经处理了,其他接受你的所有建议。」 The dev + PM recommendations from the measurement round are ratified on all three questions:
Landing point: E1 — FullscreenFieldEditor renders the error node once, and its children render prop gains a required fourth aria parameter (the 全屏长文本编辑器的字数计数只有数字,读屏用户在该对话框里完全拿不到字数信息 #3417 required-parameter precedent), rather than three hosts each hand-implementing it. The components primitive's public signature change (3 consumers) is accepted.
Binding implementation notes from the measurement: ⛔ the "point back to the aria-hidden outside FormMessage" shortcut is explicitly forbidden (ARIA MUST violation that tests can't see — write it into the dispatch); pins must carry container-ownership assertions (jsdom is blind to wrong-node targeting); aria-errormessage single-ID constraint observed. #4832 (dialog controls have no accessible name) rules with this and lands in the same batch — same controls, same JSX.
Label flipped needs-user-decision → pm:queue in the same stroke.
Activity
yinlianghui commentedon Aug 16, 2026
【认领 · 测量型派发】objectui 分片 PM(session_01GTRjn8xBqp75dk7kFupVRt):晋级
pm:queue并按测量型模式派发(批次 11 补位)—— 零代码零 PR,产出判别材料供裁决(#3173/#3829 先例)。卡内两形状(复制 FormMessage 文案进对话框 vs aria-invalid + 对话框本地 aria-errormessage)与 #3222 契约的相互作用需先量清,#4788 的教训在前(该族预裁被实测证伪),不预裁不投机。Generated by Claude Code
yinlianghui commentedon Aug 16, 2026
【PM 处置 · 测量收讫,转决策箱】objectui 分片 PM(session_01GTRjn8xBqp75dk7kFupVRt):
pm:queue→needs-user-decision。测量报告(dev 评论/回报)判别材料齐,三问待裁,dev 建议 + PM 附议如下:测量要点:①受影响面是三个渲染面不是两个(form.tsx 内置 FullscreenTextarea 同缺陷,在 packages/components,fields 范围 sweep 扫不到),3/3 全坏,根因是 FullscreenEditor primitive 无校验槽位、编辑器由宿主手写注入;②ARIA 规范 MUST 排除「指回模态外被 aria-hidden 的 FormMessage」捷径(D 形,测试全绿但违规 —— 实施派发词必须显式禁写);③两形状对「指错节点」在 jsdom 层同盲,钉子必须加容器归属断言;④aria-errormessage 在本仓工具链只认单 ID,不能复合进 describedby 链,但两属性可指同一节点。
三问(dev 建议 E1 + A主B增,PM 附议):
error,objectui 渲染errorMessage(declared ≠ enforced) #3222「widget 不渲染文案」规则是否改写为「同一时刻只有一份文案在无障碍树内」(容纳对话框内文案节点)—— 保持字面则只剩 B 通道;richtexttype is spelled three ways across four layout/column sets, and the spec spells it none of them #4250 半修教训说该同批;需确认 scope fence)。关联裁决建议同批:#4832(对话框控件无可访问名,同一批控件同一段 JSX)。裁定后一轮可做完。
Generated by Claude Code
os-zhuang commentedon Aug 16, 2026
Maintainer ruling (2026-08-16, recorded by PM session
session_01NYgmGheCzM6NrHZN436Cxf). The maintainer accepted the evening decision-inbox report's recommendations in full, verbatim: 「8931 我已经处理了,其他接受你的所有建议。」 The dev + PM recommendations from the measurement round are ratified on all three questions:error,objectui 渲染errorMessage(declared ≠ enforced) #3222's rule is rewritten as "only one copy of the error text is in the accessibility tree at any moment" — accommodating a dialog-local error text node while the modal is open (the outsideFormMessageisaria-hiddenby Radix during that window).FullscreenFieldEditorrenders the error node once, and its children render prop gains a required fourth aria parameter (the 全屏长文本编辑器的字数计数只有数字,读屏用户在该对话框里完全拿不到字数信息 #3417 required-parameter precedent), rather than three hosts each hand-implementing it. Thecomponentsprimitive's public signature change (3 consumers) is accepted.form.tsxbuilt-in FullscreenTextarea inpackages/components(the Therichtexttype is spelled three ways across four layout/column sets, and the spec spells it none of them #4250 half-fix lesson) — scope fence extended accordingly.Binding implementation notes from the measurement: ⛔ the "point back to the aria-hidden outside
FormMessage" shortcut is explicitly forbidden (ARIA MUST violation that tests can't see — write it into the dispatch); pins must carry container-ownership assertions (jsdom is blind to wrong-node targeting);aria-errormessagesingle-ID constraint observed. #4832 (dialog controls have no accessible name) rules with this and lands in the same batch — same controls, same JSX.Label flipped
needs-user-decision→pm:queuein the same stroke.Generated by Claude Code
yinlianghui commentedon Aug 16, 2026
【认领】objectui 分片 PM(session_01GTRjn8xBqp75dk7kFupVRt)批次 12 派发,os-dev 实施,与 #4832 同批同 PR(维护者裁定并批)。分支:
claude/issue-4824-fullscreen-dialog-aria。按 2026-08-16 维护者裁定(评论 5307575529)执行:#3222 规则改写为「同一时刻只有一份错误文案在无障碍树内」;落点 E1 ——
FullscreenFieldEditor一处渲染错误节点,children render prop 增必填第 4 个 aria 参数(#3417 必填参数先例),components primitive 公开签名变更(3 消费者)已获准;三面同批(RichTextField / TextAreaField / form.tsx 内置 FullscreenTextarea)。⛔ 硬禁:指回模态外被 aria-hidden 的 FormMessage(ARIA MUST 违规且测试盲);钉子必须带容器归属断言;aria-errormessage 单 ID 约束。#4832 的可访问名同笔交付(aria 参数同时承载 name 通道)。文件面:⚠️ 前置门:form.tsx 与在飞 #4788(host 包容器)同文件 —— #4788 的 PR 落 main 后才动
packages/components(FullscreenFieldEditor primitive +src/renderers/form/form.tsx内置面)+packages/fields/src/widgets/{TextAreaField,RichTextField}.tsx+ RichTextEditorSurface + 测试。form.tsx,其余文件可先行。Generated by Claude Code
fix(components): the built-in textarea's fullscreen dialog announces …
yinlianghui commentedon Aug 16, 2026
【os-dev 实施完成】draft PR #4864,分支
claude/issue-4824-fullscreen-dialog-aria,与 #4832 同批同 PR。按维护者裁定(评论 5307575529)三条逐条落实,三个面全部落地。落点 E1:
FullscreenEditor收字段的error(必填 prop),在对话框内渲染错误文案节点,并把aria-labelledby/aria-invalid/ 单 IDREFaria-errormessage作为 children render prop 的必填第 4 参数交给宿主展开。宿主不知道任何 id,所以结构上无法指向模态外的节点。#4832 的可访问名经同一参数承载,复用 DialogTitle 的可见文本(id 落在 DialogTitle 内部的 span,不能落在 DialogTitle 本身 —— Radix 把id={context.titleId}放在属性展开之前,覆盖它会让对话框自己失去名字)。三面读数(改前 → 改后):
false(字段实为 invalid) →trueFtrueFtrueF⛔ 硬禁已写进 primitive 注释与钉子:不指回模态外被
aria-hidden的 FormMessage。每条 IDREF 断言都带容器归属(toContainElement),内置面那份还额外断言该 id 不等于表单项的 message id —— 它是三个面里唯一能对着真实 FormMessage 测的。前置门:按门规 60 秒一轮等 #4788 落 main,等满 40 轮超时(彼时它连分支都没 push),先交付了两个面;随后 #4788 以 PR #4862 落地,
git merge origin/main无冲突后补上第三面。⛔ 未抢改同文件,两边落在 form.tsx 的不同区域。验证:新钉子 3 文件 38 条全绿(第三面那份先写后修:实现前
7 failed | 4 passed,实现后11 passed);合并 main 后vitest run packages/fields packages/components packages/plugin-form= 287 files / 3400 tests 全过;type-check 12/12。反向验证先预判后跑,断开 richtext 面的第 4 参数展开,预判「红 4 条且全在 richtext」并明确写出不会红的部分(「有效时播报 false」会保持绿 —— 那正是修复前的缺陷在这一格碰巧看起来对),实测4 failed | 23 passed逐条相符。changeset:
@object-ui/componentsminor(必填 prop 是 breaking,按仓内先例发 minor 并在正文写清 FROM → TO)+@object-ui/fieldspatch。无范围外发现需另立单。
Generated by Claude Code
fix(components,fields): 全屏长文本对话框播报校验状态、控件拿到可访问名 (objectstack-ai#4824, o…