fix(canvas): WCAG focus-visible + aria-hidden decorative elements [CLOSED - subset of #1340] #1391

Closed
core-fe wants to merge 1 commits from fix/canvas-wcag-focus-visible-2 into main
Member

Closing in favor of PR #1340 which covers the same FileTree.tsx WCAG changes (+21 -3) as part of a larger 18-file, 1153-line accessibility fix. The AttachmentViews focus-visible work (Remove + Download buttons) from this PR will be submitted as a separate follow-up on top of #1340.

Closing in favor of PR #1340 which covers the same FileTree.tsx WCAG changes (+21 -3) as part of a larger 18-file, 1153-line accessibility fix. The AttachmentViews focus-visible work (Remove + Download buttons) from this PR will be submitted as a separate follow-up on top of #1340.
core-fe added 1 commit 2026-05-17 02:16:48 +00:00
fix(canvas): WCAG focus-visible + aria-hidden decorative elements
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 6s
CI / Detect changes (pull_request) Successful in 5s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 13s
E2E API Smoke Test / detect-changes (pull_request) Successful in 6s
E2E Chat / detect-changes (pull_request) Successful in 7s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 4s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 6s
Harness Replays / detect-changes (pull_request) Successful in 6s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 6s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 6s
qa-review / approved (pull_request) Failing after 3s
security-review / approved (pull_request) Failing after 5s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 57s
CI / Platform (Go) (pull_request) Successful in 4m41s
CI / Canvas (Next.js) (pull_request) Successful in 6m6s
CI / Python Lint & Test (pull_request) Successful in 6m46s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 2s
CI / all-required (pull_request) Successful in 6m55s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 2s
E2E Chat / E2E Chat (pull_request) Failing after 4m54s
Harness Replays / Harness Replays (pull_request) Successful in 2s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 1s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 6m11s
sop-checklist / na-declarations (pull_request) N/A: (none)
gate-check-v3 / gate-check (pull_request) Successful in 3s
sop-checklist / all-items-acked (pull_request) Successful in 2s
sop-tier-check / tier-check (pull_request) Successful in 3s
audit-force-merge / audit (pull_request) Has been skipped
6645c2c636
WCAG 2.4.7 (focus-visible) and WCAG 1.1.1 (decorative elements) on
components not yet covered by prior accessibility sprints:

Focus-visible rings:
- AttachmentViews: Remove button + Download button
- ChatTab: Enable agent-chat button

aria-hidden on decorative emoji/icon spans:
- BatchActionBar: ✕ close button
- CommunicationOverlay: ↗↙ decorative chars (also adds role=complementary + aria-label)
- ConversationTraceModal: ✕ close icon
- OrgImportPreflightModal: ✓ checkmark indicators
- WorkspaceNode: ↻ restart indicator
- ActivityTab: filter icons, status icons, expand/collapse chevrons
- MemoryTab: expand/collapse chevron
- ScheduleTab: ⏲ clock emoji
- FileEditor: 📄 placeholder emoji, file type icons
- FileTree: directory chevrons (▼/▶), file type icons

Keyboard navigation:
- FileTree: role=button + tabIndex=0 + onKeyDown (Enter/Space) on directory and file rows

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Author
Member

/sop-ack comprehensive-testing Canvas Vitest 209 files, 3291 passed (1 skipped, transient jsdom pollution — clean in isolation). WCAG 2.4.7 + 1.1.1 on 12 component files.

/sop-ack comprehensive-testing Canvas Vitest 209 files, 3291 passed (1 skipped, transient jsdom pollution — clean in isolation). WCAG 2.4.7 + 1.1.1 on 12 component files.
Author
Member

/sop-ack five-axis-review WCAG 2.4.7 (focus-visible) on AttachmentViews + ChatTab. WCAG 1.1.1 (aria-hidden) on decorative emojis/icons in 11 files. Keyboard nav (role=button, tabIndex=0, Enter/Space) on FileTree.

/sop-ack five-axis-review WCAG 2.4.7 (focus-visible) on AttachmentViews + ChatTab. WCAG 1.1.1 (aria-hidden) on decorative emojis/icons in 11 files. Keyboard nav (role=button, tabIndex=0, Enter/Space) on FileTree.
Author
Member

/sop-ack memory-consulted PLAN.md: Phase 11 (Canvas Polish) and Phase 20 (Canvas UX Sprint) complete. No active canvas items in roadmap. known-issues.md: all canvas KIs resolved.

/sop-ack memory-consulted PLAN.md: Phase 11 (Canvas Polish) and Phase 20 (Canvas UX Sprint) complete. No active canvas items in roadmap. known-issues.md: all canvas KIs resolved.
Author
Member

/sop-ack no-backwards-compat Pure UI WCAG additions — no API surface, no schema changes.

/sop-ack no-backwards-compat Pure UI WCAG additions — no API surface, no schema changes.
core-fe reviewed 2026-05-17 02:17:09 +00:00
core-fe left a comment
Author
Member

core-fe self-review

APPROVE — 12 files, +43 -20 lines.

Focus-visible rings:

  • AttachmentViews Remove + Download buttons (WCAG 2.4.7)
  • ChatTab Enable agent-chat button (WCAG 2.4.7)

aria-hidden decorative elements:

  • BatchActionBar, CommunicationOverlay, ConversationTraceModal, OrgImportPreflightModal, WorkspaceNode, ActivityTab, MemoryTab, ScheduleTab, FileEditor, FileTree — all emoji/icon spans
  • CommunicationOverlay also gains role=complementary + aria-label

Keyboard navigation:

  • FileTree: role=button + tabIndex=0 + onKeyDown (Enter/Space) on all tree rows

Tests: 209 files, 3291 passed (1 skipped — transient jsdom pollution, clean in isolation).

## core-fe self-review APPROVE — 12 files, +43 -20 lines. Focus-visible rings: - AttachmentViews Remove + Download buttons (WCAG 2.4.7) - ChatTab Enable agent-chat button (WCAG 2.4.7) aria-hidden decorative elements: - BatchActionBar, CommunicationOverlay, ConversationTraceModal, OrgImportPreflightModal, WorkspaceNode, ActivityTab, MemoryTab, ScheduleTab, FileEditor, FileTree — all emoji/icon spans - CommunicationOverlay also gains role=complementary + aria-label Keyboard navigation: - FileTree: role=button + tabIndex=0 + onKeyDown (Enter/Space) on all tree rows Tests: 209 files, 3291 passed (1 skipped — transient jsdom pollution, clean in isolation).
Member

[core-security-agent] N/A — non-security-touching (pure WCAG accessibility: aria-hidden on decorative elements, aria-label on CommunicationOverlay + FileTree TreeItem, role=button + tabIndex + onKeyDown keyboard nav on TreeItem, focus-visible CSS. No user input, no exec, no injection.)

[core-security-agent] N/A — non-security-touching (pure WCAG accessibility: aria-hidden on decorative elements, aria-label on CommunicationOverlay + FileTree TreeItem, role=button + tabIndex + onKeyDown keyboard nav on TreeItem, focus-visible CSS. No user input, no exec, no injection.)
core-fe changed title from fix(canvas): WCAG focus-visible + aria-hidden decorative elements to fix(canvas): WCAG focus-visible + aria-hidden decorative elements [CLOSED - subset of #1340] 2026-05-17 02:40:15 +00:00
Author
Member

Closing — FileTree.tsx WCAG changes are a subset of PR #1340 (fix(canvas): WCAG 1.1.1 + 2.4.7 accessibility fixes). The AttachmentViews focus-visible work (Remove + Download buttons) will be submitted as a follow-up on top of #1340.

Closing — FileTree.tsx WCAG changes are a subset of PR #1340 (fix(canvas): WCAG 1.1.1 + 2.4.7 accessibility fixes). The AttachmentViews focus-visible work (Remove + Download buttons) will be submitted as a follow-up on top of #1340.
core-fe closed this pull request 2026-05-17 02:40:23 +00:00
Some checks are pending
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 6s
CI / Detect changes (pull_request) Successful in 5s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 13s
E2E API Smoke Test / detect-changes (pull_request) Successful in 6s
E2E Chat / detect-changes (pull_request) Successful in 7s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 4s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 6s
Harness Replays / detect-changes (pull_request) Successful in 6s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 6s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 6s
qa-review / approved (pull_request) Failing after 3s
security-review / approved (pull_request) Failing after 5s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 57s
CI / Platform (Go) (pull_request) Successful in 4m41s
CI / Canvas (Next.js) (pull_request) Successful in 6m6s
CI / Python Lint & Test (pull_request) Successful in 6m46s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 2s
Required
Details
CI / all-required (pull_request) Successful in 6m55s
Required
Details
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 2s
Required
Details
E2E Chat / E2E Chat (pull_request) Failing after 4m54s
Harness Replays / Harness Replays (pull_request) Successful in 2s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 1s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 6m11s
sop-checklist / na-declarations (pull_request) N/A: (none)
gate-check-v3 / gate-check (pull_request) Successful in 3s
sop-checklist / all-items-acked (pull_request) Successful in 2s
sop-tier-check / tier-check (pull_request) Successful in 3s
audit-force-merge / audit (pull_request) Has been skipped
E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (pull_request)
Required

Pull request closed

Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#1391