-
Notifications
You must be signed in to change notification settings - Fork 1
fix(frontend): announce errors, label inputs, sharpen DAG focus ring #465
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3,6 +3,7 @@ import { | |
| LOCALE_LABELS, | ||
| SUPPORTED_LOCALES, | ||
| getLocale, | ||
| localeKeys, | ||
| setLocale, | ||
| t, | ||
| tf, | ||
|
|
@@ -76,6 +77,22 @@ describe("i18n", () => { | |
| }); | ||
| }); | ||
|
|
||
| describe("locale key parity", () => { | ||
| it("registers the same translation keys in every non-English locale block", () => { | ||
| // A key present in one locale but silently missing from another falls | ||
| // back to the raw English key text (or an untranslated aria-label) at | ||
| // runtime with no build-time signal -- this caught exactly that for | ||
| // "Affiliates of {name}" (2026-08-23). | ||
| const locales = ["ko", "zh", "ja", "vi"] as const; | ||
| const keySets = locales.map((locale) => new Set(localeKeys(locale))); | ||
| const union = new Set(keySets.flatMap((set) => [...set])); | ||
| for (const [index, locale] of locales.entries()) { | ||
| const missing = [...union].filter((key) => !keySets[index].has(key)); | ||
| expect(missing, `${locale} is missing keys: ${missing.join(", ")}`).toEqual([]); | ||
| } | ||
| }); | ||
| }); | ||
|
Comment on lines
+80
to
+94
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📝 Info: Parity test does not cover English keys The new parity test unions ko/zh/ja/vi keys and requires each of those four to contain all of them; the four blocks are currently identical, so it passes. English has no Was this helpful? React with 👍 or 👎 to provide feedback. |
||
|
|
||
| describe("locale-aware source labels", () => { | ||
| it.each([ | ||
| ["en", "Voice of Customer", "Public"], | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📝 Info: Focus ring not visible on the current DAG node
.lineage-dag-node:focus circleand.lineage-dag-node[aria-current="true"] circlehave equal specificity, and the aria-current rule comes later, so a focused current node shows the current color, not the new focus color. Not a regression; focus already lost to aria-current before this change.(Refers to this code)
Was this helpful? React with 👍 or 👎 to provide feedback.