fix: announce 3d camera orientation

This commit is contained in:
2026-08-30 11:42:54 +09:00
parent 2a2e192196
commit 7172d5654a
2 changed files with 54 additions and 7 deletions
@@ -282,6 +282,10 @@ test("Array Builder가 preset·직접 편집·검증·표준 JSON round trip을
const beamAxisView = documentObject.querySelector("#beam-pattern-axis-view");
assertEqual(beamAxisView.value, "iso", "3D beam surface starts in isometric view");
assertEqual(beamSurface.dataset.viewAxis, "iso", "beam canvas exposes isometric provenance");
assert(
beamSurface.getAttribute("aria-label").includes("등각 원점 보기"),
"beam canvas accessible name exposes its current view",
);
const beamComputeBeforeAxisView =
documentObject.documentElement.dataset.beamPatternComputeMs;
const beamFrequencyBeforeAxisView = beamSurface.dataset.frequencyHz;
@@ -357,6 +361,10 @@ test("Array Builder가 preset·직접 편집·검증·표준 JSON round trip을
);
assertEqual(beamSurface.dataset.viewAxis, "custom", "beam drag enters free-orbit mode");
assertEqual(beamAxisView.value, "custom", "beam view selector reflects free orbit");
assert(
beamSurface.getAttribute("aria-label").includes("자유 회전"),
"beam canvas accessible name follows free orbit",
);
beamSurface.dispatchEvent(new windowObject.KeyboardEvent("keydown", {
bubbles: true,
cancelable: true,
@@ -365,6 +373,10 @@ test("Array Builder가 preset·직접 편집·검증·표준 JSON round trip을
await nextPaint(windowObject);
assertEqual(beamSurface.dataset.viewAxis, "iso", "beam R shortcut restores isometric view");
assertEqual(beamAxisView.value, "iso", "beam selector follows the R shortcut");
assert(
beamSurface.getAttribute("aria-label").includes("등각 원점 보기"),
"beam accessible name follows the R shortcut",
);
assertEqual(
documentObject.documentElement.dataset.beamPatternComputeMs,
beamComputeBeforeAxisView,
@@ -446,6 +458,10 @@ test("Array Builder가 preset·직접 편집·검증·표준 JSON round trip을
const arrayAxisView = documentObject.querySelector("#array-axis-view");
assert(!arrayAxisControl.hidden, "array axis selector appears only for 3D inspection");
assertEqual(arrayAxisView.value, "iso", "array 3D starts in isometric view");
assert(
canvas.getAttribute("aria-label").includes("등각 원점 보기"),
"array canvas accessible name exposes its current view",
);
const arraySaveStateBeforeAxisView =
documentObject.querySelector("#save-state").textContent;
const array3dBeforeAxisView = canvas.toDataURL();
@@ -517,6 +533,10 @@ test("Array Builder가 preset·직접 편집·검증·표준 JSON round trip을
);
assertEqual(canvas.dataset.viewAxis, "custom", "array drag enters free-orbit mode");
assertEqual(arrayAxisView.value, "custom", "array view selector reflects free orbit");
assert(
canvas.getAttribute("aria-label").includes("자유 회전"),
"array canvas accessible name follows free orbit",
);
assertEqual(
documentObject.querySelector('#microphone-list [aria-selected="true"]')
?.dataset.microphoneId,
@@ -531,6 +551,10 @@ test("Array Builder가 preset·직접 편집·검증·표준 JSON round trip을
await nextPaint(windowObject);
assertEqual(canvas.dataset.viewAxis, "iso", "array R shortcut restores isometric view");
assertEqual(arrayAxisView.value, "iso", "array selector follows the R shortcut");
assert(
canvas.getAttribute("aria-label").includes("등각 원점 보기"),
"array accessible name follows the R shortcut",
);
assertEqual(
documentObject.querySelector("#save-state").textContent,
arraySaveStateBeforeAxisView,