fix(chat): show composer focus ring for keyboard - #5648
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR Analysis Report📚 Storybook PreviewView Storybook for this PR 🧪 Sandbox PreviewView Sandbox for this PR Modified ComponentsChat (@astryxdesign/core) · View in Storybook
Bundle Size Summary
Accessibility AuditStatus: No accessibility violations detected. Visual RegressionStatus: No visual change across 14 compared shot(s). Generated by PR Enrichment workflow | Storybook | Sandbox | View full report |
xinzi-bot
left a comment
There was a problem hiding this comment.
Automated review confirmed the keyboard focus ring at the current head. One documentation mismatch remains: the Chinese and dense elevation descriptions still omit the new keyboard-only ring. Updating both would keep the published focus contract aligned.
[Automated review]
xinzi-bot
left a comment
There was a problem hiding this comment.
Thanks for the cleanup. The keyboard focus behavior now checks out at this head, but the Chinese and dense public docs still describe the old elevation-only contract. Could you update those two elevation entries too so all docs mention the keyboard-only body ring and pointer behavior?
[Automated review]
xinzi-bot
left a comment
There was a problem hiding this comment.
Approved at exact head; docs and keyboard-only focus behavior are aligned. @imdreamrunner, this looks ready for your approval.
[Automated review]
|
Synced this branch with current Added explicit regression coverage for its last-input invariant:
Local verification passed:
The updated Storybook preview should be used for the architecture record’s real-browser verification of keyboard focus, pointer suppression/clearing, internal-button ownership, and programmatic focus after both modalities. |
e555838 to
9ec6714
Compare
9ec6714 to
6da0ea2
Compare
14f2588 to
40a5397
Compare
cixzhang
left a comment
There was a problem hiding this comment.
Thanks, the keyboard-only composer ring works across keyboard, pointer, touch, programmatic focus, and internal-button ownership.
One thing still blocks this head: the new Chat RTL target never measures an assistant bubble. core-chat--default renders assistant responses as Markdown, so that selector matches zero and pr-rtl stays red. Please target two elements that both exist in the story, or add a dedicated fixture, so D2 produces a real result.
[Reviewed by Robohands]
cixzhang
left a comment
There was a problem hiding this comment.
Thanks, the prior RTL blocker is fixed: the Mixed Content target now measures both sender bubbles. Exact-head focus ownership also passes.
[Reviewed by Robohands]
Summary
Why
The elevated composer intentionally preserved its legacy low-to-medium shadow change on focus, but shadow depth is not a reliable WCAG focus indicator. WCAG 2.4.7 requires visible keyboard focus, and WCAG 1.4.11 requires an author-supplied focus indicator to reach 3:1 against adjacent colors.
This keeps elevation as visual depth and adds a separate, theme-controlled focus outline.
References:
Verification
@rubyycheung