Skip to content

♿️(frontend) restore presenter focus trapping after share links#2533

Open
Ovgodd wants to merge 4 commits into
mainfrom
fix/presenter-mode-focus-trapping
Open

♿️(frontend) restore presenter focus trapping after share links#2533
Ovgodd wants to merge 4 commits into
mainfrom
fix/presenter-mode-focus-trapping

Conversation

@Ovgodd

@Ovgodd Ovgodd commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Purpose

Fix accessibility regressions in presenter mode introduced with share links: focus escaping to the background document, focus loss on first/last slides, missing keyboard focus on "Copy link to slide", and Escape closing the presenter while the share dropdown is open.

fixfocusresenter.mp4

Proposal

  • Restore contain on the presenter FocusScope
  • Replace native disabled with aria-disabled on Prev/Next toolbar buttons
  • Add a visible :focus-visible indicator on the "Copy link to slide" menu item
  • Ignore Escape in presenter shortcuts while the share dropdown popover is open

@Ovgodd
Ovgodd requested a review from AntoLC July 22, 2026 10:53
@Ovgodd Ovgodd self-assigned this Jul 22, 2026
@Ovgodd
Ovgodd force-pushed the fix/presenter-mode-focus-trapping branch from 224c446 to 24256bb Compare July 22, 2026 10:55
@Ovgodd
Ovgodd marked this pull request as ready for review July 22, 2026 10:55
@Ovgodd
Ovgodd force-pushed the fix/presenter-mode-focus-trapping branch from 24256bb to 370910e Compare July 22, 2026 10:57
@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Size Change: 0 B

Total Size: 4.36 MB

📦 View Changed
Filename Size Change
apps/impress/out/_next/static/673d96b3/_buildManifest.js 0 B -677 B (removed) 🏆
apps/impress/out/_next/static/41629446/_buildManifest.js 677 B +677 B (new file) 🆕

compressed-size-action

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Presenter mode now contains focus within the overlay and preserves open popovers during Escape handling. Floating-bar navigation uses aria-disabled semantics, excludes unavailable controls from initial focus selection, prevents clicks on unavailable controls, and adds visible focus styling. The changelog records the focus-trapping restoration.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: antolc

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main accessibility fix in presenter mode after share links.
Description check ✅ Passed The description matches the changeset and accurately lists the presenter accessibility fixes implemented.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/presenter-mode-focus-trapping

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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
`@src/frontend/apps/impress/src/features/docs/doc-presenter/hooks/usePresenterShortcuts.ts`:
- Around line 74-83: Update the Escape handling in usePresenterShortcuts so
presenter closure is blocked only when the presenter’s own actions popover is
open. Replace the document-wide .react-aria-Popover query with the floating
bar’s isActionsOpen state or an equivalent presenter-owned ref/marker, while
preserving fullscreen behavior and closing when no presenter popover is active.
🪄 Autofix (Beta)

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: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: cc09653b-fde9-49f3-9fb4-8e1d309fbcfc

📥 Commits

Reviewing files that changed from the base of the PR and between 9c3bc8a and 24256bb.

📒 Files selected for processing (4)
  • CHANGELOG.md
  • src/frontend/apps/impress/src/features/docs/doc-presenter/components/PresenterFloatingBar.tsx
  • src/frontend/apps/impress/src/features/docs/doc-presenter/components/PresenterOverlay.tsx
  • src/frontend/apps/impress/src/features/docs/doc-presenter/hooks/usePresenterShortcuts.ts

Restore FocusScope and aria-disabled for access presenter nav after share links
@Ovgodd
Ovgodd force-pushed the fix/presenter-mode-focus-trapping branch from 370910e to 4611771 Compare July 22, 2026 11:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant