diff --git a/src/cockpitMarkup.test.mjs b/src/cockpitMarkup.test.mjs
index d4167f043..3f461c392 100644
--- a/src/cockpitMarkup.test.mjs
+++ b/src/cockpitMarkup.test.mjs
@@ -1275,7 +1275,7 @@ test('cockpit briefing cycle control keeps its state as the accessible name', ()
assert.match(match[0], />CYCLE OFF<\/button>/);
assert.match(
match[0],
- /title="Cycle briefing pages automatically every 9 seconds \(Signals → Local\)\./,
+ /title="Cycle briefing pages automatically every 9 seconds \(Signals → News → Local\)\./,
);
// The presented label is the state; the help is only the tooltip.
diff --git a/src/ui/cockpitBriefPages.js b/src/ui/cockpitBriefPages.js
index 943255eae..9f75c83d8 100644
--- a/src/ui/cockpitBriefPages.js
+++ b/src/ui/cockpitBriefPages.js
@@ -31,6 +31,12 @@ export const COCKPIT_BRIEF_PAGES = [
subtitleKey: msg('OBSERVED / MAPPED PINGS'),
sourceKey: msg('SOURCE-BACKED EVENTS · NO SYNTHETIC NEWS'),
},
+ {
+ id: 'news',
+ kickerKey: msg('REGIONAL NEWS'),
+ subtitleKey: msg('LATEST LOCATION-MATCHED REPORTING'),
+ // The news footer comes from the news state (`news.footer`), not here.
+ },
{
id: 'local',
kickerKey: msg('LOCAL INFO'),
@@ -46,7 +52,7 @@ export const CYCLE_HELP_KEYS = Object.freeze({
'Stop automatic page cycling. Previous, Next, and the SIG/NEWS/LOCAL tabs stay available.',
),
off: msg(
- 'Cycle briefing pages automatically every 9 seconds (Signals → Local). Pauses while you hover or focus the panel. Live signal data refreshes continuously either way.',
+ 'Cycle briefing pages automatically every 9 seconds (Signals → News → Local). Pauses while you hover or focus the panel. Live signal data refreshes continuously either way.',
),
});
diff --git a/src/ui/views/panels/CockpitBriefing.vue b/src/ui/views/panels/CockpitBriefing.vue
index f0a86b1cc..cbb37b935 100644
--- a/src/ui/views/panels/CockpitBriefing.vue
+++ b/src/ui/views/panels/CockpitBriefing.vue
@@ -84,7 +84,8 @@ function leaveSignals() {
{{ b.source }}