Repository navigation
Conversation
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryRe-reviewed the two changed files at current HEAD; the branch was rebased and the content is byte-identical to the previously reviewed revision, so the Files Reviewed (2 files)
Previous Review Summaries (4 snapshots, latest commit 940631f)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 940631f)Status: No Issues Found | Recommendation: Merge Executive SummaryFull review of the two changed files found no correctness, accessibility, security, or memory-leak issues: the Files Reviewed (2 files)
Previous review (commit 0eba64b)Status: No Issues Found | Recommendation: Merge Executive SummaryRe-reviewed both changed files at current HEAD; they are byte-identical to the previously reviewed revision (the branch was only rebased), and the Files Reviewed (2 files)
Previous review (commit 9d3233e)Status: No Issues Found | Recommendation: Merge Executive SummaryFull review of the two changed files found no correctness, accessibility, security, or memory-leak issues: the Files Reviewed (2 files)
Previous review (commit ddbc59a)Status: No Issues Found | Recommendation: Merge Executive SummaryReviewed the profile-dialog accessibility change (18 changed lines in The component now links each URL field's validation text via a stable Files Reviewed (2 files)
Reviewed by deepseek-v4.1-flash · Input: 43.3K · Output: 8.1K · Cached: 384.4K Review guidance: REVIEW.md from base branch |
0eba64b to
940631f
Compare
Both profile URL fields set aria-invalid but had no aria-describedby, so screen readers announced the field as invalid without the reason. Give each error a stable id and role=alert, reference it from the input, and announce the save failure. Refs Kilo-Org#4172.
940631f to
8fd6464
Compare
Problem
Issue #4172 lists
apps/web/src/components/profile/EditProfileDialog.tsxin its representative scope. Both profile URL fields still fail the acceptance criteria:aria-invalidbut carry noaria-describedby, so a screen reader announces the field as invalid without the reason.<p>with no stableid, so the input cannot reference it.This is the same defect class as the forms already fixed in #6068: an invalid control whose validation text is not programmatically linked.
Change
role="alert", and reference it from the input witharia-describedbywhile the error is present.role="alert"so it is announced.Reactso Jest's classic SWC JSX transform can render this component.Tests
Add
EditProfileDialog.test.ts, following the linkedom +react-dom/clientpattern already used byEmailInputForm.test.ts. It checks that both invalid URLs link to announced errors, and that the associations clear when the form resets.Verification
2 passed(EditProfileDialog.test.ts) under the repository's classic SWC transform without DB hooks.Reactimport; it is fixed and the focused test was rerun.tsgo --noEmit -p apps/web/tsconfig.jsonexit 0.oxlint --config .oxlintrc.jsonclean on both changed files;oxfmtreports no differences;git diff --checkclean.src/tests/setup/workerSetup.ts). This sandbox has no database or Docker, so the focused test was run with an equivalent config minus the DB setup hooks. CI runs the full suite.Refs #4172.