Skip to content

Fix revealjs speaker view Layout test on macOS - #15231

Merged
cderv merged 1 commit into
mainfrom
fix/revealjs-speaker-layout-macos-test
Oct 30, 2026
Merged

cderv merged 1 commit into
mainfrom
fix/revealjs-speaker-layout-macos-test

Conversation

@cderv

@cderv cderv commented Oct 30, 2026

Copy link
Copy Markdown
Member

The speaker view Layout test added in #15164 fails in chromium, firefox and webkit on the nightly macOS Playwright job, while the Linux job passes.

Root cause

The test pressed ArrowDown on the focused Layout <select> and expected the value to become wide. On macOS, the three browser engines follow the platform convention: ArrowDown or ArrowUp on a closed select opens the popup and leaves the value unchanged. Blink and WebKit do this through PopsMenuByArrowKeys in their Mac theme, Gecko through an XP_MACOSX branch in HTMLSelectEventListener.cpp. The speaker view behaves correctly; only the test assumed the Linux and Windows key behavior.

Fix

The test now sets the value with selectOption('wide') and checks the value, its visible label and the accessible name. It still presses ArrowDown on the select and checks that the deck does not move, without asserting the value afterwards. The keydown reaches the select on macOS too, so this still exercises the speaker view rule that keys pressed on native controls are not forwarded to the slides.

With that rule removed from the rendered speaker view, the test fails on the deck position check in all three browsers, so it still catches the regression #15164 guards against.

PR CI has no macOS Playwright run, so the first nightly after merge confirms the fix on macOS.

Checklist

I have (if applicable):

  • referenced the GitHub issue this PR closes
  • updated the appropriate changelog in the PR
  • ensured the present test suite passes
  • added new tests
  • created a separate documentation PR in Quarto's website repo and linked it to this PR
AI-assisted PR
  • AI tool used: Claude Code
  • Codebase grounding: local clone, Playwright traces from the failing nightly run, Chromium, WebKit and Gecko sources
  • Human review: I have reviewed, tested, and verified the AI-generated content before submitting.

Note: autonomous AI agents submitting PRs without human oversight are not permitted — see the Code of Conduct.

The test pressed ArrowDown on the focused Layout select and expected the
value to become wide. On macOS, Chromium, WebKit and Firefox all open the
popup on ArrowDown or ArrowUp over a closed select instead of changing the
value (Blink and WebKit through PopsMenuByArrowKeys on the Mac theme,
Gecko through its XP_MACOSX branch in HTMLSelectEventListener). The value
stayed default, so the nightly macOS Playwright job failed in all three
browsers while Linux and Windows passed.

The test checks two things that do not need the same key. The value,
its visible label and the accessible name are now set and checked with
selectOption. The arrow key press stays, followed by the existing check
that the deck does not move, without asserting the value afterwards. The
keydown still reaches the select on macOS, so the speaker view's guard
against forwarding keys from native controls is still exercised there.

Removing that guard from the rendered speaker view makes the test fail
on the deck position check in chromium, firefox and webkit, so the
remaining assertion still catches the regression it was written for.
This is a characterization fix: no macOS runner was available locally,
and the macOS result will come from the next nightly run.
@posit-snyk-bot

posit-snyk-bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

✅ Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
✅ Open Source Security 0 0 0 0 0 issues
✅ Licenses 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@cderv
cderv merged commit fd40c94 into main Oct 30, 2026
52 checks passed
@cderv
cderv deleted the fix/revealjs-speaker-layout-macos-test branch October 30, 2026 13:15
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.

2 participants