Skip to content

fix(a11y): enlarge interactive targets to 24×24 (A9) - #59

Merged
BrianGenisio merged 2 commits into
mainfrom
fix/a11y-a9-target-size
Aug 12, 2026
Merged

fix(a11y): enlarge interactive targets to 24×24 (A9)#59
BrianGenisio merged 2 commits into
mainfrom
fix/a11y-a9-target-size

Conversation

@BrianGenisio

Copy link
Copy Markdown
Contributor

Summary

Closes #53 ([a11y][A9]). Composer attach/send controls and the session delete button were below the WCAG 2.2 AA 24×24 CSS pixel minimum (18×18 and 22×22). Hit areas are grown via min-width / min-height (and explicit 24×24 on delete); icon glyphs stay smaller.

Changes

In public/app.css:

  • .composer__icon-btn and .composer__send-btn get min-width / min-height: 24px (toolbar SVGs remain height: 18px)
  • .session-item__delete moves from 22×22 to 24×24, with flex centering so the 12×12 trash icon stays centered

Sidebar resizer widening left as optional polish (keyboard alternative already exists). No DS / A6 / D7 changes.

Test plan

  • npm test (CSS hit-area guards in tests/dom/target-size-a9.test.js)
  • axe shrink-only gate — passed; no baseline change
  • Playwright bounding boxes in light + dark: attach image/file, Send/Stop, delete conversation all measure 24×24
  • Spot-check layout at common viewport widths (composer toolbar still looks balanced; delete icon still aligns in session rows)

Made with Cursor

Grow composer attach/send hit areas and the session delete control so
they meet WCAG 2.5.8 without enlarging the icon glyphs.

Co-authored-by: Cursor <cursoragent@cursor.com>
@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1db69615-9c41-4b0c-bb60-2a20401dd35a

📥 Commits

Reviewing files that changed from the base of the PR and between 0545b69 and 52f2435.

📒 Files selected for processing (1)
  • tests/dom/target-size-a9.test.js

📝 Walkthrough

Walkthrough

The CSS increases session delete, composer attachment, and composer send controls to minimum 24×24 pixel interaction targets. The session delete icon is centered with inline flexbox. Vitest tests parse public/app.css, calculate effective dimensions, verify target sizes, and confirm that composer toolbar glyphs remain 18px high.

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the accessibility fix and the primary change to enlarge interactive targets to 24×24.
Description check ✅ Passed The description directly explains the target-size fixes, affected controls, validation results, and intentionally excluded resizer change.
Linked Issues check ✅ Passed The changes satisfy issue #53 by enlarging composer and delete targets, preserving glyph sizes, and adding CSS guards and validation.
Out of Scope Changes check ✅ Passed The changes are limited to the issue scope: target-size CSS updates and tests for the affected controls.

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@tests/dom/target-size-a9.test.js`:
- Around line 25-32: Update the regular expression in pxValue to require a CSS
declaration boundary before the requested property name, preventing width or
height from matching inside min-width or min-height. Preserve the existing value
parsing and null behavior.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5bbfc67c-8b38-4fca-a46a-ef5e26a9f514

📥 Commits

Reviewing files that changed from the base of the PR and between 38a76f1 and 0545b69.

📒 Files selected for processing (2)
  • public/app.css
  • tests/dom/target-size-a9.test.js

Comment thread tests/dom/target-size-a9.test.js
Require a declaration boundary before the property so width/height
do not match inside min-width/min-height.

Co-authored-by: Cursor <cursoragent@cursor.com>
@BrianGenisio
BrianGenisio merged commit 6ea6866 into main Aug 12, 2026
2 checks passed
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.

[a11y][A9] Interactive targets below 24×24 CSS pixels

1 participant