Skip to content

Commit 46f6d0b

Browse files
committed
fix: localize atlas aria landmarks
1 parent dbdc13c commit 46f6d0b

3 files changed

Lines changed: 18 additions & 6 deletions

File tree

atlas/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ <h1 class="track-title" id="track-title">Loading...</h1>
112112

113113
<div class="waveform" id="waveform" aria-hidden="true"></div>
114114

115-
<div class="controls" role="group" aria-label="Audio controls">
115+
<div class="controls" id="audio-controls" role="group" aria-label="Audio controls">
116116
<button id="prev-btn" class="ctrl-btn" type="button" aria-label="Previous stop">
117117
<svg viewBox="0 0 24 24" aria-hidden="true">
118118
<path d="M15 6l-6 6 6 6"></path>

atlas/js/app.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ const ui = {
4949
shareInstagram: getEl("#share-instagram-btn"),
5050
shareX: getEl("#share-x-link"),
5151
shareCopy: getEl("#share-copy-btn"),
52+
shareDock: getEl("#share-dock"),
5253
stage: getEl("#stage"),
54+
audioControls: getEl("#audio-controls"),
5355
expandedFace: document.querySelector(".stamp-expanded"),
5456
miniStamp: getEl("#mini-stamp"),
5557
miniExpand: getEl("#mini-expand-btn"),
@@ -182,6 +184,9 @@ function renderStaticCopy() {
182184

183185
document.documentElement.lang = state.locale;
184186
document.title = text.documentTitle;
187+
ui.stage.setAttribute("aria-label", text.siteLabel);
188+
ui.shareDock.setAttribute("aria-label", text.shareDock);
189+
ui.audioControls.setAttribute("aria-label", text.audioControls);
185190
ui.volumeMark.textContent = text.volume;
186191
ui.miniVolumeMark.textContent = text.volume;
187192
ui.backdropNote.querySelector(".backdrop-note-kicker").textContent = text.fieldNote;
@@ -425,10 +430,6 @@ function setBackdropImage(src, title) {
425430
}
426431
}
427432

428-
function descriptionForStop(stop) {
429-
return displayStop(stop).fieldNote || displayStop(stop).description;
430-
}
431-
432433
function currentStop() {
433434
return state.stops[state.index] || null;
434435
}

tests/test_atlas_static.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,17 @@ def test_app_imports_i18n_module():
113113
assert 'from "./i18n.js"' in script
114114

115115

116+
def test_app_localizes_accessibility_landmarks():
117+
script = JS_PATH.read_text(encoding="utf-8")
118+
119+
assert 'stage: getEl("#stage")' in script
120+
assert 'shareDock: getEl("#share-dock")' in script
121+
assert 'audioControls: getEl("#audio-controls")' in script
122+
assert 'ui.stage.setAttribute("aria-label", text.siteLabel);' in script
123+
assert 'ui.shareDock.setAttribute("aria-label", text.shareDock);' in script
124+
assert 'ui.audioControls.setAttribute("aria-label", text.audioControls);' in script
125+
126+
116127
def test_language_switcher_has_accessible_interaction_styles():
117128
css = CSS_PATH.read_text(encoding="utf-8")
118129

@@ -328,7 +339,7 @@ def test_minimized_player_shows_curated_field_note_next_to_print():
328339
assert "left: calc(" in css
329340
assert "max-width: min(28vw, 360px)" in css
330341
assert page.find(class_="backdrop-note-kicker").get_text(strip=True) == "FIELD NOTE"
331-
assert "descriptionForStop" in script
342+
assert "descriptionForStop" not in script
332343
assert "ui.backdropNoteBody.textContent = localized.fieldNote || localized.description;" in script
333344
assert "ui.desc.textContent = localized.fieldNote || localized.description;" in script
334345

0 commit comments

Comments
 (0)