-
diff --git a/src/renderer-locale-de.ts b/src/renderer-locale-de.ts
index f5b8f31..a305584 100644
--- a/src/renderer-locale-de.ts
+++ b/src/renderer-locale-de.ts
@@ -359,7 +359,8 @@ const UI_TEXT_DE = {
sidebarEmpty: 'Noch keine Streamer. Fuege oben rechts einen hinzu.',
removeAria: 'Entfernen',
cutProgressAria: 'Schnitt-Fortschritt',
- mergeProgressAria: 'Merge-Fortschritt'
+ mergeProgressAria: 'Merge-Fortschritt',
+ updateProgressAria: 'Update-Download-Fortschritt'
},
vods: {
noneTitle: 'Keine VODs',
diff --git a/src/renderer-locale-en.ts b/src/renderer-locale-en.ts
index 2573fd2..b94a9db 100644
--- a/src/renderer-locale-en.ts
+++ b/src/renderer-locale-en.ts
@@ -359,7 +359,8 @@ const UI_TEXT_EN = {
sidebarEmpty: 'No streamers yet. Add one via the input at the top right.',
removeAria: 'Remove',
cutProgressAria: 'Cut progress',
- mergeProgressAria: 'Merge progress'
+ mergeProgressAria: 'Merge progress',
+ updateProgressAria: 'Update download progress'
},
vods: {
noneTitle: 'No VODs',
diff --git a/src/renderer-texts.ts b/src/renderer-texts.ts
index 0525c39..3279ffa 100644
--- a/src/renderer-texts.ts
+++ b/src/renderer-texts.ts
@@ -255,6 +255,7 @@ function applyLanguageToStaticUI(): void {
setAriaLabelAll('.modal-close-localizable', UI_TEXT.streamers.modalCloseAria);
document.getElementById('cutProgressGauge')?.setAttribute('aria-label', UI_TEXT.streamers.cutProgressAria);
document.getElementById('mergeProgressGauge')?.setAttribute('aria-label', UI_TEXT.streamers.mergeProgressAria);
+ document.getElementById('updateProgressGauge')?.setAttribute('aria-label', UI_TEXT.streamers.updateProgressAria);
setText('backupCardTitle', UI_TEXT.static.backupCardTitle);
setText('backupCardIntro', UI_TEXT.static.backupCardIntro);
setText('btnExportConfig', UI_TEXT.static.exportConfig);
diff --git a/src/renderer-updates.ts b/src/renderer-updates.ts
index b86a6e2..935a1a0 100644
--- a/src/renderer-updates.ts
+++ b/src/renderer-updates.ts
@@ -127,7 +127,9 @@ function setDownloadPendingUi(): void {
const bar = byId('updateProgressBar');
bar.classList.add('downloading');
- bar.style.width = latestDownloadProgress ? `${latestDownloadProgress.percent}%` : '30%';
+ const pendingPct = latestDownloadProgress ? latestDownloadProgress.percent : 30;
+ bar.style.width = `${pendingPct}%`;
+ byId('updateProgressGauge').setAttribute('aria-valuenow', String(Math.round(pendingPct)));
if (!latestDownloadProgress) {
byId('updateText').textContent = `Version ${latestUpdateVersion || '?'} ${UI_TEXT.updates.downloading}`;
@@ -145,6 +147,7 @@ function setDownloadReadyUi(info?: UpdateInfo): void {
const bar = byId('updateProgressBar');
bar.classList.remove('downloading');
bar.style.width = '100%';
+ byId('updateProgressGauge').setAttribute('aria-valuenow', '100');
byId('updateProgress').style.display = 'block';
byId('updateText').textContent = `Version ${activeInfo.version} ${UI_TEXT.updates.ready}`;
@@ -574,6 +577,7 @@ window.api.onUpdateDownloadProgress((progress: UpdateDownloadProgress) => {
const bar = byId('updateProgressBar');
bar.classList.remove('downloading');
bar.style.width = progress.percent + '%';
+ byId('updateProgressGauge').setAttribute('aria-valuenow', String(Math.round(progress.percent)));
showUpdateBanner();
byId('updateProgress').style.display = 'block';