fix: live page mobile VCR, LCD aria, feed keyboard (closes #15, #55, #56)

This commit is contained in:
you committed 2026-03-19 18:57:21 +00:00
1 parent 72743fd9ee
commit 7260b36534
2 files changed
+16 -5

No files matched your search

+5 -4
View File
@@ -597,10 +597,11 @@
/* Mobile VCR */
@media (max-width: 600px) {
.vcr-bar { padding: 4px 8px; }
.vcr-controls { gap: 4px; }
.vcr-btn { padding: 3px 6px; font-size: 0.7rem; }
.vcr-scope-btn { font-size: 0.6rem; padding: 1px 4px; }
.vcr-bar { padding: 4px 8px; flex-wrap: wrap; }
.vcr-controls { gap: 4px; flex-wrap: wrap; width: 100%; justify-content: center; }
.vcr-timeline-wrap { width: 100%; }
.vcr-btn { padding: 10px 14px; font-size: 0.8rem; min-height: 44px; min-width: 44px; }
.vcr-scope-btn { font-size: 0.75rem; padding: 10px 12px; min-height: 44px; min-width: 44px; }
}
/* Timeline time tooltip */
+11 -1
View File
@@ -269,6 +269,7 @@
function drawLcdText(text, color) {
const canvas = document.getElementById('vcrLcdCanvas');
if (!canvas) return;
canvas.setAttribute('aria-label', 'VCR time: ' + text);
const ctx = canvas.getContext('2d');
const dpr = window.devicePixelRatio || 1;
const cw = canvas.offsetWidth, ch = canvas.offsetHeight;
@@ -585,7 +586,7 @@
</div>
<div class="vcr-lcd">
<div class="vcr-lcd-row vcr-lcd-mode" id="vcrLcdMode">LIVE</div>
<canvas id="vcrLcdCanvas" class="vcr-lcd-canvas" width="200" height="32"></canvas>
<canvas id="vcrLcdCanvas" class="vcr-lcd-canvas" width="200" height="32" role="img" aria-label="VCR time display"></canvas>
<div class="vcr-lcd-row vcr-lcd-pkts" id="vcrLcdPkts"></div>
</div>
<div id="vcrPrompt" class="vcr-prompt hidden"></div>
@@ -647,6 +648,13 @@
// Feed show/hide
const feedEl = document.getElementById('liveFeed');
// Keyboard support for feed items (event delegation)
feedEl.addEventListener('keydown', (e) => {
if (e.key === 'Enter' || e.key === ' ') {
const item = e.target.closest('.live-feed-item');
if (item) { e.preventDefault(); item.click(); }
}
});
const feedHideBtn = document.getElementById('feedHideBtn');
const feedShowBtn = document.getElementById('feedShowBtn');
if (localStorage.getItem('live-feed-hidden') === 'true') {
@@ -1242,6 +1250,8 @@
const item = document.createElement('div');
item.className = 'live-feed-item live-feed-enter';
item.setAttribute('tabindex', '0');
item.setAttribute('role', 'button');
item.style.cursor = 'pointer';
item.innerHTML = `
<span class="feed-icon" style="color:${color}">${icon}</span>