summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHermes SysOp <sysop@webx11.duckdns.org>2026-11-12 18:21:09 +0100
committerHermes SysOp <sysop@webx11.duckdns.org>2026-11-12 18:21:09 +0100
commita14d8ab15130779e4d612f690cd3c806800875c6 (patch)
tree86ab867d683521171fe818ce7a95bf899c9b404c
parent5d48e3bb52d333f828b50945003864d99488599e (diff)
fix(newos4): the three glyph-only switch buttons now say what they do (v4.6.165)
Asked "how do I switch?", I checked all six modes and found the controls were already uniform in function — every mode calls `api.exec('ui picker')` — but not in labelling: easy ⇄ Change view chat ⇄ Style workspace ⇄ Style studio ⇄ <- glyph only commander ⇄ <- glyph only cockpit ⇄ <- glyph only An unlabelled ⇄ on a phone is a guess. The three bare ones now carry title="Change view — pick another interface" and aria-label="Change view", which api.el() forwards via setAttribute. Verified on the served build: the snapshot reads `button "Change view"` in studio, and clicking it opens the picker with all seven options (six modes + "Keep the classic terminal"). No behaviour change — same handler, same picker; the control is now discoverable and announced by screen readers.
-rw-r--r--main.html6
-rw-r--r--modules/core/module-loader.js2
-rw-r--r--modules/ext/ui-cockpit.js2
-rw-r--r--modules/ext/ui-commander.js2
-rw-r--r--modules/ext/ui-studio.js2
5 files changed, 7 insertions, 7 deletions
diff --git a/main.html b/main.html
index 2b6c267..9577b97 100644
--- a/main.html
+++ b/main.html
@@ -1350,13 +1350,13 @@
</script>
<!-- v4.5.63: A2A scratchpad fixes + agent-register arg fix -->
-<script src="modules/core/core-bundle.js?v=v4.6.164"></script>
+<script src="modules/core/core-bundle.js?v=v4.6.165"></script>
<!-- Async dependency-ordered module loader now only initializes terminal and loads optional ext modules -->
-<script src="modules/core/module-loader.js?v=v4.6.164"></script>
+<script src="modules/core/module-loader.js?v=v4.6.165"></script>
<!-- Critical ext bundle loads AFTER webx11 exists so registerModule calls work -->
-<script src="modules/ext/critical-ext-bundle.js?v=v4.6.164"></script>
+<script src="modules/ext/critical-ext-bundle.js?v=v4.6.165"></script>
<script>
// ═══ ONE TRUE VERSION SOURCE ═══
diff --git a/modules/core/module-loader.js b/modules/core/module-loader.js
index d87b11f..ccdda90 100644
--- a/modules/core/module-loader.js
+++ b/modules/core/module-loader.js
@@ -4,7 +4,7 @@
// Core module bundle loaded synchronously in main.html.
// This loader only handles version cache-busting, splash, terminal init, and optional ext modules.
- const LATEST_VER = 'v4.6.164';
+ const LATEST_VER = 'v4.6.165';
const CACHE = '?v=' + LATEST_VER;
// Exposed so ext modules can register their own URL with the same cache-busting version
// instead of an unversioned path the browser may already have cached (shell.js did).
diff --git a/modules/ext/ui-cockpit.js b/modules/ext/ui-cockpit.js
index 73fbe9f..b9d33eb 100644
--- a/modules/ext/ui-cockpit.js
+++ b/modules/ext/ui-cockpit.js
@@ -74,7 +74,7 @@ body[data-ui-mode="cockpit"] #ui-root { display: grid; grid-template-rows: 1fr 1
const bar = api.el('div', { id: 'ck-term-bar' });
bar.appendChild(api.el('span', { class: 'title', text: 'terminal · F1-F8 focus · F5 refresh' }));
- const styleBtn = api.el('button', { class: 'wx11-btn', text: '⇄' });
+ const styleBtn = api.el('button', { class: 'wx11-btn', text: '⇄', title: 'Change view — pick another interface', 'aria-label': 'Change view' });
styleBtn.addEventListener('click', () => api.exec('ui picker'));
bar.appendChild(styleBtn);
const out = api.el('div', { id: 'ck-out' });
diff --git a/modules/ext/ui-commander.js b/modules/ext/ui-commander.js
index 873d7cc..d64626a 100644
--- a/modules/ext/ui-commander.js
+++ b/modules/ext/ui-commander.js
@@ -101,7 +101,7 @@ body[data-ui-mode="commander"] #ui-root { display: grid; grid-template-columns:
const bar = api.el('div', { id: 'cm-center-bar' });
bar.appendChild(api.el('span', { class: 'title', text: 'terminal' }));
const palBtn = api.el('button', { class: 'wx11-btn', text: '⌘K' });
- const styleBtn = api.el('button', { class: 'wx11-btn', text: '⇄' });
+ const styleBtn = api.el('button', { class: 'wx11-btn', text: '⇄', title: 'Change view — pick another interface', 'aria-label': 'Change view' });
styleBtn.addEventListener('click', () => api.exec('ui picker'));
bar.appendChild(palBtn); bar.appendChild(styleBtn);
diff --git a/modules/ext/ui-studio.js b/modules/ext/ui-studio.js
index e8341f3..ca479da 100644
--- a/modules/ext/ui-studio.js
+++ b/modules/ext/ui-studio.js
@@ -52,7 +52,7 @@ body[data-ui-mode="studio"] #ui-root { display: grid; grid-template-columns: 1.1
const left = api.el('div', { id: 'st-left' });
const leftBar = api.el('div', { id: 'st-left-bar' });
leftBar.appendChild(api.el('span', { class: 'title', text: 'Chat' }));
- const styleBtn = api.el('button', { class: 'wx11-btn', text: '⇄' });
+ const styleBtn = api.el('button', { class: 'wx11-btn', text: '⇄', title: 'Change view — pick another interface', 'aria-label': 'Change view' });
styleBtn.addEventListener('click', () => api.exec('ui picker'));
leftBar.appendChild(styleBtn);
const chat = api.el('div', { id: 'st-chat' });