From 08f1e63a31df562fa8e4b53e1ea3f35fbba242a8 Mon Sep 17 00:00:00 2001
From: lawsie <5183697+lawsie@users.noreply.github.com>
Date: Mon, 18 May 2026 13:40:07 +0100
Subject: [PATCH 1/8] Don't overlap menus
---
accessibility/keyboardui.js | 25 ++++---------------------
main/context.js | 2 +-
main/input.js | 9 +++++++++
style.css | 34 ++++++++++++++++++++--------------
4 files changed, 34 insertions(+), 36 deletions(-)
diff --git a/accessibility/keyboardui.js b/accessibility/keyboardui.js
index 3fb14def..d0fb7f03 100644
--- a/accessibility/keyboardui.js
+++ b/accessibility/keyboardui.js
@@ -492,7 +492,6 @@ function formatKeys(keys) {
const ShortcutsPanel = {
panel: null,
- dock: "left",
previousFocus: null,
init() {
@@ -503,17 +502,17 @@ const ShortcutsPanel = {
createPanel() {
const div = document.createElement("div");
div.id = "shortcutsPanel";
- div.className = "shortcuts-panel hidden shortcuts-panel--left";
+ div.className = "shortcuts-panel hidden";
div.setAttribute("role", "region");
div.setAttribute("aria-label", translate("shortcut_panel_title"));
div.tabIndex = 0;
div.innerHTML = `
-
+
${translate("shortcut_panel_title")}
`;
- document.body.appendChild(div);
+ document.getElementById("maincontent").appendChild(div);
this.panel = div;
},
@@ -555,27 +554,11 @@ const ShortcutsPanel = {
this.panel.classList.contains("hidden") ? this.show() : this.hide();
},
- setDock(side) {
- this.dock = side;
- this.panel.classList.toggle("shortcuts-panel--left", side === "left");
- this.panel.classList.toggle("shortcuts-panel--right", side === "right");
- },
-
setupListeners() {
- // Not handled by InputManager as they are set specifically
- // to listen when the panel has focus, not globally
document.addEventListener("click", (e) => {
if (e.target.id === "closeShortcutsPanel") this.hide();
});
this.panel.addEventListener("keydown", (e) => {
- if (e.key === "ArrowLeft") {
- e.preventDefault();
- this.setDock("left");
- }
- if (e.key === "ArrowRight") {
- e.preventDefault();
- this.setDock("right");
- }
if (e.key === "ArrowUp") {
e.preventDefault();
this.panel.scrollBy({ top: -100, behavior: "instant" });
@@ -584,7 +567,7 @@ const ShortcutsPanel = {
e.preventDefault();
this.panel.scrollBy({ top: 100, behavior: "instant" });
}
- if (e.key === "Tab" || e.key === "Escape") {
+ if (e.key === "Escape") {
e.preventDefault();
e.stopPropagation();
this.hide();
diff --git a/main/context.js b/main/context.js
index 000be22a..4c06a8c4 100644
--- a/main/context.js
+++ b/main/context.js
@@ -44,7 +44,7 @@ export const ContextManager = {
if (isInput || isBlocklyTyping) return "TYPING";
// OVERLAY: are they currently in an overlay?
- const overlaySelectors = "#area-menu-overlay, .shortcuts-panel";
+ const overlaySelectors = "#area-menu-overlay";
const isOverlayVisible = Array.from(
document.querySelectorAll(overlaySelectors),
).some((el) => window.getComputedStyle(el).display !== "none");
diff --git a/main/input.js b/main/input.js
index 15dd75cd..c2e3aa09 100644
--- a/main/input.js
+++ b/main/input.js
@@ -129,6 +129,15 @@ export function setupInput() {
"#shortcutsBtn",
].forEach((sel) => pushUnique(document.querySelector(sel)));
+ // 6c) Shortcuts panel (when visible)
+ const shortcutsPanel = document.getElementById("shortcutsPanel");
+ pushUnique(shortcutsPanel);
+ if (shortcutsPanel) {
+ shortcutsPanel
+ .querySelectorAll("a[href], button:not([disabled])")
+ .forEach(pushUnique);
+ }
+
// 7) Main UI controls (in natural order)
[
"#menuBtn",
diff --git a/style.css b/style.css
index 802a8511..6d25a6d4 100644
--- a/style.css
+++ b/style.css
@@ -468,6 +468,7 @@ button {
gap: 0;
box-sizing: border-box;
overflow-x: hidden;
+ position: relative;
}
#canvasArea {
@@ -493,7 +494,7 @@ button {
padding: 0 8px;
background-color: var(--color-bg);
box-shadow: 0px 0px 10px var(--color-shadow);
- z-index: 10;
+ z-index: 100;
}
#blocklyZoomControls .toolbar-divider {
@@ -1656,25 +1657,18 @@ kbd {
font-size: 1.2em;
}
-/* Shortcuts panel — floats over UI, pointer events pass through the wrapper */
+/* Shortcuts panel — overlays main content area, does not affect editor layout */
.shortcuts-panel {
- position: fixed;
+ position: absolute;
top: 0;
bottom: 0;
- width: min(300px, 100%);
+ right: 0;
+ width: 400px;
+ box-sizing: border-box;
background-color: var(--color-bg);
padding: 1.5em;
overflow-y: auto;
- z-index: 10002;
-}
-
-.shortcuts-panel--left {
- left: 0;
-}
-
-.shortcuts-panel--right {
- right: 0;
- left: auto;
+ z-index: 90;
}
.shortcuts-panel:focus {
@@ -1687,6 +1681,18 @@ kbd {
top: 1em;
right: 1em;
float: none;
+ width: 1.5em;
+ height: 1.5em;
+ padding: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.shortcuts-panel .help-link-button:focus {
+ outline: 2px solid var(--color-focus);
+ outline-offset: 2px;
+ border-radius: 2px;
}
.shortcuts-panel h1 {
From 9c54b85ac450794be1be07cf910360784eb52e1f Mon Sep 17 00:00:00 2001
From: lawsie <5183697+lawsie@users.noreply.github.com>
Date: Mon, 18 May 2026 13:54:43 +0100
Subject: [PATCH 2/8] Move search when panel open
---
accessibility/keyboardui.js | 4 +++-
style.css | 4 ++++
style/blockly.css | 6 +++++-
ui/colourpicker.js | 4 ++--
4 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/accessibility/keyboardui.js b/accessibility/keyboardui.js
index d0fb7f03..7bf99ae3 100644
--- a/accessibility/keyboardui.js
+++ b/accessibility/keyboardui.js
@@ -463,7 +463,7 @@ function getShortcuts() {
},
{
label: translate("shortcut_quick_colour"),
- keys: `P`,
+ keys: `C`,
category: translate("shortcut_category_gizmos"),
},
{
@@ -539,6 +539,7 @@ const ShortcutsPanel = {
.join("");
this.previousFocus = document.activeElement;
this.panel.classList.remove("hidden");
+ document.body.classList.add("shortcuts-panel-open");
this.panel.focus();
document.getElementById("shortcutsBtn")?.classList.add("active");
},
@@ -547,6 +548,7 @@ const ShortcutsPanel = {
this.previousFocus?.focus();
this.previousFocus = null;
this.panel.classList.add("hidden");
+ document.body.classList.remove("shortcuts-panel-open");
document.getElementById("shortcutsBtn")?.classList.remove("active");
},
diff --git a/style.css b/style.css
index 6d25a6d4..ad643acb 100644
--- a/style.css
+++ b/style.css
@@ -1699,3 +1699,7 @@ kbd {
font-size: 1.8em;
margin-top: 10px;
}
+
+.shortcuts-panel #shortcuts-table {
+ margin-bottom: 1.5em;
+}
diff --git a/style/blockly.css b/style/blockly.css
index 10d2eefd..6fce4e07 100644
--- a/style/blockly.css
+++ b/style/blockly.css
@@ -260,6 +260,10 @@ body[data-theme="low-vision"] {
}
/* Search Highlight Styles */
+.shortcuts-panel-open .blockly-ws-search {
+ transform: translateX(-400px);
+}
+
.blockly-ws-search {
background: var(--color-bg);
margin-top: 5px;
@@ -267,7 +271,7 @@ body[data-theme="low-vision"] {
justify-content: center;
padding: 0.25em;
position: absolute;
- z-index: 70;
+ z-index: 100;
}
/* Fade top-level blocks that contain no search matches */
diff --git a/ui/colourpicker.js b/ui/colourpicker.js
index b858c48b..1fbfd161 100644
--- a/ui/colourpicker.js
+++ b/ui/colourpicker.js
@@ -1864,8 +1864,8 @@ class CustomColorPicker {
document.body.classList.add("color-picker-open");
document.getElementById("colorPickerButton")?.classList.add("active");
- // Add P shortcut to pick current colour
- InputManager.on("*", "KeyP", (e) => {
+ // Add C shortcut to pick current colour
+ InputManager.on("*", "KeyC", (e) => {
if (ContextManager.getCurrentContext() === "TYPING") return;
if (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey) return;
e.preventDefault();
From 8978bb8c5ba253ef1e094e160fffaca1b8cdc0fe Mon Sep 17 00:00:00 2001
From: lawsie <5183697+lawsie@users.noreply.github.com>
Date: Mon, 18 May 2026 13:59:06 +0100
Subject: [PATCH 3/8] Change panel title
---
locale/de.js | 2 +-
locale/en.js | 2 +-
locale/es.js | 2 +-
locale/fr.js | 2 +-
locale/it.js | 2 +-
locale/pl.js | 2 +-
locale/pt.js | 2 +-
locale/sv.js | 2 +-
8 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/locale/de.js b/locale/de.js
index d6f75f8b..ba4c1d0a 100644
--- a/locale/de.js
+++ b/locale/de.js
@@ -1215,7 +1215,7 @@ export default {
toolbar_zoom_out_ui: "Verkleinern",
toolbar_zoom_in_ui: "Vergrößern",
// Keyboard shortcuts panel — title and close button
- shortcut_panel_title: "Tastaturkürzel",
+ shortcut_panel_title: "Tastatursteuerung",
shortcut_panel_close: "Tastaturkürzel schließen",
// Keyboard shortcuts panel — labels
diff --git a/locale/en.js b/locale/en.js
index 954b1fde..fae5587c 100644
--- a/locale/en.js
+++ b/locale/en.js
@@ -1265,7 +1265,7 @@ export default {
toolbar_zoom_out_ui: "Zoom out",
toolbar_zoom_in_ui: "Zoom in",
// Keyboard shortcuts panel — title and close button
- shortcut_panel_title: "Keyboard shortcuts",
+ shortcut_panel_title: "Keyboard Controls",
shortcut_panel_close: "Close keyboard shortcuts",
// Keyboard shortcuts panel — labels
diff --git a/locale/es.js b/locale/es.js
index ff38394c..25c0ee50 100644
--- a/locale/es.js
+++ b/locale/es.js
@@ -1228,7 +1228,7 @@ export default {
toolbar_zoom_out_ui: "Alejar",
toolbar_zoom_in_ui: "Acercar",
// Keyboard shortcuts panel — title and close button
- shortcut_panel_title: "Atajos de teclado",
+ shortcut_panel_title: "Controles de teclado",
shortcut_panel_close: "Cerrar atajos de teclado",
// Keyboard shortcuts panel — labels
diff --git a/locale/fr.js b/locale/fr.js
index 9174c63e..4a787f0f 100644
--- a/locale/fr.js
+++ b/locale/fr.js
@@ -1226,7 +1226,7 @@ export default {
toolbar_zoom_out_ui: "Dézoomer",
toolbar_zoom_in_ui: "Zoomer",
// Keyboard shortcuts panel — title and close button
- shortcut_panel_title: "Raccourcis clavier",
+ shortcut_panel_title: "Commandes clavier",
shortcut_panel_close: "Fermer les raccourcis clavier",
// Keyboard shortcuts panel — labels
diff --git a/locale/it.js b/locale/it.js
index 8c2b673a..bca5d8a2 100644
--- a/locale/it.js
+++ b/locale/it.js
@@ -1217,7 +1217,7 @@ export default {
toolbar_zoom_out_ui: "Riduci zoom",
toolbar_zoom_in_ui: "Aumenta zoom",
// Keyboard shortcuts panel — title and close button
- shortcut_panel_title: "Scorciatoie da tastiera",
+ shortcut_panel_title: "Controlli da tastiera",
shortcut_panel_close: "Chiudi le scorciatoie da tastiera",
// Keyboard shortcuts panel — labels
diff --git a/locale/pl.js b/locale/pl.js
index 93207d5e..e43c3b5b 100644
--- a/locale/pl.js
+++ b/locale/pl.js
@@ -1222,7 +1222,7 @@ export default {
toolbar_zoom_out_ui: "Oddal",
toolbar_zoom_in_ui: "Przybliż",
// Keyboard shortcuts panel — title and close button
- shortcut_panel_title: "Skróty klawiaturowe",
+ shortcut_panel_title: "Sterowanie klawiaturą",
shortcut_panel_close: "Zamknij skróty klawiaturowe",
// Keyboard shortcuts panel — labels
diff --git a/locale/pt.js b/locale/pt.js
index 17b42e99..9997b683 100644
--- a/locale/pt.js
+++ b/locale/pt.js
@@ -1214,7 +1214,7 @@ export default {
toolbar_zoom_out_ui: "Reduzir zoom",
toolbar_zoom_in_ui: "Aumentar zoom",
// Keyboard shortcuts panel — title and close button
- shortcut_panel_title: "Atalhos de teclado",
+ shortcut_panel_title: "Controlos de teclado",
shortcut_panel_close: "Fechar atalhos de teclado",
// Keyboard shortcuts panel — labels
diff --git a/locale/sv.js b/locale/sv.js
index cdd65732..9d553d0c 100644
--- a/locale/sv.js
+++ b/locale/sv.js
@@ -1204,7 +1204,7 @@ export default {
toolbar_zoom_out_ui: "Zooma ut",
toolbar_zoom_in_ui: "Zooma in",
// Keyboard shortcuts panel — title and close button
- shortcut_panel_title: "Tangentbordsgenvägar",
+ shortcut_panel_title: "Tangentbordskontroller",
shortcut_panel_close: "Stäng tangentbordsgenvägar",
// Keyboard shortcuts panel — labels
From 288214d4be65ede4826d4babc87f024d2c632a2f Mon Sep 17 00:00:00 2001
From: lawsie <5183697+lawsie@users.noreply.github.com>
Date: Mon, 18 May 2026 14:03:13 +0100
Subject: [PATCH 4/8] Remove close button
---
accessibility/keyboardui.js | 13 ++++---------
style.css | 14 ++++----------
2 files changed, 8 insertions(+), 19 deletions(-)
diff --git a/accessibility/keyboardui.js b/accessibility/keyboardui.js
index 7bf99ae3..b0c811f1 100644
--- a/accessibility/keyboardui.js
+++ b/accessibility/keyboardui.js
@@ -507,9 +507,10 @@ const ShortcutsPanel = {
div.setAttribute("aria-label", translate("shortcut_panel_title"));
div.tabIndex = 0;
div.innerHTML = `
-
-
- ${translate("shortcut_panel_title")}
+
`;
document.getElementById("maincontent").appendChild(div);
@@ -521,9 +522,6 @@ const ShortcutsPanel = {
this.panel.querySelector("#shortcuts-panel-title").textContent = translate(
"shortcut_panel_title",
);
- this.panel
- .querySelector("#closeShortcutsPanel")
- .setAttribute("aria-label", translate("shortcut_panel_close"));
const tbody = this.panel.querySelector("tbody");
const groups = getShortcuts().reduce((acc, s) => {
(acc[s.category] ??= []).push(s);
@@ -557,9 +555,6 @@ const ShortcutsPanel = {
},
setupListeners() {
- document.addEventListener("click", (e) => {
- if (e.target.id === "closeShortcutsPanel") this.hide();
- });
this.panel.addEventListener("keydown", (e) => {
if (e.key === "ArrowUp") {
e.preventDefault();
diff --git a/style.css b/style.css
index ad643acb..85929b62 100644
--- a/style.css
+++ b/style.css
@@ -1676,17 +1676,11 @@ kbd {
outline-offset: -2px;
}
-.shortcuts-panel .close-button {
- position: absolute;
- top: 1em;
- right: 1em;
- float: none;
- width: 1.5em;
- height: 1.5em;
- padding: 0;
+.shortcuts-panel-header {
display: flex;
align-items: center;
- justify-content: center;
+ justify-content: space-between;
+ margin-bottom: 0.5em;
}
.shortcuts-panel .help-link-button:focus {
@@ -1697,7 +1691,7 @@ kbd {
.shortcuts-panel h1 {
font-size: 1.8em;
- margin-top: 10px;
+ margin: 0;
}
.shortcuts-panel #shortcuts-table {
From 3732f33b6149f10d1545034c79bb5665d24bc134 Mon Sep 17 00:00:00 2001
From: lawsie <5183697+lawsie@users.noreply.github.com>
Date: Mon, 18 May 2026 14:41:49 +0100
Subject: [PATCH 5/8] Add many more controls
---
accessibility/keyboardui.js | 89 ++++++++++++++++++++++++++++++-------
locale/de.js | 20 +++++++--
locale/en.js | 20 +++++++--
locale/es.js | 20 +++++++--
locale/fr.js | 20 +++++++--
locale/it.js | 20 +++++++--
locale/pl.js | 20 +++++++--
locale/pt.js | 20 +++++++--
locale/sv.js | 20 +++++++--
9 files changed, 202 insertions(+), 47 deletions(-)
diff --git a/accessibility/keyboardui.js b/accessibility/keyboardui.js
index b0c811f1..429b26dc 100644
--- a/accessibility/keyboardui.js
+++ b/accessibility/keyboardui.js
@@ -319,7 +319,7 @@ function getShortcuts() {
},
{
label: translate("shortcut_move_between_areas"),
- keys: `Tab`,
+ keys: `Tab / Shift + Tab`,
category: translate("shortcut_category_main"),
},
{
@@ -385,14 +385,51 @@ function getShortcuts() {
category: translate("shortcut_category_area_menu"),
},
+ {
+ label: translate("shortcut_toolbox"),
+ keys: `T`,
+ category: translate("shortcut_category_toolbox"),
+ },
+ {
+ label: translate("shortcut_nav_toolbox_blocks"),
+ keys: `↑ ↓ ← →`,
+ category: translate("shortcut_category_toolbox"),
+ },
+ {
+ label: translate("shortcut_add_block"),
+ keys: `Enter`,
+ category: translate("shortcut_category_toolbox"),
+ },
+
{
label: translate("shortcut_code_editor"),
keys: `${mod} + E`,
category: translate("shortcut_category_editor"),
},
{
- label: translate("shortcut_toolbox"),
- keys: `T`,
+ label: translate("shortcut_select_workspace"),
+ keys: `W`,
+ category: translate("shortcut_category_editor"),
+ },
+ {
+ label: translate("shortcut_move_through_blocks"),
+ keys: `↑ ↓`,
+ category: translate("shortcut_category_editor"),
+ },
+ {
+ label: translate("shortcut_move_in_out_blocks"),
+ keys: `← →`,
+ category: translate("shortcut_category_editor"),
+ },
+
+ {
+ label: translate("shortcut_next_block_stack"),
+ keys: `N`,
+ category: translate("shortcut_category_editor"),
+ },
+ {
+ label: translate("shortcut_prev_block_stack"),
+ keys: `B`,
category: translate("shortcut_category_editor"),
},
{
@@ -401,8 +438,33 @@ function getShortcuts() {
category: translate("shortcut_category_editor"),
},
{
- label: translate("shortcut_move_through_blocks"),
- keys: `↑ ↓ ← →`,
+ label: translate("shortcut_context_menu"),
+ keys: `${mod} + Enter`,
+ category: translate("shortcut_category_editor"),
+ },
+ {
+ label: translate("shortcut_duplicate_block"),
+ keys: `D`,
+ category: translate("shortcut_category_editor"),
+ },
+ {
+ label: translate("shortcut_detach_block"),
+ keys: `X`,
+ category: translate("shortcut_category_editor"),
+ },
+ {
+ label: translate("shortcut_start_move_block"),
+ keys: `M`,
+ category: translate("shortcut_category_editor"),
+ },
+ {
+ label: translate("shortcut_move_arrows"),
+ keys: `↑ ↓`,
+ category: translate("shortcut_category_editor"),
+ },
+ {
+ label: translate("shortcut_move_anywhere"),
+ keys: `${mod} + ↑ ↓ ← →`,
category: translate("shortcut_category_editor"),
},
{
@@ -425,11 +487,6 @@ function getShortcuts() {
keys: `Esc`,
category: translate("shortcut_category_editor"),
},
- {
- label: translate("shortcut_start_move_block"),
- keys: `M`,
- category: translate("shortcut_category_editor"),
- },
{
label: translate("shortcut_open_gizmos"),
@@ -480,12 +537,14 @@ function formatKeys(keys) {
return keys
.split(/( \+ | \/ )/)
.map((part) =>
- part === " + " || part === " / "
+ part === " + "
? part
- : part
- .split(" ")
- .map((k) => `${k}`)
- .join(" "),
+ : part === " / "
+ ? "
"
+ : part
+ .split(" ")
+ .map((k) => `${k}`)
+ .join(" "),
)
.join("");
}
diff --git a/locale/de.js b/locale/de.js
index ba4c1d0a..0e780ebc 100644
--- a/locale/de.js
+++ b/locale/de.js
@@ -1237,12 +1237,23 @@ export default {
shortcut_code_editor: "Code-Editor",
shortcut_toolbox: "Werkzeugkasten",
shortcut_add_block_by_name: "Block nach Name hinzufügen",
+ shortcut_add_block: "Ausgewählten Block hinzufügen",
shortcut_search_block: "Nach einem Block suchen",
- shortcut_select_next_result: "Nächstes Suchergebnis",
- shortcut_select_previous_result: "Vorheriges Suchergebnis",
- shortcut_focus_result: "Zum ausgewählten Suchergebnis springen",
- shortcut_move_through_blocks: "Durch Blöcke navigieren",
+ shortcut_select_next_result: "Suche: Nächstes Ergebnis",
+ shortcut_select_previous_result: "Suche: Vorheriges Ergebnis",
+ shortcut_focus_result: "Suche: Zum ausgewählten Block springen",
+ shortcut_nav_toolbox_blocks: "Kategorien und Blöcke navigieren",
+ shortcut_context_menu: "Kontextmenü öffnen",
+ shortcut_duplicate_block: "Block duplizieren",
+ shortcut_detach_block: "Block trennen",
shortcut_start_move_block: "Block verschieben",
+ shortcut_move_arrows: "Verschieben: zur Verbindung",
+ shortcut_move_anywhere: "Verschieben: überall",
+ shortcut_select_workspace: "Arbeitsbereich auswählen",
+ shortcut_move_through_blocks: "Durch Blöcke bewegen",
+ shortcut_move_in_out_blocks: "In/aus einem Block navigieren",
+ shortcut_next_block_stack: "Nächster Blockstapel",
+ shortcut_prev_block_stack: "Vorheriger Blockstapel",
shortcut_open_gizmos: "Gizmos",
shortcut_select_gizmo: "Gizmo auswählen",
shortcut_keyboard_cursor_gizmos: "Tastaturcursor für Gizmos",
@@ -1256,6 +1267,7 @@ export default {
shortcut_category_main: "Allgemein",
shortcut_category_menu: "Menü",
shortcut_category_area_menu: "Bereichsmenü",
+ shortcut_category_toolbox: "Werkzeugkasten",
shortcut_category_editor: "Editor",
shortcut_category_gizmos: "Gizmos",
diff --git a/locale/en.js b/locale/en.js
index fae5587c..4b87c4f8 100644
--- a/locale/en.js
+++ b/locale/en.js
@@ -1287,12 +1287,23 @@ export default {
shortcut_code_editor: "Code editor",
shortcut_toolbox: "Toolbox",
shortcut_add_block_by_name: "Add block by name",
+ shortcut_add_block: "Add selected block",
shortcut_search_block: "Search for a block",
- shortcut_select_next_result: "Next search result",
- shortcut_select_previous_result: "Previous search result",
- shortcut_focus_result: "Go to selected search result",
- shortcut_move_through_blocks: "Move through blocks",
+ shortcut_select_next_result: "Search: Next result",
+ shortcut_select_previous_result: "Search: Previous result",
+ shortcut_focus_result: "Search: Go to selected block",
+ shortcut_nav_toolbox_blocks: "Navigate categories and blocks",
+ shortcut_context_menu: "Open context menu",
+ shortcut_duplicate_block: "Duplicate block",
+ shortcut_detach_block: "Detach block",
shortcut_start_move_block: "Move block",
+ shortcut_move_arrows: "Move: to connection",
+ shortcut_move_anywhere: "Move: anywhere",
+ shortcut_select_workspace: "Select workspace",
+ shortcut_move_through_blocks: "Move through blocks",
+ shortcut_move_in_out_blocks: "Move in/out of a block",
+ shortcut_next_block_stack: "Next block stack",
+ shortcut_prev_block_stack: "Previous block stack",
shortcut_open_gizmos: "Gizmos",
shortcut_select_gizmo: "Select gizmo",
shortcut_keyboard_cursor_gizmos: "Keyboard cursor for gizmos",
@@ -1306,6 +1317,7 @@ export default {
shortcut_category_main: "Main",
shortcut_category_menu: "Menu",
shortcut_category_area_menu: "Area menu",
+ shortcut_category_toolbox: "Toolbox",
shortcut_category_editor: "Editor",
shortcut_category_gizmos: "Gizmos",
diff --git a/locale/es.js b/locale/es.js
index 25c0ee50..2fd5b161 100644
--- a/locale/es.js
+++ b/locale/es.js
@@ -1250,12 +1250,23 @@ export default {
shortcut_code_editor: "Editor de código",
shortcut_toolbox: "Caja de herramientas",
shortcut_add_block_by_name: "Añadir bloque por nombre",
+ shortcut_add_block: "Añadir bloque seleccionado",
shortcut_search_block: "Buscar un bloque",
- shortcut_select_next_result: "Siguiente resultado de búsqueda",
- shortcut_select_previous_result: "Resultado de búsqueda anterior",
- shortcut_focus_result: "Ir al resultado de búsqueda seleccionado",
- shortcut_move_through_blocks: "Navegar por los bloques",
+ shortcut_select_next_result: "Búsqueda: siguiente resultado",
+ shortcut_select_previous_result: "Búsqueda: resultado anterior",
+ shortcut_focus_result: "Búsqueda: ir al bloque seleccionado",
+ shortcut_nav_toolbox_blocks: "Navegar por categorías y bloques",
+ shortcut_context_menu: "Abrir menú contextual",
+ shortcut_duplicate_block: "Duplicar bloque",
+ shortcut_detach_block: "Desconectar bloque",
shortcut_start_move_block: "Mover bloque",
+ shortcut_move_arrows: "Mover: a conexión",
+ shortcut_move_anywhere: "Mover: a cualquier lugar",
+ shortcut_select_workspace: "Seleccionar área de trabajo",
+ shortcut_move_through_blocks: "Moverse por los bloques",
+ shortcut_move_in_out_blocks: "Entrar/salir de un bloque",
+ shortcut_next_block_stack: "Siguiente pila de bloques",
+ shortcut_prev_block_stack: "Pila de bloques anterior",
shortcut_open_gizmos: "Gizmos",
shortcut_select_gizmo: "Seleccionar gizmo",
shortcut_keyboard_cursor_gizmos: "Cursor de teclado para gizmos",
@@ -1269,6 +1280,7 @@ export default {
shortcut_category_main: "General",
shortcut_category_menu: "Menú",
shortcut_category_area_menu: "Menú de áreas",
+ shortcut_category_toolbox: "Caja de herramientas",
shortcut_category_editor: "Editor",
shortcut_category_gizmos: "Gizmos",
diff --git a/locale/fr.js b/locale/fr.js
index 4a787f0f..ad81bde3 100644
--- a/locale/fr.js
+++ b/locale/fr.js
@@ -1249,12 +1249,23 @@ export default {
shortcut_code_editor: "Éditeur de code",
shortcut_toolbox: "Boîte à outils",
shortcut_add_block_by_name: "Ajouter un bloc par nom",
+ shortcut_add_block: "Ajouter le bloc sélectionné",
shortcut_search_block: "Rechercher un bloc",
- shortcut_select_next_result: "Résultat de recherche suivant",
- shortcut_select_previous_result: "Résultat de recherche précédent",
- shortcut_focus_result: "Aller au résultat de recherche sélectionné",
- shortcut_move_through_blocks: "Naviguer dans les blocs",
+ shortcut_select_next_result: "Recherche : résultat suivant",
+ shortcut_select_previous_result: "Recherche : résultat précédent",
+ shortcut_focus_result: "Recherche : aller au bloc sélectionné",
+ shortcut_nav_toolbox_blocks: "Naviguer dans les catégories et les blocs",
+ shortcut_context_menu: "Ouvrir le menu contextuel",
+ shortcut_duplicate_block: "Dupliquer le bloc",
+ shortcut_detach_block: "Détacher le bloc",
shortcut_start_move_block: "Déplacer le bloc",
+ shortcut_move_arrows: "Déplacer : vers une connexion",
+ shortcut_move_anywhere: "Déplacer : n'importe où",
+ shortcut_select_workspace: "Sélectionner l'espace de travail",
+ shortcut_move_through_blocks: "Se déplacer dans les blocs",
+ shortcut_move_in_out_blocks: "Entrer/sortir d'un bloc",
+ shortcut_next_block_stack: "Pile de blocs suivante",
+ shortcut_prev_block_stack: "Pile de blocs précédente",
shortcut_open_gizmos: "Gizmos",
shortcut_select_gizmo: "Sélectionner un gizmo",
shortcut_keyboard_cursor_gizmos: "Curseur clavier pour les gizmos",
@@ -1268,6 +1279,7 @@ export default {
shortcut_category_main: "Général",
shortcut_category_menu: "Menu",
shortcut_category_area_menu: "Menu des zones",
+ shortcut_category_toolbox: "Boîte à outils",
shortcut_category_editor: "Éditeur",
shortcut_category_gizmos: "Gizmos",
diff --git a/locale/it.js b/locale/it.js
index bca5d8a2..5242014c 100644
--- a/locale/it.js
+++ b/locale/it.js
@@ -1239,12 +1239,23 @@ export default {
shortcut_code_editor: "Editor di codice",
shortcut_toolbox: "Casella degli strumenti",
shortcut_add_block_by_name: "Aggiungi blocco per nome",
+ shortcut_add_block: "Aggiungi blocco selezionato",
shortcut_search_block: "Cerca un blocco",
- shortcut_select_next_result: "Risultato di ricerca successivo",
- shortcut_select_previous_result: "Risultato di ricerca precedente",
- shortcut_focus_result: "Vai al risultato di ricerca selezionato",
- shortcut_move_through_blocks: "Navigare tra i blocchi",
+ shortcut_select_next_result: "Ricerca: risultato successivo",
+ shortcut_select_previous_result: "Ricerca: risultato precedente",
+ shortcut_focus_result: "Ricerca: vai al blocco selezionato",
+ shortcut_nav_toolbox_blocks: "Navigare tra categorie e blocchi",
+ shortcut_context_menu: "Apri menu contestuale",
+ shortcut_duplicate_block: "Duplica blocco",
+ shortcut_detach_block: "Stacca blocco",
shortcut_start_move_block: "Sposta blocco",
+ shortcut_move_arrows: "Sposta: alla connessione",
+ shortcut_move_anywhere: "Sposta: ovunque",
+ shortcut_select_workspace: "Seleziona area di lavoro",
+ shortcut_move_through_blocks: "Muoversi tra i blocchi",
+ shortcut_move_in_out_blocks: "Entrare/uscire da un blocco",
+ shortcut_next_block_stack: "Pila di blocchi successiva",
+ shortcut_prev_block_stack: "Pila di blocchi precedente",
shortcut_open_gizmos: "Gizmos",
shortcut_select_gizmo: "Seleziona gizmo",
shortcut_keyboard_cursor_gizmos: "Cursore da tastiera per i gizmos",
@@ -1258,6 +1269,7 @@ export default {
shortcut_category_main: "Generale",
shortcut_category_menu: "Menu",
shortcut_category_area_menu: "Menu delle aree",
+ shortcut_category_toolbox: "Casella degli strumenti",
shortcut_category_editor: "Editor",
shortcut_category_gizmos: "Gizmos",
diff --git a/locale/pl.js b/locale/pl.js
index e43c3b5b..f3dd9873 100644
--- a/locale/pl.js
+++ b/locale/pl.js
@@ -1244,12 +1244,23 @@ export default {
shortcut_code_editor: "Edytor kodu",
shortcut_toolbox: "Przybornik",
shortcut_add_block_by_name: "Dodaj blok według nazwy",
+ shortcut_add_block: "Dodaj wybrany blok",
shortcut_search_block: "Szukaj bloku",
- shortcut_select_next_result: "Następny wynik wyszukiwania",
- shortcut_select_previous_result: "Poprzedni wynik wyszukiwania",
- shortcut_focus_result: "Przejdź do wybranego wyniku wyszukiwania",
- shortcut_move_through_blocks: "Nawiguj między blokami",
+ shortcut_select_next_result: "Szukaj: następny wynik",
+ shortcut_select_previous_result: "Szukaj: poprzedni wynik",
+ shortcut_focus_result: "Szukaj: przejdź do wybranego bloku",
+ shortcut_nav_toolbox_blocks: "Nawiguj po kategoriach i blokach",
+ shortcut_context_menu: "Otwórz menu kontekstowe",
+ shortcut_duplicate_block: "Duplikuj blok",
+ shortcut_detach_block: "Odłącz blok",
shortcut_start_move_block: "Przesuń blok",
+ shortcut_move_arrows: "Przesuń: do połączenia",
+ shortcut_move_anywhere: "Przesuń: gdziekolwiek",
+ shortcut_select_workspace: "Wybierz obszar roboczy",
+ shortcut_move_through_blocks: "Poruszaj się między blokami",
+ shortcut_move_in_out_blocks: "Wejdź/wyjdź z bloku",
+ shortcut_next_block_stack: "Następny stos bloków",
+ shortcut_prev_block_stack: "Poprzedni stos bloków",
shortcut_open_gizmos: "Gizmos",
shortcut_select_gizmo: "Wybierz gizmo",
shortcut_keyboard_cursor_gizmos: "Kursor klawiatury dla gizmos",
@@ -1263,6 +1274,7 @@ export default {
shortcut_category_main: "Ogólne",
shortcut_category_menu: "Menu",
shortcut_category_area_menu: "Menu obszarów",
+ shortcut_category_toolbox: "Przybornik",
shortcut_category_editor: "Edytor",
shortcut_category_gizmos: "Gizmos",
diff --git a/locale/pt.js b/locale/pt.js
index 9997b683..fc6c3f5e 100644
--- a/locale/pt.js
+++ b/locale/pt.js
@@ -1236,12 +1236,23 @@ export default {
shortcut_code_editor: "Editor de código",
shortcut_toolbox: "Caixa de ferramentas",
shortcut_add_block_by_name: "Adicionar bloco por nome",
+ shortcut_add_block: "Adicionar bloco selecionado",
shortcut_search_block: "Procurar um bloco",
- shortcut_select_next_result: "Próximo resultado de pesquisa",
- shortcut_select_previous_result: "Resultado de pesquisa anterior",
- shortcut_focus_result: "Ir para o resultado de pesquisa selecionado",
- shortcut_move_through_blocks: "Navegar pelos blocos",
+ shortcut_select_next_result: "Pesquisa: próximo resultado",
+ shortcut_select_previous_result: "Pesquisa: resultado anterior",
+ shortcut_focus_result: "Pesquisa: ir para o bloco selecionado",
+ shortcut_nav_toolbox_blocks: "Navegar por categorias e blocos",
+ shortcut_context_menu: "Abrir menu de contexto",
+ shortcut_duplicate_block: "Duplicar bloco",
+ shortcut_detach_block: "Desconectar bloco",
shortcut_start_move_block: "Mover bloco",
+ shortcut_move_arrows: "Mover: para ligação",
+ shortcut_move_anywhere: "Mover: para qualquer lugar",
+ shortcut_select_workspace: "Selecionar área de trabalho",
+ shortcut_move_through_blocks: "Mover pelos blocos",
+ shortcut_move_in_out_blocks: "Entrar/sair de um bloco",
+ shortcut_next_block_stack: "Próxima pilha de blocos",
+ shortcut_prev_block_stack: "Pilha de blocos anterior",
shortcut_open_gizmos: "Gizmos",
shortcut_select_gizmo: "Selecionar gizmo",
shortcut_keyboard_cursor_gizmos: "Cursor de teclado para gizmos",
@@ -1255,6 +1266,7 @@ export default {
shortcut_category_main: "Geral",
shortcut_category_menu: "Menu",
shortcut_category_area_menu: "Menu de áreas",
+ shortcut_category_toolbox: "Caixa de ferramentas",
shortcut_category_editor: "Editor",
shortcut_category_gizmos: "Gizmos",
diff --git a/locale/sv.js b/locale/sv.js
index 9d553d0c..5235773a 100644
--- a/locale/sv.js
+++ b/locale/sv.js
@@ -1226,12 +1226,23 @@ export default {
shortcut_code_editor: "Kodeditor",
shortcut_toolbox: "Verktygslåda",
shortcut_add_block_by_name: "Lägg till block efter namn",
+ shortcut_add_block: "Lägg till valt block",
shortcut_search_block: "Sök efter ett block",
- shortcut_select_next_result: "Nästa sökresultat",
- shortcut_select_previous_result: "Föregående sökresultat",
- shortcut_focus_result: "Gå till valt sökresultat",
- shortcut_move_through_blocks: "Navigera bland block",
+ shortcut_select_next_result: "Sök: nästa resultat",
+ shortcut_select_previous_result: "Sök: föregående resultat",
+ shortcut_focus_result: "Sök: gå till valt block",
+ shortcut_nav_toolbox_blocks: "Navigera bland kategorier och block",
+ shortcut_context_menu: "Öppna snabbmeny",
+ shortcut_duplicate_block: "Duplicera block",
+ shortcut_detach_block: "Koppla loss block",
shortcut_start_move_block: "Flytta block",
+ shortcut_move_arrows: "Flytta: till anslutning",
+ shortcut_move_anywhere: "Flytta: var som helst",
+ shortcut_select_workspace: "Välj arbetsyta",
+ shortcut_move_through_blocks: "Flytta bland block",
+ shortcut_move_in_out_blocks: "Gå in i/ut ur ett block",
+ shortcut_next_block_stack: "Nästa blockstapel",
+ shortcut_prev_block_stack: "Föregående blockstapel",
shortcut_open_gizmos: "Gizmos",
shortcut_select_gizmo: "Välj gizmo",
shortcut_keyboard_cursor_gizmos: "Tangentbordskursor för gizmos",
@@ -1245,6 +1256,7 @@ export default {
shortcut_category_main: "Allmänt",
shortcut_category_menu: "Meny",
shortcut_category_area_menu: "Områdesmeny",
+ shortcut_category_toolbox: "Verktygslåda",
shortcut_category_editor: "Editor",
shortcut_category_gizmos: "Gizmos",
From c6f0e45f58b1b1b84207d56ce78ecd1f66078f65 Mon Sep 17 00:00:00 2001
From: lawsie <5183697+lawsie@users.noreply.github.com>
Date: Mon, 18 May 2026 14:44:40 +0100
Subject: [PATCH 6/8] Update panel when lang changes
---
accessibility/keyboardui.js | 13 ++++++++++++-
main/translation.js | 5 +++++
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/accessibility/keyboardui.js b/accessibility/keyboardui.js
index 429b26dc..dc1b59af 100644
--- a/accessibility/keyboardui.js
+++ b/accessibility/keyboardui.js
@@ -556,6 +556,7 @@ const ShortcutsPanel = {
init() {
this.createPanel();
this.setupListeners();
+ window.flockShortcutsPanel = this;
},
createPanel() {
@@ -576,7 +577,7 @@ const ShortcutsPanel = {
this.panel = div;
},
- show() {
+ renderContent() {
this.panel.setAttribute("aria-label", translate("shortcut_panel_title"));
this.panel.querySelector("#shortcuts-panel-title").textContent = translate(
"shortcut_panel_title",
@@ -594,6 +595,10 @@ const ShortcutsPanel = {
`,
)
.join("");
+ },
+
+ show() {
+ this.renderContent();
this.previousFocus = document.activeElement;
this.panel.classList.remove("hidden");
document.body.classList.add("shortcuts-panel-open");
@@ -601,6 +606,12 @@ const ShortcutsPanel = {
document.getElementById("shortcutsBtn")?.classList.add("active");
},
+ refreshTranslations() {
+ if (!this.panel.classList.contains("hidden")) {
+ this.renderContent();
+ }
+ },
+
hide() {
this.previousFocus?.focus();
this.previousFocus = null;
diff --git a/main/translation.js b/main/translation.js
index f9e820ea..f8110f4e 100644
--- a/main/translation.js
+++ b/main/translation.js
@@ -113,6 +113,11 @@ export async function setLanguage(language) {
window.flockColorPicker.refreshTranslations();
}
+ // Update shortcuts panel if open
+ if (window.flockShortcutsPanel?.refreshTranslations) {
+ window.flockShortcutsPanel.refreshTranslations();
+ }
+
// Refresh the workspace to show updated language
const workspace = Blockly.getMainWorkspace();
if (workspace) {
From 31d1a6abbcff7f8439af8ba052291458739a1bd9 Mon Sep 17 00:00:00 2001
From: lawsie <5183697+lawsie@users.noreply.github.com>
Date: Mon, 18 May 2026 14:52:16 +0100
Subject: [PATCH 7/8] Additional direction
---
accessibility/keyboardui.js | 8 ++++++++
locale/de.js | 2 ++
locale/en.js | 2 ++
locale/es.js | 2 ++
locale/fr.js | 2 ++
locale/it.js | 2 ++
locale/pl.js | 2 ++
locale/pt.js | 2 ++
locale/sv.js | 2 ++
9 files changed, 24 insertions(+)
diff --git a/accessibility/keyboardui.js b/accessibility/keyboardui.js
index dc1b59af..6695307e 100644
--- a/accessibility/keyboardui.js
+++ b/accessibility/keyboardui.js
@@ -390,6 +390,11 @@ function getShortcuts() {
keys: `T`,
category: translate("shortcut_category_toolbox"),
},
+ {
+ label: translate("shortcut_toolbox_typing"),
+ keys: `"${translate("shortcut_toolbox_typing_hint")}"`,
+ category: translate("shortcut_category_toolbox"),
+ },
{
label: translate("shortcut_nav_toolbox_blocks"),
keys: `↑ ↓ ← →`,
@@ -534,6 +539,9 @@ function getShortcuts() {
// Formats keys for menu nicely
// You can use + or / and these won't be tagged
function formatKeys(keys) {
+ if (keys.startsWith('"') && keys.endsWith('"')) {
+ return keys.slice(1, -1);
+ }
return keys
.split(/( \+ | \/ )/)
.map((part) =>
diff --git a/locale/de.js b/locale/de.js
index 0e780ebc..8431c75a 100644
--- a/locale/de.js
+++ b/locale/de.js
@@ -1243,6 +1243,8 @@ export default {
shortcut_select_previous_result: "Suche: Vorheriges Ergebnis",
shortcut_focus_result: "Suche: Zum ausgewählten Block springen",
shortcut_nav_toolbox_blocks: "Kategorien und Blöcke navigieren",
+ shortcut_toolbox_typing: "Zur Kategorie springen",
+ shortcut_toolbox_typing_hint: "Namen eintippen",
shortcut_context_menu: "Kontextmenü öffnen",
shortcut_duplicate_block: "Block duplizieren",
shortcut_detach_block: "Block trennen",
diff --git a/locale/en.js b/locale/en.js
index 4b87c4f8..4280a6c5 100644
--- a/locale/en.js
+++ b/locale/en.js
@@ -1293,6 +1293,8 @@ export default {
shortcut_select_previous_result: "Search: Previous result",
shortcut_focus_result: "Search: Go to selected block",
shortcut_nav_toolbox_blocks: "Navigate categories and blocks",
+ shortcut_toolbox_typing: "Skip to category",
+ shortcut_toolbox_typing_hint: "Start typing its name",
shortcut_context_menu: "Open context menu",
shortcut_duplicate_block: "Duplicate block",
shortcut_detach_block: "Detach block",
diff --git a/locale/es.js b/locale/es.js
index 2fd5b161..facdb4f1 100644
--- a/locale/es.js
+++ b/locale/es.js
@@ -1256,6 +1256,8 @@ export default {
shortcut_select_previous_result: "Búsqueda: resultado anterior",
shortcut_focus_result: "Búsqueda: ir al bloque seleccionado",
shortcut_nav_toolbox_blocks: "Navegar por categorías y bloques",
+ shortcut_toolbox_typing: "Ir a la categoría",
+ shortcut_toolbox_typing_hint: "Empieza a escribir su nombre",
shortcut_context_menu: "Abrir menú contextual",
shortcut_duplicate_block: "Duplicar bloque",
shortcut_detach_block: "Desconectar bloque",
diff --git a/locale/fr.js b/locale/fr.js
index ad81bde3..69770bb0 100644
--- a/locale/fr.js
+++ b/locale/fr.js
@@ -1255,6 +1255,8 @@ export default {
shortcut_select_previous_result: "Recherche : résultat précédent",
shortcut_focus_result: "Recherche : aller au bloc sélectionné",
shortcut_nav_toolbox_blocks: "Naviguer dans les catégories et les blocs",
+ shortcut_toolbox_typing: "Aller à la catégorie",
+ shortcut_toolbox_typing_hint: "Commencez à taper son nom",
shortcut_context_menu: "Ouvrir le menu contextuel",
shortcut_duplicate_block: "Dupliquer le bloc",
shortcut_detach_block: "Détacher le bloc",
diff --git a/locale/it.js b/locale/it.js
index 5242014c..7dcb7ef3 100644
--- a/locale/it.js
+++ b/locale/it.js
@@ -1245,6 +1245,8 @@ export default {
shortcut_select_previous_result: "Ricerca: risultato precedente",
shortcut_focus_result: "Ricerca: vai al blocco selezionato",
shortcut_nav_toolbox_blocks: "Navigare tra categorie e blocchi",
+ shortcut_toolbox_typing: "Vai alla categoria",
+ shortcut_toolbox_typing_hint: "Inizia a digitare il nome",
shortcut_context_menu: "Apri menu contestuale",
shortcut_duplicate_block: "Duplica blocco",
shortcut_detach_block: "Stacca blocco",
diff --git a/locale/pl.js b/locale/pl.js
index f3dd9873..136f2467 100644
--- a/locale/pl.js
+++ b/locale/pl.js
@@ -1250,6 +1250,8 @@ export default {
shortcut_select_previous_result: "Szukaj: poprzedni wynik",
shortcut_focus_result: "Szukaj: przejdź do wybranego bloku",
shortcut_nav_toolbox_blocks: "Nawiguj po kategoriach i blokach",
+ shortcut_toolbox_typing: "Przejdź do kategorii",
+ shortcut_toolbox_typing_hint: "Zacznij wpisywać jej nazwę",
shortcut_context_menu: "Otwórz menu kontekstowe",
shortcut_duplicate_block: "Duplikuj blok",
shortcut_detach_block: "Odłącz blok",
diff --git a/locale/pt.js b/locale/pt.js
index fc6c3f5e..58e34c1d 100644
--- a/locale/pt.js
+++ b/locale/pt.js
@@ -1242,6 +1242,8 @@ export default {
shortcut_select_previous_result: "Pesquisa: resultado anterior",
shortcut_focus_result: "Pesquisa: ir para o bloco selecionado",
shortcut_nav_toolbox_blocks: "Navegar por categorias e blocos",
+ shortcut_toolbox_typing: "Ir para a categoria",
+ shortcut_toolbox_typing_hint: "Comece a digitar o nome",
shortcut_context_menu: "Abrir menu de contexto",
shortcut_duplicate_block: "Duplicar bloco",
shortcut_detach_block: "Desconectar bloco",
diff --git a/locale/sv.js b/locale/sv.js
index 5235773a..9ee05731 100644
--- a/locale/sv.js
+++ b/locale/sv.js
@@ -1232,6 +1232,8 @@ export default {
shortcut_select_previous_result: "Sök: föregående resultat",
shortcut_focus_result: "Sök: gå till valt block",
shortcut_nav_toolbox_blocks: "Navigera bland kategorier och block",
+ shortcut_toolbox_typing: "Hoppa till kategori",
+ shortcut_toolbox_typing_hint: "Börja skriva dess namn",
shortcut_context_menu: "Öppna snabbmeny",
shortcut_duplicate_block: "Duplicera block",
shortcut_detach_block: "Koppla loss block",
From f903a3524f2835958bfda638d2fd03b9d88c76e6 Mon Sep 17 00:00:00 2001
From: lawsie <5183697+lawsie@users.noreply.github.com>
Date: Mon, 18 May 2026 15:16:54 +0100
Subject: [PATCH 8/8] Update aria for help link
---
accessibility/keyboardui.js | 5 ++++-
locale/de.js | 1 +
locale/en.js | 1 +
locale/es.js | 1 +
locale/fr.js | 1 +
locale/it.js | 1 +
locale/pl.js | 1 +
locale/pt.js | 1 +
locale/sv.js | 1 +
9 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/accessibility/keyboardui.js b/accessibility/keyboardui.js
index 6695307e..3e7d8a4f 100644
--- a/accessibility/keyboardui.js
+++ b/accessibility/keyboardui.js
@@ -577,7 +577,7 @@ const ShortcutsPanel = {
div.innerHTML = `
`;
@@ -590,6 +590,9 @@ const ShortcutsPanel = {
this.panel.querySelector("#shortcuts-panel-title").textContent = translate(
"shortcut_panel_title",
);
+ this.panel
+ .querySelector(".help-link-button")
+ .setAttribute("aria-label", translate("shortcut_panel_help_link"));
const tbody = this.panel.querySelector("tbody");
const groups = getShortcuts().reduce((acc, s) => {
(acc[s.category] ??= []).push(s);
diff --git a/locale/de.js b/locale/de.js
index 8431c75a..d32ba409 100644
--- a/locale/de.js
+++ b/locale/de.js
@@ -1217,6 +1217,7 @@ export default {
// Keyboard shortcuts panel — title and close button
shortcut_panel_title: "Tastatursteuerung",
shortcut_panel_close: "Tastaturkürzel schließen",
+ shortcut_panel_help_link: "Hilfe-Link für Tastatursteuerung öffnen",
// Keyboard shortcuts panel — labels
shortcut_show_hide_help: "Tastaturkürzel ein-/ausblenden",
diff --git a/locale/en.js b/locale/en.js
index 4280a6c5..c63a0531 100644
--- a/locale/en.js
+++ b/locale/en.js
@@ -1267,6 +1267,7 @@ export default {
// Keyboard shortcuts panel — title and close button
shortcut_panel_title: "Keyboard Controls",
shortcut_panel_close: "Close keyboard shortcuts",
+ shortcut_panel_help_link: "Open keyboard controls help link",
// Keyboard shortcuts panel — labels
shortcut_show_hide_help: "Show/hide shortcut help",
diff --git a/locale/es.js b/locale/es.js
index facdb4f1..6836ca9d 100644
--- a/locale/es.js
+++ b/locale/es.js
@@ -1230,6 +1230,7 @@ export default {
// Keyboard shortcuts panel — title and close button
shortcut_panel_title: "Controles de teclado",
shortcut_panel_close: "Cerrar atajos de teclado",
+ shortcut_panel_help_link: "Abrir enlace de ayuda de controles de teclado",
// Keyboard shortcuts panel — labels
shortcut_show_hide_help: "Mostrar/ocultar atajos de teclado",
diff --git a/locale/fr.js b/locale/fr.js
index 69770bb0..e527603b 100644
--- a/locale/fr.js
+++ b/locale/fr.js
@@ -1228,6 +1228,7 @@ export default {
// Keyboard shortcuts panel — title and close button
shortcut_panel_title: "Commandes clavier",
shortcut_panel_close: "Fermer les raccourcis clavier",
+ shortcut_panel_help_link: "Ouvrir le lien d'aide des commandes clavier",
// Keyboard shortcuts panel — labels
shortcut_show_hide_help: "Afficher/masquer les raccourcis clavier",
diff --git a/locale/it.js b/locale/it.js
index 7dcb7ef3..446cbbab 100644
--- a/locale/it.js
+++ b/locale/it.js
@@ -1219,6 +1219,7 @@ export default {
// Keyboard shortcuts panel — title and close button
shortcut_panel_title: "Controlli da tastiera",
shortcut_panel_close: "Chiudi le scorciatoie da tastiera",
+ shortcut_panel_help_link: "Apri il collegamento all'aiuto per i controlli da tastiera",
// Keyboard shortcuts panel — labels
shortcut_show_hide_help: "Mostra/nascondi scorciatoie da tastiera",
diff --git a/locale/pl.js b/locale/pl.js
index 136f2467..695e0eb1 100644
--- a/locale/pl.js
+++ b/locale/pl.js
@@ -1224,6 +1224,7 @@ export default {
// Keyboard shortcuts panel — title and close button
shortcut_panel_title: "Sterowanie klawiaturą",
shortcut_panel_close: "Zamknij skróty klawiaturowe",
+ shortcut_panel_help_link: "Otwórz łącze pomocy sterowania klawiaturą",
// Keyboard shortcuts panel — labels
shortcut_show_hide_help: "Pokaż/ukryj skróty klawiaturowe",
diff --git a/locale/pt.js b/locale/pt.js
index 58e34c1d..da5eccec 100644
--- a/locale/pt.js
+++ b/locale/pt.js
@@ -1216,6 +1216,7 @@ export default {
// Keyboard shortcuts panel — title and close button
shortcut_panel_title: "Controlos de teclado",
shortcut_panel_close: "Fechar atalhos de teclado",
+ shortcut_panel_help_link: "Abrir ligação de ajuda dos controlos do teclado",
// Keyboard shortcuts panel — labels
shortcut_show_hide_help: "Mostrar/ocultar atalhos de teclado",
diff --git a/locale/sv.js b/locale/sv.js
index 9ee05731..b816e731 100644
--- a/locale/sv.js
+++ b/locale/sv.js
@@ -1206,6 +1206,7 @@ export default {
// Keyboard shortcuts panel — title and close button
shortcut_panel_title: "Tangentbordskontroller",
shortcut_panel_close: "Stäng tangentbordsgenvägar",
+ shortcut_panel_help_link: "Öppna hjälplänk för tangentbordskontroller",
// Keyboard shortcuts panel — labels
shortcut_show_hide_help: "Visa/dölj tangentbordsgenvägar",