discourse/app
Keegan George d1f6e5f4f3
Some checks are pending
Licenses / run (push) Waiting to run
Linting / run (push) Waiting to run
Publish Assets / publish-assets (push) Waiting to run
Tests / core backend (push) Waiting to run
Tests / plugins backend (push) Waiting to run
Tests / core frontend (Chrome) (push) Waiting to run
Tests / plugins frontend (push) Waiting to run
Tests / themes frontend (push) Waiting to run
Tests / core system (push) Waiting to run
Tests / plugins system (push) Waiting to run
Tests / themes system (push) Waiting to run
Tests / core frontend (Firefox ESR) (push) Waiting to run
Tests / core frontend (Firefox Evergreen) (push) Waiting to run
Tests / chat system (push) Waiting to run
Tests / merge (push) Blocked by required conditions
FIX: Ctrl/Cmd + Enter search results should open in new tab (#34989)
## 🔍 Overview

Fixes accessibility issue where
<kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>Enter</kbd> on keyboard-navigated
search results opened in the same tab instead of a new tab. Users can
now use standard browser shortcuts when navigating search results with
arrow keys.

##  More Details

Discourse prevents default browser behavior on Enter key events in
search results to handle custom routing, analytics logging, and menu
management. This custom handling needed explicit modifier key detection
since the default browser
<kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>Enter</kbd> behavior was bypassed.
The fix adds proper <kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>Enter</kbd>
handling while preserving all existing functionality.

## 📷 Screen Recordings

### ← Before

https://github.com/user-attachments/assets/3b8715bf-c5bb-4f23-87f0-ee66b088b220



### → After  

https://github.com/user-attachments/assets/e235a311-bf27-467c-93d5-a9233228fae3



### 🔗 References


https://meta.discourse.org/t/open-in-new-tab-browser-keybind-fails-on-search-results/384004?u=keegan
2025-09-26 11:45:35 -07:00
..
assets FIX: Ctrl/Cmd + Enter search results should open in new tab (#34989) 2025-09-26 11:45:35 -07:00
controllers DEV: Allow ServerSession to store arbitrary data (#34919) 2025-09-26 10:35:28 +02:00
helpers FIX: Add ld+json VideoObject to each lazy video (#34678) 2025-09-03 22:01:14 +08:00
jobs DEV: Allow impersonation without session swapping (#34213) 2025-08-21 14:18:15 +08:00
mailers DEV: Remove ability to use users' names in group mention notifications and mentions shown in emails and added :user_notification_email_options plugin modifier to allow plugins reintroduce this or other modifications to emails (#33449) 2025-07-14 15:20:08 -05:00
models DEV: Allow ServerSession to store arbitrary data (#34919) 2025-09-26 10:35:28 +02:00
queries/reports DEV: Refactor reports index into service (#31667) 2025-03-11 14:36:06 +10:00
serializers FEATURE: Allow hiding user fields on signup form (#34672) 2025-09-15 10:42:07 +08:00
services FEATURE: open the discourse-id gates (#34949) 2025-09-24 16:59:07 +02:00
views UX: Redesign 404 (#34999) 2025-09-25 22:14:44 -06:00