🎨 Palette: Progressive character limit feedback and duplicate aria-describedby fix#160
🎨 Palette: Progressive character limit feedback and duplicate aria-describedby fix#160Sczitzo wants to merge 1 commit into
Conversation
…scribedby fix Co-authored-by: Sczitzo <46541128+Sczitzo@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a0da804b3a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| {alternativeThought.length >= 240 && alternativeThought.length < 300 && ( | ||
| <div role="status" className="sr-only">Approaching limit</div> | ||
| )} | ||
| {alternativeThought.length === 300 && ( | ||
| <div role="status" className="sr-only">Character limit reached</div> |
There was a problem hiding this comment.
Keep the status live region mounted before updating it
When a screen reader user crosses either threshold, these role="status" nodes are created already containing the final message. Polite live regions are only reliably announced after the live-region element already exists and its contents change (MDN notes this pattern), so the new 240/300-character warnings can be silent in the exact scenario this commit targets. Keep a stable empty status element mounted and update its text when the threshold changes.
Useful? React with 👍 / 👎.
💡 What: Added progressive feedback (color changes from gray -> orange -> red) to the character counter on the
alternativeThoughtfield. Added strictly static visually hidden elements for screen readers at specific thresholds (80% and 100%) and removed a redundantaria-describedbyfrom theautomaticThoughtfield.🎯 Why: To provide clearer visual cues to users as they approach the character limit without spamming screen reader users with every keystroke change. Removing the redundant
aria-describedbyprevents screen readers from reading the same "Optional" label twice.📸 Before/After: Visual changes are evident when typing long text; the counter turns orange at 240 chars, and red/bold at 270 chars.
♿ Accessibility: Improves screen reader experience by replacing a noisy dynamic text counter with targeted static warnings ("Approaching limit" and "Character limit reached") using
role="status". Fixed a duplicate label reading issue.PR created automatically by Jules for task 15127355593665063117 started by @Sczitzo