Skip to content

🎨 Palette: Progressive character limit feedback and duplicate aria-describedby fix#160

Open
Sczitzo wants to merge 1 commit into
mainfrom
palette/progressive-character-limit-15127355593665063117
Open

🎨 Palette: Progressive character limit feedback and duplicate aria-describedby fix#160
Sczitzo wants to merge 1 commit into
mainfrom
palette/progressive-character-limit-15127355593665063117

Conversation

@Sczitzo

@Sczitzo Sczitzo commented Jun 27, 2026

Copy link
Copy Markdown
Owner

💡 What: Added progressive feedback (color changes from gray -> orange -> red) to the character counter on the alternativeThought field. Added strictly static visually hidden elements for screen readers at specific thresholds (80% and 100%) and removed a redundant aria-describedby from the automaticThought field.
🎯 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-describedby prevents 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

…scribedby fix

Co-authored-by: Sczitzo <46541128+Sczitzo@users.noreply.github.com>
@google-labs-jules

Copy link
Copy Markdown
Contributor

👋 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 @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment on lines +141 to +145
{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>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant